{"version":3,"file":"sparql-editor.umd.cjs","sources":["../../../node_modules/@zazuko/yasgui/build/yasgui.min.js","../../../node_modules/highlight.js/lib/core.js","../src/highlight-sparql.ts","../src/styles.ts","../src/utils.ts","../../../node_modules/immutable/dist/immutable.es.js","../../../node_modules/@comunica/core/lib/ActionContext.js","../../../node_modules/@comunica/core/lib/Bus.js","../../../node_modules/@comunica/core/lib/BusIndexed.js","../../../node_modules/@comunica/core/lib/ContextEntries.js","../../../node_modules/@comunica/core/lib/ActionObserver.js","../../../node_modules/@comunica/core/lib/Actor.js","../../../node_modules/@comunica/core/lib/Mediator.js","../../../node_modules/@comunica/core/lib/TestResult.js","../../../node_modules/@comunica/core/lib/index.js","../../../node_modules/@comunica/bus-init/lib/ActorInit.js","../../../node_modules/@comunica/bus-init/lib/index.js","../../../node_modules/@comunica/actor-init-query/lib/ActorInitQueryBase.js","../../../node_modules/process/browser.js","../../../node_modules/@comunica/actor-init-query/lib/ActorInitQuery-browser.js","../../../node_modules/@comunica/context-entries/lib/Keys.js","../../../node_modules/@comunica/context-entries/lib/index.js","../../../node_modules/@comunica/actor-init-query/lib/QueryEngineBase.js","../../../node_modules/@comunica/actor-init-query/lib/index-browser.js","../../../node_modules/@comunica/types/lib/Bindings.js","../../../node_modules/@comunica/types/lib/ComunicaDataFactory.js","../../../node_modules/@comunica/types/lib/IActionContext.js","../../../node_modules/@comunica/types/lib/IAggregatedStore.js","../../../node_modules/@comunica/types/lib/ICliArgsHandler.js","../../../node_modules/@comunica/types/lib/IDataDestination.js","../../../node_modules/@comunica/types/lib/IDataset.js","../../../node_modules/@comunica/types/lib/IJoinEntry.js","../../../node_modules/@comunica/types/lib/IMetadata.js","../../../node_modules/@comunica/types/lib/IPhysicalQueryPlanLogger.js","../../../node_modules/@comunica/types/lib/IProxyHandler.js","../../../node_modules/@comunica/types/lib/IQueryContext.js","../../../node_modules/@comunica/types/lib/IQueryEngine.js","../../../node_modules/@comunica/types/lib/IQueryOperationResult.js","../../../node_modules/@comunica/types/lib/IQuerySource.js","../../../node_modules/@comunica/types/lib/statistics/IStatisticBase.js","../../../node_modules/@comunica/types/lib/statistics/IDiscoverEventData.js","../../../node_modules/@comunica/types/lib/statistics/IPartialResult.js","../../../node_modules/@comunica/types/lib/ILink.js","../../../node_modules/@comunica/types/lib/Logger.js","../../../node_modules/@comunica/types/lib/ExpressionEvaluator.js","../../../node_modules/@comunica/types/lib/index.js","../../../node_modules/@comunica/logger-void/lib/LoggerVoid.js","../../../node_modules/@comunica/logger-void/lib/index.js","../../../node_modules/@comunica/bus-function-factory/lib/ActorFunctionFactory.js","../../../node_modules/@comunica/bus-function-factory/lib/ActorFunctionFactoryDedicated.js","../../../node_modules/@comunica/bus-function-factory/lib/BusFunctionFactory.js","../../../node_modules/rdf-data-factory/lib/BlankNode.js","../../../node_modules/rdf-data-factory/lib/DefaultGraph.js","../../../node_modules/rdf-data-factory/lib/NamedNode.js","../../../node_modules/rdf-data-factory/lib/Literal.js","../../../node_modules/rdf-data-factory/lib/Quad.js","../../../node_modules/rdf-data-factory/lib/Variable.js","../../../node_modules/rdf-data-factory/lib/DataFactory.js","../../../node_modules/rdf-data-factory/index.js","../../../node_modules/rdf-string/lib/TermUtil.js","../../../node_modules/rdf-string/index.js","../../../node_modules/fast-deep-equal/es6/index.js","../../../node_modules/sparqlalgebrajs/lib/algebra.js","../../../node_modules/sparqljs/lib/Wildcard.js","../../../node_modules/sparqljs/lib/SparqlParser.js","../../../node_modules/sparqljs/lib/SparqlGenerator.js","../../../node_modules/sparqljs/sparql.js","../../../node_modules/sparqlalgebrajs/lib/factory.js","../../../node_modules/rdf-terms/lib/QuadTermUtil.js","../../../node_modules/rdf-terms/lib/TermUtil.js","../../../node_modules/rdf-terms/index.js","../../../node_modules/sparqlalgebrajs/lib/util.js","../../../node_modules/sparqlalgebrajs/lib/sparqlAlgebra.js","../../../node_modules/minimalistic-assert/index.js","../../../node_modules/inherits/inherits_browser.js","../../../node_modules/hash.js/lib/hash/utils.js","../../../node_modules/hash.js/lib/hash/common.js","../../../node_modules/hash.js/lib/hash/sha/common.js","../../../node_modules/hash.js/lib/hash/sha/1.js","../../../node_modules/hash.js/lib/hash/sha/256.js","../../../node_modules/hash.js/lib/hash/sha/224.js","../../../node_modules/hash.js/lib/hash/sha/512.js","../../../node_modules/hash.js/lib/hash/sha/384.js","../../../node_modules/hash.js/lib/hash/sha.js","../../../node_modules/hash.js/lib/hash/ripemd.js","../../../node_modules/hash.js/lib/hash/hmac.js","../../../node_modules/hash.js/lib/hash.js","../../../node_modules/rdf-isomorphic/lib/RdfIsomorphic.js","../../../node_modules/rdf-isomorphic/index.js","../../../node_modules/sparqlalgebrajs/lib/sparql.js","../../../node_modules/sparqlalgebrajs/index.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/expressions/Expressions.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/expressions/Variable.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/util/Consts.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/util/Errors.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/util/Serialization.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/functions/OverloadTree.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/functions/Helpers.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/util/TypeHandling.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/expressions/Term.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/expressions/Operator.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/expressions/Aggregate.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/expressions/Existence.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/expressions/index.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/util/DateTimeHelpers.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/util/SpecAlgos.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/util/Parsing.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/transformers/TermTransformer.js","../../../node_modules/lru-cache/dist/commonjs/index.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/util/Context.js","../../../node_modules/@comunica/utils-expression-evaluator/lib/index.js","../../../node_modules/@comunica/bus-function-factory/lib/implementation/Core.js","../../../node_modules/@comunica/bus-function-factory/lib/index.js","../../../node_modules/@comunica/bus-query-operation/lib/ActorQueryOperation.js","../../../node_modules/@comunica/utils-metadata/lib/MetadataValidationState.js","../../../node_modules/@comunica/utils-metadata/lib/Utils.js","../../../node_modules/@comunica/utils-metadata/lib/index.js","../../../node_modules/@comunica/bus-query-operation/lib/ActorQueryOperationTyped.js","../../../node_modules/@comunica/bus-query-operation/lib/ActorQueryOperationTypedMediated.js","../../../node_modules/@comunica/bus-query-operation/lib/BusQueryOperation.js","../../../node_modules/@comunica/bus-query-operation/lib/index.js","../../../node_modules/@comunica/bus-context-preprocess/lib/ActorContextPreprocess.js","../../../node_modules/@comunica/bus-context-preprocess/lib/index.js","../../../node_modules/@comunica/actor-context-preprocess-convert-shortcuts/lib/ActorContextPreprocessConvertShortcuts.js","../../../node_modules/@comunica/actor-context-preprocess-convert-shortcuts/lib/index.js","../../../node_modules/@comunica/actor-context-preprocess-set-defaults/lib/ActorContextPreprocessSetDefaults.js","../../../node_modules/@comunica/actor-context-preprocess-set-defaults/lib/index.js","../../../node_modules/@comunica/actor-context-preprocess-source-to-destination/lib/ActorContextPreprocessSourceToDestination.js","../../../node_modules/@comunica/actor-context-preprocess-source-to-destination/lib/index.js","../../../node_modules/events/events.js","../../../node_modules/asynciterator/dist/linkedlist.js","../../../node_modules/asynciterator/dist/taskscheduler.js","../../../node_modules/asynciterator/dist/asynciterator.js","../../../node_modules/@comunica/utils-data-factory/lib/BlankNodeScoped.js","../../../node_modules/@comunica/utils-data-factory/lib/BlankNodeBindingsScoped.js","../../../node_modules/@comunica/utils-data-factory/lib/index.js","../../../node_modules/@comunica/actor-context-preprocess-query-source-skolemize/lib/utils.js","../../../node_modules/@comunica/actor-context-preprocess-query-source-skolemize/lib/QuerySourceSkolemized.js","../../../node_modules/@comunica/actor-context-preprocess-query-source-skolemize/lib/ActorContextPreprocessQuerySourceSkolemize.js","../../../node_modules/@comunica/actor-context-preprocess-query-source-skolemize/lib/index.js","../../../node_modules/@comunica/mediator-combine-pipeline/lib/MediatorCombinePipeline.js","../../../node_modules/@comunica/mediator-combine-pipeline/lib/index.js","../../../node_modules/@comunica/bus-hash-bindings/lib/ActorHashBindings.js","../../../node_modules/@comunica/bus-hash-bindings/lib/index.js","../../../node_modules/imurmurhash/imurmurhash.js","../../../node_modules/@comunica/actor-hash-bindings-murmur/lib/ActorHashBindingsMurmur.js","../../../node_modules/@comunica/actor-hash-bindings-murmur/lib/index.js","../../../node_modules/@comunica/mediator-race/lib/MediatorRace.js","../../../node_modules/@comunica/mediator-race/lib/index.js","../../../node_modules/@comunica/bus-hash-quads/lib/ActorHashQuads.js","../../../node_modules/@comunica/bus-hash-quads/lib/index.js","../../../node_modules/@comunica/actor-hash-quads-murmur/lib/ActorHashQuadsMurmur.js","../../../node_modules/@comunica/actor-hash-quads-murmur/lib/index.js","../../../node_modules/@comunica/bus-optimize-query-operation/lib/ActorOptimizeQueryOperation.js","../../../node_modules/@comunica/bus-optimize-query-operation/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-rewrite-copy/lib/ActorOptimizeQueryOperationRewriteCopy.js","../../../node_modules/@comunica/actor-optimize-query-operation-rewrite-copy/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-rewrite-move/lib/ActorOptimizeQueryOperationRewriteMove.js","../../../node_modules/@comunica/actor-optimize-query-operation-rewrite-move/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-rewrite-add/lib/ActorOptimizeQueryOperationRewriteAdd.js","../../../node_modules/@comunica/actor-optimize-query-operation-rewrite-add/lib/index.js","../../../node_modules/@comunica/utils-query-operation/lib/CardinalityEstimators.js","../../../node_modules/@comunica/utils-query-operation/lib/FragmentSelectorShapes.js","../../../node_modules/@comunica/utils-query-operation/lib/Utils.js","../../../node_modules/@comunica/utils-query-operation/lib/MaterializeBindings.js","../../../node_modules/@comunica/utils-query-operation/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-group-sources/lib/ActorOptimizeQueryOperationGroupSources.js","../../../node_modules/@comunica/actor-optimize-query-operation-group-sources/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-construct-distinct/lib/ActorOptimizeQueryOperationConstructDistinct.js","../../../node_modules/@comunica/actor-optimize-query-operation-construct-distinct/lib/index.js","../../../node_modules/@comunica/bus-query-parse/lib/ActorQueryParse.js","../../../node_modules/@comunica/bus-query-parse/lib/index.js","../../../node_modules/@comunica/actor-query-parse-sparql/lib/ActorQueryParseSparql.js","../../../node_modules/@comunica/actor-query-parse-sparql/lib/index.js","../../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerAdapter.js","../../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerInclude.js","../../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerOptional.js","../../../node_modules/graphql-to-sparql/lib/IConvertContext.js","../../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerPlural.js","../../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerSingle.js","../../../node_modules/graphql-to-sparql/lib/handler/directivenode/DirectiveNodeHandlerSkip.js","../../../node_modules/graphql-to-sparql/lib/handler/directivenode/index.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerAdapter.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerBoolean.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerEnum.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerFloat.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerInt.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerList.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerNull.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerObject.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerString.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/NodeValueHandlerVariable.js","../../../node_modules/graphql-to-sparql/lib/handler/valuenode/index.js","../../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerAdapter.js","../../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerDefinitionAdapter.js","../../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerDefinitionFragment.js","../../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerDefinitionOperation.js","../../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerDocument.js","../../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerSelectionAdapter.js","../../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerSelectionField.js","../../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerSelectionFragmentSpread.js","../../../node_modules/graphql-to-sparql/lib/handler/NodeHandlerSelectionInlineFragment.js","../../../node_modules/graphql-to-sparql/lib/handler/index.js","../../../node_modules/graphql/polyfills/symbols.mjs","../../../node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","../../../node_modules/graphql/jsutils/inspect.mjs","../../../node_modules/graphql/jsutils/devAssert.mjs","../../../node_modules/graphql/jsutils/instanceOf.mjs","../../../node_modules/graphql/language/source.mjs","../../../node_modules/graphql/language/location.mjs","../../../node_modules/graphql/language/printLocation.mjs","../../../node_modules/graphql/language/kinds.mjs","../../../node_modules/graphql/language/tokenKind.mjs","../../../node_modules/graphql/jsutils/isObjectLike.mjs","../../../node_modules/graphql/error/GraphQLError.mjs","../../../node_modules/graphql/error/syntaxError.mjs","../../../node_modules/graphql/jsutils/invariant.mjs","../../../node_modules/graphql/jsutils/defineInspect.mjs","../../../node_modules/graphql/language/ast.mjs","../../../node_modules/graphql/language/blockString.mjs","../../../node_modules/graphql/language/lexer.mjs","../../../node_modules/graphql/language/directiveLocation.mjs","../../../node_modules/graphql/language/parser.mjs","../../../node_modules/graphql/language/visitor.mjs","../../../node_modules/graphql/language/printer.mjs","../../../node_modules/graphql/language/predicates.mjs","../../../node_modules/relative-to-absolute-iri/lib/Resolve.js","../../../node_modules/relative-to-absolute-iri/index.js","../../../node_modules/graphql-to-sparql/node_modules/jsonld-context-parser/lib/ErrorCoded.js","../../../node_modules/http-link-header/lib/link.js","../../../node_modules/graphql-to-sparql/node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js","../../../node_modules/graphql-to-sparql/node_modules/jsonld-context-parser/lib/Util.js","../../../node_modules/graphql-to-sparql/node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js","../../../node_modules/graphql-to-sparql/node_modules/jsonld-context-parser/lib/ContextParser.js","../../../node_modules/graphql-to-sparql/node_modules/jsonld-context-parser/lib/IDocumentLoader.js","../../../node_modules/graphql-to-sparql/node_modules/jsonld-context-parser/lib/JsonLdContext.js","../../../node_modules/graphql-to-sparql/node_modules/jsonld-context-parser/index.js","../../../node_modules/graphql-to-sparql/lib/Util.js","../../../node_modules/graphql-to-sparql/lib/Converter.js","../../../node_modules/graphql-to-sparql/lib/IConvertSettings.js","../../../node_modules/graphql-to-sparql/index.js","../../../node_modules/@comunica/actor-query-parse-graphql/lib/ActorQueryParseGraphql.js","../../../node_modules/@comunica/actor-query-parse-graphql/lib/index.js","../../../node_modules/@comunica/actor-abstract-mediatyped/lib/ActorAbstractMediaTyped.js","../../../node_modules/@comunica/actor-abstract-mediatyped/lib/ActorAbstractMediaTypedFixed.js","../../../node_modules/@comunica/actor-abstract-mediatyped/lib/index.js","../../../node_modules/@comunica/bus-query-result-serialize/lib/ActorQueryResultSerialize.js","../../../node_modules/@comunica/bus-query-result-serialize/lib/ActorQueryResultSerializeFixedMediaTypes.js","../../../node_modules/@comunica/bus-query-result-serialize/lib/index.js","../../../node_modules/base64-js/index.js","../../../node_modules/ieee754/index.js","../../../node_modules/buffer/index.js","../../../node_modules/readable-stream/lib/ours/primordials.js","../../../node_modules/abort-controller/browser.js","../../../node_modules/readable-stream/lib/ours/util.js","../../../node_modules/readable-stream/lib/ours/errors.js","../../../node_modules/readable-stream/lib/internal/validators.js","../../../node_modules/readable-stream/lib/internal/streams/utils.js","../../../node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../../../node_modules/readable-stream/lib/internal/streams/destroy.js","../../../node_modules/readable-stream/lib/internal/streams/legacy.js","../../../node_modules/readable-stream/lib/internal/streams/add-abort-signal.js","../../../node_modules/readable-stream/lib/internal/streams/buffer_list.js","../../../node_modules/readable-stream/lib/internal/streams/state.js","../../../node_modules/safe-buffer/index.js","../../../node_modules/string_decoder/lib/string_decoder.js","../../../node_modules/readable-stream/lib/internal/streams/from.js","../../../node_modules/readable-stream/lib/internal/streams/readable.js","../../../node_modules/readable-stream/lib/internal/streams/writable.js","../../../node_modules/readable-stream/lib/internal/streams/duplexify.js","../../../node_modules/readable-stream/lib/internal/streams/duplex.js","../../../node_modules/readable-stream/lib/internal/streams/transform.js","../../../node_modules/readable-stream/lib/internal/streams/passthrough.js","../../../node_modules/readable-stream/lib/internal/streams/pipeline.js","../../../node_modules/readable-stream/lib/internal/streams/compose.js","../../../node_modules/readable-stream/lib/internal/streams/operators.js","../../../node_modules/readable-stream/lib/stream/promises.js","../../../node_modules/readable-stream/lib/stream.js","../../../node_modules/readable-stream/lib/ours/browser.js","../../../node_modules/@comunica/actor-query-result-serialize-json/lib/ActorQueryResultSerializeJson.js","../../../node_modules/@comunica/actor-query-result-serialize-json/lib/index.js","../../../node_modules/@comunica/actor-query-result-serialize-simple/lib/ActorQueryResultSerializeSimple.js","../../../node_modules/@comunica/actor-query-result-serialize-simple/lib/index.js","../../../node_modules/@comunica/actor-query-result-serialize-sparql-csv/lib/ActorQueryResultSerializeSparqlCsv.js","../../../node_modules/@comunica/actor-query-result-serialize-sparql-csv/lib/index.js","../../../node_modules/rdf-string-ttl/lib/TermUtil.js","../../../node_modules/rdf-string-ttl/index.js","../../../node_modules/@comunica/actor-query-result-serialize-sparql-tsv/lib/ActorQueryResultSerializeSparqlTsv.js","../../../node_modules/@comunica/actor-query-result-serialize-sparql-tsv/lib/index.js","../../../node_modules/@comunica/actor-query-result-serialize-sparql-xml/lib/XmlSerializer.js","../../../node_modules/@comunica/actor-query-result-serialize-sparql-xml/lib/ActorQueryResultSerializeSparqlXml.js","../../../node_modules/@comunica/actor-query-result-serialize-sparql-xml/lib/index.js","../../../node_modules/@comunica/actor-query-result-serialize-table/lib/ActorQueryResultSerializeTable.js","../../../node_modules/@comunica/actor-query-result-serialize-table/lib/index.js","../../../node_modules/rdf-literal/lib/Translator.js","../../../node_modules/rdf-literal/lib/handler/TypeHandlerBoolean.js","../../../node_modules/rdf-literal/lib/handler/TypeHandlerDate.js","../../../node_modules/rdf-literal/lib/handler/TypeHandlerNumberDouble.js","../../../node_modules/rdf-literal/lib/handler/TypeHandlerNumberInteger.js","../../../node_modules/rdf-literal/lib/handler/TypeHandlerString.js","../../../node_modules/rdf-literal/lib/handler/index.js","../../../node_modules/rdf-literal/lib/ITypeHandler.js","../../../node_modules/rdf-literal/index.js","../../../node_modules/@bergos/jsonparse/jsonparse.js","../../../node_modules/sparqljson-parse/lib/SparqlJsonParser.js","../../../node_modules/sparqljson-parse/index.js","../../../node_modules/sparqljson-to-tree/lib/Converter.js","../../../node_modules/sparqljson-to-tree/index.js","../../../node_modules/@comunica/actor-query-result-serialize-tree/lib/ActorQueryResultSerializeTree.js","../../../node_modules/@comunica/actor-query-result-serialize-tree/lib/index.js","../../../node_modules/@comunica/mediator-combine-union/lib/MediatorCombineUnion.js","../../../node_modules/@comunica/mediator-combine-union/lib/index.js","../../../node_modules/@comunica/mediator-number/lib/MediatorNumber.js","../../../node_modules/@comunica/mediator-number/lib/index.js","../../../node_modules/@comunica/bus-dereference/lib/ActorDereferenceBase.js","../../../node_modules/@comunica/bus-dereference/lib/ActorDereference.js","../../../node_modules/@comunica/bus-dereference/lib/ActorDereferenceParse.js","../../../node_modules/@comunica/bus-dereference/lib/index.js","../../../node_modules/@comunica/actor-dereference-fallback/lib/ActorDereferenceFallback.js","../../../node_modules/@comunica/actor-dereference-fallback/lib/index.js","../../../node_modules/@comunica/bus-rdf-join-entries-sort/lib/ActorRdfJoinEntriesSort.js","../../../node_modules/@comunica/bus-rdf-join-entries-sort/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-entries-sort-cardinality/lib/ActorRdfJoinEntriesSortCardinality.js","../../../node_modules/@comunica/actor-rdf-join-entries-sort-cardinality/lib/index.js","../../../node_modules/@comunica/bus-rdf-join-selectivity/lib/ActorRdfJoinSelectivity.js","../../../node_modules/@comunica/bus-rdf-join-selectivity/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-selectivity-variable-counting/lib/ActorRdfJoinSelectivityVariableCounting.js","../../../node_modules/@comunica/actor-rdf-join-selectivity-variable-counting/lib/index.js","../../../node_modules/@comunica/bus-rdf-metadata/lib/ActorRdfMetadata.js","../../../node_modules/@comunica/bus-rdf-metadata/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-primary-topic/lib/ActorRdfMetadataPrimaryTopic.js","../../../node_modules/@comunica/actor-rdf-metadata-primary-topic/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-all/lib/ActorRdfMetadataAll.js","../../../node_modules/@comunica/actor-rdf-metadata-all/lib/index.js","../../../node_modules/@comunica/bus-rdf-metadata-accumulate/lib/ActorRdfMetadataAccumulate.js","../../../node_modules/@comunica/bus-rdf-metadata-accumulate/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-accumulate-cardinality/lib/ActorRdfMetadataAccumulateCardinality.js","../../../node_modules/@comunica/actor-rdf-metadata-accumulate-cardinality/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-accumulate-pagesize/lib/ActorRdfMetadataAccumulatePageSize.js","../../../node_modules/@comunica/actor-rdf-metadata-accumulate-pagesize/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-accumulate-requesttime/lib/ActorRdfMetadataAccumulateRequestTime.js","../../../node_modules/@comunica/actor-rdf-metadata-accumulate-requesttime/lib/index.js","../../../node_modules/@comunica/bus-rdf-metadata-extract/lib/ActorRdfMetadataExtract.js","../../../node_modules/@comunica/bus-rdf-metadata-extract/lib/index.js","../../../node_modules/uritemplate/bin/uritemplate.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-hydra-controls/lib/ActorRdfMetadataExtractHydraControls.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-hydra-controls/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-hydra-count/lib/ActorRdfMetadataExtractHydraCount.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-hydra-count/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-hydra-pagesize/lib/ActorRdfMetadataExtractHydraPagesize.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-hydra-pagesize/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-request-time/lib/ActorRdfMetadataExtractRequestTime.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-request-time/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-allow-http-methods/lib/ActorRdfMetadataExtractAllowHttpMethods.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-allow-http-methods/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-put-accepted/lib/ActorRdfMetadataExtractPutAccepted.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-put-accepted/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-patch-sparql-update/lib/ActorRdfMetadataExtractPatchSparqlUpdate.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-patch-sparql-update/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-sparql-service/lib/ActorRdfMetadataExtractSparqlService.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-sparql-service/lib/index.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-void/lib/Definitions.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-void/lib/Estimators.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-void/lib/ActorRdfMetadataExtractVoid.js","../../../node_modules/@comunica/actor-rdf-metadata-extract-void/lib/index.js","../../../node_modules/@comunica/bus-rdf-parse/lib/ActorRdfParse.js","../../../node_modules/@comunica/bus-rdf-parse/lib/ActorRdfParseFixedMediaTypes.js","../../../node_modules/@comunica/bus-rdf-parse/lib/index.js","../../../node_modules/n3/src/IRIs.js","../../../node_modules/n3/src/N3Lexer.js","../../../node_modules/n3/src/N3DataFactory.js","../../../node_modules/n3/src/N3Parser.js","../../../node_modules/n3/src/N3Util.js","../../../node_modules/n3/src/Util.js","../../../node_modules/n3/src/BaseIRI.js","../../../node_modules/n3/src/N3Writer.js","../../../node_modules/n3/src/N3Store.js","../../../node_modules/n3/src/N3StoreFactory.js","../../../node_modules/n3/src/N3Reasoner.js","../../../node_modules/n3/src/N3StreamParser.js","../../../node_modules/n3/src/N3StreamWriter.js","../../../node_modules/n3/src/index.js","../../../node_modules/@comunica/actor-rdf-parse-n3/lib/ActorRdfParseN3.js","../../../node_modules/@comunica/actor-rdf-parse-n3/lib/index.js","../../../node_modules/xmlchars/xml/1.0/ed5.js","../../../node_modules/xmlchars/xml/1.1/ed2.js","../../../node_modules/xmlchars/xmlns/1.0/ed3.js","../../../node_modules/@rubensworks/saxes/saxes.js","../../../node_modules/rdfxml-streaming-parser/lib/ParseError.js","../../../node_modules/validate-iri/lib/Validate.js","../../../node_modules/validate-iri/index.js","../../../node_modules/rdfxml-streaming-parser/lib/RdfXmlParser.js","../../../node_modules/rdfxml-streaming-parser/index.js","../../../node_modules/@comunica/actor-rdf-parse-rdfxml/lib/ActorRdfParseRdfXml.js","../../../node_modules/@comunica/actor-rdf-parse-rdfxml/lib/index.js","../../../node_modules/rdfa-streaming-parser/lib/IActiveTag.js","../../../node_modules/rdfa-streaming-parser/lib/IHtmlParseListener.js","../../../node_modules/rdfa-streaming-parser/lib/IRdfaPattern.js","../../../node_modules/rdfa-streaming-parser/node_modules/entities/lib/generated/decode-data-html.js","../../../node_modules/rdfa-streaming-parser/node_modules/entities/lib/generated/decode-data-xml.js","../../../node_modules/rdfa-streaming-parser/node_modules/entities/lib/decode_codepoint.js","../../../node_modules/rdfa-streaming-parser/node_modules/entities/lib/decode.js","../../../node_modules/rdfa-streaming-parser/node_modules/htmlparser2/lib/Tokenizer.js","../../../node_modules/rdfa-streaming-parser/node_modules/htmlparser2/lib/Parser.js","../../../node_modules/domelementtype/lib/index.js","../../../node_modules/domhandler/lib/node.js","../../../node_modules/domhandler/lib/index.js","../../../node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-html.js","../../../node_modules/dom-serializer/node_modules/entities/lib/generated/decode-data-xml.js","../../../node_modules/dom-serializer/node_modules/entities/lib/decode_codepoint.js","../../../node_modules/dom-serializer/node_modules/entities/lib/decode.js","../../../node_modules/dom-serializer/node_modules/entities/lib/generated/encode-html.js","../../../node_modules/dom-serializer/node_modules/entities/lib/escape.js","../../../node_modules/dom-serializer/node_modules/entities/lib/encode.js","../../../node_modules/dom-serializer/node_modules/entities/lib/index.js","../../../node_modules/dom-serializer/lib/foreignNames.js","../../../node_modules/dom-serializer/lib/index.js","../../../node_modules/domutils/lib/stringify.js","../../../node_modules/domutils/lib/traversal.js","../../../node_modules/domutils/lib/manipulation.js","../../../node_modules/domutils/lib/querying.js","../../../node_modules/domutils/lib/legacy.js","../../../node_modules/domutils/lib/helpers.js","../../../node_modules/domutils/lib/feeds.js","../../../node_modules/domutils/lib/index.js","../../../node_modules/rdfa-streaming-parser/node_modules/htmlparser2/lib/index.js","../../../node_modules/rdfa-streaming-parser/lib/RdfaProfile.js","../../../node_modules/rdfa-streaming-parser/lib/Util.js","../../../node_modules/rdfa-streaming-parser/lib/RdfaParser.js","../../../node_modules/rdfa-streaming-parser/index.js","../../../node_modules/@comunica/actor-rdf-parse-xml-rdfa/lib/ActorRdfParseXmlRdfa.js","../../../node_modules/@comunica/actor-rdf-parse-xml-rdfa/lib/index.js","../../../node_modules/event-emitter-promisify/dist/index.js","../../../node_modules/@jeswr/stream-to-string/dist/index.js","../../../node_modules/shaclc-parse/lib/ShaclcParser.js","../../../node_modules/shaclc-parse/lib/index.js","../../../node_modules/@comunica/actor-rdf-parse-shaclc/lib/PrefixWrappingIterator.js","../../../node_modules/@comunica/actor-rdf-parse-shaclc/lib/ActorRdfParseShaclc.js","../../../node_modules/@comunica/actor-rdf-parse-shaclc/lib/index.js","../../../node_modules/entities/dist/commonjs/generated/decode-data-html.js","../../../node_modules/entities/dist/commonjs/generated/decode-data-xml.js","../../../node_modules/entities/dist/commonjs/decode-codepoint.js","../../../node_modules/entities/dist/commonjs/decode.js","../../../node_modules/htmlparser2/dist/commonjs/Tokenizer.js","../../../node_modules/htmlparser2/dist/commonjs/Parser.js","../../../node_modules/htmlparser2/dist/commonjs/index.js","../../../node_modules/@comunica/actor-rdf-parse-html/lib/ActorRdfParseHtml.js","../../../node_modules/@comunica/actor-rdf-parse-html/lib/index.js","../../../node_modules/@comunica/bus-rdf-parse-html/lib/ActorRdfParseHtml.js","../../../node_modules/@comunica/bus-rdf-parse-html/lib/index.js","../../../node_modules/microdata-rdf-streaming-parser/lib/propertyhandler/IItemPropertyHandler.js","../../../node_modules/microdata-rdf-streaming-parser/lib/propertyhandler/ItemPropertyHandlerContent.js","../../../node_modules/microdata-rdf-streaming-parser/lib/Util.js","../../../node_modules/microdata-rdf-streaming-parser/lib/propertyhandler/ItemPropertyHandlerNumber.js","../../../node_modules/microdata-rdf-streaming-parser/lib/propertyhandler/ItemPropertyHandlerTime.js","../../../node_modules/microdata-rdf-streaming-parser/lib/propertyhandler/ItemPropertyHandlerUrl.js","../../../node_modules/microdata-rdf-streaming-parser/lib/IHtmlParseListener.js","../../../node_modules/microdata-rdf-streaming-parser/lib/IItemScope.js","../../../node_modules/microdata-rdf-streaming-parser/lib/IVocabRegistry.js","../../../node_modules/microdata-rdf-streaming-parser/node_modules/entities/lib/generated/decode-data-html.js","../../../node_modules/microdata-rdf-streaming-parser/node_modules/entities/lib/generated/decode-data-xml.js","../../../node_modules/microdata-rdf-streaming-parser/node_modules/entities/lib/decode_codepoint.js","../../../node_modules/microdata-rdf-streaming-parser/node_modules/entities/lib/decode.js","../../../node_modules/microdata-rdf-streaming-parser/node_modules/htmlparser2/lib/Tokenizer.js","../../../node_modules/microdata-rdf-streaming-parser/node_modules/htmlparser2/lib/Parser.js","../../../node_modules/microdata-rdf-streaming-parser/node_modules/htmlparser2/lib/index.js","../../../node_modules/microdata-rdf-streaming-parser/lib/MicrodataRdfParser.js","../../../node_modules/microdata-rdf-streaming-parser/index.js","../../../node_modules/@comunica/actor-rdf-parse-html-microdata/lib/ActorRdfParseHtmlMicrodata.js","../../../node_modules/@comunica/actor-rdf-parse-html-microdata/lib/index.js","../../../node_modules/@comunica/actor-rdf-parse-html-rdfa/lib/ActorRdfParseHtmlRdfa.js","../../../node_modules/@comunica/actor-rdf-parse-html-rdfa/lib/index.js","../../../node_modules/@comunica/bus-rdf-resolve-hypermedia-links/lib/ActorRdfResolveHypermediaLinks.js","../../../node_modules/@comunica/bus-rdf-resolve-hypermedia-links/lib/index.js","../../../node_modules/@comunica/actor-rdf-resolve-hypermedia-links-next/lib/ActorRdfResolveHypermediaLinksNext.js","../../../node_modules/@comunica/actor-rdf-resolve-hypermedia-links-next/lib/index.js","../../../node_modules/@comunica/bus-rdf-resolve-hypermedia-links-queue/lib/ActorRdfResolveHypermediaLinksQueue.js","../../../node_modules/@comunica/bus-rdf-resolve-hypermedia-links-queue/lib/ILinkQueue.js","../../../node_modules/@comunica/bus-rdf-resolve-hypermedia-links-queue/lib/LinkQueueWrapper.js","../../../node_modules/@comunica/bus-rdf-resolve-hypermedia-links-queue/lib/index.js","../../../node_modules/@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo/lib/LinkQueueFifo.js","../../../node_modules/@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo/lib/ActorRdfResolveHypermediaLinksQueueFifo.js","../../../node_modules/@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo/lib/index.js","../../../node_modules/@comunica/bus-rdf-serialize/lib/ActorRdfSerialize.js","../../../node_modules/@comunica/bus-rdf-serialize/lib/ActorRdfSerializeFixedMediaTypes.js","../../../node_modules/@comunica/bus-rdf-serialize/lib/index.js","../../../node_modules/@comunica/actor-rdf-serialize-n3/lib/ActorRdfSerializeN3.js","../../../node_modules/@comunica/actor-rdf-serialize-n3/lib/index.js","../../../node_modules/jsonld-streaming-serializer/node_modules/jsonld-context-parser/lib/ErrorCoded.js","../../../node_modules/jsonld-streaming-serializer/node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js","../../../node_modules/jsonld-streaming-serializer/node_modules/jsonld-context-parser/lib/Util.js","../../../node_modules/jsonld-streaming-serializer/node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js","../../../node_modules/jsonld-streaming-serializer/node_modules/jsonld-context-parser/lib/ContextParser.js","../../../node_modules/jsonld-streaming-serializer/node_modules/jsonld-context-parser/lib/IDocumentLoader.js","../../../node_modules/jsonld-streaming-serializer/node_modules/jsonld-context-parser/lib/JsonLdContext.js","../../../node_modules/jsonld-streaming-serializer/node_modules/jsonld-context-parser/index.js","../../../node_modules/jsonld-streaming-serializer/lib/SeparatorType.js","../../../node_modules/jsonld-streaming-serializer/lib/Util.js","../../../node_modules/jsonld-streaming-serializer/lib/JsonLdSerializer.js","../../../node_modules/jsonld-streaming-serializer/index.js","../../../node_modules/@comunica/actor-rdf-serialize-jsonld/lib/ActorRdfSerializeJsonLd.js","../../../node_modules/@comunica/actor-rdf-serialize-jsonld/lib/index.js","../../../node_modules/arrayify-stream/index.js","../../../node_modules/@jeswr/prefixcc/dist/fragment.js","../../../node_modules/cross-fetch/dist/browser-ponyfill.js","../../../node_modules/@jeswr/prefixcc/dist/lookup/fetchContext.js","../../../node_modules/@jeswr/prefixcc/dist/lookup/lookupNamespace.js","../../../node_modules/@jeswr/prefixcc/dist/lookup/lookupPrefix.js","../../../node_modules/@jeswr/prefixcc/dist/lookup/lookupAllPrefixes.js","../../../node_modules/@jeswr/prefixcc/dist/lookup/index.js","../../../node_modules/@jeswr/prefixcc/dist/index.js","../../../node_modules/shaclc-write/dist/utils.js","../../../node_modules/shaclc-write/dist/property-param .js","../../../node_modules/shaclc-write/dist/base-prefixes.js","../../../node_modules/shaclc-write/dist/node-param.js","../../../node_modules/shaclc-write/dist/ShaclcGenerator.js","../../../node_modules/shaclc-write/dist/writer.js","../../../node_modules/shaclc-write/dist/volatile-store.js","../../../node_modules/shaclc-write/dist/index.js","../../../node_modules/@comunica/actor-rdf-serialize-shaclc/lib/ActorRdfSerializeShaclc.js","../../../node_modules/@comunica/actor-rdf-serialize-shaclc/lib/index.js","../../../node_modules/@comunica/bus-rdf-update-quads/lib/ActorRdfUpdateQuads.js","../../../node_modules/@comunica/bus-rdf-update-quads/lib/ActorRdfUpdateQuadsDestination.js","../../../node_modules/@comunica/bus-rdf-update-quads/lib/IQuadDestination.js","../../../node_modules/@comunica/bus-rdf-update-quads/lib/utils.js","../../../node_modules/@comunica/bus-rdf-update-quads/lib/index.js","../../../node_modules/@comunica/actor-rdf-update-quads-rdfjs-store/lib/RdfJsQuadDestination.js","../../../node_modules/@comunica/actor-rdf-update-quads-rdfjs-store/lib/ActorRdfUpdateQuadsRdfJsStore.js","../../../node_modules/@comunica/actor-rdf-update-quads-rdfjs-store/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-bnode/lib/ExpressionFunctionBnode.js","../../../node_modules/@comunica/actor-function-factory-expression-bnode/lib/ActorFunctionFactoryExpressionBnode.js","../../../node_modules/@comunica/actor-function-factory-expression-bnode/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-bound/lib/ExpressionFunctionBound.js","../../../node_modules/@comunica/actor-function-factory-expression-bound/lib/ActorFunctionFactoryExpressionBound.js","../../../node_modules/@comunica/actor-function-factory-expression-bound/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-coalesce/lib/ExpressionFunctionCoalesce.js","../../../node_modules/@comunica/actor-function-factory-expression-coalesce/lib/ActorFunctionFactoryExpressionCoalesce.js","../../../node_modules/@comunica/actor-function-factory-expression-coalesce/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-concat/lib/ExpressionFunctionConcat.js","../../../node_modules/@comunica/actor-function-factory-expression-concat/lib/ActorFunctionFactoryExpressionConcat.js","../../../node_modules/@comunica/actor-function-factory-expression-concat/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-extensions/lib/NamedExtension.js","../../../node_modules/@comunica/actor-function-factory-expression-extensions/lib/ActorFunctionFactoryExpressionExtensions.js","../../../node_modules/@comunica/actor-function-factory-expression-extensions/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-if/lib/ExpressionFunctionIf.js","../../../node_modules/@comunica/actor-function-factory-expression-if/lib/ActorFunctionFactoryExpressionIf.js","../../../node_modules/@comunica/actor-function-factory-expression-if/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-logical-and/lib/ExpressionFunctionLogicalAnd.js","../../../node_modules/@comunica/actor-function-factory-expression-logical-and/lib/ActorFunctionFactoryExpressionLogicalAnd.js","../../../node_modules/@comunica/actor-function-factory-expression-logical-and/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-logical-or/lib/ExpressionFunctionLogicalOr.js","../../../node_modules/@comunica/actor-function-factory-expression-logical-or/lib/ActorFunctionFactoryExpressionLogicalOr.js","../../../node_modules/@comunica/actor-function-factory-expression-logical-or/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-same-term/lib/ExpressionFunctionSameTerm.js","../../../node_modules/@comunica/actor-function-factory-expression-same-term/lib/ActorFunctionFactoryExpressionSameTerm.js","../../../node_modules/@comunica/actor-function-factory-expression-same-term/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-abs/lib/TermFunctionAbs.js","../../../node_modules/@comunica/actor-function-factory-term-abs/lib/ActorFunctionFactoryTermAbs.js","../../../node_modules/@comunica/actor-function-factory-term-abs/lib/index.js","../../../node_modules/bignumber.js/bignumber.js","../../../node_modules/@comunica/actor-function-factory-term-addition/lib/TermFunctionAddition.js","../../../node_modules/@comunica/actor-function-factory-term-addition/lib/ActorFunctionFactoryTermAddition.js","../../../node_modules/@comunica/actor-function-factory-term-addition/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-ceil/lib/TermFunctionCeil.js","../../../node_modules/@comunica/actor-function-factory-term-ceil/lib/ActorFunctionFactoryTermCeil.js","../../../node_modules/@comunica/actor-function-factory-term-ceil/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-contains/lib/TermFunctionContains.js","../../../node_modules/@comunica/actor-function-factory-term-contains/lib/ActorFunctionFactoryTermContains.js","../../../node_modules/@comunica/actor-function-factory-term-contains/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-datatype/lib/TermFunctionDatatype.js","../../../node_modules/@comunica/actor-function-factory-term-datatype/lib/ActorFunctionFactoryTermDatatype.js","../../../node_modules/@comunica/actor-function-factory-term-datatype/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-day/lib/TermFunctionDay.js","../../../node_modules/@comunica/actor-function-factory-term-day/lib/ActorFunctionFactoryTermDay.js","../../../node_modules/@comunica/actor-function-factory-term-day/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-division/lib/TermFunctionDivision.js","../../../node_modules/@comunica/actor-function-factory-term-division/lib/ActorFunctionFactoryTermDivision.js","../../../node_modules/@comunica/actor-function-factory-term-division/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-encode-for-uri/lib/TermFunctionEncodeForUri.js","../../../node_modules/@comunica/actor-function-factory-term-encode-for-uri/lib/ActorFunctionFactoryTermEncodeForUri.js","../../../node_modules/@comunica/actor-function-factory-term-encode-for-uri/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-equality/lib/TermFunctionEquality.js","../../../node_modules/@comunica/actor-function-factory-term-equality/lib/ActorFunctionFactoryTermEquality.js","../../../node_modules/@comunica/actor-function-factory-term-equality/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-floor/lib/TermFunctionFloor.js","../../../node_modules/@comunica/actor-function-factory-term-floor/lib/ActorFunctionFactoryTermFloor.js","../../../node_modules/@comunica/actor-function-factory-term-floor/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-hours/lib/TermFunctionHours.js","../../../node_modules/@comunica/actor-function-factory-term-hours/lib/ActorFunctionFactoryTermHours.js","../../../node_modules/@comunica/actor-function-factory-term-hours/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-iri/lib/TermFunctionIri.js","../../../node_modules/@comunica/actor-function-factory-term-iri/lib/ActorFunctionFactoryTermIri.js","../../../node_modules/@comunica/actor-function-factory-term-iri/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-is-blank/lib/TermFunctionIsBlank.js","../../../node_modules/@comunica/actor-function-factory-term-is-blank/lib/ActorFunctionFactoryTermIsBlank.js","../../../node_modules/@comunica/actor-function-factory-term-is-blank/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-is-iri/lib/TermFunctionIsIri.js","../../../node_modules/@comunica/actor-function-factory-term-is-iri/lib/ActorFunctionFactoryTermIsIri.js","../../../node_modules/@comunica/actor-function-factory-term-is-iri/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-is-literal/lib/TermFunctionIsLiteral.js","../../../node_modules/@comunica/actor-function-factory-term-is-literal/lib/ActorFunctionFactoryTermIsLiteral.js","../../../node_modules/@comunica/actor-function-factory-term-is-literal/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-is-numeric/lib/TermFunctionIsNumeric.js","../../../node_modules/@comunica/actor-function-factory-term-is-numeric/lib/ActorFunctionFactoryTermIsNumeric.js","../../../node_modules/@comunica/actor-function-factory-term-is-numeric/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-is-triple/lib/TermFunctionIsTriple.js","../../../node_modules/@comunica/actor-function-factory-term-is-triple/lib/ActorFunctionFactoryTermIsTriple.js","../../../node_modules/@comunica/actor-function-factory-term-is-triple/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-lang/lib/TermFunctionLang.js","../../../node_modules/@comunica/actor-function-factory-term-lang/lib/ActorFunctionFactoryTermLang.js","../../../node_modules/@comunica/actor-function-factory-term-lang/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-langmatches/lib/TermFunctionLangmatches.js","../../../node_modules/@comunica/actor-function-factory-term-langmatches/lib/ActorFunctionFactoryTermLangmatches.js","../../../node_modules/@comunica/actor-function-factory-term-langmatches/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-lcase/lib/TermFunctionLcase.js","../../../node_modules/@comunica/actor-function-factory-term-lcase/lib/ActorFunctionFactoryTermLcase.js","../../../node_modules/@comunica/actor-function-factory-term-lcase/lib/index.js","../../../node_modules/spark-md5/spark-md5.js","../../../node_modules/@comunica/actor-function-factory-term-md5/lib/TermFunctionMd5.js","../../../node_modules/@comunica/actor-function-factory-term-md5/lib/ActorFunctionFactoryTermMd5.js","../../../node_modules/@comunica/actor-function-factory-term-md5/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-minutes/lib/TermFunctionMinutes.js","../../../node_modules/@comunica/actor-function-factory-term-minutes/lib/ActorFunctionFactoryTermMinutes.js","../../../node_modules/@comunica/actor-function-factory-term-minutes/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-month/lib/TermFunctionMonth.js","../../../node_modules/@comunica/actor-function-factory-term-month/lib/ActorFunctionFactoryTermMonth.js","../../../node_modules/@comunica/actor-function-factory-term-month/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-multiplication/lib/TermFunctionMultiplication.js","../../../node_modules/@comunica/actor-function-factory-term-multiplication/lib/ActorFunctionFactoryTermMultiplication.js","../../../node_modules/@comunica/actor-function-factory-term-multiplication/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-not/lib/TermFunctionNot.js","../../../node_modules/@comunica/actor-function-factory-term-not/lib/ActorFunctionFactoryTermNot.js","../../../node_modules/@comunica/actor-function-factory-term-not/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-now/lib/TermFunctionNow.js","../../../node_modules/@comunica/actor-function-factory-term-now/lib/ActorFunctionFactoryTermNow.js","../../../node_modules/@comunica/actor-function-factory-term-now/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-object/lib/TermFunctionObject.js","../../../node_modules/@comunica/actor-function-factory-term-object/lib/ActorFunctionFactoryTermObject.js","../../../node_modules/@comunica/actor-function-factory-term-object/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-predicate/lib/TermFunctionPredicate.js","../../../node_modules/@comunica/actor-function-factory-term-predicate/lib/ActorFunctionFactoryTermPredicate.js","../../../node_modules/@comunica/actor-function-factory-term-predicate/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-rand/lib/TermFunctionRand.js","../../../node_modules/@comunica/actor-function-factory-term-rand/lib/ActorFunctionFactoryTermRand.js","../../../node_modules/@comunica/actor-function-factory-term-rand/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-regex/lib/TermFunctionRegex.js","../../../node_modules/@comunica/actor-function-factory-term-regex/lib/ActorFunctionFactoryTermRegex.js","../../../node_modules/@comunica/actor-function-factory-term-regex/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-replace/lib/TermFunctionReplace.js","../../../node_modules/@comunica/actor-function-factory-term-replace/lib/ActorFunctionFactoryTermReplace.js","../../../node_modules/@comunica/actor-function-factory-term-replace/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-round/lib/TermFunctionRound.js","../../../node_modules/@comunica/actor-function-factory-term-round/lib/ActorFunctionFactoryTermRound.js","../../../node_modules/@comunica/actor-function-factory-term-round/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-seconds/lib/TermFunctionSeconds.js","../../../node_modules/@comunica/actor-function-factory-term-seconds/lib/ActorFunctionFactoryTermSeconds.js","../../../node_modules/@comunica/actor-function-factory-term-seconds/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-sha1/lib/TermFunctionSha1.js","../../../node_modules/@comunica/actor-function-factory-term-sha1/lib/ActorFunctionFactoryTermSha1.js","../../../node_modules/@comunica/actor-function-factory-term-sha1/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-sha256/lib/TermFunctionSha256.js","../../../node_modules/@comunica/actor-function-factory-term-sha256/lib/ActorFunctionFactoryTermSha256.js","../../../node_modules/@comunica/actor-function-factory-term-sha256/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-sha384/lib/TermFunctionSha384.js","../../../node_modules/@comunica/actor-function-factory-term-sha384/lib/ActorFunctionFactoryTermSha384.js","../../../node_modules/@comunica/actor-function-factory-term-sha384/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-sha512/lib/TermFunctionSha512.js","../../../node_modules/@comunica/actor-function-factory-term-sha512/lib/ActorFunctionFactoryTermSha512.js","../../../node_modules/@comunica/actor-function-factory-term-sha512/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-str-after/lib/TermFunctionStrAfter.js","../../../node_modules/@comunica/actor-function-factory-term-str-after/lib/ActorFunctionFactoryTermStrAfter.js","../../../node_modules/@comunica/actor-function-factory-term-str-after/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-str-before/lib/TermFunctionStrBefore.js","../../../node_modules/@comunica/actor-function-factory-term-str-before/lib/ActorFunctionFactoryTermStrBefore.js","../../../node_modules/@comunica/actor-function-factory-term-str-before/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-str-dt/lib/TermFunctionStrDt.js","../../../node_modules/@comunica/actor-function-factory-term-str-dt/lib/ActorFunctionFactoryTermStrDt.js","../../../node_modules/@comunica/actor-function-factory-term-str-dt/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-str-ends/lib/TermFunctionStrEnds.js","../../../node_modules/@comunica/actor-function-factory-term-str-ends/lib/ActorFunctionFactoryTermStrEnds.js","../../../node_modules/@comunica/actor-function-factory-term-str-ends/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-str-lang/lib/TermFunctionStrLang.js","../../../node_modules/@comunica/actor-function-factory-term-str-lang/lib/ActorFunctionFactoryTermStrLang.js","../../../node_modules/@comunica/actor-function-factory-term-str-lang/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-str-len/lib/TermFunctionStrLen.js","../../../node_modules/@comunica/actor-function-factory-term-str-len/lib/ActorFunctionFactoryTermStrLen.js","../../../node_modules/@comunica/actor-function-factory-term-str-len/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-str-starts/lib/TermFunctionStrStarts.js","../../../node_modules/@comunica/actor-function-factory-term-str-starts/lib/ActorFunctionFactoryTermStrStarts.js","../../../node_modules/@comunica/actor-function-factory-term-str-starts/lib/index.js","../../../node_modules/uuid/dist/cjs-browser/max.js","../../../node_modules/uuid/dist/cjs-browser/nil.js","../../../node_modules/uuid/dist/cjs-browser/regex.js","../../../node_modules/uuid/dist/cjs-browser/validate.js","../../../node_modules/uuid/dist/cjs-browser/parse.js","../../../node_modules/uuid/dist/cjs-browser/stringify.js","../../../node_modules/uuid/dist/cjs-browser/rng.js","../../../node_modules/uuid/dist/cjs-browser/v1.js","../../../node_modules/uuid/dist/cjs-browser/v1ToV6.js","../../../node_modules/uuid/dist/cjs-browser/md5.js","../../../node_modules/uuid/dist/cjs-browser/v35.js","../../../node_modules/uuid/dist/cjs-browser/v3.js","../../../node_modules/uuid/dist/cjs-browser/native.js","../../../node_modules/uuid/dist/cjs-browser/v4.js","../../../node_modules/uuid/dist/cjs-browser/sha1.js","../../../node_modules/uuid/dist/cjs-browser/v5.js","../../../node_modules/uuid/dist/cjs-browser/v6.js","../../../node_modules/uuid/dist/cjs-browser/v6ToV1.js","../../../node_modules/uuid/dist/cjs-browser/v7.js","../../../node_modules/uuid/dist/cjs-browser/version.js","../../../node_modules/uuid/dist/cjs-browser/index.js","../../../node_modules/@comunica/actor-function-factory-term-str-uuid/lib/TermFunctionStrUuid.js","../../../node_modules/@comunica/actor-function-factory-term-str-uuid/lib/ActorFunctionFactoryTermStrUuid.js","../../../node_modules/@comunica/actor-function-factory-term-str-uuid/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-str/lib/TermFunctionStr.js","../../../node_modules/@comunica/actor-function-factory-term-str/lib/ActorFunctionFactoryTermStr.js","../../../node_modules/@comunica/actor-function-factory-term-str/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-sub-str/lib/TermFunctionSubStr.js","../../../node_modules/@comunica/actor-function-factory-term-sub-str/lib/ActorFunctionFactoryTermSubStr.js","../../../node_modules/@comunica/actor-function-factory-term-sub-str/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-subject/lib/TermFunctionSubject.js","../../../node_modules/@comunica/actor-function-factory-term-subject/lib/ActorFunctionFactoryTermSubject.js","../../../node_modules/@comunica/actor-function-factory-term-subject/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-subtraction/lib/TermFunctionSubtraction.js","../../../node_modules/@comunica/actor-function-factory-term-subtraction/lib/ActorFunctionFactoryTermSubtraction.js","../../../node_modules/@comunica/actor-function-factory-term-subtraction/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-timezone/lib/TermFunctionTimezone.js","../../../node_modules/@comunica/actor-function-factory-term-timezone/lib/ActorFunctionFactoryTermTimezone.js","../../../node_modules/@comunica/actor-function-factory-term-timezone/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-triple/lib/TermFunctionTriple.js","../../../node_modules/@comunica/actor-function-factory-term-triple/lib/ActorFunctionFactoryTermTriple.js","../../../node_modules/@comunica/actor-function-factory-term-triple/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-tz/lib/TermFunctionTz.js","../../../node_modules/@comunica/actor-function-factory-term-tz/lib/ActorFunctionFactoryTermTz.js","../../../node_modules/@comunica/actor-function-factory-term-tz/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-ucase/lib/TermFunctionUcase.js","../../../node_modules/@comunica/actor-function-factory-term-ucase/lib/ActorFunctionFactoryTermUcase.js","../../../node_modules/@comunica/actor-function-factory-term-ucase/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-unary-minus/lib/TermFunctionUnaryMinus.js","../../../node_modules/@comunica/actor-function-factory-term-unary-minus/lib/ActorFunctionFactoryTermUnaryMinus.js","../../../node_modules/@comunica/actor-function-factory-term-unary-minus/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-unary-plus/lib/TermFunctionUnaryPlus.js","../../../node_modules/@comunica/actor-function-factory-term-unary-plus/lib/ActorFunctionFactoryTermUnaryPlus.js","../../../node_modules/@comunica/actor-function-factory-term-unary-plus/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-uuid/lib/TermFunctionUuid.js","../../../node_modules/@comunica/actor-function-factory-term-uuid/lib/ActorFunctionFactoryTermUuid.js","../../../node_modules/@comunica/actor-function-factory-term-uuid/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-boolean/lib/TermFunctionXsdToBoolean.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-boolean/lib/ActorFunctionFactoryTermXsdToBoolean.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-boolean/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-date/lib/TermFunctionXsdToDate.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-date/lib/ActorFunctionFactoryTermXsdToDate.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-date/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-datetime/lib/TermFunctionXsdToDatetime.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-datetime/lib/ActorFunctionFactoryTermXsdToDatetime.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-datetime/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-day-time-duration/lib/TermFunctionXsdToDayTimeDuration.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-day-time-duration/lib/ActorFunctionFactoryTermXsdToDayTimeDuration.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-day-time-duration/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-decimal/lib/TermFunctionXsdToDecimal.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-decimal/lib/ActorFunctionFactoryTermXsdToDecimal.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-decimal/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-double/lib/TermFunctionXsdToDouble.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-double/lib/ActorFunctionFactoryTermXsdToDouble.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-double/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-duration/lib/TermFunctionXsdToDuration.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-duration/lib/ActorFunctionFactoryTermXsdToDuration.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-duration/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-float/lib/TermFunctionXsdToFloat.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-float/lib/ActorFunctionFactoryTermXsdToFloat.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-float/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-integer/lib/TermFunctionXsdToInteger.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-integer/lib/ActorFunctionFactoryTermXsdToInteger.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-integer/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-string/lib/TermFunctionXsdToString.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-string/lib/ActorFunctionFactoryTermXsdToString.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-string/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-time/lib/TermFunctionXsdToTime.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-time/lib/ActorFunctionFactoryTermXsdToTime.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-time/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-year-month-duration/lib/TermFunctionXsdToYearMonthDuration.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-year-month-duration/lib/ActorFunctionFactoryTermXsdToYearMonthDuration.js","../../../node_modules/@comunica/actor-function-factory-term-xsd-to-year-month-duration/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-year/lib/TermFunctionYear.js","../../../node_modules/@comunica/actor-function-factory-term-year/lib/ActorFunctionFactoryTermYear.js","../../../node_modules/@comunica/actor-function-factory-term-year/lib/index.js","../../../node_modules/readable-from-web/lib/ReadableFromWeb.js","../../../node_modules/readable-from-web/lib/index.js","../../../node_modules/is-stream/index.js","../../../node_modules/readable-stream-node-to-web/index.js","../../../node_modules/@comunica/bus-http/lib/ActorHttp.js","../../../node_modules/@comunica/bus-http/lib/utils.js","../../../node_modules/@comunica/bus-http/lib/index.js","../../../node_modules/@comunica/actor-http-fetch/lib/FetchInitPreprocessor-browser.js","../../../node_modules/@comunica/actor-http-fetch/lib/ActorHttpFetch.js","../../../node_modules/@comunica/actor-http-fetch/lib/index.js","../../../node_modules/@comunica/actor-query-operation-source/lib/ActorQueryOperationSource.js","../../../node_modules/@comunica/actor-query-operation-source/lib/index.js","../../../node_modules/@comunica/mediator-join-coefficients-fixed/lib/MediatorJoinCoefficientsFixed.js","../../../node_modules/@comunica/mediator-join-coefficients-fixed/lib/index.js","../../../node_modules/@comunica/bus-http-invalidate/lib/ActorHttpInvalidate.js","../../../node_modules/@comunica/bus-http-invalidate/lib/ActorHttpInvalidateListenable.js","../../../node_modules/@comunica/bus-http-invalidate/lib/index.js","../../../node_modules/@comunica/mediator-all/lib/MediatorAll.js","../../../node_modules/@comunica/mediator-all/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-entries-sort-selectivity/lib/ActorRdfJoinEntriesSortSelectivity.js","../../../node_modules/@comunica/actor-rdf-join-entries-sort-selectivity/lib/index.js","../../../node_modules/@comunica/utils-iterator/lib/ChunkedIterator.js","../../../node_modules/@comunica/utils-iterator/lib/ClosableIterator.js","../../../node_modules/@comunica/utils-iterator/lib/ClosableTransformIterator.js","../../../node_modules/@comunica/utils-iterator/lib/instrumentIterator.js","../../../node_modules/@comunica/utils-iterator/lib/index.js","../../../node_modules/@comunica/bus-rdf-join/lib/ActorRdfJoin.js","../../../node_modules/@comunica/bus-rdf-join/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-inner-single/lib/ActorRdfJoinSingle.js","../../../node_modules/@comunica/actor-rdf-join-inner-single/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-inner-multi-empty/lib/ActorRdfJoinMultiEmpty.js","../../../node_modules/@comunica/actor-rdf-join-inner-multi-empty/lib/index.js","../../../node_modules/@comunica/utils-bindings-index/lib/BindingsIndexDef.js","../../../node_modules/@comunica/utils-bindings-index/lib/BindingsIndexUndef.js","../../../node_modules/@comunica/utils-bindings-index/lib/IBindingsIndex.js","../../../node_modules/@comunica/utils-bindings-index/lib/index.js","../../../node_modules/asyncjoin/join/DynamicNestedLoopJoin.js","../../../node_modules/asyncjoin/join/HashJoin.js","../../../node_modules/asyncjoin/join/NestedLoopJoin.js","../../../node_modules/asyncjoin/join/SymmetricHashJoin.js","../../../node_modules/asyncjoin/util/MergeIterator.js","../../../node_modules/asyncjoin/index.js","../../../node_modules/@comunica/actor-rdf-join-inner-hash/lib/ActorRdfJoinHash.js","../../../node_modules/@comunica/actor-rdf-join-inner-hash/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-inner-symmetrichash/lib/ActorRdfJoinSymmetricHash.js","../../../node_modules/@comunica/actor-rdf-join-inner-symmetrichash/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-inner-nestedloop/lib/ActorRdfJoinNestedLoop.js","../../../node_modules/@comunica/actor-rdf-join-inner-nestedloop/lib/index.js","../../../node_modules/@comunica/utils-bindings-factory/lib/bindingsToString.js","../../../node_modules/@comunica/utils-bindings-factory/lib/Bindings.js","../../../node_modules/@comunica/utils-bindings-factory/lib/BindingsFactory.js","../../../node_modules/@comunica/utils-bindings-factory/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-optional-hash/lib/ActorRdfJoinOptionalHash.js","../../../node_modules/@comunica/actor-rdf-join-optional-hash/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-optional-nestedloop/lib/ActorRdfJoinOptionalNestedLoop.js","../../../node_modules/@comunica/actor-rdf-join-optional-nestedloop/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-minus-hash/lib/ActorRdfJoinMinusHash.js","../../../node_modules/@comunica/actor-rdf-join-minus-hash/lib/index.js","../../../node_modules/@comunica/bus-dereference-rdf/lib/ActorDereferenceRdf.js","../../../node_modules/@comunica/bus-dereference-rdf/lib/index.js","../../../node_modules/@comunica/actor-dereference-rdf-parse/lib/ActorDereferenceRdfParse.js","../../../node_modules/@comunica/actor-dereference-rdf-parse/lib/index.js","../../../node_modules/@comunica/actor-rdf-parse-html-script/lib/HtmlScriptListener.js","../../../node_modules/@comunica/actor-rdf-parse-html-script/lib/ActorRdfParseHtmlScript.js","../../../node_modules/@comunica/actor-rdf-parse-html-script/lib/index.js","../../../node_modules/@comunica/actor-query-result-serialize-rdf/lib/ActorQueryResultSerializeRdf.js","../../../node_modules/@comunica/actor-query-result-serialize-rdf/lib/index.js","../../../node_modules/@comunica/bus-bindings-aggregator-factory/lib/ActorBindingsAggregatorFactory.js","../../../node_modules/@comunica/bus-bindings-aggregator-factory/lib/AggregateEvaluator.js","../../../node_modules/@comunica/bus-bindings-aggregator-factory/lib/index.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-group-concat/lib/GroupConcatAggregator.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-group-concat/lib/ActorBindingsAggregatorFactoryGroupConcat.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-group-concat/lib/index.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-count/lib/CountAggregator.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-count/lib/ActorBindingsAggregatorFactoryCount.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-count/lib/index.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-sample/lib/SampleAggregator.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-sample/lib/ActorBindingsAggregatorFactorySample.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-sample/lib/index.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-wildcard-count/lib/WildcardCountAggregator.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-wildcard-count/lib/ActorBindingsAggregatorFactoryWildcardCount.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-wildcard-count/lib/index.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-average/lib/AverageAggregator.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-average/lib/ActorBindingsAggregatorFactoryAverage.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-average/lib/index.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-sum/lib/SumAggregator.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-sum/lib/ActorBindingsAggregatorFactorySum.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-sum/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-in/lib/ExpressionFunctionIn.js","../../../node_modules/@comunica/actor-function-factory-expression-in/lib/ActorFunctionFactoryExpressionIn.js","../../../node_modules/@comunica/actor-function-factory-expression-in/lib/index.js","../../../node_modules/@comunica/actor-function-factory-expression-not-in/lib/ExpressionFunctionNotIn.js","../../../node_modules/@comunica/actor-function-factory-expression-not-in/lib/ActorFunctionFactoryExpressionNotIn.js","../../../node_modules/@comunica/actor-function-factory-expression-not-in/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-greater-than-equal/lib/TermFunctionGreaterThanEqual.js","../../../node_modules/@comunica/actor-function-factory-term-greater-than-equal/lib/ActorFunctionFactoryTermGreaterThanEqual.js","../../../node_modules/@comunica/actor-function-factory-term-greater-than-equal/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-greater-than/lib/TermFunctionGreaterThan.js","../../../node_modules/@comunica/actor-function-factory-term-greater-than/lib/ActorFunctionFactoryTermGreaterThan.js","../../../node_modules/@comunica/actor-function-factory-term-greater-than/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-inequality/lib/TermFunctionInequality.js","../../../node_modules/@comunica/actor-function-factory-term-inequality/lib/ActorFunctionFactoryTermInequality.js","../../../node_modules/@comunica/actor-function-factory-term-inequality/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-lesser-than-equal/lib/TermFunctionLesserThanEqual.js","../../../node_modules/@comunica/actor-function-factory-term-lesser-than-equal/lib/ActorFunctionFactoryTermLesserThanEqual.js","../../../node_modules/@comunica/actor-function-factory-term-lesser-than-equal/lib/index.js","../../../node_modules/@comunica/actor-function-factory-term-lesser-than/lib/TermFunctionLesserThan.js","../../../node_modules/@comunica/actor-function-factory-term-lesser-than/lib/ActorFunctionFactoryTermLesserThan.js","../../../node_modules/@comunica/actor-function-factory-term-lesser-than/lib/index.js","../../../node_modules/@comunica/actor-http-wayback/lib/ActorHttpWayback.js","../../../node_modules/@comunica/actor-http-wayback/lib/index.js","../../../node_modules/jsonld-streaming-parser/node_modules/jsonld-context-parser/lib/ErrorCoded.js","../../../node_modules/jsonld-streaming-parser/node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js","../../../node_modules/jsonld-streaming-parser/node_modules/jsonld-context-parser/lib/Util.js","../../../node_modules/jsonld-streaming-parser/node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js","../../../node_modules/jsonld-streaming-parser/node_modules/jsonld-context-parser/lib/ContextParser.js","../../../node_modules/jsonld-streaming-parser/node_modules/jsonld-context-parser/lib/IDocumentLoader.js","../../../node_modules/jsonld-streaming-parser/node_modules/jsonld-context-parser/lib/JsonLdContext.js","../../../node_modules/jsonld-streaming-parser/node_modules/jsonld-context-parser/index.js","../../../node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIdentifier.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js","../../../node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIndex.js","../../../node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerLanguage.js","../../../node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerType.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js","../../../node_modules/canonicalize/lib/canonicalize.js","../../../node_modules/jsonld-streaming-parser/lib/Util.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerArrayValue.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerInvalidFallback.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordContext.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordGraph.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordId.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordIncluded.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordNest.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordType.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordUnknownFallback.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordValue.js","../../../node_modules/jsonld-streaming-parser/lib/ContextTree.js","../../../node_modules/jsonld-streaming-parser/lib/ParsingContext.js","../../../node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordAnnotation.js","../../../node_modules/jsonld-streaming-parser/lib/JsonLdParser.js","../../../node_modules/jsonld-streaming-parser/index.js","../../../node_modules/cross-fetch/dist/browser-polyfill.js","../../../node_modules/jsonld-context-parser/lib/ErrorCoded.js","../../../node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js","../../../node_modules/jsonld-context-parser/lib/Util.js","../../../node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js","../../../node_modules/jsonld-context-parser/lib/ContextParser.js","../../../node_modules/jsonld-context-parser/lib/IDocumentLoader.js","../../../node_modules/jsonld-context-parser/lib/JsonLdContext.js","../../../node_modules/jsonld-context-parser/index.js","../../../node_modules/@comunica/actor-rdf-parse-jsonld/lib/DocumentLoaderMediated.js","../../../node_modules/@comunica/actor-rdf-parse-jsonld/lib/ActorRdfParseJsonLd.js","../../../node_modules/@comunica/actor-rdf-parse-jsonld/lib/index.js","../../../node_modules/@comunica/bus-rdf-update-hypermedia/lib/ActorRdfUpdateHypermedia.js","../../../node_modules/@comunica/bus-rdf-update-hypermedia/lib/index.js","../../../node_modules/@comunica/actor-rdf-update-hypermedia-patch-sparql-update/lib/QuadDestinationPatchSparqlUpdate.js","../../../node_modules/@comunica/actor-rdf-update-hypermedia-patch-sparql-update/lib/ActorRdfUpdateHypermediaPatchSparqlUpdate.js","../../../node_modules/@comunica/actor-rdf-update-hypermedia-patch-sparql-update/lib/index.js","../../../node_modules/@comunica/actor-rdf-update-hypermedia-put-ldp/lib/QuadDestinationPutLdp.js","../../../node_modules/@comunica/actor-rdf-update-hypermedia-put-ldp/lib/ActorRdfUpdateHypermediaPutLdp.js","../../../node_modules/@comunica/actor-rdf-update-hypermedia-put-ldp/lib/index.js","../../../node_modules/sparqlxml-parse/lib/SparqlXmlParser.js","../../../node_modules/sparqlxml-parse/index.js","../../../node_modules/promise-polyfill/Promise.js","../../../node_modules/stream-to-string/index.js","../../../node_modules/fetch-sparql-endpoint/lib/SparqlEndpointFetcher.js","../../../node_modules/fetch-sparql-endpoint/index.js","../../../node_modules/@comunica/actor-rdf-update-hypermedia-sparql/lib/QuadDestinationSparql.js","../../../node_modules/@comunica/actor-rdf-update-hypermedia-sparql/lib/ActorRdfUpdateHypermediaSparql.js","../../../node_modules/@comunica/actor-rdf-update-hypermedia-sparql/lib/index.js","../../../node_modules/@comunica/actor-query-operation-ask/lib/ActorQueryOperationAsk.js","../../../node_modules/@comunica/actor-query-operation-ask/lib/index.js","../../../node_modules/@comunica/actor-query-operation-bgp-join/lib/ActorQueryOperationBgpJoin.js","../../../node_modules/@comunica/actor-query-operation-bgp-join/lib/index.js","../../../node_modules/@comunica/actor-query-operation-construct/lib/BindingsToQuadsIterator.js","../../../node_modules/@comunica/actor-query-operation-construct/lib/ActorQueryOperationConstruct.js","../../../node_modules/@comunica/actor-query-operation-construct/lib/index.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/node_modules/rdf-data-factory/lib/BlankNode.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/node_modules/rdf-data-factory/lib/DefaultGraph.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/node_modules/rdf-data-factory/lib/NamedNode.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/node_modules/rdf-data-factory/lib/Literal.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/node_modules/rdf-data-factory/lib/Quad.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/node_modules/rdf-data-factory/lib/Variable.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/node_modules/rdf-data-factory/lib/DataFactory.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/node_modules/rdf-data-factory/index.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/node_modules/rdf-string/lib/TermUtil.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/node_modules/rdf-string/index.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/lib/ActorQueryOperationDistinctIdentity.js","../../../node_modules/@comunica/actor-query-operation-distinct-identity/lib/index.js","../../../node_modules/@comunica/actor-query-operation-extend/lib/ActorQueryOperationExtend.js","../../../node_modules/@comunica/actor-query-operation-extend/lib/index.js","../../../node_modules/@comunica/actor-query-operation-filter/lib/ActorQueryOperationFilter.js","../../../node_modules/@comunica/actor-query-operation-filter/lib/index.js","../../../node_modules/@comunica/actor-query-operation-from-quad/lib/ActorQueryOperationFromQuad.js","../../../node_modules/@comunica/actor-query-operation-from-quad/lib/index.js","../../../node_modules/@comunica/actor-query-operation-project/lib/ActorQueryOperationProject.js","../../../node_modules/@comunica/actor-query-operation-project/lib/index.js","../../../node_modules/@comunica/actor-query-operation-reduced-hash/lib/ActorQueryOperationReducedHash.js","../../../node_modules/@comunica/actor-query-operation-reduced-hash/lib/index.js","../../../node_modules/@comunica/actor-query-operation-slice/lib/ActorQueryOperationSlice.js","../../../node_modules/@comunica/actor-query-operation-slice/lib/index.js","../../../node_modules/@comunica/actor-query-operation-union/lib/ActorQueryOperationUnion.js","../../../node_modules/@comunica/actor-query-operation-union/lib/index.js","../../../node_modules/@comunica/actor-abstract-path/lib/PathVariableObjectIterator.js","../../../node_modules/@comunica/actor-abstract-path/lib/ActorAbstractPath.js","../../../node_modules/@comunica/actor-abstract-path/lib/index.js","../../../node_modules/@comunica/actor-query-operation-path-alt/lib/ActorQueryOperationPathAlt.js","../../../node_modules/@comunica/actor-query-operation-path-alt/lib/index.js","../../../node_modules/@comunica/actor-query-operation-path-inv/lib/ActorQueryOperationPathInv.js","../../../node_modules/@comunica/actor-query-operation-path-inv/lib/index.js","../../../node_modules/@comunica/actor-query-operation-path-link/lib/ActorQueryOperationPathLink.js","../../../node_modules/@comunica/actor-query-operation-path-link/lib/index.js","../../../node_modules/@comunica/actor-query-operation-path-nps/lib/ActorQueryOperationPathNps.js","../../../node_modules/@comunica/actor-query-operation-path-nps/lib/index.js","../../../node_modules/@comunica/actor-query-operation-update-clear/lib/ActorQueryOperationClear.js","../../../node_modules/@comunica/actor-query-operation-update-clear/lib/index.js","../../../node_modules/@comunica/actor-query-operation-update-compositeupdate/lib/ActorQueryOperationUpdateCompositeUpdate.js","../../../node_modules/@comunica/actor-query-operation-update-compositeupdate/lib/index.js","../../../node_modules/@comunica/actor-query-operation-update-create/lib/ActorQueryOperationCreate.js","../../../node_modules/@comunica/actor-query-operation-update-create/lib/index.js","../../../node_modules/@comunica/actor-query-operation-update-drop/lib/ActorQueryOperationDrop.js","../../../node_modules/@comunica/actor-query-operation-update-drop/lib/index.js","../../../node_modules/@comunica/actor-query-operation-update-load/lib/ActorQueryOperationLoad.js","../../../node_modules/@comunica/actor-query-operation-update-load/lib/index.js","../../../node_modules/@comunica/actor-query-operation-join/lib/ActorQueryOperationJoin.js","../../../node_modules/@comunica/actor-query-operation-join/lib/index.js","../../../node_modules/@comunica/actor-query-operation-leftjoin/lib/ActorQueryOperationLeftJoin.js","../../../node_modules/@comunica/actor-query-operation-leftjoin/lib/index.js","../../../node_modules/@comunica/actor-query-operation-minus/lib/ActorQueryOperationMinus.js","../../../node_modules/@comunica/actor-query-operation-minus/lib/index.js","../../../node_modules/@comunica/actor-query-operation-path-seq/lib/ActorQueryOperationPathSeq.js","../../../node_modules/@comunica/actor-query-operation-path-seq/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-inner-multi-smallest/lib/ActorRdfJoinMultiSmallest.js","../../../node_modules/@comunica/actor-rdf-join-inner-multi-smallest/lib/index.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-max/lib/MaxAggregator.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-max/lib/ActorBindingsAggregatorFactoryMax.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-max/lib/index.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-min/lib/MinAggregator.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-min/lib/ActorBindingsAggregatorFactoryMin.js","../../../node_modules/@comunica/actor-bindings-aggregator-factory-min/lib/index.js","../../../node_modules/@comunica/actor-query-operation-orderby/lib/SortIterator.js","../../../node_modules/@comunica/actor-query-operation-orderby/lib/ActorQueryOperationOrderBy.js","../../../node_modules/@comunica/actor-query-operation-orderby/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-filter-pushdown/lib/ActorOptimizeQueryOperationFilterPushdown.js","../../../node_modules/@comunica/actor-optimize-query-operation-filter-pushdown/lib/index.js","../../../node_modules/@comunica/actor-dereference-http/lib/ActorDereferenceHttpBase.js","../../../node_modules/@comunica/actor-dereference-http/lib/ActorDereferenceHttp-browser.js","../../../node_modules/@comunica/actor-dereference-http/lib/index.js","../../../node_modules/@comunica/actor-http-proxy/lib/ActorHttpProxy.js","../../../node_modules/@comunica/actor-http-proxy/lib/ProxyHandlerStatic.js","../../../node_modules/@comunica/actor-http-proxy/lib/index.js","../../../node_modules/@comunica/actor-context-preprocess-query-source-identify/lib/ActorContextPreprocessQuerySourceIdentify.js","../../../node_modules/@comunica/actor-context-preprocess-query-source-identify/lib/index.js","../../../node_modules/@comunica/actor-rdf-update-quads-hypermedia/lib/ActorRdfUpdateQuadsHypermedia.js","../../../node_modules/@comunica/actor-rdf-update-quads-hypermedia/lib/index.js","../../../node_modules/@comunica/actor-query-result-serialize-sparql-json/lib/ActionObserverHttp.js","../../../node_modules/@comunica/actor-query-result-serialize-sparql-json/lib/ActorQueryResultSerializeSparqlJson.js","../../../node_modules/@comunica/actor-query-result-serialize-sparql-json/lib/index.js","../../../node_modules/@comunica/actor-query-result-serialize-stats/lib/ActionObserverHttp.js","../../../node_modules/@comunica/actor-query-result-serialize-stats/lib/ActorQueryResultSerializeStats.js","../../../node_modules/@comunica/actor-query-result-serialize-stats/lib/index.js","../../../node_modules/@comunica/bus-query-source-identify-hypermedia/lib/ActorQuerySourceIdentifyHypermedia.js","../../../node_modules/@comunica/bus-query-source-identify-hypermedia/lib/index.js","../../../node_modules/@comunica/bus-query-source-identify/lib/ActorQuerySourceIdentify.js","../../../node_modules/@comunica/bus-query-source-identify/lib/Utils.js","../../../node_modules/@comunica/bus-query-source-identify/lib/index.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia-qpf/lib/QuerySourceQpf.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia-qpf/lib/ActorQuerySourceIdentifyHypermediaQpf.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia-qpf/lib/index.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia-sparql/lib/QuerySourceSparql.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia-sparql/lib/ActorQuerySourceIdentifyHypermediaSparql.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia-sparql/lib/index.js","../../../node_modules/@comunica/actor-query-source-identify-rdfjs/lib/QuerySourceRdfJs.js","../../../node_modules/@comunica/actor-query-source-identify-rdfjs/lib/ActorQuerySourceIdentifyRdfJs.js","../../../node_modules/@comunica/actor-query-source-identify-rdfjs/lib/IRdfJsSourceExtended.js","../../../node_modules/@comunica/actor-query-source-identify-rdfjs/lib/index.js","../../../node_modules/rdf-stores/node_modules/rdf-data-factory/lib/BlankNode.js","../../../node_modules/rdf-stores/node_modules/rdf-data-factory/lib/DefaultGraph.js","../../../node_modules/rdf-stores/node_modules/rdf-data-factory/lib/NamedNode.js","../../../node_modules/rdf-stores/node_modules/rdf-data-factory/lib/Literal.js","../../../node_modules/rdf-stores/node_modules/rdf-data-factory/lib/Quad.js","../../../node_modules/rdf-stores/node_modules/rdf-data-factory/lib/Variable.js","../../../node_modules/rdf-stores/node_modules/rdf-data-factory/lib/DataFactory.js","../../../node_modules/rdf-stores/node_modules/rdf-data-factory/index.js","../../../node_modules/rdf-stores/node_modules/rdf-terms/lib/QuadTermUtil.js","../../../node_modules/rdf-stores/node_modules/rdf-string/lib/TermUtil.js","../../../node_modules/rdf-stores/node_modules/rdf-string/index.js","../../../node_modules/rdf-stores/node_modules/rdf-terms/lib/TermUtil.js","../../../node_modules/rdf-stores/node_modules/rdf-terms/index.js","../../../node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecordFullTerms.js","../../../node_modules/rdf-stores/lib/OrderUtils.js","../../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMap.js","../../../node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedIndexed.js","../../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapQuoted.js","../../../node_modules/rdf-stores/lib/RdfStore.js","../../../node_modules/rdf-stores/lib/dataset/DatasetCoreWrapper.js","../../../node_modules/rdf-stores/lib/dictionary/ITermDictionary.js","../../../node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberMap.js","../../../node_modules/rdf-stores/lib/dictionary/TermDictionaryNumberRecord.js","../../../node_modules/rdf-stores/lib/dictionary/TermDictionaryQuoted.js","../../../node_modules/rdf-stores/lib/dictionary/TermDictionaryQuotedReferential.js","../../../node_modules/rdf-stores/lib/dictionary/TermDictionarySymbol.js","../../../node_modules/rdf-stores/lib/index/IRdfStoreIndex.js","../../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursive.js","../../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedMapRecursiveQuoted.js","../../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecord.js","../../../node_modules/rdf-stores/lib/index/RdfStoreIndexNestedRecordQuoted.js","../../../node_modules/rdf-stores/lib/IRdfStoreOptions.js","../../../node_modules/rdf-stores/lib/PatternTerm.js","../../../node_modules/rdf-stores/index.js","../../../node_modules/rdf-store-stream/index.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia-none/lib/ActorQuerySourceIdentifyHypermediaNone.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia-none/lib/index.js","../../../node_modules/@comunica/bus-expression-evaluator-factory/lib/ActorExpressionEvaluatorFactory.js","../../../node_modules/@comunica/bus-expression-evaluator-factory/lib/index.js","../../../node_modules/@comunica/actor-expression-evaluator-factory-default/lib/AlgebraTransformer.js","../../../node_modules/@comunica/actor-expression-evaluator-factory-default/lib/InternalEvaluator.js","../../../node_modules/@comunica/actor-expression-evaluator-factory-default/lib/ExpressionEvaluator.js","../../../node_modules/@comunica/actor-expression-evaluator-factory-default/lib/ActorExpressionEvaluatorFactoryDefault.js","../../../node_modules/@comunica/actor-expression-evaluator-factory-default/lib/index.js","../../../node_modules/@comunica/actor-query-operation-group/lib/GroupsState.js","../../../node_modules/@comunica/actor-query-operation-group/lib/ActorQueryOperationGroup.js","../../../node_modules/@comunica/actor-query-operation-group/lib/index.js","../../../node_modules/@comunica/actor-query-operation-nop/lib/ActorQueryOperationNop.js","../../../node_modules/@comunica/actor-query-operation-nop/lib/index.js","../../../node_modules/@comunica/actor-query-operation-service/lib/ActorQueryOperationService.js","../../../node_modules/@comunica/actor-query-operation-service/lib/index.js","../../../node_modules/@comunica/actor-query-operation-values/lib/ActorQueryOperationValues.js","../../../node_modules/@comunica/actor-query-operation-values/lib/index.js","../../../node_modules/@comunica/actor-query-operation-path-one-or-more/lib/ActorQueryOperationPathOneOrMore.js","../../../node_modules/@comunica/actor-query-operation-path-one-or-more/lib/index.js","../../../node_modules/@comunica/actor-query-operation-path-zero-or-more/lib/ActorQueryOperationPathZeroOrMore.js","../../../node_modules/@comunica/actor-query-operation-path-zero-or-more/lib/index.js","../../../node_modules/@comunica/actor-query-operation-path-zero-or-one/lib/ActorQueryOperationPathZeroOrOne.js","../../../node_modules/@comunica/actor-query-operation-path-zero-or-one/lib/index.js","../../../node_modules/@comunica/actor-query-operation-update-deleteinsert/lib/ActorQueryOperationUpdateDeleteInsert.js","../../../node_modules/@comunica/actor-query-operation-update-deleteinsert/lib/index.js","../../../node_modules/@comunica/bus-query-process/lib/ActorQueryProcess.js","../../../node_modules/@comunica/bus-query-process/lib/index.js","../../../node_modules/@comunica/actor-query-process-sequential/lib/ActorQueryProcessSequential.js","../../../node_modules/@comunica/actor-query-process-sequential/lib/index.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia/lib/LinkedRdfSourcesAsyncRdfIterator.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia/lib/MediatedLinkedRdfSourcesAsyncRdfIterator.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-data-factory/lib/BlankNode.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-data-factory/lib/DefaultGraph.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-data-factory/lib/NamedNode.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-data-factory/lib/Literal.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-data-factory/lib/Quad.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-data-factory/lib/Variable.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-data-factory/lib/DataFactory.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-data-factory/index.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-string/lib/TermUtil.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-string/index.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-terms/lib/QuadTermUtil.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-terms/lib/TermUtil.js","../../../node_modules/rdf-streaming-store/node_modules/rdf-terms/index.js","../../../node_modules/rdf-streaming-store/lib/PendingStreamsIndex.js","../../../node_modules/rdf-streaming-store/lib/StreamingStore.js","../../../node_modules/rdf-streaming-store/index.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia/lib/StreamingStoreMetadata.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia/lib/QuerySourceHypermedia.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia/lib/ActorQuerySourceIdentifyHypermedia.js","../../../node_modules/@comunica/actor-query-source-identify-hypermedia/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-inner-none/lib/ActorRdfJoinNone.js","../../../node_modules/@comunica/actor-rdf-join-inner-none/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-inner-multi-bind/lib/ActorRdfJoinMultiBind.js","../../../node_modules/@comunica/actor-rdf-join-inner-multi-bind/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-optional-bind/lib/ActorRdfJoinOptionalBind.js","../../../node_modules/@comunica/actor-rdf-join-optional-bind/lib/index.js","../../../node_modules/@comunica/bus-term-comparator-factory/lib/ActorTermComparatorFactory.js","../../../node_modules/@comunica/bus-term-comparator-factory/lib/index.js","../../../node_modules/@comunica/actor-term-comparator-factory-expression-evaluator/lib/TermComparatorExpressionEvaluator.js","../../../node_modules/@comunica/actor-term-comparator-factory-expression-evaluator/lib/ActorTermComparatorFactoryExpressionEvaluator.js","../../../node_modules/@comunica/actor-term-comparator-factory-expression-evaluator/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-inner-multi-smallest-filter-bindings/lib/ActorRdfJoinMultiSmallestFilterBindings.js","../../../node_modules/@comunica/actor-rdf-join-inner-multi-smallest-filter-bindings/lib/index.js","../../../node_modules/@comunica/actor-query-process-explain-logical/lib/ActorQueryProcessExplainLogical.js","../../../node_modules/@comunica/actor-query-process-explain-logical/lib/index.js","../../../node_modules/@comunica/actor-query-process-explain-parsed/lib/ActorQueryProcessExplainParsed.js","../../../node_modules/@comunica/actor-query-process-explain-parsed/lib/index.js","../../../node_modules/@comunica/actor-query-process-explain-physical/lib/MemoryPhysicalQueryPlanLogger.js","../../../node_modules/@comunica/actor-query-process-explain-physical/lib/ActorQueryProcessExplainPhysical.js","../../../node_modules/@comunica/actor-query-process-explain-physical/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-prune-empty-source-operations/lib/ActorOptimizeQueryOperationPruneEmptySourceOperations.js","../../../node_modules/@comunica/actor-optimize-query-operation-prune-empty-source-operations/lib/index.js","../../../node_modules/@comunica/actor-http-retry/lib/ActorHttpRetry.js","../../../node_modules/@comunica/actor-http-retry/lib/index.js","../../../node_modules/@comunica/actor-http-limit-rate/lib/ActorHttpLimitRate.js","../../../node_modules/@comunica/actor-http-limit-rate/lib/index.js","../../../node_modules/@comunica/actor-query-source-identify-serialized/lib/ActorQuerySourceIdentifySerialized.js","../../../node_modules/@comunica/actor-query-source-identify-serialized/lib/index.js","../../../node_modules/@comunica/actor-rdf-join-inner-multi-bind-source/lib/ActorRdfJoinMultiBindSource.js","../../../node_modules/@comunica/actor-rdf-join-inner-multi-bind-source/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-join-connected/lib/ActorOptimizeQueryOperationJoinConnected.js","../../../node_modules/@comunica/actor-optimize-query-operation-join-connected/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-bgp-to-join/lib/ActorOptimizeQueryOperationBgpToJoin.js","../../../node_modules/@comunica/actor-optimize-query-operation-bgp-to-join/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-join-bgp/lib/ActorOptimizeQueryOperationJoinBgp.js","../../../node_modules/@comunica/actor-optimize-query-operation-join-bgp/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-assign-sources-exhaustive/lib/ActorOptimizeQueryOperationAssignSourcesExhaustive.js","../../../node_modules/@comunica/actor-optimize-query-operation-assign-sources-exhaustive/lib/index.js","../../../node_modules/@comunica/actor-optimize-query-operation-describe-to-constructs-subject/lib/ActorOptimizeQueryOperationDescribeToConstructsSubject.js","../../../node_modules/@comunica/actor-optimize-query-operation-describe-to-constructs-subject/lib/index.js","../../../node_modules/@comunica/query-sparql/engine-default.js","../../../node_modules/@comunica/query-sparql/lib/QueryEngine.js","../../../node_modules/@comunica/query-sparql/lib/index-browser.js","../src/metadata.ts","../../sparql-overview/dist/sparql-overview.js","../src/sparql-editor.ts"],"sourcesContent":["/*! For license information please see yasgui.min.js.LICENSE.txt */\n!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"Yasgui\",[],t):\"object\"==typeof exports?exports.Yasgui=t():e.Yasgui=t()}(self,()=>(()=>{var __webpack_modules__={160:e=>{\"use strict\";var t=new RegExp(\"(%[a-f0-9]{2})|([^%]+?)\",\"gi\"),n=new RegExp(\"(%[a-f0-9]{2})+\",\"gi\");function r(e,t){try{return[decodeURIComponent(e.join(\"\"))]}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),i=e.slice(t);return Array.prototype.concat.call([],r(n),r(i))}function i(e){try{return decodeURIComponent(e)}catch(o){for(var n=e.match(t)||[],i=1;i<n.length;i++)n=(e=r(n,i).join(\"\")).match(t)||[];return e}}e.exports=function(e){if(\"string\"!=typeof e)throw new TypeError(\"Expected `encodedURI` to be of type `string`, got `\"+typeof e+\"`\");try{return e=e.replace(/\\+/g,\" \"),decodeURIComponent(e)}catch(t){return function(e){for(var t={\"%FE%FF\":\"��\",\"%FF%FE\":\"��\"},r=n.exec(e);r;){try{t[r[0]]=decodeURIComponent(r[0])}catch(e){var o=i(r[0]);o!==r[0]&&(t[r[0]]=o)}r=n.exec(e)}t[\"%C2\"]=\"�\";for(var a=Object.keys(t),s=0;s<a.length;s++){var l=a[s];e=e.replace(new RegExp(l,\"g\"),t[l])}return e}(e)}}},232:(e,t,n)=>{var r=n(8541)();e.exports=r;try{regeneratorRuntime=r}catch(e){\"object\"==typeof globalThis?globalThis.regeneratorRuntime=r:Function(\"r\",\"regeneratorRuntime = r\")(r)}},365:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=n(4360);function i(e,t){if(t&&(\"object\"==(0,r.A)(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}(e)}},404:(e,t,n)=>{!function(e){\"use strict\";var t,n,r=e.Pos;function i(e,t){for(var n=function(e){var t=e.flags;return null!=t?t:(e.ignoreCase?\"i\":\"\")+(e.global?\"g\":\"\")+(e.multiline?\"m\":\"\")}(e),r=n,i=0;i<t.length;i++)-1==r.indexOf(t.charAt(i))&&(r+=t.charAt(i));return n==r?e:new RegExp(e.source,r)}function o(e){return/\\\\s|\\\\n|\\n|\\\\W|\\\\D|\\[\\^/.test(e.source)}function a(e,t,n){t=i(t,\"g\");for(var o=n.line,a=n.ch,s=e.lastLine();o<=s;o++,a=0){t.lastIndex=a;var l=e.getLine(o),u=t.exec(l);if(u)return{from:r(o,u.index),to:r(o,u.index+u[0].length),match:u}}}function s(e,t,n){if(!o(t))return a(e,t,n);t=i(t,\"gm\");for(var s,l=1,u=n.line,c=e.lastLine();u<=c;){for(var p=0;p<l&&!(u>c);p++){var d=e.getLine(u++);s=null==s?d:s+\"\\n\"+d}l*=2,t.lastIndex=n.ch;var f=t.exec(s);if(f){var h=s.slice(0,f.index).split(\"\\n\"),g=f[0].split(\"\\n\"),m=n.line+h.length-1,v=h[h.length-1].length;return{from:r(m,v),to:r(m+g.length-1,1==g.length?v+g[0].length:g[g.length-1].length),match:f}}}}function l(e,t,n){for(var r,i=0;i<=e.length;){t.lastIndex=i;var o=t.exec(e);if(!o)break;var a=o.index+o[0].length;if(a>e.length-n)break;(!r||a>r.index+r[0].length)&&(r=o),i=o.index+1}return r}function u(e,t,n){t=i(t,\"g\");for(var o=n.line,a=n.ch,s=e.firstLine();o>=s;o--,a=-1){var u=e.getLine(o),c=l(u,t,a<0?0:u.length-a);if(c)return{from:r(o,c.index),to:r(o,c.index+c[0].length),match:c}}}function c(e,t,n){if(!o(t))return u(e,t,n);t=i(t,\"gm\");for(var a,s=1,c=e.getLine(n.line).length-n.ch,p=n.line,d=e.firstLine();p>=d;){for(var f=0;f<s&&p>=d;f++){var h=e.getLine(p--);a=null==a?h:h+\"\\n\"+a}s*=2;var g=l(a,t,c);if(g){var m=a.slice(0,g.index).split(\"\\n\"),v=g[0].split(\"\\n\"),E=p+m.length,y=m[m.length-1].length;return{from:r(E,y),to:r(E+v.length-1,1==v.length?y+v[0].length:v[v.length-1].length),match:g}}}}function p(e,t,n,r){if(e.length==t.length)return n;for(var i=0,o=n+Math.max(0,e.length-t.length);;){if(i==o)return i;var a=i+o>>1,s=r(e.slice(0,a)).length;if(s==n)return a;s>n?o=a:i=a+1}}function d(e,i,o,a){if(!i.length)return null;var s=a?t:n,l=s(i).split(/\\r|\\n\\r?/);e:for(var u=o.line,c=o.ch,d=e.lastLine()+1-l.length;u<=d;u++,c=0){var f=e.getLine(u).slice(c),h=s(f);if(1==l.length){var g=h.indexOf(l[0]);if(-1==g)continue e;return o=p(f,h,g,s)+c,{from:r(u,p(f,h,g,s)+c),to:r(u,p(f,h,g+l[0].length,s)+c)}}var m=h.length-l[0].length;if(h.slice(m)==l[0]){for(var v=1;v<l.length-1;v++)if(s(e.getLine(u+v))!=l[v])continue e;var E=e.getLine(u+l.length-1),y=s(E),b=l[l.length-1];if(y.slice(0,b.length)==b)return{from:r(u,p(f,h,m,s)+c),to:r(u+l.length-1,p(E,y,b.length,s))}}}}function f(e,i,o,a){if(!i.length)return null;var s=a?t:n,l=s(i).split(/\\r|\\n\\r?/);e:for(var u=o.line,c=o.ch,d=e.firstLine()-1+l.length;u>=d;u--,c=-1){var f=e.getLine(u);c>-1&&(f=f.slice(0,c));var h=s(f);if(1==l.length){var g=h.lastIndexOf(l[0]);if(-1==g)continue e;return{from:r(u,p(f,h,g,s)),to:r(u,p(f,h,g+l[0].length,s))}}var m=l[l.length-1];if(h.slice(0,m.length)==m){var v=1;for(o=u-l.length+1;v<l.length-1;v++)if(s(e.getLine(o+v))!=l[v])continue e;var E=e.getLine(u+1-l.length),y=s(E);if(y.slice(y.length-l[0].length)==l[0])return{from:r(u+1-l.length,p(E,y,E.length-l[0].length,s)),to:r(u,p(f,h,m.length,s))}}}}function h(e,t,n,o){var l;this.atOccurrence=!1,this.afterEmptyMatch=!1,this.doc=e,n=n?e.clipPos(n):r(0,0),this.pos={from:n,to:n},\"object\"==typeof o?l=o.caseFold:(l=o,o=null),\"string\"==typeof t?(null==l&&(l=!1),this.matches=function(n,r){return(n?f:d)(e,t,r,l)}):(t=i(t,\"gm\"),o&&!1===o.multiline?this.matches=function(n,r){return(n?u:a)(e,t,r)}:this.matches=function(n,r){return(n?c:s)(e,t,r)})}String.prototype.normalize?(t=function(e){return e.normalize(\"NFD\").toLowerCase()},n=function(e){return e.normalize(\"NFD\")}):(t=function(e){return e.toLowerCase()},n=function(e){return e}),h.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(t){var n=this.doc.clipPos(t?this.pos.from:this.pos.to);if(this.afterEmptyMatch&&this.atOccurrence&&(n=r(n.line,n.ch),t?(n.ch--,n.ch<0&&(n.line--,n.ch=(this.doc.getLine(n.line)||\"\").length)):(n.ch++,n.ch>(this.doc.getLine(n.line)||\"\").length&&(n.ch=0,n.line++)),0!=e.cmpPos(n,this.doc.clipPos(n))))return this.atOccurrence=!1;var i=this.matches(t,n);if(this.afterEmptyMatch=i&&0==e.cmpPos(i.from,i.to),i)return this.pos=i,this.atOccurrence=!0,this.pos.match||!0;var o=r(t?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:o,to:o},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t,n){if(this.atOccurrence){var i=e.splitLines(t);this.doc.replaceRange(i,this.pos.from,this.pos.to,n),this.pos.to=r(this.pos.from.line+i.length-1,i[i.length-1].length+(1==i.length?this.pos.from.ch:0))}}},e.defineExtension(\"getSearchCursor\",(function(e,t,n){return new h(this.doc,e,t,n)})),e.defineDocExtension(\"getSearchCursor\",(function(e,t,n){return new h(this,e,t,n)})),e.defineExtension(\"selectMatches\",(function(t,n){for(var r=[],i=this.getSearchCursor(t,this.getCursor(\"from\"),n);i.findNext()&&!(e.cmpPos(i.to(),this.getCursor(\"to\"))>0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,0)}))}(n(1719))},666:(e,t,n)=>{!function(e){\"use strict\";function t(t){return function(n,r){var i=r.line,o=n.getLine(i);function a(t){for(var a,s=r.ch,l=0;;){var u=s<=0?-1:o.lastIndexOf(t[0],s-1);if(-1!=u){if(1==l&&u<r.ch)break;if(a=n.getTokenTypeAt(e.Pos(i,u+1)),!/^(comment|string)/.test(a))return{ch:u+1,tokenType:a,pair:t};s=u-1}else{if(1==l)break;l=1,s=o.length}}}function s(t){var r,o,a=1,s=n.lastLine(),l=t.ch;e:for(var u=i;u<=s;++u)for(var c=n.getLine(u),p=u==i?l:0;;){var d=c.indexOf(t.pair[0],p),f=c.indexOf(t.pair[1],p);if(d<0&&(d=c.length),f<0&&(f=c.length),(p=Math.min(d,f))==c.length)break;if(n.getTokenTypeAt(e.Pos(u,p+1))==t.tokenType)if(p==d)++a;else if(!--a){r=u,o=p;break e}++p}return null==r||i==r?null:{from:e.Pos(i,l),to:e.Pos(r,o)}}for(var l=[],u=0;u<t.length;u++){var c=a(t[u]);c&&l.push(c)}for(l.sort((function(e,t){return e.ch-t.ch})),u=0;u<l.length;u++){var p=s(l[u]);if(p)return p}return null}}e.registerHelper(\"fold\",\"brace\",t([[\"{\",\"}\"],[\"[\",\"]\"]])),e.registerHelper(\"fold\",\"brace-paren\",t([[\"{\",\"}\"],[\"[\",\"]\"],[\"(\",\")\"]])),e.registerHelper(\"fold\",\"import\",(function(t,n){function r(n){if(n<t.firstLine()||n>t.lastLine())return null;var r=t.getTokenAt(e.Pos(n,1));if(/\\S/.test(r.string)||(r=t.getTokenAt(e.Pos(n,r.end+1))),\"keyword\"!=r.type||\"import\"!=r.string)return null;for(var i=n,o=Math.min(t.lastLine(),n+10);i<=o;++i){var a=t.getLine(i).indexOf(\";\");if(-1!=a)return{startCh:r.end,end:e.Pos(i,a)}}}var i,o=n.line,a=r(o);if(!a||r(o-1)||(i=r(o-2))&&i.end.line==o-1)return null;for(var s=a.end;;){var l=r(s.line+1);if(null==l)break;s=l.end}return{from:t.clipPos(e.Pos(o,a.startCh+1)),to:s}})),e.registerHelper(\"fold\",\"include\",(function(t,n){function r(n){if(n<t.firstLine()||n>t.lastLine())return null;var r=t.getTokenAt(e.Pos(n,1));return/\\S/.test(r.string)||(r=t.getTokenAt(e.Pos(n,r.end+1))),\"meta\"==r.type&&\"#include\"==r.string.slice(0,8)?r.start+8:void 0}var i=n.line,o=r(i);if(null==o||null!=r(i-1))return null;for(var a=i;null!=r(a+1);)++a;return{from:e.Pos(i,o+1),to:t.clipPos(e.Pos(a))}}))}(n(1719))},732:(e,t,n)=>{var r=n(7589),i=r.Global,o=r.trim;e.exports={name:\"cookieStorage\",read:function(e){if(!e||!u(e))return null;var t=\"(?:^|.*;\\\\s*)\"+escape(e).replace(/[\\-\\.\\+\\*]/g,\"\\\\$&\")+\"\\\\s*\\\\=\\\\s*((?:[^;](?!;))*[^;]?).*\";return unescape(a.cookie.replace(new RegExp(t),\"$1\"))},write:function(e,t){if(!e)return;a.cookie=escape(e)+\"=\"+escape(t)+\"; expires=Tue, 19 Jan 2038 03:14:07 GMT; path=/\"},each:s,remove:l,clearAll:function(){s((function(e,t){l(t)}))}};var a=i.document;function s(e){for(var t=a.cookie.split(/; ?/g),n=t.length-1;n>=0;n--)if(o(t[n])){var r=t[n].split(\"=\"),i=unescape(r[0]);e(unescape(r[1]),i)}}function l(e){e&&u(e)&&(a.cookie=escape(e)+\"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/\")}function u(e){return new RegExp(\"(?:^|;\\\\s*)\"+escape(e).replace(/[\\-\\.\\+\\*]/g,\"\\\\$&\")+\"\\\\s*\\\\=\").test(a.cookie)}},761:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=n(8086);const i=function(e){if(\"string\"==typeof e||(0,r.A)(e))return e;var t=e+\"\";return\"0\"==t&&1/e==-1/0?\"-0\":t}},815:()=>{\"object\"!=typeof JSON&&(JSON={}),function(){\"use strict\";var rx_one=/^[\\],:{}\\s]*$/,rx_two=/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rx_three=/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,rx_four=/(?:^|:|,)(?:\\s*\\[)+/g,rx_escapable=/[\\\\\"\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,rx_dangerous=/[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,gap,indent,meta,rep;function f(e){return e<10?\"0\"+e:e}function this_value(){return this.valueOf()}function quote(e){return rx_escapable.lastIndex=0,rx_escapable.test(e)?'\"'+e.replace(rx_escapable,(function(e){var t=meta[e];return\"string\"==typeof t?t:\"\\\\u\"+(\"0000\"+e.charCodeAt(0).toString(16)).slice(-4)}))+'\"':'\"'+e+'\"'}function str(e,t){var n,r,i,o,a,s=gap,l=t[e];switch(l&&\"object\"==typeof l&&\"function\"==typeof l.toJSON&&(l=l.toJSON(e)),\"function\"==typeof rep&&(l=rep.call(t,e,l)),typeof l){case\"string\":return quote(l);case\"number\":return isFinite(l)?String(l):\"null\";case\"boolean\":case\"null\":return String(l);case\"object\":if(!l)return\"null\";if(gap+=indent,a=[],\"[object Array]\"===Object.prototype.toString.apply(l)){for(o=l.length,n=0;n<o;n+=1)a[n]=str(n,l)||\"null\";return i=0===a.length?\"[]\":gap?\"[\\n\"+gap+a.join(\",\\n\"+gap)+\"\\n\"+s+\"]\":\"[\"+a.join(\",\")+\"]\",gap=s,i}if(rep&&\"object\"==typeof rep)for(o=rep.length,n=0;n<o;n+=1)\"string\"==typeof rep[n]&&(i=str(r=rep[n],l))&&a.push(quote(r)+(gap?\": \":\":\")+i);else for(r in l)Object.prototype.hasOwnProperty.call(l,r)&&(i=str(r,l))&&a.push(quote(r)+(gap?\": \":\":\")+i);return i=0===a.length?\"{}\":gap?\"{\\n\"+gap+a.join(\",\\n\"+gap)+\"\\n\"+s+\"}\":\"{\"+a.join(\",\")+\"}\",gap=s,i}}\"function\"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+\"-\"+f(this.getUTCMonth()+1)+\"-\"+f(this.getUTCDate())+\"T\"+f(this.getUTCHours())+\":\"+f(this.getUTCMinutes())+\":\"+f(this.getUTCSeconds())+\"Z\":null},Boolean.prototype.toJSON=this_value,Number.prototype.toJSON=this_value,String.prototype.toJSON=this_value),\"function\"!=typeof JSON.stringify&&(meta={\"\\b\":\"\\\\b\",\"\\t\":\"\\\\t\",\"\\n\":\"\\\\n\",\"\\f\":\"\\\\f\",\"\\r\":\"\\\\r\",'\"':'\\\\\"',\"\\\\\":\"\\\\\\\\\"},JSON.stringify=function(e,t,n){var r;if(gap=\"\",indent=\"\",\"number\"==typeof n)for(r=0;r<n;r+=1)indent+=\" \";else\"string\"==typeof n&&(indent=n);if(rep=t,t&&\"function\"!=typeof t&&(\"object\"!=typeof t||\"number\"!=typeof t.length))throw new Error(\"JSON.stringify\");return str(\"\",{\"\":e})}),\"function\"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){var j;function walk(e,t){var n,r,i=e[t];if(i&&\"object\"==typeof i)for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(void 0!==(r=walk(i,n))?i[n]=r:delete i[n]);return reviver.call(e,t,i)}if(text=String(text),rx_dangerous.lastIndex=0,rx_dangerous.test(text)&&(text=text.replace(rx_dangerous,(function(e){return\"\\\\u\"+(\"0000\"+e.charCodeAt(0).toString(16)).slice(-4)}))),rx_one.test(text.replace(rx_two,\"@\").replace(rx_three,\"]\").replace(rx_four,\"\")))return j=eval(\"(\"+text+\")\"),\"function\"==typeof reviver?walk({\"\":j},\"\"):j;throw new SyntaxError(\"JSON.parse\")})}()},946:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e){return function(){return e}}},991:(e,t,n)=>{\"use strict\";n.r(t)},1100:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e){return e}},1115:(e,t,n)=>{var r=n(1461),i=n(1907);e.exports=function(e,t,n,o,a){return new i(r().w(e,t,n,o),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},1262:(e,t,n)=>{!function(e){\"use strict\";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode(\"xml\",(function(r,i){var o,a,s=r.indentUnit,l={},u=i.htmlMode?t:n;for(var c in u)l[c]=u[c];for(var c in i)l[c]=i[c];function p(e,t){function n(n){return t.tokenize=n,n(e,t)}var r=e.next();return\"<\"==r?e.eat(\"!\")?e.eat(\"[\")?e.match(\"CDATA[\")?n(f(\"atom\",\"]]>\")):null:e.match(\"--\")?n(f(\"comment\",\"--\\x3e\")):e.match(\"DOCTYPE\",!0,!0)?(e.eatWhile(/[\\w\\._\\-]/),n(function e(t){return function(n,r){for(var i;null!=(i=n.next());){if(\"<\"==i)return r.tokenize=e(t+1),r.tokenize(n,r);if(\">\"==i){if(1==t){r.tokenize=p;break}return r.tokenize=e(t-1),r.tokenize(n,r)}}return\"meta\"}}(1))):null:e.eat(\"?\")?(e.eatWhile(/[\\w\\._\\-]/),t.tokenize=f(\"meta\",\"?>\"),\"meta\"):(o=e.eat(\"/\")?\"closeTag\":\"openTag\",t.tokenize=d,\"tag bracket\"):\"&\"==r?(e.eat(\"#\")?e.eat(\"x\")?e.eatWhile(/[a-fA-F\\d]/)&&e.eat(\";\"):e.eatWhile(/[\\d]/)&&e.eat(\";\"):e.eatWhile(/[\\w\\.\\-:]/)&&e.eat(\";\"))?\"atom\":\"error\":(e.eatWhile(/[^&<]/),null)}function d(e,t){var n,r,i=e.next();if(\">\"==i||\"/\"==i&&e.eat(\">\"))return t.tokenize=p,o=\">\"==i?\"endTag\":\"selfcloseTag\",\"tag bracket\";if(\"=\"==i)return o=\"equals\",null;if(\"<\"==i){t.tokenize=p,t.state=E,t.tagName=t.tagStart=null;var a=t.tokenize(e,t);return a?a+\" tag error\":\"tag error\"}return/[\\'\\\"]/.test(i)?(t.tokenize=(n=i,(r=function(e,t){for(;!e.eol();)if(e.next()==n){t.tokenize=d;break}return\"string\"}).isInAttribute=!0,r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/),\"word\")}function f(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=p;break}n.next()}return e}}function h(e){return e&&e.toLowerCase()}function g(e,t,n){this.prev=e.context,this.tagName=t||\"\",this.indent=e.indented,this.startOfLine=n,(l.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function m(e){e.context&&(e.context=e.context.prev)}function v(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!l.contextGrabbers.hasOwnProperty(h(n))||!l.contextGrabbers[h(n)].hasOwnProperty(h(t)))return;m(e)}}function E(e,t,n){return\"openTag\"==e?(n.tagStart=t.column(),y):\"closeTag\"==e?b:E}function y(e,t,n){return\"word\"==e?(n.tagName=t.current(),a=\"tag\",A):l.allowMissingTagName&&\"endTag\"==e?(a=\"tag bracket\",A(e,0,n)):(a=\"error\",y)}function b(e,t,n){if(\"word\"==e){var r=t.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(h(n.context.tagName))&&m(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(a=\"tag\",x):(a=\"tag error\",T)}return l.allowMissingTagName&&\"endTag\"==e?(a=\"tag bracket\",x(e,0,n)):(a=\"error\",T)}function x(e,t,n){return\"endTag\"!=e?(a=\"error\",x):(m(n),E)}function T(e,t,n){return a=\"error\",x(e,0,n)}function A(e,t,n){if(\"word\"==e)return a=\"attribute\",S;if(\"endTag\"==e||\"selfcloseTag\"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,\"selfcloseTag\"==e||l.autoSelfClosers.hasOwnProperty(h(r))?v(n,r):(v(n,r),n.context=new g(n,r,i==n.indented)),E}return a=\"error\",A}function S(e,t,n){return\"equals\"==e?L:(l.allowMissing||(a=\"error\"),A(e,0,n))}function L(e,t,n){return\"string\"==e?N:\"word\"==e&&l.allowUnquoted?(a=\"string\",A):(a=\"error\",A(e,0,n))}function N(e,t,n){return\"string\"==e?N:A(e,0,n)}return p.isInText=!0,{startState:function(e){var t={tokenize:p,state:E,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;o=null;var n=t.tokenize(e,t);return(n||o)&&\"comment\"!=n&&(a=null,t.state=t.state(o||n,e,t),a&&(n=\"error\"==a?n+\" error\":a)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+s;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=d&&t.tokenize!=p)return r?r.match(/^(\\s*)/)[0].length:0;if(t.tagName)return!1!==l.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+s*(l.multilineTagIndentFactor||1);if(l.alignCDATA&&/<!\\[CDATA\\[/.test(n))return 0;var o=n&&/^<(\\/)?([\\w_:\\.-]*)/.exec(n);if(o&&o[1])for(;i;){if(i.tagName==o[2]){i=i.prev;break}if(!l.implicitlyClosed.hasOwnProperty(h(i.tagName)))break;i=i.prev}else if(o)for(;i;){var a=l.contextGrabbers[h(i.tagName)];if(!a||!a.hasOwnProperty(h(o[2])))break;i=i.prev}for(;i&&i.prev&&!i.startOfLine;)i=i.prev;return i?i.indent+s:t.baseIndent||0},electricInput:/<\\/[\\s\\w:]+>$/,blockCommentStart:\"\\x3c!--\",blockCommentEnd:\"--\\x3e\",configuration:l.htmlMode?\"html\":\"xml\",helperType:l.htmlMode?\"html\":\"xml\",skipAttribute:function(e){e.state==L&&(e.state=A)},xmlCurrentTag:function(e){return e.tagName?{name:e.tagName,close:\"closeTag\"==e.type}:null},xmlCurrentContext:function(e){for(var t=[],n=e.context;n;n=n.prev)t.push(n.tagName);return t.reverse()}}})),e.defineMIME(\"text/xml\",\"xml\"),e.defineMIME(\"application/xml\",\"xml\"),e.mimeModes.hasOwnProperty(\"text/html\")||e.defineMIME(\"text/html\",{name:\"xml\",htmlMode:!0})}(n(1719))},1273:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=n(5168);const i=function(e){var t=new e.constructor(e.byteLength);return new r.A(t).set(new r.A(e)),t}},1461:(e,t,n)=>{var r=n(6918);function i(){var t,n,o=\"function\"==typeof Symbol?Symbol:{},a=o.iterator||\"@@iterator\",s=o.toStringTag||\"@@toStringTag\";function l(e,i,o,a){var s=i&&i.prototype instanceof c?i:c,l=Object.create(s.prototype);return r(l,\"_invoke\",function(e,r,i){var o,a,s,l=0,c=i||[],p=!1,d={p:0,n:0,v:t,a:f,f:f.bind(t,4),d:function(e,n){return o=e,a=0,s=t,d.n=n,u}};function f(e,r){for(a=e,s=r,n=0;!p&&l&&!i&&n<c.length;n++){var i,o=c[n],f=d.p,h=o[2];e>3?(i=h===r)&&(s=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=t):o[0]<=f&&((i=e<2&&f<o[1])?(a=0,d.v=r,d.n=o[1]):f<h&&(i=e<3||o[0]>r||r>h)&&(o[4]=e,o[5]=r,d.n=h,a=0))}if(i||e>1)return u;throw p=!0,r}return function(i,c,h){if(l>1)throw TypeError(\"Generator is already running\");for(p&&1===c&&f(c,h),a=c,s=h;(n=a<2?t:s)||!p;){o||(a?a<3?(a>1&&(d.n=-1),f(a,s)):d.n=s:d.v=s);try{if(l=2,o){if(a||(i=\"next\"),n=o[i]){if(!(n=n.call(o,s)))throw TypeError(\"iterator result is not an object\");if(!n.done)return n;s=n.value,a<2&&(a=0)}else 1===a&&(n=o.return)&&n.call(o),a<2&&(s=TypeError(\"The iterator does not provide a '\"+i+\"' method\"),a=1);o=t}else if((n=(p=d.n<0)?s:e.call(r,d))!==u)break}catch(e){o=t,a=1,s=e}finally{l=1}}return{value:n,done:p}}}(e,o,a),!0),l}var u={};function c(){}function p(){}function d(){}n=Object.getPrototypeOf;var f=[][a]?n(n([][a]())):(r(n={},a,(function(){return this})),n),h=d.prototype=c.prototype=Object.create(f);function g(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,d):(e.__proto__=d,r(e,s,\"GeneratorFunction\")),e.prototype=Object.create(h),e}return p.prototype=d,r(h,\"constructor\",d),r(d,\"constructor\",p),p.displayName=\"GeneratorFunction\",r(d,s,\"GeneratorFunction\"),r(h),r(h,s,\"Generator\"),r(h,a,(function(){return this})),r(h,\"toString\",(function(){return\"[object Generator]\"})),(e.exports=i=function(){return{w:l,m:g}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},1475:(e,t)=>{\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=[],r=\"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\";t.definition={prefix:\"fas\",iconName:\"download\",icon:[512,512,n,\"f019\",r]},t.faDownload=t.definition,t.prefix=\"fas\",t.iconName=\"download\",t.width=512,t.height=512,t.ligatures=n,t.unicode=\"f019\",t.svgPathData=r},1540:function(e,t,n){var r;!function(i){var o={starts_with_slashes:/^\\/+/,ends_with_slashes:/\\/+$/,pluses:/\\+/g,query_separator:/[&;]/,uri_parser:/^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*)(?::([^:@]*))?)?@)?(\\[[0-9a-fA-F:.]+\\]|[^:\\/?#]*)(?::(\\d+|(?=:)))?(:)?)((((?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/};function a(e){return e&&(e=e.toString().replace(o.pluses,\"%20\"),e=decodeURIComponent(e)),e}function s(e){var t,n,r,i,s,l,u,c=[];if(null==e||\"\"===e)return c;for(0===e.indexOf(\"?\")&&(e=e.substring(1)),t=0,u=(n=e.toString().split(o.query_separator)).length;t<u;t++)0!==(i=(r=n[t]).indexOf(\"=\"))&&(s=a(r.substring(0,i)),l=a(r.substring(i+1)),c.push(-1===i?[r,null]:[s,l]));return c}function l(e){this.uriParts=function(e){var t=o.uri_parser.exec(e||\"\"),n={};return[\"source\",\"protocol\",\"authority\",\"userInfo\",\"user\",\"password\",\"host\",\"port\",\"isColonUri\",\"relative\",\"path\",\"directory\",\"file\",\"query\",\"anchor\"].forEach((function(e,r){n[e]=t[r]||\"\"})),n}(e),this.queryPairs=s(this.uriParts.query),this.hasAuthorityPrefixUserPref=null}Array.prototype.forEach||(Array.prototype.forEach=function(e,t){var n,r;if(null==this)throw new TypeError(\" this is null or not defined\");var i=Object(this),o=i.length>>>0;if(\"function\"!=typeof e)throw new TypeError(e+\" is not a function\");for(arguments.length>1&&(n=t),r=0;r<o;){var a;r in i&&(a=i[r],e.call(n,a,r,i)),r++}}),[\"protocol\",\"userInfo\",\"host\",\"port\",\"path\",\"anchor\"].forEach((function(e){l.prototype[e]=function(t){return void 0!==t&&(this.uriParts[e]=t),this.uriParts[e]}})),l.prototype.hasAuthorityPrefix=function(e){return void 0!==e&&(this.hasAuthorityPrefixUserPref=e),null===this.hasAuthorityPrefixUserPref?-1!==this.uriParts.source.indexOf(\"//\"):this.hasAuthorityPrefixUserPref},l.prototype.isColonUri=function(e){if(void 0===e)return!!this.uriParts.isColonUri;this.uriParts.isColonUri=!!e},l.prototype.query=function(e){var t,n,r,i=\"\";for(void 0!==e&&(this.queryPairs=s(e)),t=0,r=this.queryPairs.length;t<r;t++)n=this.queryPairs[t],i.length>0&&(i+=\"&\"),null===n[1]?i+=n[0]:(i+=n[0],i+=\"=\",void 0!==n[1]&&(i+=encodeURIComponent(n[1])));return i.length>0?\"?\"+i:i},l.prototype.getQueryParamValue=function(e){var t,n,r;for(n=0,r=this.queryPairs.length;n<r;n++)if(e===(t=this.queryPairs[n])[0])return t[1]},l.prototype.getQueryParamValues=function(e){var t,n,r,i=[];for(t=0,r=this.queryPairs.length;t<r;t++)e===(n=this.queryPairs[t])[0]&&i.push(n[1]);return i},l.prototype.deleteQueryParam=function(e,t){var n,r,i,o,s,l=[];for(n=0,s=this.queryPairs.length;n<s;n++)i=a((r=this.queryPairs[n])[0])===a(e),o=r[1]===t,(1!==arguments.length||i)&&(2!==arguments.length||i&&o)||l.push(r);return this.queryPairs=l,this},l.prototype.addQueryParam=function(e,t,n){return 3===arguments.length&&-1!==n?(n=Math.min(n,this.queryPairs.length),this.queryPairs.splice(n,0,[e,t])):arguments.length>0&&this.queryPairs.push([e,t]),this},l.prototype.hasQueryParam=function(e){var t,n=this.queryPairs.length;for(t=0;t<n;t++)if(this.queryPairs[t][0]==e)return!0;return!1},l.prototype.replaceQueryParam=function(e,t,n){var r,i,o=-1,s=this.queryPairs.length;if(3===arguments.length){for(r=0;r<s;r++)if(a((i=this.queryPairs[r])[0])===a(e)&&decodeURIComponent(i[1])===a(n)){o=r;break}o>=0&&this.deleteQueryParam(e,a(n)).addQueryParam(e,t,o)}else{for(r=0;r<s;r++)if(a((i=this.queryPairs[r])[0])===a(e)){o=r;break}this.deleteQueryParam(e),this.addQueryParam(e,t,o)}return this},[\"protocol\",\"hasAuthorityPrefix\",\"isColonUri\",\"userInfo\",\"host\",\"port\",\"path\",\"query\",\"anchor\"].forEach((function(e){var t=\"set\"+e.charAt(0).toUpperCase()+e.slice(1);l.prototype[t]=function(t){return this[e](t),this}})),l.prototype.scheme=function(){var e=\"\";return this.protocol()?(e+=this.protocol(),this.protocol().indexOf(\":\")!==this.protocol().length-1&&(e+=\":\"),e+=\"//\"):this.hasAuthorityPrefix()&&this.host()&&(e+=\"//\"),e},l.prototype.origin=function(){var e=this.scheme();return this.userInfo()&&this.host()&&(e+=this.userInfo(),this.userInfo().indexOf(\"@\")!==this.userInfo().length-1&&(e+=\"@\")),this.host()&&(e+=this.host(),(this.port()||this.path()&&this.path().substr(0,1).match(/[0-9]/))&&(e+=\":\"+this.port())),e},l.prototype.addTrailingSlash=function(){var e=this.path()||\"\";return\"/\"!==e.substr(-1)&&this.path(e+\"/\"),this},l.prototype.toString=function(){var e,t=this.origin();return this.isColonUri()?this.path()&&(t+=\":\"+this.path()):this.path()?(e=this.path(),o.ends_with_slashes.test(t)||o.starts_with_slashes.test(e)?(t&&t.replace(o.ends_with_slashes,\"/\"),e=e.replace(o.starts_with_slashes,\"/\")):t+=\"/\",t+=e):this.host()&&(this.query().toString()||this.anchor())&&(t+=\"/\"),this.query().toString()&&(t+=this.query().toString()),this.anchor()&&(0!==this.anchor().indexOf(\"#\")&&(t+=\"#\"),t+=this.anchor()),t},l.prototype.clone=function(){return new l(this.toString())},void 0===(r=function(){return l}.call(t,n,t,e))||(e.exports=r)}()},1671:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>E});var r=n(9790);const i=n(8377).A[\"__core-js_shared__\"];var o,a=(o=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+o:\"\";const s=function(e){return!!a&&a in e};var l=n(6809),u=n(5549),c=/^\\[object .+?Constructor\\]$/,p=Function.prototype,d=Object.prototype,f=p.toString,h=d.hasOwnProperty,g=RegExp(\"^\"+f.call(h).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");const m=function(e){return!(!(0,l.A)(e)||s(e))&&((0,r.A)(e)?g:c).test((0,u.A)(e))};const v=function(e,t){return null==e?void 0:e[t]};const E=function(e,t){var n=v(e,t);return m(n)?n:void 0}},1697:e=>{e.exports=function(e){var t=Object(e),n=[];for(var r in t)n.unshift(r);return function e(){for(;n.length;)if((r=n.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},1710:(e,t,n)=>{\"use strict\";n.r(t)},1717:(e,t,n)=>{\"use strict\";function r(e){if(Array.isArray(e))return e}n.d(t,{A:()=>r})},1719:function(e){e.exports=function(){\"use strict\";var e=navigator.userAgent,t=navigator.platform,n=/gecko\\/\\d/i.test(e),r=/MSIE \\d/.test(e),i=/Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(e),o=/Edge\\/(\\d+)/.exec(e),a=r||i||o,s=a&&(r?document.documentMode||6:+(o||i)[1]),l=!o&&/WebKit\\//.test(e),u=l&&/Qt\\/\\d+\\.\\d+/.test(e),c=!o&&/Chrome\\/(\\d+)/.exec(e),p=c&&+c[1],d=/Opera\\//.test(e),f=/Apple Computer/.test(navigator.vendor),h=/Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(e),g=/PhantomJS/.test(e),m=f&&(/Mobile\\/\\w+/.test(e)||navigator.maxTouchPoints>2),v=/Android/.test(e),E=m||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=m||/Mac/.test(t),b=/\\bCrOS\\b/.test(e),x=/win/i.test(t),T=d&&e.match(/Version\\/(\\d*\\.\\d*)/);T&&(T=Number(T[1])),T&&T>=15&&(d=!1,l=!0);var A=y&&(u||d&&(null==T||T<12.11)),S=n||a&&s>=9;function L(e){return new RegExp(\"(^|\\\\s)\"+e+\"(?:$|\\\\s)\\\\s*\")}var N,C=function(e,t){var n=e.className,r=L(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:\"\")}};function I(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function _(e,t){return I(e).appendChild(t)}function R(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),\"string\"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function w(e,t,n,r){var i=R(e,t,n,r);return i.setAttribute(\"role\",\"presentation\"),i}function O(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function D(e){var t,n=e.ownerDocument||e;try{t=e.activeElement}catch(e){t=n.body||null}for(;t&&t.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;return t}function P(e,t){var n=e.className;L(t).test(n)||(e.className+=(n?\" \":\"\")+t)}function k(e,t){for(var n=e.split(\" \"),r=0;r<n.length;r++)n[r]&&!L(n[r]).test(t)&&(t+=\" \"+n[r]);return t}N=document.createRange?function(e,t,n,r){var i=document.createRange();return i.setEnd(r||e,n),i.setStart(e,t),i}:function(e,t,n){var r=document.body.createTextRange();try{r.moveToElementText(e.parentNode)}catch(e){return r}return r.collapse(!0),r.moveEnd(\"character\",n),r.moveStart(\"character\",t),r};var M=function(e){e.select()};function F(e){return e.display.wrapper.ownerDocument}function B(e){return G(e.display.wrapper)}function G(e){return e.getRootNode?e.getRootNode():e.ownerDocument}function j(e){return F(e).defaultView}function U(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function H(e,t,n){for(var r in t||(t={}),e)!e.hasOwnProperty(r)||!1===n&&t.hasOwnProperty(r)||(t[r]=e[r]);return t}function q(e,t,n,r,i){null==t&&-1==(t=e.search(/[^\\s\\u00a0]/))&&(t=e.length);for(var o=r||0,a=i||0;;){var s=e.indexOf(\"\\t\",o);if(s<0||s>=t)return a+(t-o);a+=s-o,a+=n-a%n,o=s+1}}m?M=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:a&&(M=function(e){try{e.select()}catch(e){}});var V=function(){this.id=null,this.f=null,this.time=0,this.handler=U(this.onTimeout,this)};function W(e,t){for(var n=0;n<e.length;++n)if(e[n]==t)return n;return-1}V.prototype.onTimeout=function(e){e.id=0,e.time<=+new Date?e.f():setTimeout(e.handler,e.time-+new Date)},V.prototype.set=function(e,t){this.f=t;var n=+new Date+e;(!this.id||n<this.time)&&(clearTimeout(this.id),this.id=setTimeout(this.handler,e),this.time=n)};var z={toString:function(){return\"CodeMirror.Pass\"}},Q={scroll:!1},X={origin:\"*mouse\"},$={origin:\"+move\"};function Y(e,t,n){for(var r=0,i=0;;){var o=e.indexOf(\"\\t\",r);-1==o&&(o=e.length);var a=o-r;if(o==e.length||i+a>=t)return r+Math.min(a,t-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=t)return r}}var K=[\"\"];function J(e){for(;K.length<=e;)K.push(Z(K)+\" \");return K[e]}function Z(e){return e[e.length-1]}function ee(e,t){for(var n=[],r=0;r<e.length;r++)n[r]=t(e[r],r);return n}function te(){}function ne(e,t){var n;return Object.create?n=Object.create(e):(te.prototype=e,n=new te),t&&H(t,n),n}var re=/[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;function ie(e){return/\\w/.test(e)||e>\"\"&&(e.toUpperCase()!=e.toLowerCase()||re.test(e))}function oe(e,t){return t?!!(t.source.indexOf(\"\\\\w\")>-1&&ie(e))||t.test(e):ie(e)}function ae(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var se=/[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;function le(e){return e.charCodeAt(0)>=768&&se.test(e)}function ue(e,t,n){for(;(n<0?t>0:t<e.length)&&le(e.charAt(t));)t+=n;return t}function ce(e,t,n){for(var r=t>n?-1:1;;){if(t==n)return t;var i=(t+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:n;e(o)?n=o:t=o+r}}var pe=null;function de(e,t,n){var r;pe=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&\"before\"==n?r=i:pe=i),o.from==t&&(o.from!=o.to&&\"before\"!=n?r=i:pe=i)}return null!=r?r:pe}var fe=function(){var e=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/,t=/[stwN]/,n=/[LRr]/,r=/[Lb1n]/,i=/[1n]/;function o(e,t,n){this.level=e,this.from=t,this.to=n}return function(a,s){var l=\"ltr\"==s?\"L\":\"R\";if(0==a.length||\"ltr\"==s&&!e.test(a))return!1;for(var u,c=a.length,p=[],d=0;d<c;++d)p.push((u=a.charCodeAt(d))<=247?\"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\".charAt(u):1424<=u&&u<=1524?\"R\":1536<=u&&u<=1785?\"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\".charAt(u-1536):1774<=u&&u<=2220?\"r\":8192<=u&&u<=8203?\"w\":8204==u?\"b\":\"L\");for(var f=0,h=l;f<c;++f){var g=p[f];\"m\"==g?p[f]=h:h=g}for(var m=0,v=l;m<c;++m){var E=p[m];\"1\"==E&&\"r\"==v?p[m]=\"n\":n.test(E)&&(v=E,\"r\"==E&&(p[m]=\"R\"))}for(var y=1,b=p[0];y<c-1;++y){var x=p[y];\"+\"==x&&\"1\"==b&&\"1\"==p[y+1]?p[y]=\"1\":\",\"!=x||b!=p[y+1]||\"1\"!=b&&\"n\"!=b||(p[y]=b),b=x}for(var T=0;T<c;++T){var A=p[T];if(\",\"==A)p[T]=\"N\";else if(\"%\"==A){var S=void 0;for(S=T+1;S<c&&\"%\"==p[S];++S);for(var L=T&&\"!\"==p[T-1]||S<c&&\"1\"==p[S]?\"1\":\"N\",N=T;N<S;++N)p[N]=L;T=S-1}}for(var C=0,I=l;C<c;++C){var _=p[C];\"L\"==I&&\"1\"==_?p[C]=\"L\":n.test(_)&&(I=_)}for(var R=0;R<c;++R)if(t.test(p[R])){var w=void 0;for(w=R+1;w<c&&t.test(p[w]);++w);for(var O=\"L\"==(R?p[R-1]:l),D=O==(\"L\"==(w<c?p[w]:l))?O?\"L\":\"R\":l,P=R;P<w;++P)p[P]=D;R=w-1}for(var k,M=[],F=0;F<c;)if(r.test(p[F])){var B=F;for(++F;F<c&&r.test(p[F]);++F);M.push(new o(0,B,F))}else{var G=F,j=M.length,U=\"rtl\"==s?1:0;for(++F;F<c&&\"L\"!=p[F];++F);for(var H=G;H<F;)if(i.test(p[H])){G<H&&(M.splice(j,0,new o(1,G,H)),j+=U);var q=H;for(++H;H<F&&i.test(p[H]);++H);M.splice(j,0,new o(2,q,H)),j+=U,G=H}else++H;G<F&&M.splice(j,0,new o(1,G,F))}return\"ltr\"==s&&(1==M[0].level&&(k=a.match(/^\\s+/))&&(M[0].from=k[0].length,M.unshift(new o(0,0,k[0].length))),1==Z(M).level&&(k=a.match(/\\s+$/))&&(Z(M).to-=k[0].length,M.push(new o(0,c-k[0].length,c)))),\"rtl\"==s?M.reverse():M}}();function he(e,t){var n=e.order;return null==n&&(n=e.order=fe(e.text,t)),n}var ge=[],me=function(e,t,n){if(e.addEventListener)e.addEventListener(t,n,!1);else if(e.attachEvent)e.attachEvent(\"on\"+t,n);else{var r=e._handlers||(e._handlers={});r[t]=(r[t]||ge).concat(n)}};function ve(e,t){return e._handlers&&e._handlers[t]||ge}function Ee(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent(\"on\"+t,n);else{var r=e._handlers,i=r&&r[t];if(i){var o=W(i,n);o>-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function ye(e,t){var n=ve(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)}function be(e,t,n){return\"string\"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),ye(e,n||t.type,e,t),Ne(t)||t.codemirrorIgnore}function xe(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var n=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),r=0;r<t.length;++r)-1==W(n,t[r])&&n.push(t[r])}function Te(e,t){return ve(e,t).length>0}function Ae(e){e.prototype.on=function(e,t){me(this,e,t)},e.prototype.off=function(e,t){Ee(this,e,t)}}function Se(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Le(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Ne(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Ce(e){Se(e),Le(e)}function Ie(e){return e.target||e.srcElement}function _e(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var Re,we,Oe=function(){if(a&&s<9)return!1;var e=R(\"div\");return\"draggable\"in e||\"dragDrop\"in e}();function De(e){if(null==Re){var t=R(\"span\",\"​\");_(e,R(\"span\",[t,document.createTextNode(\"x\")])),0!=e.firstChild.offsetHeight&&(Re=t.offsetWidth<=1&&t.offsetHeight>2&&!(a&&s<8))}var n=Re?R(\"span\",\"​\"):R(\"span\",\" \",null,\"display: inline-block; width: 1px; margin-right: -1px\");return n.setAttribute(\"cm-text\",\"\"),n}function Pe(e){if(null!=we)return we;var t=_(e,document.createTextNode(\"AخA\")),n=N(t,0,1).getBoundingClientRect(),r=N(t,1,2).getBoundingClientRect();return I(e),!(!n||n.left==n.right)&&(we=r.right-n.right<3)}var ke,Me=3!=\"\\n\\nb\".split(/\\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf(\"\\n\",t);-1==i&&(i=e.length);var o=e.slice(t,\"\\r\"==e.charAt(i-1)?i-1:i),a=o.indexOf(\"\\r\");-1!=a?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\\r\\n?|\\n/)},Fe=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints(\"StartToEnd\",t)},Be=\"oncopy\"in(ke=R(\"div\"))||(ke.setAttribute(\"oncopy\",\"return;\"),\"function\"==typeof ke.oncopy),Ge=null,je={},Ue={};function He(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),je[e]=t}function qe(e){if(\"string\"==typeof e&&Ue.hasOwnProperty(e))e=Ue[e];else if(e&&\"string\"==typeof e.name&&Ue.hasOwnProperty(e.name)){var t=Ue[e.name];\"string\"==typeof t&&(t={name:t}),(e=ne(t,e)).name=t.name}else{if(\"string\"==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(e))return qe(\"application/xml\");if(\"string\"==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(e))return qe(\"application/json\")}return\"string\"==typeof e?{name:e}:e||{name:\"null\"}}function Ve(e,t){t=qe(t);var n=je[t.name];if(!n)return Ve(e,\"text/plain\");var r=n(e,t);if(We.hasOwnProperty(t.name)){var i=We[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r[\"_\"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}var We={};function ze(e,t){H(t,We.hasOwnProperty(e)?We[e]:We[e]={})}function Qe(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Xe(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function $e(e,t,n){return!e.startState||e.startState(t,n)}var Ye=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Ke(e,t){if((t-=e.first)<0||t>=e.size)throw new Error(\"There is no line \"+(t+e.first)+\" in the document.\");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t<o){n=i;break}t-=o}return n.lines[t]}function Je(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,(function(e){var o=e.text;i==n.line&&(o=o.slice(0,n.ch)),i==t.line&&(o=o.slice(t.ch)),r.push(o),++i})),r}function Ze(e,t,n){var r=[];return e.iter(t,n,(function(e){r.push(e.text)})),r}function et(e,t){var n=t-e.height;if(n)for(var r=e;r;r=r.parent)r.height+=n}function tt(e){if(null==e.parent)return null;for(var t=e.parent,n=W(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function nt(e,t){var n=e.first;e:do{for(var r=0;r<e.children.length;++r){var i=e.children[r],o=i.height;if(t<o){e=i;continue e}t-=o,n+=i.chunkSize()}return n}while(!e.lines);for(var a=0;a<e.lines.length;++a){var s=e.lines[a].height;if(t<s)break;t-=s}return n+a}function rt(e,t){return t>=e.first&&t<e.first+e.size}function it(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function ot(e,t,n){if(void 0===n&&(n=null),!(this instanceof ot))return new ot(e,t,n);this.line=e,this.ch=t,this.sticky=n}function at(e,t){return e.line-t.line||e.ch-t.ch}function st(e,t){return e.sticky==t.sticky&&0==at(e,t)}function lt(e){return ot(e.line,e.ch)}function ut(e,t){return at(e,t)<0?t:e}function ct(e,t){return at(e,t)<0?e:t}function pt(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function dt(e,t){if(t.line<e.first)return ot(e.first,0);var n=e.first+e.size-1;return t.line>n?ot(n,Ke(e,n).text.length):function(e,t){var n=e.ch;return null==n||n>t?ot(e.line,t):n<0?ot(e.line,0):e}(t,Ke(e,t.line).text.length)}function ft(e,t){for(var n=[],r=0;r<t.length;r++)n[r]=dt(e,t[r]);return n}Ye.prototype.eol=function(){return this.pos>=this.string.length},Ye.prototype.sol=function(){return this.pos==this.lineStart},Ye.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Ye.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},Ye.prototype.eat=function(e){var t=this.string.charAt(this.pos);if(\"string\"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},Ye.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},Ye.prototype.eatSpace=function(){for(var e=this.pos;/[\\s\\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Ye.prototype.skipToEnd=function(){this.pos=this.string.length},Ye.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},Ye.prototype.backUp=function(e){this.pos-=e},Ye.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=q(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?q(this.string,this.lineStart,this.tabSize):0)},Ye.prototype.indentation=function(){return q(this.string,null,this.tabSize)-(this.lineStart?q(this.string,this.lineStart,this.tabSize):0)},Ye.prototype.match=function(e,t,n){if(\"string\"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},Ye.prototype.current=function(){return this.string.slice(this.start,this.pos)},Ye.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Ye.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Ye.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ht=function(e,t){this.state=e,this.lookAhead=t},gt=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function mt(e,t,n,r){var i=[e.state.modeGen],o={};Lt(e,t.text,e.doc.mode,n,(function(e,t){return i.push(e,t)}),o,r);for(var a=n.state,s=function(r){n.baseTokens=i;var s=e.state.overlays[r],l=1,u=0;n.state=!0,Lt(e,t.text,s.mode,n,(function(e,t){for(var n=l;u<e;){var r=i[l];r>e&&i.splice(l,1,e,i[l+1],r),l+=2,u=Math.min(e,r)}if(t)if(s.opaque)i.splice(n,l-n,e,\"overlay \"+t),l=n+2;else for(;n<l;n+=2){var o=i[n+1];i[n+1]=(o?o+\" \":\"\")+\"overlay \"+t}}),o),n.state=a,n.baseTokens=null,n.baseTokenPos=1},l=0;l<e.state.overlays.length;++l)s(l);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function vt(e,t,n){if(!t.styles||t.styles[0]!=e.state.modeGen){var r=Et(e,tt(t)),i=t.text.length>e.options.maxHighlightLength&&Qe(e.doc.mode,r.state),o=mt(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function Et(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new gt(r,!0,t);var o=function(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>a;--s){if(s<=o.first)return o.first;var l=Ke(o,s-1),u=l.stateAfter;if(u&&(!n||s+(u instanceof ht?u.lookAhead:0)<=o.modeFrontier))return s;var c=q(l.text,null,e.options.tabSize);(null==i||r>c)&&(i=s-1,r=c)}return i}(e,t,n),a=o>r.first&&Ke(r,o-1).stateAfter,s=a?gt.fromSaved(r,a,o):new gt(r,$e(r.mode),o);return r.iter(o,t,(function(n){yt(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&r<i.viewTo?s.save():null,s.nextLine()})),n&&(r.modeFrontier=s.line),s}function yt(e,t,n,r){var i=e.doc.mode,o=new Ye(t,e.options.tabSize,n);for(o.start=o.pos=r||0,\"\"==t&&bt(i,n.state);!o.eol();)xt(i,o,n.state),o.start=o.pos}function bt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var n=Xe(e,t);return n.mode.blankLine?n.mode.blankLine(n.state):void 0}}function xt(e,t,n,r){for(var i=0;i<10;i++){r&&(r[0]=Xe(e,n).mode);var o=e.token(t,n);if(t.pos>t.start)return o}throw new Error(\"Mode \"+e.name+\" failed to advance stream.\")}gt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},gt.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,\"\"),size:this.baseTokens[this.baseTokenPos]-e}},gt.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},gt.fromSaved=function(e,t,n){return t instanceof ht?new gt(e,Qe(e.mode,t.state),n,t.lookAhead):new gt(e,Qe(e.mode,t),n)},gt.prototype.save=function(e){var t=!1!==e?Qe(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ht(t,this.maxLookAhead):t};var Tt=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function At(e,t,n,r){var i,o,a=e.doc,s=a.mode,l=Ke(a,(t=dt(a,t)).line),u=Et(e,t.line,n),c=new Ye(l.text,e.options.tabSize,u);for(r&&(o=[]);(r||c.pos<t.ch)&&!c.eol();)c.start=c.pos,i=xt(s,c,u.state),r&&o.push(new Tt(c,i,Qe(a.mode,u.state)));return r?o:new Tt(c,i,u.state)}function St(e,t){if(e)for(;;){var n=e.match(/(?:^|\\s+)line-(background-)?(\\S+)/);if(!n)break;e=e.slice(0,n.index)+e.slice(n.index+n[0].length);var r=n[1]?\"bgClass\":\"textClass\";null==t[r]?t[r]=n[2]:new RegExp(\"(?:^|\\\\s)\"+n[2]+\"(?:$|\\\\s)\").test(t[r])||(t[r]+=\" \"+n[2])}return e}function Lt(e,t,n,r,i,o,a){var s=n.flattenSpans;null==s&&(s=e.options.flattenSpans);var l,u=0,c=null,p=new Ye(t,e.options.tabSize,r),d=e.options.addModeClass&&[null];for(\"\"==t&&St(bt(n,r.state),o);!p.eol();){if(p.pos>e.options.maxHighlightLength?(s=!1,a&&yt(e,t,r,p.pos),p.pos=t.length,l=null):l=St(xt(n,p,r.state,d),o),d){var f=d[0].name;f&&(l=\"m-\"+(l?f+\" \"+l:f))}if(!s||c!=l){for(;u<p.start;)i(u=Math.min(p.start,u+5e3),c);c=l}p.start=p.pos}for(;u<p.pos;){var h=Math.min(p.pos,u+5e3);i(h,c),u=h}}var Nt=!1,Ct=!1;function It(e,t,n){this.marker=e,this.from=t,this.to=n}function _t(e,t){if(e)for(var n=0;n<e.length;++n){var r=e[n];if(r.marker==t)return r}}function Rt(e,t){for(var n,r=0;r<e.length;++r)e[r]!=t&&(n||(n=[])).push(e[r]);return n}function wt(e,t){if(t.full)return null;var n=rt(e,t.from.line)&&Ke(e,t.from.line).markedSpans,r=rt(e,t.to.line)&&Ke(e,t.to.line).markedSpans;if(!n&&!r)return null;var i=t.from.ch,o=t.to.ch,a=0==at(t.from,t.to),s=function(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker;if(null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t)||o.from==t&&\"bookmark\"==a.type&&(!n||!o.marker.insertLeft)){var s=null==o.to||(a.inclusiveRight?o.to>=t:o.to>t);(r||(r=[])).push(new It(a,o.from,s?null:o.to))}}return r}(n,i,a),l=function(e,t,n){var r;if(e)for(var i=0;i<e.length;++i){var o=e[i],a=o.marker;if(null==o.to||(a.inclusiveRight?o.to>=t:o.to>t)||o.from==t&&\"bookmark\"==a.type&&(!n||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from<t);(r||(r=[])).push(new It(a,s?null:o.from-t,null==o.to?null:o.to-t))}}return r}(r,o,a),u=1==t.text.length,c=Z(t.text).length+(u?i:0);if(s)for(var p=0;p<s.length;++p){var d=s[p];if(null==d.to){var f=_t(l,d.marker);f?u&&(d.to=null==f.to?null:f.to+c):d.to=i}}if(l)for(var h=0;h<l.length;++h){var g=l[h];null!=g.to&&(g.to+=c),null==g.from?_t(s,g.marker)||(g.from=c,u&&(s||(s=[])).push(g)):(g.from+=c,u&&(s||(s=[])).push(g))}s&&(s=Ot(s)),l&&l!=s&&(l=Ot(l));var m=[s];if(!u){var v,E=t.text.length-2;if(E>0&&s)for(var y=0;y<s.length;++y)null==s[y].to&&(v||(v=[])).push(new It(s[y].marker,null,null));for(var b=0;b<E;++b)m.push(v);m.push(l)}return m}function Ot(e){for(var t=0;t<e.length;++t){var n=e[t];null!=n.from&&n.from==n.to&&!1!==n.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function Dt(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function Pt(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function kt(e){return e.inclusiveLeft?-1:0}function Mt(e){return e.inclusiveRight?1:0}function Ft(e,t){var n=e.lines.length-t.lines.length;if(0!=n)return n;var r=e.find(),i=t.find(),o=at(r.from,i.from)||kt(e)-kt(t);if(o)return-o;var a=at(r.to,i.to)||Mt(e)-Mt(t);return a||t.id-e.id}function Bt(e,t){var n,r=Ct&&e.markedSpans;if(r)for(var i=void 0,o=0;o<r.length;++o)(i=r[o]).marker.collapsed&&null==(t?i.from:i.to)&&(!n||Ft(n,i.marker)<0)&&(n=i.marker);return n}function Gt(e){return Bt(e,!0)}function jt(e){return Bt(e,!1)}function Ut(e,t){var n,r=Ct&&e.markedSpans;if(r)for(var i=0;i<r.length;++i){var o=r[i];o.marker.collapsed&&(null==o.from||o.from<t)&&(null==o.to||o.to>t)&&(!n||Ft(n,o.marker)<0)&&(n=o.marker)}return n}function Ht(e,t,n,r,i){var o=Ke(e,t),a=Ct&&o.markedSpans;if(a)for(var s=0;s<a.length;++s){var l=a[s];if(l.marker.collapsed){var u=l.marker.find(0),c=at(u.from,n)||kt(l.marker)-kt(i),p=at(u.to,r)||Mt(l.marker)-Mt(i);if(!(c>=0&&p<=0||c<=0&&p>=0)&&(c<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?at(u.to,n)>=0:at(u.to,n)>0)||c>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?at(u.from,r)<=0:at(u.from,r)<0)))return!0}}}function qt(e){for(var t;t=Gt(e);)e=t.find(-1,!0).line;return e}function Vt(e,t){var n=Ke(e,t),r=qt(n);return n==r?t:tt(r)}function Wt(e,t){if(t>e.lastLine())return t;var n,r=Ke(e,t);if(!zt(e,r))return t;for(;n=jt(r);)r=n.find(1,!0).line;return tt(r)+1}function zt(e,t){var n=Ct&&t.markedSpans;if(n)for(var r=void 0,i=0;i<n.length;++i)if((r=n[i]).marker.collapsed){if(null==r.from)return!0;if(!r.marker.widgetNode&&0==r.from&&r.marker.inclusiveLeft&&Qt(e,t,r))return!0}}function Qt(e,t,n){if(null==n.to){var r=n.marker.find(1,!0);return Qt(e,r.line,_t(r.line.markedSpans,n.marker))}if(n.marker.inclusiveRight&&n.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if((i=t.markedSpans[o]).marker.collapsed&&!i.marker.widgetNode&&i.from==n.to&&(null==i.to||i.to!=n.from)&&(i.marker.inclusiveLeft||n.marker.inclusiveRight)&&Qt(e,t,i))return!0}function Xt(e){for(var t=0,n=(e=qt(e)).parent,r=0;r<n.lines.length;++r){var i=n.lines[r];if(i==e)break;t+=i.height}for(var o=n.parent;o;o=(n=o).parent)for(var a=0;a<o.children.length;++a){var s=o.children[a];if(s==n)break;t+=s.height}return t}function $t(e){if(0==e.height)return 0;for(var t,n=e.text.length,r=e;t=Gt(r);){var i=t.find(0,!0);r=i.from.line,n+=i.from.ch-i.to.ch}for(r=e;t=jt(r);){var o=t.find(0,!0);n-=r.text.length-o.from.ch,n+=(r=o.to.line).text.length-o.to.ch}return n}function Yt(e){var t=e.display,n=e.doc;t.maxLine=Ke(n,n.first),t.maxLineLength=$t(t.maxLine),t.maxLineChanged=!0,n.iter((function(e){var n=$t(e);n>t.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)}))}var Kt=function(e,t,n){this.text=e,Pt(this,t),this.height=n?n(this):1};function Jt(e){e.parent=null,Dt(e)}Kt.prototype.lineNo=function(){return tt(this)},Ae(Kt);var Zt={},en={};function tn(e,t){if(!e||/^\\s*$/.test(e))return null;var n=t.addModeClass?en:Zt;return n[e]||(n[e]=e.replace(/\\S+/g,\"cm-$&\"))}function nn(e,t){var n=w(\"span\",null,null,l?\"padding-right: .1px\":null),r={pre:w(\"pre\",[n],\"CodeMirror-line\"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption(\"lineWrapping\")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;r.pos=0,r.addToken=on,Pe(e.display.measure)&&(a=he(o,e.doc.direction))&&(r.addToken=an(r.addToken,a)),r.map=[],ln(o,r,vt(e,o,t!=e.display.externalMeasured&&tt(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=k(o.styleClasses.bgClass,r.bgClass||\"\")),o.styleClasses.textClass&&(r.textClass=k(o.styleClasses.textClass,r.textClass||\"\"))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(De(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(l){var s=r.content.lastChild;(/\\bcm-tab\\b/.test(s.className)||s.querySelector&&s.querySelector(\".cm-tab\"))&&(r.content.className=\"cm-tab-wrap-hack\")}return ye(e,\"renderLine\",e,t.line,r.pre),r.pre.className&&(r.textClass=k(r.pre.className,r.textClass||\"\")),r}function rn(e){var t=R(\"span\",\"•\",\"cm-invalidchar\");return t.title=\"\\\\u\"+e.charCodeAt(0).toString(16),t.setAttribute(\"aria-label\",t.title),t}function on(e,t,n,r,i,o,l){if(t){var u,c=e.splitSpaces?function(e,t){if(e.length>1&&!/  /.test(e))return e;for(var n=t,r=\"\",i=0;i<e.length;i++){var o=e.charAt(i);\" \"!=o||!n||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=\" \"),r+=o,n=\" \"==o}return r}(t,e.trailingSpace):t,p=e.cm.state.specialChars,d=!1;if(p.test(t)){u=document.createDocumentFragment();for(var f=0;;){p.lastIndex=f;var h=p.exec(t),g=h?h.index-f:t.length-f;if(g){var m=document.createTextNode(c.slice(f,f+g));a&&s<9?u.appendChild(R(\"span\",[m])):u.appendChild(m),e.map.push(e.pos,e.pos+g,m),e.col+=g,e.pos+=g}if(!h)break;f+=g+1;var v=void 0;if(\"\\t\"==h[0]){var E=e.cm.options.tabSize,y=E-e.col%E;(v=u.appendChild(R(\"span\",J(y),\"cm-tab\"))).setAttribute(\"role\",\"presentation\"),v.setAttribute(\"cm-text\",\"\\t\"),e.col+=y}else\"\\r\"==h[0]||\"\\n\"==h[0]?((v=u.appendChild(R(\"span\",\"\\r\"==h[0]?\"␍\":\"␤\",\"cm-invalidchar\"))).setAttribute(\"cm-text\",h[0]),e.col+=1):((v=e.cm.options.specialCharPlaceholder(h[0])).setAttribute(\"cm-text\",h[0]),a&&s<9?u.appendChild(R(\"span\",[v])):u.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,u=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,u),a&&s<9&&(d=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),n||r||i||d||o||l){var b=n||\"\";r&&(b+=r),i&&(b+=i);var x=R(\"span\",[u],b,o);if(l)for(var T in l)l.hasOwnProperty(T)&&\"style\"!=T&&\"class\"!=T&&x.setAttribute(T,l[T]);return e.content.appendChild(x)}e.content.appendChild(u)}}function an(e,t){return function(n,r,i,o,a,s,l){i=i?i+\" cm-force-border\":\"cm-force-border\";for(var u=n.pos,c=u+r.length;;){for(var p=void 0,d=0;d<t.length&&!((p=t[d]).to>u&&p.from<=u);d++);if(p.to>=c)return e(n,r,i,o,a,s,l);e(n,r.slice(0,p.to-u),i,o,null,s,l),o=null,r=r.slice(p.to-u),u=p.to}}}function sn(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement(\"span\"))),i.setAttribute(\"cm-marker\",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function ln(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,s,l,u,c,p,d,f=i.length,h=0,g=1,m=\"\",v=0;;){if(v==h){l=u=c=s=\"\",d=null,p=null,v=1/0;for(var E=[],y=void 0,b=0;b<r.length;++b){var x=r[b],T=x.marker;if(\"bookmark\"==T.type&&x.from==h&&T.widgetNode)E.push(T);else if(x.from<=h&&(null==x.to||x.to>h||T.collapsed&&x.to==h&&x.from==h)){if(null!=x.to&&x.to!=h&&v>x.to&&(v=x.to,u=\"\"),T.className&&(l+=\" \"+T.className),T.css&&(s=(s?s+\";\":\"\")+T.css),T.startStyle&&x.from==h&&(c+=\" \"+T.startStyle),T.endStyle&&x.to==v&&(y||(y=[])).push(T.endStyle,x.to),T.title&&((d||(d={})).title=T.title),T.attributes)for(var A in T.attributes)(d||(d={}))[A]=T.attributes[A];T.collapsed&&(!p||Ft(p.marker,T)<0)&&(p=x)}else x.from>h&&v>x.from&&(v=x.from)}if(y)for(var S=0;S<y.length;S+=2)y[S+1]==v&&(u+=\" \"+y[S]);if(!p||p.from==h)for(var L=0;L<E.length;++L)sn(t,0,E[L]);if(p&&(p.from||0)==h){if(sn(t,(null==p.to?f+1:p.to)-h,p.marker,null==p.from),null==p.to)return;p.to==h&&(p=!1)}}if(h>=f)break;for(var N=Math.min(f,v);;){if(m){var C=h+m.length;if(!p){var I=C>N?m.slice(0,N-h):m;t.addToken(t,I,a?a+l:l,c,h+I.length==v?u:\"\",s,d)}if(C>=N){m=m.slice(N-h),h=N;break}h=C,c=\"\"}m=i.slice(o,o=n[g++]),a=tn(n[g++],t.cm.options)}}else for(var _=1;_<n.length;_+=2)t.addToken(t,i.slice(o,o=n[_]),tn(n[_+1],t.cm.options))}function un(e,t,n){this.line=t,this.rest=function(e){for(var t,n;t=jt(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}(t),this.size=this.rest?tt(Z(this.rest))-n+1:1,this.node=this.text=null,this.hidden=zt(e,t)}function cn(e,t,n){for(var r,i=[],o=t;o<n;o=r){var a=new un(e.doc,Ke(e.doc,o),o);r=o+a.size,i.push(a)}return i}var pn=null,dn=null;function fn(e,t){var n=ve(e,t);if(n.length){var r,i=Array.prototype.slice.call(arguments,2);pn?r=pn.delayedCallbacks:dn?r=dn:(r=dn=[],setTimeout(hn,0));for(var o=function(e){r.push((function(){return n[e].apply(null,i)}))},a=0;a<n.length;++a)o(a)}}function hn(){var e=dn;dn=null;for(var t=0;t<e.length;++t)e[t]()}function gn(e,t,n,r){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];\"text\"==o?En(e,t):\"gutter\"==o?bn(e,t,n,r):\"class\"==o?yn(e,t):\"widget\"==o&&xn(e,t,r)}t.changes=null}function mn(e){return e.node==e.text&&(e.node=R(\"div\",null,null,\"position: relative\"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),a&&s<8&&(e.node.style.zIndex=2)),e.node}function vn(e,t){var n=e.display.externalMeasured;return n&&n.line==t.line?(e.display.externalMeasured=null,t.measure=n.measure,n.built):nn(e,t)}function En(e,t){var n=t.text.className,r=vn(e,t);t.text==t.node&&(t.node=r.pre),t.text.parentNode.replaceChild(r.pre,t.text),t.text=r.pre,r.bgClass!=t.bgClass||r.textClass!=t.textClass?(t.bgClass=r.bgClass,t.textClass=r.textClass,yn(e,t)):n&&(t.text.className=n)}function yn(e,t){!function(e,t){var n=t.bgClass?t.bgClass+\" \"+(t.line.bgClass||\"\"):t.line.bgClass;if(n&&(n+=\" CodeMirror-linebackground\"),t.background)n?t.background.className=n:(t.background.parentNode.removeChild(t.background),t.background=null);else if(n){var r=mn(t);t.background=r.insertBefore(R(\"div\",null,n),r.firstChild),e.display.input.setUneditable(t.background)}}(e,t),t.line.wrapClass?mn(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className=\"\");var n=t.textClass?t.textClass+\" \"+(t.line.textClass||\"\"):t.line.textClass;t.text.className=n||\"\"}function bn(e,t,n,r){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var i=mn(t);t.gutterBackground=R(\"div\",null,\"CodeMirror-gutter-background \"+t.line.gutterClass,\"left: \"+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+\"px; width: \"+r.gutterTotalWidth+\"px\"),e.display.input.setUneditable(t.gutterBackground),i.insertBefore(t.gutterBackground,t.text)}var o=t.line.gutterMarkers;if(e.options.lineNumbers||o){var a=mn(t),s=t.gutter=R(\"div\",null,\"CodeMirror-gutter-wrapper\",\"left: \"+(e.options.fixedGutter?r.fixedPos:-r.gutterTotalWidth)+\"px\");if(s.setAttribute(\"aria-hidden\",\"true\"),e.display.input.setUneditable(s),a.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=\" \"+t.line.gutterClass),!e.options.lineNumbers||o&&o[\"CodeMirror-linenumbers\"]||(t.lineNumber=s.appendChild(R(\"div\",it(e.options,n),\"CodeMirror-linenumber CodeMirror-gutter-elt\",\"left: \"+r.gutterLeft[\"CodeMirror-linenumbers\"]+\"px; width: \"+e.display.lineNumInnerWidth+\"px\"))),o)for(var l=0;l<e.display.gutterSpecs.length;++l){var u=e.display.gutterSpecs[l].className,c=o.hasOwnProperty(u)&&o[u];c&&s.appendChild(R(\"div\",[c],\"CodeMirror-gutter-elt\",\"left: \"+r.gutterLeft[u]+\"px; width: \"+r.gutterWidth[u]+\"px\"))}}}function xn(e,t,n){t.alignable&&(t.alignable=null);for(var r=L(\"CodeMirror-linewidget\"),i=t.node.firstChild,o=void 0;i;i=o)o=i.nextSibling,r.test(i.className)&&t.node.removeChild(i);An(e,t,n)}function Tn(e,t,n,r){var i=vn(e,t);return t.text=t.node=i.pre,i.bgClass&&(t.bgClass=i.bgClass),i.textClass&&(t.textClass=i.textClass),yn(e,t),bn(e,t,n,r),An(e,t,r),t.node}function An(e,t,n){if(Sn(e,t.line,t,n,!0),t.rest)for(var r=0;r<t.rest.length;r++)Sn(e,t.rest[r],t,n,!1)}function Sn(e,t,n,r,i){if(t.widgets)for(var o=mn(n),a=0,s=t.widgets;a<s.length;++a){var l=s[a],u=R(\"div\",[l.node],\"CodeMirror-linewidget\"+(l.className?\" \"+l.className:\"\"));l.handleMouseEvents||u.setAttribute(\"cm-ignore-events\",\"true\"),Ln(l,u,n,r),e.display.input.setUneditable(u),i&&l.above?o.insertBefore(u,n.gutter||n.text):o.appendChild(u),fn(l,\"redraw\")}}function Ln(e,t,n,r){if(e.noHScroll){(n.alignable||(n.alignable=[])).push(t);var i=r.wrapperWidth;t.style.left=r.fixedPos+\"px\",e.coverGutter||(i-=r.gutterTotalWidth,t.style.paddingLeft=r.gutterTotalWidth+\"px\"),t.style.width=i+\"px\"}e.coverGutter&&(t.style.zIndex=5,t.style.position=\"relative\",e.noHScroll||(t.style.marginLeft=-r.gutterTotalWidth+\"px\"))}function Nn(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!O(document.body,e.node)){var n=\"position: relative;\";e.coverGutter&&(n+=\"margin-left: -\"+t.display.gutters.offsetWidth+\"px;\"),e.noHScroll&&(n+=\"width: \"+t.display.wrapper.clientWidth+\"px;\"),_(t.display.measure,R(\"div\",[e.node],null,n))}return e.height=e.node.parentNode.offsetHeight}function Cn(e,t){for(var n=Ie(t);n!=e.wrapper;n=n.parentNode)if(!n||1==n.nodeType&&\"true\"==n.getAttribute(\"cm-ignore-events\")||n.parentNode==e.sizer&&n!=e.mover)return!0}function In(e){return e.lineSpace.offsetTop}function _n(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function Rn(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=_(e.measure,R(\"pre\",\"x\",\"CodeMirror-line-like\")),n=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,r={left:parseInt(n.paddingLeft),right:parseInt(n.paddingRight)};return isNaN(r.left)||isNaN(r.right)||(e.cachedPaddingH=r),r}function wn(e){return 50-e.display.nativeBarWidth}function On(e){return e.display.scroller.clientWidth-wn(e)-e.display.barWidth}function Dn(e){return e.display.scroller.clientHeight-wn(e)-e.display.barHeight}function Pn(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};if(e.rest){for(var r=0;r<e.rest.length;r++)if(e.rest[r]==t)return{map:e.measure.maps[r],cache:e.measure.caches[r]};for(var i=0;i<e.rest.length;i++)if(tt(e.rest[i])>n)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}}function kn(e,t,n,r){return Bn(e,Fn(e,t),n,r)}function Mn(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[gr(e,t)];var n=e.display.externalMeasured;return n&&t>=n.lineN&&t<n.lineN+n.size?n:void 0}function Fn(e,t){var n=tt(t),r=Mn(e,n);r&&!r.text?r=null:r&&r.changes&&(gn(e,r,n,cr(e)),e.curOp.forceUpdate=!0),r||(r=function(e,t){var n=tt(t=qt(t)),r=e.display.externalMeasured=new un(e.doc,t,n);r.lineN=n;var i=r.built=nn(e,r);return r.text=i.pre,_(e.display.lineMeasure,i.pre),r}(e,t));var i=Pn(r,t,n);return{line:t,view:r,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function Bn(e,t,n,r,i){t.before&&(n=-1);var o,l=n+(r||\"\");return t.cache.hasOwnProperty(l)?o=t.cache[l]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(function(e,t,n){var r=e.options.lineWrapping,i=r&&On(e);if(!t.measure.heights||r&&t.measure.width!=i){var o=t.measure.heights=[];if(r){t.measure.width=i;for(var a=t.text.firstChild.getClientRects(),s=0;s<a.length-1;s++){var l=a[s],u=a[s+1];Math.abs(l.bottom-u.bottom)>2&&o.push((l.bottom+u.top)/2-n.top)}}o.push(n.bottom-n.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,n,r){var i,o=Un(t.map,n,r),l=o.node,u=o.start,c=o.end,p=o.collapse;if(3==l.nodeType){for(var d=0;d<4;d++){for(;u&&le(t.line.text.charAt(o.coverStart+u));)--u;for(;o.coverStart+c<o.coverEnd&&le(t.line.text.charAt(o.coverStart+c));)++c;if((i=a&&s<9&&0==u&&c==o.coverEnd-o.coverStart?l.parentNode.getBoundingClientRect():Hn(N(l,u,c).getClientRects(),r)).left||i.right||0==u)break;c=u,u-=1,p=\"right\"}a&&s<11&&(i=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=Ge)return Ge;var t=_(e,R(\"span\",\"x\")),n=t.getBoundingClientRect(),r=N(t,0,1).getBoundingClientRect();return Ge=Math.abs(n.left-r.left)>1}(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}(e.display.measure,i))}else{var f;u>0&&(p=r=\"right\"),i=e.options.lineWrapping&&(f=l.getClientRects()).length>1?f[\"right\"==r?f.length-1:0]:l.getBoundingClientRect()}if(a&&s<9&&!u&&(!i||!i.left&&!i.right)){var h=l.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+ur(e.display),top:h.top,bottom:h.bottom}:jn}for(var g=i.top-t.rect.top,m=i.bottom-t.rect.top,v=(g+m)/2,E=t.view.measure.heights,y=0;y<E.length-1&&!(v<E[y]);y++);var b=y?E[y-1]:0,x=E[y],T={left:(\"right\"==p?i.right:i.left)-t.rect.left,right:(\"left\"==p?i.left:i.right)-t.rect.left,top:b,bottom:x};return i.left||i.right||(T.bogus=!0),e.options.singleCursorHeightPerLine||(T.rtop=g,T.rbottom=m),T}(e,t,n,r)).bogus||(t.cache[l]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}var Gn,jn={left:0,right:0,top:0,bottom:0};function Un(e,t,n){for(var r,i,o,a,s,l,u=0;u<e.length;u+=3)if(s=e[u],l=e[u+1],t<s?(i=0,o=1,a=\"left\"):t<l?o=1+(i=t-s):(u==e.length-3||t==l&&e[u+3]>t)&&(i=(o=l-s)-1,t>=l&&(a=\"right\")),null!=i){if(r=e[u+2],s==l&&n==(r.insertLeft?\"left\":\"right\")&&(a=n),\"left\"==n&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)r=e[2+(u-=3)],a=\"left\";if(\"right\"==n&&i==l-s)for(;u<e.length-3&&e[u+3]==e[u+4]&&!e[u+5].insertLeft;)r=e[(u+=3)+2],a=\"right\";break}return{node:r,start:i,end:o,collapse:a,coverStart:s,coverEnd:l}}function Hn(e,t){var n=jn;if(\"left\"==t)for(var r=0;r<e.length&&(n=e[r]).left==n.right;r++);else for(var i=e.length-1;i>=0&&(n=e[i]).left==n.right;i--);return n}function qn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function Vn(e){e.display.externalMeasure=null,I(e.display.lineMeasure);for(var t=0;t<e.display.view.length;t++)qn(e.display.view[t])}function Wn(e){Vn(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function zn(e){return c&&v?-(e.body.getBoundingClientRect().left-parseInt(getComputedStyle(e.body).marginLeft)):e.defaultView.pageXOffset||(e.documentElement||e.body).scrollLeft}function Qn(e){return c&&v?-(e.body.getBoundingClientRect().top-parseInt(getComputedStyle(e.body).marginTop)):e.defaultView.pageYOffset||(e.documentElement||e.body).scrollTop}function Xn(e){var t=qt(e).widgets,n=0;if(t)for(var r=0;r<t.length;++r)t[r].above&&(n+=Nn(t[r]));return n}function $n(e,t,n,r,i){if(!i){var o=Xn(t);n.top+=o,n.bottom+=o}if(\"line\"==r)return n;r||(r=\"local\");var a=Xt(t);if(\"local\"==r?a+=In(e.display):a-=e.display.viewOffset,\"page\"==r||\"window\"==r){var s=e.display.lineSpace.getBoundingClientRect();a+=s.top+(\"window\"==r?0:Qn(F(e)));var l=s.left+(\"window\"==r?0:zn(F(e)));n.left+=l,n.right+=l}return n.top+=a,n.bottom+=a,n}function Yn(e,t,n){if(\"div\"==n)return t;var r=t.left,i=t.top;if(\"page\"==n)r-=zn(F(e)),i-=Qn(F(e));else if(\"local\"==n||!n){var o=e.display.sizer.getBoundingClientRect();r+=o.left,i+=o.top}var a=e.display.lineSpace.getBoundingClientRect();return{left:r-a.left,top:i-a.top}}function Kn(e,t,n,r,i){return r||(r=Ke(e.doc,t.line)),$n(e,r,kn(e,r,t.ch,i),n)}function Jn(e,t,n,r,i,o){function a(t,a){var s=Bn(e,i,t,a?\"right\":\"left\",o);return a?s.left=s.right:s.right=s.left,$n(e,r,s,n)}r=r||Ke(e.doc,t.line),i||(i=Fn(e,r));var s=he(r,e.doc.direction),l=t.ch,u=t.sticky;if(l>=r.text.length?(l=r.text.length,u=\"before\"):l<=0&&(l=0,u=\"after\"),!s)return a(\"before\"==u?l-1:l,\"before\"==u);function c(e,t,n){return a(n?e-1:e,1==s[t].level!=n)}var p=de(s,l,u),d=pe,f=c(l,p,\"before\"==u);return null!=d&&(f.other=c(l,d,\"before\"!=u)),f}function Zn(e,t){var n=0;t=dt(e.doc,t),e.options.lineWrapping||(n=ur(e.display)*t.ch);var r=Ke(e.doc,t.line),i=Xt(r)+In(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function er(e,t,n,r,i){var o=ot(e,t,n);return o.xRel=i,r&&(o.outside=r),o}function tr(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return er(r.first,0,null,-1,-1);var i=nt(r,n),o=r.first+r.size-1;if(i>o)return er(r.first+r.size-1,Ke(r,o).text.length,null,1,1);t<0&&(t=0);for(var a=Ke(r,i);;){var s=or(e,a,i,t,n),l=Ut(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!l)return s;var u=l.find(1);if(u.line==i)return u;a=Ke(r,i=u.line)}}function nr(e,t,n,r){r-=Xn(t);var i=t.text.length,o=ce((function(t){return Bn(e,n,t-1).bottom<=r}),i,0);return{begin:o,end:i=ce((function(t){return Bn(e,n,t).top>r}),o,i)}}function rr(e,t,n,r){return n||(n=Fn(e,t)),nr(e,t,n,$n(e,t,Bn(e,n,r),\"line\").top)}function ir(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function or(e,t,n,r,i){i-=Xt(t);var o=Fn(e,t),a=Xn(t),s=0,l=t.text.length,u=!0,c=he(t,e.doc.direction);if(c){var p=(e.options.lineWrapping?sr:ar)(e,t,n,o,c,r,i);s=(u=1!=p.level)?p.from:p.to-1,l=u?p.to:p.from-1}var d,f,h=null,g=null,m=ce((function(t){var n=Bn(e,o,t);return n.top+=a,n.bottom+=a,!!ir(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(h=t,g=n),!0)}),s,l),v=!1;if(g){var E=r-g.left<g.right-r,y=E==u;m=h+(y?0:1),f=y?\"after\":\"before\",d=E?g.left:g.right}else{u||m!=l&&m!=s||m++,f=0==m?\"after\":m==t.text.length?\"before\":Bn(e,o,m-(u?1:0)).bottom+a<=i==u?\"after\":\"before\";var b=Jn(e,ot(n,m,f),\"line\",t,o);d=b.left,v=i<b.top?-1:i>=b.bottom?1:0}return er(n,m=ue(t.text,m,1),f,v,r-d)}function ar(e,t,n,r,i,o,a){var s=ce((function(s){var l=i[s],u=1!=l.level;return ir(Jn(e,ot(n,u?l.to:l.from,u?\"before\":\"after\"),\"line\",t,r),o,a,!0)}),0,i.length-1),l=i[s];if(s>0){var u=1!=l.level,c=Jn(e,ot(n,u?l.from:l.to,u?\"after\":\"before\"),\"line\",t,r);ir(c,o,a,!0)&&c.top>a&&(l=i[s-1])}return l}function sr(e,t,n,r,i,o,a){var s=nr(e,t,r,a),l=s.begin,u=s.end;/\\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,p=null,d=0;d<i.length;d++){var f=i[d];if(!(f.from>=u||f.to<=l)){var h=Bn(e,r,1!=f.level?Math.min(u,f.to)-1:Math.max(l,f.from)).right,g=h<o?o-h+1e9:h-o;(!c||p>g)&&(c=f,p=g)}}return c||(c=i[i.length-1]),c.from<l&&(c={from:l,to:c.to,level:c.level}),c.to>u&&(c={from:c.from,to:u,level:c.level}),c}function lr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Gn){Gn=R(\"pre\",null,\"CodeMirror-line-like\");for(var t=0;t<49;++t)Gn.appendChild(document.createTextNode(\"x\")),Gn.appendChild(R(\"br\"));Gn.appendChild(document.createTextNode(\"x\"))}_(e.measure,Gn);var n=Gn.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),I(e.measure),n||1}function ur(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=R(\"span\",\"xxxxxxxxxx\"),n=R(\"pre\",[t],\"CodeMirror-line-like\");_(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function cr(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=e.display.gutterSpecs[a].className;n[s]=o.offsetLeft+o.clientLeft+i,r[s]=o.clientWidth}return{fixedPos:pr(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function pr(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function dr(e){var t=lr(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/ur(e.display)-3);return function(i){if(zt(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a<i.widgets.length;a++)i.widgets[a].height&&(o+=i.widgets[a].height);return n?o+(Math.ceil(i.text.length/r)||1)*t:o+t}}function fr(e){var t=e.doc,n=dr(e);t.iter((function(e){var t=n(e);t!=e.height&&et(e,t)}))}function hr(e,t,n,r){var i=e.display;if(!n&&\"true\"==Ie(t).getAttribute(\"cm-not-content\"))return null;var o,a,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,a=t.clientY-s.top}catch(e){return null}var l,u=tr(e,o,a);if(r&&u.xRel>0&&(l=Ke(e.doc,u.line).text).length==u.ch){var c=q(l,l.length,e.options.tabSize)-l.length;u=ot(u.line,Math.max(0,Math.round((o-Rn(e.display).left)/ur(e.display))-c))}return u}function gr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;r<n.length;r++)if((t-=n[r].size)<0)return r}function mr(e,t,n,r){null==t&&(t=e.doc.first),null==n&&(n=e.doc.first+e.doc.size),r||(r=0);var i=e.display;if(r&&n<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Ct&&Vt(e.doc,t)<i.viewTo&&Er(e);else if(n<=i.viewFrom)Ct&&Wt(e.doc,n+r)>i.viewFrom?Er(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)Er(e);else if(t<=i.viewFrom){var o=yr(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):Er(e)}else if(n>=i.viewTo){var a=yr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Er(e)}else{var s=yr(e,t,t,-1),l=yr(e,n,n+r,1);s&&l?(i.view=i.view.slice(0,s.index).concat(cn(e,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):Er(e)}var u=i.externalMeasured;u&&(n<u.lineN?u.lineN+=r:t<u.lineN+u.size&&(i.externalMeasured=null))}function vr(e,t,n){e.curOp.viewChanged=!0;var r=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(r.externalMeasured=null),!(t<r.viewFrom||t>=r.viewTo)){var o=r.view[gr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==W(a,n)&&a.push(n)}}}function Er(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function yr(e,t,n,r){var i,o=gr(e,t),a=e.display.view;if(!Ct||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,l=0;l<o;l++)s+=a[l].size;if(s!=t){if(r>0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;Vt(e.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function br(e){for(var t=e.display.view,n=0,r=0;r<t.length;r++){var i=t[r];i.hidden||i.node&&!i.changes||++n}return n}function xr(e){e.display.input.showSelection(e.display.input.prepareSelection())}function Tr(e,t){void 0===t&&(t=!0);var n=e.doc,r={},i=r.cursors=document.createDocumentFragment(),o=r.selection=document.createDocumentFragment(),a=e.options.$customCursor;a&&(t=!0);for(var s=0;s<n.sel.ranges.length;s++)if(t||s!=n.sel.primIndex){var l=n.sel.ranges[s];if(!(l.from().line>=e.display.viewTo||l.to().line<e.display.viewFrom)){var u=l.empty();if(a){var c=a(e,l);c&&Ar(e,c,i)}else(u||e.options.showCursorWhenSelecting)&&Ar(e,l.head,i);u||Lr(e,l,o)}}return r}function Ar(e,t,n){var r=Jn(e,t,\"div\",null,null,!e.options.singleCursorHeightPerLine),i=n.appendChild(R(\"div\",\" \",\"CodeMirror-cursor\"));if(i.style.left=r.left+\"px\",i.style.top=r.top+\"px\",i.style.height=Math.max(0,r.bottom-r.top)*e.options.cursorHeight+\"px\",/\\bcm-fat-cursor\\b/.test(e.getWrapperElement().className)){var o=Kn(e,t,\"div\",null,null),a=o.right-o.left;i.style.width=(a>0?a:e.defaultCharWidth())+\"px\"}if(r.other){var s=n.appendChild(R(\"div\",\" \",\"CodeMirror-cursor CodeMirror-secondarycursor\"));s.style.display=\"\",s.style.left=r.other.left+\"px\",s.style.top=r.other.top+\"px\",s.style.height=.85*(r.other.bottom-r.other.top)+\"px\"}}function Sr(e,t){return e.top-t.top||e.left-t.left}function Lr(e,t,n){var r=e.display,i=e.doc,o=document.createDocumentFragment(),a=Rn(e.display),s=a.left,l=Math.max(r.sizerWidth,On(e)-r.sizer.offsetLeft)-a.right,u=\"ltr\"==i.direction;function c(e,t,n,r){t<0&&(t=0),t=Math.round(t),r=Math.round(r),o.appendChild(R(\"div\",null,\"CodeMirror-selected\",\"position: absolute; left: \"+e+\"px;\\n                             top: \"+t+\"px; width: \"+(null==n?l-e:n)+\"px;\\n                             height: \"+(r-t)+\"px\"))}function p(t,n,r){var o,a,p=Ke(i,t),d=p.text.length;function f(n,r){return Kn(e,ot(t,n),\"div\",p,r)}function h(t,n,r){var i=rr(e,p,null,t),o=\"ltr\"==n==(\"after\"==r)?\"left\":\"right\";return f(\"after\"==r?i.begin:i.end-(/\\s/.test(p.text.charAt(i.end-1))?2:1),o)[o]}var g=he(p,i.direction);return function(e,t,n,r){if(!e)return r(t,n,\"ltr\",0);for(var i=!1,o=0;o<e.length;++o){var a=e[o];(a.from<n&&a.to>t||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?\"rtl\":\"ltr\",o),i=!0)}i||r(t,n,\"ltr\")}(g,n||0,null==r?d:r,(function(e,t,i,p){var m=\"ltr\"==i,v=f(e,m?\"left\":\"right\"),E=f(t-1,m?\"right\":\"left\"),y=null==n&&0==e,b=null==r&&t==d,x=0==p,T=!g||p==g.length-1;if(E.top-v.top<=3){var A=(u?b:y)&&T,S=(u?y:b)&&x?s:(m?v:E).left,L=A?l:(m?E:v).right;c(S,v.top,L-S,v.bottom)}else{var N,C,I,_;m?(N=u&&y&&x?s:v.left,C=u?l:h(e,i,\"before\"),I=u?s:h(t,i,\"after\"),_=u&&b&&T?l:E.right):(N=u?h(e,i,\"before\"):s,C=!u&&y&&x?l:v.right,I=!u&&b&&T?s:E.left,_=u?h(t,i,\"after\"):l),c(N,v.top,C-N,v.bottom),v.bottom<E.top&&c(s,v.bottom,null,E.top),c(I,E.top,_-I,E.bottom)}(!o||Sr(v,o)<0)&&(o=v),Sr(E,o)<0&&(o=E),(!a||Sr(v,a)<0)&&(a=v),Sr(E,a)<0&&(a=E)})),{start:o,end:a}}var d=t.from(),f=t.to();if(d.line==f.line)p(d.line,d.ch,f.ch);else{var h=Ke(i,d.line),g=Ke(i,f.line),m=qt(h)==qt(g),v=p(d.line,d.ch,m?h.text.length+1:null).end,E=p(f.line,m?0:null,f.ch).start;m&&(v.top<E.top-2?(c(v.right,v.top,null,v.bottom),c(s,E.top,E.left,E.bottom)):c(v.right,v.top,E.left-v.right,v.bottom)),v.bottom<E.top&&c(s,v.bottom,null,E.top)}n.appendChild(o)}function Nr(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var n=!0;t.cursorDiv.style.visibility=\"\",e.options.cursorBlinkRate>0?t.blinker=setInterval((function(){e.hasFocus()||Rr(e),t.cursorDiv.style.visibility=(n=!n)?\"\":\"hidden\"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility=\"hidden\")}}function Cr(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||_r(e))}function Ir(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&Rr(e))}),100)}function _r(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),\"nocursor\"!=e.options.readOnly&&(e.state.focused||(ye(e,\"focus\",e,t),e.state.focused=!0,P(e.display.wrapper,\"CodeMirror-focused\"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),l&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),Nr(e))}function Rr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(ye(e,\"blur\",e,t),e.state.focused=!1,C(e.display.wrapper,\"CodeMirror-focused\")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function wr(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=Math.max(0,t.scroller.getBoundingClientRect().top),i=t.lineDiv.getBoundingClientRect().top,o=0,l=0;l<t.view.length;l++){var u=t.view[l],c=e.options.lineWrapping,p=void 0,d=0;if(!u.hidden){if(i+=u.line.height,a&&s<8){var f=u.node.offsetTop+u.node.offsetHeight;p=f-n,n=f}else{var h=u.node.getBoundingClientRect();p=h.bottom-h.top,!c&&u.text.firstChild&&(d=u.text.firstChild.getBoundingClientRect().right-h.left-1)}var g=u.line.height-p;if((g>.005||g<-.005)&&(i<r&&(o-=g),et(u.line,p),Or(u.line),u.rest))for(var m=0;m<u.rest.length;m++)Or(u.rest[m]);if(d>e.display.sizerWidth){var v=Math.ceil(d/ur(e.display));v>e.display.maxLineLength&&(e.display.maxLineLength=v,e.display.maxLine=u.line,e.display.maxLineChanged=!0)}}}Math.abs(o)>2&&(t.scroller.scrollTop+=o)}function Or(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var n=e.widgets[t],r=n.node.parentNode;r&&(n.height=r.offsetHeight)}}function Dr(e,t,n){var r=n&&null!=n.top?Math.max(0,n.top):e.scroller.scrollTop;r=Math.floor(r-In(e));var i=n&&null!=n.bottom?n.bottom:r+e.wrapper.clientHeight,o=nt(t,r),a=nt(t,i);if(n&&n.ensure){var s=n.ensure.from.line,l=n.ensure.to.line;s<o?(o=s,a=nt(t,Xt(Ke(t,s))+e.wrapper.clientHeight)):Math.min(l,t.lastLine())>=a&&(o=nt(t,Xt(Ke(t,l))-e.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function Pr(e,t){var n=e.display,r=lr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=Dn(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+_n(n),l=t.top<r,u=t.bottom>s-r;if(t.top<i)a.scrollTop=l?0:t.top;else if(t.bottom>i+o){var c=Math.min(t.top,(u?s:t.bottom)-o);c!=i&&(a.scrollTop=c)}var p=e.options.fixedGutter?0:n.gutters.offsetWidth,d=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft-p,f=On(e)-n.gutters.offsetWidth,h=t.right-t.left>f;return h&&(t.right=t.left+f),t.left<10?a.scrollLeft=0:t.left<d?a.scrollLeft=Math.max(0,t.left+p-(h?0:10)):t.right>f+d-3&&(a.scrollLeft=t.right+(h?0:10)-f),a}function kr(e,t){null!=t&&(Br(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Mr(e){Br(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Fr(e,t,n){null==t&&null==n||Br(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Br(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Gr(e,Zn(e,t.from),Zn(e,t.to),t.margin))}function Gr(e,t,n,r){var i=Pr(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});Fr(e,i.scrollLeft,i.scrollTop)}function jr(e,t){Math.abs(e.doc.scrollTop-t)<2||(n||fi(e,{top:t}),Ur(e,t,!0),n&&fi(e),li(e,100))}function Ur(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Hr(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,mi(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function qr(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+_n(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+wn(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var Vr=function(e,t,n){this.cm=n;var r=this.vert=R(\"div\",[R(\"div\",null,null,\"min-width: 1px\")],\"CodeMirror-vscrollbar\"),i=this.horiz=R(\"div\",[R(\"div\",null,null,\"height: 100%; min-height: 1px\")],\"CodeMirror-hscrollbar\");r.tabIndex=i.tabIndex=-1,e(r),e(i),me(r,\"scroll\",(function(){r.clientHeight&&t(r.scrollTop,\"vertical\")})),me(i,\"scroll\",(function(){i.clientWidth&&t(i.scrollLeft,\"horizontal\")})),this.checkedZeroWidth=!1,a&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth=\"18px\")};Vr.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display=\"block\",this.vert.style.bottom=t?r+\"px\":\"0\";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+\"px\"}else this.vert.scrollTop=0,this.vert.style.display=\"\",this.vert.firstChild.style.height=\"0\";if(t){this.horiz.style.display=\"block\",this.horiz.style.right=n?r+\"px\":\"0\",this.horiz.style.left=e.barLeft+\"px\";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+\"px\"}else this.horiz.style.display=\"\",this.horiz.firstChild.style.width=\"0\";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},Vr.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,\"horiz\")},Vr.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,\"vert\")},Vr.prototype.zeroWidthHack=function(){var e=y&&!h?\"12px\":\"18px\";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.visibility=this.vert.style.visibility=\"hidden\",this.disableHoriz=new V,this.disableVert=new V},Vr.prototype.enableZeroWidthBar=function(e,t,n){e.style.visibility=\"\",t.set(1e3,(function r(){var i=e.getBoundingClientRect();(\"vert\"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.visibility=\"hidden\":t.set(1e3,r)}))},Vr.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Wr=function(){};function zr(e,t){t||(t=qr(e));var n=e.display.barWidth,r=e.display.barHeight;Qr(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&wr(e),Qr(e,qr(e)),n=e.display.barWidth,r=e.display.barHeight}function Qr(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+\"px\",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+\"px\",n.heightForcer.style.borderBottom=r.bottom+\"px solid transparent\",r.right&&r.bottom?(n.scrollbarFiller.style.display=\"block\",n.scrollbarFiller.style.height=r.bottom+\"px\",n.scrollbarFiller.style.width=r.right+\"px\"):n.scrollbarFiller.style.display=\"\",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display=\"block\",n.gutterFiller.style.height=r.bottom+\"px\",n.gutterFiller.style.width=t.gutterWidth+\"px\"):n.gutterFiller.style.display=\"\"}Wr.prototype.update=function(){return{bottom:0,right:0}},Wr.prototype.setScrollLeft=function(){},Wr.prototype.setScrollTop=function(){},Wr.prototype.clear=function(){};var Xr={native:Vr,null:Wr};function $r(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&C(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Xr[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),me(t,\"mousedown\",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute(\"cm-not-content\",\"true\")}),(function(t,n){\"horizontal\"==n?Hr(e,t):jr(e,t)}),e),e.display.scrollbars.addClass&&P(e.display.wrapper,e.display.scrollbars.addClass)}var Yr=0;function Kr(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Yr,markArrays:null},t=e.curOp,pn?pn.ops.push(t):t.ownsGroup=pn={ops:[t],delayedCallbacks:[]}}function Jr(e){var t=e.curOp;t&&function(e,t){var n=e.ownsGroup;if(n)try{!function(e){var t=e.delayedCallbacks,n=0;do{for(;n<t.length;n++)t[n].call(null);for(var r=0;r<e.ops.length;r++){var i=e.ops[r];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(n<t.length)}(n)}finally{pn=null,t(n)}}(t,(function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;!function(e){for(var t=e.ops,n=0;n<t.length;n++)Zr(t[n]);for(var r=0;r<t.length;r++)ei(t[r]);for(var i=0;i<t.length;i++)ti(t[i]);for(var o=0;o<t.length;o++)ni(t[o]);for(var a=0;a<t.length;a++)ri(t[a])}(e)}))}function Zr(e){var t=e.cm,n=t.display;!function(e){var t=e.display;!t.scrollbarsClipped&&t.scroller.offsetWidth&&(t.nativeBarWidth=t.scroller.offsetWidth-t.scroller.clientWidth,t.heightForcer.style.height=wn(e)+\"px\",t.sizer.style.marginBottom=-t.nativeBarWidth+\"px\",t.sizer.style.borderRightWidth=wn(e)+\"px\",t.scrollbarsClipped=!0)}(t),e.updateMaxLine&&Yt(t),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<n.viewFrom||e.scrollToPos.to.line>=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new ci(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function ei(e){e.updatedDisplay=e.mustUpdate&&pi(e.cm,e.update)}function ti(e){var t=e.cm,n=t.display;e.updatedDisplay&&wr(t),e.barMeasure=qr(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=kn(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+wn(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-On(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function ni(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+\"px\",e.maxScrollLeft<t.doc.scrollLeft&&Hr(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var n=e.focus&&e.focus==D(B(t));e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,n),(e.updatedDisplay||e.startHeight!=t.doc.height)&&zr(t,e.barMeasure),e.updatedDisplay&&gi(t,e.barMeasure),e.selectionChanged&&Nr(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),n&&Cr(e.cm)}function ri(e){var t=e.cm,n=t.display,r=t.doc;e.updatedDisplay&&di(t,e.update),null==n.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(n.wheelStartX=n.wheelStartY=null),null!=e.scrollTop&&Ur(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&Hr(t,e.scrollLeft,!0,!0),e.scrollToPos&&function(e,t){if(!be(e,\"scrollCursorIntoView\")){var n=e.display,r=n.sizer.getBoundingClientRect(),i=null,o=n.wrapper.ownerDocument;if(t.top+r.top<0?i=!0:t.bottom+r.top>(o.defaultView.innerHeight||o.documentElement.clientHeight)&&(i=!1),null!=i&&!g){var a=R(\"div\",\"​\",null,\"position: absolute;\\n                         top: \"+(t.top-n.viewOffset-In(e.display))+\"px;\\n                         height: \"+(t.bottom-t.top+wn(e)+n.barHeight)+\"px;\\n                         left: \"+t.left+\"px; width: \"+Math.max(2,t.right-t.left)+\"px;\");e.display.lineSpace.appendChild(a),a.scrollIntoView(i),e.display.lineSpace.removeChild(a)}}}(t,function(e,t,n,r){var i;null==r&&(r=0),e.options.lineWrapping||t!=n||(n=\"before\"==t.sticky?ot(t.line,t.ch+1,\"before\"):t,t=t.ch?ot(t.line,\"before\"==t.sticky?t.ch-1:t.ch,\"after\"):t);for(var o=0;o<5;o++){var a=!1,s=Jn(e,t),l=n&&n!=t?Jn(e,n):s,u=Pr(e,i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r}),c=e.doc.scrollTop,p=e.doc.scrollLeft;if(null!=u.scrollTop&&(jr(e,u.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(a=!0)),null!=u.scrollLeft&&(Hr(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-p)>1&&(a=!0)),!a)break}return i}(t,dt(r,e.scrollToPos.from),dt(r,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a<i.length;++a)i[a].lines.length||ye(i[a],\"hide\");if(o)for(var s=0;s<o.length;++s)o[s].lines.length&&ye(o[s],\"unhide\");n.wrapper.offsetHeight&&(r.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&ye(t,\"changes\",t,e.changeObjs),e.update&&e.update.finish()}function ii(e,t){if(e.curOp)return t();Kr(e);try{return t()}finally{Jr(e)}}function oi(e,t){return function(){if(e.curOp)return t.apply(e,arguments);Kr(e);try{return t.apply(e,arguments)}finally{Jr(e)}}}function ai(e){return function(){if(this.curOp)return e.apply(this,arguments);Kr(this);try{return e.apply(this,arguments)}finally{Jr(this)}}}function si(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);Kr(t);try{return e.apply(this,arguments)}finally{Jr(t)}}}function li(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,U(ui,e))}function ui(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var n=+new Date+e.options.workTime,r=Et(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(r.line>=e.display.viewFrom){var a=o.styles,s=o.text.length>e.options.maxHighlightLength?Qe(t.mode,r.state):null,l=mt(e,o,r,!0);s&&(r.state=s),o.styles=l.styles;var u=o.styleClasses,c=l.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var p=!a||a.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),d=0;!p&&d<a.length;++d)p=a[d]!=o.styles[d];p&&i.push(r.line),o.stateAfter=r.save(),r.nextLine()}else o.text.length<=e.options.maxHighlightLength&&yt(e,o.text,r),o.stateAfter=r.line%5==0?r.save():null,r.nextLine();if(+new Date>n)return li(e,e.options.workDelay),!0})),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&ii(e,(function(){for(var t=0;t<i.length;t++)vr(e,i[t],\"text\")}))}}var ci=function(e,t,n){var r=e.display;this.viewport=t,this.visible=Dr(r,e.doc,t),this.editorIsHidden=!r.wrapper.offsetWidth,this.wrapperHeight=r.wrapper.clientHeight,this.wrapperWidth=r.wrapper.clientWidth,this.oldDisplayWidth=On(e),this.force=n,this.dims=cr(e),this.events=[]};function pi(e,t){var n=e.display,r=e.doc;if(t.editorIsHidden)return Er(e),!1;if(!t.force&&t.visible.from>=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==br(e))return!1;vi(e)&&(Er(e),t.dims=cr(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFrom<o&&o-n.viewFrom<20&&(o=Math.max(r.first,n.viewFrom)),n.viewTo>a&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),Ct&&(o=Vt(e.doc,o),a=Wt(e.doc,a));var s=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;!function(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=cn(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=cn(e,t,r.viewFrom).concat(r.view):r.viewFrom<t&&(r.view=r.view.slice(gr(e,t))),r.viewFrom=t,r.viewTo<n?r.view=r.view.concat(cn(e,r.viewTo,n)):r.viewTo>n&&(r.view=r.view.slice(0,gr(e,n)))),r.viewTo=n}(e,o,a),n.viewOffset=Xt(Ke(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+\"px\";var u=br(e);if(!s&&0==u&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var c=function(e){if(e.hasFocus())return null;var t=D(B(e));if(!t||!O(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=j(e).getSelection();r.anchorNode&&r.extend&&O(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}(e);return u>4&&(n.lineDiv.style.display=\"none\"),function(e,t,n){var r=e.display,i=e.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function s(t){var n=t.nextSibling;return l&&y&&e.display.currentWheelTarget==t?t.style.display=\"none\":t.parentNode.removeChild(t),n}for(var u=r.view,c=r.viewFrom,p=0;p<u.length;p++){var d=u[p];if(d.hidden);else if(d.node&&d.node.parentNode==o){for(;a!=d.node;)a=s(a);var f=i&&null!=t&&t<=c&&d.lineNumber;d.changes&&(W(d.changes,\"gutter\")>-1&&(f=!1),gn(e,d,c,n)),f&&(I(d.lineNumber),d.lineNumber.appendChild(document.createTextNode(it(e.options,c)))),a=d.node.nextSibling}else{var h=Tn(e,d,c,n);o.insertBefore(h,a)}c+=d.size}for(;a;)a=s(a)}(e,n.updateLineNumbers,t.dims),u>4&&(n.lineDiv.style.display=\"\"),n.renderedView=n.view,function(e){if(e&&e.activeElt&&e.activeElt!=D(G(e.activeElt))&&(e.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(e.activeElt.nodeName)&&e.anchorNode&&O(document.body,e.anchorNode)&&O(document.body,e.focusNode))){var t=e.activeElt.ownerDocument,n=t.defaultView.getSelection(),r=t.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),n.removeAllRanges(),n.addRange(r),n.extend(e.focusNode,e.focusOffset)}}(c),I(n.cursorDiv),I(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,li(e,400)),n.updateLineNumbers=null,!0}function di(e,t){for(var n=t.viewport,r=!0;;r=!1){if(r&&e.options.lineWrapping&&t.oldDisplayWidth!=On(e))r&&(t.visible=Dr(e.display,e.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(e.doc.height+_n(e.display)-Dn(e),n.top)}),t.visible=Dr(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!pi(e,t))break;wr(e);var i=qr(e);xr(e),zr(e,i),gi(e,i),t.force=!1}t.signal(e,\"update\",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,\"viewportChange\",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function fi(e,t){var n=new ci(e,t);if(pi(e,n)){wr(e),di(e,n);var r=qr(e);xr(e),zr(e,r),gi(e,r),n.finish()}}function hi(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+\"px\",fn(e,\"gutterChanged\",e)}function gi(e,t){e.display.sizer.style.minHeight=t.docHeight+\"px\",e.display.heightForcer.style.top=t.docHeight+\"px\",e.display.gutters.style.height=t.docHeight+e.display.barHeight+wn(e)+\"px\"}function mi(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=pr(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+\"px\",a=0;a<n.length;a++)if(!n[a].hidden){e.options.fixedGutter&&(n[a].gutter&&(n[a].gutter.style.left=o),n[a].gutterBackground&&(n[a].gutterBackground.style.left=o));var s=n[a].alignable;if(s)for(var l=0;l<s.length;l++)s[l].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=r+i+\"px\")}}function vi(e){if(!e.options.lineNumbers)return!1;var t=e.doc,n=it(e.options,t.first+t.size-1),r=e.display;if(n.length!=r.lineNumChars){var i=r.measure.appendChild(R(\"div\",[R(\"div\",n)],\"CodeMirror-linenumber CodeMirror-gutter-elt\")),o=i.firstChild.offsetWidth,a=i.offsetWidth-o;return r.lineGutter.style.width=\"\",r.lineNumInnerWidth=Math.max(o,r.lineGutter.offsetWidth-a)+1,r.lineNumWidth=r.lineNumInnerWidth+a,r.lineNumChars=r.lineNumInnerWidth?n.length:-1,r.lineGutter.style.width=r.lineNumWidth+\"px\",hi(e.display),!0}return!1}function Ei(e,t){for(var n=[],r=!1,i=0;i<e.length;i++){var o=e[i],a=null;if(\"string\"!=typeof o&&(a=o.style,o=o.className),\"CodeMirror-linenumbers\"==o){if(!t)continue;r=!0}n.push({className:o,style:a})}return t&&!r&&n.push({className:\"CodeMirror-linenumbers\",style:null}),n}function yi(e){var t=e.gutters,n=e.gutterSpecs;I(t),e.lineGutter=null;for(var r=0;r<n.length;++r){var i=n[r],o=i.className,a=i.style,s=t.appendChild(R(\"div\",null,\"CodeMirror-gutter \"+o));a&&(s.style.cssText=a),\"CodeMirror-linenumbers\"==o&&(e.lineGutter=s,s.style.width=(e.lineNumWidth||1)+\"px\")}t.style.display=n.length?\"\":\"none\",hi(e)}function bi(e){yi(e.display),mr(e),mi(e)}function xi(e,t,r,i){var o=this;this.input=r,o.scrollbarFiller=R(\"div\",null,\"CodeMirror-scrollbar-filler\"),o.scrollbarFiller.setAttribute(\"cm-not-content\",\"true\"),o.gutterFiller=R(\"div\",null,\"CodeMirror-gutter-filler\"),o.gutterFiller.setAttribute(\"cm-not-content\",\"true\"),o.lineDiv=w(\"div\",null,\"CodeMirror-code\"),o.selectionDiv=R(\"div\",null,null,\"position: relative; z-index: 1\"),o.cursorDiv=R(\"div\",null,\"CodeMirror-cursors\"),o.measure=R(\"div\",null,\"CodeMirror-measure\"),o.lineMeasure=R(\"div\",null,\"CodeMirror-measure\"),o.lineSpace=w(\"div\",[o.measure,o.lineMeasure,o.selectionDiv,o.cursorDiv,o.lineDiv],null,\"position: relative; outline: none\");var u=w(\"div\",[o.lineSpace],\"CodeMirror-lines\");o.mover=R(\"div\",[u],null,\"position: relative\"),o.sizer=R(\"div\",[o.mover],\"CodeMirror-sizer\"),o.sizerWidth=null,o.heightForcer=R(\"div\",null,null,\"position: absolute; height: 50px; width: 1px;\"),o.gutters=R(\"div\",null,\"CodeMirror-gutters\"),o.lineGutter=null,o.scroller=R(\"div\",[o.sizer,o.heightForcer,o.gutters],\"CodeMirror-scroll\"),o.scroller.setAttribute(\"tabIndex\",\"-1\"),o.wrapper=R(\"div\",[o.scrollbarFiller,o.gutterFiller,o.scroller],\"CodeMirror\"),c&&105===p&&(o.wrapper.style.clipPath=\"inset(0px)\"),o.wrapper.setAttribute(\"translate\",\"no\"),a&&s<8&&(o.gutters.style.zIndex=-1,o.scroller.style.paddingRight=0),l||n&&E||(o.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(o.wrapper):e(o.wrapper)),o.viewFrom=o.viewTo=t.first,o.reportedViewFrom=o.reportedViewTo=t.first,o.view=[],o.renderedView=null,o.externalMeasured=null,o.viewOffset=0,o.lastWrapHeight=o.lastWrapWidth=0,o.updateLineNumbers=null,o.nativeBarWidth=o.barHeight=o.barWidth=0,o.scrollbarsClipped=!1,o.lineNumWidth=o.lineNumInnerWidth=o.lineNumChars=null,o.alignWidgets=!1,o.cachedCharWidth=o.cachedTextHeight=o.cachedPaddingH=null,o.maxLine=null,o.maxLineLength=0,o.maxLineChanged=!1,o.wheelDX=o.wheelDY=o.wheelStartX=o.wheelStartY=null,o.shift=!1,o.selForContextMenu=null,o.activeTouch=null,o.gutterSpecs=Ei(i.gutters,i.lineNumbers),yi(o),r.init(o)}ci.prototype.signal=function(e,t){Te(e,t)&&this.events.push(arguments)},ci.prototype.finish=function(){for(var e=0;e<this.events.length;e++)ye.apply(null,this.events[e])};var Ti=0,Ai=null;function Si(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==n&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:null==n&&(n=e.wheelDelta),{x:t,y:n}}function Li(e){var t=Si(e);return t.x*=Ai,t.y*=Ai,t}function Ni(e,t){c&&102==p&&(null==e.display.chromeScrollHack?e.display.sizer.style.pointerEvents=\"none\":clearTimeout(e.display.chromeScrollHack),e.display.chromeScrollHack=setTimeout((function(){e.display.chromeScrollHack=null,e.display.sizer.style.pointerEvents=\"\"}),100));var r=Si(t),i=r.x,o=r.y,a=Ai;0===t.deltaMode&&(i=t.deltaX,o=t.deltaY,a=1);var s=e.display,u=s.scroller,f=u.scrollWidth>u.clientWidth,h=u.scrollHeight>u.clientHeight;if(i&&f||o&&h){if(o&&y&&l)e:for(var g=t.target,m=s.view;g!=u;g=g.parentNode)for(var v=0;v<m.length;v++)if(m[v].node==g){e.display.currentWheelTarget=g;break e}if(i&&!n&&!d&&null!=a)return o&&h&&jr(e,Math.max(0,u.scrollTop+o*a)),Hr(e,Math.max(0,u.scrollLeft+i*a)),(!o||o&&h)&&Se(t),void(s.wheelStartX=null);if(o&&null!=a){var E=o*a,b=e.doc.scrollTop,x=b+s.wrapper.clientHeight;E<0?b=Math.max(0,b+E-50):x=Math.min(e.doc.height,x+E+50),fi(e,{top:b,bottom:x})}Ti<20&&0!==t.deltaMode&&(null==s.wheelStartX?(s.wheelStartX=u.scrollLeft,s.wheelStartY=u.scrollTop,s.wheelDX=i,s.wheelDY=o,setTimeout((function(){if(null!=s.wheelStartX){var e=u.scrollLeft-s.wheelStartX,t=u.scrollTop-s.wheelStartY,n=t&&s.wheelDY&&t/s.wheelDY||e&&s.wheelDX&&e/s.wheelDX;s.wheelStartX=s.wheelStartY=null,n&&(Ai=(Ai*Ti+n)/(Ti+1),++Ti)}}),200)):(s.wheelDX+=i,s.wheelDY+=o))}}a?Ai=-.53:n?Ai=15:c?Ai=-.7:f&&(Ai=-1/3);var Ci=function(e,t){this.ranges=e,this.primIndex=t};Ci.prototype.primary=function(){return this.ranges[this.primIndex]},Ci.prototype.equals=function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var n=this.ranges[t],r=e.ranges[t];if(!st(n.anchor,r.anchor)||!st(n.head,r.head))return!1}return!0},Ci.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new Ii(lt(this.ranges[t].anchor),lt(this.ranges[t].head));return new Ci(e,this.primIndex)},Ci.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},Ci.prototype.contains=function(e,t){t||(t=e);for(var n=0;n<this.ranges.length;n++){var r=this.ranges[n];if(at(t,r.from())>=0&&at(e,r.to())<=0)return n}return-1};var Ii=function(e,t){this.anchor=e,this.head=t};function _i(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort((function(e,t){return at(e.from(),t.from())})),n=W(t,i);for(var o=1;o<t.length;o++){var a=t[o],s=t[o-1],l=at(s.to(),a.from());if(r&&!a.empty()?l>0:l>=0){var u=ct(s.from(),a.from()),c=ut(s.to(),a.to()),p=s.empty()?a.from()==a.head:s.from()==s.head;o<=n&&--n,t.splice(--o,2,new Ii(p?c:u,p?u:c))}}return new Ci(t,n)}function Ri(e,t){return new Ci([new Ii(e,t||e)],0)}function wi(e){return e.text?ot(e.from.line+e.text.length-1,Z(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Oi(e,t){if(at(e,t.from)<0)return e;if(at(e,t.to)<=0)return wi(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=wi(t).ch-t.to.ch),ot(n,r)}function Di(e,t){for(var n=[],r=0;r<e.sel.ranges.length;r++){var i=e.sel.ranges[r];n.push(new Ii(Oi(i.anchor,t),Oi(i.head,t)))}return _i(e.cm,n,e.sel.primIndex)}function Pi(e,t,n){return e.line==t.line?ot(n.line,e.ch-t.ch+n.ch):ot(n.line+(e.line-t.line),e.ch)}function ki(e){e.doc.mode=Ve(e.options,e.doc.modeOption),Mi(e)}function Mi(e){e.doc.iter((function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)})),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,li(e,100),e.state.modeGen++,e.curOp&&mr(e)}function Fi(e,t){return 0==t.from.ch&&0==t.to.ch&&\"\"==Z(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function Bi(e,t,n,r){function i(e){return n?n[e]:null}function o(e,n,i){!function(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),Dt(e),Pt(e,n);var i=r?r(e):1;i!=e.height&&et(e,i)}(e,n,i,r),fn(e,\"change\",e,t)}function a(e,t){for(var n=[],o=e;o<t;++o)n.push(new Kt(u[o],i(o),r));return n}var s=t.from,l=t.to,u=t.text,c=Ke(e,s.line),p=Ke(e,l.line),d=Z(u),f=i(u.length-1),h=l.line-s.line;if(t.full)e.insert(0,a(0,u.length)),e.remove(u.length,e.size-u.length);else if(Fi(e,t)){var g=a(0,u.length-1);o(p,p.text,f),h&&e.remove(s.line,h),g.length&&e.insert(s.line,g)}else if(c==p)if(1==u.length)o(c,c.text.slice(0,s.ch)+d+c.text.slice(l.ch),f);else{var m=a(1,u.length-1);m.push(new Kt(d+c.text.slice(l.ch),f,r)),o(c,c.text.slice(0,s.ch)+u[0],i(0)),e.insert(s.line+1,m)}else if(1==u.length)o(c,c.text.slice(0,s.ch)+u[0]+p.text.slice(l.ch),i(0)),e.remove(s.line+1,h);else{o(c,c.text.slice(0,s.ch)+u[0],i(0)),o(p,d+p.text.slice(l.ch),f);var v=a(1,u.length-1);h>1&&e.remove(s.line+1,h-1),e.insert(s.line+1,v)}fn(e,\"change\",e,t)}function Gi(e,t,n){!function e(r,i,o){if(r.linked)for(var a=0;a<r.linked.length;++a){var s=r.linked[a];if(s.doc!=i){var l=o&&s.sharedHist;n&&!l||(t(s.doc,l),e(s.doc,r,l))}}}(e,null,!0)}function ji(e,t){if(t.cm)throw new Error(\"This document is already in use.\");e.doc=t,t.cm=e,fr(e),ki(e),Ui(e),e.options.direction=t.direction,e.options.lineWrapping||Yt(e),e.options.mode=t.modeOption,mr(e)}function Ui(e){(\"rtl\"==e.doc.direction?P:C)(e.display.lineDiv,\"CodeMirror-rtl\")}function Hi(e){this.done=[],this.undone=[],this.undoDepth=e?e.undoDepth:1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e?e.maxGeneration:1}function qi(e,t){var n={from:lt(t.from),to:wi(t),text:Je(e,t.from,t.to)};return Xi(e,n,t.from.line,t.to.line+1),Gi(e,(function(e){return Xi(e,n,t.from.line,t.to.line+1)}),!0),n}function Vi(e){for(;e.length&&Z(e).ranges;)e.pop()}function Wi(e,t,n,r){var i=e.history;i.undone.length=0;var o,a,s=+new Date;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&(\"+\"==t.origin.charAt(0)&&i.lastModTime>s-(e.cm?e.cm.options.historyEventDelay:500)||\"*\"==t.origin.charAt(0)))&&(o=function(e,t){return t?(Vi(e.done),Z(e.done)):e.done.length&&!Z(e.done).ranges?Z(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),Z(e.done)):void 0}(i,i.lastOp==r)))a=Z(o.changes),0==at(t.from,t.to)&&0==at(t.from,a.to)?a.to=wi(t):o.changes.push(qi(e,t));else{var l=Z(i.done);for(l&&l.ranges||Qi(e.sel,i.done),o={changes:[qi(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||ye(e,\"historyAdded\")}function zi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,n,r){var i=t.charAt(0);return\"*\"==i||\"+\"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,Z(i.done),t))?i.done[i.done.length-1]=t:Qi(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&Vi(i.undone)}function Qi(e,t){var n=Z(t);n&&n.ranges&&n.equals(e)||t.push(e)}function Xi(e,t,n,r){var i=t[\"spans_\"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),(function(n){n.markedSpans&&((i||(i=t[\"spans_\"+e.id]={}))[o]=n.markedSpans),++o}))}function $i(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t||(t=e.slice(0,n)):t&&t.push(e[n]);return t?t.length?t:null:e}function Yi(e,t){var n=function(e,t){var n=t[\"spans_\"+e.id];if(!n)return null;for(var r=[],i=0;i<t.text.length;++i)r.push($i(n[i]));return r}(e,t),r=wt(e,t);if(!n)return r;if(!r)return n;for(var i=0;i<n.length;++i){var o=n[i],a=r[i];if(o&&a)e:for(var s=0;s<a.length;++s){for(var l=a[s],u=0;u<o.length;++u)if(o[u].marker==l.marker)continue e;o.push(l)}else a&&(n[i]=a)}return n}function Ki(e,t,n){for(var r=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)r.push(n?Ci.prototype.deepCopy.call(o):o);else{var a=o.changes,s=[];r.push({changes:s});for(var l=0;l<a.length;++l){var u=a[l],c=void 0;if(s.push({from:u.from,to:u.to,text:u.text}),t)for(var p in u)(c=p.match(/^spans_(\\d+)$/))&&W(t,Number(c[1]))>-1&&(Z(s)[p]=u[p],delete u[p])}}}return r}function Ji(e,t,n,r){if(r){var i=e.anchor;if(n){var o=at(t,i)<0;o!=at(n,i)<0?(i=t,t=n):o!=at(t,n)<0&&(t=n)}return new Ii(i,t)}return new Ii(n||t,t)}function Zi(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),io(e,new Ci([Ji(e.sel.primary(),t,n,i)],0),r)}function eo(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)r[o]=Ji(e.sel.ranges[o],t[o],null,i);io(e,_i(e.cm,r,e.sel.primIndex),n)}function to(e,t,n,r){var i=e.sel.ranges.slice(0);i[t]=n,io(e,_i(e.cm,i,e.sel.primIndex),r)}function no(e,t,n,r){io(e,Ri(t,n),r)}function ro(e,t,n){var r=e.history.done,i=Z(r);i&&i.ranges?(r[r.length-1]=t,oo(e,t,n)):io(e,t,n)}function io(e,t,n){oo(e,t,n),zi(e,e.sel,e.cm?e.cm.curOp.id:NaN,n)}function oo(e,t,n){(Te(e,\"beforeSelectionChange\")||e.cm&&Te(e.cm,\"beforeSelectionChange\"))&&(t=function(e,t,n){var r={ranges:t.ranges,update:function(t){this.ranges=[];for(var n=0;n<t.length;n++)this.ranges[n]=new Ii(dt(e,t[n].anchor),dt(e,t[n].head))},origin:n&&n.origin};return ye(e,\"beforeSelectionChange\",e,r),e.cm&&ye(e.cm,\"beforeSelectionChange\",e.cm,r),r.ranges!=t.ranges?_i(e.cm,r.ranges,r.ranges.length-1):t}(e,t,n));var r=n&&n.bias||(at(t.primary().head,e.sel.primary().head)<0?-1:1);ao(e,lo(e,t,r,!0)),n&&!1===n.scroll||!e.cm||\"nocursor\"==e.cm.getOption(\"readOnly\")||Mr(e.cm)}function ao(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=1,e.cm.curOp.selectionChanged=!0,xe(e.cm)),fn(e,\"cursorActivity\",e))}function so(e){ao(e,lo(e,e.sel,null,!1))}function lo(e,t,n,r){for(var i,o=0;o<t.ranges.length;o++){var a=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],l=co(e,a.anchor,s&&s.anchor,n,r),u=a.head==a.anchor?l:co(e,a.head,s&&s.head,n,r);(i||l!=a.anchor||u!=a.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new Ii(l,u))}return i?_i(e.cm,i,t.primIndex):t}function uo(e,t,n,r,i){var o=Ke(e,t.line);if(o.markedSpans)for(var a=0;a<o.markedSpans.length;++a){var s=o.markedSpans[a],l=s.marker,u=\"selectLeft\"in l?!l.selectLeft:l.inclusiveLeft,c=\"selectRight\"in l?!l.selectRight:l.inclusiveRight;if((null==s.from||(u?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(c?s.to>=t.ch:s.to>t.ch))){if(i&&(ye(l,\"beforeCursorEnter\"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(n){var p=l.find(r<0?1:-1),d=void 0;if((r<0?c:u)&&(p=po(e,p,-r,p&&p.line==t.line?o:null)),p&&p.line==t.line&&(d=at(p,n))&&(r<0?d<0:d>0))return uo(e,p,t,r,i)}var f=l.find(r<0?-1:1);return(r<0?u:c)&&(f=po(e,f,r,f.line==t.line?o:null)),f?uo(e,f,t,r,i):null}}return t}function co(e,t,n,r,i){var o=r||1,a=uo(e,t,n,o,i)||!i&&uo(e,t,n,o,!0)||uo(e,t,n,-o,i)||!i&&uo(e,t,n,-o,!0);return a||(e.cantEdit=!0,ot(e.first,0))}function po(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?dt(e,ot(t.line-1)):null:n>0&&t.ch==(r||Ke(e,t.line)).text.length?t.line<e.first+e.size-1?ot(t.line+1,0):null:new ot(t.line,t.ch+n)}function fo(e){e.setSelection(ot(e.firstLine(),0),ot(e.lastLine()),Q)}function ho(e,t,n){var r={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return r.canceled=!0}};return n&&(r.update=function(t,n,i,o){t&&(r.from=dt(e,t)),n&&(r.to=dt(e,n)),i&&(r.text=i),void 0!==o&&(r.origin=o)}),ye(e,\"beforeChange\",e,r),e.cm&&ye(e.cm,\"beforeChange\",e.cm,r),r.canceled?(e.cm&&(e.cm.curOp.updateInput=2),null):{from:r.from,to:r.to,text:r.text,origin:r.origin}}function go(e,t,n){if(e.cm){if(!e.cm.curOp)return oi(e.cm,go)(e,t,n);if(e.cm.state.suppressEdits)return}if(!(Te(e,\"beforeChange\")||e.cm&&Te(e.cm,\"beforeChange\"))||(t=ho(e,t,!0))){var r=Nt&&!n&&function(e,t,n){var r=null;if(e.iter(t.line,n.line+1,(function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&-1!=W(r,n)||(r||(r=[])).push(n)}})),!r)return null;for(var i=[{from:t,to:n}],o=0;o<r.length;++o)for(var a=r[o],s=a.find(0),l=0;l<i.length;++l){var u=i[l];if(!(at(u.to,s.from)<0||at(u.from,s.to)>0)){var c=[l,1],p=at(u.from,s.from),d=at(u.to,s.to);(p<0||!a.inclusiveLeft&&!p)&&c.push({from:u.from,to:s.from}),(d>0||!a.inclusiveRight&&!d)&&c.push({from:s.to,to:u.to}),i.splice.apply(i,c),l+=c.length-3}}return i}(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)mo(e,{from:r[i].from,to:r[i].to,text:i?[\"\"]:t.text,origin:t.origin});else mo(e,t)}}function mo(e,t){if(1!=t.text.length||\"\"!=t.text[0]||0!=at(t.from,t.to)){var n=Di(e,t);Wi(e,t,n,e.cm?e.cm.curOp.id:NaN),yo(e,t,n,wt(e,t));var r=[];Gi(e,(function(e,n){n||-1!=W(r,e.history)||(Ao(e.history,t),r.push(e.history)),yo(e,t,null,wt(e,t))}))}}function vo(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!r||n){for(var i,o=e.history,a=e.sel,s=\"undo\"==t?o.done:o.undone,l=\"undo\"==t?o.undone:o.done,u=0;u<s.length&&(i=s[u],n?!i.ranges||i.equals(e.sel):i.ranges);u++);if(u!=s.length){for(o.lastOrigin=o.lastSelOrigin=null;;){if(!(i=s.pop()).ranges){if(r)return void s.push(i);break}if(Qi(i,l),n&&!i.equals(e.sel))return void io(e,i,{clearRedo:!1});a=i}var c=[];Qi(a,l),l.push({changes:c,generation:o.generation}),o.generation=i.generation||++o.maxGeneration;for(var p=Te(e,\"beforeChange\")||e.cm&&Te(e.cm,\"beforeChange\"),d=function(n){var r=i.changes[n];if(r.origin=t,p&&!ho(e,r,!1))return s.length=0,{};c.push(qi(e,r));var o=n?Di(e,r):Z(s);yo(e,r,o,Yi(e,r)),!n&&e.cm&&e.cm.scrollIntoView({from:r.from,to:wi(r)});var a=[];Gi(e,(function(e,t){t||-1!=W(a,e.history)||(Ao(e.history,r),a.push(e.history)),yo(e,r,null,Yi(e,r))}))},f=i.changes.length-1;f>=0;--f){var h=d(f);if(h)return h.v}}}}function Eo(e,t){if(0!=t&&(e.first+=t,e.sel=new Ci(ee(e.sel.ranges,(function(e){return new Ii(ot(e.anchor.line+t,e.anchor.ch),ot(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){mr(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;r<n.viewTo;r++)vr(e.cm,r,\"gutter\")}}function yo(e,t,n,r){if(e.cm&&!e.cm.curOp)return oi(e.cm,yo)(e,t,n,r);if(t.to.line<e.first)Eo(e,t.text.length-1-(t.to.line-t.from.line));else if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);Eo(e,i),t={from:ot(e.first,0),to:ot(t.to.line+i,t.to.ch),text:[Z(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:ot(o,Ke(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Je(e,t.from,t.to),n||(n=Di(e,t)),e.cm?function(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,s=!1,l=o.line;e.options.lineWrapping||(l=tt(qt(Ke(r,o.line))),r.iter(l,a.line+1,(function(e){if(e==i.maxLine)return s=!0,!0}))),r.sel.contains(t.from,t.to)>-1&&xe(e),Bi(r,t,n,dr(e)),e.options.lineWrapping||(r.iter(l,o.line+t.text.length,(function(e){var t=$t(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)})),s&&(e.curOp.updateMaxLine=!0)),function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var n=e.first,r=t-1;r>n;r--){var i=Ke(e,r).stateAfter;if(i&&(!(i instanceof ht)||r+i.lookAhead<t)){n=r+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,n)}}(r,o.line),li(e,400);var u=t.text.length-(a.line-o.line)-1;t.full?mr(e):o.line!=a.line||1!=t.text.length||Fi(e.doc,t)?mr(e,o.line,a.line+1,u):vr(e,o.line,\"text\");var c=Te(e,\"changes\"),p=Te(e,\"change\");if(p||c){var d={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};p&&fn(e,\"change\",e,d),c&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(d)}e.display.selForContextMenu=null}(e.cm,t,r):Bi(e,t,r),oo(e,n,Q),e.cantEdit&&co(e,ot(e.firstLine(),0))&&(e.cantEdit=!1)}}function bo(e,t,n,r,i){var o;r||(r=n),at(r,n)<0&&(n=(o=[r,n])[0],r=o[1]),\"string\"==typeof t&&(t=e.splitLines(t)),go(e,{from:n,to:r,text:t,origin:i})}function xo(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function To(e,t,n,r){for(var i=0;i<e.length;++i){var o=e[i],a=!0;if(o.ranges){o.copied||((o=e[i]=o.deepCopy()).copied=!0);for(var s=0;s<o.ranges.length;s++)xo(o.ranges[s].anchor,t,n,r),xo(o.ranges[s].head,t,n,r)}else{for(var l=0;l<o.changes.length;++l){var u=o.changes[l];if(n<u.from.line)u.from=ot(u.from.line+r,u.from.ch),u.to=ot(u.to.line+r,u.to.ch);else if(t<=u.to.line){a=!1;break}}a||(e.splice(0,i+1),i=0)}}}function Ao(e,t){var n=t.from.line,r=t.to.line,i=t.text.length-(r-n)-1;To(e.done,n,r,i),To(e.undone,n,r,i)}function So(e,t,n,r){var i=t,o=t;return\"number\"==typeof t?o=Ke(e,pt(e,t)):i=tt(t),null==i?null:(r(o,i)&&e.cm&&vr(e.cm,i,n),o)}function Lo(e){this.lines=e,this.parent=null;for(var t=0,n=0;n<e.length;++n)e[n].parent=this,t+=e[n].height;this.height=t}function No(e){this.children=e;for(var t=0,n=0,r=0;r<e.length;++r){var i=e[r];t+=i.chunkSize(),n+=i.height,i.parent=this}this.size=t,this.height=n,this.parent=null}Ii.prototype.from=function(){return ct(this.anchor,this.head)},Ii.prototype.to=function(){return ut(this.anchor,this.head)},Ii.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},Lo.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=e,r=e+t;n<r;++n){var i=this.lines[n];this.height-=i.height,Jt(i),fn(i,\"delete\")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,n){this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var r=0;r<t.length;++r)t[r].parent=this},iterN:function(e,t,n){for(var r=e+t;e<r;++e)if(n(this.lines[e]))return!0}},No.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var n=0;n<this.children.length;++n){var r=this.children[n],i=r.chunkSize();if(e<i){var o=Math.min(t,i-e),a=r.height;if(r.removeInner(e,o),this.height-=a-r.height,i==o&&(this.children.splice(n--,1),r.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof Lo))){var s=[];this.collapse(s),this.children=[new Lo(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,n){this.size+=t.length,this.height+=n;for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(e<=o){if(i.insertInner(e,t,n),i.lines&&i.lines.length>50){for(var a=i.lines.length%25+25,s=a;s<i.lines.length;){var l=new Lo(i.lines.slice(s,s+=25));i.height-=l.height,this.children.splice(++r,0,l),l.parent=this}i.lines=i.lines.slice(0,a),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=new No(e.children.splice(e.children.length-5,5));if(e.parent){e.size-=t.size,e.height-=t.height;var n=W(e.parent.children,e);e.parent.children.splice(n+1,0,t)}else{var r=new No(e.children);r.parent=e,e.children=[r,t],e=r}t.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r<this.children.length;++r){var i=this.children[r],o=i.chunkSize();if(e<o){var a=Math.min(t,o-e);if(i.iterN(e,a,n))return!0;if(0==(t-=a))break;e=0}else e-=o}}};var Co=function(e,t,n){if(n)for(var r in n)n.hasOwnProperty(r)&&(this[r]=n[r]);this.doc=e,this.node=t};function Io(e,t,n){Xt(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&kr(e,n)}Co.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,n=this.line,r=tt(n);if(null!=r&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(n.widgets=null);var o=Nn(this);et(n,Math.max(0,n.height-o)),e&&(ii(e,(function(){Io(e,n,-o),vr(e,r,\"widget\")})),fn(e,\"lineWidgetCleared\",e,this,r))}},Co.prototype.changed=function(){var e=this,t=this.height,n=this.doc.cm,r=this.line;this.height=null;var i=Nn(this)-t;i&&(zt(this.doc,r)||et(r,r.height+i),n&&ii(n,(function(){n.curOp.forceUpdate=!0,Io(n,r,i),fn(n,\"lineWidgetChanged\",n,e,tt(r))})))},Ae(Co);var _o=0,Ro=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++_o};function wo(e,t,n,r,i){if(r&&r.shared)return function(e,t,n,r,i){(r=H(r)).shared=!1;var o=[wo(e,t,n,r,i)],a=o[0],s=r.widgetNode;return Gi(e,(function(e){s&&(r.widgetNode=s.cloneNode(!0)),o.push(wo(e,dt(e,t),dt(e,n),r,i));for(var l=0;l<e.linked.length;++l)if(e.linked[l].isParent)return;a=Z(o)})),new Oo(o,a)}(e,t,n,r,i);if(e.cm&&!e.cm.curOp)return oi(e.cm,wo)(e,t,n,r,i);var o=new Ro(e,i),a=at(t,n);if(r&&H(r,o,!1),a>0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=w(\"span\",[o.replacedWith],\"CodeMirror-widget\"),r.handleMouseEvents||o.widgetNode.setAttribute(\"cm-ignore-events\",\"true\"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Ht(e,t.line,t,n,o)||t.line!=n.line&&Ht(e,n.line,t,n,o))throw new Error(\"Inserting collapsed marker partially overlapping an existing one\");Ct=!0}o.addToHistory&&Wi(e,{from:t,to:n,origin:\"markText\"},e.sel,NaN);var s,l=t.line,u=e.cm;if(e.iter(l,n.line+1,(function(r){u&&o.collapsed&&!u.options.lineWrapping&&qt(r)==u.display.maxLine&&(s=!0),o.collapsed&&l!=t.line&&et(r,0),function(e,t,n){var r=n&&window.WeakSet&&(n.markedSpans||(n.markedSpans=new WeakSet));r&&e.markedSpans&&r.has(e.markedSpans)?e.markedSpans.push(t):(e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],r&&r.add(e.markedSpans)),t.marker.attachLine(e)}(r,new It(o,l==t.line?t.ch:null,l==n.line?n.ch:null),e.cm&&e.cm.curOp),++l})),o.collapsed&&e.iter(t.line,n.line+1,(function(t){zt(e,t)&&et(t,0)})),o.clearOnEnter&&me(o,\"beforeCursorEnter\",(function(){return o.clear()})),o.readOnly&&(Nt=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++_o,o.atomic=!0),u){if(s&&(u.curOp.updateMaxLine=!0),o.collapsed)mr(u,t.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var c=t.line;c<=n.line;c++)vr(u,c,\"text\");o.atomic&&so(u.doc),fn(u,\"markerAdded\",u,o)}return o}Ro.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Kr(e),Te(this,\"clear\")){var n=this.find();n&&fn(this,\"clear\",n.from,n.to)}for(var r=null,i=null,o=0;o<this.lines.length;++o){var a=this.lines[o],s=_t(a.markedSpans,this);e&&!this.collapsed?vr(e,tt(a),\"text\"):e&&(null!=s.to&&(i=tt(a)),null!=s.from&&(r=tt(a))),a.markedSpans=Rt(a.markedSpans,s),null==s.from&&this.collapsed&&!zt(this.doc,a)&&e&&et(a,lr(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(var l=0;l<this.lines.length;++l){var u=qt(this.lines[l]),c=$t(u);c>e.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&mr(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&so(e.doc)),e&&fn(e,\"markerCleared\",e,this,r,i),t&&Jr(e),this.parent&&this.parent.clear()}},Ro.prototype.find=function(e,t){var n,r;null==e&&\"bookmark\"==this.type&&(e=1);for(var i=0;i<this.lines.length;++i){var o=this.lines[i],a=_t(o.markedSpans,this);if(null!=a.from&&(n=ot(t?o:tt(o),a.from),-1==e))return n;if(null!=a.to&&(r=ot(t?o:tt(o),a.to),1==e))return r}return n&&{from:n,to:r}},Ro.prototype.changed=function(){var e=this,t=this.find(-1,!0),n=this,r=this.doc.cm;t&&r&&ii(r,(function(){var i=t.line,o=tt(t.line),a=Mn(r,o);if(a&&(qn(a),r.curOp.selectionChanged=r.curOp.forceUpdate=!0),r.curOp.updateMaxLine=!0,!zt(n.doc,i)&&null!=n.height){var s=n.height;n.height=null;var l=Nn(n)-s;l&&et(i,i.height+l)}fn(r,\"markerChanged\",r,e)}))},Ro.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=W(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},Ro.prototype.detachLine=function(e){if(this.lines.splice(W(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},Ae(Ro);var Oo=function(e,t){this.markers=e,this.primary=t;for(var n=0;n<e.length;++n)e[n].parent=this};function Do(e){return e.findMarks(ot(e.first,0),e.clipPos(ot(e.lastLine())),(function(e){return e.parent}))}function Po(e){for(var t=function(t){var n=e[t],r=[n.primary.doc];Gi(n.primary.doc,(function(e){return r.push(e)}));for(var i=0;i<n.markers.length;i++){var o=n.markers[i];-1==W(r,o.doc)&&(o.parent=null,n.markers.splice(i--,1))}},n=0;n<e.length;n++)t(n)}Oo.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();fn(this,\"clear\")}},Oo.prototype.find=function(e,t){return this.primary.find(e,t)},Ae(Oo);var ko=0,Mo=function(e,t,n,r,i){if(!(this instanceof Mo))return new Mo(e,t,n,r,i);null==n&&(n=0),No.call(this,[new Lo([new Kt(\"\",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=n;var o=ot(n,0);this.sel=Ri(o),this.history=new Hi(null),this.id=++ko,this.modeOption=t,this.lineSep=r,this.direction=\"rtl\"==i?\"rtl\":\"ltr\",this.extend=!1,\"string\"==typeof e&&(e=this.splitLines(e)),Bi(this,{from:o,to:o,text:e}),io(this,Ri(o),Q)};Mo.prototype=ne(No.prototype,{constructor:Mo,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0;r<t.length;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=Ze(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:si((function(e){var t=ot(this.first,0),n=this.first+this.size-1;go(this,{from:t,to:ot(n,Ke(this,n).text.length),text:this.splitLines(e),origin:\"setValue\",full:!0},!0),this.cm&&Fr(this.cm,0,0),io(this,Ri(t),Q)})),replaceRange:function(e,t,n,r){bo(this,e,t=dt(this,t),n=n?dt(this,n):t,r)},getRange:function(e,t,n){var r=Je(this,dt(this,e),dt(this,t));return!1===n?r:\"\"===n?r.join(\"\"):r.join(n||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(rt(this,e))return Ke(this,e)},getLineNumber:function(e){return tt(e)},getLineHandleVisualStart:function(e){return\"number\"==typeof e&&(e=Ke(this,e)),qt(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return dt(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||\"head\"==e?t.head:\"anchor\"==e?t.anchor:\"end\"==e||\"to\"==e||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:si((function(e,t,n){no(this,dt(this,\"number\"==typeof e?ot(e,t||0):e),null,n)})),setSelection:si((function(e,t,n){no(this,dt(this,e),dt(this,t||e),n)})),extendSelection:si((function(e,t,n){Zi(this,dt(this,e),t&&dt(this,t),n)})),extendSelections:si((function(e,t){eo(this,ft(this,e),t)})),extendSelectionsBy:si((function(e,t){eo(this,ft(this,ee(this.sel.ranges,e)),t)})),setSelections:si((function(e,t,n){if(e.length){for(var r=[],i=0;i<e.length;i++)r[i]=new Ii(dt(this,e[i].anchor),dt(this,e[i].head||e[i].anchor));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),io(this,_i(this.cm,r,t),n)}})),addSelection:si((function(e,t,n){var r=this.sel.ranges.slice(0);r.push(new Ii(dt(this,e),dt(this,t||e))),io(this,_i(this.cm,r,r.length-1),n)})),getSelection:function(e){for(var t,n=this.sel.ranges,r=0;r<n.length;r++){var i=Je(this,n[r].from(),n[r].to());t=t?t.concat(i):i}return!1===e?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],n=this.sel.ranges,r=0;r<n.length;r++){var i=Je(this,n[r].from(),n[r].to());!1!==e&&(i=i.join(e||this.lineSeparator())),t[r]=i}return t},replaceSelection:function(e,t,n){for(var r=[],i=0;i<this.sel.ranges.length;i++)r[i]=e;this.replaceSelections(r,t,n||\"+input\")},replaceSelections:si((function(e,t,n){for(var r=[],i=this.sel,o=0;o<i.ranges.length;o++){var a=i.ranges[o];r[o]={from:a.from(),to:a.to(),text:this.splitLines(e[o]),origin:n}}for(var s=t&&\"end\"!=t&&function(e,t,n){for(var r=[],i=ot(e.first,0),o=i,a=0;a<t.length;a++){var s=t[a],l=Pi(s.from,i,o),u=Pi(wi(s),i,o);if(i=s.to,o=u,\"around\"==n){var c=e.sel.ranges[a],p=at(c.head,c.anchor)<0;r[a]=new Ii(p?u:l,p?l:u)}else r[a]=new Ii(l,l)}return new Ci(r,e.sel.primIndex)}(this,r,t),l=r.length-1;l>=0;l--)go(this,r[l]);s?ro(this,s):this.cm&&Mr(this.cm)})),undo:si((function(){vo(this,\"undo\")})),redo:si((function(){vo(this,\"redo\")})),undoSelection:si((function(){vo(this,\"undo\",!0)})),redoSelection:si((function(){vo(this,\"redo\",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r<e.done.length;r++)e.done[r].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++n;return{undo:t,redo:n}},clearHistory:function(){var e=this;this.history=new Hi(this.history),Gi(this,(function(t){return t.history=e.history}),!0)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:Ki(this.history.done),undone:Ki(this.history.undone)}},setHistory:function(e){var t=this.history=new Hi(this.history);t.done=Ki(e.done.slice(0),null,!0),t.undone=Ki(e.undone.slice(0),null,!0)},setGutterMarker:si((function(e,t,n){return So(this,e,\"gutter\",(function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=n,!n&&ae(r)&&(e.gutterMarkers=null),!0}))})),clearGutter:si((function(e){var t=this;this.iter((function(n){n.gutterMarkers&&n.gutterMarkers[e]&&So(t,n,\"gutter\",(function(){return n.gutterMarkers[e]=null,ae(n.gutterMarkers)&&(n.gutterMarkers=null),!0}))}))})),lineInfo:function(e){var t;if(\"number\"==typeof e){if(!rt(this,e))return null;if(t=e,!(e=Ke(this,e)))return null}else if(null==(t=tt(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:si((function(e,t,n){return So(this,e,\"gutter\"==t?\"gutter\":\"class\",(function(e){var r=\"text\"==t?\"textClass\":\"background\"==t?\"bgClass\":\"gutter\"==t?\"gutterClass\":\"wrapClass\";if(e[r]){if(L(n).test(e[r]))return!1;e[r]+=\" \"+n}else e[r]=n;return!0}))})),removeLineClass:si((function(e,t,n){return So(this,e,\"gutter\"==t?\"gutter\":\"class\",(function(e){var r=\"text\"==t?\"textClass\":\"background\"==t?\"bgClass\":\"gutter\"==t?\"gutterClass\":\"wrapClass\",i=e[r];if(!i)return!1;if(null==n)e[r]=null;else{var o=i.match(L(n));if(!o)return!1;var a=o.index+o[0].length;e[r]=i.slice(0,o.index)+(o.index&&a!=i.length?\" \":\"\")+i.slice(a)||null}return!0}))})),addLineWidget:si((function(e,t,n){return function(e,t,n,r){var i=new Co(e,n,r),o=e.cm;return o&&i.noHScroll&&(o.display.alignWidgets=!0),So(e,t,\"widget\",(function(t){var n=t.widgets||(t.widgets=[]);if(null==i.insertAt?n.push(i):n.splice(Math.min(n.length,Math.max(0,i.insertAt)),0,i),i.line=t,o&&!zt(e,t)){var r=Xt(t)<e.scrollTop;et(t,t.height+Nn(i)),r&&kr(o,i.height),o.curOp.forceUpdate=!0}return!0})),o&&fn(o,\"lineWidgetAdded\",o,i,\"number\"==typeof t?t:tt(t)),i}(this,e,t,n)})),removeLineWidget:function(e){e.clear()},markText:function(e,t,n){return wo(this,dt(this,e),dt(this,t),n,n&&n.type||\"range\")},setBookmark:function(e,t){var n={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return wo(this,e=dt(this,e),e,n,\"bookmark\")},findMarksAt:function(e){var t=[],n=Ke(this,(e=dt(this,e)).line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=dt(this,e),t=dt(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var a=o.markedSpans;if(a)for(var s=0;s<a.length;s++){var l=a[s];null!=l.to&&i==e.line&&e.ch>=l.to||null==l.from&&i!=e.line||null!=l.from&&i==t.line&&l.from>=t.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i})),r},getAllMarks:function(){var e=[];return this.iter((function(t){var n=t.markedSpans;if(n)for(var r=0;r<n.length;++r)null!=n[r].from&&e.push(n[r].marker)})),e},posFromIndex:function(e){var t,n=this.first,r=this.lineSeparator().length;return this.iter((function(i){var o=i.text.length+r;if(o>e)return t=e,!0;e-=o,++n})),dt(this,ot(n,t))},indexFromPos:function(e){var t=(e=dt(this,e)).ch;if(e.line<this.first||e.ch<0)return 0;var n=this.lineSeparator().length;return this.iter(this.first,e.line,(function(e){t+=e.text.length+n})),t},copy:function(e){var t=new Mo(Ze(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);var r=new Mo(Ze(this,t,n),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(r.history=this.history),(this.linked||(this.linked=[])).push({doc:r,sharedHist:e.sharedHist}),r.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],function(e,t){for(var n=0;n<t.length;n++){var r=t[n],i=r.find(),o=e.clipPos(i.from),a=e.clipPos(i.to);if(at(o,a)){var s=wo(e,o,a,r.primary,r.primary.type);r.markers.push(s),s.parent=r}}}(r,Do(this)),r},unlinkDoc:function(e){if(e instanceof Oa&&(e=e.doc),this.linked)for(var t=0;t<this.linked.length;++t)if(this.linked[t].doc==e){this.linked.splice(t,1),e.unlinkDoc(this),Po(Do(this));break}if(e.history==this.history){var n=[e.id];Gi(e,(function(e){return n.push(e.id)}),!0),e.history=new Hi(null),e.history.done=Ki(this.history.done,n),e.history.undone=Ki(this.history.undone,n)}},iterLinkedDocs:function(e){Gi(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):Me(e)},lineSeparator:function(){return this.lineSep||\"\\n\"},setDirection:si((function(e){var t;\"rtl\"!=e&&(e=\"ltr\"),e!=this.direction&&(this.direction=e,this.iter((function(e){return e.order=null})),this.cm&&ii(t=this.cm,(function(){Ui(t),mr(t)})))}))}),Mo.prototype.eachLine=Mo.prototype.iter;var Fo=0;function Bo(e){var t=this;if(Go(t),!be(t,e)&&!Cn(t.display,e)){Se(e),a&&(Fo=+new Date);var n=hr(t,e,!0),r=e.dataTransfer.files;if(n&&!t.isReadOnly())if(r&&r.length&&window.FileReader&&window.File)for(var i=r.length,o=Array(i),s=0,l=function(){++s==i&&oi(t,(function(){var e={from:n=dt(t.doc,n),to:n,text:t.doc.splitLines(o.filter((function(e){return null!=e})).join(t.doc.lineSeparator())),origin:\"paste\"};go(t.doc,e),ro(t.doc,Ri(dt(t.doc,n),dt(t.doc,wi(e))))}))()},u=function(e,n){if(t.options.allowDropFileTypes&&-1==W(t.options.allowDropFileTypes,e.type))l();else{var r=new FileReader;r.onerror=function(){return l()},r.onload=function(){var e=r.result;/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(e)||(o[n]=e),l()},r.readAsText(e)}},c=0;c<r.length;c++)u(r[c],c);else{if(t.state.draggingText&&t.doc.sel.contains(n)>-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var p=e.dataTransfer.getData(\"Text\");if(p){var d;if(t.state.draggingText&&!t.state.draggingText.copy&&(d=t.listSelections()),oo(t.doc,Ri(n,n)),d)for(var f=0;f<d.length;++f)bo(t.doc,\"\",d[f].anchor,d[f].head,\"drag\");t.replaceSelection(p,\"around\",\"paste\"),t.display.input.focus()}}catch(e){}}}}function Go(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function jo(e){if(document.getElementsByClassName){for(var t=document.getElementsByClassName(\"CodeMirror\"),n=[],r=0;r<t.length;r++){var i=t[r].CodeMirror;i&&n.push(i)}n.length&&n[0].operation((function(){for(var t=0;t<n.length;t++)e(n[t])}))}}var Uo=!1;function Ho(){var e;Uo||(me(window,\"resize\",(function(){null==e&&(e=setTimeout((function(){e=null,jo(qo)}),100))})),me(window,\"blur\",(function(){return jo(Rr)})),Uo=!0)}function qo(e){var t=e.display;t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize()}for(var Vo={3:\"Pause\",8:\"Backspace\",9:\"Tab\",13:\"Enter\",16:\"Shift\",17:\"Ctrl\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Esc\",32:\"Space\",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"PrintScrn\",45:\"Insert\",46:\"Delete\",59:\";\",61:\"=\",91:\"Mod\",92:\"Mod\",93:\"Mod\",106:\"*\",107:\"=\",109:\"-\",110:\".\",111:\"/\",145:\"ScrollLock\",173:\"-\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\",224:\"Mod\",63232:\"Up\",63233:\"Down\",63234:\"Left\",63235:\"Right\",63272:\"Delete\",63273:\"Home\",63275:\"End\",63276:\"PageUp\",63277:\"PageDown\",63302:\"Insert\"},Wo=0;Wo<10;Wo++)Vo[Wo+48]=Vo[Wo+96]=String(Wo);for(var zo=65;zo<=90;zo++)Vo[zo]=String.fromCharCode(zo);for(var Qo=1;Qo<=12;Qo++)Vo[Qo+111]=Vo[Qo+63235]=\"F\"+Qo;var Xo={};function $o(e){var t,n,r,i,o=e.split(/-(?!$)/);e=o[o.length-1];for(var a=0;a<o.length-1;a++){var s=o[a];if(/^(cmd|meta|m)$/i.test(s))i=!0;else if(/^a(lt)?$/i.test(s))t=!0;else if(/^(c|ctrl|control)$/i.test(s))n=!0;else{if(!/^s(hift)?$/i.test(s))throw new Error(\"Unrecognized modifier name: \"+s);r=!0}}return t&&(e=\"Alt-\"+e),n&&(e=\"Ctrl-\"+e),i&&(e=\"Cmd-\"+e),r&&(e=\"Shift-\"+e),e}function Yo(e){var t={};for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];if(/^(name|fallthrough|(de|at)tach)$/.test(n))continue;if(\"...\"==r){delete e[n];continue}for(var i=ee(n.split(\" \"),$o),o=0;o<i.length;o++){var a=void 0,s=void 0;o==i.length-1?(s=i.join(\" \"),a=r):(s=i.slice(0,o+1).join(\" \"),a=\"...\");var l=t[s];if(l){if(l!=a)throw new Error(\"Inconsistent bindings for \"+s)}else t[s]=a}delete e[n]}for(var u in t)e[u]=t[u];return e}function Ko(e,t,n,r){var i=(t=ta(t)).call?t.call(e,r):t[e];if(!1===i)return\"nothing\";if(\"...\"===i)return\"multi\";if(null!=i&&n(i))return\"handled\";if(t.fallthrough){if(\"[object Array]\"!=Object.prototype.toString.call(t.fallthrough))return Ko(e,t.fallthrough,n,r);for(var o=0;o<t.fallthrough.length;o++){var a=Ko(e,t.fallthrough[o],n,r);if(a)return a}}}function Jo(e){var t=\"string\"==typeof e?e:Vo[e.keyCode];return\"Ctrl\"==t||\"Alt\"==t||\"Shift\"==t||\"Mod\"==t}function Zo(e,t,n){var r=e;return t.altKey&&\"Alt\"!=r&&(e=\"Alt-\"+e),(A?t.metaKey:t.ctrlKey)&&\"Ctrl\"!=r&&(e=\"Ctrl-\"+e),(A?t.ctrlKey:t.metaKey)&&\"Mod\"!=r&&(e=\"Cmd-\"+e),!n&&t.shiftKey&&\"Shift\"!=r&&(e=\"Shift-\"+e),e}function ea(e,t){if(d&&34==e.keyCode&&e.char)return!1;var n=Vo[e.keyCode];return null!=n&&!e.altGraphKey&&(3==e.keyCode&&e.code&&(n=e.code),Zo(n,e,t))}function ta(e){return\"string\"==typeof e?Xo[e]:e}function na(e,t){for(var n=e.doc.sel.ranges,r=[],i=0;i<n.length;i++){for(var o=t(n[i]);r.length&&at(o.from,Z(r).to)<=0;){var a=r.pop();if(at(a.from,o.from)<0){o.from=a.from;break}}r.push(o)}ii(e,(function(){for(var t=r.length-1;t>=0;t--)bo(e.doc,\"\",r[t].from,r[t].to,\"+delete\");Mr(e)}))}function ra(e,t,n){var r=ue(e.text,t+n,n);return r<0||r>e.text.length?null:r}function ia(e,t,n){var r=ra(e,t.ch,n);return null==r?null:new ot(t.line,r,n<0?\"after\":\"before\")}function oa(e,t,n,r,i){if(e){\"rtl\"==t.doc.direction&&(i=-i);var o=he(n,t.doc.direction);if(o){var a,s=i<0?Z(o):o[0],l=i<0==(1==s.level)?\"after\":\"before\";if(s.level>0||\"rtl\"==t.doc.direction){var u=Fn(t,n);a=i<0?n.text.length-1:0;var c=Bn(t,u,a).top;a=ce((function(e){return Bn(t,u,e).top==c}),i<0==(1==s.level)?s.from:s.to-1,a),\"before\"==l&&(a=ra(n,a,1))}else a=i<0?s.to:s.from;return new ot(r,a,l)}}return new ot(r,i<0?n.text.length:0,i<0?\"before\":\"after\")}Xo.basic={Left:\"goCharLeft\",Right:\"goCharRight\",Up:\"goLineUp\",Down:\"goLineDown\",End:\"goLineEnd\",Home:\"goLineStartSmart\",PageUp:\"goPageUp\",PageDown:\"goPageDown\",Delete:\"delCharAfter\",Backspace:\"delCharBefore\",\"Shift-Backspace\":\"delCharBefore\",Tab:\"defaultTab\",\"Shift-Tab\":\"indentAuto\",Enter:\"newlineAndIndent\",Insert:\"toggleOverwrite\",Esc:\"singleSelection\"},Xo.pcDefault={\"Ctrl-A\":\"selectAll\",\"Ctrl-D\":\"deleteLine\",\"Ctrl-Z\":\"undo\",\"Shift-Ctrl-Z\":\"redo\",\"Ctrl-Y\":\"redo\",\"Ctrl-Home\":\"goDocStart\",\"Ctrl-End\":\"goDocEnd\",\"Ctrl-Up\":\"goLineUp\",\"Ctrl-Down\":\"goLineDown\",\"Ctrl-Left\":\"goGroupLeft\",\"Ctrl-Right\":\"goGroupRight\",\"Alt-Left\":\"goLineStart\",\"Alt-Right\":\"goLineEnd\",\"Ctrl-Backspace\":\"delGroupBefore\",\"Ctrl-Delete\":\"delGroupAfter\",\"Ctrl-S\":\"save\",\"Ctrl-F\":\"find\",\"Ctrl-G\":\"findNext\",\"Shift-Ctrl-G\":\"findPrev\",\"Shift-Ctrl-F\":\"replace\",\"Shift-Ctrl-R\":\"replaceAll\",\"Ctrl-[\":\"indentLess\",\"Ctrl-]\":\"indentMore\",\"Ctrl-U\":\"undoSelection\",\"Shift-Ctrl-U\":\"redoSelection\",\"Alt-U\":\"redoSelection\",fallthrough:\"basic\"},Xo.emacsy={\"Ctrl-F\":\"goCharRight\",\"Ctrl-B\":\"goCharLeft\",\"Ctrl-P\":\"goLineUp\",\"Ctrl-N\":\"goLineDown\",\"Ctrl-A\":\"goLineStart\",\"Ctrl-E\":\"goLineEnd\",\"Ctrl-V\":\"goPageDown\",\"Shift-Ctrl-V\":\"goPageUp\",\"Ctrl-D\":\"delCharAfter\",\"Ctrl-H\":\"delCharBefore\",\"Alt-Backspace\":\"delWordBefore\",\"Ctrl-K\":\"killLine\",\"Ctrl-T\":\"transposeChars\",\"Ctrl-O\":\"openLine\"},Xo.macDefault={\"Cmd-A\":\"selectAll\",\"Cmd-D\":\"deleteLine\",\"Cmd-Z\":\"undo\",\"Shift-Cmd-Z\":\"redo\",\"Cmd-Y\":\"redo\",\"Cmd-Home\":\"goDocStart\",\"Cmd-Up\":\"goDocStart\",\"Cmd-End\":\"goDocEnd\",\"Cmd-Down\":\"goDocEnd\",\"Alt-Left\":\"goGroupLeft\",\"Alt-Right\":\"goGroupRight\",\"Cmd-Left\":\"goLineLeft\",\"Cmd-Right\":\"goLineRight\",\"Alt-Backspace\":\"delGroupBefore\",\"Ctrl-Alt-Backspace\":\"delGroupAfter\",\"Alt-Delete\":\"delGroupAfter\",\"Cmd-S\":\"save\",\"Cmd-F\":\"find\",\"Cmd-G\":\"findNext\",\"Shift-Cmd-G\":\"findPrev\",\"Cmd-Alt-F\":\"replace\",\"Shift-Cmd-Alt-F\":\"replaceAll\",\"Cmd-[\":\"indentLess\",\"Cmd-]\":\"indentMore\",\"Cmd-Backspace\":\"delWrappedLineLeft\",\"Cmd-Delete\":\"delWrappedLineRight\",\"Cmd-U\":\"undoSelection\",\"Shift-Cmd-U\":\"redoSelection\",\"Ctrl-Up\":\"goDocStart\",\"Ctrl-Down\":\"goDocEnd\",fallthrough:[\"basic\",\"emacsy\"]},Xo.default=y?Xo.macDefault:Xo.pcDefault;var aa={selectAll:fo,singleSelection:function(e){return e.setSelection(e.getCursor(\"anchor\"),e.getCursor(\"head\"),Q)},killLine:function(e){return na(e,(function(t){if(t.empty()){var n=Ke(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line<e.lastLine()?{from:t.head,to:ot(t.head.line+1,0)}:{from:t.head,to:ot(t.head.line,n)}}return{from:t.from(),to:t.to()}}))},deleteLine:function(e){return na(e,(function(t){return{from:ot(t.from().line,0),to:dt(e.doc,ot(t.to().line+1,0))}}))},delLineLeft:function(e){return na(e,(function(e){return{from:ot(e.from().line,0),to:e.from()}}))},delWrappedLineLeft:function(e){return na(e,(function(t){var n=e.charCoords(t.head,\"div\").top+5;return{from:e.coordsChar({left:0,top:n},\"div\"),to:t.from()}}))},delWrappedLineRight:function(e){return na(e,(function(t){var n=e.charCoords(t.head,\"div\").top+5,r=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},\"div\");return{from:t.from(),to:r}}))},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(ot(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(ot(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy((function(t){return sa(e,t.head.line)}),{origin:\"+move\",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy((function(t){return la(e,t.head)}),{origin:\"+move\",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy((function(t){return function(e,t){var n=Ke(e.doc,t),r=function(e){for(var t;t=jt(e);)e=t.find(1,!0).line;return e}(n);return r!=n&&(t=tt(r)),oa(!0,e,n,t,-1)}(e,t.head.line)}),{origin:\"+move\",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy((function(t){var n=e.cursorCoords(t.head,\"div\").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:n},\"div\")}),$)},goLineLeft:function(e){return e.extendSelectionsBy((function(t){var n=e.cursorCoords(t.head,\"div\").top+5;return e.coordsChar({left:0,top:n},\"div\")}),$)},goLineLeftSmart:function(e){return e.extendSelectionsBy((function(t){var n=e.cursorCoords(t.head,\"div\").top+5,r=e.coordsChar({left:0,top:n},\"div\");return r.ch<e.getLine(r.line).search(/\\S/)?la(e,t.head):r}),$)},goLineUp:function(e){return e.moveV(-1,\"line\")},goLineDown:function(e){return e.moveV(1,\"line\")},goPageUp:function(e){return e.moveV(-1,\"page\")},goPageDown:function(e){return e.moveV(1,\"page\")},goCharLeft:function(e){return e.moveH(-1,\"char\")},goCharRight:function(e){return e.moveH(1,\"char\")},goColumnLeft:function(e){return e.moveH(-1,\"column\")},goColumnRight:function(e){return e.moveH(1,\"column\")},goWordLeft:function(e){return e.moveH(-1,\"word\")},goGroupRight:function(e){return e.moveH(1,\"group\")},goGroupLeft:function(e){return e.moveH(-1,\"group\")},goWordRight:function(e){return e.moveH(1,\"word\")},delCharBefore:function(e){return e.deleteH(-1,\"codepoint\")},delCharAfter:function(e){return e.deleteH(1,\"char\")},delWordBefore:function(e){return e.deleteH(-1,\"word\")},delWordAfter:function(e){return e.deleteH(1,\"word\")},delGroupBefore:function(e){return e.deleteH(-1,\"group\")},delGroupAfter:function(e){return e.deleteH(1,\"group\")},indentAuto:function(e){return e.indentSelection(\"smart\")},indentMore:function(e){return e.indentSelection(\"add\")},indentLess:function(e){return e.indentSelection(\"subtract\")},insertTab:function(e){return e.replaceSelection(\"\\t\")},insertSoftTab:function(e){for(var t=[],n=e.listSelections(),r=e.options.tabSize,i=0;i<n.length;i++){var o=n[i].from(),a=q(e.getLine(o.line),o.ch,r);t.push(J(r-a%r))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection(\"add\"):e.execCommand(\"insertTab\")},transposeChars:function(e){return ii(e,(function(){for(var t=e.listSelections(),n=[],r=0;r<t.length;r++)if(t[r].empty()){var i=t[r].head,o=Ke(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new ot(i.line,i.ch-1)),i.ch>0)i=new ot(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),ot(i.line,i.ch-2),i,\"+transpose\");else if(i.line>e.doc.first){var a=Ke(e.doc,i.line-1).text;a&&(i=new ot(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),ot(i.line-1,a.length-1),i,\"+transpose\"))}n.push(new Ii(i,i))}e.setSelections(n)}))},newlineAndIndent:function(e){return ii(e,(function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,\"+input\");t=e.listSelections();for(var r=0;r<t.length;r++)e.indentLine(t[r].from().line,null,!0);Mr(e)}))},openLine:function(e){return e.replaceSelection(\"\\n\",\"start\")},toggleOverwrite:function(e){return e.toggleOverwrite()}};function sa(e,t){var n=Ke(e.doc,t),r=qt(n);return r!=n&&(t=tt(r)),oa(!0,e,r,t,1)}function la(e,t){var n=sa(e,t.line),r=Ke(e.doc,n.line),i=he(r,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(n.ch,r.text.search(/\\S/)),a=t.line==n.line&&t.ch<=o&&t.ch;return ot(n.line,a?0:o,n.sticky)}return n}function ua(e,t,n){if(\"string\"==typeof t&&!(t=aa[t]))return!1;e.display.input.ensurePolled();var r=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n&&(e.display.shift=!1),i=t(e)!=z}finally{e.display.shift=r,e.state.suppressEdits=!1}return i}var ca=new V;function pa(e,t,n,r){var i=e.state.keySeq;if(i){if(Jo(t))return\"handled\";if(/\\'$/.test(t)?e.state.keySeq=null:ca.set(50,(function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())})),da(e,i+\" \"+t,n,r))return!0}return da(e,t,n,r)}function da(e,t,n,r){var i=function(e,t,n){for(var r=0;r<e.state.keyMaps.length;r++){var i=Ko(t,e.state.keyMaps[r],n,e);if(i)return i}return e.options.extraKeys&&Ko(t,e.options.extraKeys,n,e)||Ko(t,e.options.keyMap,n,e)}(e,t,r);return\"multi\"==i&&(e.state.keySeq=t),\"handled\"==i&&fn(e,\"keyHandled\",e,t,n),\"handled\"!=i&&\"multi\"!=i||(Se(n),Nr(e)),!!i}function fa(e,t){var n=ea(t,!0);return!!n&&(t.shiftKey&&!e.state.keySeq?pa(e,\"Shift-\"+n,t,(function(t){return ua(e,t,!0)}))||pa(e,n,t,(function(t){if(\"string\"==typeof t?/^go[A-Z]/.test(t):t.motion)return ua(e,t)})):pa(e,n,t,(function(t){return ua(e,t)})))}var ha=null;function ga(e){var t=this;if(!(e.target&&e.target!=t.display.input.getField()||(t.curOp.focus=D(B(t)),be(t,e)))){a&&s<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var i=fa(t,e);d&&(ha=i?r:null,i||88!=r||Be||!(y?e.metaKey:e.ctrlKey)||t.replaceSelection(\"\",null,\"cut\")),n&&!y&&!i&&46==r&&e.shiftKey&&!e.ctrlKey&&document.execCommand&&document.execCommand(\"cut\"),18!=r||/\\bCodeMirror-crosshair\\b/.test(t.display.lineDiv.className)||function(e){var t=e.display.lineDiv;function n(e){18!=e.keyCode&&e.altKey||(C(t,\"CodeMirror-crosshair\"),Ee(document,\"keyup\",n),Ee(document,\"mouseover\",n))}P(t,\"CodeMirror-crosshair\"),me(document,\"keyup\",n),me(document,\"mouseover\",n)}(t)}}function ma(e){16==e.keyCode&&(this.doc.sel.shift=!1),be(this,e)}function va(e){var t=this;if(!(e.target&&e.target!=t.display.input.getField()||Cn(t.display,e)||be(t,e)||e.ctrlKey&&!e.altKey||y&&e.metaKey)){var n=e.keyCode,r=e.charCode;if(d&&n==ha)return ha=null,void Se(e);if(!d||e.which&&!(e.which<10)||!fa(t,e)){var i=String.fromCharCode(null==r?n:r);\"\\b\"!=i&&(function(e,t,n){return pa(e,\"'\"+n+\"'\",t,(function(t){return ua(e,t,!0)}))}(t,e,i)||t.display.input.onKeyPress(e))}}}var Ea,ya,ba=function(e,t,n){this.time=e,this.pos=t,this.button=n};function xa(e){var t=this,n=t.display;if(!(be(t,e)||n.activeTouch&&n.input.supportsTouch()))if(n.input.ensurePolled(),n.shift=e.shiftKey,Cn(n,e))l||(n.scroller.draggable=!1,setTimeout((function(){return n.scroller.draggable=!0}),100));else if(!Sa(t,e)){var r=hr(t,e),i=_e(e),o=r?function(e,t){var n=+new Date;return ya&&ya.compare(n,e,t)?(Ea=ya=null,\"triple\"):Ea&&Ea.compare(n,e,t)?(ya=new ba(n,e,t),Ea=null,\"double\"):(Ea=new ba(n,e,t),ya=null,\"single\")}(r,i):\"single\";j(t).focus(),1==i&&t.state.selectingText&&t.state.selectingText(e),r&&function(e,t,n,r,i){var o=\"Click\";return\"double\"==r?o=\"Double\"+o:\"triple\"==r&&(o=\"Triple\"+o),pa(e,Zo(o=(1==t?\"Left\":2==t?\"Middle\":\"Right\")+o,i),i,(function(t){if(\"string\"==typeof t&&(t=aa[t]),!t)return!1;var r=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r=t(e,n)!=z}finally{e.state.suppressEdits=!1}return r}))}(t,i,r,o,e)||(1==i?r?function(e,t,n,r){a?setTimeout(U(Cr,e),0):e.curOp.focus=D(B(e));var i,o=function(e,t,n){var r=e.getOption(\"configureMouse\"),i=r?r(e,t,n):{};if(null==i.unit){var o=b?n.shiftKey&&n.metaKey:n.altKey;i.unit=o?\"rectangle\":\"single\"==t?\"char\":\"double\"==t?\"word\":\"line\"}return(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||n.shiftKey),null==i.addNew&&(i.addNew=y?n.metaKey:n.ctrlKey),null==i.moveOnDrag&&(i.moveOnDrag=!(y?n.altKey:n.ctrlKey)),i}(e,n,r),u=e.doc.sel;e.options.dragDrop&&Oe&&!e.isReadOnly()&&\"single\"==n&&(i=u.contains(t))>-1&&(at((i=u.ranges[i]).from(),t)<0||t.xRel>0)&&(at(i.to(),t)>0||t.xRel<0)?function(e,t,n,r){var i=e.display,o=!1,u=oi(e,(function(t){l&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:Ir(e)),Ee(i.wrapper.ownerDocument,\"mouseup\",u),Ee(i.wrapper.ownerDocument,\"mousemove\",c),Ee(i.scroller,\"dragstart\",p),Ee(i.scroller,\"drop\",u),o||(Se(t),r.addNew||Zi(e.doc,n,null,null,r.extend),l&&!f||a&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),c=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},p=function(){return o=!0};l&&(i.scroller.draggable=!0),e.state.draggingText=u,u.copy=!r.moveOnDrag,me(i.wrapper.ownerDocument,\"mouseup\",u),me(i.wrapper.ownerDocument,\"mousemove\",c),me(i.scroller,\"dragstart\",p),me(i.scroller,\"drop\",u),e.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}(e,r,t,o):function(e,t,n,r){a&&Ir(e);var i=e.display,o=e.doc;Se(t);var s,l,u=o.sel,c=u.ranges;if(r.addNew&&!r.extend?(l=o.sel.contains(n),s=l>-1?c[l]:new Ii(n,n)):(s=o.sel.primary(),l=o.sel.primIndex),\"rectangle\"==r.unit)r.addNew||(s=new Ii(n,n)),n=hr(e,t,!0,!0),l=-1;else{var p=Ta(e,n,r.unit);s=r.extend?Ji(s,p.anchor,p.head,r.extend):p}r.addNew?-1==l?(l=c.length,io(o,_i(e,c.concat([s]),l),{scroll:!1,origin:\"*mouse\"})):c.length>1&&c[l].empty()&&\"char\"==r.unit&&!r.extend?(io(o,_i(e,c.slice(0,l).concat(c.slice(l+1)),0),{scroll:!1,origin:\"*mouse\"}),u=o.sel):to(o,l,s,X):(l=0,io(o,new Ci([s],0),X),u=o.sel);var d=n;function f(t){if(0!=at(d,t))if(d=t,\"rectangle\"==r.unit){for(var i=[],a=e.options.tabSize,c=q(Ke(o,n.line).text,n.ch,a),p=q(Ke(o,t.line).text,t.ch,a),f=Math.min(c,p),h=Math.max(c,p),g=Math.min(n.line,t.line),m=Math.min(e.lastLine(),Math.max(n.line,t.line));g<=m;g++){var v=Ke(o,g).text,E=Y(v,f,a);f==h?i.push(new Ii(ot(g,E),ot(g,E))):v.length>E&&i.push(new Ii(ot(g,E),ot(g,Y(v,h,a))))}i.length||i.push(new Ii(n,n)),io(o,_i(e,u.ranges.slice(0,l).concat(i),l),{origin:\"*mouse\",scroll:!1}),e.scrollIntoView(t)}else{var y,b=s,x=Ta(e,t,r.unit),T=b.anchor;at(x.anchor,T)>0?(y=x.head,T=ct(b.from(),x.anchor)):(y=x.anchor,T=ut(b.to(),x.head));var A=u.ranges.slice(0);A[l]=function(e,t){var n=t.anchor,r=t.head,i=Ke(e.doc,n.line);if(0==at(n,r)&&n.sticky==r.sticky)return t;var o=he(i);if(!o)return t;var a=de(o,n.ch,n.sticky),s=o[a];if(s.from!=n.ch&&s.to!=n.ch)return t;var l,u=a+(s.from==n.ch==(1!=s.level)?0:1);if(0==u||u==o.length)return t;if(r.line!=n.line)l=(r.line-n.line)*(\"ltr\"==e.doc.direction?1:-1)>0;else{var c=de(o,r.ch,r.sticky),p=c-a||(r.ch-n.ch)*(1==s.level?-1:1);l=c==u-1||c==u?p<0:p>0}var d=o[u+(l?-1:0)],f=l==(1==d.level),h=f?d.from:d.to,g=f?\"after\":\"before\";return n.ch==h&&n.sticky==g?t:new Ii(new ot(n.line,h,g),r)}(e,new Ii(dt(o,T),y)),io(o,_i(e,A,l),X)}}var h=i.wrapper.getBoundingClientRect(),g=0;function m(t){e.state.selectingText=!1,g=1/0,t&&(Se(t),i.input.focus()),Ee(i.wrapper.ownerDocument,\"mousemove\",v),Ee(i.wrapper.ownerDocument,\"mouseup\",E),o.history.lastSelOrigin=null}var v=oi(e,(function(t){0!==t.buttons&&_e(t)?function t(n){var a=++g,s=hr(e,n,!0,\"rectangle\"==r.unit);if(s)if(0!=at(s,d)){e.curOp.focus=D(B(e)),f(s);var l=Dr(i,o);(s.line>=l.to||s.line<l.from)&&setTimeout(oi(e,(function(){g==a&&t(n)})),150)}else{var u=n.clientY<h.top?-20:n.clientY>h.bottom?20:0;u&&setTimeout(oi(e,(function(){g==a&&(i.scroller.scrollTop+=u,t(n))})),50)}}(t):m(t)})),E=oi(e,m);e.state.selectingText=E,me(i.wrapper.ownerDocument,\"mousemove\",v),me(i.wrapper.ownerDocument,\"mouseup\",E)}(e,r,t,o)}(t,r,o,e):Ie(e)==n.scroller&&Se(e):2==i?(r&&Zi(t.doc,r),setTimeout((function(){return n.input.focus()}),20)):3==i&&(S?t.display.input.onContextMenu(e):Ir(t)))}}function Ta(e,t,n){if(\"char\"==n)return new Ii(t,t);if(\"word\"==n)return e.findWordAt(t);if(\"line\"==n)return new Ii(ot(t.line,0),dt(e.doc,ot(t.line+1,0)));var r=n(e,t);return new Ii(r.from,r.to)}function Aa(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&Se(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!Te(e,n))return Ne(t);o-=s.top-a.viewOffset;for(var l=0;l<e.display.gutterSpecs.length;++l){var u=a.gutters.childNodes[l];if(u&&u.getBoundingClientRect().right>=i)return ye(e,n,e,nt(e.doc,o),e.display.gutterSpecs[l].className,t),Ne(t)}}function Sa(e,t){return Aa(e,t,\"gutterClick\",!0)}function La(e,t){Cn(e.display,t)||function(e,t){return!!Te(e,\"gutterContextMenu\")&&Aa(e,t,\"gutterContextMenu\",!1)}(e,t)||be(e,t,\"contextmenu\")||S||e.display.input.onContextMenu(t)}function Na(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\\s*cm-s-\\S+/g,\"\")+e.options.theme.replace(/(^|\\s)\\s*/g,\" cm-s-\"),Wn(e)}ba.prototype.compare=function(e,t,n){return this.time+400>e&&0==at(t,this.pos)&&n==this.button};var Ca={toString:function(){return\"CodeMirror.Init\"}},Ia={},_a={};function Ra(e,t,n){if(!t!=!(n&&n!=Ca)){var r=e.display.dragFunctions,i=t?me:Ee;i(e.display.scroller,\"dragstart\",r.start),i(e.display.scroller,\"dragenter\",r.enter),i(e.display.scroller,\"dragover\",r.over),i(e.display.scroller,\"dragleave\",r.leave),i(e.display.scroller,\"drop\",r.drop)}}function wa(e){e.options.lineWrapping?(P(e.display.wrapper,\"CodeMirror-wrap\"),e.display.sizer.style.minWidth=\"\",e.display.sizerWidth=null):(C(e.display.wrapper,\"CodeMirror-wrap\"),Yt(e)),fr(e),mr(e),Wn(e),setTimeout((function(){return zr(e)}),100)}function Oa(e,t){var n=this;if(!(this instanceof Oa))return new Oa(e,t);this.options=t=t?H(t):{},H(Ia,t,!1);var r=t.value;\"string\"==typeof r?r=new Mo(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new Oa.inputStyles[t.inputStyle](this),o=this.display=new xi(e,r,i,t);for(var u in o.wrapper.CodeMirror=this,Na(this),t.lineWrapping&&(this.display.wrapper.className+=\" CodeMirror-wrap\"),$r(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new V,keySeq:null,specialChars:null},t.autofocus&&!E&&o.input.focus(),a&&s<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),function(e){var t=e.display;me(t.scroller,\"mousedown\",oi(e,xa)),me(t.scroller,\"dblclick\",a&&s<11?oi(e,(function(t){if(!be(e,t)){var n=hr(e,t);if(n&&!Sa(e,t)&&!Cn(e.display,t)){Se(t);var r=e.findWordAt(n);Zi(e.doc,r.anchor,r.head)}}})):function(t){return be(e,t)||Se(t)}),me(t.scroller,\"contextmenu\",(function(t){return La(e,t)})),me(t.input.getField(),\"contextmenu\",(function(n){t.scroller.contains(n.target)||La(e,n)}));var n,r={end:0};function i(){t.activeTouch&&(n=setTimeout((function(){return t.activeTouch=null}),1e3),(r=t.activeTouch).end=+new Date)}function o(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}me(t.scroller,\"touchstart\",(function(i){if(!be(e,i)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(i)&&!Sa(e,i)){t.input.ensurePolled(),clearTimeout(n);var o=+new Date;t.activeTouch={start:o,moved:!1,prev:o-r.end<=300?r:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),me(t.scroller,\"touchmove\",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),me(t.scroller,\"touchend\",(function(n){var r=t.activeTouch;if(r&&!Cn(t,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var a,s=e.coordsChar(t.activeTouch,\"page\");a=!r.prev||o(r,r.prev)?new Ii(s,s):!r.prev.prev||o(r,r.prev.prev)?e.findWordAt(s):new Ii(ot(s.line,0),dt(e.doc,ot(s.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),Se(n)}i()})),me(t.scroller,\"touchcancel\",i),me(t.scroller,\"scroll\",(function(){t.scroller.clientHeight&&(jr(e,t.scroller.scrollTop),Hr(e,t.scroller.scrollLeft,!0),ye(e,\"scroll\",e))})),me(t.scroller,\"mousewheel\",(function(t){return Ni(e,t)})),me(t.scroller,\"DOMMouseScroll\",(function(t){return Ni(e,t)})),me(t.wrapper,\"scroll\",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){be(e,t)||Ce(t)},over:function(t){be(e,t)||(function(e,t){var n=hr(e,t);if(n){var r=document.createDocumentFragment();Ar(e,n,r),e.display.dragCursor||(e.display.dragCursor=R(\"div\",null,\"CodeMirror-cursors CodeMirror-dragcursors\"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),_(e.display.dragCursor,r)}}(e,t),Ce(t))},start:function(t){return function(e,t){if(a&&(!e.state.draggingText||+new Date-Fo<100))Ce(t);else if(!be(e,t)&&!Cn(e.display,t)&&(t.dataTransfer.setData(\"Text\",e.getSelection()),t.dataTransfer.effectAllowed=\"copyMove\",t.dataTransfer.setDragImage&&!f)){var n=R(\"img\",null,null,\"position: fixed; left: 0; top: 0;\");n.src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",d&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),d&&n.parentNode.removeChild(n)}}(e,t)},drop:oi(e,Bo),leave:function(t){be(e,t)||Go(e)}};var l=t.input.getField();me(l,\"keyup\",(function(t){return ma.call(e,t)})),me(l,\"keydown\",oi(e,ga)),me(l,\"keypress\",oi(e,va)),me(l,\"focus\",(function(t){return _r(e,t)})),me(l,\"blur\",(function(t){return Rr(e,t)}))}(this),Ho(),Kr(this),this.curOp.forceUpdate=!0,ji(this,r),t.autofocus&&!E||this.hasFocus()?setTimeout((function(){n.hasFocus()&&!n.state.focused&&_r(n)}),20):Rr(this),_a)_a.hasOwnProperty(u)&&_a[u](this,t[u],Ca);vi(this),t.finishInit&&t.finishInit(this);for(var c=0;c<Da.length;++c)Da[c](this);Jr(this),l&&t.lineWrapping&&\"optimizelegibility\"==getComputedStyle(o.lineDiv).textRendering&&(o.lineDiv.style.textRendering=\"auto\")}Oa.defaults=Ia,Oa.optionHandlers=_a;var Da=[];function Pa(e,t,n,r){var i,o=e.doc;null==n&&(n=\"add\"),\"smart\"==n&&(o.mode.indent?i=Et(e,t).state:n=\"prev\");var a=e.options.tabSize,s=Ke(o,t),l=q(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var u,c=s.text.match(/^\\s*/)[0];if(r||/\\S/.test(s.text)){if(\"smart\"==n&&((u=o.mode.indent(i,s.text.slice(c.length),s.text))==z||u>150)){if(!r)return;n=\"prev\"}}else u=0,n=\"not\";\"prev\"==n?u=t>o.first?q(Ke(o,t-1).text,null,a):0:\"add\"==n?u=l+e.options.indentUnit:\"subtract\"==n?u=l-e.options.indentUnit:\"number\"==typeof n&&(u=l+n),u=Math.max(0,u);var p=\"\",d=0;if(e.options.indentWithTabs)for(var f=Math.floor(u/a);f;--f)d+=a,p+=\"\\t\";if(d<u&&(p+=J(u-d)),p!=c)return bo(o,p,ot(t,0),ot(t,c.length),\"+input\"),s.stateAfter=null,!0;for(var h=0;h<o.sel.ranges.length;h++){var g=o.sel.ranges[h];if(g.head.line==t&&g.head.ch<c.length){var m=ot(t,c.length);to(o,h,new Ii(m,m));break}}}Oa.defineInitHook=function(e){return Da.push(e)};var ka=null;function Ma(e){ka=e}function Fa(e,t,n,r,i){var o=e.doc;e.display.shift=!1,r||(r=o.sel);var a=+new Date-200,s=\"paste\"==i||e.state.pasteIncoming>a,l=Me(t),u=null;if(s&&r.ranges.length>1)if(ka&&ka.text.join(\"\\n\")==t){if(r.ranges.length%ka.text.length==0){u=[];for(var c=0;c<ka.text.length;c++)u.push(o.splitLines(ka.text[c]))}}else l.length==r.ranges.length&&e.options.pasteLinesPerSelection&&(u=ee(l,(function(e){return[e]})));for(var p=e.curOp.updateInput,d=r.ranges.length-1;d>=0;d--){var f=r.ranges[d],h=f.from(),g=f.to();f.empty()&&(n&&n>0?h=ot(h.line,h.ch-n):e.state.overwrite&&!s?g=ot(g.line,Math.min(Ke(o,g.line).text.length,g.ch+Z(l).length)):s&&ka&&ka.lineWise&&ka.text.join(\"\\n\")==l.join(\"\\n\")&&(h=g=ot(h.line,0)));var m={from:h,to:g,text:u?u[d%u.length]:l,origin:i||(s?\"paste\":e.state.cutIncoming>a?\"cut\":\"+input\")};go(e.doc,m),fn(e,\"inputRead\",e,m)}t&&!s&&Ga(e,t),Mr(e),e.curOp.updateInput<2&&(e.curOp.updateInput=p),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Ba(e,t){var n=e.clipboardData&&e.clipboardData.getData(\"Text\");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||!t.hasFocus()||ii(t,(function(){return Fa(t,n,0,null,\"paste\")})),!0}function Ga(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(t.indexOf(o.electricChars.charAt(s))>-1){a=Pa(e,i.head.line,\"smart\");break}}else o.electricInput&&o.electricInput.test(Ke(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Pa(e,i.head.line,\"smart\"));a&&fn(e,\"electricInput\",e,i.head.line)}}}function ja(e){for(var t=[],n=[],r=0;r<e.doc.sel.ranges.length;r++){var i=e.doc.sel.ranges[r].head.line,o={anchor:ot(i,0),head:ot(i+1,0)};n.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:n}}function Ua(e,t,n,r){e.setAttribute(\"autocorrect\",n?\"on\":\"off\"),e.setAttribute(\"autocapitalize\",r?\"on\":\"off\"),e.setAttribute(\"spellcheck\",!!t)}function Ha(){var e=R(\"textarea\",null,null,\"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; min-height: 1em; outline: none\"),t=R(\"div\",[e],null,\"overflow: hidden; position: relative; width: 3px; height: 0px;\");return l?e.style.width=\"1000px\":e.setAttribute(\"wrap\",\"off\"),m&&(e.style.border=\"1px solid black\"),t}function qa(e,t,n,r,i){var o=t,a=n,s=Ke(e,t.line),l=i&&\"rtl\"==e.direction?-n:n;function u(o){var a,u;if(\"codepoint\"==r){var c=s.text.charCodeAt(t.ch+(n>0?0:-1));if(isNaN(c))a=null;else{var p=n>0?c>=55296&&c<56320:c>=56320&&c<57343;a=new ot(t.line,Math.max(0,Math.min(s.text.length,t.ch+n*(p?2:1))),-n)}}else a=i?function(e,t,n,r){var i=he(t,e.doc.direction);if(!i)return ia(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky=\"before\"):n.ch<=0&&(n.ch=0,n.sticky=\"after\");var o=de(i,n.ch,n.sticky),a=i[o];if(\"ltr\"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from<n.ch))return ia(t,n,r);var s,l=function(e,n){return ra(t,e instanceof ot?e.ch:e,n)},u=function(n){return e.options.lineWrapping?(s=s||Fn(e,t),rr(e,t,s,n)):{begin:0,end:t.text.length}},c=u(\"before\"==n.sticky?l(n,-1):n.ch);if(\"rtl\"==e.doc.direction||1==a.level){var p=1==a.level==r<0,d=l(n,p?1:-1);if(null!=d&&(p?d<=a.to&&d<=c.end:d>=a.from&&d>=c.begin)){var f=p?\"before\":\"after\";return new ot(n.line,d,f)}}var h=function(e,t,r){for(var o=function(e,t){return t?new ot(n.line,l(e,1),\"before\"):new ot(n.line,e,\"after\")};e>=0&&e<i.length;e+=t){var a=i[e],s=t>0==(1!=a.level),u=s?r.begin:l(r.end,-1);if(a.from<=u&&u<a.to)return o(u,s);if(u=s?a.from:l(a.to,-1),r.begin<=u&&u<r.end)return o(u,s)}},g=h(o+r,r,c);if(g)return g;var m=r>0?c.end:l(c.begin,-1);return null==m||r>0&&m==t.text.length||!(g=h(r>0?0:i.length-1,r,u(m)))?null:g}(e.cm,s,t,n):ia(s,t,n);if(null==a){if(o||(u=t.line+l)<e.first||u>=e.first+e.size||(t=new ot(u,t.ch,t.sticky),!(s=Ke(e,u))))return!1;t=oa(i,e.cm,s,t.line,l)}else t=a;return!0}if(\"char\"==r||\"codepoint\"==r)u();else if(\"column\"==r)u(!0);else if(\"word\"==r||\"group\"==r)for(var c=null,p=\"group\"==r,d=e.cm&&e.cm.getHelper(t,\"wordChars\"),f=!0;!(n<0)||u(!f);f=!1){var h=s.text.charAt(t.ch)||\"\\n\",g=oe(h,d)?\"w\":p&&\"\\n\"==h?\"n\":!p||/\\s/.test(h)?null:\"p\";if(!p||f||g||(g=\"s\"),c&&c!=g){n<0&&(n=1,u(),t.sticky=\"after\");break}if(g&&(c=g),n>0&&!u(!f))break}var m=co(e,t,o,a,!0);return st(o,m)&&(m.hitSide=!0),m}function Va(e,t,n,r){var i,o,a=e.doc,s=t.left;if(\"page\"==r){var l=Math.min(e.display.wrapper.clientHeight,j(e).innerHeight||a(e).documentElement.clientHeight),u=Math.max(l-.5*lr(e.display),3);i=(n>0?t.bottom:t.top)+n*u}else\"line\"==r&&(i=n>0?t.bottom+3:t.top-3);for(;(o=tr(e,s,i)).outside;){if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var Wa=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new V,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function za(e,t){var n=Mn(e,t.line);if(!n||n.hidden)return null;var r=Ke(e.doc,t.line),i=Pn(n,r,t.line),o=he(r,e.doc.direction),a=\"left\";o&&(a=de(o,t.ch)%2?\"right\":\"left\");var s=Un(i.map,t.ch,a);return s.offset=\"right\"==s.collapse?s.end:s.start,s}function Qa(e,t){return t&&(e.bad=!0),e}function Xa(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return Qa(e.clipPos(ot(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==r)return $a(o,t,n)}}function $a(e,t,n){var r=e.text.firstChild,i=!1;if(!t||!O(r,t))return Qa(ot(tt(e.line),0),!0);if(t==r&&(i=!0,t=r.childNodes[n],n=0,!t)){var o=e.rest?Z(e.rest):e.line;return Qa(ot(tt(o),o.text.length),i)}var a=3==t.nodeType?t:null,s=t;for(a||1!=t.childNodes.length||3!=t.firstChild.nodeType||(a=t.firstChild,n&&(n=a.nodeValue.length));s.parentNode!=r;)s=s.parentNode;var l=e.measure,u=l.maps;function c(t,n,r){for(var i=-1;i<(u?u.length:0);i++)for(var o=i<0?l.map:u[i],a=0;a<o.length;a+=3){var s=o[a+2];if(s==t||s==n){var c=tt(i<0?e.line:e.rest[i]),p=o[a]+r;return(r<0||s!=t)&&(p=o[a+(r?1:0)]),ot(c,p)}}}var p=c(a,s,n);if(p)return Qa(p,i);for(var d=s.nextSibling,f=a?a.nodeValue.length-n:0;d;d=d.nextSibling){if(p=c(d,d.firstChild,0))return Qa(ot(p.line,p.ch-f),i);f+=d.textContent.length}for(var h=s.previousSibling,g=n;h;h=h.previousSibling){if(p=c(h,h.firstChild,-1))return Qa(ot(p.line,p.ch+g),i);g+=h.textContent.length}}Wa.prototype.init=function(e){var t=this,n=this,r=n.cm,i=n.div=e.lineDiv;function o(e){for(var t=e.target;t;t=t.parentNode){if(t==i)return!0;if(/\\bCodeMirror-(?:line)?widget\\b/.test(t.className))break}return!1}function a(e){if(o(e)&&!be(r,e)){if(r.somethingSelected())Ma({lineWise:!1,text:r.getSelections()}),\"cut\"==e.type&&r.replaceSelection(\"\",null,\"cut\");else{if(!r.options.lineWiseCopyCut)return;var t=ja(r);Ma({lineWise:!0,text:t.text}),\"cut\"==e.type&&r.operation((function(){r.setSelections(t.ranges,0,Q),r.replaceSelection(\"\",null,\"cut\")}))}if(e.clipboardData){e.clipboardData.clearData();var a=ka.text.join(\"\\n\");if(e.clipboardData.setData(\"Text\",a),e.clipboardData.getData(\"Text\")==a)return void e.preventDefault()}var s=Ha(),l=s.firstChild;Ua(l),r.display.lineSpace.insertBefore(s,r.display.lineSpace.firstChild),l.value=ka.text.join(\"\\n\");var u=D(G(i));M(l),setTimeout((function(){r.display.lineSpace.removeChild(s),u.focus(),u==i&&n.showPrimarySelection()}),50)}}i.contentEditable=!0,Ua(i,r.options.spellcheck,r.options.autocorrect,r.options.autocapitalize),me(i,\"paste\",(function(e){!o(e)||be(r,e)||Ba(e,r)||s<=11&&setTimeout(oi(r,(function(){return t.updateFromDOM()})),20)})),me(i,\"compositionstart\",(function(e){t.composing={data:e.data,done:!1}})),me(i,\"compositionupdate\",(function(e){t.composing||(t.composing={data:e.data,done:!1})})),me(i,\"compositionend\",(function(e){t.composing&&(e.data!=t.composing.data&&t.readFromDOMSoon(),t.composing.done=!0)})),me(i,\"touchstart\",(function(){return n.forceCompositionEnd()})),me(i,\"input\",(function(){t.composing||t.readFromDOMSoon()})),me(i,\"copy\",a),me(i,\"cut\",a)},Wa.prototype.screenReaderLabelChanged=function(e){e?this.div.setAttribute(\"aria-label\",e):this.div.removeAttribute(\"aria-label\")},Wa.prototype.prepareSelection=function(){var e=Tr(this.cm,!1);return e.focus=D(G(this.div))==this.div,e},Wa.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Wa.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},Wa.prototype.showPrimarySelection=function(){var e=this.getSelection(),t=this.cm,r=t.doc.sel.primary(),i=r.from(),o=r.to();if(t.display.viewTo==t.display.viewFrom||i.line>=t.display.viewTo||o.line<t.display.viewFrom)e.removeAllRanges();else{var a=Xa(t,e.anchorNode,e.anchorOffset),s=Xa(t,e.focusNode,e.focusOffset);if(!a||a.bad||!s||s.bad||0!=at(ct(a,s),i)||0!=at(ut(a,s),o)){var l=t.display.view,u=i.line>=t.display.viewFrom&&za(t,i)||{node:l[0].measure.map[2],offset:0},c=o.line<t.display.viewTo&&za(t,o);if(!c){var p=l[l.length-1].measure,d=p.maps?p.maps[p.maps.length-1]:p.map;c={node:d[d.length-1],offset:d[d.length-2]-d[d.length-3]}}if(u&&c){var f,h=e.rangeCount&&e.getRangeAt(0);try{f=N(u.node,u.offset,c.offset,c.node)}catch(e){}f&&(!n&&t.state.focused?(e.collapse(u.node,u.offset),f.collapsed||(e.removeAllRanges(),e.addRange(f))):(e.removeAllRanges(),e.addRange(f)),h&&null==e.anchorNode?e.addRange(h):n&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},Wa.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout((function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation((function(){return e.cm.curOp.selectionChanged=!0}))}),20)},Wa.prototype.showMultipleSelections=function(e){_(this.cm.display.cursorDiv,e.cursors),_(this.cm.display.selectionDiv,e.selection)},Wa.prototype.rememberSelection=function(){var e=this.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Wa.prototype.selectionInEditor=function(){var e=this.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return O(this.div,t)},Wa.prototype.focus=function(){\"nocursor\"!=this.cm.options.readOnly&&(this.selectionInEditor()&&D(G(this.div))==this.div||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Wa.prototype.blur=function(){this.div.blur()},Wa.prototype.getField=function(){return this.div},Wa.prototype.supportsTouch=function(){return!0},Wa.prototype.receivedFocus=function(){var e=this,t=this;this.selectionInEditor()?setTimeout((function(){return e.pollSelection()}),20):ii(this.cm,(function(){return t.cm.curOp.selectionChanged=!0})),this.polling.set(this.cm.options.pollInterval,(function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}))},Wa.prototype.selectionChanged=function(){var e=this.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Wa.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=this.getSelection(),t=this.cm;if(v&&c&&this.cm.display.gutterSpecs.length&&function(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}(e.anchorNode))return this.cm.triggerOnKeyDown({type:\"keydown\",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var n=Xa(t,e.anchorNode,e.anchorOffset),r=Xa(t,e.focusNode,e.focusOffset);n&&r&&ii(t,(function(){io(t.doc,Ri(n,r),Q),(n.bad||r.bad)&&(t.curOp.selectionChanged=!0)}))}}},Wa.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e,t,n,r=this.cm,i=r.display,o=r.doc.sel.primary(),a=o.from(),s=o.to();if(0==a.ch&&a.line>r.firstLine()&&(a=ot(a.line-1,Ke(r.doc,a.line-1).length)),s.ch==Ke(r.doc,s.line).text.length&&s.line<r.lastLine()&&(s=ot(s.line+1,0)),a.line<i.viewFrom||s.line>i.viewTo-1)return!1;a.line==i.viewFrom||0==(e=gr(r,a.line))?(t=tt(i.view[0].line),n=i.view[0].node):(t=tt(i.view[e].line),n=i.view[e-1].node.nextSibling);var l,u,c=gr(r,s.line);if(c==i.view.length-1?(l=i.viewTo-1,u=i.lineDiv.lastChild):(l=tt(i.view[c+1].line)-1,u=i.view[c+1].node.previousSibling),!n)return!1;for(var p=r.doc.splitLines(function(e,t,n,r,i){var o=\"\",a=!1,s=e.doc.lineSeparator(),l=!1;function u(){a&&(o+=s,l&&(o+=s),a=l=!1)}function c(e){e&&(u(),o+=e)}function p(t){if(1==t.nodeType){var n=t.getAttribute(\"cm-text\");if(n)return void c(n);var o,d=t.getAttribute(\"cm-marker\");if(d){var f=e.findMarks(ot(r,0),ot(i+1,0),(m=+d,function(e){return e.id==m}));return void(f.length&&(o=f[0].find(0))&&c(Je(e.doc,o.from,o.to).join(s)))}if(\"false\"==t.getAttribute(\"contenteditable\"))return;var h=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;h&&u();for(var g=0;g<t.childNodes.length;g++)p(t.childNodes[g]);/^(pre|p)$/i.test(t.nodeName)&&(l=!0),h&&(a=!0)}else 3==t.nodeType&&c(t.nodeValue.replace(/\\u200b/g,\"\").replace(/\\u00a0/g,\" \"));var m}for(;p(t),t!=n;)t=t.nextSibling,l=!1;return o}(r,n,u,t,l)),d=Je(r.doc,ot(t,0),ot(l,Ke(r.doc,l).text.length));p.length>1&&d.length>1;)if(Z(p)==Z(d))p.pop(),d.pop(),l--;else{if(p[0]!=d[0])break;p.shift(),d.shift(),t++}for(var f=0,h=0,g=p[0],m=d[0],v=Math.min(g.length,m.length);f<v&&g.charCodeAt(f)==m.charCodeAt(f);)++f;for(var E=Z(p),y=Z(d),b=Math.min(E.length-(1==p.length?f:0),y.length-(1==d.length?f:0));h<b&&E.charCodeAt(E.length-h-1)==y.charCodeAt(y.length-h-1);)++h;if(1==p.length&&1==d.length&&t==a.line)for(;f&&f>a.ch&&E.charCodeAt(E.length-h-1)==y.charCodeAt(y.length-h-1);)f--,h++;p[p.length-1]=E.slice(0,E.length-h).replace(/^\\u200b+/,\"\"),p[0]=p[0].slice(f).replace(/\\u200b+$/,\"\");var x=ot(t,f),T=ot(l,d.length?Z(d).length-h:0);return p.length>1||p[0]||at(x,T)?(bo(r.doc,p,x,T,\"+input\"),!0):void 0},Wa.prototype.ensurePolled=function(){this.forceCompositionEnd()},Wa.prototype.reset=function(){this.forceCompositionEnd()},Wa.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Wa.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},Wa.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||ii(this.cm,(function(){return mr(e.cm)}))},Wa.prototype.setUneditable=function(e){e.contentEditable=\"false\"},Wa.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||oi(this.cm,Fa)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Wa.prototype.readOnlyChanged=function(e){this.div.contentEditable=String(\"nocursor\"!=e)},Wa.prototype.onContextMenu=function(){},Wa.prototype.resetPosition=function(){},Wa.prototype.needsContentAttribute=!0;var Ya=function(e){this.cm=e,this.prevInput=\"\",this.pollingFast=!1,this.polling=new V,this.hasSelection=!1,this.composing=null,this.resetting=!1};Ya.prototype.init=function(e){var t=this,n=this,r=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!be(r,e)){if(r.somethingSelected())Ma({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var t=ja(r);Ma({lineWise:!0,text:t.text}),\"cut\"==e.type?r.setSelections(t.ranges,null,Q):(n.prevInput=\"\",i.value=t.text.join(\"\\n\"),M(i))}\"cut\"==e.type&&(r.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(i.style.width=\"0px\"),me(i,\"input\",(function(){a&&s>=9&&t.hasSelection&&(t.hasSelection=null),n.poll()})),me(i,\"paste\",(function(e){be(r,e)||Ba(e,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),me(i,\"cut\",o),me(i,\"copy\",o),me(e.scroller,\"paste\",(function(t){if(!Cn(e,t)&&!be(r,t)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event(\"paste\");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),me(e.lineSpace,\"selectstart\",(function(t){Cn(e,t)||Se(t)})),me(i,\"compositionstart\",(function(){var e=r.getCursor(\"from\");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor(\"to\"),{className:\"CodeMirror-composing\"})}})),me(i,\"compositionend\",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},Ya.prototype.createField=function(e){this.wrapper=Ha(),this.textarea=this.wrapper.firstChild;var t=this.cm.options;Ua(this.textarea,t.spellcheck,t.autocorrect,t.autocapitalize)},Ya.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute(\"aria-label\",e):this.textarea.removeAttribute(\"aria-label\")},Ya.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=Tr(e);if(e.options.moveInputWithCursor){var i=Jn(e,n.sel.primary().head,\"div\"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},Ya.prototype.showSelection=function(e){var t=this.cm.display;_(t.cursorDiv,e.cursors),_(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+\"px\",this.wrapper.style.left=e.teLeft+\"px\")},Ya.prototype.reset=function(e){if(!(this.contextMenuPending||this.composing&&e)){var t=this.cm;if(this.resetting=!0,t.somethingSelected()){this.prevInput=\"\";var n=t.getSelection();this.textarea.value=n,t.state.focused&&M(this.textarea),a&&s>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value=\"\",a&&s>=9&&(this.hasSelection=null));this.resetting=!1}},Ya.prototype.getField=function(){return this.textarea},Ya.prototype.supportsTouch=function(){return!1},Ya.prototype.focus=function(){if(\"nocursor\"!=this.cm.options.readOnly&&(!E||D(G(this.textarea))!=this.textarea))try{this.textarea.focus()}catch(e){}},Ya.prototype.blur=function(){this.textarea.blur()},Ya.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Ya.prototype.receivedFocus=function(){this.slowPoll()},Ya.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},Ya.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,(function n(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,n))}))},Ya.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||this.resetting||!t.state.focused||Fe(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(a&&s>=9&&this.hasSelection===i||y&&/[\\uf700-\\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r=\"​\"),8666==o)return this.reset(),this.cm.execCommand(\"undo\")}for(var l=0,u=Math.min(r.length,i.length);l<u&&r.charCodeAt(l)==i.charCodeAt(l);)++l;return ii(t,(function(){Fa(t,i.slice(l),r.length-l,null,e.composing?\"*compose\":null),i.length>1e3||i.indexOf(\"\\n\")>-1?n.value=e.prevInput=\"\":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor(\"to\"),{className:\"CodeMirror-composing\"}))})),!0},Ya.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Ya.prototype.onKeyPress=function(){a&&s>=9&&(this.hasSelection=null),this.fastPoll()},Ya.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=hr(n,e),u=r.scroller.scrollTop;if(o&&!d){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&oi(n,io)(n.doc,Ri(o),Q);var c,p=i.style.cssText,f=t.wrapper.style.cssText,h=t.wrapper.offsetParent.getBoundingClientRect();if(t.wrapper.style.cssText=\"position: static\",i.style.cssText=\"position: absolute; width: 30px; height: 30px;\\n      top: \"+(e.clientY-h.top-5)+\"px; left: \"+(e.clientX-h.left-5)+\"px;\\n      z-index: 1000; background: \"+(a?\"rgba(255, 255, 255, .05)\":\"transparent\")+\";\\n      outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\",l&&(c=i.ownerDocument.defaultView.scrollY),r.input.focus(),l&&i.ownerDocument.defaultView.scrollTo(null,c),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=\" \"),t.contextMenuPending=v,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&s>=9&&m(),S){Ce(e);var g=function(){Ee(window,\"mouseup\",g),setTimeout(v,20)};me(window,\"mouseup\",g)}else setTimeout(v,50)}function m(){if(null!=i.selectionStart){var e=n.somethingSelected(),o=\"​\"+(e?i.value:\"\");i.value=\"⇚\",i.value=o,t.prevInput=e?\"\":\"​\",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function v(){if(t.contextMenuPending==v&&(t.contextMenuPending=!1,t.wrapper.style.cssText=f,i.style.cssText=p,a&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=u),null!=i.selectionStart)){(!a||a&&s<9)&&m();var e=0,o=function(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&\"​\"==t.prevInput?oi(n,fo)(n):e++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(o,200)}}},Ya.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled=\"nocursor\"==e,this.textarea.readOnly=!!e},Ya.prototype.setUneditable=function(){},Ya.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function n(n,r,i,o){e.defaults[n]=r,i&&(t[n]=o?function(e,t,n){n!=Ca&&i(e,t,n)}:i)}e.defineOption=n,e.Init=Ca,n(\"value\",\"\",(function(e,t){return e.setValue(t)}),!0),n(\"mode\",null,(function(e,t){e.doc.modeOption=t,ki(e)}),!0),n(\"indentUnit\",2,ki,!0),n(\"indentWithTabs\",!1),n(\"smartIndent\",!0),n(\"tabSize\",4,(function(e){Mi(e),Wn(e),mr(e)}),!0),n(\"lineSeparator\",null,(function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(ot(r,o))}r++}));for(var i=n.length-1;i>=0;i--)bo(e.doc,t,n[i],ot(n[i].line,n[i].ch+t.length))}})),n(\"specialChars\",/[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\u202d\\u202e\\u2066\\u2067\\u2069\\ufeff\\ufff9-\\ufffc]/g,(function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test(\"\\t\")?\"\":\"|\\t\"),\"g\"),n!=Ca&&e.refresh()})),n(\"specialCharPlaceholder\",rn,(function(e){return e.refresh()}),!0),n(\"electricChars\",!0),n(\"inputStyle\",E?\"contenteditable\":\"textarea\",(function(){throw new Error(\"inputStyle can not (yet) be changed in a running editor\")}),!0),n(\"spellcheck\",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),n(\"autocorrect\",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),n(\"autocapitalize\",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),n(\"rtlMoveVisually\",!x),n(\"wholeLineUpdateBefore\",!0),n(\"theme\",\"default\",(function(e){Na(e),bi(e)}),!0),n(\"keyMap\",\"default\",(function(e,t,n){var r=ta(t),i=n!=Ca&&ta(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)})),n(\"extraKeys\",null),n(\"configureMouse\",null),n(\"lineWrapping\",!1,wa,!0),n(\"gutters\",[],(function(e,t){e.display.gutterSpecs=Ei(t,e.options.lineNumbers),bi(e)}),!0),n(\"fixedGutter\",!0,(function(e,t){e.display.gutters.style.left=t?pr(e.display)+\"px\":\"0\",e.refresh()}),!0),n(\"coverGutterNextToScrollbar\",!1,(function(e){return zr(e)}),!0),n(\"scrollbarStyle\",\"native\",(function(e){$r(e),zr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),n(\"lineNumbers\",!1,(function(e,t){e.display.gutterSpecs=Ei(e.options.gutters,t),bi(e)}),!0),n(\"firstLineNumber\",1,bi,!0),n(\"lineNumberFormatter\",(function(e){return e}),bi,!0),n(\"showCursorWhenSelecting\",!1,xr,!0),n(\"resetSelectionOnContextMenu\",!0),n(\"lineWiseCopyCut\",!0),n(\"pasteLinesPerSelection\",!0),n(\"selectionsMayTouch\",!1),n(\"readOnly\",!1,(function(e,t){\"nocursor\"==t&&(Rr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),n(\"screenReaderLabel\",null,(function(e,t){t=\"\"===t?null:t,e.display.input.screenReaderLabelChanged(t)})),n(\"disableInput\",!1,(function(e,t){t||e.display.input.reset()}),!0),n(\"dragDrop\",!0,Ra),n(\"allowDropFileTypes\",null),n(\"cursorBlinkRate\",530),n(\"cursorScrollMargin\",0),n(\"cursorHeight\",1,xr,!0),n(\"singleCursorHeightPerLine\",!0,xr,!0),n(\"workTime\",100),n(\"workDelay\",100),n(\"flattenSpans\",!0,Mi,!0),n(\"addModeClass\",!1,Mi,!0),n(\"pollInterval\",100),n(\"undoDepth\",200,(function(e,t){return e.doc.history.undoDepth=t})),n(\"historyEventDelay\",1250),n(\"viewportMargin\",10,(function(e){return e.refresh()}),!0),n(\"maxHighlightLength\",1e4,Mi,!0),n(\"moveInputWithCursor\",!0,(function(e,t){t||e.display.input.resetPosition()})),n(\"tabindex\",null,(function(e,t){return e.display.input.getField().tabIndex=t||\"\"})),n(\"autofocus\",null),n(\"direction\",\"ltr\",(function(e,t){return e.doc.setDirection(t)}),!0),n(\"phrases\",null)}(Oa),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){j(this).focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,i=r[e];r[e]==n&&\"mode\"!=e||(r[e]=n,t.hasOwnProperty(e)&&oi(this,t[e])(this,n,i),ye(this,\"optionChange\",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?\"push\":\"unshift\"](ta(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(t[n]==e||t[n].name==e)return t.splice(n,1),!0},addOverlay:ai((function(t,n){var r=t.token?t:e.getMode(this.options,t);if(r.startState)throw new Error(\"Overlays may not be stateful.\");!function(e,t,n){for(var r=0,i=n(t);r<e.length&&n(e[r])<=i;)r++;e.splice(r,0,t)}(this.state.overlays,{mode:r,modeSpec:t,opaque:n&&n.opaque,priority:n&&n.priority||0},(function(e){return e.priority})),this.state.modeGen++,mr(this)})),removeOverlay:ai((function(e){for(var t=this.state.overlays,n=0;n<t.length;++n){var r=t[n].modeSpec;if(r==e||\"string\"==typeof e&&r.name==e)return t.splice(n,1),this.state.modeGen++,void mr(this)}})),indentLine:ai((function(e,t,n){\"string\"!=typeof t&&\"number\"!=typeof t&&(t=null==t?this.options.smartIndent?\"smart\":\"prev\":t?\"add\":\"subtract\"),rt(this.doc,e)&&Pa(this,e,t,n)})),indentSelection:ai((function(e){for(var t=this.doc.sel.ranges,n=-1,r=0;r<t.length;r++){var i=t[r];if(i.empty())i.head.line>n&&(Pa(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&Mr(this));else{var o=i.from(),a=i.to(),s=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var l=s;l<n;++l)Pa(this,l,e);var u=this.doc.sel.ranges;0==o.ch&&t.length==u.length&&u[r].from().ch>0&&to(this.doc,r,new Ii(o,u[r].to()),Q)}}})),getTokenAt:function(e,t){return At(this,e,t)},getLineTokens:function(e,t){return At(this,ot(e),t,!0)},getTokenTypeAt:function(e){e=dt(this.doc,e);var t,n=vt(this,Ke(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]<o)){t=n[2*a+2];break}r=a+1}}var s=t?t.indexOf(\"overlay \"):-1;return s<0?t:0==s?null:t.slice(0,s-1)},getModeAt:function(t){var n=this.doc.mode;return n.innerMode?e.innerMode(n,this.getTokenAt(t).state).mode:n},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var r=[];if(!n.hasOwnProperty(t))return r;var i=n[t],o=this.getModeAt(e);if(\"string\"==typeof o[t])i[o[t]]&&r.push(i[o[t]]);else if(o[t])for(var a=0;a<o[t].length;a++){var s=i[o[t][a]];s&&r.push(s)}else o.helperType&&i[o.helperType]?r.push(i[o.helperType]):i[o.name]&&r.push(i[o.name]);for(var l=0;l<i._global.length;l++){var u=i._global[l];u.pred(o,this)&&-1==W(r,u.val)&&r.push(u.val)}return r},getStateAfter:function(e,t){var n=this.doc;return Et(this,(e=pt(n,null==e?n.first+n.size-1:e))+1,t).state},cursorCoords:function(e,t){var n=this.doc.sel.primary();return Jn(this,null==e?n.head:\"object\"==typeof e?dt(this.doc,e):e?n.from():n.to(),t||\"page\")},charCoords:function(e,t){return Kn(this,dt(this.doc,e),t||\"page\")},coordsChar:function(e,t){return tr(this,(e=Yn(this,e,t||\"page\")).left,e.top)},lineAtHeight:function(e,t){return e=Yn(this,{top:e,left:0},t||\"page\").top,nt(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,n){var r,i=!1;if(\"number\"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),r=Ke(this.doc,e)}else r=e;return $n(this,r,{top:0,left:0},t||\"page\",n||i).top+(i?this.doc.height-Xt(r):0)},defaultTextHeight:function(){return lr(this.display)},defaultCharWidth:function(){return ur(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o,a,s,l=this.display,u=(e=Jn(this,dt(this.doc,e))).bottom,c=e.left;if(t.style.position=\"absolute\",t.setAttribute(\"cm-ignore-events\",\"true\"),this.display.input.setUneditable(t),l.sizer.appendChild(t),\"over\"==r)u=e.top;else if(\"above\"==r||\"near\"==r){var p=Math.max(l.wrapper.clientHeight,this.doc.height),d=Math.max(l.sizer.clientWidth,l.lineSpace.clientWidth);(\"above\"==r||e.bottom+t.offsetHeight>p)&&e.top>t.offsetHeight?u=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=p&&(u=e.bottom),c+t.offsetWidth>d&&(c=d-t.offsetWidth)}t.style.top=u+\"px\",t.style.left=t.style.right=\"\",\"right\"==i?(c=l.sizer.clientWidth-t.offsetWidth,t.style.right=\"0px\"):(\"left\"==i?c=0:\"middle\"==i&&(c=(l.sizer.clientWidth-t.offsetWidth)/2),t.style.left=c+\"px\"),n&&(o=this,a={left:c,top:u,right:c+t.offsetWidth,bottom:u+t.offsetHeight},null!=(s=Pr(o,a)).scrollTop&&jr(o,s.scrollTop),null!=s.scrollLeft&&Hr(o,s.scrollLeft))},triggerOnKeyDown:ai(ga),triggerOnKeyPress:ai(va),triggerOnKeyUp:ma,triggerOnMouseDown:ai(xa),execCommand:function(e){if(aa.hasOwnProperty(e))return aa[e].call(null,this)},triggerElectric:ai((function(e){Ga(this,e)})),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=dt(this.doc,e),a=0;a<t&&!(o=qa(this.doc,o,i,n,r)).hitSide;++a);return o},moveH:ai((function(e,t){var n=this;this.extendSelectionsBy((function(r){return n.display.shift||n.doc.extend||r.empty()?qa(n.doc,r.head,e,t,n.options.rtlMoveVisually):e<0?r.from():r.to()}),$)})),deleteH:ai((function(e,t){var n=this.doc.sel,r=this.doc;n.somethingSelected()?r.replaceSelection(\"\",null,\"+delete\"):na(this,(function(n){var i=qa(r,n.head,e,t,!1);return e<0?{from:i,to:n.head}:{from:n.head,to:i}}))})),findPosV:function(e,t,n,r){var i=1,o=r;t<0&&(i=-1,t=-t);for(var a=dt(this.doc,e),s=0;s<t;++s){var l=Jn(this,a,\"div\");if(null==o?o=l.left:l.left=o,(a=Va(this,l,i,n)).hitSide)break}return a},moveV:ai((function(e,t){var n=this,r=this.doc,i=[],o=!this.display.shift&&!r.extend&&r.sel.somethingSelected();if(r.extendSelectionsBy((function(a){if(o)return e<0?a.from():a.to();var s=Jn(n,a.head,\"div\");null!=a.goalColumn&&(s.left=a.goalColumn),i.push(s.left);var l=Va(n,s,e,t);return\"page\"==t&&a==r.sel.primary()&&kr(n,Kn(n,l,\"div\").top-s.top),l}),$),i.length)for(var a=0;a<r.sel.ranges.length;a++)r.sel.ranges[a].goalColumn=i[a]})),findWordAt:function(e){var t=Ke(this.doc,e.line).text,n=e.ch,r=e.ch;if(t){var i=this.getHelper(e,\"wordChars\");\"before\"!=e.sticky&&r!=t.length||!n?++r:--n;for(var o=t.charAt(n),a=oe(o,i)?function(e){return oe(e,i)}:/\\s/.test(o)?function(e){return/\\s/.test(e)}:function(e){return!/\\s/.test(e)&&!oe(e)};n>0&&a(t.charAt(n-1));)--n;for(;r<t.length&&a(t.charAt(r));)++r}return new Ii(ot(e.line,n),ot(e.line,r))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?P(this.display.cursorDiv,\"CodeMirror-overwrite\"):C(this.display.cursorDiv,\"CodeMirror-overwrite\"),ye(this,\"overwriteToggle\",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==D(B(this))},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:ai((function(e,t){Fr(this,e,t)})),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-wn(this)-this.display.barHeight,width:e.scrollWidth-wn(this)-this.display.barWidth,clientHeight:Dn(this),clientWidth:On(this)}},scrollIntoView:ai((function(e,t){null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):\"number\"==typeof e?e={from:ot(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?function(e,t){Br(e),e.curOp.scrollToPos=t}(this,e):Gr(this,e.from,e.to,e.margin)})),setSize:ai((function(e,t){var n=this,r=function(e){return\"number\"==typeof e||/^\\d+$/.test(String(e))?e+\"px\":e};null!=e&&(this.display.wrapper.style.width=r(e)),null!=t&&(this.display.wrapper.style.height=r(t)),this.options.lineWrapping&&Vn(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,(function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){vr(n,i,\"widget\");break}++i})),this.curOp.forceUpdate=!0,ye(this,\"refresh\",this)})),operation:function(e){return ii(this,e)},startOperation:function(){return Kr(this)},endOperation:function(){return Jr(this)},refresh:ai((function(){var e=this.display.cachedTextHeight;mr(this),this.curOp.forceUpdate=!0,Wn(this),Fr(this,this.doc.scrollLeft,this.doc.scrollTop),hi(this.display),(null==e||Math.abs(e-lr(this.display))>.5||this.options.lineWrapping)&&fr(this),ye(this,\"refresh\",this)})),swapDoc:ai((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),ji(this,e),Wn(this),this.display.input.reset(),Fr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,fn(this,\"swapDoc\",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Ae(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}(Oa);var Ka=\"iter insert remove copy getEditor constructor\".split(\" \");for(var Ja in Mo.prototype)Mo.prototype.hasOwnProperty(Ja)&&W(Ka,Ja)<0&&(Oa.prototype[Ja]=function(e){return function(){return e.apply(this.doc,arguments)}}(Mo.prototype[Ja]));return Ae(Mo),Oa.inputStyles={textarea:Ya,contenteditable:Wa},Oa.defineMode=function(e){Oa.defaults.mode||\"null\"==e||(Oa.defaults.mode=e),He.apply(this,arguments)},Oa.defineMIME=function(e,t){Ue[e]=t},Oa.defineMode(\"null\",(function(){return{token:function(e){return e.skipToEnd()}}})),Oa.defineMIME(\"text/plain\",\"null\"),Oa.defineExtension=function(e,t){Oa.prototype[e]=t},Oa.defineDocExtension=function(e,t){Mo.prototype[e]=t},Oa.fromTextArea=function(e,t){if((t=t?H(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=D(G(e));t.autofocus=n==e||null!=e.getAttribute(\"autofocus\")&&n==document.body}function r(){e.value=s.getValue()}var i;if(e.form&&(me(e.form,\"submit\",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(e){}}t.finishInit=function(n){n.save=r,n.getTextArea=function(){return e},n.toTextArea=function(){n.toTextArea=isNaN,r(),e.parentNode.removeChild(n.getWrapperElement()),e.style.display=\"\",e.form&&(Ee(e.form,\"submit\",r),t.leaveSubmitMethodAlone||\"function\"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display=\"none\";var s=Oa((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return s},function(e){e.off=Ee,e.on=me,e.wheelEventPixels=Li,e.Doc=Mo,e.splitLines=Me,e.countColumn=q,e.findColumn=Y,e.isWordChar=ie,e.Pass=z,e.signal=ye,e.Line=Kt,e.changeEnd=wi,e.scrollbarModel=Xr,e.Pos=ot,e.cmpPos=at,e.modes=je,e.mimeModes=Ue,e.resolveMode=qe,e.getMode=Ve,e.modeExtensions=We,e.extendMode=ze,e.copyState=Qe,e.startState=$e,e.innerMode=Xe,e.commands=aa,e.keyMap=Xo,e.keyName=ea,e.isModifierKey=Jo,e.lookupKey=Ko,e.normalizeKeyMap=Yo,e.StringStream=Ye,e.SharedTextMarker=Oo,e.TextMarker=Ro,e.LineWidget=Co,e.e_preventDefault=Se,e.e_stopPropagation=Le,e.e_stop=Ce,e.addClass=P,e.contains=O,e.rmClass=C,e.keyNames=Vo}(Oa),Oa.version=\"5.65.20\",Oa}()},1779:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},1850:(e,t,n)=>{var r=n(7589).Global;function i(){return r.sessionStorage}function o(e){return i().getItem(e)}e.exports={name:\"sessionStorage\",read:o,write:function(e,t){return i().setItem(e,t)},each:function(e){for(var t=i().length-1;t>=0;t--){var n=i().key(t);e(o(n),n)}},remove:function(e){return i().removeItem(e)},clearAll:function(){return i().clear()}}},1907:(e,t,n)=>{var r=n(8696),i=n(6918);e.exports=function e(t,n){function o(e,i,a,s){try{var l=t[e](i),u=l.value;return u instanceof r?n.resolve(u.v).then((function(e){o(\"next\",e,a,s)}),(function(e){o(\"throw\",e,a,s)})):n.resolve(u).then((function(e){l.value=e,a(l)}),(function(e){return o(\"throw\",e,a,s)}))}catch(e){s(e)}}var a;this.next||(i(e.prototype),i(e.prototype,\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@asyncIterator\",(function(){return this}))),i(this,\"_invoke\",(function(e,t,r){function i(){return new n((function(t,n){o(e,r,t,n)}))}return a=a?a.then(i,i):i()}),!0)},e.exports.__esModule=!0,e.exports.default=e.exports},2020:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}},2078:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>u});var r=n(2977),i=n(8214);const o=function(e){return(0,i.A)(e)&&\"[object Arguments]\"==(0,r.A)(e)};var a=Object.prototype,s=a.hasOwnProperty,l=a.propertyIsEnumerable;const u=o(function(){return arguments}())?o:function(e){return(0,i.A)(e)&&s.call(e,\"callee\")&&!l.call(e,\"callee\")}},2144:(e,t,n)=>{\"use strict\";n.r(t)},2276:(e,t,n)=>{\"use strict\";n.r(t)},2313:(e,t,n)=>{\"use strict\";const r=n(2504),i=n(9029),o=\"function\"==typeof Symbol&&\"function\"==typeof Symbol.for?Symbol.for(\"nodejs.util.inspect.custom\"):null;t.hp=s,t.IS=50;function a(e){if(e>2147483647)throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,s.prototype),t}function s(e,t,n){if(\"number\"==typeof e){if(\"string\"==typeof t)throw new TypeError('The \"string\" argument must be of type string. Received type number');return c(e)}return l(e,t,n)}function l(e,t,n){if(\"string\"==typeof e)return function(e,t){\"string\"==typeof t&&\"\"!==t||(t=\"utf8\");if(!s.isEncoding(t))throw new TypeError(\"Unknown encoding: \"+t);const n=0|h(e,t);let r=a(n);const i=r.write(e,t);i!==n&&(r=r.slice(0,i));return r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Q(e,Uint8Array)){const t=new Uint8Array(e);return d(t.buffer,t.byteOffset,t.byteLength)}return p(e)}(e);if(null==e)throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof e);if(Q(e,ArrayBuffer)||e&&Q(e.buffer,ArrayBuffer))return d(e,t,n);if(\"undefined\"!=typeof SharedArrayBuffer&&(Q(e,SharedArrayBuffer)||e&&Q(e.buffer,SharedArrayBuffer)))return d(e,t,n);if(\"number\"==typeof e)throw new TypeError('The \"value\" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return s.from(r,t,n);const i=function(e){if(s.isBuffer(e)){const t=0|f(e.length),n=a(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return\"number\"!=typeof e.length||X(e.length)?a(0):p(e);if(\"Buffer\"===e.type&&Array.isArray(e.data))return p(e.data)}(e);if(i)return i;if(\"undefined\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\"function\"==typeof e[Symbol.toPrimitive])return s.from(e[Symbol.toPrimitive](\"string\"),t,n);throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof e)}function u(e){if(\"number\"!=typeof e)throw new TypeError('\"size\" argument must be of type number');if(e<0)throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"')}function c(e){return u(e),a(e<0?0:0|f(e))}function p(e){const t=e.length<0?0:0|f(e.length),n=a(t);for(let r=0;r<t;r+=1)n[r]=255&e[r];return n}function d(e,t,n){if(t<0||e.byteLength<t)throw new RangeError('\"offset\" is outside of buffer bounds');if(e.byteLength<t+(n||0))throw new RangeError('\"length\" is outside of buffer bounds');let r;return r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),Object.setPrototypeOf(r,s.prototype),r}function f(e){if(e>=2147483647)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+2147483647..toString(16)+\" bytes\");return 0|e}function h(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Q(e,ArrayBuffer))return e.byteLength;if(\"string\"!=typeof e)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(t){case\"ascii\":case\"latin1\":case\"binary\":return n;case\"utf8\":case\"utf-8\":return V(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*n;case\"hex\":return n>>>1;case\"base64\":return W(e).length;default:if(i)return r?-1:V(e).length;t=(\"\"+t).toLowerCase(),i=!0}}function g(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return\"\";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return\"\";if((n>>>=0)<=(t>>>=0))return\"\";for(e||(e=\"utf8\");;)switch(e){case\"hex\":return I(this,t,n);case\"utf8\":case\"utf-8\":return L(this,t,n);case\"ascii\":return N(this,t,n);case\"latin1\":case\"binary\":return C(this,t,n);case\"base64\":return S(this,t,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return _(this,t,n);default:if(r)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase(),r=!0}}function m(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,i){if(0===e.length)return-1;if(\"string\"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),X(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if(\"string\"==typeof t&&(t=s.from(t,r)),s.isBuffer(t))return 0===t.length?-1:E(e,t,n,r,i);if(\"number\"==typeof t)return t&=255,\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):E(e,[t],n,r,i);throw new TypeError(\"val must be string, number or Buffer\")}function E(e,t,n,r,i){let o,a=1,s=e.length,l=t.length;if(void 0!==r&&(\"ucs2\"===(r=String(r).toLowerCase())||\"ucs-2\"===r||\"utf16le\"===r||\"utf-16le\"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){let r=-1;for(o=n;o<s;o++)if(u(e,o)===u(t,-1===r?0:o-r)){if(-1===r&&(r=o),o-r+1===l)return r*a}else-1!==r&&(o-=o-r),r=-1}else for(n+l>s&&(n=s-l),o=n;o>=0;o--){let n=!0;for(let r=0;r<l;r++)if(u(e,o+r)!==u(t,r)){n=!1;break}if(n)return o}return-1}function y(e,t,n,r){n=Number(n)||0;const i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;const o=t.length;let a;for(r>o/2&&(r=o/2),a=0;a<r;++a){const r=parseInt(t.substr(2*a,2),16);if(X(r))return a;e[n+a]=r}return a}function b(e,t,n,r){return z(V(t,e.length-n),e,n,r)}function x(e,t,n,r){return z(function(e){const t=[];for(let n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function T(e,t,n,r){return z(W(t),e,n,r)}function A(e,t,n,r){return z(function(e,t){let n,r,i;const o=[];for(let a=0;a<e.length&&!((t-=2)<0);++a)n=e.charCodeAt(a),r=n>>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function S(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function L(e,t,n){n=Math.min(e.length,n);const r=[];let i=t;for(;i<n;){const t=e[i];let o=null,a=t>239?4:t>223?3:t>191?2:1;if(i+a<=n){let n,r,s,l;switch(a){case 1:t<128&&(o=t);break;case 2:n=e[i+1],128==(192&n)&&(l=(31&t)<<6|63&n,l>127&&(o=l));break;case 3:n=e[i+1],r=e[i+2],128==(192&n)&&128==(192&r)&&(l=(15&t)<<12|(63&n)<<6|63&r,l>2047&&(l<55296||l>57343)&&(o=l));break;case 4:n=e[i+1],r=e[i+2],s=e[i+3],128==(192&n)&&128==(192&r)&&128==(192&s)&&(l=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&s,l>65535&&l<1114112&&(o=l))}}null===o?(o=65533,a=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=a}return function(e){const t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);let n=\"\",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=4096));return n}(r)}s.TYPED_ARRAY_SUPPORT=function(){try{const e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),s.TYPED_ARRAY_SUPPORT||\"undefined\"==typeof console||\"function\"!=typeof console.error||console.error(\"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"),Object.defineProperty(s.prototype,\"parent\",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,\"offset\",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}}),s.poolSize=8192,s.from=function(e,t,n){return l(e,t,n)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array),s.alloc=function(e,t,n){return function(e,t,n){return u(e),e<=0?a(e):void 0!==t?\"string\"==typeof n?a(e).fill(t,n):a(e).fill(t):a(e)}(e,t,n)},s.allocUnsafe=function(e){return c(e)},s.allocUnsafeSlow=function(e){return c(e)},s.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==s.prototype},s.compare=function(e,t){if(Q(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),Q(t,Uint8Array)&&(t=s.from(t,t.offset,t.byteLength)),!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let n=e.length,r=t.length;for(let i=0,o=Math.min(n,r);i<o;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"latin1\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return!0;default:return!1}},s.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('\"list\" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);let n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;const r=s.allocUnsafe(t);let i=0;for(n=0;n<e.length;++n){let t=e[n];if(Q(t,Uint8Array))i+t.length>r.length?(s.isBuffer(t)||(t=s.from(t)),t.copy(r,i)):Uint8Array.prototype.set.call(r,t,i);else{if(!s.isBuffer(t))throw new TypeError('\"list\" argument must be an Array of Buffers');t.copy(r,i)}i+=t.length}return r},s.byteLength=h,s.prototype._isBuffer=!0,s.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError(\"Buffer size must be a multiple of 16-bits\");for(let t=0;t<e;t+=2)m(this,t,t+1);return this},s.prototype.swap32=function(){const e=this.length;if(e%4!=0)throw new RangeError(\"Buffer size must be a multiple of 32-bits\");for(let t=0;t<e;t+=4)m(this,t,t+3),m(this,t+1,t+2);return this},s.prototype.swap64=function(){const e=this.length;if(e%8!=0)throw new RangeError(\"Buffer size must be a multiple of 64-bits\");for(let t=0;t<e;t+=8)m(this,t,t+7),m(this,t+1,t+6),m(this,t+2,t+5),m(this,t+3,t+4);return this},s.prototype.toString=function(){const e=this.length;return 0===e?\"\":0===arguments.length?L(this,0,e):g.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){let e=\"\";const n=t.IS;return e=this.toString(\"hex\",0,n).replace(/(.{2})/g,\"$1 \").trim(),this.length>n&&(e+=\" ... \"),\"<Buffer \"+e+\">\"},o&&(s.prototype[o]=s.prototype.inspect),s.prototype.compare=function(e,t,n,r,i){if(Q(e,Uint8Array)&&(e=s.from(e,e.offset,e.byteLength)),!s.isBuffer(e))throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError(\"out of range index\");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;let o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0);const l=Math.min(o,a),u=this.slice(r,i),c=e.slice(t,n);for(let e=0;e<l;++e)if(u[e]!==c[e]){o=u[e],a=c[e];break}return o<a?-1:a<o?1:0},s.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},s.prototype.indexOf=function(e,t,n){return v(this,e,t,n,!0)},s.prototype.lastIndexOf=function(e,t,n){return v(this,e,t,n,!1)},s.prototype.write=function(e,t,n,r){if(void 0===t)r=\"utf8\",n=this.length,t=0;else if(void 0===n&&\"string\"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");t>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r=\"utf8\")):(r=n,n=void 0)}const i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");r||(r=\"utf8\");let o=!1;for(;;)switch(r){case\"hex\":return y(this,e,t,n);case\"utf8\":case\"utf-8\":return b(this,e,t,n);case\"ascii\":case\"latin1\":case\"binary\":return x(this,e,t,n);case\"base64\":return T(this,e,t,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return A(this,e,t,n);default:if(o)throw new TypeError(\"Unknown encoding: \"+r);r=(\"\"+r).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function N(e,t,n){let r=\"\";n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function C(e,t,n){let r=\"\";n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function I(e,t,n){const r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);let i=\"\";for(let r=t;r<n;++r)i+=$[e[r]];return i}function _(e,t,n){const r=e.slice(t,n);let i=\"\";for(let e=0;e<r.length-1;e+=2)i+=String.fromCharCode(r[e]+256*r[e+1]);return i}function R(e,t,n){if(e%1!=0||e<0)throw new RangeError(\"offset is not uint\");if(e+t>n)throw new RangeError(\"Trying to access beyond buffer length\")}function w(e,t,n,r,i,o){if(!s.isBuffer(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(t>i||t<o)throw new RangeError('\"value\" argument is out of bounds');if(n+r>e.length)throw new RangeError(\"Index out of range\")}function O(e,t,n,r,i){j(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,n}function D(e,t,n,r,i){j(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n+7]=o,o>>=8,e[n+6]=o,o>>=8,e[n+5]=o,o>>=8,e[n+4]=o;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=a,a>>=8,e[n+2]=a,a>>=8,e[n+1]=a,a>>=8,e[n]=a,n+8}function P(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError(\"Index out of range\");if(n<0)throw new RangeError(\"Index out of range\")}function k(e,t,n,r,o){return t=+t,n>>>=0,o||P(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function M(e,t,n,r,o){return t=+t,n>>>=0,o||P(e,0,n,8),i.write(e,t,n,r,52,8),n+8}s.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e);const r=this.subarray(e,t);return Object.setPrototypeOf(r,s.prototype),r},s.prototype.readUintLE=s.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||R(e,t,this.length);let r=this[e],i=1,o=0;for(;++o<t&&(i*=256);)r+=this[e+o]*i;return r},s.prototype.readUintBE=s.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||R(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},s.prototype.readUint8=s.prototype.readUInt8=function(e,t){return e>>>=0,t||R(e,1,this.length),this[e]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(e,t){return e>>>=0,t||R(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(e,t){return e>>>=0,t||R(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(e,t){return e>>>=0,t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(e,t){return e>>>=0,t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readBigUInt64LE=Y((function(e){U(e>>>=0,\"offset\");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(i)<<BigInt(32))})),s.prototype.readBigUInt64BE=Y((function(e){U(e>>>=0,\"offset\");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<<BigInt(32))+BigInt(i)})),s.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||R(e,t,this.length);let r=this[e],i=1,o=0;for(;++o<t&&(i*=256);)r+=this[e+o]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},s.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||R(e,t,this.length);let r=t,i=1,o=this[e+--r];for(;r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return e>>>=0,t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){e>>>=0,t||R(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt16BE=function(e,t){e>>>=0,t||R(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt32LE=function(e,t){return e>>>=0,t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return e>>>=0,t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readBigInt64LE=Y((function(e){U(e>>>=0,\"offset\");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<<BigInt(32))+BigInt(t+256*this[++e]+65536*this[++e]+this[++e]*2**24)})),s.prototype.readBigInt64BE=Y((function(e){U(e>>>=0,\"offset\");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<<BigInt(32))+BigInt(this[++e]*2**24+65536*this[++e]+256*this[++e]+n)})),s.prototype.readFloatLE=function(e,t){return e>>>=0,t||R(e,4,this.length),i.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return e>>>=0,t||R(e,4,this.length),i.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return e>>>=0,t||R(e,8,this.length),i.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return e>>>=0,t||R(e,8,this.length),i.read(this,e,!1,52,8)},s.prototype.writeUintLE=s.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){w(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=1,o=0;for(this[t]=255&e;++o<n&&(i*=256);)this[t+o]=e/i&255;return t+n},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){w(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=n-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+n},s.prototype.writeUint8=s.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||w(this,e,t,1,255,0),this[t]=255&e,t+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||w(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||w(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||w(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||w(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeBigUInt64LE=Y((function(e,t=0){return O(this,e,t,BigInt(0),BigInt(\"0xffffffffffffffff\"))})),s.prototype.writeBigUInt64BE=Y((function(e,t=0){return D(this,e,t,BigInt(0),BigInt(\"0xffffffffffffffff\"))})),s.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);w(this,e,t,n,r-1,-r)}let i=0,o=1,a=0;for(this[t]=255&e;++i<n&&(o*=256);)e<0&&0===a&&0!==this[t+i-1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+n},s.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);w(this,e,t,n,r-1,-r)}let i=n-1,o=1,a=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/o>>0)-a&255;return t+n},s.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||w(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||w(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},s.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||w(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},s.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||w(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},s.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||w(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},s.prototype.writeBigInt64LE=Y((function(e,t=0){return O(this,e,t,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))})),s.prototype.writeBigInt64BE=Y((function(e,t=0){return D(this,e,t,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))})),s.prototype.writeFloatLE=function(e,t,n){return k(this,e,t,!0,n)},s.prototype.writeFloatBE=function(e,t,n){return k(this,e,t,!1,n)},s.prototype.writeDoubleLE=function(e,t,n){return M(this,e,t,!0,n)},s.prototype.writeDoubleBE=function(e,t,n){return M(this,e,t,!1,n)},s.prototype.copy=function(e,t,n,r){if(!s.isBuffer(e))throw new TypeError(\"argument should be a Buffer\");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError(\"targetStart out of bounds\");if(n<0||n>=this.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"sourceEnd out of bounds\");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);const i=r-n;return this===e&&\"function\"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,n,r):Uint8Array.prototype.set.call(e,this.subarray(n,r),t),i},s.prototype.fill=function(e,t,n,r){if(\"string\"==typeof e){if(\"string\"==typeof t?(r=t,t=0,n=this.length):\"string\"==typeof n&&(r=n,n=this.length),void 0!==r&&\"string\"!=typeof r)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof r&&!s.isEncoding(r))throw new TypeError(\"Unknown encoding: \"+r);if(1===e.length){const t=e.charCodeAt(0);(\"utf8\"===r&&t<128||\"latin1\"===r)&&(e=t)}}else\"number\"==typeof e?e&=255:\"boolean\"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw new RangeError(\"Out of range index\");if(n<=t)return this;let i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),\"number\"==typeof e)for(i=t;i<n;++i)this[i]=e;else{const o=s.isBuffer(e)?e:s.from(e,r),a=o.length;if(0===a)throw new TypeError('The value \"'+e+'\" is invalid for argument \"value\"');for(i=0;i<n-t;++i)this[i+t]=o[i%a]}return this};const F={};function B(e,t,n){F[e]=class extends n{constructor(){super(),Object.defineProperty(this,\"message\",{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,\"code\",{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}function G(e){let t=\"\",n=e.length;const r=\"-\"===e[0]?1:0;for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function j(e,t,n,r,i,o){if(e>n||e<t){const r=\"bigint\"==typeof t?\"n\":\"\";let i;throw i=o>3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(o+1)}${r}`:`>= -(2${r} ** ${8*(o+1)-1}${r}) and < 2 ** ${8*(o+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new F.ERR_OUT_OF_RANGE(\"value\",i,e)}!function(e,t,n){U(t,\"offset\"),void 0!==e[t]&&void 0!==e[t+n]||H(t,e.length-(n+1))}(r,i,o)}function U(e,t){if(\"number\"!=typeof e)throw new F.ERR_INVALID_ARG_TYPE(t,\"number\",e)}function H(e,t,n){if(Math.floor(e)!==e)throw U(e,n),new F.ERR_OUT_OF_RANGE(n||\"offset\",\"an integer\",e);if(t<0)throw new F.ERR_BUFFER_OUT_OF_BOUNDS;throw new F.ERR_OUT_OF_RANGE(n||\"offset\",`>= ${n?1:0} and <= ${t}`,e)}B(\"ERR_BUFFER_OUT_OF_BOUNDS\",(function(e){return e?e+\" is outside of buffer bounds\":\"Attempt to access memory outside buffer bounds\"}),RangeError),B(\"ERR_INVALID_ARG_TYPE\",(function(e,t){return`The \"${e}\" argument must be of type number. Received type ${typeof t}`}),TypeError),B(\"ERR_OUT_OF_RANGE\",(function(e,t,n){let r=`The value of \"${e}\" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=G(String(n)):\"bigint\"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=G(i)),i+=\"n\"),r+=` It must be ${t}. Received ${i}`,r}),RangeError);const q=/[^+/0-9A-Za-z-_]/g;function V(e,t){let n;t=t||1/0;const r=e.length;let i=null;const o=[];for(let a=0;a<r;++a){if(n=e.charCodeAt(a),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error(\"Invalid code point\");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function W(e){return r.toByteArray(function(e){if((e=(e=e.split(\"=\")[0]).trim().replace(q,\"\")).length<2)return\"\";for(;e.length%4!=0;)e+=\"=\";return e}(e))}function z(e,t,n,r){let i;for(i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Q(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function X(e){return e!=e}const $=function(){const e=new Array(256);for(let t=0;t<16;++t){const n=16*t;for(let r=0;r<16;++r)e[n+r]=\"0123456789abcdef\"[t]+\"0123456789abcdef\"[r]}return e}();function Y(e){return\"undefined\"==typeof BigInt?K:e}function K(){throw new Error(\"BigInt not supported\")}},2357:(e,t,n)=>{\"use strict\";n.r(t)},2448:(e,t,n)=>{!function(e){\"use strict\";e.defineOption(\"foldGutter\",!1,(function(t,r,i){var o;i&&i!=e.Init&&(t.clearGutter(t.state.foldGutter.options.gutter),t.state.foldGutter=null,t.off(\"gutterClick\",l),t.off(\"changes\",c),t.off(\"viewportChange\",p),t.off(\"fold\",d),t.off(\"unfold\",d),t.off(\"swapDoc\",c),t.off(\"optionChange\",u)),r&&(t.state.foldGutter=new n((!0===(o=r)&&(o={}),null==o.gutter&&(o.gutter=\"CodeMirror-foldgutter\"),null==o.indicatorOpen&&(o.indicatorOpen=\"CodeMirror-foldgutter-open\"),null==o.indicatorFolded&&(o.indicatorFolded=\"CodeMirror-foldgutter-folded\"),o)),s(t),t.on(\"gutterClick\",l),t.on(\"changes\",c),t.on(\"viewportChange\",p),t.on(\"fold\",d),t.on(\"unfold\",d),t.on(\"swapDoc\",c),t.on(\"optionChange\",u))}));var t=e.Pos;function n(e){this.options=e,this.from=this.to=0}function r(e,n){for(var r=e.findMarks(t(n,0),t(n+1,0)),i=0;i<r.length;++i)if(r[i].__isFold){var o=r[i].find(-1);if(o&&o.line===n)return r[i]}}function i(e){if(\"string\"==typeof e){var t=document.createElement(\"div\");return t.className=e+\" CodeMirror-guttermarker-subtle\",t}return e.cloneNode(!0)}function o(e,n,o){var s=e.state.foldGutter.options,l=n-1,u=e.foldOption(s,\"minFoldSize\"),c=e.foldOption(s,\"rangeFinder\"),p=\"string\"==typeof s.indicatorFolded&&a(s.indicatorFolded),d=\"string\"==typeof s.indicatorOpen&&a(s.indicatorOpen);e.eachLine(n,o,(function(n){++l;var o=null,a=n.gutterMarkers;if(a&&(a=a[s.gutter]),r(e,l)){if(p&&a&&p.test(a.className))return;o=i(s.indicatorFolded)}else{var f=t(l,0),h=c&&c(e,f);if(h&&h.to.line-h.from.line>=u){if(d&&a&&d.test(a.className))return;o=i(s.indicatorOpen)}}(o||a)&&e.setGutterMarker(n,s.gutter,o)}))}function a(e){return new RegExp(\"(^|\\\\s)\"+e+\"(?:$|\\\\s)\\\\s*\")}function s(e){var t=e.getViewport(),n=e.state.foldGutter;n&&(e.operation((function(){o(e,t.from,t.to)})),n.from=t.from,n.to=t.to)}function l(e,n,i){var o=e.state.foldGutter;if(o){var a=o.options;if(i==a.gutter){var s=r(e,n);s?s.clear():e.foldCode(t(n,0),a)}}}function u(e,t){\"mode\"==t&&c(e)}function c(e){var t=e.state.foldGutter;if(t){var n=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout((function(){s(e)}),n.foldOnChangeTimeSpan||600)}}function p(e){var t=e.state.foldGutter;if(t){var n=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout((function(){var n=e.getViewport();t.from==t.to||n.from-t.to>20||t.from-n.to>20?s(e):e.operation((function(){n.from<t.from&&(o(e,n.from,t.from),t.from=n.from),n.to>t.to&&(o(e,t.to,n.to),t.to=n.to)}))}),n.updateViewportTimeSpan||400)}}function d(e,t){var n=e.state.foldGutter;if(n){var r=t.line;r>=n.from&&r<n.to&&o(e,r,r+1)}}}(n(1719),n(9754))},2504:(e,t)=>{\"use strict\";t.byteLength=function(e){var t=l(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,o=l(e),a=o[0],s=o[1],u=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),c=0,p=s>0?a-4:a;for(n=0;n<p;n+=4)t=r[e.charCodeAt(n)]<<18|r[e.charCodeAt(n+1)]<<12|r[e.charCodeAt(n+2)]<<6|r[e.charCodeAt(n+3)],u[c++]=t>>16&255,u[c++]=t>>8&255,u[c++]=255&t;2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,u[c++]=255&t);1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,u[c++]=t>>8&255,u[c++]=255&t);return u},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],a=0,s=r-i;a<s;a+=16383)o.push(u(e,a,a+16383>s?s:a+16383));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+\"==\")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+\"=\"));return o.join(\"\")};for(var n=[],r=[],i=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",a=0,s=o.length;a<s;++a)n[a]=o[a],r[o.charCodeAt(a)]=a;function l(e){var t=e.length;if(t%4>0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var n=e.indexOf(\"=\");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,r){for(var i,o,a=[],s=t;s<r;s+=3)i=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(n[(o=i)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join(\"\")}r[\"-\".charCodeAt(0)]=62,r[\"_\".charCodeAt(0)]=63},2700:(e,t,n)=>{\"use strict\";n.r(t)},2829:e=>{\"use strict\";e.exports=function(e,t){for(var n={},r=Object.keys(e),i=Array.isArray(t),o=0;o<r.length;o++){var a=r[o],s=e[a];(i?-1!==t.indexOf(a):t(a,s,e))&&(n[a]=s)}return n}},2928:(e,t,n)=>{\"use strict\";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,i,o,a,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){u=!0,i=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return s}}(e,t)||a(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function i(e){return(i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||a(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function a(e,t){if(e){if(\"string\"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var l=n(7781),u=n(160),c=n(8723),p=n(2829);function d(e){if(\"string\"!=typeof e||1!==e.length)throw new TypeError(\"arrayFormatSeparator must be single character string\")}function f(e,t){return t.encode?t.strict?l(e):encodeURIComponent(e):e}function h(e,t){return t.decode?u(e):e}function g(e){var t=e.indexOf(\"#\");return-1!==t&&(e=e.slice(0,t)),e}function m(e){var t=(e=g(e)).indexOf(\"?\");return-1===t?\"\":e.slice(t+1)}function v(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&\"string\"==typeof e&&\"\"!==e.trim()?e=Number(e):!t.parseBooleans||null===e||\"true\"!==e.toLowerCase()&&\"false\"!==e.toLowerCase()||(e=\"true\"===e.toLowerCase()),e}function E(e,t){d((t=Object.assign({decode:!0,sort:!0,arrayFormat:\"none\",arrayFormatSeparator:\",\",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);var n=function(e){var t;switch(e.arrayFormat){case\"index\":return function(e,n,r){t=/\\[(\\d*)\\]$/.exec(e),e=e.replace(/\\[\\d*\\]$/,\"\"),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case\"bracket\":return function(e,n,r){t=/(\\[\\])$/.exec(e),e=e.replace(/\\[\\]$/,\"\"),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case\"comma\":case\"separator\":return function(t,n,r){var i=\"string\"==typeof n&&n.includes(e.arrayFormatSeparator),o=\"string\"==typeof n&&!i&&h(n,e).includes(e.arrayFormatSeparator);n=o?h(n,e):n;var a=i||o?n.split(e.arrayFormatSeparator).map((function(t){return h(t,e)})):null===n?n:h(n,e);r[t]=a};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),o=Object.create(null);if(\"string\"!=typeof e)return o;if(!(e=e.trim().replace(/^[?#&]/,\"\")))return o;var s,l=function(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=a(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,s=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){l=!0,o=e},f:function(){try{s||null==n.return||n.return()}finally{if(l)throw o}}}}(e.split(\"&\"));try{for(l.s();!(s=l.n()).done;){var u=s.value;if(\"\"!==u){var p=r(c(t.decode?u.replace(/\\+/g,\" \"):u,\"=\"),2),f=p[0],g=p[1];g=void 0===g?null:[\"comma\",\"separator\"].includes(t.arrayFormat)?g:h(g,t),n(h(f,t),g,o)}}}catch(e){l.e(e)}finally{l.f()}for(var m=0,E=Object.keys(o);m<E.length;m++){var y=E[m],b=o[y];if(\"object\"===i(b)&&null!==b)for(var x=0,T=Object.keys(b);x<T.length;x++){var A=T[x];b[A]=v(b[A],t)}else o[y]=v(b,t)}return!1===t.sort?o:(!0===t.sort?Object.keys(o).sort():Object.keys(o).sort(t.sort)).reduce((function(e,t){var n=o[t];return Boolean(n)&&\"object\"===i(n)&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():\"object\"===i(t)?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))}t.extract=m,t.parse=E,t.stringify=function(e,t){if(!e)return\"\";d((t=Object.assign({encode:!0,strict:!0,arrayFormat:\"none\",arrayFormatSeparator:\",\"},t)).arrayFormatSeparator);for(var n=function(n){return t.skipNull&&null==e[n]||t.skipEmptyString&&\"\"===e[n]},r=function(e){switch(e.arrayFormat){case\"index\":return function(t){return function(n,r){var i=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&\"\"===r?n:[].concat(o(n),null===r?[[f(t,e),\"[\",i,\"]\"].join(\"\")]:[[f(t,e),\"[\",f(i,e),\"]=\",f(r,e)].join(\"\")])}};case\"bracket\":return function(t){return function(n,r){return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&\"\"===r?n:[].concat(o(n),null===r?[[f(t,e),\"[]\"].join(\"\")]:[[f(t,e),\"[]=\",f(r,e)].join(\"\")])}};case\"comma\":case\"separator\":return function(t){return function(n,r){return null==r||0===r.length?n:0===n.length?[[f(t,e),\"=\",f(r,e)].join(\"\")]:[[n,f(r,e)].join(e.arrayFormatSeparator)]}};default:return function(t){return function(n,r){return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&\"\"===r?n:[].concat(o(n),null===r?[f(t,e)]:[[f(t,e),\"=\",f(r,e)].join(\"\")])}}}}(t),i={},a=0,s=Object.keys(e);a<s.length;a++){var l=s[a];n(l)||(i[l]=e[l])}var u=Object.keys(i);return!1!==t.sort&&u.sort(t.sort),u.map((function(n){var i=e[n];return void 0===i?\"\":null===i?f(n,t):Array.isArray(i)?i.reduce(r(n),[]).join(\"&\"):f(n,t)+\"=\"+f(i,t)})).filter((function(e){return e.length>0})).join(\"&\")},t.parseUrl=function(e,t){t=Object.assign({decode:!0},t);var n=r(c(e,\"#\"),2),i=n[0],o=n[1];return Object.assign({url:i.split(\"?\")[0]||\"\",query:E(m(e),t)},t&&t.parseFragmentIdentifier&&o?{fragmentIdentifier:h(o,t)}:{})},t.stringifyUrl=function(e,n){n=Object.assign({encode:!0,strict:!0},n);var r=g(e.url).split(\"?\")[0]||\"\",i=t.extract(e.url),o=t.parse(i,{sort:!1}),a=Object.assign(o,e.query),s=t.stringify(a,n);s&&(s=\"?\".concat(s));var l=function(e){var t=\"\",n=e.indexOf(\"#\");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(l=\"#\".concat(f(e.fragmentIdentifier,n))),\"\".concat(r).concat(s).concat(l)},t.pick=function(e,n,r){r=Object.assign({parseFragmentIdentifier:!0},r);var i=t.parseUrl(e,r),o=i.url,a=i.query,s=i.fragmentIdentifier;return t.stringifyUrl({url:o,query:p(a,n),fragmentIdentifier:s},r)},t.exclude=function(e,n,r){var i=Array.isArray(n)?function(e){return!n.includes(e)}:function(e,t){return!n(e,t)};return t.pick(e,i,r)}},2965:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>c});var r=n(7181),i=n(8272),o=n(8285),a=n(8086),s=r.A?r.A.prototype:void 0,l=s?s.toString:void 0;const u=function e(t){if(\"string\"==typeof t)return t;if((0,o.A)(t))return(0,i.A)(t,e)+\"\";if((0,a.A)(t))return l?l.call(t):\"\";var n=t+\"\";return\"0\"==n&&1/t==-1/0?\"-0\":n};const c=function(e){return null==e?\"\":u(e)}},2977:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>d});var r=n(7181),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=r.A?r.A.toStringTag:void 0;const l=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var i=a.call(e);return r&&(t?e[s]=n:delete e[s]),i};var u=Object.prototype.toString;const c=function(e){return u.call(e)};var p=r.A?r.A.toStringTag:void 0;const d=function(e){return null==e?void 0===e?\"[object Undefined]\":\"[object Null]\":p&&p in Object(e)?l(e):c(e)}},2980:function(e){var t;t=function(){\"use strict\";function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function t(e){return e.innerHTML=\"\"}function n(e,n,r,o,s,l){o({event:e,query:n instanceof HTMLInputElement?n.value:n.innerHTML,matches:s.matches,results:s.list.map((function(e){return e.value})),selection:s.list.find((function(t){return e.keyCode===a?t.index===Number(l.getAttribute(i)):\"mousedown\"===e.type?t.index===Number(e.currentTarget.getAttribute(i)):void 0}))}),t(r)}function r(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}var i=\"data-id\",o=\"autoComplete_selected\",a=13,s=function(e){return\"string\"==typeof e?document.querySelector(e):e()},l=function(e){var t=document.createElement(e.element);return t.setAttribute(\"id\",\"autoComplete_list\"),e.container&&e.container(t),e.destination.insertAdjacentElement(e.position,t),t},u=function(e){return\"<span class=\".concat(\"autoComplete_highlighted\",\">\").concat(e,\"</span>\")},c=function(e,t,n){var r=document.createDocumentFragment();t.forEach((function(e,o){var a=document.createElement(n.element),s=t[o].index;a.setAttribute(i,s),a.setAttribute(\"class\",\"autoComplete_result\"),n.content?n.content(e,a):a.innerHTML=e.match||e,r.appendChild(a)})),e.appendChild(r)},p=t;r.prototype=window.Event.prototype;var d={CustomEventWrapper:\"function\"==typeof window.CustomEvent&&window.CustomEvent||r,initElementClosestPolyfill:function(){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(e){var t=this;do{if(t.matches(e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null})}};return function(){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=e.selector,r=void 0===n?\"#autoComplete\":n,i=e.data,o=i.key,a=i.src,u=i.cache,c=void 0===u||u,p=e.query,d=e.trigger,f=(d=void 0===d?{}:d).event,h=void 0===f?[\"input\"]:f,g=d.condition,m=void 0!==g&&g,v=e.searchEngine,E=void 0===v?\"strict\":v,y=e.threshold,b=void 0===y?0:y,x=e.debounce,T=void 0===x?0:x,A=e.resultsList,S=(A=void 0===A?{}:A).render,L=void 0!==S&&S,N=A.container,C=void 0!==N&&N,I=A.destination,_=A.position,R=void 0===_?\"afterend\":_,w=A.element,O=void 0===w?\"ul\":w,D=A.navigation,P=void 0!==D&&D,k=e.sort,M=void 0!==k&&k,F=e.placeHolder,B=e.maxResults,G=void 0===B?5:B,j=e.resultItem,U=(j=void 0===j?{}:j).content,H=void 0!==U&&U,q=j.element,V=void 0===q?\"li\":q,W=e.noResults,z=e.highlight,Q=void 0!==z&&z,X=e.onSelection,$=L?l({container:C,destination:I||s(r),position:R,element:O}):null;this.selector=r,this.data={src:function(){return\"function\"==typeof a?a():a},key:o,cache:c},this.query=p,this.trigger={event:h,condition:m},this.searchEngine=\"loose\"===E?\"loose\":\"function\"==typeof E?E:\"strict\",this.threshold=b,this.debounce=T,this.resultsList={render:L,view:$,navigation:P},this.sort=M,this.placeHolder=F,this.maxResults=G,this.resultItem={content:H,element:V},this.noResults=W,this.highlight=Q,this.onSelection=X,this.init()}return function(t,n,r){n&&e(t.prototype,n)}(t,[{key:\"search\",value:function(e,t){var n=t.toLowerCase();if(\"loose\"===this.searchEngine){e=e.replace(/ /g,\"\");for(var r=[],i=0,o=0;o<n.length;o++){var a=t[o];i<e.length&&n[o]===e[i]&&(a=this.highlight?u(a):a,i++),r.push(a)}return i===e.length&&r.join(\"\")}if(n.includes(e))return e=new RegExp(\"\".concat(e),\"i\").exec(t),this.highlight?t.replace(e,u(e)):t}},{key:\"listMatchedResults\",value:function(e){var t=this;return new Promise((function(n){var r=[];e.filter((function(e,n){function i(i){var o=i?e[i]:e;if(o){var a=\"function\"==typeof t.searchEngine?t.searchEngine(t.queryValue,o):t.search(t.queryValue,o);a&&i?r.push({key:i,index:n,match:a,value:e}):a&&!i&&r.push({index:n,match:a,value:e})}}if(t.data.key){var o=!0,a=!1,s=void 0;try{for(var l,u=t.data.key[Symbol.iterator]();!(o=(l=u.next()).done);o=!0)i(l.value)}catch(i){a=!0,s=i}finally{try{o||null==u.return||u.return()}finally{if(a)throw s}}}else i()}));var i=t.sort?r.sort(t.sort).slice(0,t.maxResults):r.slice(0,t.maxResults);return n({matches:r.length,list:i})}))}},{key:\"ignite\",value:function(){var e=this,t=s(this.selector);function r(r){Promise.resolve(e.data.cache?e.dataStream:e.data.src()).then((function(i){e.dataStream=i,function(r){function i(e,n){t.dispatchEvent(new d.CustomEventWrapper(\"autoComplete\",{bubbles:!0,detail:{event:e,input:s,query:l,matches:n?n.matches:null,results:n?n.list:null},cancelable:!0}))}var s=t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement?t.value.toLowerCase():t.innerHTML.toLowerCase(),l=e.queryValue=e.query&&e.query.manipulate?e.query.manipulate(s):s,u=e.resultsList.render,f=e.trigger.condition?e.trigger.condition(l):l.length>e.threshold&&l.replace(/ /g,\"\").length;if(u){var h=e.resultsList.view;p(h),f?e.listMatchedResults(e.dataStream,r).then((function(s){i(r,s),e.resultsList.render&&(0===s.list.length&&e.noResults?e.noResults():(c(h,s.list,e.resultItem),e.onSelection&&(e.resultsList.navigation?e.resultsList.navigation(r,t,h,e.onSelection,s):function(e,t,r,i){function s(e){d.classList.remove(o),u=1===e?d.nextSibling:d.previousSibling}function l(e){(d=e).classList.add(o)}var u,c=t.childNodes,p=c.length-1,d=void 0;e.onkeydown=function(o){if(0<c.length)switch(o.keyCode){case 38:d?(s(0),l(u||c[p])):l(c[p]);break;case 40:d?(s(1),l(u||c[0])):l(c[0]);break;case a:d&&n(o,e,t,r,i,d)}},c.forEach((function(o){o.onmousedown=function(o){return n(o,e,t,r,i)}}))}(t,h,e.onSelection,s))))})):i(r)}else!u&&f&&e.listMatchedResults(e.dataStream,r).then((function(e){i(r,e)}))}(r)}))}this.placeHolder&&t.setAttribute(\"placeholder\",this.placeHolder),this.trigger.event.forEach((function(n){t.addEventListener(n,function(e,t){var n;return function(){var r=this,i=arguments;clearTimeout(n),n=setTimeout((function(){return e.apply(r,i)}),t)}}((function(e){return r(e)}),e.debounce))}))}},{key:\"init\",value:function(){var e=this;this.data.cache?Promise.resolve(this.data.src()).then((function(t){e.dataStream=t,e.ignite()})):this.ignite(),d.initElementClosestPolyfill()}}]),t}()},e.exports=t()},2984:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e){return function(t,n,r){for(var i=-1,o=Object(t),a=r(t),s=a.length;s--;){var l=a[e?s:++i];if(!1===n(o[l],l,o))break}return t}}()},2990:e=>{function t(n){return e.exports=t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},3001:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>a});var r=n(4603);const i=(0,n(5067).A)(Object.keys,Object);var o=Object.prototype.hasOwnProperty;const a=function(e){if(!(0,r.A)(e))return i(e);var t=[];for(var n in Object(e))o.call(e,n)&&\"constructor\"!=n&&t.push(n);return t}},3074:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(3653),i=n(7242);const o=function(e,t){return function(n,r){if(null==n)return n;if(!(0,i.A)(n))return e(n,r);for(var o=n.length,a=t?o:-1,s=Object(n);(t?a--:++a<o)&&!1!==r(s[a],a,s););return n}}(r.A)},3111:(e,t,n)=>{\"use strict\";n.d(t,{wc:()=>s,iQ:()=>d,uZ:()=>c,Mg:()=>u,_A:()=>h,nB:()=>p,vy:()=>f});var r=n(9418),i=n(9121),o=n(4758),a=n(5043),s=function(){return(0,o.A)((function e(t){(0,i.A)(this,e),this.namespace=t}),[{key:\"set\",value:function(e,t,n,r){if(a.enabled&&(this.removeExpiredKeys(),e&&void 0!==t)){t.documentElement&&(t=(new XMLSerializer).serializeToString(t.documentElement));try{a.set(e,{namespace:this.namespace,val:t,exp:n,time:(new Date).getTime()/1e3})}catch(e){if(e instanceof Error){var i=e;if(i.quotaExceeded=function(e){var t=!1;if(e)if(e.code)switch(e.code){case 22:t=!0;break;case 1014:\"NS_ERROR_DOM_QUOTA_REACHED\"===e.name&&(t=!0)}else-2147024882===e.number&&(t=!0);return t}(e),!i.quotaExceeded||!r)throw i;r(e)}throw e}}}},{key:\"remove\",value:function(e){a.enabled&&e&&a.remove(e)}},{key:\"removeExpiredKeys\",value:function(){var e=this;a.enabled&&a.each((function(t,n){t&&t.exp&&(new Date).getTime()/1e3-t.time>t.exp&&e.remove(n)}))}},{key:\"removeAll\",value:function(){a.enabled}},{key:\"removeNamespace\",value:function(){var e=this;a.each((function(t,n){t.namespace&&t.namespace===e.namespace&&e.remove(n)}))}},{key:\"get\",value:function(e){if(a.enabled&&e&&(this.removeExpiredKeys(),e)){var t=a.get(e);if(!t)return;return t.val}}}])}();var l=r.A.sanitize;function u(e){if(e&&0==e.trim().indexOf(\"<svg\")){var t=(new DOMParser).parseFromString(e,\"text/xml\").documentElement;t.setAttribute(\"aria-hidden\",\"true\");var n=document.createElement(\"div\");return n.className=\"svgImg\",n.appendChild(t),n}throw new Error(\"No svg string given. Cannot draw\")}function c(e){return'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 '.concat(e.width,\" \").concat(e.height,'\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"').concat(e.svgPathData,'\"></path></svg>')}function p(e,t){if(e)return e.classList?e.classList.contains(t):!!e.className.match(new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\"))}function d(e){if(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(var i=0,o=n;i<o.length;i++){var a=o[i];e.classList?e.classList.add(a):p(e,a)||(e.className+=\" \"+a)}}}function f(e,t){if(e)if(e.classList)e.classList.remove(t);else if(p(e,t)){var n=new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\");e.className=e.className.replace(n,\" \")}}function h(e,t){return\"function\"==typeof e?e(t):\"string\"==typeof e?l(e):e}},3142:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>xe});var r={};n.r(r),n.d(r,{executeQuery:()=>N,getAcceptHeader:()=>I,getAjaxConfig:()=>L,getAsCurlString:()=>_,getUrlArguments:()=>C});var i=n(9121),o=n(4758),a=n(365),s=n(8782),l=n(9604),u=n(1719),c=n.n(u);function p(e,t,n){return n||(n=e.getDoc().getCursor()),t||(t=e.getTokenAt(n)),function e(t,n,r){if(n.string.indexOf(\" \")>=0){var i=n.string.indexOf(\" \");return n.string=n.string.substr(0,i),n.end=n.start+n.string.length,n}if(!n.type)return n;var o=t.getTokenAt({line:r.line,ch:n.end+1});return\"ws\"!==o.type&&n.state.possibleFullIri&&null!==n.type&&\"ws\"!==n.type&&o.end!==n.end?(n.end=o.end,n.string=n.string+o.string,e(t,n,{line:r.line,ch:o.end})):\"ws\"===n.type?(n.end=n.end+1,n.string=n.string.substring(n.string.length-1),n):n}(e,function e(t,n,r){var i=t.getTokenAt({line:r.line,ch:n.start});if(!(\"punc\"!==n.type&&\"error\"!==n.type||n.state.possibleFullIri||n.state.inPrefixDecl))return n.state.possibleCurrent=n.state.possibleNext,n;if(\"punc\"===i.type&&!i.state.possibleFullIri&&!i.state.inPrefixDecl)return n;return null!=i.type&&\"ws\"!=i.type&&null!=n.type&&\"ws\"!=n.type?(n.start=i.start,n.string=i.string+n.string,e(t,n,{line:r.line,ch:i.start})):null!=n.type&&\"ws\"==n.type?(n.start=n.start+1,n.string=n.string.substring(1),n):n}(e,t,n),n)}function d(e,t,n){null==n&&(n=1);var r=e.getTokenAt({line:t,ch:n});if(!(null==r||null==r||r.end<n))return\"ws\"==r.type?d(e,t,r.end+1):r}function f(e){for(var t=e.getDoc().lastLine(),n=0;n<=t;++n){var r=h(e,n);if(null!=r&&r>=0)return n}}function h(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0;r||(r=e.getDoc().getLine(t));var i=(r=r.toUpperCase()).indexOf(\"PREFIX \",n);if(i>=0){var o=e.getTokenTypeAt(c().Pos(t,i+1));if(\"keyword\"===o)return i}}function g(e,t){e.getDoc().replaceRange(\"PREFIX \"+t+\"\\n\",{line:0,ch:0}),e.collapsePrefixes(!1)}var m=n(3111),v=n(2928);function E(e,t,n){var r;t.onmouseover=function(){r||((r=document.createElement(\"div\")).className=\"yasqe_tooltip\"),r.style.display=\"block\",r.innerHTML=n,t.appendChild(r)},t.onmouseout=function(){r&&(r.style.display=\"none\"),r.innerHTML=n}}var y=n(232),b=n.n(y),x=n(9790),T=n(7440),A=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};function S(e,t){return(0,x.A)(t)?t(e):null!=t?t:{}}function L(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(0,T.A)({},S(e,e.config.requestConfig),S(e,t));if(n.endpoint&&0!=n.endpoint.length){var r=e.getQueryMode(),i=(0,x.A)(n.endpoint)?n.endpoint(e):n.endpoint,o=\"update\"==r?\"POST\":(0,x.A)(n.method)?n.method(e):n.method,a=(0,x.A)(n.headers)?n.headers(e):n.headers,s=(0,x.A)(n.withCredentials)?n.withCredentials(e):n.withCredentials;return{reqMethod:o,url:i,args:C(e,n),headers:a,accept:I(e,n),withCredentials:s}}}function N(e,t){return A(this,void 0,void 0,b().mark((function n(){var r,i,o,a,s,l,u,c,p,d,f,h,g,m,v,E,y,x,T,A,S,N;return b().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(r=Date.now(),n.prev=1,e.emit(\"queryBefore\",e,t),i=L(e,t)){n.next=2;break}return n.abrupt(\"return\");case 2:o=new AbortController,(null==(a={method:i.reqMethod,headers:Object.assign({Accept:i.accept},i.headers||{}),credentials:i.withCredentials?\"include\":\"same-origin\",signal:o.signal})?void 0:a.headers)&&\"POST\"===i.reqMethod&&(a.headers[\"Content-Type\"]=\"application/x-www-form-urlencoded\"),s=new URLSearchParams,l=b().mark((function e(t){var n;return b().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=i.args[t],Array.isArray(n)?n.forEach((function(e){return s.append(t,e)})):s.append(t,n);case 1:case\"end\":return e.stop()}}),e)})),h=b().keys(i.args);case 3:if((g=h()).done){n.next=5;break}return u=g.value,n.delegateYield(l(u),\"t0\",4);case 4:n.next=3;break;case 5:return\"POST\"===i.reqMethod?a.body=s.toString():(c=new URL(i.url),s.forEach((function(e,t){c.searchParams.append(t,e)})),i.url=c.toString()),p=new Request(i.url,a),e.emit(\"query\",p,o),n.next=6,fetch(p);case 6:if((d=n.sent).ok){n.next=9;break}return m=Error,n.next=7,d.text();case 7:if(v=n.sent){n.next=8;break}v=d.statusText;case 8:throw new m(v);case 9:return E=d.ok,y=d.status,x=d.statusText,T=d.headers,A=d.type,n.next=10,d.text();case 10:return S=n.sent,f={ok:E,status:y,statusText:x,headers:T,type:A,content:S},e.emit(\"queryResponse\",f,Date.now()-r),e.emit(\"queryResults\",f.content,Date.now()-r),n.abrupt(\"return\",f);case 11:throw n.prev=11,(N=n.catch(1))instanceof Error&&\"Aborted\"===N.message||e.emit(\"queryResponse\",N,Date.now()-r),e.emit(\"error\",N),N;case 12:case\"end\":return n.stop()}}),n,null,[[1,11]])})))}function C(e,t){var n=e.getQueryMode(),r={},i=S(e,t),o=(0,x.A)(i.queryArgument)?i.queryArgument(e):i.queryArgument;o||(o=e.getQueryMode()),r[o]=i.adjustQueryBeforeRequest?i.adjustQueryBeforeRequest(e):e.getValue();var a=(0,x.A)(i.namedGraphs)?i.namedGraphs(e):i.namedGraphs;a&&a.length>0&&(r[\"query\"===n?\"named-graph-uri\":\"using-named-graph-uri \"]=a);var s=(0,x.A)(i.defaultGraphs)?i.defaultGraphs(e):i.defaultGraphs;s&&s.length>0&&(r[\"query\"==n?\"default-graph-uri\":\"using-graph-uri \"]=a);var l=(0,x.A)(i.args)?i.args(e):i.args;return l&&l.length>0&&(0,T.A)(r,l.reduce((function(e,t){return e[t.name]?e[t.name].push(t.value):e[t.name]=[t.value],e}),{})),r}function I(e,t){var n=S(e,t),r=null;if(\"update\"==e.getQueryMode())r=(0,x.A)(n.acceptHeaderUpdate)?n.acceptHeaderUpdate(e):n.acceptHeaderUpdate;else{var i=e.getQueryType();r=\"DESCRIBE\"==i||\"CONSTRUCT\"==i?(0,x.A)(n.acceptHeaderGraph)?n.acceptHeaderGraph(e):n.acceptHeaderGraph:(0,x.A)(n.acceptHeaderSelect)?n.acceptHeaderSelect(e):n.acceptHeaderSelect}return r}function _(e,t){var n=L(e,S(e,t));if(!n)return\"\";var r=n.url;0!==n.url.indexOf(\"http\")&&(r=\"\".concat(window.location.protocol,\"//\").concat(window.location.host),0===n.url.indexOf(\"/\")?r+=n.url:r+=window.location.pathname+n.url);var i=[\"curl\"];for(var o in\"GET\"===n.reqMethod?(r+=\"?\".concat(v.stringify(n.args)),i.push(r)):\"POST\"===n.reqMethod?(i.push(r),i.push(\"--data\",v.stringify(n.args))):(console.warn(\"Unexpected request-method\",n.reqMethod),i.push(r)),i.push(\"-X\",n.reqMethod),n.headers)i.push(\"-H  '\".concat(o,\": \").concat(n.headers[o],\"'\"));return i.join(\" \")}var R='<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 66.399998 66.399998\"><g><path d=\"M33.2 0C14.9 0 0 14.9 0 33.2c0 18.3 14.9 33.2 33.2 33.2 18.3 0 33.2-14.9 33.2-33.2C66.4 14.9 51.5 0 33.2 0zm0 59.4C18.7 59.4 7 47.6 7 33.2 7 18.7 18.8 7 33.2 7c14.4 0 26.2 11.8 26.2 26.2 0 14.4-11.8 26.2-26.2 26.2z\"/><path d=\"M33.1 45.6c-1.4 0-2.5.5-3.5 1.5-.9 1-1.4 2.2-1.4 3.6 0 1.6.5 2.8 1.5 3.8 1 .9 2.1 1.3 3.4 1.3 1.3 0 2.4-.5 3.4-1.4 1-.9 1.5-2.2 1.5-3.7 0-1.4-.5-2.6-1.4-3.6-.9-1-2.1-1.5-3.5-1.5zM33.3 12.4c-1.5 0-2.8.5-3.7 1.6-.9 1-1.4 2.4-1.4 4.2 0 1.1.1 2.9.2 5.6l.8 13.1c.2 1.8.4 3.2.9 4.1.5 1.2 1.5 1.8 2.9 1.8 1.3 0 2.3-.7 2.9-1.9.5-1 .7-2.3.9-4l1.1-13.4c.1-1.3.2-2.5.2-3.8 0-2.2-.3-3.9-.8-5.1-.5-1-1.6-2.2-4-2.2z\"/></g></svg>',w=function(){function e(){(0,i.A)(this,e),this.words=0,this.prefixes=0,this.children={}}return(0,o.A)(e,[{key:\"insert\",value:function(t,n){if(0!=t.length){var r,i=this;void 0===n&&(n=0),n!==t.length?(i.prefixes++,r=t[n],void 0===i.children[r]&&(i.children[r]=new e),i.children[r].insert(t,n+1)):i.words++}}},{key:\"remove\",value:function(e,t){if(0!=e.length){var n,r=this;void 0===t&&(t=0),void 0!==r&&(t!==e.length?(r.prefixes--,n=e[t],r.children[n].remove(e,t+1)):r.words--)}}},{key:\"update\",value:function(e,t){0!=e.length&&0!=t.length&&(this.remove(e),this.insert(t))}},{key:\"countWord\",value:function(e,t){if(0==e.length)return 0;var n,r,i=0;return void 0===t&&(t=0),t===e.length?this.words:(n=e[t],void 0!==(r=this.children[n])&&(i=r.countWord(e,t+1)),i)}},{key:\"countPrefix\",value:function(e,t){if(0==e.length)return 0;var n,r=0;if(void 0===t&&(t=0),t===e.length)return this.prefixes;var i=e[t];return void 0!==(n=this.children[i])&&(r=n.countPrefix(e,t+1)),r}},{key:\"find\",value:function(e){return 0!=e.length&&this.countWord(e)>0}},{key:\"getAllWords\",value:function(e){var t,n,r=this,i=[];if(void 0===e&&(e=\"\"),void 0===r)return[];for(t in r.words>0&&i.push(e),r.children)r.children.hasOwnProperty(t)&&(n=r.children[t],i=i.concat(n.getAllWords(e+t)));return i}},{key:\"autoComplete\",value:function(e,t){var n,r;return 0==e.length?void 0===t?this.getAllWords(e):[]:(void 0===t&&(t=0),n=e[t],void 0===(r=this.children[n])?[]:t===e.length-1?r.getAllWords(e):r.autoComplete(e,t+1))}}])}(),O=n(4785);const D=function(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r<i;)o[r]=e[r+t];return o};var P=n(4801);const k=function(e,t,n){return e&&e.length?(t=n||void 0===t?1:(0,P.A)(t),D(e,0,t<0?0:t)):[]};const M={name:\"variables\",isValidCompletionPosition:function(e){var t=e.getTokenAt(e.getDoc().getCursor());return!(\"ws\"==t.type||!(t=e.getCompleteToken(t))||\"?\"!==t.string[0]&&\"$\"!==t.string[0])},get:function(e,t){if(!t||0==t.string.length)return[];for(var n={},r=[],i=e.getWrapperElement().querySelectorAll(\".cm-atom\"),o=0;o<i.length;o++){var a=i[o],s=a.innerHTML;if(\"?\"===s[0]||\"$\"===s[0]){var l=a.nextSibling;if(l&&l.className&&l.className.indexOf(\"cm-atom\")>=0&&(s+=l.innerText),n[s])continue;if(s.length<=1)continue;if(0!==s.indexOf(t.string))continue;if(s===t.string)continue;n[s]=!0,r.push(s)}}return r.sort()},bulk:!1,autoShow:!0};var F=n(4560),B=n(8272),G=n(6074),j=n(5955),U=n(3074),H=n(7242);const q=function(e,t){var n=-1,r=(0,H.A)(e)?Array(e.length):[];return(0,U.A)(e,(function(e,i,o){r[++n]=t(e,i,o)})),r};const V=function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e};var W=n(9161),z=n(8086);const Q=function(e,t){if(e!==t){var n=void 0!==e,r=null===e,i=e==e,o=(0,z.A)(e),a=void 0!==t,s=null===t,l=t==t,u=(0,z.A)(t);if(!s&&!u&&!o&&e>t||o&&a&&l&&!s&&!u||r&&a&&l||!n&&l||!i)return 1;if(!r&&!o&&!u&&e<t||u&&n&&i&&!r&&!o||s&&n&&i||!a&&i||!l)return-1}return 0};const X=function(e,t,n){for(var r=-1,i=e.criteria,o=t.criteria,a=i.length,s=n.length;++r<a;){var l=Q(i[r],o[r]);if(l)return r>=s?l:l*(\"desc\"==n[r]?-1:1)}return e.index-t.index};var $=n(1100),Y=n(8285);const K=function(e,t,n){t=t.length?(0,B.A)(t,(function(e){return(0,Y.A)(e)?function(t){return(0,G.A)(t,1===e.length?e[0]:e)}:e})):[$.A];var r=-1;t=(0,B.A)(t,(0,W.A)(j.A));var i=q(e,(function(e,n,i){return{criteria:(0,B.A)(t,(function(t){return t(e)})),index:++r,value:e}}));return V(i,(function(e,t){return X(e,t,n)}))};var J=n(5186),Z=n(6988);const ee=(0,J.A)((function(e,t){if(null==e)return[];var n=t.length;return n>1&&(0,Z.A)(e,t[0],t[1])?t=[]:n>2&&(0,Z.A)(t[0],t[1],t[2])&&(t=[t[0]]),K(e,(0,F.A)(t,1),[])}));var te={\"string-2\":\"prefixed\",atom:\"var\"};const ne={postprocessHints:function(e,t){return ee(t,(function(e){return e.text.split(\":\")[0]}))},onInitialize:function(e){var t=this;e.on(\"change\",(function(){var n;if(e.config.autocompleters&&-1!=e.config.autocompleters.indexOf(t.name)){var r=e.getDoc().getCursor(),i=e.getTokenAt(r);if(i.type&&\"prefixed\"==te[i.type]){var o=i.string.indexOf(\":\");if(-1!==o){var a=e.getPreviousNonWsToken(r.line,i).string.toUpperCase(),s=e.getTokenAt({line:r.line,ch:i.start});if(\"PREFIX\"!==a&&(\"ws\"==s.type||null==s.type||\"punc\"===s.type&&(\"|\"===s.string||\"/\"===s.string||\"^^\"==s.string||\"{\"==s.string||\"(\"===s.string))){var l=i.string.substring(0,o+1);null==e.getPrefixesFromQuery()[l.slice(0,-1)]&&(i.autocompletionString=l,null===(n=e.autocompleters[t.name])||void 0===n||n.getCompletions(i).then((function(t){t.length&&(e.addPrefixes(t[0]),e.autocomplete())}),console.warn))}}}}}))},isValidCompletionPosition:function(e){var t=e.getDoc().getCursor(),n=e.getTokenAt(t);if(e.getDoc().getLine(t.line).length>t.ch)return!1;if(\"ws\"!=n.type&&(n=e.getCompleteToken()),0!==n.string.indexOf(\"a\")&&n.state.possibleCurrent.indexOf(\"PNAME_NS\")<0)return!1;var r=e.getPreviousNonWsToken(t.line,n);return!(!r||\"PREFIX\"!=r.string.toUpperCase())},get:function(e){return fetch(e.config.prefixCcApi).then((function(e){if(!e.ok)throw new Error(\"Failed to fetch prefixes\");return e.json()})).then((function(e){var t=[];for(var n in e){var r=\"\".concat(n,\": <\").concat(e[n],\">\");t.push(r)}return t.sort()}))},preProcessToken:function(e,t){var n=e.getPreviousNonWsToken(e.getDoc().getCursor().line,t);return n&&n.string&&\":\"==n.string.slice(-1)&&(t={start:n.start,end:t.end,string:n.string+\" \"+t.string,state:t.state,type:t.type}),t},bulk:!0,autoShow:!0,persistenceId:\"prefixes\",name:\"prefixes\"};const re={onInitialize:function(e){},get:function(e,t){return de(e,\"property\",t)},isValidCompletionPosition:function(e){var t=e.getCompleteToken();return 0!=t.string.length&&(\"?\"!==t.string[0]&&\"$\"!==t.string[0]&&t.state.possibleCurrent.indexOf(\"a\")>=0)},preProcessToken:function(e,t){return ce(e,t)},postProcessSuggestion:function(e,t,n){return pe(e,t,n)},bulk:!1,name:\"property\"};const ie={onInitialize:function(e){},get:function(e,t){return de(e,\"class\",t)},isValidCompletionPosition:function(e){var t=e.getCompleteToken();if(\"?\"===t.string[0]||\"$\"===t.string[0])return!1;var n=e.getDoc().getCursor(),r=e.getPreviousNonWsToken(n.line,t);return\"a\"===r.state.lastProperty||(\"rdf:type\"===r.state.lastProperty||(\"rdfs:domain\"===r.state.lastProperty||\"rdfs:range\"===r.state.lastProperty))},preProcessToken:function(e,t){return ce(e,t)},postProcessSuggestion:function(e,t,n){return pe(e,t,n)},bulk:!1,name:\"class\"};function oe(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return ae(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ae(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function se(e,t,n){return t=(0,s.A)(t),(0,a.A)(e,function(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return function(){return!!e}()}()?Reflect.construct(t,n||[],(0,s.A)(e).constructor):t.apply(e,n))}var le=n(1719);n(991);var ue=function(e){function t(e,n){var r;return(0,i.A)(this,t),(r=se(this,t)).yasqe=e,r.config=n,r}return(0,l.A)(t,e),(0,o.A)(t,[{key:\"getStorageId\",value:function(){return this.yasqe.getStorageId(this.config.persistenceId)}},{key:\"storeBulkCompletions\",value:function(e){if(e&&e instanceof Array){this.trie=new w;var t,n=oe(e);try{for(n.s();!(t=n.n()).done;){var r=t.value;this.trie.insert(r)}}catch(e){n.e(e)}finally{n.f()}var i=this.getStorageId();i&&this.yasqe.storage.set(i,e,2592e3,this.yasqe.handleLocalStorageQuotaFull)}}},{key:\"getCompletions\",value:function(e){if(!this.config.get)return Promise.resolve([]);if(!e)return this.config.get instanceof Array?Promise.resolve(this.config.get):Promise.resolve(this.config.get(this.yasqe)).then((function(e){return e instanceof Array?e:[]}));var t=e.autocompletionString||e.string;return this.trie?Promise.resolve(k(this.trie.autoComplete(t),100)):this.config.get instanceof Array?Promise.resolve(this.config.get.filter((function(e){return 0===e.indexOf(t)}))):Promise.resolve(this.config.get(this.yasqe,e)).then((function(e){return e instanceof Array?e:[]}))}},{key:\"initialize\",value:function(){var e=this;if(this.config.onInitialize&&this.config.onInitialize(this.yasqe),this.config.bulk){if(this.config.get instanceof Array)return this.storeBulkCompletions(this.config.get),Promise.resolve();var t,n=this.getStorageId();return n&&(t=this.yasqe.storage.get(n)),t&&t.length>0?(this.storeBulkCompletions(t),Promise.resolve()):this.getCompletions().then((function(t){return e.storeBulkCompletions(t)}))}return Promise.resolve()}},{key:\"isValidPosition\",value:function(){return!!this.config.isValidCompletionPosition&&(this.config.isValidCompletionPosition(this.yasqe)?(this.config.autoShow||this.yasqe.showNotification(this.config.name,\"Press CTRL - <spacebar> to autocomplete\"),this.emit(\"validPosition\",this),!0):(this.emit(\"invalidPosition\",this),this.yasqe.hideNotification(this.config.name),!1))}},{key:\"getHint\",value:function(e,t){var n,r;this.config.postProcessSuggestion&&(t=this.config.postProcessSuggestion(this.yasqe,e,t));var i=this.yasqe.getDoc().getCursor();e.from&&(r=Object.assign(Object.assign({},i),e.from));var o=this.yasqe.getDoc().getCursor().line;return{text:t,displayText:t,from:r,to:e.to?{ch:(null===(n=null==e?void 0:e.to)||void 0===n?void 0:n.ch)||this.yasqe.getCompleteToken().end,line:o}:e.string.length>0?{ch:this.yasqe.getCompleteToken().end,line:o}:e.from}}},{key:\"getHints\",value:function(e){var t=this;return this.config.preProcessToken&&(e=this.config.preProcessToken(this.yasqe,e)),e?this.getCompletions(e).then((function(n){return n.map((function(n){return t.getHint(e,n)}))})).then((function(e){return t.config.postprocessHints?t.config.postprocessHints(t.yasqe,e):e})):Promise.resolve([])}},{key:\"autocomplete\",value:function(e){var t=this;if(!this.isValidPosition())return!1;var n=this.yasqe.state.completionActive,r=this.yasqe.getDoc().getCursor();if(n&&r.sticky&&r.ch!==n.startPos.ch?this.yasqe.state.completionActive.startPos=r:n&&!r.sticky&&r.ch<n.startPos.ch&&(r.sticky=n.startPos.sticky,this.yasqe.state.completionActive.startPos.ch=r.ch,this.yasqe.state.completionActive.startLen--),e&&(!this.config.autoShow||this.yasqe.state.completionActive))return!1;var i=function(){return t.getHints(t.yasqe.getCompleteToken()).then((function(e){var n=t.yasqe.getDoc().getCursor(),r=t.yasqe.getCompleteToken(),i={list:e,from:{line:n.line,ch:r.start},to:{line:n.line,ch:r.end}};return le.on(i,\"shown\",(function(){t.yasqe.emit(\"autocompletionShown\",t.yasqe.state.completionActive.widget)})),le.on(i,\"close\",(function(){t.yasqe.emit(\"autocompletionClose\")})),i}))};i.async=!1;var o=Object.assign({closeCharacters:/[\\s>\"]/,completeSingle:!1,hint:i,container:this.yasqe.rootEl,extraKeys:{Home:function(e,t){e.getDoc().setCursor({ch:0,line:t.data.from.line})},End:function(e,t){e.getDoc().setCursor({ch:e.getLine(t.data.to.line).length,line:t.data.to.line})}}},this.yasqe.config.hintConfig);return this.yasqe.showHint(o),!0}}])}(O.EventEmitter);function ce(e,t){var n=e.getPrefixesFromQuery(),r=t.string;if(r.indexOf(\"<\")<0&&(t.tokenPrefix=r.substring(0,r.indexOf(\":\")+1),null!=n[t.tokenPrefix.slice(0,-1)]&&(t.tokenPrefixUri=n[t.tokenPrefix.slice(0,-1)])),t.autocompletionString=r.trim(),r.indexOf(\"<\")<0&&r.indexOf(\":\")>-1)for(var i in n)if(t.tokenPrefix===i+\":\"){t.autocompletionString=n[i],t.autocompletionString+=r.substring(i.length+1);break}return 0==t.autocompletionString.indexOf(\"<\")&&(t.autocompletionString=t.autocompletionString.substring(1)),t.autocompletionString.indexOf(\">\",t.autocompletionString.length-1)>0&&(t.autocompletionString=t.autocompletionString.substring(0,t.autocompletionString.length-1)),t}function pe(e,t,n){return n=t.tokenPrefix&&t.autocompletionString&&t.tokenPrefixUri?t.tokenPrefix+n.substring(t.tokenPrefixUri.length):\"<\"+n+\">\"}var de=function(e,t,n){var r=0===window.location.protocol.indexOf(\"http\")?\"https://\":\"http://\",i=\"autocomplete_\"+t;if(!n||!n.string||0==n.string.trim().length)return e.showNotification(i,\"Nothing to autocomplete yet!\"),Promise.resolve([]);var o=new URLSearchParams;n.autocompletionString&&o.append(\"q\",n.autocompletionString),o.append(\"page_size\",\"50\"),o.append(\"type\",t);var a=\"\".concat(r,\"lov.linkeddata.es/dataset/lov/api/v2/autocomplete/terms?\").concat(o.toString());return fetch(a).then((function(e){if(!e.ok)throw new Error(\"Failed fetching suggestions from Linked Open Vocabularies\");return e.json()})).then((function(e){return e.results?e.results.map((function(e){return e.uri[0]})):[]})).catch((function(t){e.showNotification(i,\"Failed fetching suggestions\")}))},fe=[M,ne,re,ie],he=n(6691);var ge=n(1719);n(9754),n(2448),n(7623),n(666),n(5397),n(404),n(9082),n(8709),n(7899),n(3475),n(4182),n(6824),ge.registerHelper(\"fold\",\"prefix\",(function(e,t){var n=t.line,r=e.getDoc().getLine(n),i=function(t,n){var r=e.getTokenAt(c().Pos(t,n+1));if(!r||\"keyword\"!=r.type)return-1;var i=d(e,t,r.end+1);if(!i||\"string-2\"!=i.type)return-1;var o=d(e,t,i.end+1);return o&&\"variable-3\"==o.type?o.end:-1};if(!function(){for(var t=!1,r=n-1;r>=0;r--)if(e.getDoc().getLine(r).toUpperCase().indexOf(\"PREFIX \")>=0){t=!0;break}return t}()){var o=h(e,n,t.ch,r);if(null!=o){for(var a,s=!1,l=e.getDoc().lastLine(),u=i(n,o),p=n,f=n;f<=l&&!s;++f)for(var g=e.getDoc().getLine(f),m=f==n?o+1:0;;){!s&&g.indexOf(\"{\")>=0&&(s=!0);var v=g.toUpperCase().indexOf(\"PREFIX \",m);if(!(v>=0))break;(a=i(f,v))>0&&(p=f,m=u=a),m++}return{from:c().Pos(n,o+\"PREFIX \".length),to:c().Pos(p,u)}}}})),ge.defineMode(\"sparql11\",(function(e){var t=n(5406),r=t.table,i=\"[0-9A-Fa-f]\",o=\"(([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD])(((([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|-|[0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]))|\\\\.)*(([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|-|[0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040])))?)?:\",a=\"[eE][\\\\+-]?[0-9]+\",s=\"[0-9]*\\\\.[0-9]+\",l=\"(([0-9]+\\\\.[0-9]*\"+a+\")|(\\\\.[0-9]+\"+a+\")|([0-9]+\"+a+\"))\",u=\"\\\\\\\\[tbnrf\\\\\\\\\\\"']\",c=i+\"{4}\",p=\"(\\\\\\\\u\"+c+\"|\\\\\\\\U00(10|0\"+i+\")\"+c+\")\",d={SINGLE:{CAT:\"STRING_LITERAL_LONG1\",QUOTES:\"'''\",CONTENTS:\"(('|'')?([^'\\\\\\\\]|\"+u+\"|\"+p+\"))*\"},DOUBLE:{CAT:\"STRING_LITERAL_LONG2\",QUOTES:'\"\"\"',CONTENTS:'((\"|\"\")?([^\"\\\\\\\\]|'+u+\"|\"+p+\"))*\"}};for(var f in d)d[f].COMPLETE=d[f].QUOTES+d[f].CONTENTS+d[f].QUOTES;var h={};for(var g in d)h[g]={complete:{name:\"STRING_LITERAL_LONG_\"+g,regex:new RegExp(\"^\"+d[g].COMPLETE),style:\"string\"},contents:{name:\"STRING_LITERAL_LONG_\"+g,regex:new RegExp(\"^\"+d[g].CONTENTS),style:\"string\"},closing:{name:\"STRING_LITERAL_LONG_\"+g,regex:new RegExp(\"^\"+d[g].CONTENTS+d[g].QUOTES),style:\"string\"},quotes:{name:\"STRING_LITERAL_LONG_QUOTES_\"+g,regex:new RegExp(\"^\"+d[g].QUOTES),style:\"string\"}};var m=\"[\\\\x20\\\\x09\\\\x0D\\\\x0A]\",v=\"#([^\\\\n\\\\r]*[\\\\n\\\\r]|[^\\\\n\\\\r]*$)\",E=[{name:\"WS\",regex:new RegExp(\"^\"+m+\"+\"),style:\"ws\"},{name:\"COMMENT\",regex:new RegExp(\"^\"+v),style:\"comment\"},{name:\"IRI_REF\",regex:new RegExp('^<[^<>\"`|{}^\\\\\\0- ]*>'),style:\"variable-3\"},{name:\"VAR1\",regex:new RegExp(\"^\\\\?([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|[0-9])([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|[0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040])*\"),style:\"atom\"},{name:\"VAR2\",regex:new RegExp(\"^\\\\$([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|[0-9])([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|[0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040])*\"),style:\"atom\"},{name:\"LANGTAG\",regex:new RegExp(\"^@[a-zA-Z]+(-[a-zA-Z0-9]+)*\"),style:\"meta\"},{name:\"DOUBLE\",regex:new RegExp(\"^\"+l),style:\"number\"},{name:\"DECIMAL\",regex:new RegExp(\"^\"+s),style:\"number\"},{name:\"INTEGER\",regex:new RegExp(\"^[0-9]+\"),style:\"number\"},{name:\"DOUBLE_POSITIVE\",regex:new RegExp(\"^\\\\+(([0-9]+\\\\.[0-9]*[eE][\\\\+-]?[0-9]+)|(\\\\.[0-9]+[eE][\\\\+-]?[0-9]+)|([0-9]+[eE][\\\\+-]?[0-9]+))\"),style:\"number\"},{name:\"DECIMAL_POSITIVE\",regex:new RegExp(\"^\\\\+[0-9]*\\\\.[0-9]+\"),style:\"number\"},{name:\"INTEGER_POSITIVE\",regex:new RegExp(\"^\\\\+[0-9]+\"),style:\"number\"},{name:\"DOUBLE_NEGATIVE\",regex:new RegExp(\"^-(([0-9]+\\\\.[0-9]*[eE][\\\\+-]?[0-9]+)|(\\\\.[0-9]+[eE][\\\\+-]?[0-9]+)|([0-9]+[eE][\\\\+-]?[0-9]+))\"),style:\"number\"},{name:\"DECIMAL_NEGATIVE\",regex:new RegExp(\"^-[0-9]*\\\\.[0-9]+\"),style:\"number\"},{name:\"INTEGER_NEGATIVE\",regex:new RegExp(\"^-[0-9]+\"),style:\"number\"},{name:\"STRING_LITERAL1\",regex:new RegExp(\"^'(([^\\\\x27\\\\x5C\\\\x0A\\\\x0D])|\\\\\\\\[tbnrf\\\\\\\\\\\"']|(\\\\\\\\u[0-9A-Fa-f]{4}|\\\\\\\\U00(10|0[0-9A-Fa-f])[0-9A-Fa-f]{4}))*'\"),style:\"string\"},{name:\"STRING_LITERAL2\",regex:new RegExp('^\"(([^\\\\x22\\\\x5C\\\\x0A\\\\x0D])|\\\\\\\\[tbnrf\\\\\\\\\"\\']|(\\\\\\\\u[0-9A-Fa-f]{4}|\\\\\\\\U00(10|0[0-9A-Fa-f])[0-9A-Fa-f]{4}))*\"'),style:\"string\"},{name:\"NIL\",regex:new RegExp(\"^\\\\(([\\\\x20\\\\x09\\\\x0D\\\\x0A]|(#([^\\\\n\\\\r]*[\\\\n\\\\r]|[^\\\\n\\\\r]*$)))*\\\\)\"),style:\"punc\"},{name:\"ANON\",regex:new RegExp(\"^\\\\[([\\\\x20\\\\x09\\\\x0D\\\\x0A]|(#([^\\\\n\\\\r]*[\\\\n\\\\r]|[^\\\\n\\\\r]*$)))*\\\\]\"),style:\"punc\"},{name:\"PNAME_LN\",regex:new RegExp(\"^(([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD])(((([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|-|[0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]))|\\\\.)*(([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|-|[0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040])))?)?:([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|:|[0-9]|((%[0-9A-Fa-f][0-9A-Fa-f])|(\\\\\\\\[_~\\\\.\\\\-!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=/\\\\?#@%])))((([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|-|[0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040])|\\\\.|:|((%[0-9A-Fa-f][0-9A-Fa-f])|(\\\\\\\\[_~\\\\.\\\\-!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=/\\\\?#@%])))*(([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|-|[0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040])|:|((%[0-9A-Fa-f][0-9A-Fa-f])|(\\\\\\\\[_~\\\\.\\\\-!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=/\\\\?#@%]))))?\"),style:\"string-2\"},{name:\"PNAME_NS\",regex:new RegExp(\"^\"+o),style:\"string-2\"},{name:\"BLANK_NODE_LABEL\",regex:new RegExp(\"^_:([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|[0-9])((([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|-|[0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040])|\\\\.)*([A-Za-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD]|_|-|[0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]))?\"),style:\"string-2\"}];function y(e){var t=[],n=r[e];if(null!=n)for(var i in n)t.push(i.toString());else t.push(e);return t}function b(e,n){function i(){var t=e.column();n.errorStartPos=t,n.errorEndPos=t+l.string.length}function o(e){if(null==n.queryType)switch(e){case\"SELECT\":case\"CONSTRUCT\":case\"ASK\":case\"DESCRIBE\":case\"INSERT\":case\"DELETE\":case\"LOAD\":case\"CLEAR\":case\"CREATE\":case\"DROP\":case\"COPY\":case\"MOVE\":case\"ADD\":n.queryType=e}}function a(e){switch(n.inPrefixDecl=\"prefixDecl\"===e,e){case\"disallowVars\":n.allowVars=!1;break;case\"allowVars\":n.allowVars=!0;break;case\"disallowBnodes\":n.allowBnodes=!1;break;case\"allowBnodes\":n.allowBnodes=!0;break;case\"storeProperty\":n.storeProperty=!0}}function s(e){return(n.allowVars||\"var\"!=e)&&(n.allowBnodes||\"blankNode\"!=e&&\"blankNodePropertyList\"!=e&&\"blankNodePropertyListPath\"!=e)}0==e.pos&&(n.possibleCurrent=n.possibleNext);var l=function(){var r;if(n.inLiteral){var i=!1;if((r=e.match(h[n.inLiteral].contents.regex,!0,!1))&&0==r[0].length&&(r=e.match(h[n.inLiteral].closing.regex,!0,!1),i=!0),r&&r[0].length>0){var o={quotePos:i?\"end\":\"content\",cat:d[n.inLiteral].CAT,style:h[n.inLiteral].complete.style,string:r[0],start:e.start};return i&&(n.inLiteral=void 0),o}}for(var a in h){var s;if(r=e.match(h[a].quotes.regex,!0,!1))return n.inLiteral?(n.inLiteral=void 0,s=\"end\"):(n.inLiteral=a,s=\"start\"),{cat:d[a].CAT,style:h[a].quotes.style,string:r[0],quotePos:s,start:e.start}}for(var l=0;l<E.length;++l)if(r=e.match(E[l].regex,!0,!1))return{cat:E[l].name,style:E[l].style,string:r[0],start:e.start,quotePos:void 0};return(r=e.match(t.keywords,!0,!1))?{cat:e.current().toUpperCase(),style:\"keyword\",string:r[0],start:e.start,quotePos:void 0}:(r=e.match(t.punct,!0,!1))?{cat:e.current(),style:\"punc\",string:r[0],start:e.start,quotePos:void 0}:{cat:\"<invalid_token>\",style:\"error\",string:(r=e.match(/^.[A-Za-z0-9]*/,!0,!1))[0],start:e.start,quotePos:void 0}}();if(\"<invalid_token>\"==l.cat)return 1==n.OK&&(n.OK=!1,i()),n.complete=!1,l.style;if(\"WS\"===l.cat||\"COMMENT\"===l.cat||l.quotePos&&\"end\"!=l.quotePos)return n.possibleCurrent=n.possibleNext,n.possibleFullIri=!1,l.style;var u,c=!1,p=l.cat;if(n.possibleFullIri&&\">\"===l.string&&(n.possibleFullIri=!1),n.possibleFullIri||\"<\"!==l.string||(n.possibleFullIri=!0),!l.quotePos||\"end\"==l.quotePos)for(;n.stack.length>0&&p&&n.OK&&!c;)if(\"var\"===(u=n.stack.pop())&&l.string&&(n.variables[l.string]=l.string),r[u]){var f=r[u][p];if(null!=f&&s(u)){for(var g=f.length-1;g>=0;--g)n.stack.push(f[g]);a(u)}else n.OK=!1,n.complete=!1,i(),n.stack.push(u)}else if(u==p){n.inPrefixDecl&&(\"PNAME_NS\"===u&&l.string.length>0?n.currentPnameNs=l.string.slice(0,-1):\"string\"==typeof n.currentPnameNs&&l.string.length>1&&(n.prefixes[n.currentPnameNs]=l.string.slice(1,-1),n.currentPnameNs=void 0)),c=!0,o(u);for(var m=!0,v=n.stack.length;v>0;--v){var b=r[n.stack[v-1]];b&&b.$||(m=!1)}if(n.complete=m,n.storeProperty&&\"punc\"!=p?(n.lastProperty=l.string,n.lastPropertyIndex=l.start,n.storeProperty=!1):\".\"!==p&&\";\"!==p||(n.lastProperty=\"\",n.lastPropertyIndex=0),!n.inPrefixDecl&&(\"PNAME_NS\"===p||\"PNAME_LN\"===p)){var x=l.string.indexOf(\":\");if(x>=0){var T=l.string.slice(0,x);void 0===n.prefixes[T]&&(n.OK=!1,i(),n.errorMsg=\"Prefix '\"+T+\"' is not defined\")}}}else n.OK=!1,n.complete=!1,i();if(!c&&n.OK&&(n.OK=!1,n.complete=!1,i()),n.possibleNext.indexOf(\"a\")>=0)for(var A=e.string,S=l.start;S>=0;S--)if(\" \"!==A[S-1]){\"|\"===A[S-1]||\"/\"===A[S-1]||\"punc\"===l.style||(n.lastPredicateOffset=l.start);break}return n.possibleCurrent=n.possibleNext,n.possibleNext=y(n.stack[n.stack.length-1]),l.style}var x={\"*[,, object]\":3,\"*[(,),object]\":3,\"*[(,),objectPath]\":3,\"*[/,pathEltOrInverse]\":2,object:2,objectPath:2,objectList:2,objectListPath:2,storeProperty:2,pathMod:2,\"?pathMod\":2,propertyListNotEmpty:1,propertyList:1,propertyListPath:1,propertyListPathNotEmpty:1,\"?[verb,objectList]\":1},T={\"}\":1,\"]\":1,\")\":1,\"{\":-1,\"(\":-1,\"[\":-1};return{token:b,startState:function(){return{tokenize:b,OK:!0,complete:t.acceptEmpty,errorStartPos:void 0,errorEndPos:void 0,queryType:void 0,possibleCurrent:y(t.startSymbol),possibleNext:y(t.startSymbol),allowVars:!0,allowBnodes:!0,storeProperty:!1,lastProperty:\"\",lastPropertyIndex:0,inLiteral:void 0,stack:[t.startSymbol],lastPredicateOffset:e.indentUnit||2,prefixes:{},variables:{},currentPnameNs:void 0,errorMsg:void 0,inPrefixDecl:!1,possibleFullIri:!1}},indent:function(t,n){var r;if(t.inLiteral)return 0;if(void 0!==t.lastPredicateOffset&&t.stack.length&&\"?[or([verbPath,verbSimple]),objectListPath]\"==t.stack[t.stack.length-1])return t.lastPredicateOffset;var i=0,o=t.stack.length-1;if(/^[\\}\\]\\)]/.test(n)){for(var a=n.substr(0,1);o>=0;--o)if(t.stack[o]==a){--o;break}}else{var s=x[t.stack[o]];s&&(i+=s,--o)}for(;o>=0;--o){var l=T[t.stack[o]];l&&(i+=l)}return i*(null!==(r=e.indentUnit)&&void 0!==r?r:2)},electricChars:\"}])\"}}));const me=ge;function ve(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return Ee(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ee(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ye(e,t,n){return t=(0,s.A)(t),(0,a.A)(e,function(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return function(){return!!e}()}()?Reflect.construct(t,n||[],(0,s.A)(e).constructor):t.apply(e,n))}n(2700),n(3380);var be=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if((0,i.A)(this,t),(n=ye(this,t)).autocompleters={},n.prevQueryValid=!1,n.queryValid=!0,n.handleHashChange=function(){var e,t;null===(t=(e=n.config).consumeShareLink)||void 0===t||t.call(e,n)},n.notificationEls={},!e)throw new Error(\"No parent passed as argument. Dont know where to draw YASQE\");n.rootEl=document.createElement(\"div\"),n.rootEl.className=\"yasqe\",e.appendChild(n.rootEl),n.config=(0,T.A)({},t.defaults,r);var o,a=me(n.rootEl,n.config),s=ve(Object.getOwnPropertyNames(t.prototype));try{for(s.s();!(o=s.n()).done;){var l=o.value;a[l]=t.prototype[l].bind(n)}}catch(e){s.e(e)}finally{s.f()}Object.assign(n,me.prototype,a),n.storage=new m.wc(t.storageNamespace),n.drawButtons();var u=n.getStorageId();if(u){var c=n.storage.get(u);n.persistentConfig=c&&\"string\"==typeof c?{query:c,editorHeight:n.config.editorHeight}:c,n.persistentConfig||(n.persistentConfig={query:n.getValue(),editorHeight:n.config.editorHeight}),n.persistentConfig&&n.persistentConfig.query&&n.setValue(n.persistentConfig.query)}return n.config.autocompleters.forEach((function(e){return n.enableCompleter(e).then((function(){}),console.warn)})),n.config.consumeShareLink&&(n.config.consumeShareLink(n),window.addEventListener(\"hashchange\",n.handleHashChange)),n.checkSyntax(),n.persistentConfig&&n.persistentConfig.editorHeight?n.getWrapperElement().style.height=n.persistentConfig.editorHeight:n.config.editorHeight&&(n.getWrapperElement().style.height=n.config.editorHeight),n.config.resizeable&&n.drawResizer(),n.config.collapsePrefixesOnLoad&&n.collapsePrefixes(!0),n.registerEventListeners(),n}return(0,l.A)(t,e),(0,o.A)(t,[{key:\"handleChange\",value:function(){this.checkSyntax(),this.updateQueryButton()}},{key:\"handleBlur\",value:function(){this.saveQuery()}},{key:\"handleChanges\",value:function(){this.checkSyntax(),this.updateQueryButton()}},{key:\"handleCursorActivity\",value:function(){this.autocomplete(!0)}},{key:\"handleQuery\",value:function(e,t,n){this.req=t,this.abortController=n,this.updateQueryButton()}},{key:\"handleQueryResponse\",value:function(e,t,n){this.lastQueryDuration=n,this.req=void 0,this.updateQueryButton()}},{key:\"handleQueryAbort\",value:function(e,t){this.req=void 0,this.updateQueryButton()}},{key:\"registerEventListeners\",value:function(){this.on(\"change\",this.handleChange),this.on(\"blur\",this.handleBlur),this.on(\"changes\",this.handleChanges),this.on(\"cursorActivity\",this.handleCursorActivity),this.on(\"query\",this.handleQuery),this.on(\"queryResponse\",this.handleQueryResponse),this.on(\"queryAbort\",this.handleQueryAbort)}},{key:\"unregisterEventListeners\",value:function(){this.off(\"change\",this.handleChange),this.off(\"blur\",this.handleBlur),this.off(\"changes\",this.handleChanges),this.off(\"cursorActivity\",this.handleCursorActivity),this.off(\"query\",this.handleQuery),this.off(\"queryResponse\",this.handleQueryResponse),this.off(\"queryAbort\",this.handleQueryAbort)}},{key:\"emit\",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];me.signal.apply(me,[this,e,this].concat(n))}},{key:\"getStorageId\",value:function(e){var t=e||this.config.persistenceId;if(t)return\"string\"==typeof t?t:t(this)}},{key:\"drawButtons\",value:function(){var e=this,t=document.createElement(\"div\");if(t.className=\"yasqe_buttons\",this.getWrapperElement().appendChild(t),this.config.pluginButtons){var n=this.config.pluginButtons();if(!n)return;if(Array.isArray(n)){var r,i=ve(n);try{for(i.s();!(r=i.n()).done;){var o=r.value;t.append(o)}}catch(e){i.e(e)}finally{i.f()}}else t.appendChild(n)}if(this.config.createShareableLink){var a=(0,m.Mg)('<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 100 100\"><path d=\"M36.764 50c0 .308-.07.598-.088.905l32.247 16.12c2.76-2.34 6.293-3.798 10.195-3.798C87.89 63.227 95 70.337 95 79.11 95 87.89 87.89 95 79.118 95c-8.78 0-15.882-7.11-15.882-15.89 0-.317.07-.6.088-.906l-32.247-16.12c-2.77 2.33-6.293 3.79-10.195 3.79C12.11 65.873 5 58.77 5 50c0-8.78 7.11-15.89 15.882-15.89 3.902 0 7.427 1.467 10.195 3.796l32.247-16.12c-.018-.307-.088-.597-.088-.913C63.236 12.11 70.338 5 79.118 5 87.89 5 95 12.11 95 20.873c0 8.78-7.11 15.89-15.882 15.89-3.91 0-7.436-1.467-10.195-3.805L36.676 49.086c.017.308.088.598.088.914z\"/></svg>'),s=document.createElement(\"button\");s.className=\"yasqe_share\",s.title=\"Share query\",s.setAttribute(\"aria-label\",\"Share query\"),s.appendChild(a),t.appendChild(s),s.addEventListener(\"click\",(function(e){return l(e)})),s.addEventListener(\"keydown\",(function(e){\"Enter\"===e.code&&l(e)}));var l=function(n){n.stopPropagation();var r=document.createElement(\"div\");r.className=\"yasqe_sharePopup\",t.appendChild(r),document.body.addEventListener(\"click\",(function(e){r&&e.target!==r&&!r.contains(e.target)&&(r.remove(),r=void 0)}),!0);var i=document.createElement(\"input\");i.type=\"text\",i.value=e.config.createShareableLink(e),i.onfocus=function(){i.select()},i.onmouseup=function(){return!1},r.innerHTML=\"\";var o=document.createElement(\"div\");o.className=\"inputWrapper\",o.appendChild(i),r.appendChild(o);var s=[],l=e.config.createShortLink;if(l){r.className=r.className+=\" enableShort\";var u=document.createElement(\"button\");s.push(u),u.innerHTML=\"Shorten\",u.className=\"yasqe_btn yasqe_btn-sm shorten\",r.appendChild(u),u.onclick=function(){s.forEach((function(e){return e.disabled=!0})),l(e,i.value).then((function(e){i.value=e,i.focus()}),(function(e){var t=document.createElement(\"span\");t.className=\"shortlinkErr\";var n=\"An error has occurred\";\"string\"==typeof e&&0!==e.length?n=e:e.message&&0!==e.message.length&&(n=e.message),t.textContent=n,i.replaceWith(t)}))}}var c=document.createElement(\"button\");s.push(c),c.innerText=\"cURL\",c.className=\"yasqe_btn yasqe_btn-sm curl\",r.appendChild(c),c.onclick=function(){s.forEach((function(e){return e.disabled=!0})),i.value=e.getAsCurlString(),i.focus(),null==r||r.appendChild(c)};var p=a.getBoundingClientRect();r.style.top=a.offsetTop+p.height+\"px\",r.style.left=a.offsetLeft+a.clientWidth-r.clientWidth+\"px\",i.focus()}}if(this.config.showQueryButton){this.queryBtn=document.createElement(\"button\"),(0,m.iQ)(this.queryBtn,\"yasqe_queryButton\");var u=(0,m.Mg)('<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" height=\"81.9\" width=\"72.9\" version=\"1.1\" y=\"0px\" x=\"0px\" viewBox=\"0 0 72.900002 81.900002\"><path id=\"queryIcon\" d=\"m69.6 35.2-60.3-34.3c-2.2-1.2-4.4-1.2-6.4 0s-2.9 3.4-2.9 5.6v68.8c0 2.2 1.2 4.4 2.9 5.6 1 0.5 2.2 1 3.4 1s2.2-0.5 2.9-1l60.3-34.3c2.2-1.2 3.4-3.4 3.4-5.6s-1.1-4.3-3.3-5.8z\"/><path id=\"loadingIcon\" d=\"m61.184 36.167-48.73-27.719c-1.7779-0.96976-3.5558-0.96976-5.172 0-1.6163 0.96976-2.3436 2.7476-2.3436 4.5255v55.599c0 1.7779 0.96976 3.5558 2.3436 4.5255 0.80813 0.40407 1.7779 0.80813 2.7476 0.80813 0.96975 0 1.7779-0.40406 2.3436-0.80813l48.73-27.719c1.7779-0.96976 2.7476-2.7476 2.7476-4.5255s-0.88894-3.475-2.6668-4.6872z\" fill=\"none\"/></svg>');(0,m.iQ)(u,\"queryIcon\"),this.queryBtn.appendChild(u);var c=(0,m.Mg)(R);(0,m.iQ)(c,\"warningIcon\"),this.queryBtn.appendChild(c),this.queryBtn.onclick=function(){e.config.queryingDisabled||(e.req?e.abortQuery():e.query().catch((function(){})))},this.queryBtn.title=\"Run query\",this.queryBtn.setAttribute(\"aria-label\",\"Run query\"),t.appendChild(this.queryBtn),this.updateQueryButton()}}},{key:\"drawResizer\",value:function(){if(!this.resizeWrapper){this.resizeWrapper=document.createElement(\"div\"),(0,m.iQ)(this.resizeWrapper,\"resizeWrapper\");var e=document.createElement(\"div\");(0,m.iQ)(e,\"resizeChip\"),this.resizeWrapper.appendChild(e),this.resizeWrapper.addEventListener(\"mousedown\",this.initDrag,!1),this.resizeWrapper.addEventListener(\"dblclick\",this.expandEditor),this.rootEl.appendChild(this.resizeWrapper)}}},{key:\"initDrag\",value:function(){document.documentElement.addEventListener(\"mousemove\",this.doDrag,!1),document.documentElement.addEventListener(\"mouseup\",this.stopDrag,!1)}},{key:\"calculateDragOffset\",value:function(e,t){var n=0;t.offsetParent&&(n=t.offsetParent.offsetTop);for(var r=0,i=t.parentElement;i;)r+=i.scrollTop,i=i.parentElement;return e.clientY-n-this.rootEl.offsetTop+r}},{key:\"doDrag\",value:function(e){this.getWrapperElement().style.height=this.calculateDragOffset(e,this.rootEl)+\"px\"}},{key:\"stopDrag\",value:function(){document.documentElement.removeEventListener(\"mousemove\",this.doDrag,!1),document.documentElement.removeEventListener(\"mouseup\",this.stopDrag,!1),this.emit(\"resize\",this.getWrapperElement().style.height),this.getStorageId()&&this.persistentConfig&&(this.persistentConfig.editorHeight=this.getWrapperElement().style.height,this.saveQuery()),this.refresh()}},{key:\"duplicateLine\",value:function(){var e=this.getDoc().getCursor();if(e){var t=this.getDoc().getLine(e.line);this.getDoc().replaceRange(t+\"\\n\"+t,{ch:0,line:e.line},{ch:t.length,line:e.line})}}},{key:\"updateQueryButton\",value:function(e){this.queryBtn&&(this.config.queryingDisabled?((0,m.iQ)(this.queryBtn,\"query_disabled\"),this.queryBtn.title=this.config.queryingDisabled):((0,m.vy)(this.queryBtn,\"query_disabled\"),this.queryBtn.title=\"Run query\",this.queryBtn.setAttribute(\"aria-label\",\"Run query\")),e||(e=this.queryValid?\"valid\":\"error\"),e!=this.queryStatus&&((0,m.vy)(this.queryBtn,\"query_\"+this.queryStatus),(0,m.iQ)(this.queryBtn,\"query_\"+e),this.queryStatus=e),this.req&&this.queryBtn.className.indexOf(\"busy\")<0&&(this.queryBtn.className=this.queryBtn.className+=\" busy\"),!this.req&&this.queryBtn.className.indexOf(\"busy\")>=0&&(this.queryBtn.className=this.queryBtn.className.replace(\"busy\",\"\")))}},{key:\"handleLocalStorageQuotaFull\",value:function(e){console.warn(\"Localstorage quota exceeded. Clearing all queries\"),t.clearStorage()}},{key:\"saveQuery\",value:function(){var e=this.getStorageId();e&&this.persistentConfig&&(this.persistentConfig.query=this.getValue(),this.storage.set(e,this.persistentConfig,this.config.persistencyExpire,this.handleLocalStorageQuotaFull))}},{key:\"getQueryType\",value:function(){return this.getOption(\"queryType\")}},{key:\"getQueryMode\",value:function(){switch(this.getQueryType()){case\"INSERT\":case\"DELETE\":case\"LOAD\":case\"CLEAR\":case\"CREATE\":case\"DROP\":case\"COPY\":case\"MOVE\":case\"ADD\":return\"update\";default:return\"query\"}}},{key:\"getVariablesFromQuery\",value:function(){var e=this.getTokenAt({line:this.getDoc().lastLine(),ch:this.getDoc().getLine(this.getDoc().lastLine()).length},!0),t=[];for(var n in e.state.variables)t.push(n);return t.sort()}},{key:\"autoformatSelection\",value:function(e,n){var r=this.getValue();return r=r.substring(e,n),t.autoformatString(r)}},{key:\"commentLines\",value:function(){for(var e=this.getDoc().getCursor(\"start\").line,t=this.getDoc().getCursor(\"end\").line,n=Math.min(e,t),r=Math.max(e,t),i=!0,o=n;o<=r;o++){var a=this.getDoc().getLine(o);if(0==a.length||\"#\"!=a.substring(0,1)){i=!1;break}}for(o=n;o<=r;o++)i?this.getDoc().replaceRange(\"\",{line:o,ch:0},{line:o,ch:1}):this.getDoc().replaceRange(\"#\",{line:o,ch:0})}},{key:\"autoformat\",value:function(){var e=this;this.getDoc().somethingSelected()||this.execCommand(\"selectAll\");var t=this.getDoc().getCursor(\"start\"),n={line:this.getDoc().getCursor(\"end\").line,ch:this.getDoc().getSelection().length},r=this.getDoc().indexFromPos(t),i=this.getDoc().indexFromPos(n),o=this.autoformatSelection(r,i);this.operation((function(){e.getDoc().replaceRange(o,t,n);for(var i=e.getDoc().posFromIndex(r).line,a=e.getDoc().posFromIndex(r+o.length).line,s=i;s<=a;s++)e.indentLine(s,\"smart\")}))}},{key:\"getQueryWithValues\",value:function(e){if(!e)return this.getValue();var n;if(\"string\"==typeof e)n=e;else{e instanceof Array||(e=[e]);var r=e.reduce((function(e,t){for(var n in t)e[n]=n;return e}),{}),i=[];for(var o in r)i.push(o);if(!i.length)return this.getValue();n=\"VALUES (\"+i.join(\" \")+\") {\\n\",e.forEach((function(e){n+=\"( \",i.forEach((function(t){n+=e[t]||\"UNDEF\"})),n+=\" )\\n\"})),n+=\"}\\n\"}if(!n)return this.getValue();var a=\"\",s=!1,l=!1;return t.runMode(this.getValue(),\"sparql11\",(function(e,t,r,i,o){\"keyword\"===t&&\"select\"===e.toLowerCase()&&(l=!0),a+=e,l&&!s&&\"punc\"===t&&\"{\"===e&&(s=!0,a+=\"\\n\"+n)})),a}},{key:\"getValueWithoutComments\",value:function(){var e=\"\";return t.runMode(this.getValue(),\"sparql11\",(function(t,n){\"comment\"!=n&&(e+=t)})),e}},{key:\"setCheckSyntaxErrors\",value:function(e){this.config.syntaxErrorCheck=e,this.checkSyntax()}},{key:\"checkSyntax\",value:function(){this.queryValid=!0,this.clearGutter(\"gutterErrorBar\");for(var e=0;e<this.getDoc().lineCount();++e){var t=!1;this.prevQueryValid||(t=!0);var n=this.getTokenAt({line:e,ch:this.getDoc().getLine(e).length},t),r=n.state;if(this.setOption(\"queryType\",r.queryType),0==r.OK){if(!this.config.syntaxErrorCheck){for(var i=this.getWrapperElement().querySelectorAll(\".sp-error\"),o=0;o<i.length;o++){var a=i[o];a.style&&(a.style.color=\"black\")}return}var s=(0,m.Mg)(R);if(r.errorMsg)E(0,s,(0,he.A)(n.state.errorMsg));else if(r.possibleCurrent&&r.possibleCurrent.length>0){var l=[];r.possibleCurrent.forEach((function(e){l.push(\"<strong style='text-decoration:underline'>\"+(0,he.A)(e)+\"</strong>\")})),E(0,s,\"This line is invalid. Expected: \"+l.join(\", \"))}s.className=\"parseErrorIcon\",this.setGutterMarker(e,\"gutterErrorBar\",s),this.queryValid=!1;break}}}},{key:\"getCompleteToken\",value:function(e,t){return p(this,e,t)}},{key:\"getPreviousNonWsToken\",value:function(e,t){return function e(t,n,r){var i=t.getTokenAt({line:n,ch:r.start});return null!=i&&\"ws\"==i.type&&(i=e(t,n,i)),i}(this,e,t)}},{key:\"getNextNonWsToken\",value:function(e,t){return d(this,e,t)}},{key:\"showNotification\",value:function(e,t){if(!this.notificationEls[e]){var n=document.createElement(\"div\");(0,m.iQ)(n,\"notificationContainer\"),this.getWrapperElement().appendChild(n),this.notificationEls[e]=document.createElement(\"div\"),(0,m.iQ)(this.notificationEls[e],\"notification\",\"notif_\"+e),n.appendChild(this.notificationEls[e])}for(var r in this.notificationEls)r!==e&&this.hideNotification(r);var i=this.notificationEls[e];(0,m.iQ)(i,\"active\"),i.innerText=t}},{key:\"hideNotification\",value:function(e){this.notificationEls[e]&&(0,m.vy)(this.notificationEls[e],\"active\")}},{key:\"enableCompleter\",value:function(e){return t.Autocompleters[e]?(this.config.autocompleters.indexOf(e)<0&&this.config.autocompleters.push(e),(this.autocompleters[e]=new ue(this,t.Autocompleters[e])).initialize()):Promise.reject(new Error(\"Autocompleter \"+e+\" is not a registered autocompleter\"))}},{key:\"disableCompleter\",value:function(e){this.config.autocompleters=this.config.autocompleters.filter((function(t){return t!==e})),this.autocompleters[e]=void 0}},{key:\"autocomplete\",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this.getDoc().somethingSelected())for(var t in this.config.autocompleters){var n=this.autocompleters[this.config.autocompleters[t]];n&&n.autocomplete(e)}}},{key:\"collapsePrefixes\",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=f(this);void 0!==t&&this.foldCode(t,me.fold.prefix,e?\"fold\":\"unfold\")}},{key:\"getPrefixesFromQuery\",value:function(){return(e=this).getTokenAt({line:e.getDoc().lastLine(),ch:e.getDoc().getLine(e.getDoc().lastLine()).length},!0).state.prefixes;var e}},{key:\"addPrefixes\",value:function(e){return function(e,t){var n=e.getPrefixesFromQuery();if(\"string\"==typeof t)g(e,t);else for(var r in t)r in n||g(e,r+\": <\"+t[r]+\">\");e.collapsePrefixes(!1)}(this,e)}},{key:\"removePrefixes\",value:function(e){return function(e,t){for(var n in t)e.setValue(e.getValue().replace(new RegExp(\"PREFIX\\\\s*\"+n+\":\\\\s*\"+((\"<\"+t[n]+\">\").replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")+\"\\\\s*\"),\"ig\"),\"\"));e.collapsePrefixes(!1)}(this,e)}},{key:\"updateWidget\",value:function(){if(this.cursorCoords&&this.state.completionActive&&this.state.completionActive.widget){var e=this.cursorCoords(null).bottom;this.state.completionActive.widget.hints.style.top=e+\"px\"}}},{key:\"query\",value:function(e){return this.config.queryingDisabled?Promise.reject(\"Querying is disabled.\"):(this.abortQuery(),N(this,e))}},{key:\"getUrlParams\",value:function(){var e={};return window.location.hash.length>1&&(e=v.parse(location.hash)),e&&\"query\"in e||!(window.location.search.length>1)||(e=v.parse(window.location.search)),e}},{key:\"configToQueryParams\",value:function(){var e={};return window.location.hash.length>1&&(e=v.parse(window.location.hash)),e.query=this.getValue(),e}},{key:\"queryParamsToConfig\",value:function(e){e&&e.query&&\"string\"==typeof e.query&&this.setValue(e.query)}},{key:\"getAsCurlString\",value:function(e){return _(this,e)}},{key:\"abortQuery\",value:function(){this.req&&(this.abortController&&this.abortController.abort(),this.emit(\"queryAbort\",this,this.req))}},{key:\"expandEditor\",value:function(){this.setSize(null,\"100%\")}},{key:\"destroy\",value:function(){var e,t;for(var n in this.abortQuery(),this.unregisterEventListeners(),null===(e=this.resizeWrapper)||void 0===e||e.removeEventListener(\"mousedown\",this.initDrag,!1),null===(t=this.resizeWrapper)||void 0===t||t.removeEventListener(\"dblclick\",this.expandEditor),this.autocompleters)this.disableCompleter(n);window.removeEventListener(\"hashchange\",this.handleHashChange),this.rootEl.remove()}}],[{key:\"autoformatString\",value:function(e){var n=[[\"keyword\",\"ws\",\"string-2\",\"ws\",\"variable-3\"],[\"keyword\",\"ws\",\"variable-3\"]],r=[\"}\"],i=\"\",o=\"\",a=[];return t.runMode(e,\"sparql11\",(function(e,t){a.push(t);var s=function(e){if(\"{\"===e)return 1;if(\".\"===e)return 1;if(\";\"===e)return a.length>2&&\"punc\"===a[a.length-2]?0:1;for(var t=0;t<n.length;t++)if(a.valueOf().toString()===n[t].valueOf().toString())return 1;for(t=0;t<r.length;t++)if(\"\"!==o.trim()&&e==r[t])return-1;return 0}(e);0!=s?(1==s?(i+=e+\"\\n\",o=\"\"):(i+=\"\\n\"+e,o=e),a=[]):(o+=e,i+=e),1==a.length&&\"sp-ws\"==a[0]&&(a=[])})),i.replace(/\\n\\s*\\n/g,\"\\n\").trim()}},{key:\"clearStorage\",value:function(){new m.wc(t.storageNamespace).removeNamespace()}},{key:\"registerAutocompleter\",value:function(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e.name;t.Autocompleters[r]=e,n&&t.defaults.autocompleters.indexOf(r)<0&&t.defaults.autocompleters.push(r)}},{key:\"forkAutocompleter\",value:function(e,n){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!t.Autocompleters[e])throw new Error(\"Autocompleter \"+e+\" does not exist\");if(!(null==n?void 0:n.name))throw new Error(\"Expected a name for newly registered autocompleter\");var i=n.name;t.Autocompleters[i]=Object.assign(Object.assign({},t.Autocompleters[e]),n),r&&t.defaults.autocompleters.indexOf(i)<0&&t.defaults.autocompleters.push(i)}}])}(me);be.storageNamespace=\"triply\",be.Sparql=r,be.runMode=me.runMode,be.Autocompleters={},be.defaults=function(){var e=(0===window.location.protocol.indexOf(\"http\")?\"//\":\"http://\")+\"prefix.cc/popular/all.file.json\",t=n(1719),r={mode:\"sparql11\",value:\"PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>\\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\\nSELECT * WHERE {\\n  ?sub ?pred ?obj .\\n} LIMIT 10\",highlightSelectionMatches:{showToken:/\\w/},tabMode:\"indent\",lineNumbers:!0,lineWrapping:!0,foldGutter:{rangeFinder:new t.fold.combine(t.fold.brace,t.fold.prefix)},collapsePrefixesOnLoad:!1,gutters:[\"gutterErrorBar\",\"CodeMirror-linenumbers\",\"CodeMirror-foldgutter\"],matchBrackets:!0,fixedGutter:!0,syntaxErrorCheck:!0,autocompleters:[],extraKeys:{\"Ctrl-Space\":function(e){e.autocomplete()},\"Shift-Ctrl-K\":function(e){var t=e,n=t.getDoc().getCursor().line;return n===t.getDoc().lastLine()&&n>1?t.getDoc().replaceRange(\"\",{ch:t.getDoc().getLine(n-1).length,line:n-1},{ch:t.getDoc().getLine(n).length,line:n}):t.getDoc().replaceRange(\"\",{ch:0,line:n},{ch:0,line:n+1})},\"Ctrl-/\":function(e){e.commentLines()},\"Shift-Ctrl-D\":function(e){e.duplicateLine()},\"Shift-Ctrl-F\":function(e){e.autoformat()},\"Ctrl-S\":function(e){e.saveQuery()},\"Cmd-Enter\":function(e){e.query().catch((function(){}))},\"Ctrl-Enter\":function(e){e.query().catch((function(){}))},Esc:function(e){e.getInputField().blur()}},createShareableLink:function(e){return document.location.protocol+\"//\"+document.location.host+document.location.pathname+document.location.search+\"#\"+v.stringify(e.configToQueryParams())},pluginButtons:void 0,createShortLink:void 0,consumeShareLink:function(e){e.queryParamsToConfig(e.getUrlParams())},persistenceId:function(e){var t=\"\",n=e.rootEl;for(n.id&&(t=n.id);n&&n!==document;n=n.parentNode)if(n){n.id&&(t=n.id);break}return\"yasqe_\"+t+\"_query\"},persistencyExpire:2592e3,showQueryButton:!0,hintConfig:{},resizeable:!0,editorHeight:\"300px\",queryingDisabled:void 0,prefixCcApi:e},i={queryArgument:void 0,endpoint:\"https://dbpedia.org/sparql\",method:\"POST\",acceptHeaderGraph:\"application/n-triples,*/*;q=0.9\",acceptHeaderSelect:\"application/sparql-results+json,*/*;q=0.9\",acceptHeaderUpdate:\"text/plain,*/*;q=0.9\",namedGraphs:[],defaultGraphs:[],args:[],headers:{},withCredentials:!1,adjustQueryBeforeRequest:!1};return Object.assign(Object.assign({},r),{requestConfig:i})}(),Object.assign(me.prototype,be.prototype),fe.forEach((function(e){be.registerAutocompleter(e)}));const xe=be},3252:function(e){var t;t=()=>(()=>{\"use strict\";var e={887:e=>{e.exports=function(e){for(var t=5381,n=e.length;n;)t=33*t^e.charCodeAt(--n);return t>>>0}}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var r={};return(()=>{n.r(r),n.d(r,{default:()=>p});var e=n(887),t=n.n(e);function i(e){return(i=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,l(r.key),r)}}function a(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function s(e,t,n){return(t=l(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e){var t=function(e,t){if(\"object\"!==i(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!==i(r))return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"===i(t)?t:String(t)}var u,c=(u=0,function(){return u++}),p=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,\"prototype\",{writable:!1}),e}((function e(n){var r=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};a(this,e),s(this,\"ID\",\"id\"),s(this,\"PX\",\"px\"),s(this,\"RESIZABLE\",\"grip-resizable\"),s(this,\"FLEX\",\"grip-flex\"),s(this,\"legacyIE\",navigator.userAgent.indexOf(\"Trident/4.0\")>0),s(this,\"reset\",(function(e){return r.init(e)})),s(this,\"onResize\",(function(){var e=r.tb;if(e.classList.remove(r.RESIZABLE),e.opt.fixed){e.tableWidth=Number(window.getComputedStyle(e).width.replace(/px/,\"\")).valueOf();for(var t=0,n=0;n<e.columnCnt;n++)t+=e.columns[n].w;for(var i=0;i<e.columnCnt;i++)e.columns[i].style.width=Math.round(1e3*e.columns[i].w/t)/10+\"%\",e.columns[i].locked=!0,e.opt.currentWidths[i]=Number(window.getComputedStyle(e.columns[i]).width.replace(/px/,\"\")).valueOf()}else r.applyBounds(),\"flex\"===e.opt.resizeMode&&e.opt.serialize&&r.serializeStore();e.classList.add(r.RESIZABLE),r.syncGrips()})),s(this,\"onGripMouseDown\",(function(e){var t=e.target.parentNode.data,n=r.tb,i=n.grips[t.i],o=e.touches;if(i.ox=o?o[0].pageX:e.pageX,i.l=i.offsetLeft,i.x=i.l,r.createStyle(document.querySelector(\"head\"),\"*{cursor:\"+n.opt.dragCursor+\"!important}\"),document.addEventListener(\"touchmove\",r.onGripDrag),document.addEventListener(\"mousemove\",r.onGripDrag),document.addEventListener(\"touchend\",r.onGripDragOver),document.addEventListener(\"mouseup\",r.onGripDragOver),i.classList.add(n.opt.draggingClass),r.grip=i,n.columns[t.i].locked)for(var a,s=0;s<n.columnCnt;s++)(a=n.columns[s]).locked=!1,a.w=Number(window.getComputedStyle(a).width.replace(/px/,\"\")).valueOf();e.preventDefault()})),s(this,\"onGripDrag\",(function(e){var t=r.grip;if(t){var n=t.t,i=e.touches,o=(i?i[0].pageX:e.pageX)-t.ox+t.l,a=n.opt.minWidth,s=t.i,l=1.5*n.cellSpace+a+n.borderSpace,u=s===n.columnCnt-1,c=s?n.grips[s-1].offsetLeft+n.cellSpace+a:l,p=n.opt.fixed?s===n.columnCnt-1?n.tableWidth-l:n.grips[s+1].offsetLeft-n.cellSpace-a:1/0;if(o=Math.max(c,Math.min(p,o)),t.x=o,t.style.left=o+r.PX,u&&(t.w=n.columns[s].w+o-t.l),n.opt.liveDrag){u?(n.columns[s].style.width=t.w+r.PX,!n.opt.fixed&&n.opt.overflow?n.style.minWidth=n.tableWidth+o-t.l+r.PX:n.tableWidth=Number(window.getComputedStyle(n).width.replace(/px/,\"\")).valueOf()):r.syncCols(n,s,!1,n.opt),r.syncGrips();var d=n.opt.onDrag;d&&d(e)}e.preventDefault()}})),s(this,\"onGripDragOver\",(function(e){var t=r.grip;document.removeEventListener(\"touchend\",r.onGripDragOver),document.removeEventListener(\"mouseup\",r.onGripDragOver),document.removeEventListener(\"touchmove\",r.onGripDrag),document.removeEventListener(\"mousemove\",r.onGripDrag);var n=document.querySelector(\"head\").lastChild;if(n.parentNode.removeChild(n),t){if(t.classList.remove(t.t.opt.draggingClass),t.x-t.l!=0){var i=t.t,o=i.opt.onResize,a=t.i;if(a===i.columnCnt-1){var s=i.columns[a];s.style.width=t.w+r.PX,s.w=t.w}else r.syncCols(i,a,!0,i.opt);i.opt.fixed||r.applyBounds(),r.syncGrips(),o&&o(e),i.opt.serialize&&r.serializeStore()}r.grip=null}})),s(this,\"init\",(function(e){if(e.disable)return r.destroy();var t=r.tb,n=t.getAttribute(r.ID)||r.RESIZABLE+c();if(!t.matches(\"table\")||t.extended&&!e.partialRefresh)return null;var i=document.querySelector(\"head\");if(r.createStyle(i,\" .grip-resizable{table-layout:fixed;} .grip-resizable > tbody > tr > td, .grip-resizable > tbody > tr > th{overflow:hidden} .grip-padding > tbody > tr > td, .grip-padding > tbody > tr > th{padding-left:0!important; padding-right:0!important;} .grip-container{ height:0px; position:relative;} .grip-handle{margin-left:-5px; position:absolute; z-index:5; } .grip-handle .grip-resizable{position:absolute;background-color:red;filter:alpha(opacity=1);opacity:0;width:10px;height:100%;cursor: col-resize;top:0px} .grip-lastgrip{position:absolute; width:1px; } .grip-drag{ border-left:1px dotted black;\\t} .grip-flex{width:auto!important;} .grip-handle.grip-disabledgrip .grip-resizable{cursor:default; display:none;}\"),e.hoverCursor&&\"col-resize\"!==e.hoverCursor){var o=\".grip-handle .grip-resizable:hover{cursor:\"+e.hoverCursor+\"!important}\";r.createStyle(i,o)}t.setAttribute(r.ID,n);var a=t.opt;t.opt=r.extendOptions(e);var s=r.getTableHeaders(t);if(r.extendTable(s),e.remoteTable&&e.remoteTable.matches(\"table\")){var l=r.getTableHeaders(t.opt.remoteTable);s.length===l.length?r.extendRemoteTable(t.opt.remoteTable,l,t):console.warn(\"column count for remote table did not match\")}return a})),s(this,\"applyBounds\",(function(){var e=r.tb,t=e.columns.map((function(e){return window.getComputedStyle(e).width}));e.style.width=window.getComputedStyle(e).width,e.tableWidth=Number(e.style.width.replace(/px/,\"\")).valueOf(),e.classList.remove(r.FLEX),e.columns.forEach((function(n,r){n.style.width=t[r];var i=Number(t[r].replace(/px/,\"\")).valueOf();n.w=i,e.opt.currentWidths[r]=i})),e.classList.add(r.FLEX)})),s(this,\"serializeStore\",(function(){var e=r.store,t=r.tb;e[t.getAttribute(r.ID)]=\"\";for(var n=0,i=0;i<t.columns.length;i++){var o=window.getComputedStyle(t.columns[i]).width.replace(/px/,\"\");e[t.getAttribute(r.ID)]+=o+\";\",n+=Number(o).valueOf()}e[t.getAttribute(r.ID)]+=n.toString(),t.opt.fixed||(e[t.getAttribute(r.ID)]+=\";\"+window.getComputedStyle(t).width.replace(/px/,\"\"))})),s(this,\"syncGrips\",(function(){var e=r.tb;e.gripContainer.style.width=e.tableWidth+r.PX;for(var t=0;t<e.columnCnt;t++){var n=e.columns[t],i=n.getBoundingClientRect(),o=e.getBoundingClientRect();e.grips[t].style.left=i.left-o.left+n.offsetWidth+e.cellSpace/2+r.PX,e.grips[t].style.height=(e.opt.headerOnly?e.columns[0].offsetHeight:e.offsetHeight)+r.PX}})),s(this,\"destroy\",(function(){var e=r.tb,t=e.getAttribute(r.ID);return t?(r.store[t]=\"\",e.classList.remove(r.RESIZABLE),e.classList.remove(r.FLEX),e.remote&&(e.remote.classList.remove(r.RESIZABLE),e.remote.classList.remove(r.FLEX)),e.gripContainer&&e.gripContainer.parentNode&&e.gripContainer.parentNode.removeChild(e.gripContainer),delete e.extended,e.opt):null})),s(this,\"createStyle\",(function(e,n){var r=t()(n).toString(),i=e.querySelectorAll(\"style\");if(!Array.from(i).filter((function(e){return e.gripid===r})).length){var o=document.createElement(\"style\");o.type=\"text/css\",o.gripid=r,o.styleSheet?o.styleSheet.cssText=n:o.appendChild(document.createTextNode(n)),e.appendChild(o)}})),s(this,\"extendOptions\",(function(t){var n=Object.assign({},e.DEFAULTS,t);switch(n.fixed=!0,n.overflow=!1,n.resizeMode){case\"flex\":n.fixed=!1;break;case\"overflow\":n.fixed=!1,n.overflow=!0}return n})),s(this,\"getTableHeaders\",(function(e){var t=\"#\"+e.id,n=Array.from(e.querySelectorAll(t+\">thead>tr:nth-of-type(1)>th\"));return(n=n.concat(Array.from(e.querySelectorAll(t+\">thead>tr:nth-of-type(1)>td\")))).length||(n=(n=(n=(n=Array.from(e.querySelectorAll(t+\">tbody>tr:nth-of-type(1)>th\"))).concat(Array.from(e.querySelectorAll(t+\">tr:nth-of-type(1)>th\")))).concat(Array.from(e.querySelectorAll(t+\">tbody>tr:nth-of-type(1)>td\")))).concat(Array.from(e.querySelectorAll(t+\">tr:nth-of-type(1)>td\")))),r.filterInvisible(n,!1)})),s(this,\"filterInvisible\",(function(e,t){return e.filter((function(e){var n=t?-1:e.offsetWidth,r=t?-1:e.offsetHeight;return!(0===n&&0===r||e.style&&e.style.display&&\"none\"===window.getComputedStyle(e).display)}))})),s(this,\"extendTable\",(function(e){var t=r.tb;t.opt.removePadding&&t.classList.add(\"grip-padding\"),t.classList.add(r.RESIZABLE),t.insertAdjacentHTML(\"beforebegin\",'<div class=\"grip-container\"/>'),t.grips=[],t.columns=[],t.tableWidth=Number(window.getComputedStyle(t).width.replace(/px/,\"\")).valueOf(),t.gripContainer=t.previousElementSibling,t.opt.marginLeft&&(t.gripContainer.style.marginLeft=t.opt.marginLeft),t.opt.marginRight&&(t.gripContainer.style.marginRight=t.opt.marginRight),t.cellSpace=parseInt(r.legacyIE?t.cellSpacing||t.currentStyle.borderSpacing:window.getComputedStyle(t).borderSpacing.split(\" \")[0].replace(/px/,\"\"))||2,t.borderSpace=parseInt(r.legacyIE?t.border||t.currentStyle.borderLeftWidth:window.getComputedStyle(t).borderLeftWidth.replace(/px/,\"\"))||1,t.extended=!0,r.createGrips(e)})),s(this,\"extendRemoteTable\",(function(e,t,n){n.opt.removePadding&&e.classList.add(\"grip-padding\"),e.classList.add(r.RESIZABLE),e.getAttribute(r.ID)||e.setAttribute(r.ID,n.getAttribute(r.ID)+\"remote\"),e.columns=[],t.forEach((function(i,o){var a=t[o];a.w=n.columns[o].w,a.style.width=a.w+r.PX,a.removeAttribute(\"width\"),e.columns.push(a)})),e.tableWidth=n.tableWidth,e.cellSpace=n.cellSpace,e.borderSpace=n.borderSpace;var i=Array.from(e.querySelectorAll(\"col\"));e.columnGrp=r.filterInvisible(i,!0),e.columnGrp.forEach((function(e,t){e.removeAttribute(\"width\"),e.style.width=n.columnGrp[t].style.width})),n.remote=e})),s(this,\"createGrips\",(function(e){var t=r.tb;t.columnGrp=r.filterInvisible(Array.from(t.querySelectorAll(\"col\")),!0),t.columnGrp.forEach((function(e){e.removeAttribute(\"width\")})),t.columnCnt=e.length;var n=!1;r.store[t.getAttribute(r.ID)]&&(r.deserializeStore(e),n=!0),e.forEach((function(i,o){var a=e[o],s=-1!==t.opt.disabledColumns.indexOf(o);r.createDiv(t.gripContainer,\"grip-handle\");var l=t.gripContainer.lastChild;!s&&t.opt.gripInnerHtml&&(l.innerHTML=t.opt.gripInnerHtml),r.createDiv(l,r.RESIZABLE),o===t.columnCnt-1&&(l.classList.add(\"grip-lastgrip\"),t.opt.fixed&&(l.innerHTML=\"\")),l.addEventListener(\"touchstart\",r.onGripMouseDown,{capture:!0,passive:!0}),l.addEventListener(\"mousedown\",r.onGripMouseDown,!0),s?l.classList.add(\"grip-disabledgrip\"):(l.classList.remove(\"grip-disabledgrip\"),l.addEventListener(\"touchstart\",r.onGripMouseDown,{capture:!0,passive:!0}),l.addEventListener(\"mousedown\",r.onGripMouseDown,!0)),l.t=t,l.i=o,t.opt.widths[o]?a.w=t.opt.widths[o]:a.w=n?Number(a.style.width.replace(/px/,\"\")).valueOf():Number(window.getComputedStyle(a).width.replace(/px/,\"\")).valueOf(),t.opt.currentWidths[o]=a.w,a.style.width=a.w+r.PX,a.removeAttribute(\"width\"),l.data={i:o,t:t.getAttribute(r.ID),last:o===t.columnCnt-1},t.grips.push(l),t.columns.push(a)}));var i=Array.from(t.querySelectorAll(\"td\"));i.concat(Array.from(t.querySelectorAll(\"th\"))),(i=(i=i.filter((function(t){for(var n=0;n<e.length;n++)if(e[n]===t)return!1;return!0}))).filter((function(e){return!(e.querySelectorAll(\"table th\").length||e.querySelectorAll(\"table td\").length)}))).forEach((function(e){e.removeAttribute(\"width\")})),t.opt.fixed||(t.removeAttribute(\"width\"),t.classList.add(r.FLEX)),r.syncGrips()})),s(this,\"deserializeStore\",(function(e){var t=r.tb;if(t.columnGrp.forEach((function(e){e.removeAttribute(\"width\")})),t.opt.flush)r.store[t.getAttribute(r.ID)]=\"\";else{var n=r.store[t.getAttribute(r.ID)].split(\";\"),i=n[t.columnCnt+1];!t.opt.fixed&&i&&(t.style.width=i+r.PX,t.opt.overflow&&(t.style.minWidth=i+r.PX,t.tableWidth=Number(i).valueOf()));for(var o=0;o<t.columnCnt;o++)e[o].style.width=n[o]+r.PX,t.columnGrp[o]&&(t.columnGrp[o].style.width=100*Number(n[o]).valueOf()/Number(n[t.columnCnt]).valueOf()+\"%\")}})),s(this,\"createDiv\",(function(e,t,n){var r=document.createElement(\"div\");r.classList.add(t),n&&(r.innerHTML=n),e.appendChild(r)})),s(this,\"syncCols\",(function(e,t,n,i){var o=e.remote,a=r.grip.x-r.grip.l,s=e.columns[t],l=e.columns[t+1];if(s&&l){var u=s.w+a,c=l.w-a,p=u+r.PX;if(s.style.width=p,e.columnGrp[t]&&e.columnGrp[t].style.width&&(e.columnGrp[t].style.width=p),o&&(o.columns[t].style.width=p,o.columnGrp[t]&&o.columnGrp[t].style.width&&(o.columnGrp[t].style.width=p)),i.fixed){var d=c+r.PX;l.style.width=d,e.columnGrp[t+1]&&e.columnGrp[t+1].style.width&&(e.columnGrp[t+1].style.width=d),o&&(o.columns[t+1].style.width=d,o.columnGrp[t+1]&&o.columnGrp[t+1].style.width&&(o.columnGrp[t+1].style.width=d))}else i.overflow&&(e.style.minWidth=e.tableWidth+a+r.PX);n&&(s.w=u,l.w=i.fixed?c:l.w,o&&(o.columns[t].w=u,o.columns[t+1].w=i.fixed?c:l.w))}}));try{this.store=sessionStorage}catch(n){this.store={}}this.grip=null,this.tb=n,window.addEventListener(\"resize\",this.onResize),Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector),this.init(i)}));p.DEFAULTS={resizeMode:\"fit\",draggingClass:\"grip-drag\",gripInnerHtml:\"\",liveDrag:!1,minWidth:15,headerOnly:!1,hoverCursor:\"col-resize\",dragCursor:\"col-resize\",flush:!1,marginLeft:null,marginRight:null,remoteTable:null,disable:!1,partialRefresh:!1,disabledColumns:[],removePadding:!0,widths:[],currentWidths:[],serialize:!0,onDrag:null,onResize:null}})(),r})(),e.exports=t()},3322:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>a});var r=n(5413);var i=n(5209),o=n(3564);function a(e){return function(e){if(Array.isArray(e))return(0,r.A)(e)}(e)||(0,i.A)(e)||(0,o.A)(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}},3380:(e,t,n)=>{\"use strict\";n.r(t)},3382:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>l});var r=n(8377),i=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,o=i&&\"object\"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===i?r.A.Buffer:void 0,s=a?a.allocUnsafe:void 0;const l=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}},3475:(e,t,n)=>{\"use strict\";n.r(t)},3564:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=n(5413);function i(e,t){if(e){if(\"string\"==typeof e)return(0,r.A)(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.A)(e,t):void 0}}},3594:(e,t,n)=>{\"use strict\";n.r(t)},3614:(e,t,n)=>{\"use strict\";n.r(t)},3653:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(2984),i=n(6826);const o=function(e,t){return e&&(0,r.A)(e,t,i.A)}},3779:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>d});var r=n(5826);const i=function(){this.__data__=new r.A,this.size=0};const o=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n};const a=function(e){return this.__data__.get(e)};const s=function(e){return this.__data__.has(e)};var l=n(6787),u=n(8412);const c=function(e,t){var n=this.__data__;if(n instanceof r.A){var i=n.__data__;if(!l.A||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new u.A(i)}return n.set(e,t),this.size=n.size,this};function p(e){var t=this.__data__=new r.A(e);this.size=t.size}p.prototype.clear=i,p.prototype.delete=o,p.prototype.get=a,p.prototype.has=s,p.prototype.set=c;const d=p},3869:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=/^(?:0|[1-9]\\d*)$/;const i=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&(\"number\"==n||\"symbol\"!=n&&r.test(e))&&e>-1&&e%1==0&&e<t}},3886:(e,t,n)=>{\"use strict\";function r(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}n.d(t,{A:()=>r})},4043:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(5186),i=n(6988);const o=function(e){return(0,r.A)((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(a=e.length>3&&\"function\"==typeof a?(o--,a):void 0,s&&(0,i.A)(n[0],n[1],s)&&(a=o<3?void 0:a,o=1),t=Object(t);++r<o;){var l=n[r];l&&e(t,l,r,a)}return t}))}},4175:(e,t,n)=>{\"use strict\";n.d(t,{default:()=>Vt});var r=n(4360),i=n(9121),o=n(4758),a=n(365),s=n(8782),l=n(9604),u=n(232),c=n.n(u),p=n(4785),d=n(7440),f=n(2965),h=0;const g=function(e){var t=++h;return(0,f.A)(e)+t};var m=n(6422),v=n(3074);const E=function(e,t){var n=[];return(0,v.A)(e,(function(e,r,i){t(e,r,i)&&n.push(e)})),n};var y=n(5955),b=n(8285);const x=function(e,t){return((0,b.A)(e)?m.A:E)(e,(0,y.A)(t,3))};var T=n(5200);var A=n(3111);function S(e,t){if(\"string\"==typeof e){var n=JSON.parse(e);if(t)for(var i in n.results.bindings)n.results.bindings[i]=t(n.results.bindings[i]);return n}if(\"object\"==(0,r.A)(e)&&e.constructor==={}.constructor){if(t&&e.results)for(var o in e.results.bindings)e.results.bindings[o]=t(e.results.bindings[o]);return e}throw new Error(\"Could not parse json\")}var L=n(2313),N=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",C=\"http://www.w3.org/2001/XMLSchema#\",I=\"http://www.w3.org/2000/10/swap/\";const _={xsd:{decimal:\"\".concat(C,\"decimal\"),boolean:\"\".concat(C,\"boolean\"),double:\"\".concat(C,\"double\"),integer:\"\".concat(C,\"integer\"),string:\"\".concat(C,\"string\")},rdf:{type:\"\".concat(N,\"type\"),nil:\"\".concat(N,\"nil\"),first:\"\".concat(N,\"first\"),rest:\"\".concat(N,\"rest\"),langString:\"\".concat(N,\"langString\")},owl:{sameAs:\"http://www.w3.org/2002/07/owl#sameAs\"},r:{forSome:\"\".concat(I,\"reify#forSome\"),forAll:\"\".concat(I,\"reify#forAll\")},log:{implies:\"\".concat(I,\"log#implies\"),isImpliedBy:\"\".concat(I,\"log#isImpliedBy\")}};function R(e){return(R=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,O(r.key),r)}}function O(e){var t=function(e,t){if(\"object\"!=R(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=R(r))return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==R(t)?t:t+\"\"}var D=_.xsd,P=/\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{8})|\\\\([^])/g,k={\"\\\\\":\"\\\\\",\"'\":\"'\",'\"':'\"',n:\"\\n\",r:\"\\r\",t:\"\\t\",f:\"\\f\",b:\"\\b\",_:\"_\",\"~\":\"~\",\".\":\".\",\"-\":\"-\",\"!\":\"!\",$:\"$\",\"&\":\"&\",\"(\":\"(\",\")\":\")\",\"*\":\"*\",\"+\":\"+\",\",\":\",\",\";\":\";\",\"=\":\"=\",\"/\":\"/\",\"?\":\"?\",\"#\":\"#\",\"@\":\"@\",\"%\":\"%\"},M=/[\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]/,F={_iri:!0,_unescapedIri:!0,_simpleQuotedString:!0,_langcode:!0,_blank:!0,_newline:!0,_comment:!0,_whitespace:!0,_endOfFile:!0},B=/$0^/,G=function(){return e=function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this._iri=/^<((?:[^ <>{}\\\\]|\\\\[uU])+)>[ \\t]*/,this._unescapedIri=/^<([^\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]*)>[ \\t]*/,this._simpleQuotedString=/^\"([^\"\\\\\\r\\n]*)\"(?=[^\"])/,this._simpleApostropheString=/^'([^'\\\\\\r\\n]*)'(?=[^'])/,this._langcode=/^@([a-z]+(?:-[a-z0-9]+)*)(?=[^a-z0-9\\-])/i,this._prefix=/^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:(?=[#\\s<])/,this._prefixed=/^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:((?:(?:[0-:A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])(?:(?:[\\.\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])*(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~]))?)?)(?:[ \\t]+|(?=\\.?[,;!\\^\\s#()\\[\\]\\{\\}\"'<>]))/,this._variable=/^\\?(?:(?:[A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?=[.,;!\\^\\s#()\\[\\]\\{\\}\"'<>])/,this._blank=/^_:((?:[0-9A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?:[ \\t]+|(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>]))/,this._number=/^[\\-+]?(?:(\\d+\\.\\d*|\\.?\\d+)[eE][\\-+]?|\\d*(\\.)?)\\d+(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>])/,this._boolean=/^(?:true|false)(?=[.,;\\s#()\\[\\]\\{\\}\"'<>])/,this._keyword=/^@[a-z]+(?=[\\s#<:])/i,this._sparqlKeyword=/^(?:PREFIX|BASE|GRAPH)(?=[\\s#<])/i,this._shortPredicates=/^a(?=[\\s#()\\[\\]\\{\\}\"'<>])/,this._newline=/^[ \\t]*(?:#[^\\n\\r]*)?(?:\\r\\n|\\n|\\r)[ \\t]*/,this._comment=/#([^\\n\\r]*)/,this._whitespace=/^[ \\t]+/,this._endOfFile=/^(?:#[^\\n\\r]*)?$/,t=t||{},this._isImpliedBy=t.isImpliedBy,this._lineMode=!!t.lineMode)for(var n in this._n3Mode=!1,this)!(n in F)&&this[n]instanceof RegExp&&(this[n]=B);else this._n3Mode=!1!==t.n3;this.comments=!!t.comments,this._literalClosingPos=0},(t=[{key:\"_tokenizeToEnd\",value:function(e,t){for(var n=this._input,r=n.length;;){for(var i=void 0,o=void 0;i=this._newline.exec(n);)this.comments&&(o=this._comment.exec(i[0]))&&E(\"comment\",o[1],\"\",this._line,i[0].length),n=n.substr(i[0].length,n.length),r=n.length,this._line++;if(!i&&(i=this._whitespace.exec(n))&&(n=n.substr(i[0].length,n.length)),this._endOfFile.test(n))return t&&(this.comments&&(o=this._comment.exec(n))&&E(\"comment\",o[1],\"\",this._line,n.length),n=null,E(\"eof\",\"\",\"\",this._line,0)),this._input=n;var a=this._line,s=n[0],l=\"\",u=\"\",c=\"\",p=null,d=0,f=!1;switch(s){case\"^\":if(n.length<3)break;if(\"^\"!==n[1]){this._n3Mode&&(d=1,l=\"^\");break}if(this._previousMarker=\"^^\",\"<\"!==(n=n.substr(2))[0]){f=!0;break}case\"<\":if(p=this._unescapedIri.exec(n))l=\"IRI\",u=p[1];else if(p=this._iri.exec(n)){if(null===(u=this._unescape(p[1]))||M.test(u))return y(this);l=\"IRI\"}else n.length>1&&\"<\"===n[1]?(l=\"<<\",d=2):this._n3Mode&&n.length>1&&\"=\"===n[1]&&(d=2,this._isImpliedBy?(l=\"abbreviation\",u=\"<\"):(l=\"inverse\",u=\">\"));break;case\">\":n.length>1&&\">\"===n[1]&&(l=\">>\",d=2);break;case\"_\":((p=this._blank.exec(n))||t&&(p=this._blank.exec(\"\".concat(n,\" \"))))&&(l=\"blank\",c=\"_\",u=p[1]);break;case'\"':if(p=this._simpleQuotedString.exec(n))u=p[1];else{var h=this._parseLiteral(n);if(u=h.value,d=h.matchLength,null===u)return y(this)}null===p&&0===d||(l=\"literal\",this._literalClosingPos=0);break;case\"'\":if(!this._lineMode){if(p=this._simpleApostropheString.exec(n))u=p[1];else{var g=this._parseLiteral(n);if(u=g.value,d=g.matchLength,null===u)return y(this)}null===p&&0===d||(l=\"literal\",this._literalClosingPos=0)}break;case\"?\":this._n3Mode&&(p=this._variable.exec(n))&&(l=\"var\",u=p[0]);break;case\"@\":\"literal\"===this._previousMarker&&(p=this._langcode.exec(n))?(l=\"langcode\",u=p[1]):(p=this._keyword.exec(n))&&(l=p[0]);break;case\".\":if(1===n.length?t:n[1]<\"0\"||n[1]>\"9\"){l=\".\",d=1;break}case\"0\":case\"1\":case\"2\":case\"3\":case\"4\":case\"5\":case\"6\":case\"7\":case\"8\":case\"9\":case\"+\":case\"-\":(p=this._number.exec(n)||t&&(p=this._number.exec(\"\".concat(n,\" \"))))&&(l=\"literal\",u=p[0],c=\"string\"==typeof p[1]?D.double:\"string\"==typeof p[2]?D.decimal:D.integer);break;case\"B\":case\"b\":case\"p\":case\"P\":case\"G\":case\"g\":(p=this._sparqlKeyword.exec(n))?l=p[0].toUpperCase():f=!0;break;case\"f\":case\"t\":(p=this._boolean.exec(n))?(l=\"literal\",u=p[0],c=D.boolean):f=!0;break;case\"a\":(p=this._shortPredicates.exec(n))?(l=\"abbreviation\",u=\"a\"):f=!0;break;case\"=\":this._n3Mode&&n.length>1&&(l=\"abbreviation\",\">\"!==n[1]?(d=1,u=\"=\"):(d=2,u=\">\"));break;case\"!\":if(!this._n3Mode)break;case\",\":case\";\":case\"[\":case\"]\":case\"(\":case\")\":case\"}\":this._lineMode||(d=1,l=s);break;case\"{\":!this._lineMode&&n.length>=2&&(\"|\"===n[1]?(l=\"{|\",d=2):(l=s,d=1));break;case\"|\":n.length>=2&&\"}\"===n[1]&&(l=\"|}\",d=2);break;default:f=!0}if(f&&(\"@prefix\"!==this._previousMarker&&\"PREFIX\"!==this._previousMarker||!(p=this._prefix.exec(n))?((p=this._prefixed.exec(n))||t&&(p=this._prefixed.exec(\"\".concat(n,\" \"))))&&(l=\"prefixed\",c=p[1]||\"\",u=this._unescape(p[2])):(l=\"prefix\",u=p[1]||\"\")),\"^^\"===this._previousMarker)switch(l){case\"prefixed\":l=\"type\";break;case\"IRI\":l=\"typeIRI\";break;default:l=\"\"}if(!l)return t||!/^'''|^\"\"\"/.test(n)&&/\\n|\\r/.test(n)?y(this):this._input=n;var m=d||p[0].length,v=E(l,u,c,a,m);this.previousToken=v,this._previousMarker=l,n=n.substr(m,n.length)}function E(t,i,o,a,s){var l=n?r-n.length:r,u={type:t,value:i,prefix:o,line:a,start:l,end:l+s};return e(null,u),u}function y(t){e(t._syntaxError(/^\\S*/.exec(n)[0]))}}},{key:\"_unescape\",value:function(e){var t=!1,n=e.replace(P,(function(e,n,r,i){if(\"string\"==typeof n)return String.fromCharCode(Number.parseInt(n,16));if(\"string\"==typeof r){var o=Number.parseInt(r,16);return o<=65535?String.fromCharCode(Number.parseInt(r,16)):String.fromCharCode(55296+((o-=65536)>>10),56320+(1023&o))}return i in k?k[i]:(t=!0,\"\")}));return t?null:n}},{key:\"_parseLiteral\",value:function(e){if(e.length>=3){for(var t=e.match(/^(?:\"\"\"|\"|'''|'|)/)[0],n=t.length,r=Math.max(this._literalClosingPos,n);(r=e.indexOf(t,r))>0;){for(var i=0;\"\\\\\"===e[r-i-1];)i++;if(i%2==0){var o=e.substring(n,r),a=o.split(/\\r\\n|\\r|\\n/).length-1,s=r+n;if(1===n&&0!==a||3===n&&this._lineMode)break;return this._line+=a,{value:this._unescape(o),matchLength:s}}r++}this._literalClosingPos=e.length-n+1}return{value:\"\",matchLength:0}}},{key:\"_syntaxError\",value:function(e){this._input=null;var t=new Error('Unexpected \"'.concat(e,'\" on line ').concat(this._line,\".\"));return t.context={token:void 0,line:this._line,previousToken:this.previousToken},t}},{key:\"_readStartingBom\",value:function(e){return e.startsWith(\"\\ufeff\")?e.substr(1):e}},{key:\"tokenize\",value:function(e,t){var n=this;if(this._line=1,\"string\"==typeof e){if(this._input=this._readStartingBom(e),\"function\"!=typeof t){var r,i=[];if(this._tokenizeToEnd((function(e,t){return e?r=e:i.push(t)}),!0),r)throw r;return i}queueMicrotask((function(){return n._tokenizeToEnd(t,!0)}))}else this._pendingBuffer=null,\"function\"==typeof e.setEncoding&&e.setEncoding(\"utf8\"),e.on(\"data\",(function(e){null!==n._input&&0!==e.length&&(n._pendingBuffer&&(e=L.hp.concat([n._pendingBuffer,e]),n._pendingBuffer=null),128&e[e.length-1]?n._pendingBuffer=e:(void 0===n._input?n._input=n._readStartingBom(\"string\"==typeof e?e:e.toString()):n._input+=e,n._tokenizeToEnd(t,!1)))})),e.on(\"end\",(function(){\"string\"==typeof n._input&&n._tokenizeToEnd(t,!0)})),e.on(\"error\",t)}}])&&w(e.prototype,t),n&&w(e,n),Object.defineProperty(e,\"prototype\",{writable:!1}),e;var e,t,n}();function j(e){return(j=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function U(e,t,n){return t=q(t),H(e,function(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return function(){return!!e}()}()?Reflect.construct(t,n||[],q(e).constructor):t.apply(e,n))}function H(e,t){if(t&&(\"object\"==j(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return function(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}(e)}function q(e){return(q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function V(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&W(e,t)}function W(e,t){return(W=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function z(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function Q(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,$(r.key),r)}}function X(e,t,n){return t&&Q(e.prototype,t),n&&Q(e,n),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function $(e){var t=function(e,t){if(\"object\"!=j(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=j(r))return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==j(t)?t:t+\"\"}var Y,K=_.rdf,J=_.xsd,Z=0,ee={namedNode:le,blankNode:ue,variable:pe,literal:ce,defaultGraph:function(){return Y},quad:de,triple:de,fromTerm:fe,fromQuad:he};const te=ee;var ne=function(){function e(t){z(this,e),this.id=t}return X(e,[{key:\"value\",get:function(){return this.id}},{key:\"equals\",value:function(t){return t instanceof e?this.id===t.id:!!t&&this.termType===t.termType&&this.value===t.value}},{key:\"hashCode\",value:function(){return 0}},{key:\"toJSON\",value:function(){return{termType:this.termType,value:this.value}}}])}(),re=function(e){function t(){return z(this,t),U(this,t,arguments)}return V(t,e),X(t,[{key:\"termType\",get:function(){return\"NamedNode\"}}])}(ne),ie=function(e){function t(){return z(this,t),U(this,t,arguments)}return V(t,e),X(t,[{key:\"termType\",get:function(){return\"Literal\"}},{key:\"value\",get:function(){return this.id.substring(1,this.id.lastIndexOf('\"'))}},{key:\"language\",get:function(){var e=this.id,t=e.lastIndexOf('\"')+1;return t<e.length&&\"@\"===e[t++]?e.substr(t).toLowerCase():\"\"}},{key:\"datatype\",get:function(){return new re(this.datatypeString)}},{key:\"datatypeString\",get:function(){var e=this.id,t=e.lastIndexOf('\"')+1,n=t<e.length?e[t]:\"\";return\"^\"===n?e.substr(t+2):\"@\"!==n?J.string:K.langString}},{key:\"equals\",value:function(e){return e instanceof t?this.id===e.id:!!e&&!!e.datatype&&this.termType===e.termType&&this.value===e.value&&this.language===e.language&&this.datatype.value===e.datatype.value}},{key:\"toJSON\",value:function(){return{termType:this.termType,value:this.value,language:this.language,datatype:{termType:\"NamedNode\",value:this.datatypeString}}}}])}(ne),oe=function(e){function t(e){return z(this,t),U(this,t,[\"_:\".concat(e)])}return V(t,e),X(t,[{key:\"termType\",get:function(){return\"BlankNode\"}},{key:\"value\",get:function(){return this.id.substr(2)}}])}(ne),ae=function(e){function t(e){return z(this,t),U(this,t,[\"?\".concat(e)])}return V(t,e),X(t,[{key:\"termType\",get:function(){return\"Variable\"}},{key:\"value\",get:function(){return this.id.substr(1)}}])}(ne);Y=new(function(e){function t(){var e;return z(this,t),H(e=U(this,t,[\"\"]),Y||e)}return V(t,e),X(t,[{key:\"termType\",get:function(){return\"DefaultGraph\"}},{key:\"equals\",value:function(e){return this===e||!!e&&this.termType===e.termType}}])}(ne));var se=function(e){function t(e,n,r,i){var o;return z(this,t),(o=U(this,t,[\"\"]))._subject=e,o._predicate=n,o._object=r,o._graph=i||Y,o}return V(t,e),X(t,[{key:\"termType\",get:function(){return\"Quad\"}},{key:\"subject\",get:function(){return this._subject}},{key:\"predicate\",get:function(){return this._predicate}},{key:\"object\",get:function(){return this._object}},{key:\"graph\",get:function(){return this._graph}},{key:\"toJSON\",value:function(){return{termType:this.termType,subject:this._subject.toJSON(),predicate:this._predicate.toJSON(),object:this._object.toJSON(),graph:this._graph.toJSON()}}},{key:\"equals\",value:function(e){return!!e&&this._subject.equals(e.subject)&&this._predicate.equals(e.predicate)&&this._object.equals(e.object)&&this._graph.equals(e.graph)}}])}(ne);function le(e){return new re(e)}function ue(e){return new oe(e||\"n3-\".concat(Z++))}function ce(e,t){if(\"string\"==typeof t)return new ie('\"'.concat(e,'\"@').concat(t.toLowerCase()));var n=t?t.value:\"\";return\"\"===n&&(\"boolean\"==typeof e?n=J.boolean:\"number\"==typeof e&&(Number.isFinite(e)?n=Number.isInteger(e)?J.integer:J.double:(n=J.double,Number.isNaN(e)||(e=e>0?\"INF\":\"-INF\")))),\"\"===n||n===J.string?new ie('\"'.concat(e,'\"')):new ie('\"'.concat(e,'\"^^').concat(n))}function pe(e){return new ae(e)}function de(e,t,n,r){return new se(e,t,n,r)}function fe(e){if(e instanceof ne)return e;switch(e.termType){case\"NamedNode\":return le(e.value);case\"BlankNode\":return ue(e.value);case\"Variable\":return pe(e.value);case\"DefaultGraph\":return Y;case\"Literal\":return ce(e.value,e.language||e.datatype);case\"Quad\":return he(e);default:throw new Error(\"Unexpected termType: \".concat(e.termType))}}function he(e){if(e instanceof se)return e;if(\"Quad\"!==e.termType)throw new Error(\"Unexpected termType: \".concat(e.termType));return de(fe(e.subject),fe(e.predicate),fe(e.object),fe(e.graph))}function ge(e){return(ge=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function me(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,ve(r.key),r)}}function ve(e){var t=function(e,t){if(\"object\"!=ge(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||\"default\");if(\"object\"!=ge(r))return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==ge(t)?t:t+\"\"}var Ee=0,ye=function(){return e=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this._contextStack=[],this._graph=null,t=t||{},this._setBase(t.baseIRI),t.factory&&xe(this,t.factory);var n=\"string\"==typeof t.format?t.format.match(/\\w*$/)[0].toLowerCase():\"\",r=/turtle/.test(n),i=/trig/.test(n),o=/triple/.test(n),a=/quad/.test(n),s=this._n3Mode=/n3/.test(n),l=o||a;(this._supportsNamedGraphs=!(r||s))||(this._readPredicateOrNamedGraph=this._readPredicate),this._supportsQuads=!(r||i||o||s),this._isImpliedBy=t.isImpliedBy,this._supportsRDFStar=\"\"===n||/star|\\*$/.test(n),l&&(this._resolveRelativeIRI=function(e){return null}),this._blankNodePrefix=\"string\"!=typeof t.blankNodePrefix?\"\":t.blankNodePrefix.replace(/^(?!_:)/,\"_:\"),this._lexer=t.lexer||new G({lineMode:l,n3:s,isImpliedBy:this._isImpliedBy}),this._explicitQuantifiers=!!t.explicitQuantifiers},t=[{key:\"_setBase\",value:function(e){if(e){var t=e.indexOf(\"#\");t>=0&&(e=e.substr(0,t)),this._base=e,this._basePath=e.indexOf(\"/\")<0?e:e.replace(/[^\\/?]*(?:\\?.*)?$/,\"\"),e=e.match(/^(?:([a-z][a-z0-9+.-]*:))?(?:\\/\\/[^\\/]*)?/i),this._baseRoot=e[0],this._baseScheme=e[1]}else this._base=\"\",this._basePath=\"\"}},{key:\"_saveContext\",value:function(e,t,n,r,i){var o=this._n3Mode;this._contextStack.push({type:e,subject:n,predicate:r,object:i,graph:t,inverse:!!o&&this._inversePredicate,blankPrefix:o?this._prefixes._:\"\",quantified:o?this._quantified:null}),o&&(this._inversePredicate=!1,this._prefixes._=this._graph?\"\".concat(this._graph.value,\".\"):\".\",this._quantified=Object.create(this._quantified))}},{key:\"_restoreContext\",value:function(e,t){var n=this._contextStack.pop();if(!n||n.type!==e)return this._error(\"Unexpected \".concat(t.type),t);this._subject=n.subject,this._predicate=n.predicate,this._object=n.object,this._graph=n.graph,this._n3Mode&&(this._inversePredicate=n.inverse,this._prefixes._=n.blankPrefix,this._quantified=n.quantified)}},{key:\"_readInTopContext\",value:function(e){switch(e.type){case\"eof\":return null!==this._graph?this._error(\"Unclosed graph\",e):(delete this._prefixes._,this._callback(null,null,this._prefixes));case\"PREFIX\":this._sparqlStyle=!0;case\"@prefix\":return this._readPrefix;case\"BASE\":this._sparqlStyle=!0;case\"@base\":return this._readBaseIRI;case\"{\":if(this._supportsNamedGraphs)return this._graph=\"\",this._subject=null,this._readSubject;case\"GRAPH\":if(this._supportsNamedGraphs)return this._readNamedGraphLabel;default:return this._readSubject(e)}}},{key:\"_readEntity\",value:function(e,t){var n;switch(e.type){case\"IRI\":case\"typeIRI\":var r=this._resolveIRI(e.value);if(null===r)return this._error(\"Invalid IRI\",e);n=this._factory.namedNode(r);break;case\"type\":case\"prefixed\":var i=this._prefixes[e.prefix];if(void 0===i)return this._error('Undefined prefix \"'.concat(e.prefix,':\"'),e);n=this._factory.namedNode(i+e.value);break;case\"blank\":n=this._factory.blankNode(this._prefixes[e.prefix]+e.value);break;case\"var\":n=this._factory.variable(e.value.substr(1));break;default:return this._error(\"Expected entity but got \".concat(e.type),e)}return!t&&this._n3Mode&&n.id in this._quantified&&(n=this._quantified[n.id]),n}},{key:\"_readSubject\",value:function(e){switch(this._predicate=null,e.type){case\"[\":return this._saveContext(\"blank\",this._graph,this._subject=this._factory.blankNode(),null,null),this._readBlankNodeHead;case\"(\":return this._saveContext(\"list\",this._graph,this.RDF_NIL,null,null),this._subject=null,this._readListItem;case\"{\":return this._n3Mode?(this._saveContext(\"formula\",this._graph,this._graph=this._factory.blankNode(),null,null),this._readSubject):this._error(\"Unexpected graph\",e);case\"}\":return this._readPunctuation(e);case\"@forSome\":return this._n3Mode?(this._subject=null,this._predicate=this.N3_FORSOME,this._quantifier=\"blankNode\",this._readQuantifierList):this._error('Unexpected \"@forSome\"',e);case\"@forAll\":return this._n3Mode?(this._subject=null,this._predicate=this.N3_FORALL,this._quantifier=\"variable\",this._readQuantifierList):this._error('Unexpected \"@forAll\"',e);case\"literal\":if(!this._n3Mode)return this._error(\"Unexpected literal\",e);if(0===e.prefix.length)return this._literalValue=e.value,this._completeSubjectLiteral;this._subject=this._factory.literal(e.value,this._factory.namedNode(e.prefix));break;case\"<<\":return this._supportsRDFStar?(this._saveContext(\"<<\",this._graph,null,null,null),this._graph=null,this._readSubject):this._error(\"Unexpected RDF-star syntax\",e);default:if(void 0===(this._subject=this._readEntity(e)))return;if(this._n3Mode)return this._getPathReader(this._readPredicateOrNamedGraph)}return this._readPredicateOrNamedGraph}},{key:\"_readPredicate\",value:function(e){var t=e.type;switch(t){case\"inverse\":this._inversePredicate=!0;case\"abbreviation\":this._predicate=this.ABBREVIATIONS[e.value];break;case\".\":case\"]\":case\"}\":return null===this._predicate?this._error(\"Unexpected \".concat(t),e):(this._subject=null,\"]\"===t?this._readBlankNodeTail(e):this._readPunctuation(e));case\";\":return null!==this._predicate?this._readPredicate:this._error(\"Expected predicate but got ;\",e);case\"[\":if(this._n3Mode)return this._saveContext(\"blank\",this._graph,this._subject,this._subject=this._factory.blankNode(),null),this._readBlankNodeHead;case\"blank\":if(!this._n3Mode)return this._error(\"Disallowed blank node as predicate\",e);default:if(void 0===(this._predicate=this._readEntity(e)))return}return this._readObject}},{key:\"_readObject\",value:function(e){switch(e.type){case\"literal\":if(0===e.prefix.length)return this._literalValue=e.value,this._readDataTypeOrLang;this._object=this._factory.literal(e.value,this._factory.namedNode(e.prefix));break;case\"[\":return this._saveContext(\"blank\",this._graph,this._subject,this._predicate,this._subject=this._factory.blankNode()),this._readBlankNodeHead;case\"(\":return this._saveContext(\"list\",this._graph,this._subject,this._predicate,this.RDF_NIL),this._subject=null,this._readListItem;case\"{\":return this._n3Mode?(this._saveContext(\"formula\",this._graph,this._subject,this._predicate,this._graph=this._factory.blankNode()),this._readSubject):this._error(\"Unexpected graph\",e);case\"<<\":return this._supportsRDFStar?(this._saveContext(\"<<\",this._graph,this._subject,this._predicate,null),this._graph=null,this._readSubject):this._error(\"Unexpected RDF-star syntax\",e);default:if(void 0===(this._object=this._readEntity(e)))return;if(this._n3Mode)return this._getPathReader(this._getContextEndReader())}return this._getContextEndReader()}},{key:\"_readPredicateOrNamedGraph\",value:function(e){return\"{\"===e.type?this._readGraph(e):this._readPredicate(e)}},{key:\"_readGraph\",value:function(e){return\"{\"!==e.type?this._error(\"Expected graph but got \".concat(e.type),e):(this._graph=this._subject,this._subject=null,this._readSubject)}},{key:\"_readBlankNodeHead\",value:function(e){return\"]\"===e.type?(this._subject=null,this._readBlankNodeTail(e)):(this._predicate=null,this._readPredicate(e))}},{key:\"_readBlankNodeTail\",value:function(e){if(\"]\"!==e.type)return this._readBlankNodePunctuation(e);null!==this._subject&&this._emit(this._subject,this._predicate,this._object,this._graph);var t=null===this._predicate;return this._restoreContext(\"blank\",e),null!==this._object?this._getContextEndReader():null!==this._predicate?this._readObject:t?this._readPredicateOrNamedGraph:this._readPredicateAfterBlank}},{key:\"_readPredicateAfterBlank\",value:function(e){switch(e.type){case\".\":case\"}\":return this._subject=null,this._readPunctuation(e);default:return this._readPredicate(e)}}},{key:\"_readListItem\",value:function(e){var t=null,n=null,r=this._readListItem,i=this._subject,o=this._contextStack,a=o[o.length-1];switch(e.type){case\"[\":this._saveContext(\"blank\",this._graph,n=this._factory.blankNode(),this.RDF_FIRST,this._subject=t=this._factory.blankNode()),r=this._readBlankNodeHead;break;case\"(\":this._saveContext(\"list\",this._graph,n=this._factory.blankNode(),this.RDF_FIRST,this.RDF_NIL),this._subject=null;break;case\")\":if(this._restoreContext(\"list\",e),0!==o.length&&\"list\"===o[o.length-1].type&&this._emit(this._subject,this._predicate,this._object,this._graph),null===this._predicate){if(r=this._readPredicate,this._subject===this.RDF_NIL)return r}else if(r=this._getContextEndReader(),this._object===this.RDF_NIL)return r;n=this.RDF_NIL;break;case\"literal\":0===e.prefix.length?(this._literalValue=e.value,r=this._readListItemDataTypeOrLang):(t=this._factory.literal(e.value,this._factory.namedNode(e.prefix)),r=this._getContextEndReader());break;case\"{\":return this._n3Mode?(this._saveContext(\"formula\",this._graph,this._subject,this._predicate,this._graph=this._factory.blankNode()),this._readSubject):this._error(\"Unexpected graph\",e);default:if(void 0===(t=this._readEntity(e)))return}if(null===n&&(this._subject=n=this._factory.blankNode()),null===i?null===a.predicate?a.subject=n:a.object=n:this._emit(i,this.RDF_REST,n,this._graph),null!==t){if(this._n3Mode&&(\"IRI\"===e.type||\"prefixed\"===e.type))return this._saveContext(\"item\",this._graph,n,this.RDF_FIRST,t),this._subject=t,this._predicate=null,this._getPathReader(this._readListItem);this._emit(n,this.RDF_FIRST,t,this._graph)}return r}},{key:\"_readDataTypeOrLang\",value:function(e){return this._completeObjectLiteral(e,!1)}},{key:\"_readListItemDataTypeOrLang\",value:function(e){return this._completeObjectLiteral(e,!0)}},{key:\"_completeLiteral\",value:function(e){var t=this._factory.literal(this._literalValue);switch(e.type){case\"type\":case\"typeIRI\":var n=this._readEntity(e);if(void 0===n)return;t=this._factory.literal(this._literalValue,n),e=null;break;case\"langcode\":t=this._factory.literal(this._literalValue,e.value),e=null}return{token:e,literal:t}}},{key:\"_completeSubjectLiteral\",value:function(e){return this._subject=this._completeLiteral(e).literal,this._readPredicateOrNamedGraph}},{key:\"_completeObjectLiteral\",value:function(e,t){var n=this._completeLiteral(e);if(n)return this._object=n.literal,t&&this._emit(this._subject,this.RDF_FIRST,this._object,this._graph),null===n.token?this._getContextEndReader():(this._readCallback=this._getContextEndReader(),this._readCallback(n.token))}},{key:\"_readFormulaTail\",value:function(e){return\"}\"!==e.type?this._readPunctuation(e):(null!==this._subject&&this._emit(this._subject,this._predicate,this._object,this._graph),this._restoreContext(\"formula\",e),null===this._object?this._readPredicate:this._getContextEndReader())}},{key:\"_readPunctuation\",value:function(e){var t,n=this._graph,r=this._subject,i=this._inversePredicate;switch(e.type){case\"}\":if(null===this._graph)return this._error(\"Unexpected graph closing\",e);if(this._n3Mode)return this._readFormulaTail(e);this._graph=null;case\".\":this._subject=null,t=this._contextStack.length?this._readSubject:this._readInTopContext,i&&(this._inversePredicate=!1);break;case\";\":t=this._readPredicate;break;case\",\":t=this._readObject;break;case\"{|\":if(!this._supportsRDFStar)return this._error(\"Unexpected RDF-star syntax\",e);var o=this._predicate,a=this._object;this._subject=this._factory.quad(r,o,a,this.DEFAULTGRAPH),t=this._readPredicate;break;case\"|}\":if(\"Quad\"!==this._subject.termType)return this._error(\"Unexpected asserted triple closing\",e);this._subject=null,t=this._readPunctuation;break;default:if(this._supportsQuads&&null===this._graph&&void 0!==(n=this._readEntity(e))){t=this._readQuadPunctuation;break}return this._error('Expected punctuation to follow \"'.concat(this._object.id,'\"'),e)}if(null!==r){var s=this._predicate,l=this._object;i?this._emit(l,s,r,n):this._emit(r,s,l,n)}return t}},{key:\"_readBlankNodePunctuation\",value:function(e){var t;switch(e.type){case\";\":t=this._readPredicate;break;case\",\":t=this._readObject;break;default:return this._error('Expected punctuation to follow \"'.concat(this._object.id,'\"'),e)}return this._emit(this._subject,this._predicate,this._object,this._graph),t}},{key:\"_readQuadPunctuation\",value:function(e){return\".\"!==e.type?this._error(\"Expected dot to follow quad\",e):this._readInTopContext}},{key:\"_readPrefix\",value:function(e){return\"prefix\"!==e.type?this._error(\"Expected prefix to follow @prefix\",e):(this._prefix=e.value,this._readPrefixIRI)}},{key:\"_readPrefixIRI\",value:function(e){if(\"IRI\"!==e.type)return this._error('Expected IRI to follow prefix \"'.concat(this._prefix,':\"'),e);var t=this._readEntity(e);return this._prefixes[this._prefix]=t.value,this._prefixCallback(this._prefix,t),this._readDeclarationPunctuation}},{key:\"_readBaseIRI\",value:function(e){var t=\"IRI\"===e.type&&this._resolveIRI(e.value);return t?(this._setBase(t),this._readDeclarationPunctuation):this._error(\"Expected valid IRI to follow base declaration\",e)}},{key:\"_readNamedGraphLabel\",value:function(e){switch(e.type){case\"IRI\":case\"blank\":case\"prefixed\":return this._readSubject(e),this._readGraph;case\"[\":return this._readNamedGraphBlankLabel;default:return this._error(\"Invalid graph label\",e)}}},{key:\"_readNamedGraphBlankLabel\",value:function(e){return\"]\"!==e.type?this._error(\"Invalid graph label\",e):(this._subject=this._factory.blankNode(),this._readGraph)}},{key:\"_readDeclarationPunctuation\",value:function(e){return this._sparqlStyle?(this._sparqlStyle=!1,this._readInTopContext(e)):\".\"!==e.type?this._error(\"Expected declaration to end with a dot\",e):this._readInTopContext}},{key:\"_readQuantifierList\",value:function(e){var t;switch(e.type){case\"IRI\":case\"prefixed\":if(void 0!==(t=this._readEntity(e,!0)))break;default:return this._error(\"Unexpected \".concat(e.type),e)}return this._explicitQuantifiers?(null===this._subject?this._emit(this._graph||this.DEFAULTGRAPH,this._predicate,this._subject=this._factory.blankNode(),this.QUANTIFIERS_GRAPH):this._emit(this._subject,this.RDF_REST,this._subject=this._factory.blankNode(),this.QUANTIFIERS_GRAPH),this._emit(this._subject,this.RDF_FIRST,t,this.QUANTIFIERS_GRAPH)):this._quantified[t.id]=this._factory[this._quantifier](this._factory.blankNode().value),this._readQuantifierPunctuation}},{key:\"_readQuantifierPunctuation\",value:function(e){return\",\"===e.type?this._readQuantifierList:(this._explicitQuantifiers&&(this._emit(this._subject,this.RDF_REST,this.RDF_NIL,this.QUANTIFIERS_GRAPH),this._subject=null),this._readCallback=this._getContextEndReader(),this._readCallback(e))}},{key:\"_getPathReader\",value:function(e){return this._afterPath=e,this._readPath}},{key:\"_readPath\",value:function(e){switch(e.type){case\"!\":return this._readForwardPath;case\"^\":return this._readBackwardPath;default:var t=this._contextStack,n=t.length&&t[t.length-1];if(n&&\"item\"===n.type){var r=this._subject;this._restoreContext(\"item\",e),this._emit(this._subject,this.RDF_FIRST,r,this._graph)}return this._afterPath(e)}}},{key:\"_readForwardPath\",value:function(e){var t,n,r=this._factory.blankNode();if(void 0!==(n=this._readEntity(e)))return null===this._predicate?(t=this._subject,this._subject=r):(t=this._object,this._object=r),this._emit(t,n,r,this._graph),this._readPath}},{key:\"_readBackwardPath\",value:function(e){var t,n,r=this._factory.blankNode();if(void 0!==(t=this._readEntity(e)))return null===this._predicate?(n=this._subject,this._subject=r):(n=this._object,this._object=r),this._emit(r,t,n,this._graph),this._readPath}},{key:\"_readRDFStarTailOrGraph\",value:function(e){return\">>\"!==e.type?this._supportsQuads&&null===this._graph&&void 0!==(this._graph=this._readEntity(e))?this._readRDFStarTail:this._error('Expected >> to follow \"'.concat(this._object.id,'\"'),e):this._readRDFStarTail(e)}},{key:\"_readRDFStarTail\",value:function(e){if(\">>\"!==e.type)return this._error(\"Expected >> but got \".concat(e.type),e);var t=this._factory.quad(this._subject,this._predicate,this._object,this._graph||this.DEFAULTGRAPH);return this._restoreContext(\"<<\",e),null===this._subject?(this._subject=t,this._readPredicate):(this._object=t,this._getContextEndReader())}},{key:\"_getContextEndReader\",value:function(){var e=this._contextStack;if(!e.length)return this._readPunctuation;switch(e[e.length-1].type){case\"blank\":return this._readBlankNodeTail;case\"list\":return this._readListItem;case\"formula\":return this._readFormulaTail;case\"<<\":return this._readRDFStarTailOrGraph}}},{key:\"_emit\",value:function(e,t,n,r){this._callback(null,this._factory.quad(e,t,n,r||this.DEFAULTGRAPH))}},{key:\"_error\",value:function(e,t){var n=new Error(\"\".concat(e,\" on line \").concat(t.line,\".\"));n.context={token:t,line:t.line,previousToken:this._lexer.previousToken},this._callback(n),this._callback=be}},{key:\"_resolveIRI\",value:function(e){return/^[a-z][a-z0-9+.-]*:/i.test(e)?e:this._resolveRelativeIRI(e)}},{key:\"_resolveRelativeIRI\",value:function(e){if(!e.length)return this._base;switch(e[0]){case\"#\":return this._base+e;case\"?\":return this._base.replace(/(?:\\?.*)?$/,e);case\"/\":return(\"/\"===e[1]?this._baseScheme:this._baseRoot)+this._removeDotSegments(e);default:return/^[^/:]*:/.test(e)?null:this._removeDotSegments(this._basePath+e)}}},{key:\"_removeDotSegments\",value:function(e){if(!/(^|\\/)\\.\\.?($|[/#?])/.test(e))return e;for(var t=e.length,n=\"\",r=-1,i=-1,o=0,a=\"/\";r<t;){switch(a){case\":\":if(i<0&&\"/\"===e[++r]&&\"/\"===e[++r])for(;(i=r+1)<t&&\"/\"!==e[i];)r=i;break;case\"?\":case\"#\":r=t;break;case\"/\":if(\".\"===e[r+1])switch(a=e[1+ ++r]){case\"/\":n+=e.substring(o,r-1),o=r+1;break;case void 0:case\"?\":case\"#\":return n+e.substring(o,r)+e.substr(r+1);case\".\":if(void 0===(a=e[1+ ++r])||\"/\"===a||\"?\"===a||\"#\"===a){if((o=(n+=e.substring(o,r-2)).lastIndexOf(\"/\"))>=i&&(n=n.substr(0,o)),\"/\"!==a)return\"\".concat(n,\"/\").concat(e.substr(r+1));o=r+1}}}a=e[++r]}return n+e.substring(o)}},{key:\"parse\",value:function(e,t,n){var r,i,o,a=this;if(t&&(t.onQuad||t.onPrefix||t.onComment)?(r=t.onQuad,i=t.onPrefix,o=t.onComment):(r=t,i=n),this._readCallback=this._readInTopContext,this._sparqlStyle=!1,this._prefixes=Object.create(null),this._prefixes._=this._blankNodePrefix?this._blankNodePrefix.substr(2):\"b\".concat(Ee++,\"_\"),this._prefixCallback=i||be,this._inversePredicate=!1,this._quantified=Object.create(null),!r){var s,l=[];if(this._callback=function(e,t){e?s=e:t&&l.push(t)},this._lexer.tokenize(e).every((function(e){return a._readCallback=a._readCallback(e)})),s)throw s;return l}var u=function(e,t){null!==e?(a._callback(e),a._callback=be):a._readCallback&&(a._readCallback=a._readCallback(t))};o&&(this._lexer.comments=!0,u=function(e,t){null!==e?(a._callback(e),a._callback=be):a._readCallback&&(\"comment\"===t.type?o(t.value):a._readCallback=a._readCallback(t))}),this._callback=r,this._lexer.tokenize(e,u)}}],n=[{key:\"_resetBlankNodePrefix\",value:function(){Ee=0}}],t&&me(e.prototype,t),n&&me(e,n),Object.defineProperty(e,\"prototype\",{writable:!1}),e;var e,t,n}();function be(){}function xe(e,t){e._factory=t,e.DEFAULTGRAPH=t.defaultGraph(),e.RDF_FIRST=t.namedNode(_.rdf.first),e.RDF_REST=t.namedNode(_.rdf.rest),e.RDF_NIL=t.namedNode(_.rdf.nil),e.N3_FORALL=t.namedNode(_.r.forAll),e.N3_FORSOME=t.namedNode(_.r.forSome),e.ABBREVIATIONS={a:t.namedNode(_.rdf.type),\"=\":t.namedNode(_.owl.sameAs),\">\":t.namedNode(_.log.implies),\"<\":t.namedNode(_.log.isImpliedBy)},e.QUANTIFIERS_GRAPH=t.namedNode(\"urn:n3:quantifiers\")}function Te(e){if(\"NamedNode\"===e.termType)return{value:e.value,type:\"uri\"};if(\"Literal\"===e.termType){var t={value:e.value,type:\"literal\"},n=e.language;n&&(t[\"xml:lang\"]=n);var r=e.datatypeString;return r&&(t.datatype=r),t}return\"BlankNode\"===e.termType?{value:e.value,type:\"bnode\"}:{value:e.value,type:\"uri\"}}function Ae(e){return(new ye).parse(e||\"\")}xe(ye.prototype,te);const Se=(0,n(4636).A)({\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&#39;\":\"'\"});var Le=/&(?:amp|lt|gt|quot|#39);/g,Ne=RegExp(Le.source);const Ce=function(e){return(e=(0,f.A)(e))&&Ne.test(e)?e.replace(Le,Se):e};var Ie=n(3001),_e=n(4889),Re=n(2078),we=n(7242),Oe=n(6118),De=n(4603),Pe=n(4249),ke=Object.prototype.hasOwnProperty;const Me=function(e){if(null==e)return!0;if((0,we.A)(e)&&((0,b.A)(e)||\"string\"==typeof e||\"function\"==typeof e.splice||(0,Oe.A)(e)||(0,Pe.A)(e)||(0,Re.A)(e)))return!e.length;var t=(0,_e.A)(e);if(\"[object Map]\"==t||\"[object Set]\"==t)return!e.size;if((0,De.A)(e))return!(0,Ie.A)(e).length;for(var n in e)if(ke.call(e,n))return!1;return!0};function Fe(e){for(var t={vars:[]},n=0;n<e.childNodes.length;n++){var r=e.childNodes[n];if(\"variable\"==r.nodeName){var i=r.getAttribute(\"name\");i&&t.vars.push(i)}}return t}var Be=[\"uri\",\"literal\",\"bnode\",\"typed-literal\"];function Ge(e,t){for(var n={bindings:[]},r=0;r<e.childNodes.length;r++){for(var i=e.childNodes[r],o={},a=0;a<i.childNodes.length;a++){var s=i.childNodes[a];if(\"binding\"==s.nodeName){var l=s.getAttribute(\"name\");if(l)for(var u=0;u<s.childNodes.length;u++){var c=s.childNodes[u];if(\"#text\"!==c.nodeName&&!(Be.indexOf(c.nodeName)<0)){var p={type:c.nodeName,value:Ce(c.innerHTML)},d=c.getAttribute(\"datatype\");d&&(p.datatype=d),o[l]=p}}}}Me(o)||n.bindings.push(t(o))}return n}function je(e){return\"true\"===e.innerHTML}function Ue(e,t){if(\"string\"==typeof e){var n=(new DOMParser).parseFromString(e,\"text/xml\");if(n.childNodes.length){for(var r=n.childNodes[0],i={},o=0;o<r.childNodes.length;o++){var a=r.childNodes[o];\"head\"==a.nodeName&&(i.head=Fe(a)),\"results\"==a.nodeName&&(i.results=Ge(a,t)),\"boolean\"==a.nodeName&&(i.boolean=je(a))}return i}}}var He=n(4691);var qe=n(9736),Ve=n(1717),We=n(5209),ze=n(3564),Qe=n(3886);function Xe(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return $e(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?$e(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function $e(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ye(e){var t=e.split(\"\\n\");t.pop();var n,r=(n=t,(0,Ve.A)(n)||(0,We.A)(n)||(0,ze.A)(n)||(0,Qe.A)()),i=r[0],o=$e(r).slice(1),a=i.split(\"\\t\").map((function(e){return e.substring(1)})),s=o.map((function(e){var t,n={},r=Xe(e.split(\"\\t\").entries());try{for(r.s();!(t=r.n()).done;){var i=(0,qe.A)(t.value,2),o=i[0],s=i[1],l=a[o];if(\"<\"===s[0])n[l]={value:s.substring(1,s.length-1),type:\"uri\"};else if('\"'===s[0]){var u=s.lastIndexOf('\"'),c=s.substring(1,u);if(u===s.length-1)n[l]={value:c,type:\"literal\"};else if(u<s.lastIndexOf(\"@\")){var p=s.substring(s.lastIndexOf(\"@\")+1);n[l]={value:c,type:\"literal\",\"xml:lang\":p}}else if(u<s.lastIndexOf(\"^^\")){var d=s.substring(s.lastIndexOf(\"^^\")+2);n[l]={value:c,type:\"typed-literal\",datatype:d}}}}}catch(e){r.e(e)}finally{r.f()}return n}));return{head:{vars:a},results:{bindings:s}}}function Ke(e){return null==e?\"\":\"\"+e}function Je(e={}){const{separator:t,decimals:n}=e;return t?n?e=>e.toFixed(n).replace(\".\",t):e=>(\"\"+e).replace(\".\",t):n?e=>e.toFixed(n):e=>\"\"+e}function Ze(e={}){const t=\"string\"==typeof e.quote?e.quote:'\"',n=\"string\"==typeof e.escapedQuote?e.escapedQuote:`${t}${t}`;if(!t||t===n)return e=>e;const r=new RegExp(t,\"g\");return e=>(e.includes(t)&&(e=e.replace(r,n)),`${t}${e}${t}`)}new RegExp('\"',\"g\");function et(e={stringFormatter:Ze()}){return t=>e.stringFormatter(t.toString().slice(7,-1))}const tt=RegExp(\"[^.[\\\\]]+|\\\\[(?:([^\\\"'][^[]*)|([\\\"'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2)\\\\]|(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|$))\",\"g\");function nt(e,t,n){if(t in e){const r=e[t];return void 0===r?n:r}const r=Array.isArray(t)?t:function(e){var t,n,r;const i=[];let o;for(;o=tt.exec(e);)i.push(null!==(r=null!==(t=o[3])&&void 0!==t?t:null===(n=o[1])||void 0===n?void 0:n.trim())&&void 0!==r?r:o[0]);return i}(t);let i=e;for(const e of r)if(i=null==i?void 0:i[e],void 0===i)return n;return i}function rt(e,t){try{return Array.isArray(t)?e.push(...t):e.push(t),e}catch(n){return e.concat(t)}}function it(e,t){let n=!0;return e.reduce((e,r)=>(null==r&&(r=\"\"),n?(n=!1,\"\"+r):`${e}${t}${r}`),\"\")}var ot,at;!function(e){e.header=\"header\",e[void 0]=\"undefined\",e.boolean=\"boolean\",e.number=\"number\",e.bigint=\"bigint\",e.string=\"string\",e.symbol=\"symbol\",e.function=\"function\",e.object=\"object\"}(ot||(ot={}));class st{constructor(e){this.opts=this.preprocessOpts(e)}preprocessOpts(e){const t=Object.assign({},e);t.fields&&(t.fields=this.preprocessFieldsInfo(t.fields,t.defaultValue)),t.transforms=t.transforms||[];const n=t.formatters&&t.formatters.string||Ze(),r=function(e={stringFormatter:Ze()}){return t=>{if(null===t)return\"\";let n=JSON.stringify(t);return void 0===n?\"\":('\"'===n[0]&&(n=n.replace(/^\"(.+)\"$/,\"$1\")),e.stringFormatter(n))}}({stringFormatter:n}),i={header:n,undefined:Ke,boolean:Ke,number:Je(),bigint:Ke,string:n,symbol:et({stringFormatter:n}),function:r,object:r};return t.formatters=Object.assign(Object.assign({},i),t.formatters),t.delimiter=t.delimiter||\",\",t.eol=t.eol||\"\\n\",t.header=!1!==t.header,t.includeEmptyRows=t.includeEmptyRows||!1,t.withBOM=t.withBOM||!1,t}preprocessFieldsInfo(e,t){return e.map(e=>{if(\"string\"==typeof e)return{label:e,value:n=>nt(n,e,t)};if(\"object\"==typeof e){const n=\"default\"in e?e.default:t;if(\"string\"==typeof e.value){const t=e.value;return{label:e.label||e.value,value:e=>nt(e,t,n)}}if(\"function\"==typeof e.value){const t=e.label||e.value.name||\"\",r={label:t,default:n},i=e.value;return{label:t,value(e){const t=i(e,r);return void 0===t?n:t}}}}throw new Error(\"Invalid field info option. \"+JSON.stringify(e))})}getHeader(){return it(this.opts.fields.map(e=>this.opts.formatters.header(e.label)),this.opts.delimiter)}preprocessRow(e){return this.opts.transforms.reduce((e,t)=>e.map(e=>t(e)).reduce(rt,[]),[e])}processRow(e){if(!e)return;const t=this.opts.fields.map(t=>this.processCell(e,t));return this.opts.includeEmptyRows||!t.every(e=>\"\"===e)?it(t,this.opts.delimiter):void 0}processCell(e,t){return this.processValue(t.value(e))}processValue(e){return(0,this.opts.formatters[typeof e])(e)}}class lt extends st{constructor(e){super(e)}parse(e){const t=this.preprocessData(e);this.opts.fields=this.opts.fields||this.preprocessFieldsInfo(t.reduce((e,t)=>(Object.keys(t).forEach(t=>{e.includes(t)||e.push(t)}),e),[]),this.opts.defaultValue);const n=this.opts.header?this.getHeader():\"\",r=this.processData(t);return(this.opts.withBOM?\"\\ufeff\":\"\")+n+(n&&r?this.opts.eol:\"\")+r}preprocessData(e){const t=Array.isArray(e)?e:[e];if(!this.opts.fields){if(null==e||0===t.length)throw new Error('Data should not be empty or the \"fields\" option should be included');if(\"object\"!=typeof t[0])throw new Error('Data items should be objects or the \"fields\" option should be included')}return 0===this.opts.transforms.length?t:t.map(e=>this.preprocessRow(e)).reduce(rt,[])}processData(e){return it(e.map(e=>this.processRow(e)).filter(e=>e),this.opts.eol)}}!function(e){e[e.BACKSPACE=8]=\"BACKSPACE\",e[e.FORM_FEED=12]=\"FORM_FEED\",e[e.NEWLINE=10]=\"NEWLINE\",e[e.CARRIAGE_RETURN=13]=\"CARRIAGE_RETURN\",e[e.TAB=9]=\"TAB\",e[e.SPACE=32]=\"SPACE\",e[e.EXCLAMATION_MARK=33]=\"EXCLAMATION_MARK\",e[e.QUOTATION_MARK=34]=\"QUOTATION_MARK\",e[e.NUMBER_SIGN=35]=\"NUMBER_SIGN\",e[e.DOLLAR_SIGN=36]=\"DOLLAR_SIGN\",e[e.PERCENT_SIGN=37]=\"PERCENT_SIGN\",e[e.AMPERSAND=38]=\"AMPERSAND\",e[e.APOSTROPHE=39]=\"APOSTROPHE\",e[e.LEFT_PARENTHESIS=40]=\"LEFT_PARENTHESIS\",e[e.RIGHT_PARENTHESIS=41]=\"RIGHT_PARENTHESIS\",e[e.ASTERISK=42]=\"ASTERISK\",e[e.PLUS_SIGN=43]=\"PLUS_SIGN\",e[e.COMMA=44]=\"COMMA\",e[e.HYPHEN_MINUS=45]=\"HYPHEN_MINUS\",e[e.FULL_STOP=46]=\"FULL_STOP\",e[e.SOLIDUS=47]=\"SOLIDUS\",e[e.DIGIT_ZERO=48]=\"DIGIT_ZERO\",e[e.DIGIT_ONE=49]=\"DIGIT_ONE\",e[e.DIGIT_TWO=50]=\"DIGIT_TWO\",e[e.DIGIT_THREE=51]=\"DIGIT_THREE\",e[e.DIGIT_FOUR=52]=\"DIGIT_FOUR\",e[e.DIGIT_FIVE=53]=\"DIGIT_FIVE\",e[e.DIGIT_SIX=54]=\"DIGIT_SIX\",e[e.DIGIT_SEVEN=55]=\"DIGIT_SEVEN\",e[e.DIGIT_EIGHT=56]=\"DIGIT_EIGHT\",e[e.DIGIT_NINE=57]=\"DIGIT_NINE\",e[e.COLON=58]=\"COLON\",e[e.SEMICOLON=59]=\"SEMICOLON\",e[e.LESS_THAN_SIGN=60]=\"LESS_THAN_SIGN\",e[e.EQUALS_SIGN=61]=\"EQUALS_SIGN\",e[e.GREATER_THAN_SIGN=62]=\"GREATER_THAN_SIGN\",e[e.QUESTION_MARK=63]=\"QUESTION_MARK\",e[e.COMMERCIAL_AT=64]=\"COMMERCIAL_AT\",e[e.LATIN_CAPITAL_LETTER_A=65]=\"LATIN_CAPITAL_LETTER_A\",e[e.LATIN_CAPITAL_LETTER_B=66]=\"LATIN_CAPITAL_LETTER_B\",e[e.LATIN_CAPITAL_LETTER_C=67]=\"LATIN_CAPITAL_LETTER_C\",e[e.LATIN_CAPITAL_LETTER_D=68]=\"LATIN_CAPITAL_LETTER_D\",e[e.LATIN_CAPITAL_LETTER_E=69]=\"LATIN_CAPITAL_LETTER_E\",e[e.LATIN_CAPITAL_LETTER_F=70]=\"LATIN_CAPITAL_LETTER_F\",e[e.LATIN_CAPITAL_LETTER_G=71]=\"LATIN_CAPITAL_LETTER_G\",e[e.LATIN_CAPITAL_LETTER_H=72]=\"LATIN_CAPITAL_LETTER_H\",e[e.LATIN_CAPITAL_LETTER_I=73]=\"LATIN_CAPITAL_LETTER_I\",e[e.LATIN_CAPITAL_LETTER_J=74]=\"LATIN_CAPITAL_LETTER_J\",e[e.LATIN_CAPITAL_LETTER_K=75]=\"LATIN_CAPITAL_LETTER_K\",e[e.LATIN_CAPITAL_LETTER_L=76]=\"LATIN_CAPITAL_LETTER_L\",e[e.LATIN_CAPITAL_LETTER_M=77]=\"LATIN_CAPITAL_LETTER_M\",e[e.LATIN_CAPITAL_LETTER_N=78]=\"LATIN_CAPITAL_LETTER_N\",e[e.LATIN_CAPITAL_LETTER_O=79]=\"LATIN_CAPITAL_LETTER_O\",e[e.LATIN_CAPITAL_LETTER_P=80]=\"LATIN_CAPITAL_LETTER_P\",e[e.LATIN_CAPITAL_LETTER_Q=81]=\"LATIN_CAPITAL_LETTER_Q\",e[e.LATIN_CAPITAL_LETTER_R=82]=\"LATIN_CAPITAL_LETTER_R\",e[e.LATIN_CAPITAL_LETTER_S=83]=\"LATIN_CAPITAL_LETTER_S\",e[e.LATIN_CAPITAL_LETTER_T=84]=\"LATIN_CAPITAL_LETTER_T\",e[e.LATIN_CAPITAL_LETTER_U=85]=\"LATIN_CAPITAL_LETTER_U\",e[e.LATIN_CAPITAL_LETTER_V=86]=\"LATIN_CAPITAL_LETTER_V\",e[e.LATIN_CAPITAL_LETTER_W=87]=\"LATIN_CAPITAL_LETTER_W\",e[e.LATIN_CAPITAL_LETTER_X=88]=\"LATIN_CAPITAL_LETTER_X\",e[e.LATIN_CAPITAL_LETTER_Y=89]=\"LATIN_CAPITAL_LETTER_Y\",e[e.LATIN_CAPITAL_LETTER_Z=90]=\"LATIN_CAPITAL_LETTER_Z\",e[e.LEFT_SQUARE_BRACKET=91]=\"LEFT_SQUARE_BRACKET\",e[e.REVERSE_SOLIDUS=92]=\"REVERSE_SOLIDUS\",e[e.RIGHT_SQUARE_BRACKET=93]=\"RIGHT_SQUARE_BRACKET\",e[e.CIRCUMFLEX_ACCENT=94]=\"CIRCUMFLEX_ACCENT\",e[e.LOW_LINE=95]=\"LOW_LINE\",e[e.GRAVE_ACCENT=96]=\"GRAVE_ACCENT\",e[e.LATIN_SMALL_LETTER_A=97]=\"LATIN_SMALL_LETTER_A\",e[e.LATIN_SMALL_LETTER_B=98]=\"LATIN_SMALL_LETTER_B\",e[e.LATIN_SMALL_LETTER_C=99]=\"LATIN_SMALL_LETTER_C\",e[e.LATIN_SMALL_LETTER_D=100]=\"LATIN_SMALL_LETTER_D\",e[e.LATIN_SMALL_LETTER_E=101]=\"LATIN_SMALL_LETTER_E\",e[e.LATIN_SMALL_LETTER_F=102]=\"LATIN_SMALL_LETTER_F\",e[e.LATIN_SMALL_LETTER_G=103]=\"LATIN_SMALL_LETTER_G\",e[e.LATIN_SMALL_LETTER_H=104]=\"LATIN_SMALL_LETTER_H\",e[e.LATIN_SMALL_LETTER_I=105]=\"LATIN_SMALL_LETTER_I\",e[e.LATIN_SMALL_LETTER_J=106]=\"LATIN_SMALL_LETTER_J\",e[e.LATIN_SMALL_LETTER_K=107]=\"LATIN_SMALL_LETTER_K\",e[e.LATIN_SMALL_LETTER_L=108]=\"LATIN_SMALL_LETTER_L\",e[e.LATIN_SMALL_LETTER_M=109]=\"LATIN_SMALL_LETTER_M\",e[e.LATIN_SMALL_LETTER_N=110]=\"LATIN_SMALL_LETTER_N\",e[e.LATIN_SMALL_LETTER_O=111]=\"LATIN_SMALL_LETTER_O\",e[e.LATIN_SMALL_LETTER_P=112]=\"LATIN_SMALL_LETTER_P\",e[e.LATIN_SMALL_LETTER_Q=113]=\"LATIN_SMALL_LETTER_Q\",e[e.LATIN_SMALL_LETTER_R=114]=\"LATIN_SMALL_LETTER_R\",e[e.LATIN_SMALL_LETTER_S=115]=\"LATIN_SMALL_LETTER_S\",e[e.LATIN_SMALL_LETTER_T=116]=\"LATIN_SMALL_LETTER_T\",e[e.LATIN_SMALL_LETTER_U=117]=\"LATIN_SMALL_LETTER_U\",e[e.LATIN_SMALL_LETTER_V=118]=\"LATIN_SMALL_LETTER_V\",e[e.LATIN_SMALL_LETTER_W=119]=\"LATIN_SMALL_LETTER_W\",e[e.LATIN_SMALL_LETTER_X=120]=\"LATIN_SMALL_LETTER_X\",e[e.LATIN_SMALL_LETTER_Y=121]=\"LATIN_SMALL_LETTER_Y\",e[e.LATIN_SMALL_LETTER_Z=122]=\"LATIN_SMALL_LETTER_Z\",e[e.LEFT_CURLY_BRACKET=123]=\"LEFT_CURLY_BRACKET\",e[e.VERTICAL_LINE=124]=\"VERTICAL_LINE\",e[e.RIGHT_CURLY_BRACKET=125]=\"RIGHT_CURLY_BRACKET\",e[e.TILDE=126]=\"TILDE\"}(at||(at={}));at.QUOTATION_MARK,at.QUOTATION_MARK,at.REVERSE_SOLIDUS,at.REVERSE_SOLIDUS,at.SOLIDUS,at.SOLIDUS,at.LATIN_SMALL_LETTER_B,at.BACKSPACE,at.LATIN_SMALL_LETTER_F,at.FORM_FEED,at.LATIN_SMALL_LETTER_N,at.NEWLINE,at.LATIN_SMALL_LETTER_R,at.CARRIAGE_RETURN,at.LATIN_SMALL_LETTER_T,at.TAB;var ut;!function(e){e[e.LEFT_BRACE=0]=\"LEFT_BRACE\",e[e.RIGHT_BRACE=1]=\"RIGHT_BRACE\",e[e.LEFT_BRACKET=2]=\"LEFT_BRACKET\",e[e.RIGHT_BRACKET=3]=\"RIGHT_BRACKET\",e[e.COLON=4]=\"COLON\",e[e.COMMA=5]=\"COMMA\",e[e.TRUE=6]=\"TRUE\",e[e.FALSE=7]=\"FALSE\",e[e.NULL=8]=\"NULL\",e[e.STRING=9]=\"STRING\",e[e.NUMBER=10]=\"NUMBER\",e[e.SEPARATOR=11]=\"SEPARATOR\"}(ut||(ut={}));var ct;!function(e){e[e.START=0]=\"START\",e[e.ENDED=1]=\"ENDED\",e[e.ERROR=2]=\"ERROR\",e[e.TRUE1=3]=\"TRUE1\",e[e.TRUE2=4]=\"TRUE2\",e[e.TRUE3=5]=\"TRUE3\",e[e.FALSE1=6]=\"FALSE1\",e[e.FALSE2=7]=\"FALSE2\",e[e.FALSE3=8]=\"FALSE3\",e[e.FALSE4=9]=\"FALSE4\",e[e.NULL1=10]=\"NULL1\",e[e.NULL2=11]=\"NULL2\",e[e.NULL3=12]=\"NULL3\",e[e.STRING_DEFAULT=13]=\"STRING_DEFAULT\",e[e.STRING_AFTER_BACKSLASH=14]=\"STRING_AFTER_BACKSLASH\",e[e.STRING_UNICODE_DIGIT_1=15]=\"STRING_UNICODE_DIGIT_1\",e[e.STRING_UNICODE_DIGIT_2=16]=\"STRING_UNICODE_DIGIT_2\",e[e.STRING_UNICODE_DIGIT_3=17]=\"STRING_UNICODE_DIGIT_3\",e[e.STRING_UNICODE_DIGIT_4=18]=\"STRING_UNICODE_DIGIT_4\",e[e.STRING_INCOMPLETE_CHAR=19]=\"STRING_INCOMPLETE_CHAR\",e[e.NUMBER_AFTER_INITIAL_MINUS=20]=\"NUMBER_AFTER_INITIAL_MINUS\",e[e.NUMBER_AFTER_INITIAL_ZERO=21]=\"NUMBER_AFTER_INITIAL_ZERO\",e[e.NUMBER_AFTER_INITIAL_NON_ZERO=22]=\"NUMBER_AFTER_INITIAL_NON_ZERO\",e[e.NUMBER_AFTER_FULL_STOP=23]=\"NUMBER_AFTER_FULL_STOP\",e[e.NUMBER_AFTER_DECIMAL=24]=\"NUMBER_AFTER_DECIMAL\",e[e.NUMBER_AFTER_E=25]=\"NUMBER_AFTER_E\",e[e.NUMBER_AFTER_E_AND_SIGN=26]=\"NUMBER_AFTER_E_AND_SIGN\",e[e.NUMBER_AFTER_E_AND_DIGIT=27]=\"NUMBER_AFTER_E_AND_DIGIT\",e[e.SEPARATOR=28]=\"SEPARATOR\",e[e.BOM_OR_START=29]=\"BOM_OR_START\",e[e.BOM=30]=\"BOM\"}(ct||(ct={}));Error;var pt,dt;!function(e){e[e.OBJECT=0]=\"OBJECT\",e[e.ARRAY=1]=\"ARRAY\"}(pt||(pt={})),function(e){e[e.VALUE=0]=\"VALUE\",e[e.KEY=1]=\"KEY\",e[e.COLON=2]=\"COLON\",e[e.COMMA=3]=\"COMMA\",e[e.ENDED=4]=\"ENDED\",e[e.ERROR=5]=\"ERROR\",e[e.SEPARATOR=6]=\"SEPARATOR\"}(dt||(dt={}));Error;var ft=n(6425),ht=function(e){for(var t in e)\"uri\"!==e[t].type&&(e[t].value=e[t].value.replace(/{{(.*?)}}/g,(function(t){return t=t.substring(2,t.length-2).trim(),e[t]?e[t].value:t})));return e};const gt=function(){return(0,o.A)((function e(t,n){(0,i.A)(this,e),t.executionTime&&(this.executionTime=t.executionTime),n&&(this.executionTime=n),t instanceof Error?this.error=t:t.content?this.setResponse(t):this.setSummary(t)}),[{key:\"setResponse\",value:function(e){this.res=e}},{key:\"setSummary\",value:function(e){e.data||e.error?this.summary=e:this.summary={data:e}}},{key:\"hasError\",value:function(){return!!(this.res&&this.res.status>=400)||(!!this.errorSummary||(!!this.error||!(!this.summary||!this.summary.error)))}},{key:\"getError\",value:function(){return this.errorSummary||(this.res&&this.res.status>=400&&(this.errorSummary={text:this.res.statusText,status:this.res.status,statusText:this.res.ok?void 0:this.res.statusText}),this.summary&&this.summary.error&&(this.errorSummary=this.summary.error),this.error&&(this.errorSummary={text:this.error.message})),this.errorSummary}},{key:\"getContentType\",value:function(){return this.res?this.res.headers.get(\"content-type\")||void 0:this.summary?this.summary.contentType:void 0}},{key:\"getAsJson\",value:function(){return this.json?this.json:!1===this.json||this.hasError()?void 0:(this.getParserFromContentType()||this.doLuckyGuess()||this.json||(this.json=!1),this.json)}},{key:\"getData\",value:function(){if(this.res){if(this.res.content)return this.res.content;if(this.res.body)return this.res.body;if(this.res.text)return this.res.text}if(this.summary)return this.summary.data}},{key:\"getResponseTime\",value:function(){return this.executionTime}},{key:\"getParserFromContentType\",value:function(){var e=this.getContentType();if(e){var t=(0,ft.A)(this.getData());try{if(e.indexOf(\"json\")>-1){if(e.indexOf(\"sparql-results+json\")>=0)return this.json=S(t,ht),this.type=\"json\",!0;if(e.indexOf(\"application/rdf+json\")>-1)return this.type=\"json\",!0;this.type=\"json\"}else{if(e.indexOf(\"xml\")>-1)return this.json=Ue(t,ht),this.type=\"xml\",!0;if(e.indexOf(\"csv\")>-1)return this.json=function(e){var t=He.parse(e,{header:!0,skipEmptyLines:!0});if(void 0===t.meta.fields)throw new Error(\"Could not parse CSV, no headers found!\");return{head:{vars:t.meta.fields},results:{bindings:t.data.map((function(e){var t={};for(var n in e)t[n]={value:e[n],type:\"literal\"};return t}))}}}(t),this.type=\"csv\",!0;if(e.indexOf(\"tab-separated\")>-1)return this.json=Ye(t),this.type=\"tsv\",!0;if(e.indexOf(\"turtle\")>0||e.indexOf(\"trig\")>0||e.indexOf(\"triple\")>0||e.indexOf(\"quad\")>0)return this.json={head:{vars:[\"subject\",\"predicate\",\"object\"]},results:{bindings:Ae(t).map((function(e){return{subject:Te(e.subject),predicate:Te(e.predicate),object:Te(e.object)}}))}},this.type=\"ttl\",!0}}catch(e){e instanceof Error?this.errorSummary={text:e.message}:this.errorSummary={text:e}}}return!1}},{key:\"doLuckyGuess\",value:function(){var e=(0,ft.A)(this.getData());try{return this.json=S(e,ht),this.type=\"json\",!0}catch(e){}try{return this.json=Ue(e,ht),this.type=\"xml\",!0}catch(e){}return!1}},{key:\"getVariables\",value:function(){var e=this.getAsJson();return e&&e.head?e.head.vars:[]}},{key:\"getBoolean\",value:function(){var e=this.getAsJson();if(e&&\"boolean\"in e)return e.boolean}},{key:\"getBindings\",value:function(){var e=this.getAsJson();return e&&e.results?e.results.bindings:null}},{key:\"getStatements\",value:function(){return this.statements||\"ttl\"!==this.type||(this.statements=Ae(this.getData())),this.statements?this.statements:null}},{key:\"getOriginalResponseAsString\",value:function(){var e=this.getData();return\"string\"==typeof e?e:\"json\"===this.type?JSON.stringify(e,void 0,2):e}},{key:\"getType\",value:function(){return this.type||this.getAsJson(),this.type}},{key:\"getStatus\",value:function(){return this.res?this.res.status:this.summary?this.summary.status:void 0}},{key:\"getAsStoreObject\",value:function(e){var t=this.summary;if(!t&&this.res&&(t={contentType:this.getContentType(),data:this.getOriginalResponseAsString(),error:this.getError(),status:this.getStatus(),executionTime:this.getResponseTime()}),t){if(t.data&&t.data.length>e)return;return t}if(this.error)return{error:this.getError(),executionTime:this.getResponseTime()}}},{key:\"asCsv\",value:function(){var e,t,n,r,i=this.getAsJson();return\"csv\"===this.type?this.getOriginalResponseAsString():i&&i.results?(n=(e=i).head.vars,r=null===(t=e.results)||void 0===t?void 0:t.bindings,new lt({fields:n}).parse(r?r.map((function(e){return(0,T.A)(e,(function(e){return e.value}))})):[])):void 0}}])}();function mt(e){var t=document.createElement(\"link\");t.setAttribute(\"rel\",\"stylesheet\"),t.setAttribute(\"type\",\"text/css\"),t.setAttribute(\"href\",e),document.getElementsByTagName(\"head\")[0].appendChild(t)}function vt(e,t){return new Promise((function(n,r){var i=document.createElement(\"script\");i.setAttribute(\"type\",\"text/javascript\"),i.setAttribute(\"async\",\"\"),i.setAttribute(\"src\",e),t&&(i.innerHTML=t),i.onload=function(){return n()},document.getElementsByTagName(\"head\")[0].appendChild(i)}))}var Et=n(9418);Et.A.addHook(\"afterSanitizeAttributes\",(function(e){e instanceof HTMLAnchorElement&&(e.target=\"_blank\",e.rel=\"noopener noreferrer\")}));const yt=Et.A.sanitize;var bt=n(1475),xt=n(4179),Tt=n(3322),At=n(9602),St=n.n(At),Lt=n(6691),Nt=n(6095);n(3614),n(3594),n(5668);var Ct=n(3252);function It(e){(0,A.iQ)(this,\"expanded\"),e.preventDefault()}var _t=function(){return(0,o.A)((function e(t){var n=this;(0,i.A)(this,e),this.persistentConfig={},this.helpReference=\"https://docs.triply.cc/yasgui/#table\",this.label=\"Table\",this.priority=10,this.setEllipsisHandlers=function(){var e;null===(e=n.dataTable)||void 0===e||e.cells({page:\"current\"}).every((function(e,t){var r,i,o=null===(r=n.dataTable)||void 0===r?void 0:r.cell(e,t);if(\"\"!==(null==o?void 0:o.data())){var a=null==o?void 0:o.node();if(a){var s=a.firstChild;((null===(i=s.firstElementChild)||void 0===i?void 0:i.getBoundingClientRect().width)||0)>s.getBoundingClientRect().width?s.classList.contains(\"expandable\")||((0,A.iQ)(s,\"expandable\"),s.addEventListener(\"click\",It,{once:!0})):s.classList.contains(\"expandable\")&&((0,A.vy)(s,\"expandable\"),s.removeEventListener(\"click\",It))}}}))},this.handleTableSearch=function(e){var t;null===(t=n.dataTable)||void 0===t||t.search(e.target.value).draw(\"page\")},this.handleTableSizeSelect=function(e){var t,r=parseInt(e.target.value);null===(t=n.dataTable)||void 0===t||t.page.len(r).draw(\"page\"),n.persistentConfig.pageSize=r,n.yasr.storePluginConfig(\"table\",n.persistentConfig)},this.handleSetCompactToggle=function(e){n.persistentConfig.compact=e.target.checked,n.draw(n.persistentConfig),n.yasr.storePluginConfig(\"table\",n.persistentConfig)},this.handleSetEllipsisToggle=function(e){n.persistentConfig.isEllipsed=e.target.checked,n.draw(n.persistentConfig),n.yasr.storePluginConfig(\"table\",n.persistentConfig)},this.yasr=t,this.config=e.defaults}),[{key:\"getIcon\",value:function(){return(0,A.Mg)((0,A.uZ)(Nt))}},{key:\"getRows\",value:function(){if(!this.yasr.results)return[];var e=this.yasr.results.getBindings();if(!e)return[];var t=this.yasr.results.getVariables();return e.map((function(e,n){return[n+1].concat((0,Tt.A)(t.map((function(t){var n;return null!==(n=e[t])&&void 0!==n?n:\"\"}))))}))}},{key:\"getUriLinkFromBinding\",value:function(e,t){var n=yt(e.value),r=n,i=!1;if(t)for(var o in t)if(0==r.indexOf(t[o])){r=o+\":\"+n.substring(t[o].length),i=!0;break}var a=i||this.persistentConfig.compact,s=\"\".concat(a?\"\":\"&lt;\",\"<a class='iri' target='\").concat(this.config.openIriInNewWindow?\"_blank\":\"_self\",\"'\").concat(this.config.openIriInNewWindow?\" ref='noopener noreferrer'\":\"\",\" href='\").concat(n,\"'>\").concat(yt(r),\"</a>\").concat(a?\"\":\"&gt;\");return yt(s)}},{key:\"getCellContent\",value:function(e,t){var n;return n=\"uri\"==e.type?\"<span>\".concat(this.getUriLinkFromBinding(e,t),\"</span>\"):\"<span class='nonIri'>\".concat(this.formatLiteral(e,t),\"</span>\"),\"<div>\".concat(n,\"</div>\")}},{key:\"formatLiteral\",value:function(e,t){var n=yt((0,Lt.A)(e.value));if(this.persistentConfig.compact)return n;if(e[\"xml:lang\"])n='\"'.concat(n,'\"<sup>@').concat(e[\"xml:lang\"],\"</sup>\");else if(e.datatype){var r=this.getUriLinkFromBinding({type:\"uri\",value:e.datatype},t);n='\"'.concat(n,'\"<sup>^^').concat(r,\"</sup>\")}return n}},{key:\"getColumns\",value:function(){var e,t=this;if(!this.yasr.results)return[];var n=this.yasr.getPrefixes();return[{name:\"\",searchable:!1,width:\"\".concat(this.getSizeFirstColumn(),\"px\"),type:\"num\",orderable:!1,visible:!0!==this.persistentConfig.compact,render:function(e,t){return\"filter\"!==t&&\"sort\"!==t&&t?'<div class=\"rowNumber\">'.concat(e,\"</div>\"):e}}].concat((0,Tt.A)(null===(e=this.yasr.results)||void 0===e?void 0:e.getVariables().map((function(e){return{name:e,title:yt(e),render:function(e,r,i,o){return\"\"===e?e:\"filter\"!==r&&\"sort\"!==r&&r?t.getCellContent(e,n):yt(e.value)}}}))))}},{key:\"getSizeFirstColumn\",value:function(){var e,t;return 8*((null===(t=null===(e=this.yasr.results)||void 0===e?void 0:e.getBindings())||void 0===t?void 0:t.length)||0).toString().length}},{key:\"draw\",value:function(e){var t,n,r=this;this.persistentConfig=Object.assign(Object.assign({},this.persistentConfig),e),this.tableEl=document.createElement(\"table\");var i=this.getRows(),o=this.getColumns();i.length<=((null==e?void 0:e.pageSize)||50)?(this.yasr.pluginControls,(0,A.iQ)(this.yasr.rootEl,\"isSinglePage\")):(0,A.vy)(this.yasr.rootEl,\"isSinglePage\"),this.dataTable&&(this.destroyResizer(),this.dataTable.destroy(!0),this.dataTable=void 0),this.yasr.resultsEl.appendChild(this.tableEl);var a=Object.assign(Object.assign({},(0,ft.A)(this.config.tableConfig)),{pageLength:(null==e?void 0:e.pageSize)?e.pageSize:50,data:i,columns:o});this.dataTable=St()(this.tableEl).DataTable(a),this.tableEl.style.removeProperty(\"width\"),this.tableEl.style.width=this.tableEl.clientWidth+\"px\";var s=Array.from(this.tableEl.querySelectorAll(\"th\")).map((function(e){return e.offsetWidth-26}));this.tableResizer=new Ct.default(this.tableEl,{widths:!0===this.persistentConfig.compact?s:[this.getSizeFirstColumn()].concat((0,Tt.A)(s.slice(1))),partialRefresh:!0,onResize:!1!==this.persistentConfig.isEllipsed&&this.setEllipsisHandlers,headerOnly:!0}),!1!==this.persistentConfig.isEllipsed&&(null===(t=this.dataTable)||void 0===t||t.on(\"preDraw\",(function(){var e,t,n;return null===(e=r.tableResizer)||void 0===e||e.reset({disable:!0}),(0,A.vy)(r.tableEl,\"ellipseTable\"),null===(t=r.tableEl)||void 0===t||t.style.removeProperty(\"width\"),null===(n=r.tableEl)||void 0===n||n.style.setProperty(\"width\",r.tableEl.clientWidth+\"px\"),!0})),null===(n=this.dataTable)||void 0===n||n.on(\"draw\",(function(){var e,t;if(r.tableEl){var n=r.tableEl.clientWidth;r.tableEl.style.removeProperty(\"width\"),n>r.tableEl.clientWidth&&(n=r.tableEl.clientWidth),null===(e=r.tableEl)||void 0===e||e.style.setProperty(\"width\",\"\".concat(n,\"px\")),null===(t=r.tableResizer)||void 0===t||t.reset({disable:!1,partialRefresh:!0,onResize:r.setEllipsisHandlers,headerOnly:!0}),(0,A.iQ)(r.tableEl,\"ellipseTable\"),r.setEllipsisHandlers()}}))),this.drawControls(),!1!==this.persistentConfig.isEllipsed&&((0,A.iQ)(this.tableEl,\"ellipseTable\"),this.setEllipsisHandlers())}},{key:\"drawControls\",value:function(){var e;this.removeControls(),this.tableControls=document.createElement(\"div\"),this.tableControls.className=\"tableControls\";var t=document.createElement(\"div\"),n=document.createElement(\"label\"),r=document.createElement(\"span\");r.innerText=\"Simple view\",(0,A.iQ)(r,\"label\"),n.appendChild(r),(0,A.iQ)(n,\"switch\"),t.appendChild(n),this.tableCompactSwitch=document.createElement(\"input\"),n.addEventListener(\"change\",this.handleSetCompactToggle),this.tableCompactSwitch.type=\"checkbox\",n.appendChild(this.tableCompactSwitch),this.tableCompactSwitch.defaultChecked=!!this.persistentConfig.compact,this.tableControls.appendChild(t);var i=document.createElement(\"div\"),o=document.createElement(\"label\"),a=document.createElement(\"span\");a.innerText=\"Ellipse\",(0,A.iQ)(a,\"label\"),o.appendChild(a),(0,A.iQ)(o,\"switch\"),i.appendChild(o),this.tableEllipseSwitch=document.createElement(\"input\"),o.addEventListener(\"change\",this.handleSetEllipsisToggle),this.tableEllipseSwitch.type=\"checkbox\",o.appendChild(this.tableEllipseSwitch),this.tableEllipseSwitch.defaultChecked=!1!==this.persistentConfig.isEllipsed,this.tableControls.appendChild(i),this.tableFilterField=document.createElement(\"input\"),this.tableFilterField.className=\"tableFilter\",this.tableFilterField.placeholder=\"Filter query results\",this.tableFilterField.setAttribute(\"aria-label\",\"Filter query results\"),this.tableControls.appendChild(this.tableFilterField),this.tableFilterField.addEventListener(\"keyup\",this.handleTableSearch);var s=document.createElement(\"div\");s.className=\"pageSizeWrapper\";var l=document.createElement(\"span\");l.textContent=\"Page size: \",l.className=\"pageSizerLabel\",s.appendChild(l),this.tableSizeField=document.createElement(\"select\"),this.tableSizeField.className=\"tableSizer\";for(var u=0,c=[10,50,100,1e3,-1];u<c.length;u++){var p=c[u],d=document.createElement(\"option\");d.value=p+\"\",d.innerText=p>0?p+\"\":\"All\",(null===(e=this.dataTable)||void 0===e?void 0:e.page.len())===p&&(d.selected=!0),this.tableSizeField.appendChild(d)}s.appendChild(this.tableSizeField),this.tableSizeField.addEventListener(\"change\",this.handleTableSizeSelect),this.tableControls.appendChild(s),this.yasr.pluginControls.appendChild(this.tableControls)}},{key:\"download\",value:function(e){var t=this;return{getData:function(){var e;return(null===(e=t.yasr.results)||void 0===e?void 0:e.asCsv())||\"\"},contentType:\"text/csv\",title:\"Download result\",filename:\"\".concat(e||\"queryResults\",\".csv\")}}},{key:\"canHandleResults\",value:function(){return!!this.yasr.results&&this.yasr.results.getVariables()&&this.yasr.results.getVariables().length>0}},{key:\"removeControls\",value:function(){var e,t,n,r,i,o;for(null===(e=this.tableFilterField)||void 0===e||e.removeEventListener(\"keyup\",this.handleTableSearch),this.tableFilterField=void 0,null===(t=this.tableSizeField)||void 0===t||t.removeEventListener(\"change\",this.handleTableSizeSelect),this.tableSizeField=void 0,null===(n=this.tableCompactSwitch)||void 0===n||n.removeEventListener(\"change\",this.handleSetCompactToggle),this.tableCompactSwitch=void 0,null===(r=this.tableEllipseSwitch)||void 0===r||r.removeEventListener(\"change\",this.handleSetEllipsisToggle),this.tableEllipseSwitch=void 0;null===(i=this.tableControls)||void 0===i?void 0:i.firstChild;)this.tableControls.firstChild.remove();null===(o=this.tableControls)||void 0===o||o.remove()}},{key:\"destroyResizer\",value:function(){this.tableResizer&&(this.tableResizer.reset({disable:!0}),window.removeEventListener(\"resize\",this.tableResizer.onResize),this.tableResizer=void 0)}},{key:\"destroy\",value:function(){var e;this.removeControls(),this.destroyResizer(),null===(e=this.dataTable)||void 0===e||e.destroy(!0),this.dataTable=void 0,(0,A.vy)(this.yasr.rootEl,\"isSinglePage\")}}])}();_t.defaults={openIriInNewWindow:!0,tableConfig:{layout:{top:null,topStart:null,topEnd:null},pageLength:50,lengthChange:!0,data:[],columns:[],order:[],deferRender:!0,orderClasses:!1,language:{paginate:{first:\"&lt;&lt;\",last:\"&gt;&gt;\",next:\"&gt;\",previous:\"&lt;\"}}}};const Rt=_t;n(1710);var wt=function(){return(0,o.A)((function e(t){(0,i.A)(this,e),this.priority=10,this.hideFromSelection=!0,this.yasr=t}),[{key:\"draw\",value:function(){var e,t=document.createElement(\"div\");t.className=\"booleanResult\";var n=null===(e=this.yasr.results)||void 0===e?void 0:e.getBoolean();t.appendChild((0,A.Mg)(n?'<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" x=\"0\" y=\"0\" width=\"30\" height=\"30\" viewBox=\"0 0 100 100\" enable-background=\"new 0 0 100 100\" xml:space=\"preserve\"><path d=\"M14.301,49.982l22.606,17.047L84.361,4.903c2.614-3.733,7.76-4.64,11.493-2.026l0.627,0.462 c3.732,2.614,4.64,7.758,2.025,11.492l-51.783,79.77c-1.955,2.791-3.896,3.762-7.301,3.988c-3.405,0.225-5.464-1.039-7.508-3.084 L2.447,61.814c-3.263-3.262-3.263-8.553,0-11.814l0.041-0.019C5.75,46.718,11.039,46.718,14.301,49.982z\"/></svg>':'<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" x=\"0\" y=\"0\" width=\"30\" height=\"30\" viewBox=\"0 0 100 100\" enable-background=\"new 0 0 100 100\" xml:space=\"preserve\"><g><path d=\"M83.288,88.13c-2.114,2.112-5.575,2.112-7.689,0L53.659,66.188c-2.114-2.112-5.573-2.112-7.687,0L24.251,87.907 c-2.113,2.114-5.571,2.114-7.686,0l-4.693-4.691c-2.114-2.114-2.114-5.573,0-7.688l21.719-21.721c2.113-2.114,2.113-5.573,0-7.686 L11.872,24.4c-2.114-2.113-2.114-5.571,0-7.686l4.842-4.842c2.113-2.114,5.571-2.114,7.686,0L46.12,33.591 c2.114,2.114,5.572,2.114,7.688,0l21.721-21.719c2.114-2.114,5.573-2.114,7.687,0l4.695,4.695c2.111,2.113,2.111,5.571-0.003,7.686 L66.188,45.973c-2.112,2.114-2.112,5.573,0,7.686L88.13,75.602c2.112,2.111,2.112,5.572,0,7.687L83.288,88.13z\"/></g></svg>'));var r=document.createElement(\"span\");r.textContent=n?\"True\":\"False\",t.appendChild(r),this.yasr.resultsEl.appendChild(t)}},{key:\"canHandleResults\",value:function(){var e;return!!(null===(e=this.yasr.results)||void 0===e?void 0:e.getBoolean)&&(!0===this.yasr.results.getBoolean()||0==this.yasr.results.getBoolean())}},{key:\"getIcon\",value:function(){return document.createElement(\"\")}}])}(),Ot=n(4779),Dt='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" baseProfile=\"tiny\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" viewBox=\"0 0 100 100\" xml:space=\"preserve\"><g id=\"Captions\"/><g id=\"Your_Icon\"><path  d=\"M88,84v-2c0-2.961-0.859-4-4-4H16c-2.961,0-4,0.98-4,4v2c0,3.102,1.039,4,4,4h68 C87.02,88,88,87.039,88,84z M58,12H42c-5,0-6,0.941-6,6v22H16l34,34l34-34H64V18C64,12.941,62.939,12,58,12z\"/></g></svg>';n(9715);var Pt=n(1719);n(9754),n(2448),n(7623),n(666),n(8709),n(1262),n(7518),n(3475);var kt=function(){return(0,o.A)((function e(t){(0,i.A)(this,e),this.label=\"Response\",this.priority=2,this.helpReference=\"https://docs.triply.cc/yasgui/#response\",this.yasr=t,this.config=e.defaults,t.config.plugins.response&&t.config.plugins.response.dynamicConfig&&(this.config=Object.assign(Object.assign({},this.config),t.config.plugins.response.dynamicConfig))}),[{key:\"canHandleResults\",value:function(){if(!this.yasr.results)return!1;if(!this.yasr.results.getOriginalResponseAsString)return!1;var e=this.yasr.results.getOriginalResponseAsString();return!((!e||0==e.length)&&this.yasr.results.getError())}},{key:\"getIcon\",value:function(){return(0,A.Mg)((0,A.uZ)(Ot))}},{key:\"download\",value:function(e){var t=this;if(this.yasr.results){var n=this.yasr.results.getContentType(),r=this.yasr.results.getType(),i=\"xml\"===r?\"rdf\":r;return{getData:function(){var e;return(null===(e=t.yasr.results)||void 0===e?void 0:e.getOriginalResponseAsString())||\"\"},filename:\"\".concat(e||\"queryResults\").concat(i?\".\"+i:\"\"),contentType:n||\"text/plain\",title:\"Download result\"}}}},{key:\"draw\",value:function(e){var t,n,r=Object.assign(Object.assign({},this.config),e),i=(null===(t=this.yasr.results)||void 0===t?void 0:t.getOriginalResponseAsString())||\"\",o=i.split(\"\\n\");o.length>r.maxLines&&(i=o.slice(0,r.maxLines).join(\"\\n\"));var a={readOnly:!0,lineNumbers:!0,lineWrapping:!0,foldGutter:!0,gutters:[\"CodeMirror-linenumbers\",\"CodeMirror-foldgutter\"],value:i,extraKeys:{Tab:!1}};\"json\"===(null===(n=this.yasr.results)||void 0===n?void 0:n.getType())&&(a.mode={name:\"javascript\",json:!0}),this.cm=Pt(this.yasr.resultsEl,a),o.length>r.maxLines&&this.showLess(!1)}},{key:\"limitData\",value:function(e){var t=e.split(\"\\n\");return t.length>this.config.maxLines&&(e=t.slice(0,this.config.maxLines).join(\"\\n\")),e}},{key:\"showLess\",value:function(){var e,t=this,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(this.cm){(0,A.iQ)(this.cm.getWrapperElement(),\"overflow\"),this.overLay&&(this.overLay.remove(),this.overLay=void 0),this.overLay=document.createElement(\"div\"),(0,A.iQ)(this.overLay,\"overlay\");var r=document.createElement(\"div\");(0,A.iQ)(r,\"overlay_content\");var i=document.createElement(\"button\");i.title=\"Show all\",(0,A.iQ)(i,\"yasr_btn\",\"overlay_btn\"),i.textContent=\"Show all\",i.addEventListener(\"click\",(function(){return t.showMore()})),r.append(i);var o=document.createElement(\"button\");o.title=\"Download result\",(0,A.iQ)(o,\"yasr_btn\",\"overlay_btn\");var a=document.createElement(\"span\");a.innerText=\"Download result\",o.appendChild(a),o.appendChild((0,A.Mg)(Dt)),o.addEventListener(\"click\",(function(){return t.yasr.download()})),o.addEventListener(\"keydown\",(function(e){\"Space\"!==e.code&&\"Enter\"!==e.code||t.yasr.download()})),r.appendChild(o),this.overLay.appendChild(r),this.cm.getWrapperElement().appendChild(this.overLay),n&&this.cm.setValue(this.limitData((null===(e=this.yasr.results)||void 0===e?void 0:e.getOriginalResponseAsString())||\"\"))}}},{key:\"showMore\",value:function(){var e,t;this.cm&&((0,A.vy)(this.cm.getWrapperElement(),\"overflow\"),null===(e=this.overLay)||void 0===e||e.remove(),this.overLay=void 0,this.cm.setValue((null===(t=this.yasr.results)||void 0===t?void 0:t.getOriginalResponseAsString())||\"\"),this.cm.refresh())}}])}();kt.defaults={maxLines:30};const Mt=kt;var Ft=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};n(8956);var Bt=function(){return(0,o.A)((function e(t){(0,i.A)(this,e),this.priority=20,this.hideFromSelection=!0,this.yasr=t}),[{key:\"canHandleResults\",value:function(){return!!this.yasr.results&&!!this.yasr.results.getError()}},{key:\"getTryBtn\",value:function(e){var t=document.createElement(\"a\");return t.href=e,t.rel=\"noopener noreferrer\",t.target=\"_blank\",t.className=\"yasr_tryQuery\",t.textContent=\"Try query in a new browser window\",t}},{key:\"getCorsMessage\",value:function(){var e=document.createElement(\"div\");e.className=\"redOutline\";var t=document.createElement(\"p\");t.textContent=\"Unable to get response from endpoint. Possible reasons:\",e.appendChild(t);var n=document.createElement(\"ul\"),r=document.createElement(\"li\");r.textContent=\"Incorrect endpoint URL\",n.appendChild(r);var i=document.createElement(\"li\");i.textContent=\"Endpoint is down\",n.appendChild(i);var o=document.createElement(\"li\"),a=document.createElement(\"span\");a.textContent=\"Endpoint is not accessible from the YASGUI server and website, and the endpoint is not \",o.appendChild(a);var s=document.createElement(\"a\");return s.textContent=\"CORS-enabled\",s.href=\"http://enable-cors.org/\",s.target=\"_blank\",s.rel=\"noopener noreferrer\",o.appendChild(s),n.appendChild(o),e.appendChild(n),e}},{key:\"draw\",value:function(){return Ft(this,void 0,void 0,c().mark((function e(){var t,n,r,i,o,a,s,l,u,p,d,f,h;return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n=document.createElement(\"div\")).className=\"errorResult\",this.yasr.resultsEl.appendChild(n),r=null===(t=this.yasr.results)||void 0===t?void 0:t.getError()){e.next=1;break}return e.abrupt(\"return\");case 1:return(i=document.createElement(\"div\")).className=\"errorHeader\",n.appendChild(i),e.next=2,this.yasr.renderError(r);case 2:if(!(o=e.sent)){e.next=3;break}return(a=document.createElement(\"div\")).className=\"redOutline\",a.appendChild(o),n.appendChild(a),e.abrupt(\"return\");case 3:r.status?(s=\"Error\",r.statusText&&r.statusText.length<100&&(s=r.statusText),s+=\" (#\".concat(r.status,\")\"),(l=document.createElement(\"span\")).className=\"status\",l.textContent=s,i.appendChild(l),this.yasr.config.getPlainQueryLinkToEndpoint&&(u=this.yasr.config.getPlainQueryLinkToEndpoint())&&i.appendChild(this.getTryBtn(u)),r.text&&(p=document.createElement(\"div\"),(0,A.iQ)(p,\"errorMessageContainer\"),n.appendChild(p),d=document.createElement(\"pre\"),(0,A.iQ)(d,\"errorMessage\"),d.textContent=r.text,p.appendChild(d))):(this.yasr.config.getPlainQueryLinkToEndpoint&&(f=this.yasr.config.getPlainQueryLinkToEndpoint())&&i.appendChild(this.getTryBtn(f)),!r.text||r.text.indexOf(\"Request has been terminated\")>=0?n.appendChild(this.getCorsMessage()):((h=document.createElement(\"pre\")).textContent=r.text,n.appendChild(h)));case 4:case\"end\":return e.stop()}}),e,this)})))}},{key:\"getIcon\",value:function(){return document.createElement(\"\")}}])}();function Gt(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return jt(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?jt(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function jt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ut(e,t,n){return t=(0,s.A)(t),(0,a.A)(e,function(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return function(){return!!e}()}()?Reflect.construct(t,n||[],(0,s.A)(e).constructor):t.apply(e,n))}var Ht=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};n(8839);var qt=function(e){function t(e){var n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;if((0,i.A)(this,t),(n=Ut(this,t)).plugins={},n.helpDrawn=!1,n.utils={addScript:vt,addCSS:mt,sanitize:yt},!e)throw new Error(\"No parent passed as argument. Dont know where to draw YASR\");n.rootEl=document.createElement(\"div\"),n.rootEl.className=\"yasr\",e.appendChild(n.rootEl),n.config=(0,d.A)({},t.defaults,r),n.storage=new A.wc(t.storageNamespace),n.getConfigFromStorage(),n.headerEl=document.createElement(\"div\"),n.headerEl.className=\"yasr_header\",n.rootEl.appendChild(n.headerEl),n.fallbackInfoEl=document.createElement(\"div\"),n.fallbackInfoEl.className=\"yasr_fallback_info\",n.rootEl.appendChild(n.fallbackInfoEl),n.resultsEl=document.createElement(\"div\"),n.resultsEl.className=\"yasr_results\",n.resultsEl.id=g(\"resultsId\"),n.rootEl.appendChild(n.resultsEl),n.initializePlugins(),n.drawHeader();var a=o||n.getResponseFromStorage();return a&&n.setResponse(a),n}return(0,l.A)(t,e),(0,o.A)(t,[{key:\"getConfigFromStorage\",value:function(){var e=this.getStorageId(this.config.persistenceLabelConfig);if(e){var t=this.storage.get(e);if(t)for(var n in this.selectedPlugin=t.selectedPlugin,t.pluginsConfig){var r=t.pluginsConfig[n];r&&this.config.plugins[n]&&(this.config.plugins[n].dynamicConfig=r)}}}},{key:\"renderError\",value:function(e){return Ht(this,void 0,void 0,c().mark((function t(){var n,r,i,o,a;return c().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=void 0,void 0===this.config.errorRenderers){t.next=8;break}r=Gt(this.config.errorRenderers),t.prev=1,r.s();case 2:if((i=r.n()).done){t.next=5;break}return o=i.value,t.next=3,o(e);case 3:if(void 0===(n=t.sent)){t.next=4;break}return t.abrupt(\"continue\",5);case 4:t.next=2;break;case 5:t.next=7;break;case 6:t.prev=6,a=t.catch(1),r.e(a);case 7:return t.prev=7,r.f(),t.finish(7);case 8:return t.abrupt(\"return\",n);case 9:case\"end\":return t.stop()}}),t,this,[[1,6,7,8]])})))}},{key:\"getStorageId\",value:function(e,t){var n=t||this.config.persistenceId;if(n)return\"string\"==typeof n?n+\"_\"+e:n(this)+\"_\"+e}},{key:\"somethingDrawn\",value:function(){return!!this.resultsEl.children.length}},{key:\"emptyFallbackElement\",value:function(){for(;this.fallbackInfoEl.firstChild;)this.fallbackInfoEl.removeChild(this.fallbackInfoEl.firstChild)}},{key:\"getSelectedPluginName\",value:function(){return this.selectedPlugin||this.config.defaultPlugin}},{key:\"getSelectedPlugin\",value:function(){if(this.plugins[this.getSelectedPluginName()])return this.plugins[this.getSelectedPluginName()];console.warn(\"Tried using plugin \".concat(this.getSelectedPluginName(),\", but seems this plugin isnt registered in yasr.\"))}},{key:\"updatePluginSelectors\",value:function(e){if(this.pluginSelectorsEl)for(var t in this.config.plugins){var n=this.plugins[t];n&&!n.hideFromSelection&&(e&&(e.indexOf(t)>=0?(0,A.vy)(this.pluginSelectorsEl.querySelector(\".select_\"+t),\"disabled\"):(0,A.iQ)(this.pluginSelectorsEl.querySelector(\".select_\"+t),\"disabled\")),t===this.getSelectedPluginName()?(0,A.iQ)(this.pluginSelectorsEl.querySelector(\".select_\"+t),\"selected\"):(0,A.vy)(this.pluginSelectorsEl.querySelector(\".select_\"+t),\"selected\"))}}},{key:\"getCompatiblePlugins\",value:function(){if(!this.results)return Object.keys(x(this.config.plugins,(function(e){return\"object\"===(0,r.A)(e)&&e.enabled||!0===e})));var e=[];for(var t in this.plugins)this.plugins[t].canHandleResults()&&e.push({name:t,priority:this.plugins[t].priority});return e.sort((function(e,t){return t.priority-e.priority})).map((function(e){return e.name}))}},{key:\"draw\",value:function(){var e,t,n,r,i,o=this;if(this.updateHelpButton(),this.updateResponseInfo(),this.results){var a,s=this.getCompatiblePlugins();if(this.drawnPlugin&&this.getSelectedPluginName()!==this.drawnPlugin){for(;this.pluginControls.firstChild;)this.pluginControls.firstChild.remove();null===(t=(e=this.plugins[this.drawnPlugin]).destroy)||void 0===t||t.call(e)}if(this.getSelectedPlugin()&&(null===(n=this.getSelectedPlugin())||void 0===n?void 0:n.canHandleResults())?(a=this.getSelectedPluginName(),this.emptyFallbackElement()):s[0]&&(this.drawnPlugin&&(null===(i=(r=this.plugins[this.drawnPlugin]).destroy)||void 0===i||i.call(r)),a=s[0],this.fillFallbackBox(a)),a){this.drawnPlugin=a,this.emit(\"draw\",this,this.plugins[a]);var l=this.plugins[a];(l.initialize?l.initialize():Promise.resolve()).then((function(){return Ht(o,void 0,void 0,c().mark((function e(){return c().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!a){e.next=2;break}for(;this.resultsEl.firstChild;)this.resultsEl.firstChild.remove();return e.next=1,this.plugins[a].draw(this.config.plugins[a].dynamicConfig);case 1:this.emit(\"drawn\",this,this.plugins[a]),this.updateExportHeaders(),this.updatePluginSelectors(s);case 2:case\"end\":return e.stop()}}),e,this)})))}),(function(e){return console.error}))}else this.resultsEl.textContent=\"cannot render result\",this.updateExportHeaders(),this.updatePluginSelectors(s)}}},{key:\"refresh\",value:function(){this.draw()}},{key:\"destroy\",value:function(){var e,t;this.drawnPlugin&&(null===(t=null===(e=this.plugins[this.drawnPlugin])||void 0===e?void 0:e.destroy)||void 0===t||t.call(e)),this.removeAllListeners(),this.rootEl.remove()}},{key:\"getPrefixes\",value:function(){return this.config.prefixes?\"function\"==typeof this.config.prefixes?this.config.prefixes(this):this.config.prefixes:{}}},{key:\"selectPlugin\",value:function(e){this.selectedPlugin!==e&&(this.config.plugins[e]?this.selectedPlugin=e:(console.warn(\"Plugin \".concat(e,\" does not exist.\")),this.selectedPlugin=this.config.defaultPlugin),this.storeConfig(),this.emit(\"change\",this),this.updatePluginSelectors(),this.draw())}},{key:\"drawPluginSelectors\",value:function(){var e=this;this.pluginSelectorsEl=document.createElement(\"ul\"),this.pluginSelectorsEl.className=\"yasr_btnGroup\";var t=this.config.pluginOrder;Object.keys(this.config.plugins).sort().forEach((function(e){-1===t.indexOf(e)&&t.push(e)}));var n,r=Gt(t);try{var i=function(){var t=n.value;if(!e.config.plugins[t]||!e.config.plugins[t].enabled)return 0;var r=e.plugins[t];if(!r)return 0;if(r.hideFromSelection)return 0;var i=r.label||t,o=document.createElement(\"button\");if((0,A.iQ)(o,\"yasr_btn\",\"select_\"+t),o.title=i,o.type=\"button\",o.setAttribute(\"aria-label\",\"Shows \".concat(i,\" view\")),r.getIcon){var a=r.getIcon();a&&((0,A.iQ)(a,\"plugin_icon\"),o.appendChild(a))}var s=document.createElement(\"span\");s.textContent=i,o.appendChild(s),o.addEventListener(\"click\",(function(){return e.selectPlugin(t)}));var l=document.createElement(\"li\");l.appendChild(o),e.pluginSelectorsEl.appendChild(l)};for(r.s();!(n=r.n()).done;)i()}catch(e){r.e(e)}finally{r.f()}this.pluginSelectorsEl.children.length>=1&&this.headerEl.appendChild(this.pluginSelectorsEl),this.updatePluginSelectors()}},{key:\"fillFallbackBox\",value:function(e){var t,n,r;if(this.emptyFallbackElement(),!(null===(t=this.plugins[e||this.drawnPlugin||\"\"])||void 0===t?void 0:t.hideFromSelection)){var i=this.getSelectedPlugin(),o=(null===(n=this.plugins[e||this.drawnPlugin||\"\"])||void 0===n?void 0:n.label)||e||this.drawnPlugin,a=(null==i?void 0:i.label)||this.getSelectedPluginName(),s=document.createElement(\"p\");if(s.innerText=\"Could not render results with the \".concat(a,\" plugin, the results currently are rendered with the \").concat(o,\" plugin. \").concat((null===(r=this.getSelectedPlugin())||void 0===r?void 0:r.helpReference)?\"See \":\"\"),null==i?void 0:i.helpReference){var l=document.createElement(\"a\");l.innerText=\"\".concat(a,\" documentation\"),l.href=i.helpReference,l.rel=\"noopener noreferrer\",l.target=\"_blank\",s.append(l),s.innerHTML+=\" for more information.\"}this.fallbackInfoEl.appendChild(s)}}},{key:\"drawPluginElement\",value:function(){var e=document.createElement(\"div\");(0,A.iQ)(e,\"space_element\"),this.headerEl.appendChild(e),this.pluginControls=document.createElement(\"div\"),this.pluginControls.setAttribute(\"id\",\"yasr_plugin_control\"),(0,A.iQ)(this.pluginControls,\"yasr_plugin_control\"),this.pluginControls.setAttribute(\"aria-controls\",this.resultsEl.id),this.headerEl.appendChild(this.pluginControls)}},{key:\"drawHeader\",value:function(){this.drawPluginSelectors(),this.drawResponseInfo(),this.drawPluginElement(),this.drawDownloadIcon(),this.drawDocumentationButton()}},{key:\"drawDownloadIcon\",value:function(){var e=this;this.downloadBtn=document.createElement(\"a\"),(0,A.iQ)(this.downloadBtn,\"yasr_btn\",\"yasr_downloadIcon\",\"btn_icon\"),this.downloadBtn.download=\"\",this.downloadBtn.setAttribute(\"aria-label\",\"Download Results\"),this.downloadBtn.setAttribute(\"tabindex\",\"0\"),this.downloadBtn.setAttribute(\"role\",\"button\");var t=(0,A.Mg)((0,A.uZ)(bt));t.setAttribute(\"aria-hidden\",\"true\"),this.downloadBtn.appendChild(t),this.downloadBtn.addEventListener(\"click\",(function(){(0,A.nB)(e.downloadBtn,\"disabled\")||e.download()})),this.downloadBtn.addEventListener(\"keydown\",(function(t){if(\"Space\"===t.code||\"Enter\"===t.code){if((0,A.nB)(e.downloadBtn,\"disabled\"))return;e.download()}})),this.headerEl.appendChild(this.downloadBtn)}},{key:\"drawResponseInfo\",value:function(){this.dataElement=document.createElement(\"div\"),(0,A.iQ)(this.dataElement,\"yasr_response_chip\"),this.headerEl.appendChild(this.dataElement),this.updateResponseInfo()}},{key:\"updateResponseInfo\",value:function(){var e=\"\";if(this.results){(0,A.vy)(this.dataElement,\"empty\");var t=this.results.getBindings();t&&(e+=\"\".concat(t.length,\" result\").concat(1===t.length?\"\":\"s\"));var n=this.results.getResponseTime();if(n){e||(e=\"Response\");var r=n/1e3;e+=\" in \".concat(r,\" second\").concat(1===r?\"\":\"s\")}}else(0,A.iQ)(this.dataElement,\"empty\");this.dataElement.innerText=e}},{key:\"updateHelpButton\",value:function(){var e=this.getSelectedPlugin();if(null==e?void 0:e.helpReference){var t=\"View documentation of \".concat(e.label||this.getSelectedPluginName());this.documentationLink.href=e.helpReference,this.documentationLink.title=t,this.documentationLink.setAttribute(\"aria-label\",t),(0,A.vy)(this.documentationLink,\"disabled\")}else(0,A.iQ)(this.documentationLink,\"disabled\"),this.documentationLink.title=\"This plugin doesn't have a help reference yet. Please contact the maintainer to fix this\"}},{key:\"updateExportHeaders\",value:function(){var e,t;if(this.downloadBtn&&this.drawnPlugin){this.downloadBtn.title=\"\";var n=this.plugins[this.drawnPlugin];if(n&&n.download){var r=n.download(null===(t=(e=this.config).getDownloadFileName)||void 0===t?void 0:t.call(e));if((0,A.vy)(this.downloadBtn,\"disabled\"),r)return void(r.title&&(this.downloadBtn.title=r.title))}this.downloadBtn.title=\"Download not supported\",(0,A.iQ)(this.downloadBtn,\"disabled\")}}},{key:\"drawDocumentationButton\",value:function(){this.documentationLink=document.createElement(\"a\"),(0,A.iQ)(this.documentationLink,\"yasr_btn\",\"yasr_external_ref_btn\"),this.documentationLink.appendChild((0,A.Mg)((0,A.uZ)(xt))),this.documentationLink.href=\"https://docs.triply.cc/yasgui/\",this.documentationLink.target=\"_blank\",this.documentationLink.rel=\"noopener noreferrer\",this.headerEl.appendChild(this.documentationLink)}},{key:\"download\",value:function(){var e,t,n;if(this.drawnPlugin){var r=this.plugins[this.drawnPlugin];if(r&&r.download){var i=r.download(null===(t=(e=this.config).getDownloadFileName)||void 0===t?void 0:t.call(e));if(!i)return;var o,a=i.getData();if(a.startsWith(\"data:\"))o=a;else{var s=new Blob([a],{type:null!==(n=i.contentType)&&void 0!==n?n:\"text/plain\"});o=window.URL.createObjectURL(s)}var l=document.createElement(\"a\");l.href=o,l.download=i.filename,l.click()}}}},{key:\"handleLocalStorageQuotaFull\",value:function(e){console.warn(\"Localstorage quota exceeded. Clearing all queries\"),t.clearStorage()}},{key:\"getResponseFromStorage\",value:function(){var e=this.getStorageId(this.config.persistenceLabelResponse);if(e)return this.storage.get(e)}},{key:\"getPersistentConfig\",value:function(){return{selectedPlugin:this.getSelectedPluginName(),pluginsConfig:(0,T.A)(this.config.plugins,(function(e){return e.dynamicConfig}))}}},{key:\"storePluginConfig\",value:function(e,t){this.config.plugins[e].dynamicConfig=t,this.storeConfig(),this.emit(\"change\",this)}},{key:\"storeConfig\",value:function(){var e=this.getStorageId(this.config.persistenceLabelConfig);e&&this.storage.set(e,this.getPersistentConfig(),this.config.persistencyExpire,this.handleLocalStorageQuotaFull)}},{key:\"storeResponse\",value:function(){var e=this.getStorageId(this.config.persistenceLabelResponse);if(e&&this.results){var t=this.results.getAsStoreObject(this.config.maxPersistentResponseSize);t&&!t.error?this.storage.set(e,t,this.config.persistencyExpire,this.handleLocalStorageQuotaFull):this.storage.remove(e)}}},{key:\"setResponse\",value:function(e,t){e&&(this.results=new gt(e,t),this.draw(),this.storeResponse())}},{key:\"initializePlugins\",value:function(){for(var e in this.config.plugins)this.config.plugins[e]&&(t.plugins[e]?this.plugins[e]=new t.plugins[e](this):console.warn(\"Wanted to initialize plugin \"+e+\" but could not find a matching registered plugin\"))}}],[{key:\"registerPlugin\",value:function(e,n){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];t.plugins[e]=n,t.defaults.plugins[e]=r?{enabled:!0}:{enabled:!1}}},{key:\"clearStorage\",value:function(){new A.wc(t.storageNamespace).removeNamespace()}}])}(p.EventEmitter);qt.defaults={persistenceId:function(e){var t=\"\",n=e.rootEl;for(n.id&&(t=n.id);n&&n!==document;n=n.parentNode)if(n){n.id&&(t=n.id);break}return\"yasr_\"+t},getPlainQueryLinkToEndpoint:void 0,persistencyExpire:2592e3,persistenceLabelResponse:\"response\",persistenceLabelConfig:\"config\",maxPersistentResponseSize:1e5,prefixes:{},plugins:{},pluginOrder:[\"table\",\"response\"],defaultPlugin:\"table\"},qt.plugins={},qt.Dependencies={},qt.storageNamespace=\"triply\",qt.registerPlugin(\"table\",Rt),qt.registerPlugin(\"boolean\",wt),qt.registerPlugin(\"response\",Mt),qt.registerPlugin(\"error\",Bt);const Vt=qt},4179:(e,t)=>{\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=[],r=\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\";t.definition={prefix:\"fas\",iconName:\"question-circle\",icon:[512,512,n,\"f059\",r]},t.faQuestionCircle=t.definition,t.prefix=\"fas\",t.iconName=\"question-circle\",t.width=512,t.height=512,t.ligatures=n,t.unicode=\"f059\",t.svgPathData=r},4182:(e,t,n)=>{\"use strict\";n.r(t)},4249:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>p});var r=n(2977),i=n(7554),o=n(8214),a={};a[\"[object Float32Array]\"]=a[\"[object Float64Array]\"]=a[\"[object Int8Array]\"]=a[\"[object Int16Array]\"]=a[\"[object Int32Array]\"]=a[\"[object Uint8Array]\"]=a[\"[object Uint8ClampedArray]\"]=a[\"[object Uint16Array]\"]=a[\"[object Uint32Array]\"]=!0,a[\"[object Arguments]\"]=a[\"[object Array]\"]=a[\"[object ArrayBuffer]\"]=a[\"[object Boolean]\"]=a[\"[object DataView]\"]=a[\"[object Date]\"]=a[\"[object Error]\"]=a[\"[object Function]\"]=a[\"[object Map]\"]=a[\"[object Number]\"]=a[\"[object Object]\"]=a[\"[object RegExp]\"]=a[\"[object Set]\"]=a[\"[object String]\"]=a[\"[object WeakMap]\"]=!1;const s=function(e){return(0,o.A)(e)&&(0,i.A)(e.length)&&!!a[(0,r.A)(e)]};var l=n(9161),u=n(6037),c=u.A&&u.A.isTypedArray;const p=c?(0,l.A)(c):s},4360:(e,t,n)=>{\"use strict\";function r(e){return(r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}n.d(t,{A:()=>r})},4479:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>c});const r=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r};var i=n(2078),o=n(8285),a=n(6118),s=n(3869),l=n(4249),u=Object.prototype.hasOwnProperty;const c=function(e,t){var n=(0,o.A)(e),c=!n&&(0,i.A)(e),p=!n&&!c&&(0,a.A)(e),d=!n&&!c&&!p&&(0,l.A)(e),f=n||c||p||d,h=f?r(e.length,String):[],g=h.length;for(var m in e)!t&&!u.call(e,m)||f&&(\"length\"==m||p&&(\"offset\"==m||\"parent\"==m)||d&&(\"buffer\"==m||\"byteLength\"==m||\"byteOffset\"==m)||(0,s.A)(m,g))||h.push(m);return h}},4508:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>s});var r=n(6422),i=n(5757),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols;const s=a?function(e){return null==e?[]:(e=Object(e),(0,r.A)(a(e),(function(t){return o.call(e,t)})))}:i.A},4560:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>u});var r=n(2020),i=n(7181),o=n(2078),a=n(8285),s=i.A?i.A.isConcatSpreadable:void 0;const l=function(e){return(0,a.A)(e)||(0,o.A)(e)||!!(s&&e&&e[s])};const u=function e(t,n,i,o,a){var s=-1,u=t.length;for(i||(i=l),a||(a=[]);++s<u;){var c=t[s];n>0&&i(c)?n>1?e(c,n-1,i,o,a):(0,r.A)(a,c):o||(a[a.length]=c)}return a}},4603:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=Object.prototype;const i=function(e){var t=e&&e.constructor;return e===(\"function\"==typeof t&&t.prototype||r)}},4636:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e){return function(t){return null==e?void 0:e[t]}}},4691:function(e,t){var n,r,i;r=[],void 0===(i=\"function\"==typeof(n=function e(){var t,n=\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:void 0!==n?n:{},r=!n.document&&!!n.postMessage,i=n.IS_PAPA_WORKER||!1,o={},a=0,s={};function l(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=\"\",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=y(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null),this._handle=new f(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,t){var r=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<r){let t=this._config.newline;t||(o=this._config.quoteChar||'\"',t=this._handle.guessLineEndings(e,o)),e=[...e.split(t).slice(r)].join(t)}this.isFirstChunk&&x(this._config.beforeFirstChunk)&&void 0!==(o=this._config.beforeFirstChunk(e))&&(e=o),this.isFirstChunk=!1,this._halted=!1,r=this._partialLine+e;var o=(this._partialLine=\"\",this._handle.parse(r,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(e=o.meta.cursor,this._finished||(this._partialLine=r.substring(e-this._baseIndex),this._baseIndex=e),o&&o.data&&(this._rowCount+=o.data.length),r=this._finished||this._config.preview&&this._rowCount>=this._config.preview,i)n.postMessage({results:o,workerId:s.WORKER_ID,finished:r});else if(x(this._config.chunk)&&!t){if(this._config.chunk(o,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=o=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(o.data),this._completeResults.errors=this._completeResults.errors.concat(o.errors),this._completeResults.meta=o.meta),this._completed||!r||!x(this._config.complete)||o&&o.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),r||o&&o.meta.paused||this._nextChunk(),o}this._halted=!0},this._sendError=function(e){x(this._config.error)?this._config.error(e):i&&this._config.error&&n.postMessage({workerId:s.WORKER_ID,error:e,finished:!1})}}function u(e){var t;(e=e||{}).chunkSize||(e.chunkSize=s.RemoteChunkSize),l.call(this,e),this._nextChunk=r?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),r||(t.onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)),t.open(this._config.downloadRequestBody?\"POST\":\"GET\",this._input,!r),this._config.downloadRequestHeaders){var e,n=this._config.downloadRequestHeaders;for(e in n)t.setRequestHeader(e,n[e])}var i;this._config.chunkSize&&(i=this._start+this._config.chunkSize-1,t.setRequestHeader(\"Range\",\"bytes=\"+this._start+\"-\"+i));try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}r&&0===t.status&&this._chunkError()}},this._chunkLoaded=function(){4===t.readyState&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize||t.responseText.length,this._finished=!this._config.chunkSize||this._start>=(e=>null!==(e=e.getResponseHeader(\"Content-Range\"))?parseInt(e.substring(e.lastIndexOf(\"/\")+1)):-1)(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){e=t.statusText||e,this._sendError(new Error(e))}}function c(e){(e=e||{}).chunkSize||(e.chunkSize=s.LocalChunkSize),l.call(this,e);var t,n,r=\"undefined\"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input,i=(this._config.chunkSize&&(i=Math.min(this._start+this._config.chunkSize,this._input.size),e=n.call(e,this._start,i)),t.readAsText(e,this._config.encoding));r||this._chunkLoaded({target:{result:i}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function p(e){var t;l.call(this,e=e||{}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){var e,n;if(!this._finished)return e=this._config.chunkSize,t=e?(n=t.substring(0,e),t.substring(e)):(n=t,\"\"),this._finished=!t,this.parseChunk(n)}}function d(e){l.call(this,e=e||{});var t=[],n=!0,r=!1;this.pause=function(){l.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){l.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(\"data\",this._streamData),this._input.on(\"end\",this._streamEnd),this._input.on(\"error\",this._streamError)},this._checkIsFinished=function(){r&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):n=!0},this._streamData=b((function(e){try{t.push(\"string\"==typeof e?e:e.toString(this._config.encoding)),n&&(n=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}}),this),this._streamError=b((function(e){this._streamCleanUp(),this._sendError(e)}),this),this._streamEnd=b((function(){this._streamCleanUp(),r=!0,this._streamData(\"\")}),this),this._streamCleanUp=b((function(){this._input.removeListener(\"data\",this._streamData),this._input.removeListener(\"end\",this._streamEnd),this._input.removeListener(\"error\",this._streamError)}),this)}function f(e){var t,n,r,i,o=Math.pow(2,53),a=-o,l=/^\\s*-?(\\d+\\.?|\\.\\d+|\\d+\\.\\d+)([eE][-+]?\\d+)?\\s*$/,u=/^((\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z))|(\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d([+-][0-2]\\d:[0-5]\\d|Z)))$/,c=this,p=0,d=0,f=!1,m=!1,v=[],E={data:[],errors:[],meta:{}};function b(t){return\"greedy\"===e.skipEmptyLines?\"\"===t.join(\"\").trim():1===t.length&&0===t[0].length}function T(){if(E&&r&&(S(\"Delimiter\",\"UndetectableDelimiter\",\"Unable to auto-detect delimiting character; defaulted to '\"+s.DefaultDelimiter+\"'\"),r=!1),e.skipEmptyLines&&(E.data=E.data.filter((function(e){return!b(e)}))),A()){if(E)if(Array.isArray(E.data[0])){for(var t=0;A()&&t<E.data.length;t++)E.data[t].forEach(n);E.data.splice(0,1)}else E.data.forEach(n);function n(t,n){x(e.transformHeader)&&(t=e.transformHeader(t,n)),v.push(t)}}function i(t,n){for(var r=e.header?{}:[],i=0;i<t.length;i++){var s=i,c=t[i];c=((t,n)=>(t=>(e.dynamicTypingFunction&&void 0===e.dynamicTyping[t]&&(e.dynamicTyping[t]=e.dynamicTypingFunction(t)),!0===(e.dynamicTyping[t]||e.dynamicTyping)))(t)?\"true\"===n||\"TRUE\"===n||\"false\"!==n&&\"FALSE\"!==n&&((e=>{if(l.test(e)&&(e=parseFloat(e),a<e&&e<o))return 1})(n)?parseFloat(n):u.test(n)?new Date(n):\"\"===n?null:n):n)(s=e.header?i>=v.length?\"__parsed_extra\":v[i]:s,c=e.transform?e.transform(c,s):c),\"__parsed_extra\"===s?(r[s]=r[s]||[],r[s].push(c)):r[s]=c}return e.header&&(i>v.length?S(\"FieldMismatch\",\"TooManyFields\",\"Too many fields: expected \"+v.length+\" fields but parsed \"+i,d+n):i<v.length&&S(\"FieldMismatch\",\"TooFewFields\",\"Too few fields: expected \"+v.length+\" fields but parsed \"+i,d+n)),r}var c;E&&(e.header||e.dynamicTyping||e.transform)&&(c=1,!E.data.length||Array.isArray(E.data[0])?(E.data=E.data.map(i),c=E.data.length):E.data=i(E.data,0),e.header&&E.meta&&(E.meta.fields=v),d+=c)}function A(){return e.header&&0===v.length}function S(e,t,n,r){e={type:e,code:t,message:n},void 0!==r&&(e.row=r),E.errors.push(e)}x(e.step)&&(i=e.step,e.step=function(t){E=t,A()?T():(T(),0!==E.data.length&&(p+=t.data.length,e.preview&&p>e.preview?n.abort():(E.data=E.data[0],i(E,c))))}),this.parse=function(i,o,a){var l=e.quoteChar||'\"';return e.newline||(e.newline=this.guessLineEndings(i,l)),r=!1,e.delimiter?x(e.delimiter)&&(e.delimiter=e.delimiter(i),E.meta.delimiter=e.delimiter):((l=((t,n,r,i,o)=>{var a,l,u,c;o=o||[\",\",\"\\t\",\"|\",\";\",s.RECORD_SEP,s.UNIT_SEP];for(var p=0;p<o.length;p++){for(var d,f=o[p],h=0,m=0,v=0,E=(u=void 0,new g({comments:i,delimiter:f,newline:n,preview:10}).parse(t)),y=0;y<E.data.length;y++)r&&b(E.data[y])?v++:(m+=d=E.data[y].length,void 0===u?u=d:0<d&&(h+=Math.abs(d-u),u=d));0<E.data.length&&(m/=E.data.length-v),(void 0===l||h<=l)&&(void 0===c||c<m)&&1.99<m&&(l=h,a=f,c=m)}return{successful:!!(e.delimiter=a),bestDelimiter:a}})(i,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess)).successful?e.delimiter=l.bestDelimiter:(r=!0,e.delimiter=s.DefaultDelimiter),E.meta.delimiter=e.delimiter),l=y(e),e.preview&&e.header&&l.preview++,t=i,n=new g(l),E=n.parse(t,o,a),T(),f?{meta:{paused:!0}}:E||{meta:{paused:!1}}},this.paused=function(){return f},this.pause=function(){f=!0,n.abort(),t=x(e.chunk)?\"\":t.substring(n.getCharIndex())},this.resume=function(){c.streamer._halted?(f=!1,c.streamer.parseChunk(t,!0)):setTimeout(c.resume,3)},this.aborted=function(){return m},this.abort=function(){m=!0,n.abort(),E.meta.aborted=!0,x(e.complete)&&e.complete(E),t=\"\"},this.guessLineEndings=function(e,t){e=e.substring(0,1048576),t=new RegExp(h(t)+\"([^]*?)\"+h(t),\"gm\");var n=(e=e.replace(t,\"\")).split(\"\\r\");if(e=1<(t=e.split(\"\\n\")).length&&t[0].length<n[0].length,1===n.length||e)return\"\\n\";for(var r=0,i=0;i<n.length;i++)\"\\n\"===n[i][0]&&r++;return r>=n.length/2?\"\\r\\n\":\"\\r\"}}function h(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")}function g(e){var t=(e=e||{}).delimiter,n=e.newline,r=e.comments,i=e.step,o=e.preview,a=e.fastMode,l=null,u=!1,c=null==e.quoteChar?'\"':e.quoteChar,p=c;if(void 0!==e.escapeChar&&(p=e.escapeChar),(\"string\"!=typeof t||-1<s.BAD_DELIMITERS.indexOf(t))&&(t=\",\"),r===t)throw new Error(\"Comment character same as delimiter\");!0===r?r=\"#\":(\"string\"!=typeof r||-1<s.BAD_DELIMITERS.indexOf(r))&&(r=!1),\"\\n\"!==n&&\"\\r\"!==n&&\"\\r\\n\"!==n&&(n=\"\\n\");var d=0,f=!1;this.parse=function(s,g,m){if(\"string\"!=typeof s)throw new Error(\"Input must be a string\");var v=s.length,E=t.length,y=n.length,b=r.length,T=x(i),A=[],S=[],L=[],N=d=0;if(!s)return B();if(a||!1!==a&&-1===s.indexOf(c)){for(var C=s.split(n),I=0;I<C.length;I++){if(L=C[I],d+=L.length,I!==C.length-1)d+=n.length;else if(m)return B();if(!r||L.substring(0,b)!==r){if(T){if(A=[],P(L.split(t)),G(),f)return B()}else P(L.split(t));if(o&&o<=I)return A=A.slice(0,o),B(!0)}}return B()}for(var _=s.indexOf(t,d),R=s.indexOf(n,d),w=new RegExp(h(p)+h(c),\"g\"),O=s.indexOf(c,d);;)if(s[d]===c)for(O=d,d++;;){if(-1===(O=s.indexOf(c,O+1)))return m||S.push({type:\"Quotes\",code:\"MissingQuotes\",message:\"Quoted field unterminated\",row:A.length,index:d}),M();if(O===v-1)return M(s.substring(d,O).replace(w,c));if(c===p&&s[O+1]===p)O++;else if(c===p||0===O||s[O-1]!==p){-1!==_&&_<O+1&&(_=s.indexOf(t,O+1));var D=k(-1===(R=-1!==R&&R<O+1?s.indexOf(n,O+1):R)?_:Math.min(_,R));if(s.substr(O+1+D,E)===t){L.push(s.substring(d,O).replace(w,c)),s[d=O+1+D+E]!==c&&(O=s.indexOf(c,d)),_=s.indexOf(t,d),R=s.indexOf(n,d);break}if(D=k(R),s.substring(O+1+D,O+1+D+y)===n){if(L.push(s.substring(d,O).replace(w,c)),F(O+1+D+y),_=s.indexOf(t,d),O=s.indexOf(c,d),T&&(G(),f))return B();if(o&&A.length>=o)return B(!0);break}S.push({type:\"Quotes\",code:\"InvalidQuotes\",message:\"Trailing quote on quoted field is malformed\",row:A.length,index:d}),O++}}else if(r&&0===L.length&&s.substring(d,d+b)===r){if(-1===R)return B();d=R+y,R=s.indexOf(n,d),_=s.indexOf(t,d)}else if(-1!==_&&(_<R||-1===R))L.push(s.substring(d,_)),d=_+E,_=s.indexOf(t,d);else{if(-1===R)break;if(L.push(s.substring(d,R)),F(R+y),T&&(G(),f))return B();if(o&&A.length>=o)return B(!0)}return M();function P(e){A.push(e),N=d}function k(e){var t=0;return-1!==e&&(e=s.substring(O+1,e))&&\"\"===e.trim()?e.length:t}function M(e){return m||(void 0===e&&(e=s.substring(d)),L.push(e),d=v,P(L),T&&G()),B()}function F(e){d=e,P(L),L=[],R=s.indexOf(n,d)}function B(r){if(e.header&&!g&&A.length&&!u){var i=A[0],o=Object.create(null),a=new Set(i);let t=!1;for(let n=0;n<i.length;n++){let r=i[n];if(o[r=x(e.transformHeader)?e.transformHeader(r,n):r]){let e,s=o[r];for(;e=r+\"_\"+s,s++,a.has(e););a.add(e),i[n]=e,o[r]++,t=!0,(l=null===l?{}:l)[e]=r}else o[r]=1,i[n]=r;a.add(r)}t&&console.warn(\"Duplicate headers found and renamed.\"),u=!0}return{data:A,errors:S,meta:{delimiter:t,linebreak:n,aborted:f,truncated:!!r,cursor:N+(g||0),renamedHeaders:l}}}function G(){i(B()),A=[],S=[]}},this.abort=function(){f=!0},this.getCharIndex=function(){return d}}function m(e){var t=e.data,n=o[t.workerId],r=!1;if(t.error)n.userError(t.error,t.file);else if(t.results&&t.results.data){var i={abort:function(){r=!0,v(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:E,resume:E};if(x(n.userStep)){for(var a=0;a<t.results.data.length&&(n.userStep({data:t.results.data[a],errors:t.results.errors,meta:t.results.meta},i),!r);a++);delete t.results}else x(n.userChunk)&&(n.userChunk(t.results,i,t.file),delete t.results)}t.finished&&!r&&v(t.workerId,t.results)}function v(e,t){var n=o[e];x(n.userComplete)&&n.userComplete(t),n.terminate(),delete o[e]}function E(){throw new Error(\"Not implemented.\")}function y(e){if(\"object\"!=typeof e||null===e)return e;var t,n=Array.isArray(e)?[]:{};for(t in e)n[t]=y(e[t]);return n}function b(e,t){return function(){e.apply(t,arguments)}}function x(e){return\"function\"==typeof e}return s.parse=function(t,r){var i=(r=r||{}).dynamicTyping||!1;if(x(i)&&(r.dynamicTypingFunction=i,i={}),r.dynamicTyping=i,r.transform=!!x(r.transform)&&r.transform,!r.worker||!s.WORKERS_SUPPORTED)return i=null,s.NODE_STREAM_INPUT,\"string\"==typeof t?(t=(e=>65279!==e.charCodeAt(0)?e:e.slice(1))(t),i=new(r.download?u:p)(r)):!0===t.readable&&x(t.read)&&x(t.on)?i=new d(r):(n.File&&t instanceof File||t instanceof Object)&&(i=new c(r)),i.stream(t);(i=(()=>{var t;return!!s.WORKERS_SUPPORTED&&(t=(()=>{var t=n.URL||n.webkitURL||null,r=e.toString();return s.BLOB_URL||(s.BLOB_URL=t.createObjectURL(new Blob([\"var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; \",\"(\",r,\")();\"],{type:\"text/javascript\"})))})(),(t=new n.Worker(t)).onmessage=m,t.id=a++,o[t.id]=t)})()).userStep=r.step,i.userChunk=r.chunk,i.userComplete=r.complete,i.userError=r.error,r.step=x(r.step),r.chunk=x(r.chunk),r.complete=x(r.complete),r.error=x(r.error),delete r.worker,i.postMessage({input:t,config:r,workerId:i.id})},s.unparse=function(e,t){var n=!1,r=!0,i=\",\",o=\"\\r\\n\",a='\"',l=a+a,u=!1,c=null,p=!1,d=((()=>{if(\"object\"==typeof t){if(\"string\"!=typeof t.delimiter||s.BAD_DELIMITERS.filter((function(e){return-1!==t.delimiter.indexOf(e)})).length||(i=t.delimiter),\"boolean\"!=typeof t.quotes&&\"function\"!=typeof t.quotes&&!Array.isArray(t.quotes)||(n=t.quotes),\"boolean\"!=typeof t.skipEmptyLines&&\"string\"!=typeof t.skipEmptyLines||(u=t.skipEmptyLines),\"string\"==typeof t.newline&&(o=t.newline),\"string\"==typeof t.quoteChar&&(a=t.quoteChar),\"boolean\"==typeof t.header&&(r=t.header),Array.isArray(t.columns)){if(0===t.columns.length)throw new Error(\"Option columns is empty\");c=t.columns}void 0!==t.escapeChar&&(l=t.escapeChar+a),t.escapeFormulae instanceof RegExp?p=t.escapeFormulae:\"boolean\"==typeof t.escapeFormulae&&t.escapeFormulae&&(p=/^[=+\\-@\\t\\r].*$/)}})(),new RegExp(h(a),\"g\"));if(\"string\"==typeof e&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return f(null,e,u);if(\"object\"==typeof e[0])return f(c||Object.keys(e[0]),e,u)}else if(\"object\"==typeof e)return\"string\"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields||c),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:\"object\"==typeof e.data[0]?Object.keys(e.data[0]):[]),Array.isArray(e.data[0])||\"object\"==typeof e.data[0]||(e.data=[e.data])),f(e.fields||[],e.data||[],u);throw new Error(\"Unable to serialize unrecognized input\");function f(e,t,n){var a=\"\",s=(\"string\"==typeof e&&(e=JSON.parse(e)),\"string\"==typeof t&&(t=JSON.parse(t)),Array.isArray(e)&&0<e.length),l=!Array.isArray(t[0]);if(s&&r){for(var u=0;u<e.length;u++)0<u&&(a+=i),a+=g(e[u],u);0<t.length&&(a+=o)}for(var c=0;c<t.length;c++){var p=(s?e:t[c]).length,d=!1,f=s?0===Object.keys(t[c]).length:0===t[c].length;if(n&&!s&&(d=\"greedy\"===n?\"\"===t[c].join(\"\").trim():1===t[c].length&&0===t[c][0].length),\"greedy\"===n&&s){for(var h=[],m=0;m<p;m++){var v=l?e[m]:m;h.push(t[c][v])}d=\"\"===h.join(\"\").trim()}if(!d){for(var E=0;E<p;E++){0<E&&!f&&(a+=i);var y=s&&l?e[E]:E;a+=g(t[c][y],E)}c<t.length-1&&(!n||0<p&&!f)&&(a+=o)}}return a}function g(e,t){var r,o;return null==e?\"\":e.constructor===Date?JSON.stringify(e).slice(1,25):(o=!1,p&&\"string\"==typeof e&&p.test(e)&&(e=\"'\"+e,o=!0),r=e.toString().replace(d,l),(o=o||!0===n||\"function\"==typeof n&&n(e,t)||Array.isArray(n)&&n[t]||((e,t)=>{for(var n=0;n<t.length;n++)if(-1<e.indexOf(t[n]))return!0;return!1})(r,s.BAD_DELIMITERS)||-1<r.indexOf(i)||\" \"===r.charAt(0)||\" \"===r.charAt(r.length-1))?a+r+a:r)}},s.RECORD_SEP=String.fromCharCode(30),s.UNIT_SEP=String.fromCharCode(31),s.BYTE_ORDER_MARK=\"\\ufeff\",s.BAD_DELIMITERS=[\"\\r\",\"\\n\",'\"',s.BYTE_ORDER_MARK],s.WORKERS_SUPPORTED=!r&&!!n.Worker,s.NODE_STREAM_INPUT=1,s.LocalChunkSize=10485760,s.RemoteChunkSize=5242880,s.DefaultDelimiter=\",\",s.Parser=g,s.ParserHandle=f,s.NetworkStreamer=u,s.FileStreamer=c,s.StringStreamer=p,s.ReadableStreamStreamer=d,n.jQuery&&((t=n.jQuery).fn.parse=function(e){var r=e.config||{},i=[];return this.each((function(e){if(\"INPUT\"!==t(this).prop(\"tagName\").toUpperCase()||\"file\"!==t(this).attr(\"type\").toLowerCase()||!n.FileReader||!this.files||0===this.files.length)return!0;for(var o=0;o<this.files.length;o++)i.push({file:this.files[o],inputElem:this,instanceConfig:t.extend({},r)})})),o(),this;function o(){if(0===i.length)x(e.complete)&&e.complete();else{var n,r,o,l=i[0];if(x(e.before)){var u=e.before(l.file,l.inputElem);if(\"object\"==typeof u){if(\"abort\"===u.action)return n=l.file,r=l.inputElem,o=u.reason,void(x(e.error)&&e.error({name:\"AbortError\"},n,r,o));if(\"skip\"===u.action)return void a();\"object\"==typeof u.config&&(l.instanceConfig=t.extend(l.instanceConfig,u.config))}else if(\"skip\"===u)return void a()}var c=l.instanceConfig.complete;l.instanceConfig.complete=function(e){x(c)&&c(e,l.file,l.inputElem),a()},s.parse(l.file,l.instanceConfig)}}function a(){i.splice(0,1),o()}}),i&&(n.onmessage=function(e){e=e.data,void 0===s.WORKER_ID&&e&&(s.WORKER_ID=e.workerId),\"string\"==typeof e.input?n.postMessage({workerId:s.WORKER_ID,results:s.parse(e.input,e.config),finished:!0}):(n.File&&e.input instanceof File||e.input instanceof Object)&&(e=s.parse(e.input,e.config))&&n.postMessage({workerId:s.WORKER_ID,results:e,finished:!0})}),(u.prototype=Object.create(l.prototype)).constructor=u,(c.prototype=Object.create(l.prototype)).constructor=c,(p.prototype=Object.create(p.prototype)).constructor=p,(d.prototype=Object.create(l.prototype)).constructor=d,s})?n.apply(t,r):n)||(e.exports=i)},4758:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>a});var r=n(4360);function i(e){var t=function(e,t){if(\"object\"!=(0,r.A)(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||\"default\");if(\"object\"!=(0,r.A)(i))return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==(0,r.A)(t)?t:t+\"\"}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,i(r.key),r)}}function a(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),Object.defineProperty(e,\"prototype\",{writable:!1}),e}},4779:(e,t)=>{\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=[],r=\"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\";t.definition={prefix:\"fas\",iconName:\"align-left\",icon:[448,512,n,\"f036\",r]},t.faAlignLeft=t.definition,t.prefix=\"fas\",t.iconName=\"align-left\",t.width=448,t.height=512,t.ligatures=n,t.unicode=\"f036\",t.svgPathData=r},4785:e=>{\"use strict\";var t,n=\"object\"==typeof Reflect?Reflect:null,r=n&&\"function\"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&\"function\"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,o),r(n)}function o(){\"function\"==typeof e.removeListener&&e.removeListener(\"error\",i),n([].slice.call(arguments))}g(e,t,o,{once:!0}),\"error\"!==t&&function(e,t,n){\"function\"==typeof e.on&&g(e,\"error\",t,n)}(e,i,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var a=10;function s(e){if(\"function\"!=typeof e)throw new TypeError('The \"listener\" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function u(e,t,n,r){var i,o,a,u;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit(\"newListener\",t,n.listener?n.listener:n),o=e._events),a=o[t]),void 0===a)a=o[t]=n,++e._eventsCount;else if(\"function\"==typeof a?a=o[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(i=l(e))>0&&a.length>i&&!a.warned){a.warned=!0;var c=new Error(\"Possible EventEmitter memory leak detected. \"+a.length+\" \"+String(t)+\" listeners added. Use emitter.setMaxListeners() to increase limit\");c.name=\"MaxListenersExceededWarning\",c.emitter=e,c.type=t,c.count=a.length,u=c,console&&console.warn&&console.warn(u)}return e}function c(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=c.bind(r);return i.listener=n,r.wrapFn=i,i}function d(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:\"function\"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):h(i,i.length)}function f(e){var t=this._events;if(void 0!==t){var n=t[e];if(\"function\"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function g(e,t,n,r){if(\"function\"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if(\"function\"!=typeof e.addEventListener)throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function i(o){r.once&&e.removeEventListener(t,i),n(o)}))}}Object.defineProperty(o,\"defaultMaxListeners\",{enumerable:!0,get:function(){return a},set:function(e){if(\"number\"!=typeof e||e<0||i(e))throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received '+e+\".\");a=e}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(e){if(\"number\"!=typeof e||e<0||i(e))throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received '+e+\".\");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return l(this)},o.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var i=\"error\"===e,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return!1;if(i){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error(\"Unhandled error.\"+(a?\" (\"+a.message+\")\":\"\"));throw s.context=a,s}var l=o[e];if(void 0===l)return!1;if(\"function\"==typeof l)r(l,this,t);else{var u=l.length,c=h(l,u);for(n=0;n<u;++n)r(c[n],this,t)}return!0},o.prototype.addListener=function(e,t){return u(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return u(this,e,t,!0)},o.prototype.once=function(e,t){return s(t),this.on(e,p(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,p(this,e,t)),this},o.prototype.removeListener=function(e,t){var n,r,i,o,a;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit(\"removeListener\",e,n.listener||t));else if(\"function\"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit(\"removeListener\",e,a||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)\"removeListener\"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners(\"removeListener\"),this._events=Object.create(null),this._eventsCount=0,this}if(\"function\"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return d(this,e,!0)},o.prototype.rawListeners=function(e){return d(this,e,!1)},o.listenerCount=function(e,t){return\"function\"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},o.prototype.listenerCount=f,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},4801:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>g});var r=/\\s/;const i=function(e){for(var t=e.length;t--&&r.test(e.charAt(t)););return t};var o=/^\\s+/;const a=function(e){return e?e.slice(0,i(e)+1).replace(o,\"\"):e};var s=n(6809),l=n(8086),u=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,p=/^0o[0-7]+$/i,d=parseInt;const f=function(e){if(\"number\"==typeof e)return e;if((0,l.A)(e))return NaN;if((0,s.A)(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=(0,s.A)(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=a(e);var n=c.test(e);return n||p.test(e)?d(e.slice(2),n?2:8):u.test(e)?NaN:+e};const h=function(e){return e?(e=f(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0};const g=function(e){var t=h(e),n=t%1;return t==t?n?t-n:t:0}},4858:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});const r=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)};var i=Math.max;const o=function(e,t,n){return t=i(void 0===t?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=i(o.length-t,0),l=Array(s);++a<s;)l[a]=o[t+a];a=-1;for(var u=Array(t+1);++a<t;)u[a]=o[a];return u[t]=n(l),r(e,this,u)}}},4889:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>E});var r=n(1671),i=n(8377);const o=(0,r.A)(i.A,\"DataView\");var a=n(6787);const s=(0,r.A)(i.A,\"Promise\");const l=(0,r.A)(i.A,\"Set\");const u=(0,r.A)(i.A,\"WeakMap\");var c=n(2977),p=n(5549),d=(0,p.A)(o),f=(0,p.A)(a.A),h=(0,p.A)(s),g=(0,p.A)(l),m=(0,p.A)(u),v=c.A;(o&&\"[object DataView]\"!=v(new o(new ArrayBuffer(1)))||a.A&&\"[object Map]\"!=v(new a.A)||s&&\"[object Promise]\"!=v(s.resolve())||l&&\"[object Set]\"!=v(new l)||u&&\"[object WeakMap]\"!=v(new u))&&(v=function(e){var t=(0,c.A)(e),n=\"[object Object]\"==t?e.constructor:void 0,r=n?(0,p.A)(n):\"\";if(r)switch(r){case d:return\"[object DataView]\";case f:return\"[object Map]\";case h:return\"[object Promise]\";case g:return\"[object Set]\";case m:return\"[object WeakMap]\"}return t});const E=v},5043:(e,t,n)=>{var r=n(7459),i=n(5788),o=[n(5503)];e.exports=r.createStore(i,o)},5067:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e,t){return function(n){return e(t(n))}}},5168:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=n(8377).A.Uint8Array},5186:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>a});var r=n(1100),i=n(4858),o=n(9430);const a=function(e,t){return(0,o.A)((0,i.A)(e,t,r.A),e+\"\")}},5200:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>a});var r=n(8292),i=n(3653),o=n(5955);const a=function(e,t){var n={};return t=(0,o.A)(t,3),(0,i.A)(e,(function(e,i,o){(0,r.A)(n,i,t(e,i,o))})),n}},5209:(e,t,n)=>{\"use strict\";function r(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}n.d(t,{A:()=>r})},5217:(e,t,n)=>{var r=n(1115);e.exports=function(e,t,n,i,o){var a=r(e,t,n,i,o);return a.next().then((function(e){return e.done?e.value:a.next()}))},e.exports.__esModule=!0,e.exports.default=e.exports},5355:(e,t,n)=>{var r=n(7589).Global;function i(){return r.localStorage}function o(e){return i().getItem(e)}e.exports={name:\"localStorage\",read:o,write:function(e,t){return i().setItem(e,t)},each:function(e){for(var t=i().length-1;t>=0;t--){var n=i().key(t);e(o(n),n)}},remove:function(e){return i().removeItem(e)},clearAll:function(){return i().clear()}}},5397:(e,t,n)=>{!function(e){\"use strict\";function t(e,t){if(this.cm=e,this.options=t,this.widget=null,this.debounce=0,this.tick=0,this.startPos=this.cm.getCursor(\"start\"),this.startLen=this.cm.getLine(this.startPos.line).length-this.cm.getSelection().length,this.options.updateOnCursorActivity){var n=this;e.on(\"cursorActivity\",this.activityFunc=function(){n.cursorActivity()})}}e.showHint=function(e,t,n){if(!t)return e.showHint(n);n&&n.async&&(t.async=!0);var r={hint:t};if(n)for(var i in n)r[i]=n[i];return e.showHint(r)},e.defineExtension(\"showHint\",(function(n){n=function(e,t,n){var r=e.options.hintOptions,i={};for(var o in l)i[o]=l[o];if(r)for(var o in r)void 0!==r[o]&&(i[o]=r[o]);if(n)for(var o in n)void 0!==n[o]&&(i[o]=n[o]);return i.hint.resolve&&(i.hint=i.hint.resolve(e,t)),i}(this,this.getCursor(\"start\"),n);var r=this.listSelections();if(!(r.length>1)){if(this.somethingSelected()){if(!n.hint.supportsSelection)return;for(var i=0;i<r.length;i++)if(r[i].head.line!=r[i].anchor.line)return}this.state.completionActive&&this.state.completionActive.close();var o=this.state.completionActive=new t(this,n);o.options.hint&&(e.signal(this,\"startCompletion\",this),o.update(!0))}})),e.defineExtension(\"closeHint\",(function(){this.state.completionActive&&this.state.completionActive.close()}));var n=window.requestAnimationFrame||function(e){return setTimeout(e,1e3/60)},r=window.cancelAnimationFrame||clearTimeout;function i(e){return\"string\"==typeof e?e:e.text}function o(e,t){for(;t&&t!=e;){if(\"LI\"===t.nodeName.toUpperCase()&&t.parentNode==e)return t;t=t.parentNode}}function a(t,n){this.id=\"cm-complete-\"+Math.floor(Math.random(1e6)),this.completion=t,this.data=n,this.picked=!1;var r=this,a=t.cm,s=a.getInputField().ownerDocument,l=s.defaultView||s.parentWindow,u=this.hints=s.createElement(\"ul\");u.setAttribute(\"role\",\"listbox\"),u.setAttribute(\"aria-expanded\",\"true\"),u.id=this.id;var c=t.cm.options.theme;u.className=\"CodeMirror-hints \"+c,this.selectedHint=n.selectedHint||0;for(var p=n.list,d=0;d<p.length;++d){var f=u.appendChild(s.createElement(\"li\")),h=p[d],g=\"CodeMirror-hint\"+(d!=this.selectedHint?\"\":\" CodeMirror-hint-active\");null!=h.className&&(g=h.className+\" \"+g),f.className=g,d==this.selectedHint&&f.setAttribute(\"aria-selected\",\"true\"),f.id=this.id+\"-\"+d,f.setAttribute(\"role\",\"option\"),h.render?h.render(f,n,h):f.appendChild(s.createTextNode(h.displayText||i(h))),f.hintId=d}var m=t.options.container||s.body,v=a.cursorCoords(t.options.alignWithWord?n.from:null),E=v.left,y=v.bottom,b=!0,x=0,T=0;if(m!==s.body){var A=-1!==[\"absolute\",\"relative\",\"fixed\"].indexOf(l.getComputedStyle(m).position)?m:m.offsetParent,S=A.getBoundingClientRect(),L=s.body.getBoundingClientRect();x=S.left-L.left-A.scrollLeft,T=S.top-L.top-A.scrollTop}u.style.left=E-x+\"px\",u.style.top=y-T+\"px\";var N=l.innerWidth||Math.max(s.body.offsetWidth,s.documentElement.offsetWidth),C=l.innerHeight||Math.max(s.body.offsetHeight,s.documentElement.offsetHeight);m.appendChild(u),a.getInputField().setAttribute(\"aria-autocomplete\",\"list\"),a.getInputField().setAttribute(\"aria-owns\",this.id),a.getInputField().setAttribute(\"aria-activedescendant\",this.id+\"-\"+this.selectedHint);var I,_=t.options.moveOnOverlap?u.getBoundingClientRect():new DOMRect,R=!!t.options.paddingForScrollbar&&u.scrollHeight>u.clientHeight+1;if(setTimeout((function(){I=a.getScrollInfo()})),_.bottom-C>0){var w=_.bottom-_.top,O=_.top-(v.bottom-v.top)-2;C-_.top<O?(w>O&&(u.style.height=(w=O)+\"px\"),u.style.top=(y=v.top-w)-T+\"px\",b=!1):u.style.height=C-_.top-2+\"px\"}var D,P=_.right-N;if(R&&(P+=a.display.nativeBarWidth),P>0&&(_.right-_.left>N&&(u.style.width=N-5+\"px\",P-=_.right-_.left-N),u.style.left=(E=Math.max(v.left-P-x,0))+\"px\"),R)for(var k=u.firstChild;k;k=k.nextSibling)k.style.paddingRight=a.display.nativeBarWidth+\"px\";a.addKeyMap(this.keyMap=function(e,t){var n={Up:function(){t.moveFocus(-1)},Down:function(){t.moveFocus(1)},PageUp:function(){t.moveFocus(1-t.menuSize(),!0)},PageDown:function(){t.moveFocus(t.menuSize()-1,!0)},Home:function(){t.setFocus(0)},End:function(){t.setFocus(t.length-1)},Enter:t.pick,Tab:t.pick,Esc:t.close};/Mac/.test(navigator.platform)&&(n[\"Ctrl-P\"]=function(){t.moveFocus(-1)},n[\"Ctrl-N\"]=function(){t.moveFocus(1)});var r=e.options.customKeys,i=r?{}:n;function o(e,r){var o;o=\"string\"!=typeof r?function(e){return r(e,t)}:n.hasOwnProperty(r)?n[r]:r,i[e]=o}if(r)for(var a in r)r.hasOwnProperty(a)&&o(a,r[a]);var s=e.options.extraKeys;if(s)for(var a in s)s.hasOwnProperty(a)&&o(a,s[a]);return i}(t,{moveFocus:function(e,t){r.changeActive(r.selectedHint+e,t)},setFocus:function(e){r.changeActive(e)},menuSize:function(){return r.screenAmount()},length:p.length,close:function(){t.close()},pick:function(){r.pick()},data:n})),t.options.closeOnUnfocus&&(a.on(\"blur\",this.onBlur=function(){D=setTimeout((function(){t.close()}),100)}),a.on(\"focus\",this.onFocus=function(){clearTimeout(D)})),a.on(\"scroll\",this.onScroll=function(){var e=a.getScrollInfo(),n=a.getWrapperElement().getBoundingClientRect();I||(I=a.getScrollInfo());var r=y+I.top-e.top,i=r-(l.pageYOffset||(s.documentElement||s.body).scrollTop);if(b||(i+=u.offsetHeight),i<=n.top||i>=n.bottom)return t.close();u.style.top=r+\"px\",u.style.left=E+I.left-e.left+\"px\"}),e.on(u,\"dblclick\",(function(e){var t=o(u,e.target||e.srcElement);t&&null!=t.hintId&&(r.changeActive(t.hintId),r.pick())})),e.on(u,\"click\",(function(e){var n=o(u,e.target||e.srcElement);n&&null!=n.hintId&&(r.changeActive(n.hintId),t.options.completeOnSingleClick&&r.pick())})),e.on(u,\"mousedown\",(function(){setTimeout((function(){a.focus()}),20)}));var M=this.getSelectedHintRange();return 0===M.from&&0===M.to||this.scrollToActive(),e.signal(n,\"select\",p[this.selectedHint],u.childNodes[this.selectedHint]),!0}function s(e,t,n,r){if(e.async)e(t,r,n);else{var i=e(t,n);i&&i.then?i.then(r):r(i)}}t.prototype={close:function(){this.active()&&(this.cm.state.completionActive=null,this.tick=null,this.options.updateOnCursorActivity&&this.cm.off(\"cursorActivity\",this.activityFunc),this.widget&&this.data&&e.signal(this.data,\"close\"),this.widget&&this.widget.close(),e.signal(this.cm,\"endCompletion\",this.cm))},active:function(){return this.cm.state.completionActive==this},pick:function(t,n){var r=t.list[n],o=this;this.cm.operation((function(){r.hint?r.hint(o.cm,t,r):o.cm.replaceRange(i(r),r.from||t.from,r.to||t.to,\"complete\"),e.signal(t,\"pick\",r),o.cm.scrollIntoView()})),this.options.closeOnPick&&this.close()},cursorActivity:function(){this.debounce&&(r(this.debounce),this.debounce=0);var e=this.startPos;this.data&&(e=this.data.from);var t=this.cm.getCursor(),i=this.cm.getLine(t.line);if(t.line!=this.startPos.line||i.length-t.ch!=this.startLen-this.startPos.ch||t.ch<e.ch||this.cm.somethingSelected()||!t.ch||this.options.closeCharacters.test(i.charAt(t.ch-1)))this.close();else{var o=this;this.debounce=n((function(){o.update()})),this.widget&&this.widget.disable()}},update:function(e){if(null!=this.tick){var t=this,n=++this.tick;s(this.options.hint,this.cm,this.options,(function(r){t.tick==n&&t.finishUpdate(r,e)}))}},finishUpdate:function(t,n){this.data&&e.signal(this.data,\"update\");var r=this.widget&&this.widget.picked||n&&this.options.completeSingle;this.widget&&this.widget.close(),this.data=t,t&&t.list.length&&(r&&1==t.list.length?this.pick(t,0):(this.widget=new a(this,t),e.signal(t,\"shown\")))}},a.prototype={close:function(){if(this.completion.widget==this){this.completion.widget=null,this.hints.parentNode&&this.hints.parentNode.removeChild(this.hints),this.completion.cm.removeKeyMap(this.keyMap);var e=this.completion.cm.getInputField();e.removeAttribute(\"aria-activedescendant\"),e.removeAttribute(\"aria-owns\");var t=this.completion.cm;this.completion.options.closeOnUnfocus&&(t.off(\"blur\",this.onBlur),t.off(\"focus\",this.onFocus)),t.off(\"scroll\",this.onScroll)}},disable:function(){this.completion.cm.removeKeyMap(this.keyMap);var e=this;this.keyMap={Enter:function(){e.picked=!0}},this.completion.cm.addKeyMap(this.keyMap)},pick:function(){this.completion.pick(this.data,this.selectedHint)},changeActive:function(t,n){if(t>=this.data.list.length?t=n?this.data.list.length-1:0:t<0&&(t=n?0:this.data.list.length-1),this.selectedHint!=t){var r=this.hints.childNodes[this.selectedHint];r&&(r.className=r.className.replace(\" CodeMirror-hint-active\",\"\"),r.removeAttribute(\"aria-selected\")),(r=this.hints.childNodes[this.selectedHint=t]).className+=\" CodeMirror-hint-active\",r.setAttribute(\"aria-selected\",\"true\"),this.completion.cm.getInputField().setAttribute(\"aria-activedescendant\",r.id),this.scrollToActive(),e.signal(this.data,\"select\",this.data.list[this.selectedHint],r)}},scrollToActive:function(){var e=this.getSelectedHintRange(),t=this.hints.childNodes[e.from],n=this.hints.childNodes[e.to],r=this.hints.firstChild;t.offsetTop<this.hints.scrollTop?this.hints.scrollTop=t.offsetTop-r.offsetTop:n.offsetTop+n.offsetHeight>this.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=n.offsetTop+n.offsetHeight-this.hints.clientHeight+r.offsetTop)},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1},getSelectedHintRange:function(){var e=this.completion.options.scrollMargin||0;return{from:Math.max(0,this.selectedHint-e),to:Math.min(this.data.list.length-1,this.selectedHint+e)}}},e.registerHelper(\"hint\",\"auto\",{resolve:function(t,n){var r,i=t.getHelpers(n,\"hint\");if(i.length){var o=function(e,t,n){var r=function(e,t){if(!e.somethingSelected())return t;for(var n=[],r=0;r<t.length;r++)t[r].supportsSelection&&n.push(t[r]);return n}(e,i);!function i(o){if(o==r.length)return t(null);s(r[o],e,n,(function(e){e&&e.list.length>0?t(e):i(o+1)}))}(0)};return o.async=!0,o.supportsSelection=!0,o}return(r=t.getHelper(t.getCursor(),\"hintWords\"))?function(t){return e.hint.fromList(t,{words:r})}:e.hint.anyword?function(t,n){return e.hint.anyword(t,n)}:function(){}}}),e.registerHelper(\"hint\",\"fromList\",(function(t,n){var r,i=t.getCursor(),o=t.getTokenAt(i),a=e.Pos(i.line,o.start),s=i;o.start<i.ch&&/\\w/.test(o.string.charAt(i.ch-o.start-1))?r=o.string.substr(0,i.ch-o.start):(r=\"\",a=i);for(var l=[],u=0;u<n.words.length;u++){var c=n.words[u];c.slice(0,r.length)==r&&l.push(c)}if(l.length)return{list:l,from:a,to:s}})),e.commands.autocomplete=e.showHint;var l={hint:e.hint.auto,completeSingle:!0,alignWithWord:!0,closeCharacters:/[\\s()\\[\\]{};:>,]/,closeOnPick:!0,closeOnUnfocus:!0,updateOnCursorActivity:!0,completeOnSingleClick:!0,container:null,customKeys:null,extraKeys:null,paddingForScrollbar:!0,moveOnOverlap:!0};e.defineOption(\"hintOptions\",null)}(n(1719))},5406:e=>{e.exports={table:{\"*[&&,valueLogical]\":{\"&&\":[\"[&&,valueLogical]\",\"*[&&,valueLogical]\"],AS:[],\")\":[],\",\":[],\"||\":[],\";\":[]},\"*[,,expression]\":{\",\":[\"[,,expression]\",\"*[,,expression]\"],\")\":[]},\"*[,,objectPath]\":{\",\":[\"[,,objectPath]\",\"*[,,objectPath]\"],\".\":[],\";\":[],\"]\":[],\"{\":[],OPTIONAL:[],MINUS:[],GRAPH:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[],\"}\":[]},\"*[,,object]\":{\",\":[\"[,,object]\",\"*[,,object]\"],\".\":[],\";\":[],\"]\":[],\"}\":[],GRAPH:[],\"{\":[],OPTIONAL:[],MINUS:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[]},\"*[/,pathEltOrInverse]\":{\"/\":[\"[/,pathEltOrInverse]\",\"*[/,pathEltOrInverse]\"],\"|\":[],\")\":[],\"(\":[],\"[\":[],VAR1:[],VAR2:[],NIL:[],IRI_REF:[],TRUE:[],FALSE:[],BLANK_NODE_LABEL:[],ANON:[],PNAME_LN:[],PNAME_NS:[],STRING_LITERAL1:[],STRING_LITERAL2:[],STRING_LITERAL_LONG1:[],STRING_LITERAL_LONG2:[],INTEGER:[],DECIMAL:[],DOUBLE:[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[]},\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\":{\";\":[\"[;,?[or([verbPath,verbSimple]),objectListPath]]\",\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\"],\".\":[],\"]\":[],\"{\":[],OPTIONAL:[],MINUS:[],GRAPH:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[],\"}\":[]},\"*[;,?[verb,objectList]]\":{\";\":[\"[;,?[verb,objectList]]\",\"*[;,?[verb,objectList]]\"],\".\":[],\"]\":[],\"}\":[],GRAPH:[],\"{\":[],OPTIONAL:[],MINUS:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[]},\"*[UNION,groupGraphPattern]\":{UNION:[\"[UNION,groupGraphPattern]\",\"*[UNION,groupGraphPattern]\"],VAR1:[],VAR2:[],NIL:[],\"(\":[],\"[\":[],IRI_REF:[],TRUE:[],FALSE:[],BLANK_NODE_LABEL:[],ANON:[],PNAME_LN:[],PNAME_NS:[],STRING_LITERAL1:[],STRING_LITERAL2:[],STRING_LITERAL_LONG1:[],STRING_LITERAL_LONG2:[],INTEGER:[],DECIMAL:[],DOUBLE:[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[],\".\":[],\"{\":[],OPTIONAL:[],MINUS:[],GRAPH:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[],\"}\":[]},\"*[graphPatternNotTriples,?.,?triplesBlock]\":{\"{\":[\"[graphPatternNotTriples,?.,?triplesBlock]\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],OPTIONAL:[\"[graphPatternNotTriples,?.,?triplesBlock]\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],MINUS:[\"[graphPatternNotTriples,?.,?triplesBlock]\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],GRAPH:[\"[graphPatternNotTriples,?.,?triplesBlock]\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],SERVICE:[\"[graphPatternNotTriples,?.,?triplesBlock]\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],FILTER:[\"[graphPatternNotTriples,?.,?triplesBlock]\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],BIND:[\"[graphPatternNotTriples,?.,?triplesBlock]\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],VALUES:[\"[graphPatternNotTriples,?.,?triplesBlock]\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],\"}\":[]},\"*[quadsNotTriples,?.,?triplesTemplate]\":{GRAPH:[\"[quadsNotTriples,?.,?triplesTemplate]\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],\"}\":[]},\"*[|,pathOneInPropertySet]\":{\"|\":[\"[|,pathOneInPropertySet]\",\"*[|,pathOneInPropertySet]\"],\")\":[]},\"*[|,pathSequence]\":{\"|\":[\"[|,pathSequence]\",\"*[|,pathSequence]\"],\")\":[],\"(\":[],\"[\":[],VAR1:[],VAR2:[],NIL:[],IRI_REF:[],TRUE:[],FALSE:[],BLANK_NODE_LABEL:[],ANON:[],PNAME_LN:[],PNAME_NS:[],STRING_LITERAL1:[],STRING_LITERAL2:[],STRING_LITERAL_LONG1:[],STRING_LITERAL_LONG2:[],INTEGER:[],DECIMAL:[],DOUBLE:[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[]},\"*[||,conditionalAndExpression]\":{\"||\":[\"[||,conditionalAndExpression]\",\"*[||,conditionalAndExpression]\"],AS:[],\")\":[],\",\":[],\";\":[]},\"*dataBlockValue\":{UNDEF:[\"dataBlockValue\",\"*dataBlockValue\"],IRI_REF:[\"dataBlockValue\",\"*dataBlockValue\"],TRUE:[\"dataBlockValue\",\"*dataBlockValue\"],FALSE:[\"dataBlockValue\",\"*dataBlockValue\"],PNAME_LN:[\"dataBlockValue\",\"*dataBlockValue\"],PNAME_NS:[\"dataBlockValue\",\"*dataBlockValue\"],STRING_LITERAL1:[\"dataBlockValue\",\"*dataBlockValue\"],STRING_LITERAL2:[\"dataBlockValue\",\"*dataBlockValue\"],STRING_LITERAL_LONG1:[\"dataBlockValue\",\"*dataBlockValue\"],STRING_LITERAL_LONG2:[\"dataBlockValue\",\"*dataBlockValue\"],INTEGER:[\"dataBlockValue\",\"*dataBlockValue\"],DECIMAL:[\"dataBlockValue\",\"*dataBlockValue\"],DOUBLE:[\"dataBlockValue\",\"*dataBlockValue\"],INTEGER_POSITIVE:[\"dataBlockValue\",\"*dataBlockValue\"],DECIMAL_POSITIVE:[\"dataBlockValue\",\"*dataBlockValue\"],DOUBLE_POSITIVE:[\"dataBlockValue\",\"*dataBlockValue\"],INTEGER_NEGATIVE:[\"dataBlockValue\",\"*dataBlockValue\"],DECIMAL_NEGATIVE:[\"dataBlockValue\",\"*dataBlockValue\"],DOUBLE_NEGATIVE:[\"dataBlockValue\",\"*dataBlockValue\"],\"}\":[],\")\":[]},\"*datasetClause\":{FROM:[\"datasetClause\",\"*datasetClause\"],WHERE:[],\"{\":[]},\"*describeDatasetClause\":{FROM:[\"describeDatasetClause\",\"*describeDatasetClause\"],ORDER:[],HAVING:[],GROUP:[],LIMIT:[],OFFSET:[],WHERE:[],\"{\":[],VALUES:[],$:[]},\"*graphNode\":{\"(\":[\"graphNode\",\"*graphNode\"],\"[\":[\"graphNode\",\"*graphNode\"],VAR1:[\"graphNode\",\"*graphNode\"],VAR2:[\"graphNode\",\"*graphNode\"],NIL:[\"graphNode\",\"*graphNode\"],IRI_REF:[\"graphNode\",\"*graphNode\"],TRUE:[\"graphNode\",\"*graphNode\"],FALSE:[\"graphNode\",\"*graphNode\"],BLANK_NODE_LABEL:[\"graphNode\",\"*graphNode\"],ANON:[\"graphNode\",\"*graphNode\"],PNAME_LN:[\"graphNode\",\"*graphNode\"],PNAME_NS:[\"graphNode\",\"*graphNode\"],STRING_LITERAL1:[\"graphNode\",\"*graphNode\"],STRING_LITERAL2:[\"graphNode\",\"*graphNode\"],STRING_LITERAL_LONG1:[\"graphNode\",\"*graphNode\"],STRING_LITERAL_LONG2:[\"graphNode\",\"*graphNode\"],INTEGER:[\"graphNode\",\"*graphNode\"],DECIMAL:[\"graphNode\",\"*graphNode\"],DOUBLE:[\"graphNode\",\"*graphNode\"],INTEGER_POSITIVE:[\"graphNode\",\"*graphNode\"],DECIMAL_POSITIVE:[\"graphNode\",\"*graphNode\"],DOUBLE_POSITIVE:[\"graphNode\",\"*graphNode\"],INTEGER_NEGATIVE:[\"graphNode\",\"*graphNode\"],DECIMAL_NEGATIVE:[\"graphNode\",\"*graphNode\"],DOUBLE_NEGATIVE:[\"graphNode\",\"*graphNode\"],\")\":[]},\"*graphNodePath\":{\"(\":[\"graphNodePath\",\"*graphNodePath\"],\"[\":[\"graphNodePath\",\"*graphNodePath\"],VAR1:[\"graphNodePath\",\"*graphNodePath\"],VAR2:[\"graphNodePath\",\"*graphNodePath\"],NIL:[\"graphNodePath\",\"*graphNodePath\"],IRI_REF:[\"graphNodePath\",\"*graphNodePath\"],TRUE:[\"graphNodePath\",\"*graphNodePath\"],FALSE:[\"graphNodePath\",\"*graphNodePath\"],BLANK_NODE_LABEL:[\"graphNodePath\",\"*graphNodePath\"],ANON:[\"graphNodePath\",\"*graphNodePath\"],PNAME_LN:[\"graphNodePath\",\"*graphNodePath\"],PNAME_NS:[\"graphNodePath\",\"*graphNodePath\"],STRING_LITERAL1:[\"graphNodePath\",\"*graphNodePath\"],STRING_LITERAL2:[\"graphNodePath\",\"*graphNodePath\"],STRING_LITERAL_LONG1:[\"graphNodePath\",\"*graphNodePath\"],STRING_LITERAL_LONG2:[\"graphNodePath\",\"*graphNodePath\"],INTEGER:[\"graphNodePath\",\"*graphNodePath\"],DECIMAL:[\"graphNodePath\",\"*graphNodePath\"],DOUBLE:[\"graphNodePath\",\"*graphNodePath\"],INTEGER_POSITIVE:[\"graphNodePath\",\"*graphNodePath\"],DECIMAL_POSITIVE:[\"graphNodePath\",\"*graphNodePath\"],DOUBLE_POSITIVE:[\"graphNodePath\",\"*graphNodePath\"],INTEGER_NEGATIVE:[\"graphNodePath\",\"*graphNodePath\"],DECIMAL_NEGATIVE:[\"graphNodePath\",\"*graphNodePath\"],DOUBLE_NEGATIVE:[\"graphNodePath\",\"*graphNodePath\"],\")\":[]},\"*groupCondition\":{\"(\":[\"groupCondition\",\"*groupCondition\"],STR:[\"groupCondition\",\"*groupCondition\"],LANG:[\"groupCondition\",\"*groupCondition\"],LANGMATCHES:[\"groupCondition\",\"*groupCondition\"],DATATYPE:[\"groupCondition\",\"*groupCondition\"],BOUND:[\"groupCondition\",\"*groupCondition\"],IRI:[\"groupCondition\",\"*groupCondition\"],URI:[\"groupCondition\",\"*groupCondition\"],BNODE:[\"groupCondition\",\"*groupCondition\"],RAND:[\"groupCondition\",\"*groupCondition\"],ABS:[\"groupCondition\",\"*groupCondition\"],CEIL:[\"groupCondition\",\"*groupCondition\"],FLOOR:[\"groupCondition\",\"*groupCondition\"],ROUND:[\"groupCondition\",\"*groupCondition\"],CONCAT:[\"groupCondition\",\"*groupCondition\"],STRLEN:[\"groupCondition\",\"*groupCondition\"],UCASE:[\"groupCondition\",\"*groupCondition\"],LCASE:[\"groupCondition\",\"*groupCondition\"],ENCODE_FOR_URI:[\"groupCondition\",\"*groupCondition\"],CONTAINS:[\"groupCondition\",\"*groupCondition\"],STRSTARTS:[\"groupCondition\",\"*groupCondition\"],STRENDS:[\"groupCondition\",\"*groupCondition\"],STRBEFORE:[\"groupCondition\",\"*groupCondition\"],STRAFTER:[\"groupCondition\",\"*groupCondition\"],YEAR:[\"groupCondition\",\"*groupCondition\"],MONTH:[\"groupCondition\",\"*groupCondition\"],DAY:[\"groupCondition\",\"*groupCondition\"],HOURS:[\"groupCondition\",\"*groupCondition\"],MINUTES:[\"groupCondition\",\"*groupCondition\"],SECONDS:[\"groupCondition\",\"*groupCondition\"],TIMEZONE:[\"groupCondition\",\"*groupCondition\"],TZ:[\"groupCondition\",\"*groupCondition\"],NOW:[\"groupCondition\",\"*groupCondition\"],UUID:[\"groupCondition\",\"*groupCondition\"],STRUUID:[\"groupCondition\",\"*groupCondition\"],MD5:[\"groupCondition\",\"*groupCondition\"],SHA1:[\"groupCondition\",\"*groupCondition\"],SHA256:[\"groupCondition\",\"*groupCondition\"],SHA384:[\"groupCondition\",\"*groupCondition\"],SHA512:[\"groupCondition\",\"*groupCondition\"],COALESCE:[\"groupCondition\",\"*groupCondition\"],IF:[\"groupCondition\",\"*groupCondition\"],STRLANG:[\"groupCondition\",\"*groupCondition\"],STRDT:[\"groupCondition\",\"*groupCondition\"],SAMETERM:[\"groupCondition\",\"*groupCondition\"],ISIRI:[\"groupCondition\",\"*groupCondition\"],ISURI:[\"groupCondition\",\"*groupCondition\"],ISBLANK:[\"groupCondition\",\"*groupCondition\"],ISLITERAL:[\"groupCondition\",\"*groupCondition\"],ISNUMERIC:[\"groupCondition\",\"*groupCondition\"],VAR1:[\"groupCondition\",\"*groupCondition\"],VAR2:[\"groupCondition\",\"*groupCondition\"],SUBSTR:[\"groupCondition\",\"*groupCondition\"],REPLACE:[\"groupCondition\",\"*groupCondition\"],REGEX:[\"groupCondition\",\"*groupCondition\"],EXISTS:[\"groupCondition\",\"*groupCondition\"],NOT:[\"groupCondition\",\"*groupCondition\"],IRI_REF:[\"groupCondition\",\"*groupCondition\"],PNAME_LN:[\"groupCondition\",\"*groupCondition\"],PNAME_NS:[\"groupCondition\",\"*groupCondition\"],VALUES:[],LIMIT:[],OFFSET:[],ORDER:[],HAVING:[],$:[],\"}\":[]},\"*havingCondition\":{\"(\":[\"havingCondition\",\"*havingCondition\"],STR:[\"havingCondition\",\"*havingCondition\"],LANG:[\"havingCondition\",\"*havingCondition\"],LANGMATCHES:[\"havingCondition\",\"*havingCondition\"],DATATYPE:[\"havingCondition\",\"*havingCondition\"],BOUND:[\"havingCondition\",\"*havingCondition\"],IRI:[\"havingCondition\",\"*havingCondition\"],URI:[\"havingCondition\",\"*havingCondition\"],BNODE:[\"havingCondition\",\"*havingCondition\"],RAND:[\"havingCondition\",\"*havingCondition\"],ABS:[\"havingCondition\",\"*havingCondition\"],CEIL:[\"havingCondition\",\"*havingCondition\"],FLOOR:[\"havingCondition\",\"*havingCondition\"],ROUND:[\"havingCondition\",\"*havingCondition\"],CONCAT:[\"havingCondition\",\"*havingCondition\"],STRLEN:[\"havingCondition\",\"*havingCondition\"],UCASE:[\"havingCondition\",\"*havingCondition\"],LCASE:[\"havingCondition\",\"*havingCondition\"],ENCODE_FOR_URI:[\"havingCondition\",\"*havingCondition\"],CONTAINS:[\"havingCondition\",\"*havingCondition\"],STRSTARTS:[\"havingCondition\",\"*havingCondition\"],STRENDS:[\"havingCondition\",\"*havingCondition\"],STRBEFORE:[\"havingCondition\",\"*havingCondition\"],STRAFTER:[\"havingCondition\",\"*havingCondition\"],YEAR:[\"havingCondition\",\"*havingCondition\"],MONTH:[\"havingCondition\",\"*havingCondition\"],DAY:[\"havingCondition\",\"*havingCondition\"],HOURS:[\"havingCondition\",\"*havingCondition\"],MINUTES:[\"havingCondition\",\"*havingCondition\"],SECONDS:[\"havingCondition\",\"*havingCondition\"],TIMEZONE:[\"havingCondition\",\"*havingCondition\"],TZ:[\"havingCondition\",\"*havingCondition\"],NOW:[\"havingCondition\",\"*havingCondition\"],UUID:[\"havingCondition\",\"*havingCondition\"],STRUUID:[\"havingCondition\",\"*havingCondition\"],MD5:[\"havingCondition\",\"*havingCondition\"],SHA1:[\"havingCondition\",\"*havingCondition\"],SHA256:[\"havingCondition\",\"*havingCondition\"],SHA384:[\"havingCondition\",\"*havingCondition\"],SHA512:[\"havingCondition\",\"*havingCondition\"],COALESCE:[\"havingCondition\",\"*havingCondition\"],IF:[\"havingCondition\",\"*havingCondition\"],STRLANG:[\"havingCondition\",\"*havingCondition\"],STRDT:[\"havingCondition\",\"*havingCondition\"],SAMETERM:[\"havingCondition\",\"*havingCondition\"],ISIRI:[\"havingCondition\",\"*havingCondition\"],ISURI:[\"havingCondition\",\"*havingCondition\"],ISBLANK:[\"havingCondition\",\"*havingCondition\"],ISLITERAL:[\"havingCondition\",\"*havingCondition\"],ISNUMERIC:[\"havingCondition\",\"*havingCondition\"],SUBSTR:[\"havingCondition\",\"*havingCondition\"],REPLACE:[\"havingCondition\",\"*havingCondition\"],REGEX:[\"havingCondition\",\"*havingCondition\"],EXISTS:[\"havingCondition\",\"*havingCondition\"],NOT:[\"havingCondition\",\"*havingCondition\"],IRI_REF:[\"havingCondition\",\"*havingCondition\"],PNAME_LN:[\"havingCondition\",\"*havingCondition\"],PNAME_NS:[\"havingCondition\",\"*havingCondition\"],VALUES:[],LIMIT:[],OFFSET:[],ORDER:[],$:[],\"}\":[]},\"*or([[(,*dataBlockValue,)],NIL])\":{\"(\":[\"or([[(,*dataBlockValue,)],NIL])\",\"*or([[(,*dataBlockValue,)],NIL])\"],NIL:[\"or([[(,*dataBlockValue,)],NIL])\",\"*or([[(,*dataBlockValue,)],NIL])\"],\"}\":[]},\"*or([[*,unaryExpression],[/,unaryExpression]])\":{\"*\":[\"or([[*,unaryExpression],[/,unaryExpression]])\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],\"/\":[\"or([[*,unaryExpression],[/,unaryExpression]])\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],AS:[],\")\":[],\",\":[],\"||\":[],\"&&\":[],\"=\":[],\"!=\":[],\"<\":[],\">\":[],\"<=\":[],\">=\":[],IN:[],NOT:[],\"+\":[],\"-\":[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[],\";\":[]},\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\":{\"+\":[\"or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],\"-\":[\"or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],INTEGER_POSITIVE:[\"or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DECIMAL_POSITIVE:[\"or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DOUBLE_POSITIVE:[\"or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],INTEGER_NEGATIVE:[\"or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DECIMAL_NEGATIVE:[\"or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DOUBLE_NEGATIVE:[\"or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],AS:[],\")\":[],\",\":[],\"||\":[],\"&&\":[],\"=\":[],\"!=\":[],\"<\":[],\">\":[],\"<=\":[],\">=\":[],IN:[],NOT:[],\";\":[]},\"*or([baseDecl,prefixDecl])\":{BASE:[\"or([baseDecl,prefixDecl])\",\"*or([baseDecl,prefixDecl])\"],PREFIX:[\"or([baseDecl,prefixDecl])\",\"*or([baseDecl,prefixDecl])\"],$:[],CONSTRUCT:[],DESCRIBE:[],ASK:[],INSERT:[],DELETE:[],SELECT:[],LOAD:[],CLEAR:[],DROP:[],ADD:[],MOVE:[],COPY:[],CREATE:[],WITH:[]},\"*or([var,[(,expression,AS,var,)]])\":{\"(\":[\"or([var,[(,expression,AS,var,)]])\",\"*or([var,[(,expression,AS,var,)]])\"],VAR1:[\"or([var,[(,expression,AS,var,)]])\",\"*or([var,[(,expression,AS,var,)]])\"],VAR2:[\"or([var,[(,expression,AS,var,)]])\",\"*or([var,[(,expression,AS,var,)]])\"],WHERE:[],\"{\":[],FROM:[]},\"*orderCondition\":{ASC:[\"orderCondition\",\"*orderCondition\"],DESC:[\"orderCondition\",\"*orderCondition\"],VAR1:[\"orderCondition\",\"*orderCondition\"],VAR2:[\"orderCondition\",\"*orderCondition\"],\"(\":[\"orderCondition\",\"*orderCondition\"],STR:[\"orderCondition\",\"*orderCondition\"],LANG:[\"orderCondition\",\"*orderCondition\"],LANGMATCHES:[\"orderCondition\",\"*orderCondition\"],DATATYPE:[\"orderCondition\",\"*orderCondition\"],BOUND:[\"orderCondition\",\"*orderCondition\"],IRI:[\"orderCondition\",\"*orderCondition\"],URI:[\"orderCondition\",\"*orderCondition\"],BNODE:[\"orderCondition\",\"*orderCondition\"],RAND:[\"orderCondition\",\"*orderCondition\"],ABS:[\"orderCondition\",\"*orderCondition\"],CEIL:[\"orderCondition\",\"*orderCondition\"],FLOOR:[\"orderCondition\",\"*orderCondition\"],ROUND:[\"orderCondition\",\"*orderCondition\"],CONCAT:[\"orderCondition\",\"*orderCondition\"],STRLEN:[\"orderCondition\",\"*orderCondition\"],UCASE:[\"orderCondition\",\"*orderCondition\"],LCASE:[\"orderCondition\",\"*orderCondition\"],ENCODE_FOR_URI:[\"orderCondition\",\"*orderCondition\"],CONTAINS:[\"orderCondition\",\"*orderCondition\"],STRSTARTS:[\"orderCondition\",\"*orderCondition\"],STRENDS:[\"orderCondition\",\"*orderCondition\"],STRBEFORE:[\"orderCondition\",\"*orderCondition\"],STRAFTER:[\"orderCondition\",\"*orderCondition\"],YEAR:[\"orderCondition\",\"*orderCondition\"],MONTH:[\"orderCondition\",\"*orderCondition\"],DAY:[\"orderCondition\",\"*orderCondition\"],HOURS:[\"orderCondition\",\"*orderCondition\"],MINUTES:[\"orderCondition\",\"*orderCondition\"],SECONDS:[\"orderCondition\",\"*orderCondition\"],TIMEZONE:[\"orderCondition\",\"*orderCondition\"],TZ:[\"orderCondition\",\"*orderCondition\"],NOW:[\"orderCondition\",\"*orderCondition\"],UUID:[\"orderCondition\",\"*orderCondition\"],STRUUID:[\"orderCondition\",\"*orderCondition\"],MD5:[\"orderCondition\",\"*orderCondition\"],SHA1:[\"orderCondition\",\"*orderCondition\"],SHA256:[\"orderCondition\",\"*orderCondition\"],SHA384:[\"orderCondition\",\"*orderCondition\"],SHA512:[\"orderCondition\",\"*orderCondition\"],COALESCE:[\"orderCondition\",\"*orderCondition\"],IF:[\"orderCondition\",\"*orderCondition\"],STRLANG:[\"orderCondition\",\"*orderCondition\"],STRDT:[\"orderCondition\",\"*orderCondition\"],SAMETERM:[\"orderCondition\",\"*orderCondition\"],ISIRI:[\"orderCondition\",\"*orderCondition\"],ISURI:[\"orderCondition\",\"*orderCondition\"],ISBLANK:[\"orderCondition\",\"*orderCondition\"],ISLITERAL:[\"orderCondition\",\"*orderCondition\"],ISNUMERIC:[\"orderCondition\",\"*orderCondition\"],SUBSTR:[\"orderCondition\",\"*orderCondition\"],REPLACE:[\"orderCondition\",\"*orderCondition\"],REGEX:[\"orderCondition\",\"*orderCondition\"],EXISTS:[\"orderCondition\",\"*orderCondition\"],NOT:[\"orderCondition\",\"*orderCondition\"],IRI_REF:[\"orderCondition\",\"*orderCondition\"],PNAME_LN:[\"orderCondition\",\"*orderCondition\"],PNAME_NS:[\"orderCondition\",\"*orderCondition\"],VALUES:[],LIMIT:[],OFFSET:[],$:[],\"}\":[]},\"*usingClause\":{USING:[\"usingClause\",\"*usingClause\"],WHERE:[]},\"*var\":{VAR1:[\"var\",\"*var\"],VAR2:[\"var\",\"*var\"],\")\":[]},\"*varOrIRIref\":{VAR1:[\"varOrIRIref\",\"*varOrIRIref\"],VAR2:[\"varOrIRIref\",\"*varOrIRIref\"],IRI_REF:[\"varOrIRIref\",\"*varOrIRIref\"],PNAME_LN:[\"varOrIRIref\",\"*varOrIRIref\"],PNAME_NS:[\"varOrIRIref\",\"*varOrIRIref\"],ORDER:[],HAVING:[],GROUP:[],LIMIT:[],OFFSET:[],WHERE:[],\"{\":[],FROM:[],VALUES:[],$:[]},\"+graphNode\":{\"(\":[\"graphNode\",\"*graphNode\"],\"[\":[\"graphNode\",\"*graphNode\"],VAR1:[\"graphNode\",\"*graphNode\"],VAR2:[\"graphNode\",\"*graphNode\"],NIL:[\"graphNode\",\"*graphNode\"],IRI_REF:[\"graphNode\",\"*graphNode\"],TRUE:[\"graphNode\",\"*graphNode\"],FALSE:[\"graphNode\",\"*graphNode\"],BLANK_NODE_LABEL:[\"graphNode\",\"*graphNode\"],ANON:[\"graphNode\",\"*graphNode\"],PNAME_LN:[\"graphNode\",\"*graphNode\"],PNAME_NS:[\"graphNode\",\"*graphNode\"],STRING_LITERAL1:[\"graphNode\",\"*graphNode\"],STRING_LITERAL2:[\"graphNode\",\"*graphNode\"],STRING_LITERAL_LONG1:[\"graphNode\",\"*graphNode\"],STRING_LITERAL_LONG2:[\"graphNode\",\"*graphNode\"],INTEGER:[\"graphNode\",\"*graphNode\"],DECIMAL:[\"graphNode\",\"*graphNode\"],DOUBLE:[\"graphNode\",\"*graphNode\"],INTEGER_POSITIVE:[\"graphNode\",\"*graphNode\"],DECIMAL_POSITIVE:[\"graphNode\",\"*graphNode\"],DOUBLE_POSITIVE:[\"graphNode\",\"*graphNode\"],INTEGER_NEGATIVE:[\"graphNode\",\"*graphNode\"],DECIMAL_NEGATIVE:[\"graphNode\",\"*graphNode\"],DOUBLE_NEGATIVE:[\"graphNode\",\"*graphNode\"]},\"+graphNodePath\":{\"(\":[\"graphNodePath\",\"*graphNodePath\"],\"[\":[\"graphNodePath\",\"*graphNodePath\"],VAR1:[\"graphNodePath\",\"*graphNodePath\"],VAR2:[\"graphNodePath\",\"*graphNodePath\"],NIL:[\"graphNodePath\",\"*graphNodePath\"],IRI_REF:[\"graphNodePath\",\"*graphNodePath\"],TRUE:[\"graphNodePath\",\"*graphNodePath\"],FALSE:[\"graphNodePath\",\"*graphNodePath\"],BLANK_NODE_LABEL:[\"graphNodePath\",\"*graphNodePath\"],ANON:[\"graphNodePath\",\"*graphNodePath\"],PNAME_LN:[\"graphNodePath\",\"*graphNodePath\"],PNAME_NS:[\"graphNodePath\",\"*graphNodePath\"],STRING_LITERAL1:[\"graphNodePath\",\"*graphNodePath\"],STRING_LITERAL2:[\"graphNodePath\",\"*graphNodePath\"],STRING_LITERAL_LONG1:[\"graphNodePath\",\"*graphNodePath\"],STRING_LITERAL_LONG2:[\"graphNodePath\",\"*graphNodePath\"],INTEGER:[\"graphNodePath\",\"*graphNodePath\"],DECIMAL:[\"graphNodePath\",\"*graphNodePath\"],DOUBLE:[\"graphNodePath\",\"*graphNodePath\"],INTEGER_POSITIVE:[\"graphNodePath\",\"*graphNodePath\"],DECIMAL_POSITIVE:[\"graphNodePath\",\"*graphNodePath\"],DOUBLE_POSITIVE:[\"graphNodePath\",\"*graphNodePath\"],INTEGER_NEGATIVE:[\"graphNodePath\",\"*graphNodePath\"],DECIMAL_NEGATIVE:[\"graphNodePath\",\"*graphNodePath\"],DOUBLE_NEGATIVE:[\"graphNodePath\",\"*graphNodePath\"]},\"+groupCondition\":{\"(\":[\"groupCondition\",\"*groupCondition\"],STR:[\"groupCondition\",\"*groupCondition\"],LANG:[\"groupCondition\",\"*groupCondition\"],LANGMATCHES:[\"groupCondition\",\"*groupCondition\"],DATATYPE:[\"groupCondition\",\"*groupCondition\"],BOUND:[\"groupCondition\",\"*groupCondition\"],IRI:[\"groupCondition\",\"*groupCondition\"],URI:[\"groupCondition\",\"*groupCondition\"],BNODE:[\"groupCondition\",\"*groupCondition\"],RAND:[\"groupCondition\",\"*groupCondition\"],ABS:[\"groupCondition\",\"*groupCondition\"],CEIL:[\"groupCondition\",\"*groupCondition\"],FLOOR:[\"groupCondition\",\"*groupCondition\"],ROUND:[\"groupCondition\",\"*groupCondition\"],CONCAT:[\"groupCondition\",\"*groupCondition\"],STRLEN:[\"groupCondition\",\"*groupCondition\"],UCASE:[\"groupCondition\",\"*groupCondition\"],LCASE:[\"groupCondition\",\"*groupCondition\"],ENCODE_FOR_URI:[\"groupCondition\",\"*groupCondition\"],CONTAINS:[\"groupCondition\",\"*groupCondition\"],STRSTARTS:[\"groupCondition\",\"*groupCondition\"],STRENDS:[\"groupCondition\",\"*groupCondition\"],STRBEFORE:[\"groupCondition\",\"*groupCondition\"],STRAFTER:[\"groupCondition\",\"*groupCondition\"],YEAR:[\"groupCondition\",\"*groupCondition\"],MONTH:[\"groupCondition\",\"*groupCondition\"],DAY:[\"groupCondition\",\"*groupCondition\"],HOURS:[\"groupCondition\",\"*groupCondition\"],MINUTES:[\"groupCondition\",\"*groupCondition\"],SECONDS:[\"groupCondition\",\"*groupCondition\"],TIMEZONE:[\"groupCondition\",\"*groupCondition\"],TZ:[\"groupCondition\",\"*groupCondition\"],NOW:[\"groupCondition\",\"*groupCondition\"],UUID:[\"groupCondition\",\"*groupCondition\"],STRUUID:[\"groupCondition\",\"*groupCondition\"],MD5:[\"groupCondition\",\"*groupCondition\"],SHA1:[\"groupCondition\",\"*groupCondition\"],SHA256:[\"groupCondition\",\"*groupCondition\"],SHA384:[\"groupCondition\",\"*groupCondition\"],SHA512:[\"groupCondition\",\"*groupCondition\"],COALESCE:[\"groupCondition\",\"*groupCondition\"],IF:[\"groupCondition\",\"*groupCondition\"],STRLANG:[\"groupCondition\",\"*groupCondition\"],STRDT:[\"groupCondition\",\"*groupCondition\"],SAMETERM:[\"groupCondition\",\"*groupCondition\"],ISIRI:[\"groupCondition\",\"*groupCondition\"],ISURI:[\"groupCondition\",\"*groupCondition\"],ISBLANK:[\"groupCondition\",\"*groupCondition\"],ISLITERAL:[\"groupCondition\",\"*groupCondition\"],ISNUMERIC:[\"groupCondition\",\"*groupCondition\"],VAR1:[\"groupCondition\",\"*groupCondition\"],VAR2:[\"groupCondition\",\"*groupCondition\"],SUBSTR:[\"groupCondition\",\"*groupCondition\"],REPLACE:[\"groupCondition\",\"*groupCondition\"],REGEX:[\"groupCondition\",\"*groupCondition\"],EXISTS:[\"groupCondition\",\"*groupCondition\"],NOT:[\"groupCondition\",\"*groupCondition\"],IRI_REF:[\"groupCondition\",\"*groupCondition\"],PNAME_LN:[\"groupCondition\",\"*groupCondition\"],PNAME_NS:[\"groupCondition\",\"*groupCondition\"]},\"+havingCondition\":{\"(\":[\"havingCondition\",\"*havingCondition\"],STR:[\"havingCondition\",\"*havingCondition\"],LANG:[\"havingCondition\",\"*havingCondition\"],LANGMATCHES:[\"havingCondition\",\"*havingCondition\"],DATATYPE:[\"havingCondition\",\"*havingCondition\"],BOUND:[\"havingCondition\",\"*havingCondition\"],IRI:[\"havingCondition\",\"*havingCondition\"],URI:[\"havingCondition\",\"*havingCondition\"],BNODE:[\"havingCondition\",\"*havingCondition\"],RAND:[\"havingCondition\",\"*havingCondition\"],ABS:[\"havingCondition\",\"*havingCondition\"],CEIL:[\"havingCondition\",\"*havingCondition\"],FLOOR:[\"havingCondition\",\"*havingCondition\"],ROUND:[\"havingCondition\",\"*havingCondition\"],CONCAT:[\"havingCondition\",\"*havingCondition\"],STRLEN:[\"havingCondition\",\"*havingCondition\"],UCASE:[\"havingCondition\",\"*havingCondition\"],LCASE:[\"havingCondition\",\"*havingCondition\"],ENCODE_FOR_URI:[\"havingCondition\",\"*havingCondition\"],CONTAINS:[\"havingCondition\",\"*havingCondition\"],STRSTARTS:[\"havingCondition\",\"*havingCondition\"],STRENDS:[\"havingCondition\",\"*havingCondition\"],STRBEFORE:[\"havingCondition\",\"*havingCondition\"],STRAFTER:[\"havingCondition\",\"*havingCondition\"],YEAR:[\"havingCondition\",\"*havingCondition\"],MONTH:[\"havingCondition\",\"*havingCondition\"],DAY:[\"havingCondition\",\"*havingCondition\"],HOURS:[\"havingCondition\",\"*havingCondition\"],MINUTES:[\"havingCondition\",\"*havingCondition\"],SECONDS:[\"havingCondition\",\"*havingCondition\"],TIMEZONE:[\"havingCondition\",\"*havingCondition\"],TZ:[\"havingCondition\",\"*havingCondition\"],NOW:[\"havingCondition\",\"*havingCondition\"],UUID:[\"havingCondition\",\"*havingCondition\"],STRUUID:[\"havingCondition\",\"*havingCondition\"],MD5:[\"havingCondition\",\"*havingCondition\"],SHA1:[\"havingCondition\",\"*havingCondition\"],SHA256:[\"havingCondition\",\"*havingCondition\"],SHA384:[\"havingCondition\",\"*havingCondition\"],SHA512:[\"havingCondition\",\"*havingCondition\"],COALESCE:[\"havingCondition\",\"*havingCondition\"],IF:[\"havingCondition\",\"*havingCondition\"],STRLANG:[\"havingCondition\",\"*havingCondition\"],STRDT:[\"havingCondition\",\"*havingCondition\"],SAMETERM:[\"havingCondition\",\"*havingCondition\"],ISIRI:[\"havingCondition\",\"*havingCondition\"],ISURI:[\"havingCondition\",\"*havingCondition\"],ISBLANK:[\"havingCondition\",\"*havingCondition\"],ISLITERAL:[\"havingCondition\",\"*havingCondition\"],ISNUMERIC:[\"havingCondition\",\"*havingCondition\"],SUBSTR:[\"havingCondition\",\"*havingCondition\"],REPLACE:[\"havingCondition\",\"*havingCondition\"],REGEX:[\"havingCondition\",\"*havingCondition\"],EXISTS:[\"havingCondition\",\"*havingCondition\"],NOT:[\"havingCondition\",\"*havingCondition\"],IRI_REF:[\"havingCondition\",\"*havingCondition\"],PNAME_LN:[\"havingCondition\",\"*havingCondition\"],PNAME_NS:[\"havingCondition\",\"*havingCondition\"]},\"+or([var,[(,expression,AS,var,)]])\":{\"(\":[\"or([var,[(,expression,AS,var,)]])\",\"*or([var,[(,expression,AS,var,)]])\"],VAR1:[\"or([var,[(,expression,AS,var,)]])\",\"*or([var,[(,expression,AS,var,)]])\"],VAR2:[\"or([var,[(,expression,AS,var,)]])\",\"*or([var,[(,expression,AS,var,)]])\"]},\"+orderCondition\":{ASC:[\"orderCondition\",\"*orderCondition\"],DESC:[\"orderCondition\",\"*orderCondition\"],VAR1:[\"orderCondition\",\"*orderCondition\"],VAR2:[\"orderCondition\",\"*orderCondition\"],\"(\":[\"orderCondition\",\"*orderCondition\"],STR:[\"orderCondition\",\"*orderCondition\"],LANG:[\"orderCondition\",\"*orderCondition\"],LANGMATCHES:[\"orderCondition\",\"*orderCondition\"],DATATYPE:[\"orderCondition\",\"*orderCondition\"],BOUND:[\"orderCondition\",\"*orderCondition\"],IRI:[\"orderCondition\",\"*orderCondition\"],URI:[\"orderCondition\",\"*orderCondition\"],BNODE:[\"orderCondition\",\"*orderCondition\"],RAND:[\"orderCondition\",\"*orderCondition\"],ABS:[\"orderCondition\",\"*orderCondition\"],CEIL:[\"orderCondition\",\"*orderCondition\"],FLOOR:[\"orderCondition\",\"*orderCondition\"],ROUND:[\"orderCondition\",\"*orderCondition\"],CONCAT:[\"orderCondition\",\"*orderCondition\"],STRLEN:[\"orderCondition\",\"*orderCondition\"],UCASE:[\"orderCondition\",\"*orderCondition\"],LCASE:[\"orderCondition\",\"*orderCondition\"],ENCODE_FOR_URI:[\"orderCondition\",\"*orderCondition\"],CONTAINS:[\"orderCondition\",\"*orderCondition\"],STRSTARTS:[\"orderCondition\",\"*orderCondition\"],STRENDS:[\"orderCondition\",\"*orderCondition\"],STRBEFORE:[\"orderCondition\",\"*orderCondition\"],STRAFTER:[\"orderCondition\",\"*orderCondition\"],YEAR:[\"orderCondition\",\"*orderCondition\"],MONTH:[\"orderCondition\",\"*orderCondition\"],DAY:[\"orderCondition\",\"*orderCondition\"],HOURS:[\"orderCondition\",\"*orderCondition\"],MINUTES:[\"orderCondition\",\"*orderCondition\"],SECONDS:[\"orderCondition\",\"*orderCondition\"],TIMEZONE:[\"orderCondition\",\"*orderCondition\"],TZ:[\"orderCondition\",\"*orderCondition\"],NOW:[\"orderCondition\",\"*orderCondition\"],UUID:[\"orderCondition\",\"*orderCondition\"],STRUUID:[\"orderCondition\",\"*orderCondition\"],MD5:[\"orderCondition\",\"*orderCondition\"],SHA1:[\"orderCondition\",\"*orderCondition\"],SHA256:[\"orderCondition\",\"*orderCondition\"],SHA384:[\"orderCondition\",\"*orderCondition\"],SHA512:[\"orderCondition\",\"*orderCondition\"],COALESCE:[\"orderCondition\",\"*orderCondition\"],IF:[\"orderCondition\",\"*orderCondition\"],STRLANG:[\"orderCondition\",\"*orderCondition\"],STRDT:[\"orderCondition\",\"*orderCondition\"],SAMETERM:[\"orderCondition\",\"*orderCondition\"],ISIRI:[\"orderCondition\",\"*orderCondition\"],ISURI:[\"orderCondition\",\"*orderCondition\"],ISBLANK:[\"orderCondition\",\"*orderCondition\"],ISLITERAL:[\"orderCondition\",\"*orderCondition\"],ISNUMERIC:[\"orderCondition\",\"*orderCondition\"],SUBSTR:[\"orderCondition\",\"*orderCondition\"],REPLACE:[\"orderCondition\",\"*orderCondition\"],REGEX:[\"orderCondition\",\"*orderCondition\"],EXISTS:[\"orderCondition\",\"*orderCondition\"],NOT:[\"orderCondition\",\"*orderCondition\"],IRI_REF:[\"orderCondition\",\"*orderCondition\"],PNAME_LN:[\"orderCondition\",\"*orderCondition\"],PNAME_NS:[\"orderCondition\",\"*orderCondition\"]},\"+varOrIRIref\":{VAR1:[\"varOrIRIref\",\"*varOrIRIref\"],VAR2:[\"varOrIRIref\",\"*varOrIRIref\"],IRI_REF:[\"varOrIRIref\",\"*varOrIRIref\"],PNAME_LN:[\"varOrIRIref\",\"*varOrIRIref\"],PNAME_NS:[\"varOrIRIref\",\"*varOrIRIref\"]},\"?.\":{\".\":[\".\"],VAR1:[],VAR2:[],NIL:[],\"(\":[],\"[\":[],IRI_REF:[],TRUE:[],FALSE:[],BLANK_NODE_LABEL:[],ANON:[],PNAME_LN:[],PNAME_NS:[],STRING_LITERAL1:[],STRING_LITERAL2:[],STRING_LITERAL_LONG1:[],STRING_LITERAL_LONG2:[],INTEGER:[],DECIMAL:[],DOUBLE:[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[],GRAPH:[],\"{\":[],OPTIONAL:[],MINUS:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[],\"}\":[]},\"?DISTINCT\":{DISTINCT:[\"DISTINCT\"],\"!\":[],\"+\":[],\"-\":[],VAR1:[],VAR2:[],\"(\":[],STR:[],LANG:[],LANGMATCHES:[],DATATYPE:[],BOUND:[],IRI:[],URI:[],BNODE:[],RAND:[],ABS:[],CEIL:[],FLOOR:[],ROUND:[],CONCAT:[],STRLEN:[],UCASE:[],LCASE:[],ENCODE_FOR_URI:[],CONTAINS:[],STRSTARTS:[],STRENDS:[],STRBEFORE:[],STRAFTER:[],YEAR:[],MONTH:[],DAY:[],HOURS:[],MINUTES:[],SECONDS:[],TIMEZONE:[],TZ:[],NOW:[],UUID:[],STRUUID:[],MD5:[],SHA1:[],SHA256:[],SHA384:[],SHA512:[],COALESCE:[],IF:[],STRLANG:[],STRDT:[],SAMETERM:[],ISIRI:[],ISURI:[],ISBLANK:[],ISLITERAL:[],ISNUMERIC:[],TRUE:[],FALSE:[],COUNT:[],SUM:[],MIN:[],MAX:[],AVG:[],SAMPLE:[],GROUP_CONCAT:[],SUBSTR:[],REPLACE:[],REGEX:[],EXISTS:[],NOT:[],IRI_REF:[],STRING_LITERAL1:[],STRING_LITERAL2:[],STRING_LITERAL_LONG1:[],STRING_LITERAL_LONG2:[],INTEGER:[],DECIMAL:[],DOUBLE:[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[],PNAME_LN:[],PNAME_NS:[],\"*\":[]},\"?GRAPH\":{GRAPH:[\"GRAPH\"],IRI_REF:[],PNAME_LN:[],PNAME_NS:[]},\"?SILENT\":{SILENT:[\"SILENT\"],VAR1:[],VAR2:[],IRI_REF:[],PNAME_LN:[],PNAME_NS:[]},\"?SILENT_1\":{SILENT:[\"SILENT\"],IRI_REF:[],PNAME_LN:[],PNAME_NS:[]},\"?SILENT_2\":{SILENT:[\"SILENT\"],GRAPH:[],DEFAULT:[],NAMED:[],ALL:[]},\"?SILENT_3\":{SILENT:[\"SILENT\"],GRAPH:[]},\"?SILENT_4\":{SILENT:[\"SILENT\"],DEFAULT:[],GRAPH:[],IRI_REF:[],PNAME_LN:[],PNAME_NS:[]},\"?WHERE\":{WHERE:[\"WHERE\"],\"{\":[]},\"?[,,expression]\":{\",\":[\"[,,expression]\"],\")\":[]},\"?[.,?constructTriples]\":{\".\":[\"[.,?constructTriples]\"],\"}\":[]},\"?[.,?triplesBlock]\":{\".\":[\"[.,?triplesBlock]\"],\"{\":[],OPTIONAL:[],MINUS:[],GRAPH:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[],\"}\":[]},\"?[.,?triplesTemplate]\":{\".\":[\"[.,?triplesTemplate]\"],\"}\":[],GRAPH:[]},\"?[;,SEPARATOR,=,string]\":{\";\":[\"[;,SEPARATOR,=,string]\"],\")\":[]},\"?[;,update]\":{\";\":[\"[;,update]\"],$:[]},\"?[AS,var]\":{AS:[\"[AS,var]\"],\")\":[]},\"?[INTO,graphRef]\":{INTO:[\"[INTO,graphRef]\"],\";\":[],$:[]},\"?[or([verbPath,verbSimple]),objectListPath]\":{VAR1:[\"[or([verbPath,verbSimple]),objectListPath]\"],VAR2:[\"[or([verbPath,verbSimple]),objectListPath]\"],\"^\":[\"[or([verbPath,verbSimple]),objectListPath]\"],a:[\"[or([verbPath,verbSimple]),objectListPath]\"],\"!\":[\"[or([verbPath,verbSimple]),objectListPath]\"],\"(\":[\"[or([verbPath,verbSimple]),objectListPath]\"],IRI_REF:[\"[or([verbPath,verbSimple]),objectListPath]\"],PNAME_LN:[\"[or([verbPath,verbSimple]),objectListPath]\"],PNAME_NS:[\"[or([verbPath,verbSimple]),objectListPath]\"],\";\":[],\".\":[],\"]\":[],\"{\":[],OPTIONAL:[],MINUS:[],GRAPH:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[],\"}\":[]},\"?[pathOneInPropertySet,*[|,pathOneInPropertySet]]\":{a:[\"[pathOneInPropertySet,*[|,pathOneInPropertySet]]\"],\"^\":[\"[pathOneInPropertySet,*[|,pathOneInPropertySet]]\"],IRI_REF:[\"[pathOneInPropertySet,*[|,pathOneInPropertySet]]\"],PNAME_LN:[\"[pathOneInPropertySet,*[|,pathOneInPropertySet]]\"],PNAME_NS:[\"[pathOneInPropertySet,*[|,pathOneInPropertySet]]\"],\")\":[]},\"?[update1,?[;,update]]\":{INSERT:[\"[update1,?[;,update]]\"],DELETE:[\"[update1,?[;,update]]\"],LOAD:[\"[update1,?[;,update]]\"],CLEAR:[\"[update1,?[;,update]]\"],DROP:[\"[update1,?[;,update]]\"],ADD:[\"[update1,?[;,update]]\"],MOVE:[\"[update1,?[;,update]]\"],COPY:[\"[update1,?[;,update]]\"],CREATE:[\"[update1,?[;,update]]\"],WITH:[\"[update1,?[;,update]]\"],$:[]},\"?[verb,objectList]\":{a:[\"[verb,objectList]\"],VAR1:[\"[verb,objectList]\"],VAR2:[\"[verb,objectList]\"],IRI_REF:[\"[verb,objectList]\"],PNAME_LN:[\"[verb,objectList]\"],PNAME_NS:[\"[verb,objectList]\"],\";\":[],\".\":[],\"]\":[],\"}\":[],GRAPH:[],\"{\":[],OPTIONAL:[],MINUS:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[]},\"?argList\":{NIL:[\"argList\"],\"(\":[\"argList\"],AS:[],\")\":[],\",\":[],\"||\":[],\"&&\":[],\"=\":[],\"!=\":[],\"<\":[],\">\":[],\"<=\":[],\">=\":[],IN:[],NOT:[],\"+\":[],\"-\":[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[],\"*\":[],\"/\":[],\";\":[]},\"?constructTriples\":{VAR1:[\"constructTriples\"],VAR2:[\"constructTriples\"],NIL:[\"constructTriples\"],\"(\":[\"constructTriples\"],\"[\":[\"constructTriples\"],IRI_REF:[\"constructTriples\"],TRUE:[\"constructTriples\"],FALSE:[\"constructTriples\"],BLANK_NODE_LABEL:[\"constructTriples\"],ANON:[\"constructTriples\"],PNAME_LN:[\"constructTriples\"],PNAME_NS:[\"constructTriples\"],STRING_LITERAL1:[\"constructTriples\"],STRING_LITERAL2:[\"constructTriples\"],STRING_LITERAL_LONG1:[\"constructTriples\"],STRING_LITERAL_LONG2:[\"constructTriples\"],INTEGER:[\"constructTriples\"],DECIMAL:[\"constructTriples\"],DOUBLE:[\"constructTriples\"],INTEGER_POSITIVE:[\"constructTriples\"],DECIMAL_POSITIVE:[\"constructTriples\"],DOUBLE_POSITIVE:[\"constructTriples\"],INTEGER_NEGATIVE:[\"constructTriples\"],DECIMAL_NEGATIVE:[\"constructTriples\"],DOUBLE_NEGATIVE:[\"constructTriples\"],\"}\":[]},\"?groupClause\":{GROUP:[\"groupClause\"],VALUES:[],LIMIT:[],OFFSET:[],ORDER:[],HAVING:[],$:[],\"}\":[]},\"?havingClause\":{HAVING:[\"havingClause\"],VALUES:[],LIMIT:[],OFFSET:[],ORDER:[],$:[],\"}\":[]},\"?insertClause\":{INSERT:[\"insertClause\"],WHERE:[],USING:[]},\"?limitClause\":{LIMIT:[\"limitClause\"],VALUES:[],$:[],\"}\":[]},\"?limitOffsetClauses\":{LIMIT:[\"limitOffsetClauses\"],OFFSET:[\"limitOffsetClauses\"],VALUES:[],$:[],\"}\":[]},\"?offsetClause\":{OFFSET:[\"offsetClause\"],VALUES:[],$:[],\"}\":[]},\"?or([DISTINCT,REDUCED])\":{DISTINCT:[\"or([DISTINCT,REDUCED])\"],REDUCED:[\"or([DISTINCT,REDUCED])\"],\"*\":[],\"(\":[],VAR1:[],VAR2:[]},\"?or([LANGTAG,[^^,iriRef]])\":{LANGTAG:[\"or([LANGTAG,[^^,iriRef]])\"],\"^^\":[\"or([LANGTAG,[^^,iriRef]])\"],UNDEF:[],IRI_REF:[],TRUE:[],FALSE:[],PNAME_LN:[],PNAME_NS:[],STRING_LITERAL1:[],STRING_LITERAL2:[],STRING_LITERAL_LONG1:[],STRING_LITERAL_LONG2:[],INTEGER:[],DECIMAL:[],DOUBLE:[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[],a:[],VAR1:[],VAR2:[],\"^\":[],\"!\":[],\"(\":[],\".\":[],\";\":[],\",\":[],AS:[],\")\":[],\"||\":[],\"&&\":[],\"=\":[],\"!=\":[],\"<\":[],\">\":[],\"<=\":[],\">=\":[],IN:[],NOT:[],\"+\":[],\"-\":[],\"*\":[],\"/\":[],\"}\":[],\"[\":[],NIL:[],BLANK_NODE_LABEL:[],ANON:[],\"]\":[],GRAPH:[],\"{\":[],OPTIONAL:[],MINUS:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[]},\"?or([[*,unaryExpression],[/,unaryExpression]])\":{\"*\":[\"or([[*,unaryExpression],[/,unaryExpression]])\"],\"/\":[\"or([[*,unaryExpression],[/,unaryExpression]])\"],\"+\":[],\"-\":[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[],AS:[],\")\":[],\",\":[],\"||\":[],\"&&\":[],\"=\":[],\"!=\":[],\"<\":[],\">\":[],\"<=\":[],\">=\":[],IN:[],NOT:[],\";\":[]},\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\":{\"=\":[\"or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],\"!=\":[\"or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],\"<\":[\"or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],\">\":[\"or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],\"<=\":[\"or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],\">=\":[\"or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],IN:[\"or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],NOT:[\"or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],AS:[],\")\":[],\",\":[],\"||\":[],\"&&\":[],\";\":[]},\"?orderClause\":{ORDER:[\"orderClause\"],VALUES:[],LIMIT:[],OFFSET:[],$:[],\"}\":[]},\"?pathMod\":{\"*\":[\"pathMod\"],\"?\":[\"pathMod\"],\"+\":[\"pathMod\"],\"{\":[\"pathMod\"],\"|\":[],\"/\":[],\")\":[],\"(\":[],\"[\":[],VAR1:[],VAR2:[],NIL:[],IRI_REF:[],TRUE:[],FALSE:[],BLANK_NODE_LABEL:[],ANON:[],PNAME_LN:[],PNAME_NS:[],STRING_LITERAL1:[],STRING_LITERAL2:[],STRING_LITERAL_LONG1:[],STRING_LITERAL_LONG2:[],INTEGER:[],DECIMAL:[],DOUBLE:[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[]},\"?triplesBlock\":{VAR1:[\"triplesBlock\"],VAR2:[\"triplesBlock\"],NIL:[\"triplesBlock\"],\"(\":[\"triplesBlock\"],\"[\":[\"triplesBlock\"],IRI_REF:[\"triplesBlock\"],TRUE:[\"triplesBlock\"],FALSE:[\"triplesBlock\"],BLANK_NODE_LABEL:[\"triplesBlock\"],ANON:[\"triplesBlock\"],PNAME_LN:[\"triplesBlock\"],PNAME_NS:[\"triplesBlock\"],STRING_LITERAL1:[\"triplesBlock\"],STRING_LITERAL2:[\"triplesBlock\"],STRING_LITERAL_LONG1:[\"triplesBlock\"],STRING_LITERAL_LONG2:[\"triplesBlock\"],INTEGER:[\"triplesBlock\"],DECIMAL:[\"triplesBlock\"],DOUBLE:[\"triplesBlock\"],INTEGER_POSITIVE:[\"triplesBlock\"],DECIMAL_POSITIVE:[\"triplesBlock\"],DOUBLE_POSITIVE:[\"triplesBlock\"],INTEGER_NEGATIVE:[\"triplesBlock\"],DECIMAL_NEGATIVE:[\"triplesBlock\"],DOUBLE_NEGATIVE:[\"triplesBlock\"],\"{\":[],OPTIONAL:[],MINUS:[],GRAPH:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[],\"}\":[]},\"?triplesTemplate\":{VAR1:[\"triplesTemplate\"],VAR2:[\"triplesTemplate\"],NIL:[\"triplesTemplate\"],\"(\":[\"triplesTemplate\"],\"[\":[\"triplesTemplate\"],IRI_REF:[\"triplesTemplate\"],TRUE:[\"triplesTemplate\"],FALSE:[\"triplesTemplate\"],BLANK_NODE_LABEL:[\"triplesTemplate\"],ANON:[\"triplesTemplate\"],PNAME_LN:[\"triplesTemplate\"],PNAME_NS:[\"triplesTemplate\"],STRING_LITERAL1:[\"triplesTemplate\"],STRING_LITERAL2:[\"triplesTemplate\"],STRING_LITERAL_LONG1:[\"triplesTemplate\"],STRING_LITERAL_LONG2:[\"triplesTemplate\"],INTEGER:[\"triplesTemplate\"],DECIMAL:[\"triplesTemplate\"],DOUBLE:[\"triplesTemplate\"],INTEGER_POSITIVE:[\"triplesTemplate\"],DECIMAL_POSITIVE:[\"triplesTemplate\"],DOUBLE_POSITIVE:[\"triplesTemplate\"],INTEGER_NEGATIVE:[\"triplesTemplate\"],DECIMAL_NEGATIVE:[\"triplesTemplate\"],DOUBLE_NEGATIVE:[\"triplesTemplate\"],\"}\":[],GRAPH:[]},\"?whereClause\":{WHERE:[\"whereClause\"],\"{\":[\"whereClause\"],ORDER:[],HAVING:[],GROUP:[],LIMIT:[],OFFSET:[],VALUES:[],$:[]},\"[!=,numericExpression]\":{\"!=\":[\"!=\",\"numericExpression\"]},\"[&&,valueLogical]\":{\"&&\":[\"&&\",\"valueLogical\"]},\"[(,*dataBlockValue,)]\":{\"(\":[\"(\",\"*dataBlockValue\",\")\"]},\"[(,*var,)]\":{\"(\":[\"(\",\"*var\",\")\"]},\"[(,expression,)]\":{\"(\":[\"(\",\"expression\",\")\"]},\"[(,expression,AS,var,)]\":{\"(\":[\"(\",\"expression\",\"AS\",\"var\",\")\"]},\"[*,unaryExpression]\":{\"*\":[\"*\",\"unaryExpression\"]},\"[*datasetClause,WHERE,{,?triplesTemplate,},solutionModifier]\":{WHERE:[\"*datasetClause\",\"WHERE\",\"{\",\"?triplesTemplate\",\"}\",\"solutionModifier\"],FROM:[\"*datasetClause\",\"WHERE\",\"{\",\"?triplesTemplate\",\"}\",\"solutionModifier\"]},\"[+,multiplicativeExpression]\":{\"+\":[\"+\",\"multiplicativeExpression\"]},\"[,,expression]\":{\",\":[\",\",\"expression\"]},\"[,,integer,}]\":{\",\":[\",\",\"integer\",\"}\"]},\"[,,objectPath]\":{\",\":[\",\",\"objectPath\"]},\"[,,object]\":{\",\":[\",\",\"object\"]},\"[,,or([},[integer,}]])]\":{\",\":[\",\",\"or([},[integer,}]])\"]},\"[-,multiplicativeExpression]\":{\"-\":[\"-\",\"multiplicativeExpression\"]},\"[.,?constructTriples]\":{\".\":[\".\",\"?constructTriples\"]},\"[.,?triplesBlock]\":{\".\":[\".\",\"?triplesBlock\"]},\"[.,?triplesTemplate]\":{\".\":[\".\",\"?triplesTemplate\"]},\"[/,pathEltOrInverse]\":{\"/\":[\"/\",\"pathEltOrInverse\"]},\"[/,unaryExpression]\":{\"/\":[\"/\",\"unaryExpression\"]},\"[;,?[or([verbPath,verbSimple]),objectListPath]]\":{\";\":[\";\",\"?[or([verbPath,verbSimple]),objectListPath]\"]},\"[;,?[verb,objectList]]\":{\";\":[\";\",\"?[verb,objectList]\"]},\"[;,SEPARATOR,=,string]\":{\";\":[\";\",\"SEPARATOR\",\"=\",\"string\"]},\"[;,update]\":{\";\":[\";\",\"update\"]},\"[<,numericExpression]\":{\"<\":[\"<\",\"numericExpression\"]},\"[<=,numericExpression]\":{\"<=\":[\"<=\",\"numericExpression\"]},\"[=,numericExpression]\":{\"=\":[\"=\",\"numericExpression\"]},\"[>,numericExpression]\":{\">\":[\">\",\"numericExpression\"]},\"[>=,numericExpression]\":{\">=\":[\">=\",\"numericExpression\"]},\"[AS,var]\":{AS:[\"AS\",\"var\"]},\"[IN,expressionList]\":{IN:[\"IN\",\"expressionList\"]},\"[INTO,graphRef]\":{INTO:[\"INTO\",\"graphRef\"]},\"[NAMED,iriRef]\":{NAMED:[\"NAMED\",\"iriRef\"]},\"[NOT,IN,expressionList]\":{NOT:[\"NOT\",\"IN\",\"expressionList\"]},\"[UNION,groupGraphPattern]\":{UNION:[\"UNION\",\"groupGraphPattern\"]},\"[^^,iriRef]\":{\"^^\":[\"^^\",\"iriRef\"]},\"[constructTemplate,*datasetClause,whereClause,solutionModifier]\":{\"{\":[\"constructTemplate\",\"*datasetClause\",\"whereClause\",\"solutionModifier\"]},\"[deleteClause,?insertClause]\":{DELETE:[\"deleteClause\",\"?insertClause\"]},\"[graphPatternNotTriples,?.,?triplesBlock]\":{\"{\":[\"graphPatternNotTriples\",\"?.\",\"?triplesBlock\"],OPTIONAL:[\"graphPatternNotTriples\",\"?.\",\"?triplesBlock\"],MINUS:[\"graphPatternNotTriples\",\"?.\",\"?triplesBlock\"],GRAPH:[\"graphPatternNotTriples\",\"?.\",\"?triplesBlock\"],SERVICE:[\"graphPatternNotTriples\",\"?.\",\"?triplesBlock\"],FILTER:[\"graphPatternNotTriples\",\"?.\",\"?triplesBlock\"],BIND:[\"graphPatternNotTriples\",\"?.\",\"?triplesBlock\"],VALUES:[\"graphPatternNotTriples\",\"?.\",\"?triplesBlock\"]},\"[integer,or([[,,or([},[integer,}]])],}])]\":{INTEGER:[\"integer\",\"or([[,,or([},[integer,}]])],}])\"]},\"[integer,}]\":{INTEGER:[\"integer\",\"}\"]},\"[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]\":{INTEGER_POSITIVE:[\"or([numericLiteralPositive,numericLiteralNegative])\",\"?or([[*,unaryExpression],[/,unaryExpression]])\"],DECIMAL_POSITIVE:[\"or([numericLiteralPositive,numericLiteralNegative])\",\"?or([[*,unaryExpression],[/,unaryExpression]])\"],DOUBLE_POSITIVE:[\"or([numericLiteralPositive,numericLiteralNegative])\",\"?or([[*,unaryExpression],[/,unaryExpression]])\"],INTEGER_NEGATIVE:[\"or([numericLiteralPositive,numericLiteralNegative])\",\"?or([[*,unaryExpression],[/,unaryExpression]])\"],DECIMAL_NEGATIVE:[\"or([numericLiteralPositive,numericLiteralNegative])\",\"?or([[*,unaryExpression],[/,unaryExpression]])\"],DOUBLE_NEGATIVE:[\"or([numericLiteralPositive,numericLiteralNegative])\",\"?or([[*,unaryExpression],[/,unaryExpression]])\"]},\"[or([verbPath,verbSimple]),objectListPath]\":{VAR1:[\"or([verbPath,verbSimple])\",\"objectListPath\"],VAR2:[\"or([verbPath,verbSimple])\",\"objectListPath\"],\"^\":[\"or([verbPath,verbSimple])\",\"objectListPath\"],a:[\"or([verbPath,verbSimple])\",\"objectListPath\"],\"!\":[\"or([verbPath,verbSimple])\",\"objectListPath\"],\"(\":[\"or([verbPath,verbSimple])\",\"objectListPath\"],IRI_REF:[\"or([verbPath,verbSimple])\",\"objectListPath\"],PNAME_LN:[\"or([verbPath,verbSimple])\",\"objectListPath\"],PNAME_NS:[\"or([verbPath,verbSimple])\",\"objectListPath\"]},\"[pathOneInPropertySet,*[|,pathOneInPropertySet]]\":{a:[\"pathOneInPropertySet\",\"*[|,pathOneInPropertySet]\"],\"^\":[\"pathOneInPropertySet\",\"*[|,pathOneInPropertySet]\"],IRI_REF:[\"pathOneInPropertySet\",\"*[|,pathOneInPropertySet]\"],PNAME_LN:[\"pathOneInPropertySet\",\"*[|,pathOneInPropertySet]\"],PNAME_NS:[\"pathOneInPropertySet\",\"*[|,pathOneInPropertySet]\"]},\"[quadsNotTriples,?.,?triplesTemplate]\":{GRAPH:[\"quadsNotTriples\",\"?.\",\"?triplesTemplate\"]},\"[update1,?[;,update]]\":{INSERT:[\"update1\",\"?[;,update]\"],DELETE:[\"update1\",\"?[;,update]\"],LOAD:[\"update1\",\"?[;,update]\"],CLEAR:[\"update1\",\"?[;,update]\"],DROP:[\"update1\",\"?[;,update]\"],ADD:[\"update1\",\"?[;,update]\"],MOVE:[\"update1\",\"?[;,update]\"],COPY:[\"update1\",\"?[;,update]\"],CREATE:[\"update1\",\"?[;,update]\"],WITH:[\"update1\",\"?[;,update]\"]},\"[verb,objectList]\":{a:[\"verb\",\"objectList\"],VAR1:[\"verb\",\"objectList\"],VAR2:[\"verb\",\"objectList\"],IRI_REF:[\"verb\",\"objectList\"],PNAME_LN:[\"verb\",\"objectList\"],PNAME_NS:[\"verb\",\"objectList\"]},\"[|,pathOneInPropertySet]\":{\"|\":[\"|\",\"pathOneInPropertySet\"]},\"[|,pathSequence]\":{\"|\":[\"|\",\"pathSequence\"]},\"[||,conditionalAndExpression]\":{\"||\":[\"||\",\"conditionalAndExpression\"]},add:{ADD:[\"ADD\",\"?SILENT_4\",\"graphOrDefault\",\"TO\",\"graphOrDefault\"]},additiveExpression:{\"!\":[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],\"+\":[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],\"-\":[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],VAR1:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],VAR2:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],\"(\":[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STR:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],LANG:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],LANGMATCHES:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DATATYPE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],BOUND:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],IRI:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],URI:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],BNODE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],RAND:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],ABS:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],CEIL:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],FLOOR:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],ROUND:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],CONCAT:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRLEN:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],UCASE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],LCASE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],ENCODE_FOR_URI:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],CONTAINS:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRSTARTS:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRENDS:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRBEFORE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRAFTER:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],YEAR:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],MONTH:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DAY:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],HOURS:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],MINUTES:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],SECONDS:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],TIMEZONE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],TZ:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],NOW:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],UUID:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRUUID:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],MD5:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],SHA1:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],SHA256:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],SHA384:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],SHA512:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],COALESCE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],IF:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRLANG:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRDT:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],SAMETERM:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],ISIRI:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],ISURI:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],ISBLANK:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],ISLITERAL:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],ISNUMERIC:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],TRUE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],FALSE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],COUNT:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],SUM:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],MIN:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],MAX:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],AVG:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],SAMPLE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],GROUP_CONCAT:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],SUBSTR:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],REPLACE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],REGEX:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],EXISTS:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],NOT:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],IRI_REF:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRING_LITERAL1:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRING_LITERAL2:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRING_LITERAL_LONG1:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],STRING_LITERAL_LONG2:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],INTEGER:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DECIMAL:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DOUBLE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],INTEGER_POSITIVE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DECIMAL_POSITIVE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DOUBLE_POSITIVE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],INTEGER_NEGATIVE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DECIMAL_NEGATIVE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],DOUBLE_NEGATIVE:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],PNAME_LN:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"],PNAME_NS:[\"multiplicativeExpression\",\"*or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\"]},aggregate:{COUNT:[\"COUNT\",\"(\",\"?DISTINCT\",\"or([*,expression])\",\")\"],SUM:[\"SUM\",\"(\",\"?DISTINCT\",\"expression\",\")\"],MIN:[\"MIN\",\"(\",\"?DISTINCT\",\"expression\",\")\"],MAX:[\"MAX\",\"(\",\"?DISTINCT\",\"expression\",\")\"],AVG:[\"AVG\",\"(\",\"?DISTINCT\",\"expression\",\")\"],SAMPLE:[\"SAMPLE\",\"(\",\"?DISTINCT\",\"expression\",\")\"],GROUP_CONCAT:[\"GROUP_CONCAT\",\"(\",\"?DISTINCT\",\"expression\",\"?[;,SEPARATOR,=,string]\",\")\"]},allowBnodes:{\"}\":[]},allowVars:{\"}\":[]},argList:{NIL:[\"NIL\"],\"(\":[\"(\",\"?DISTINCT\",\"expression\",\"*[,,expression]\",\")\"]},askQuery:{ASK:[\"ASK\",\"*datasetClause\",\"whereClause\",\"solutionModifier\"]},baseDecl:{BASE:[\"BASE\",\"IRI_REF\"]},bind:{BIND:[\"BIND\",\"(\",\"expression\",\"AS\",\"var\",\")\"]},blankNode:{BLANK_NODE_LABEL:[\"BLANK_NODE_LABEL\"],ANON:[\"ANON\"]},blankNodePropertyList:{\"[\":[\"[\",\"propertyListNotEmpty\",\"]\"]},blankNodePropertyListPath:{\"[\":[\"[\",\"propertyListPathNotEmpty\",\"]\"]},booleanLiteral:{TRUE:[\"TRUE\"],FALSE:[\"FALSE\"]},brackettedExpression:{\"(\":[\"(\",\"expression\",\")\"]},builtInCall:{STR:[\"STR\",\"(\",\"expression\",\")\"],LANG:[\"LANG\",\"(\",\"expression\",\")\"],LANGMATCHES:[\"LANGMATCHES\",\"(\",\"expression\",\",\",\"expression\",\")\"],DATATYPE:[\"DATATYPE\",\"(\",\"expression\",\")\"],BOUND:[\"BOUND\",\"(\",\"var\",\")\"],IRI:[\"IRI\",\"(\",\"expression\",\")\"],URI:[\"URI\",\"(\",\"expression\",\")\"],BNODE:[\"BNODE\",\"or([[(,expression,)],NIL])\"],RAND:[\"RAND\",\"or([[(,expression,)],NIL])\"],ABS:[\"ABS\",\"(\",\"expression\",\")\"],CEIL:[\"CEIL\",\"(\",\"expression\",\")\"],FLOOR:[\"FLOOR\",\"(\",\"expression\",\")\"],ROUND:[\"ROUND\",\"(\",\"expression\",\")\"],CONCAT:[\"CONCAT\",\"expressionList\"],SUBSTR:[\"substringExpression\"],STRLEN:[\"STRLEN\",\"(\",\"expression\",\")\"],REPLACE:[\"strReplaceExpression\"],UCASE:[\"UCASE\",\"(\",\"expression\",\")\"],LCASE:[\"LCASE\",\"(\",\"expression\",\")\"],ENCODE_FOR_URI:[\"ENCODE_FOR_URI\",\"(\",\"expression\",\")\"],CONTAINS:[\"CONTAINS\",\"(\",\"expression\",\",\",\"expression\",\")\"],STRSTARTS:[\"STRSTARTS\",\"(\",\"expression\",\",\",\"expression\",\")\"],STRENDS:[\"STRENDS\",\"(\",\"expression\",\",\",\"expression\",\")\"],STRBEFORE:[\"STRBEFORE\",\"(\",\"expression\",\",\",\"expression\",\")\"],STRAFTER:[\"STRAFTER\",\"(\",\"expression\",\",\",\"expression\",\")\"],YEAR:[\"YEAR\",\"(\",\"expression\",\")\"],MONTH:[\"MONTH\",\"(\",\"expression\",\")\"],DAY:[\"DAY\",\"(\",\"expression\",\")\"],HOURS:[\"HOURS\",\"(\",\"expression\",\")\"],MINUTES:[\"MINUTES\",\"(\",\"expression\",\")\"],SECONDS:[\"SECONDS\",\"(\",\"expression\",\")\"],TIMEZONE:[\"TIMEZONE\",\"(\",\"expression\",\")\"],TZ:[\"TZ\",\"(\",\"expression\",\")\"],NOW:[\"NOW\",\"NIL\"],UUID:[\"UUID\",\"NIL\"],STRUUID:[\"STRUUID\",\"NIL\"],MD5:[\"MD5\",\"(\",\"expression\",\")\"],SHA1:[\"SHA1\",\"(\",\"expression\",\")\"],SHA256:[\"SHA256\",\"(\",\"expression\",\")\"],SHA384:[\"SHA384\",\"(\",\"expression\",\")\"],SHA512:[\"SHA512\",\"(\",\"expression\",\")\"],COALESCE:[\"COALESCE\",\"expressionList\"],IF:[\"IF\",\"(\",\"expression\",\",\",\"expression\",\",\",\"expression\",\")\"],STRLANG:[\"STRLANG\",\"(\",\"expression\",\",\",\"expression\",\")\"],STRDT:[\"STRDT\",\"(\",\"expression\",\",\",\"expression\",\")\"],SAMETERM:[\"SAMETERM\",\"(\",\"expression\",\",\",\"expression\",\")\"],ISIRI:[\"ISIRI\",\"(\",\"expression\",\")\"],ISURI:[\"ISURI\",\"(\",\"expression\",\")\"],ISBLANK:[\"ISBLANK\",\"(\",\"expression\",\")\"],ISLITERAL:[\"ISLITERAL\",\"(\",\"expression\",\")\"],ISNUMERIC:[\"ISNUMERIC\",\"(\",\"expression\",\")\"],REGEX:[\"regexExpression\"],EXISTS:[\"existsFunc\"],NOT:[\"notExistsFunc\"]},clear:{CLEAR:[\"CLEAR\",\"?SILENT_2\",\"graphRefAll\"]},collection:{\"(\":[\"(\",\"+graphNode\",\")\"]},collectionPath:{\"(\":[\"(\",\"+graphNodePath\",\")\"]},conditionalAndExpression:{\"!\":[\"valueLogical\",\"*[&&,valueLogical]\"],\"+\":[\"valueLogical\",\"*[&&,valueLogical]\"],\"-\":[\"valueLogical\",\"*[&&,valueLogical]\"],VAR1:[\"valueLogical\",\"*[&&,valueLogical]\"],VAR2:[\"valueLogical\",\"*[&&,valueLogical]\"],\"(\":[\"valueLogical\",\"*[&&,valueLogical]\"],STR:[\"valueLogical\",\"*[&&,valueLogical]\"],LANG:[\"valueLogical\",\"*[&&,valueLogical]\"],LANGMATCHES:[\"valueLogical\",\"*[&&,valueLogical]\"],DATATYPE:[\"valueLogical\",\"*[&&,valueLogical]\"],BOUND:[\"valueLogical\",\"*[&&,valueLogical]\"],IRI:[\"valueLogical\",\"*[&&,valueLogical]\"],URI:[\"valueLogical\",\"*[&&,valueLogical]\"],BNODE:[\"valueLogical\",\"*[&&,valueLogical]\"],RAND:[\"valueLogical\",\"*[&&,valueLogical]\"],ABS:[\"valueLogical\",\"*[&&,valueLogical]\"],CEIL:[\"valueLogical\",\"*[&&,valueLogical]\"],FLOOR:[\"valueLogical\",\"*[&&,valueLogical]\"],ROUND:[\"valueLogical\",\"*[&&,valueLogical]\"],CONCAT:[\"valueLogical\",\"*[&&,valueLogical]\"],STRLEN:[\"valueLogical\",\"*[&&,valueLogical]\"],UCASE:[\"valueLogical\",\"*[&&,valueLogical]\"],LCASE:[\"valueLogical\",\"*[&&,valueLogical]\"],ENCODE_FOR_URI:[\"valueLogical\",\"*[&&,valueLogical]\"],CONTAINS:[\"valueLogical\",\"*[&&,valueLogical]\"],STRSTARTS:[\"valueLogical\",\"*[&&,valueLogical]\"],STRENDS:[\"valueLogical\",\"*[&&,valueLogical]\"],STRBEFORE:[\"valueLogical\",\"*[&&,valueLogical]\"],STRAFTER:[\"valueLogical\",\"*[&&,valueLogical]\"],YEAR:[\"valueLogical\",\"*[&&,valueLogical]\"],MONTH:[\"valueLogical\",\"*[&&,valueLogical]\"],DAY:[\"valueLogical\",\"*[&&,valueLogical]\"],HOURS:[\"valueLogical\",\"*[&&,valueLogical]\"],MINUTES:[\"valueLogical\",\"*[&&,valueLogical]\"],SECONDS:[\"valueLogical\",\"*[&&,valueLogical]\"],TIMEZONE:[\"valueLogical\",\"*[&&,valueLogical]\"],TZ:[\"valueLogical\",\"*[&&,valueLogical]\"],NOW:[\"valueLogical\",\"*[&&,valueLogical]\"],UUID:[\"valueLogical\",\"*[&&,valueLogical]\"],STRUUID:[\"valueLogical\",\"*[&&,valueLogical]\"],MD5:[\"valueLogical\",\"*[&&,valueLogical]\"],SHA1:[\"valueLogical\",\"*[&&,valueLogical]\"],SHA256:[\"valueLogical\",\"*[&&,valueLogical]\"],SHA384:[\"valueLogical\",\"*[&&,valueLogical]\"],SHA512:[\"valueLogical\",\"*[&&,valueLogical]\"],COALESCE:[\"valueLogical\",\"*[&&,valueLogical]\"],IF:[\"valueLogical\",\"*[&&,valueLogical]\"],STRLANG:[\"valueLogical\",\"*[&&,valueLogical]\"],STRDT:[\"valueLogical\",\"*[&&,valueLogical]\"],SAMETERM:[\"valueLogical\",\"*[&&,valueLogical]\"],ISIRI:[\"valueLogical\",\"*[&&,valueLogical]\"],ISURI:[\"valueLogical\",\"*[&&,valueLogical]\"],ISBLANK:[\"valueLogical\",\"*[&&,valueLogical]\"],ISLITERAL:[\"valueLogical\",\"*[&&,valueLogical]\"],ISNUMERIC:[\"valueLogical\",\"*[&&,valueLogical]\"],TRUE:[\"valueLogical\",\"*[&&,valueLogical]\"],FALSE:[\"valueLogical\",\"*[&&,valueLogical]\"],COUNT:[\"valueLogical\",\"*[&&,valueLogical]\"],SUM:[\"valueLogical\",\"*[&&,valueLogical]\"],MIN:[\"valueLogical\",\"*[&&,valueLogical]\"],MAX:[\"valueLogical\",\"*[&&,valueLogical]\"],AVG:[\"valueLogical\",\"*[&&,valueLogical]\"],SAMPLE:[\"valueLogical\",\"*[&&,valueLogical]\"],GROUP_CONCAT:[\"valueLogical\",\"*[&&,valueLogical]\"],SUBSTR:[\"valueLogical\",\"*[&&,valueLogical]\"],REPLACE:[\"valueLogical\",\"*[&&,valueLogical]\"],REGEX:[\"valueLogical\",\"*[&&,valueLogical]\"],EXISTS:[\"valueLogical\",\"*[&&,valueLogical]\"],NOT:[\"valueLogical\",\"*[&&,valueLogical]\"],IRI_REF:[\"valueLogical\",\"*[&&,valueLogical]\"],STRING_LITERAL1:[\"valueLogical\",\"*[&&,valueLogical]\"],STRING_LITERAL2:[\"valueLogical\",\"*[&&,valueLogical]\"],STRING_LITERAL_LONG1:[\"valueLogical\",\"*[&&,valueLogical]\"],STRING_LITERAL_LONG2:[\"valueLogical\",\"*[&&,valueLogical]\"],INTEGER:[\"valueLogical\",\"*[&&,valueLogical]\"],DECIMAL:[\"valueLogical\",\"*[&&,valueLogical]\"],DOUBLE:[\"valueLogical\",\"*[&&,valueLogical]\"],INTEGER_POSITIVE:[\"valueLogical\",\"*[&&,valueLogical]\"],DECIMAL_POSITIVE:[\"valueLogical\",\"*[&&,valueLogical]\"],DOUBLE_POSITIVE:[\"valueLogical\",\"*[&&,valueLogical]\"],INTEGER_NEGATIVE:[\"valueLogical\",\"*[&&,valueLogical]\"],DECIMAL_NEGATIVE:[\"valueLogical\",\"*[&&,valueLogical]\"],DOUBLE_NEGATIVE:[\"valueLogical\",\"*[&&,valueLogical]\"],PNAME_LN:[\"valueLogical\",\"*[&&,valueLogical]\"],PNAME_NS:[\"valueLogical\",\"*[&&,valueLogical]\"]},conditionalOrExpression:{\"!\":[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],\"+\":[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],\"-\":[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],VAR1:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],VAR2:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],\"(\":[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STR:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],LANG:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],LANGMATCHES:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],DATATYPE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],BOUND:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],IRI:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],URI:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],BNODE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],RAND:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],ABS:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],CEIL:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],FLOOR:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],ROUND:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],CONCAT:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRLEN:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],UCASE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],LCASE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],ENCODE_FOR_URI:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],CONTAINS:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRSTARTS:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRENDS:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRBEFORE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRAFTER:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],YEAR:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],MONTH:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],DAY:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],HOURS:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],MINUTES:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],SECONDS:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],TIMEZONE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],TZ:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],NOW:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],UUID:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRUUID:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],MD5:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],SHA1:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],SHA256:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],SHA384:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],SHA512:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],COALESCE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],IF:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRLANG:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRDT:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],SAMETERM:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],ISIRI:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],ISURI:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],ISBLANK:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],ISLITERAL:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],ISNUMERIC:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],TRUE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],FALSE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],COUNT:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],SUM:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],MIN:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],MAX:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],AVG:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],SAMPLE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],GROUP_CONCAT:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],SUBSTR:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],REPLACE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],REGEX:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],EXISTS:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],NOT:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],IRI_REF:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRING_LITERAL1:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRING_LITERAL2:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRING_LITERAL_LONG1:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],STRING_LITERAL_LONG2:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],INTEGER:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],DECIMAL:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],DOUBLE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],INTEGER_POSITIVE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],DECIMAL_POSITIVE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],DOUBLE_POSITIVE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],INTEGER_NEGATIVE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],DECIMAL_NEGATIVE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],DOUBLE_NEGATIVE:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],PNAME_LN:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"],PNAME_NS:[\"conditionalAndExpression\",\"*[||,conditionalAndExpression]\"]},constraint:{\"(\":[\"brackettedExpression\"],STR:[\"builtInCall\"],LANG:[\"builtInCall\"],LANGMATCHES:[\"builtInCall\"],DATATYPE:[\"builtInCall\"],BOUND:[\"builtInCall\"],IRI:[\"builtInCall\"],URI:[\"builtInCall\"],BNODE:[\"builtInCall\"],RAND:[\"builtInCall\"],ABS:[\"builtInCall\"],CEIL:[\"builtInCall\"],FLOOR:[\"builtInCall\"],ROUND:[\"builtInCall\"],CONCAT:[\"builtInCall\"],STRLEN:[\"builtInCall\"],UCASE:[\"builtInCall\"],LCASE:[\"builtInCall\"],ENCODE_FOR_URI:[\"builtInCall\"],CONTAINS:[\"builtInCall\"],STRSTARTS:[\"builtInCall\"],STRENDS:[\"builtInCall\"],STRBEFORE:[\"builtInCall\"],STRAFTER:[\"builtInCall\"],YEAR:[\"builtInCall\"],MONTH:[\"builtInCall\"],DAY:[\"builtInCall\"],HOURS:[\"builtInCall\"],MINUTES:[\"builtInCall\"],SECONDS:[\"builtInCall\"],TIMEZONE:[\"builtInCall\"],TZ:[\"builtInCall\"],NOW:[\"builtInCall\"],UUID:[\"builtInCall\"],STRUUID:[\"builtInCall\"],MD5:[\"builtInCall\"],SHA1:[\"builtInCall\"],SHA256:[\"builtInCall\"],SHA384:[\"builtInCall\"],SHA512:[\"builtInCall\"],COALESCE:[\"builtInCall\"],IF:[\"builtInCall\"],STRLANG:[\"builtInCall\"],STRDT:[\"builtInCall\"],SAMETERM:[\"builtInCall\"],ISIRI:[\"builtInCall\"],ISURI:[\"builtInCall\"],ISBLANK:[\"builtInCall\"],ISLITERAL:[\"builtInCall\"],ISNUMERIC:[\"builtInCall\"],SUBSTR:[\"builtInCall\"],REPLACE:[\"builtInCall\"],REGEX:[\"builtInCall\"],EXISTS:[\"builtInCall\"],NOT:[\"builtInCall\"],IRI_REF:[\"functionCall\"],PNAME_LN:[\"functionCall\"],PNAME_NS:[\"functionCall\"]},constructQuery:{CONSTRUCT:[\"CONSTRUCT\",\"or([[constructTemplate,*datasetClause,whereClause,solutionModifier],[*datasetClause,WHERE,{,?triplesTemplate,},solutionModifier]])\"]},constructTemplate:{\"{\":[\"{\",\"?constructTriples\",\"}\"]},constructTriples:{VAR1:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],VAR2:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],NIL:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],\"(\":[\"triplesSameSubject\",\"?[.,?constructTriples]\"],\"[\":[\"triplesSameSubject\",\"?[.,?constructTriples]\"],IRI_REF:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],TRUE:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],FALSE:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],BLANK_NODE_LABEL:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],ANON:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],PNAME_LN:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],PNAME_NS:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],STRING_LITERAL1:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],STRING_LITERAL2:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],STRING_LITERAL_LONG1:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],STRING_LITERAL_LONG2:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],INTEGER:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],DECIMAL:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],DOUBLE:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],INTEGER_POSITIVE:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],DECIMAL_POSITIVE:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],DOUBLE_POSITIVE:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],INTEGER_NEGATIVE:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],DECIMAL_NEGATIVE:[\"triplesSameSubject\",\"?[.,?constructTriples]\"],DOUBLE_NEGATIVE:[\"triplesSameSubject\",\"?[.,?constructTriples]\"]},copy:{COPY:[\"COPY\",\"?SILENT_4\",\"graphOrDefault\",\"TO\",\"graphOrDefault\"]},create:{CREATE:[\"CREATE\",\"?SILENT_3\",\"graphRef\"]},dataBlock:{NIL:[\"or([inlineDataOneVar,inlineDataFull])\"],\"(\":[\"or([inlineDataOneVar,inlineDataFull])\"],VAR1:[\"or([inlineDataOneVar,inlineDataFull])\"],VAR2:[\"or([inlineDataOneVar,inlineDataFull])\"]},dataBlockValue:{IRI_REF:[\"iriRef\"],PNAME_LN:[\"iriRef\"],PNAME_NS:[\"iriRef\"],STRING_LITERAL1:[\"rdfLiteral\"],STRING_LITERAL2:[\"rdfLiteral\"],STRING_LITERAL_LONG1:[\"rdfLiteral\"],STRING_LITERAL_LONG2:[\"rdfLiteral\"],INTEGER:[\"numericLiteral\"],DECIMAL:[\"numericLiteral\"],DOUBLE:[\"numericLiteral\"],INTEGER_POSITIVE:[\"numericLiteral\"],DECIMAL_POSITIVE:[\"numericLiteral\"],DOUBLE_POSITIVE:[\"numericLiteral\"],INTEGER_NEGATIVE:[\"numericLiteral\"],DECIMAL_NEGATIVE:[\"numericLiteral\"],DOUBLE_NEGATIVE:[\"numericLiteral\"],TRUE:[\"booleanLiteral\"],FALSE:[\"booleanLiteral\"],UNDEF:[\"UNDEF\"]},datasetClause:{FROM:[\"FROM\",\"or([defaultGraphClause,namedGraphClause])\"]},defaultGraphClause:{IRI_REF:[\"sourceSelector\"],PNAME_LN:[\"sourceSelector\"],PNAME_NS:[\"sourceSelector\"]},delete1:{DATA:[\"DATA\",\"quadDataNoBnodes\"],WHERE:[\"WHERE\",\"quadPatternNoBnodes\"],\"{\":[\"quadPatternNoBnodes\",\"?insertClause\",\"*usingClause\",\"WHERE\",\"groupGraphPattern\"]},deleteClause:{DELETE:[\"DELETE\",\"quadPattern\"]},describeDatasetClause:{FROM:[\"FROM\",\"or([defaultGraphClause,namedGraphClause])\"]},describeQuery:{DESCRIBE:[\"DESCRIBE\",\"or([+varOrIRIref,*])\",\"*describeDatasetClause\",\"?whereClause\",\"solutionModifier\"]},disallowBnodes:{\"}\":[],GRAPH:[],VAR1:[],VAR2:[],NIL:[],\"(\":[],\"[\":[],IRI_REF:[],TRUE:[],FALSE:[],BLANK_NODE_LABEL:[],ANON:[],PNAME_LN:[],PNAME_NS:[],STRING_LITERAL1:[],STRING_LITERAL2:[],STRING_LITERAL_LONG1:[],STRING_LITERAL_LONG2:[],INTEGER:[],DECIMAL:[],DOUBLE:[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[]},disallowVars:{\"}\":[],GRAPH:[],VAR1:[],VAR2:[],NIL:[],\"(\":[],\"[\":[],IRI_REF:[],TRUE:[],FALSE:[],BLANK_NODE_LABEL:[],ANON:[],PNAME_LN:[],PNAME_NS:[],STRING_LITERAL1:[],STRING_LITERAL2:[],STRING_LITERAL_LONG1:[],STRING_LITERAL_LONG2:[],INTEGER:[],DECIMAL:[],DOUBLE:[],INTEGER_POSITIVE:[],DECIMAL_POSITIVE:[],DOUBLE_POSITIVE:[],INTEGER_NEGATIVE:[],DECIMAL_NEGATIVE:[],DOUBLE_NEGATIVE:[]},drop:{DROP:[\"DROP\",\"?SILENT_2\",\"graphRefAll\"]},existsFunc:{EXISTS:[\"EXISTS\",\"groupGraphPattern\"]},expression:{\"!\":[\"conditionalOrExpression\"],\"+\":[\"conditionalOrExpression\"],\"-\":[\"conditionalOrExpression\"],VAR1:[\"conditionalOrExpression\"],VAR2:[\"conditionalOrExpression\"],\"(\":[\"conditionalOrExpression\"],STR:[\"conditionalOrExpression\"],LANG:[\"conditionalOrExpression\"],LANGMATCHES:[\"conditionalOrExpression\"],DATATYPE:[\"conditionalOrExpression\"],BOUND:[\"conditionalOrExpression\"],IRI:[\"conditionalOrExpression\"],URI:[\"conditionalOrExpression\"],BNODE:[\"conditionalOrExpression\"],RAND:[\"conditionalOrExpression\"],ABS:[\"conditionalOrExpression\"],CEIL:[\"conditionalOrExpression\"],FLOOR:[\"conditionalOrExpression\"],ROUND:[\"conditionalOrExpression\"],CONCAT:[\"conditionalOrExpression\"],STRLEN:[\"conditionalOrExpression\"],UCASE:[\"conditionalOrExpression\"],LCASE:[\"conditionalOrExpression\"],ENCODE_FOR_URI:[\"conditionalOrExpression\"],CONTAINS:[\"conditionalOrExpression\"],STRSTARTS:[\"conditionalOrExpression\"],STRENDS:[\"conditionalOrExpression\"],STRBEFORE:[\"conditionalOrExpression\"],STRAFTER:[\"conditionalOrExpression\"],YEAR:[\"conditionalOrExpression\"],MONTH:[\"conditionalOrExpression\"],DAY:[\"conditionalOrExpression\"],HOURS:[\"conditionalOrExpression\"],MINUTES:[\"conditionalOrExpression\"],SECONDS:[\"conditionalOrExpression\"],TIMEZONE:[\"conditionalOrExpression\"],TZ:[\"conditionalOrExpression\"],NOW:[\"conditionalOrExpression\"],UUID:[\"conditionalOrExpression\"],STRUUID:[\"conditionalOrExpression\"],MD5:[\"conditionalOrExpression\"],SHA1:[\"conditionalOrExpression\"],SHA256:[\"conditionalOrExpression\"],SHA384:[\"conditionalOrExpression\"],SHA512:[\"conditionalOrExpression\"],COALESCE:[\"conditionalOrExpression\"],IF:[\"conditionalOrExpression\"],STRLANG:[\"conditionalOrExpression\"],STRDT:[\"conditionalOrExpression\"],SAMETERM:[\"conditionalOrExpression\"],ISIRI:[\"conditionalOrExpression\"],ISURI:[\"conditionalOrExpression\"],ISBLANK:[\"conditionalOrExpression\"],ISLITERAL:[\"conditionalOrExpression\"],ISNUMERIC:[\"conditionalOrExpression\"],TRUE:[\"conditionalOrExpression\"],FALSE:[\"conditionalOrExpression\"],COUNT:[\"conditionalOrExpression\"],SUM:[\"conditionalOrExpression\"],MIN:[\"conditionalOrExpression\"],MAX:[\"conditionalOrExpression\"],AVG:[\"conditionalOrExpression\"],SAMPLE:[\"conditionalOrExpression\"],GROUP_CONCAT:[\"conditionalOrExpression\"],SUBSTR:[\"conditionalOrExpression\"],REPLACE:[\"conditionalOrExpression\"],REGEX:[\"conditionalOrExpression\"],EXISTS:[\"conditionalOrExpression\"],NOT:[\"conditionalOrExpression\"],IRI_REF:[\"conditionalOrExpression\"],STRING_LITERAL1:[\"conditionalOrExpression\"],STRING_LITERAL2:[\"conditionalOrExpression\"],STRING_LITERAL_LONG1:[\"conditionalOrExpression\"],STRING_LITERAL_LONG2:[\"conditionalOrExpression\"],INTEGER:[\"conditionalOrExpression\"],DECIMAL:[\"conditionalOrExpression\"],DOUBLE:[\"conditionalOrExpression\"],INTEGER_POSITIVE:[\"conditionalOrExpression\"],DECIMAL_POSITIVE:[\"conditionalOrExpression\"],DOUBLE_POSITIVE:[\"conditionalOrExpression\"],INTEGER_NEGATIVE:[\"conditionalOrExpression\"],DECIMAL_NEGATIVE:[\"conditionalOrExpression\"],DOUBLE_NEGATIVE:[\"conditionalOrExpression\"],PNAME_LN:[\"conditionalOrExpression\"],PNAME_NS:[\"conditionalOrExpression\"]},expressionList:{NIL:[\"NIL\"],\"(\":[\"(\",\"expression\",\"*[,,expression]\",\")\"]},filter:{FILTER:[\"FILTER\",\"constraint\"]},functionCall:{IRI_REF:[\"iriRef\",\"argList\"],PNAME_LN:[\"iriRef\",\"argList\"],PNAME_NS:[\"iriRef\",\"argList\"]},graphGraphPattern:{GRAPH:[\"GRAPH\",\"varOrIRIref\",\"groupGraphPattern\"]},graphNode:{VAR1:[\"varOrTerm\"],VAR2:[\"varOrTerm\"],NIL:[\"varOrTerm\"],IRI_REF:[\"varOrTerm\"],TRUE:[\"varOrTerm\"],FALSE:[\"varOrTerm\"],BLANK_NODE_LABEL:[\"varOrTerm\"],ANON:[\"varOrTerm\"],PNAME_LN:[\"varOrTerm\"],PNAME_NS:[\"varOrTerm\"],STRING_LITERAL1:[\"varOrTerm\"],STRING_LITERAL2:[\"varOrTerm\"],STRING_LITERAL_LONG1:[\"varOrTerm\"],STRING_LITERAL_LONG2:[\"varOrTerm\"],INTEGER:[\"varOrTerm\"],DECIMAL:[\"varOrTerm\"],DOUBLE:[\"varOrTerm\"],INTEGER_POSITIVE:[\"varOrTerm\"],DECIMAL_POSITIVE:[\"varOrTerm\"],DOUBLE_POSITIVE:[\"varOrTerm\"],INTEGER_NEGATIVE:[\"varOrTerm\"],DECIMAL_NEGATIVE:[\"varOrTerm\"],DOUBLE_NEGATIVE:[\"varOrTerm\"],\"(\":[\"triplesNode\"],\"[\":[\"triplesNode\"]},graphNodePath:{VAR1:[\"varOrTerm\"],VAR2:[\"varOrTerm\"],NIL:[\"varOrTerm\"],IRI_REF:[\"varOrTerm\"],TRUE:[\"varOrTerm\"],FALSE:[\"varOrTerm\"],BLANK_NODE_LABEL:[\"varOrTerm\"],ANON:[\"varOrTerm\"],PNAME_LN:[\"varOrTerm\"],PNAME_NS:[\"varOrTerm\"],STRING_LITERAL1:[\"varOrTerm\"],STRING_LITERAL2:[\"varOrTerm\"],STRING_LITERAL_LONG1:[\"varOrTerm\"],STRING_LITERAL_LONG2:[\"varOrTerm\"],INTEGER:[\"varOrTerm\"],DECIMAL:[\"varOrTerm\"],DOUBLE:[\"varOrTerm\"],INTEGER_POSITIVE:[\"varOrTerm\"],DECIMAL_POSITIVE:[\"varOrTerm\"],DOUBLE_POSITIVE:[\"varOrTerm\"],INTEGER_NEGATIVE:[\"varOrTerm\"],DECIMAL_NEGATIVE:[\"varOrTerm\"],DOUBLE_NEGATIVE:[\"varOrTerm\"],\"(\":[\"triplesNodePath\"],\"[\":[\"triplesNodePath\"]},graphOrDefault:{DEFAULT:[\"DEFAULT\"],IRI_REF:[\"?GRAPH\",\"iriRef\"],PNAME_LN:[\"?GRAPH\",\"iriRef\"],PNAME_NS:[\"?GRAPH\",\"iriRef\"],GRAPH:[\"?GRAPH\",\"iriRef\"]},graphPatternNotTriples:{\"{\":[\"groupOrUnionGraphPattern\"],OPTIONAL:[\"optionalGraphPattern\"],MINUS:[\"minusGraphPattern\"],GRAPH:[\"graphGraphPattern\"],SERVICE:[\"serviceGraphPattern\"],FILTER:[\"filter\"],BIND:[\"bind\"],VALUES:[\"inlineData\"]},graphRef:{GRAPH:[\"GRAPH\",\"iriRef\"]},graphRefAll:{GRAPH:[\"graphRef\"],DEFAULT:[\"DEFAULT\"],NAMED:[\"NAMED\"],ALL:[\"ALL\"]},graphTerm:{IRI_REF:[\"iriRef\"],PNAME_LN:[\"iriRef\"],PNAME_NS:[\"iriRef\"],STRING_LITERAL1:[\"rdfLiteral\"],STRING_LITERAL2:[\"rdfLiteral\"],STRING_LITERAL_LONG1:[\"rdfLiteral\"],STRING_LITERAL_LONG2:[\"rdfLiteral\"],INTEGER:[\"numericLiteral\"],DECIMAL:[\"numericLiteral\"],DOUBLE:[\"numericLiteral\"],INTEGER_POSITIVE:[\"numericLiteral\"],DECIMAL_POSITIVE:[\"numericLiteral\"],DOUBLE_POSITIVE:[\"numericLiteral\"],INTEGER_NEGATIVE:[\"numericLiteral\"],DECIMAL_NEGATIVE:[\"numericLiteral\"],DOUBLE_NEGATIVE:[\"numericLiteral\"],TRUE:[\"booleanLiteral\"],FALSE:[\"booleanLiteral\"],BLANK_NODE_LABEL:[\"blankNode\"],ANON:[\"blankNode\"],NIL:[\"NIL\"]},groupClause:{GROUP:[\"GROUP\",\"BY\",\"+groupCondition\"]},groupCondition:{STR:[\"builtInCall\"],LANG:[\"builtInCall\"],LANGMATCHES:[\"builtInCall\"],DATATYPE:[\"builtInCall\"],BOUND:[\"builtInCall\"],IRI:[\"builtInCall\"],URI:[\"builtInCall\"],BNODE:[\"builtInCall\"],RAND:[\"builtInCall\"],ABS:[\"builtInCall\"],CEIL:[\"builtInCall\"],FLOOR:[\"builtInCall\"],ROUND:[\"builtInCall\"],CONCAT:[\"builtInCall\"],STRLEN:[\"builtInCall\"],UCASE:[\"builtInCall\"],LCASE:[\"builtInCall\"],ENCODE_FOR_URI:[\"builtInCall\"],CONTAINS:[\"builtInCall\"],STRSTARTS:[\"builtInCall\"],STRENDS:[\"builtInCall\"],STRBEFORE:[\"builtInCall\"],STRAFTER:[\"builtInCall\"],YEAR:[\"builtInCall\"],MONTH:[\"builtInCall\"],DAY:[\"builtInCall\"],HOURS:[\"builtInCall\"],MINUTES:[\"builtInCall\"],SECONDS:[\"builtInCall\"],TIMEZONE:[\"builtInCall\"],TZ:[\"builtInCall\"],NOW:[\"builtInCall\"],UUID:[\"builtInCall\"],STRUUID:[\"builtInCall\"],MD5:[\"builtInCall\"],SHA1:[\"builtInCall\"],SHA256:[\"builtInCall\"],SHA384:[\"builtInCall\"],SHA512:[\"builtInCall\"],COALESCE:[\"builtInCall\"],IF:[\"builtInCall\"],STRLANG:[\"builtInCall\"],STRDT:[\"builtInCall\"],SAMETERM:[\"builtInCall\"],ISIRI:[\"builtInCall\"],ISURI:[\"builtInCall\"],ISBLANK:[\"builtInCall\"],ISLITERAL:[\"builtInCall\"],ISNUMERIC:[\"builtInCall\"],SUBSTR:[\"builtInCall\"],REPLACE:[\"builtInCall\"],REGEX:[\"builtInCall\"],EXISTS:[\"builtInCall\"],NOT:[\"builtInCall\"],IRI_REF:[\"functionCall\"],PNAME_LN:[\"functionCall\"],PNAME_NS:[\"functionCall\"],\"(\":[\"(\",\"expression\",\"?[AS,var]\",\")\"],VAR1:[\"var\"],VAR2:[\"var\"]},groupGraphPattern:{\"{\":[\"{\",\"or([subSelect,groupGraphPatternSub])\",\"}\"]},groupGraphPatternSub:{\"{\":[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],OPTIONAL:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],MINUS:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],GRAPH:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],SERVICE:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],FILTER:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],BIND:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],VALUES:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],VAR1:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],VAR2:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],NIL:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],\"(\":[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],\"[\":[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],IRI_REF:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],TRUE:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],FALSE:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],BLANK_NODE_LABEL:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],ANON:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],PNAME_LN:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],PNAME_NS:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],STRING_LITERAL1:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],STRING_LITERAL2:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],STRING_LITERAL_LONG1:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],STRING_LITERAL_LONG2:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],INTEGER:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],DECIMAL:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],DOUBLE:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],INTEGER_POSITIVE:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],DECIMAL_POSITIVE:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],DOUBLE_POSITIVE:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],INTEGER_NEGATIVE:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],DECIMAL_NEGATIVE:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],DOUBLE_NEGATIVE:[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"],\"}\":[\"?triplesBlock\",\"*[graphPatternNotTriples,?.,?triplesBlock]\"]},groupOrUnionGraphPattern:{\"{\":[\"groupGraphPattern\",\"*[UNION,groupGraphPattern]\"]},havingClause:{HAVING:[\"HAVING\",\"+havingCondition\"]},havingCondition:{\"(\":[\"constraint\"],STR:[\"constraint\"],LANG:[\"constraint\"],LANGMATCHES:[\"constraint\"],DATATYPE:[\"constraint\"],BOUND:[\"constraint\"],IRI:[\"constraint\"],URI:[\"constraint\"],BNODE:[\"constraint\"],RAND:[\"constraint\"],ABS:[\"constraint\"],CEIL:[\"constraint\"],FLOOR:[\"constraint\"],ROUND:[\"constraint\"],CONCAT:[\"constraint\"],STRLEN:[\"constraint\"],UCASE:[\"constraint\"],LCASE:[\"constraint\"],ENCODE_FOR_URI:[\"constraint\"],CONTAINS:[\"constraint\"],STRSTARTS:[\"constraint\"],STRENDS:[\"constraint\"],STRBEFORE:[\"constraint\"],STRAFTER:[\"constraint\"],YEAR:[\"constraint\"],MONTH:[\"constraint\"],DAY:[\"constraint\"],HOURS:[\"constraint\"],MINUTES:[\"constraint\"],SECONDS:[\"constraint\"],TIMEZONE:[\"constraint\"],TZ:[\"constraint\"],NOW:[\"constraint\"],UUID:[\"constraint\"],STRUUID:[\"constraint\"],MD5:[\"constraint\"],SHA1:[\"constraint\"],SHA256:[\"constraint\"],SHA384:[\"constraint\"],SHA512:[\"constraint\"],COALESCE:[\"constraint\"],IF:[\"constraint\"],STRLANG:[\"constraint\"],STRDT:[\"constraint\"],SAMETERM:[\"constraint\"],ISIRI:[\"constraint\"],ISURI:[\"constraint\"],ISBLANK:[\"constraint\"],ISLITERAL:[\"constraint\"],ISNUMERIC:[\"constraint\"],SUBSTR:[\"constraint\"],REPLACE:[\"constraint\"],REGEX:[\"constraint\"],EXISTS:[\"constraint\"],NOT:[\"constraint\"],IRI_REF:[\"constraint\"],PNAME_LN:[\"constraint\"],PNAME_NS:[\"constraint\"]},inlineData:{VALUES:[\"VALUES\",\"dataBlock\"]},inlineDataFull:{NIL:[\"or([NIL,[(,*var,)]])\",\"{\",\"*or([[(,*dataBlockValue,)],NIL])\",\"}\"],\"(\":[\"or([NIL,[(,*var,)]])\",\"{\",\"*or([[(,*dataBlockValue,)],NIL])\",\"}\"]},inlineDataOneVar:{VAR1:[\"var\",\"{\",\"*dataBlockValue\",\"}\"],VAR2:[\"var\",\"{\",\"*dataBlockValue\",\"}\"]},insert1:{DATA:[\"DATA\",\"quadData\"],\"{\":[\"quadPattern\",\"*usingClause\",\"WHERE\",\"groupGraphPattern\"]},insertClause:{INSERT:[\"INSERT\",\"quadPattern\"]},integer:{INTEGER:[\"INTEGER\"]},iriRef:{IRI_REF:[\"IRI_REF\"],PNAME_LN:[\"prefixedName\"],PNAME_NS:[\"prefixedName\"]},iriRefOrFunction:{IRI_REF:[\"iriRef\",\"?argList\"],PNAME_LN:[\"iriRef\",\"?argList\"],PNAME_NS:[\"iriRef\",\"?argList\"]},limitClause:{LIMIT:[\"LIMIT\",\"INTEGER\"]},limitOffsetClauses:{LIMIT:[\"limitClause\",\"?offsetClause\"],OFFSET:[\"offsetClause\",\"?limitClause\"]},load:{LOAD:[\"LOAD\",\"?SILENT_1\",\"iriRef\",\"?[INTO,graphRef]\"]},minusGraphPattern:{MINUS:[\"MINUS\",\"groupGraphPattern\"]},modify:{WITH:[\"WITH\",\"iriRef\",\"or([[deleteClause,?insertClause],insertClause])\",\"*usingClause\",\"WHERE\",\"groupGraphPattern\"]},move:{MOVE:[\"MOVE\",\"?SILENT_4\",\"graphOrDefault\",\"TO\",\"graphOrDefault\"]},multiplicativeExpression:{\"!\":[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],\"+\":[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],\"-\":[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],VAR1:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],VAR2:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],\"(\":[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STR:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],LANG:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],LANGMATCHES:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],DATATYPE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],BOUND:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],IRI:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],URI:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],BNODE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],RAND:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],ABS:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],CEIL:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],FLOOR:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],ROUND:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],CONCAT:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRLEN:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],UCASE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],LCASE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],ENCODE_FOR_URI:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],CONTAINS:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRSTARTS:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRENDS:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRBEFORE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRAFTER:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],YEAR:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],MONTH:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],DAY:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],HOURS:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],MINUTES:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],SECONDS:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],TIMEZONE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],TZ:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],NOW:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],UUID:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRUUID:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],MD5:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],SHA1:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],SHA256:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],SHA384:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],SHA512:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],COALESCE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],IF:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRLANG:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRDT:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],SAMETERM:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],ISIRI:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],ISURI:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],ISBLANK:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],ISLITERAL:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],ISNUMERIC:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],TRUE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],FALSE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],COUNT:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],SUM:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],MIN:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],MAX:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],AVG:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],SAMPLE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],GROUP_CONCAT:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],SUBSTR:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],REPLACE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],REGEX:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],EXISTS:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],NOT:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],IRI_REF:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRING_LITERAL1:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRING_LITERAL2:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRING_LITERAL_LONG1:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],STRING_LITERAL_LONG2:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],INTEGER:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],DECIMAL:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],DOUBLE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],INTEGER_POSITIVE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],DECIMAL_POSITIVE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],DOUBLE_POSITIVE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],INTEGER_NEGATIVE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],DECIMAL_NEGATIVE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],DOUBLE_NEGATIVE:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],PNAME_LN:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"],PNAME_NS:[\"unaryExpression\",\"*or([[*,unaryExpression],[/,unaryExpression]])\"]},namedGraphClause:{NAMED:[\"NAMED\",\"sourceSelector\"]},notExistsFunc:{NOT:[\"NOT\",\"EXISTS\",\"groupGraphPattern\"]},numericExpression:{\"!\":[\"additiveExpression\"],\"+\":[\"additiveExpression\"],\"-\":[\"additiveExpression\"],VAR1:[\"additiveExpression\"],VAR2:[\"additiveExpression\"],\"(\":[\"additiveExpression\"],STR:[\"additiveExpression\"],LANG:[\"additiveExpression\"],LANGMATCHES:[\"additiveExpression\"],DATATYPE:[\"additiveExpression\"],BOUND:[\"additiveExpression\"],IRI:[\"additiveExpression\"],URI:[\"additiveExpression\"],BNODE:[\"additiveExpression\"],RAND:[\"additiveExpression\"],ABS:[\"additiveExpression\"],CEIL:[\"additiveExpression\"],FLOOR:[\"additiveExpression\"],ROUND:[\"additiveExpression\"],CONCAT:[\"additiveExpression\"],STRLEN:[\"additiveExpression\"],UCASE:[\"additiveExpression\"],LCASE:[\"additiveExpression\"],ENCODE_FOR_URI:[\"additiveExpression\"],CONTAINS:[\"additiveExpression\"],STRSTARTS:[\"additiveExpression\"],STRENDS:[\"additiveExpression\"],STRBEFORE:[\"additiveExpression\"],STRAFTER:[\"additiveExpression\"],YEAR:[\"additiveExpression\"],MONTH:[\"additiveExpression\"],DAY:[\"additiveExpression\"],HOURS:[\"additiveExpression\"],MINUTES:[\"additiveExpression\"],SECONDS:[\"additiveExpression\"],TIMEZONE:[\"additiveExpression\"],TZ:[\"additiveExpression\"],NOW:[\"additiveExpression\"],UUID:[\"additiveExpression\"],STRUUID:[\"additiveExpression\"],MD5:[\"additiveExpression\"],SHA1:[\"additiveExpression\"],SHA256:[\"additiveExpression\"],SHA384:[\"additiveExpression\"],SHA512:[\"additiveExpression\"],COALESCE:[\"additiveExpression\"],IF:[\"additiveExpression\"],STRLANG:[\"additiveExpression\"],STRDT:[\"additiveExpression\"],SAMETERM:[\"additiveExpression\"],ISIRI:[\"additiveExpression\"],ISURI:[\"additiveExpression\"],ISBLANK:[\"additiveExpression\"],ISLITERAL:[\"additiveExpression\"],ISNUMERIC:[\"additiveExpression\"],TRUE:[\"additiveExpression\"],FALSE:[\"additiveExpression\"],COUNT:[\"additiveExpression\"],SUM:[\"additiveExpression\"],MIN:[\"additiveExpression\"],MAX:[\"additiveExpression\"],AVG:[\"additiveExpression\"],SAMPLE:[\"additiveExpression\"],GROUP_CONCAT:[\"additiveExpression\"],SUBSTR:[\"additiveExpression\"],REPLACE:[\"additiveExpression\"],REGEX:[\"additiveExpression\"],EXISTS:[\"additiveExpression\"],NOT:[\"additiveExpression\"],IRI_REF:[\"additiveExpression\"],STRING_LITERAL1:[\"additiveExpression\"],STRING_LITERAL2:[\"additiveExpression\"],STRING_LITERAL_LONG1:[\"additiveExpression\"],STRING_LITERAL_LONG2:[\"additiveExpression\"],INTEGER:[\"additiveExpression\"],DECIMAL:[\"additiveExpression\"],DOUBLE:[\"additiveExpression\"],INTEGER_POSITIVE:[\"additiveExpression\"],DECIMAL_POSITIVE:[\"additiveExpression\"],DOUBLE_POSITIVE:[\"additiveExpression\"],INTEGER_NEGATIVE:[\"additiveExpression\"],DECIMAL_NEGATIVE:[\"additiveExpression\"],DOUBLE_NEGATIVE:[\"additiveExpression\"],PNAME_LN:[\"additiveExpression\"],PNAME_NS:[\"additiveExpression\"]},numericLiteral:{INTEGER:[\"numericLiteralUnsigned\"],DECIMAL:[\"numericLiteralUnsigned\"],DOUBLE:[\"numericLiteralUnsigned\"],INTEGER_POSITIVE:[\"numericLiteralPositive\"],DECIMAL_POSITIVE:[\"numericLiteralPositive\"],DOUBLE_POSITIVE:[\"numericLiteralPositive\"],INTEGER_NEGATIVE:[\"numericLiteralNegative\"],DECIMAL_NEGATIVE:[\"numericLiteralNegative\"],DOUBLE_NEGATIVE:[\"numericLiteralNegative\"]},numericLiteralNegative:{INTEGER_NEGATIVE:[\"INTEGER_NEGATIVE\"],DECIMAL_NEGATIVE:[\"DECIMAL_NEGATIVE\"],DOUBLE_NEGATIVE:[\"DOUBLE_NEGATIVE\"]},numericLiteralPositive:{INTEGER_POSITIVE:[\"INTEGER_POSITIVE\"],DECIMAL_POSITIVE:[\"DECIMAL_POSITIVE\"],DOUBLE_POSITIVE:[\"DOUBLE_POSITIVE\"]},numericLiteralUnsigned:{INTEGER:[\"INTEGER\"],DECIMAL:[\"DECIMAL\"],DOUBLE:[\"DOUBLE\"]},object:{\"(\":[\"graphNode\"],\"[\":[\"graphNode\"],VAR1:[\"graphNode\"],VAR2:[\"graphNode\"],NIL:[\"graphNode\"],IRI_REF:[\"graphNode\"],TRUE:[\"graphNode\"],FALSE:[\"graphNode\"],BLANK_NODE_LABEL:[\"graphNode\"],ANON:[\"graphNode\"],PNAME_LN:[\"graphNode\"],PNAME_NS:[\"graphNode\"],STRING_LITERAL1:[\"graphNode\"],STRING_LITERAL2:[\"graphNode\"],STRING_LITERAL_LONG1:[\"graphNode\"],STRING_LITERAL_LONG2:[\"graphNode\"],INTEGER:[\"graphNode\"],DECIMAL:[\"graphNode\"],DOUBLE:[\"graphNode\"],INTEGER_POSITIVE:[\"graphNode\"],DECIMAL_POSITIVE:[\"graphNode\"],DOUBLE_POSITIVE:[\"graphNode\"],INTEGER_NEGATIVE:[\"graphNode\"],DECIMAL_NEGATIVE:[\"graphNode\"],DOUBLE_NEGATIVE:[\"graphNode\"]},objectList:{\"(\":[\"object\",\"*[,,object]\"],\"[\":[\"object\",\"*[,,object]\"],VAR1:[\"object\",\"*[,,object]\"],VAR2:[\"object\",\"*[,,object]\"],NIL:[\"object\",\"*[,,object]\"],IRI_REF:[\"object\",\"*[,,object]\"],TRUE:[\"object\",\"*[,,object]\"],FALSE:[\"object\",\"*[,,object]\"],BLANK_NODE_LABEL:[\"object\",\"*[,,object]\"],ANON:[\"object\",\"*[,,object]\"],PNAME_LN:[\"object\",\"*[,,object]\"],PNAME_NS:[\"object\",\"*[,,object]\"],STRING_LITERAL1:[\"object\",\"*[,,object]\"],STRING_LITERAL2:[\"object\",\"*[,,object]\"],STRING_LITERAL_LONG1:[\"object\",\"*[,,object]\"],STRING_LITERAL_LONG2:[\"object\",\"*[,,object]\"],INTEGER:[\"object\",\"*[,,object]\"],DECIMAL:[\"object\",\"*[,,object]\"],DOUBLE:[\"object\",\"*[,,object]\"],INTEGER_POSITIVE:[\"object\",\"*[,,object]\"],DECIMAL_POSITIVE:[\"object\",\"*[,,object]\"],DOUBLE_POSITIVE:[\"object\",\"*[,,object]\"],INTEGER_NEGATIVE:[\"object\",\"*[,,object]\"],DECIMAL_NEGATIVE:[\"object\",\"*[,,object]\"],DOUBLE_NEGATIVE:[\"object\",\"*[,,object]\"]},objectListPath:{\"(\":[\"objectPath\",\"*[,,objectPath]\"],\"[\":[\"objectPath\",\"*[,,objectPath]\"],VAR1:[\"objectPath\",\"*[,,objectPath]\"],VAR2:[\"objectPath\",\"*[,,objectPath]\"],NIL:[\"objectPath\",\"*[,,objectPath]\"],IRI_REF:[\"objectPath\",\"*[,,objectPath]\"],TRUE:[\"objectPath\",\"*[,,objectPath]\"],FALSE:[\"objectPath\",\"*[,,objectPath]\"],BLANK_NODE_LABEL:[\"objectPath\",\"*[,,objectPath]\"],ANON:[\"objectPath\",\"*[,,objectPath]\"],PNAME_LN:[\"objectPath\",\"*[,,objectPath]\"],PNAME_NS:[\"objectPath\",\"*[,,objectPath]\"],STRING_LITERAL1:[\"objectPath\",\"*[,,objectPath]\"],STRING_LITERAL2:[\"objectPath\",\"*[,,objectPath]\"],STRING_LITERAL_LONG1:[\"objectPath\",\"*[,,objectPath]\"],STRING_LITERAL_LONG2:[\"objectPath\",\"*[,,objectPath]\"],INTEGER:[\"objectPath\",\"*[,,objectPath]\"],DECIMAL:[\"objectPath\",\"*[,,objectPath]\"],DOUBLE:[\"objectPath\",\"*[,,objectPath]\"],INTEGER_POSITIVE:[\"objectPath\",\"*[,,objectPath]\"],DECIMAL_POSITIVE:[\"objectPath\",\"*[,,objectPath]\"],DOUBLE_POSITIVE:[\"objectPath\",\"*[,,objectPath]\"],INTEGER_NEGATIVE:[\"objectPath\",\"*[,,objectPath]\"],DECIMAL_NEGATIVE:[\"objectPath\",\"*[,,objectPath]\"],DOUBLE_NEGATIVE:[\"objectPath\",\"*[,,objectPath]\"]},objectPath:{\"(\":[\"graphNodePath\"],\"[\":[\"graphNodePath\"],VAR1:[\"graphNodePath\"],VAR2:[\"graphNodePath\"],NIL:[\"graphNodePath\"],IRI_REF:[\"graphNodePath\"],TRUE:[\"graphNodePath\"],FALSE:[\"graphNodePath\"],BLANK_NODE_LABEL:[\"graphNodePath\"],ANON:[\"graphNodePath\"],PNAME_LN:[\"graphNodePath\"],PNAME_NS:[\"graphNodePath\"],STRING_LITERAL1:[\"graphNodePath\"],STRING_LITERAL2:[\"graphNodePath\"],STRING_LITERAL_LONG1:[\"graphNodePath\"],STRING_LITERAL_LONG2:[\"graphNodePath\"],INTEGER:[\"graphNodePath\"],DECIMAL:[\"graphNodePath\"],DOUBLE:[\"graphNodePath\"],INTEGER_POSITIVE:[\"graphNodePath\"],DECIMAL_POSITIVE:[\"graphNodePath\"],DOUBLE_POSITIVE:[\"graphNodePath\"],INTEGER_NEGATIVE:[\"graphNodePath\"],DECIMAL_NEGATIVE:[\"graphNodePath\"],DOUBLE_NEGATIVE:[\"graphNodePath\"]},offsetClause:{OFFSET:[\"OFFSET\",\"INTEGER\"]},optionalGraphPattern:{OPTIONAL:[\"OPTIONAL\",\"groupGraphPattern\"]},\"or([*,expression])\":{\"*\":[\"*\"],\"!\":[\"expression\"],\"+\":[\"expression\"],\"-\":[\"expression\"],VAR1:[\"expression\"],VAR2:[\"expression\"],\"(\":[\"expression\"],STR:[\"expression\"],LANG:[\"expression\"],LANGMATCHES:[\"expression\"],DATATYPE:[\"expression\"],BOUND:[\"expression\"],IRI:[\"expression\"],URI:[\"expression\"],BNODE:[\"expression\"],RAND:[\"expression\"],ABS:[\"expression\"],CEIL:[\"expression\"],FLOOR:[\"expression\"],ROUND:[\"expression\"],CONCAT:[\"expression\"],STRLEN:[\"expression\"],UCASE:[\"expression\"],LCASE:[\"expression\"],ENCODE_FOR_URI:[\"expression\"],CONTAINS:[\"expression\"],STRSTARTS:[\"expression\"],STRENDS:[\"expression\"],STRBEFORE:[\"expression\"],STRAFTER:[\"expression\"],YEAR:[\"expression\"],MONTH:[\"expression\"],DAY:[\"expression\"],HOURS:[\"expression\"],MINUTES:[\"expression\"],SECONDS:[\"expression\"],TIMEZONE:[\"expression\"],TZ:[\"expression\"],NOW:[\"expression\"],UUID:[\"expression\"],STRUUID:[\"expression\"],MD5:[\"expression\"],SHA1:[\"expression\"],SHA256:[\"expression\"],SHA384:[\"expression\"],SHA512:[\"expression\"],COALESCE:[\"expression\"],IF:[\"expression\"],STRLANG:[\"expression\"],STRDT:[\"expression\"],SAMETERM:[\"expression\"],ISIRI:[\"expression\"],ISURI:[\"expression\"],ISBLANK:[\"expression\"],ISLITERAL:[\"expression\"],ISNUMERIC:[\"expression\"],TRUE:[\"expression\"],FALSE:[\"expression\"],COUNT:[\"expression\"],SUM:[\"expression\"],MIN:[\"expression\"],MAX:[\"expression\"],AVG:[\"expression\"],SAMPLE:[\"expression\"],GROUP_CONCAT:[\"expression\"],SUBSTR:[\"expression\"],REPLACE:[\"expression\"],REGEX:[\"expression\"],EXISTS:[\"expression\"],NOT:[\"expression\"],IRI_REF:[\"expression\"],STRING_LITERAL1:[\"expression\"],STRING_LITERAL2:[\"expression\"],STRING_LITERAL_LONG1:[\"expression\"],STRING_LITERAL_LONG2:[\"expression\"],INTEGER:[\"expression\"],DECIMAL:[\"expression\"],DOUBLE:[\"expression\"],INTEGER_POSITIVE:[\"expression\"],DECIMAL_POSITIVE:[\"expression\"],DOUBLE_POSITIVE:[\"expression\"],INTEGER_NEGATIVE:[\"expression\"],DECIMAL_NEGATIVE:[\"expression\"],DOUBLE_NEGATIVE:[\"expression\"],PNAME_LN:[\"expression\"],PNAME_NS:[\"expression\"]},\"or([+or([var,[(,expression,AS,var,)]]),*])\":{\"(\":[\"+or([var,[(,expression,AS,var,)]])\"],VAR1:[\"+or([var,[(,expression,AS,var,)]])\"],VAR2:[\"+or([var,[(,expression,AS,var,)]])\"],\"*\":[\"*\"]},\"or([+varOrIRIref,*])\":{VAR1:[\"+varOrIRIref\"],VAR2:[\"+varOrIRIref\"],IRI_REF:[\"+varOrIRIref\"],PNAME_LN:[\"+varOrIRIref\"],PNAME_NS:[\"+varOrIRIref\"],\"*\":[\"*\"]},\"or([ASC,DESC])\":{ASC:[\"ASC\"],DESC:[\"DESC\"]},\"or([DISTINCT,REDUCED])\":{DISTINCT:[\"DISTINCT\"],REDUCED:[\"REDUCED\"]},\"or([LANGTAG,[^^,iriRef]])\":{LANGTAG:[\"LANGTAG\"],\"^^\":[\"[^^,iriRef]\"]},\"or([NIL,[(,*var,)]])\":{NIL:[\"NIL\"],\"(\":[\"[(,*var,)]\"]},\"or([[(,*dataBlockValue,)],NIL])\":{\"(\":[\"[(,*dataBlockValue,)]\"],NIL:[\"NIL\"]},\"or([[(,expression,)],NIL])\":{\"(\":[\"[(,expression,)]\"],NIL:[\"NIL\"]},\"or([[*,unaryExpression],[/,unaryExpression]])\":{\"*\":[\"[*,unaryExpression]\"],\"/\":[\"[/,unaryExpression]\"]},\"or([[+,multiplicativeExpression],[-,multiplicativeExpression],[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]])\":{\"+\":[\"[+,multiplicativeExpression]\"],\"-\":[\"[-,multiplicativeExpression]\"],INTEGER_POSITIVE:[\"[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]\"],DECIMAL_POSITIVE:[\"[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]\"],DOUBLE_POSITIVE:[\"[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]\"],INTEGER_NEGATIVE:[\"[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]\"],DECIMAL_NEGATIVE:[\"[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]\"],DOUBLE_NEGATIVE:[\"[or([numericLiteralPositive,numericLiteralNegative]),?or([[*,unaryExpression],[/,unaryExpression]])]\"]},\"or([[,,or([},[integer,}]])],}])\":{\",\":[\"[,,or([},[integer,}]])]\"],\"}\":[\"}\"]},\"or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\":{\"=\":[\"[=,numericExpression]\"],\"!=\":[\"[!=,numericExpression]\"],\"<\":[\"[<,numericExpression]\"],\">\":[\"[>,numericExpression]\"],\"<=\":[\"[<=,numericExpression]\"],\">=\":[\"[>=,numericExpression]\"],IN:[\"[IN,expressionList]\"],NOT:[\"[NOT,IN,expressionList]\"]},\"or([[constructTemplate,*datasetClause,whereClause,solutionModifier],[*datasetClause,WHERE,{,?triplesTemplate,},solutionModifier]])\":{\"{\":[\"[constructTemplate,*datasetClause,whereClause,solutionModifier]\"],WHERE:[\"[*datasetClause,WHERE,{,?triplesTemplate,},solutionModifier]\"],FROM:[\"[*datasetClause,WHERE,{,?triplesTemplate,},solutionModifier]\"]},\"or([[deleteClause,?insertClause],insertClause])\":{DELETE:[\"[deleteClause,?insertClause]\"],INSERT:[\"insertClause\"]},\"or([[integer,or([[,,or([},[integer,}]])],}])],[,,integer,}]])\":{INTEGER:[\"[integer,or([[,,or([},[integer,}]])],}])]\"],\",\":[\"[,,integer,}]\"]},\"or([baseDecl,prefixDecl])\":{BASE:[\"baseDecl\"],PREFIX:[\"prefixDecl\"]},\"or([defaultGraphClause,namedGraphClause])\":{IRI_REF:[\"defaultGraphClause\"],PNAME_LN:[\"defaultGraphClause\"],PNAME_NS:[\"defaultGraphClause\"],NAMED:[\"namedGraphClause\"]},\"or([inlineDataOneVar,inlineDataFull])\":{VAR1:[\"inlineDataOneVar\"],VAR2:[\"inlineDataOneVar\"],NIL:[\"inlineDataFull\"],\"(\":[\"inlineDataFull\"]},\"or([iriRef,[NAMED,iriRef]])\":{IRI_REF:[\"iriRef\"],PNAME_LN:[\"iriRef\"],PNAME_NS:[\"iriRef\"],NAMED:[\"[NAMED,iriRef]\"]},\"or([iriRef,a])\":{IRI_REF:[\"iriRef\"],PNAME_LN:[\"iriRef\"],PNAME_NS:[\"iriRef\"],a:[\"a\"]},\"or([numericLiteralPositive,numericLiteralNegative])\":{INTEGER_POSITIVE:[\"numericLiteralPositive\"],DECIMAL_POSITIVE:[\"numericLiteralPositive\"],DOUBLE_POSITIVE:[\"numericLiteralPositive\"],INTEGER_NEGATIVE:[\"numericLiteralNegative\"],DECIMAL_NEGATIVE:[\"numericLiteralNegative\"],DOUBLE_NEGATIVE:[\"numericLiteralNegative\"]},\"or([queryAll,updateAll])\":{CONSTRUCT:[\"queryAll\"],DESCRIBE:[\"queryAll\"],ASK:[\"queryAll\"],SELECT:[\"queryAll\"],INSERT:[\"updateAll\"],DELETE:[\"updateAll\"],LOAD:[\"updateAll\"],CLEAR:[\"updateAll\"],DROP:[\"updateAll\"],ADD:[\"updateAll\"],MOVE:[\"updateAll\"],COPY:[\"updateAll\"],CREATE:[\"updateAll\"],WITH:[\"updateAll\"],$:[\"updateAll\"]},\"or([selectQuery,constructQuery,describeQuery,askQuery])\":{SELECT:[\"selectQuery\"],CONSTRUCT:[\"constructQuery\"],DESCRIBE:[\"describeQuery\"],ASK:[\"askQuery\"]},\"or([subSelect,groupGraphPatternSub])\":{SELECT:[\"subSelect\"],\"{\":[\"groupGraphPatternSub\"],OPTIONAL:[\"groupGraphPatternSub\"],MINUS:[\"groupGraphPatternSub\"],GRAPH:[\"groupGraphPatternSub\"],SERVICE:[\"groupGraphPatternSub\"],FILTER:[\"groupGraphPatternSub\"],BIND:[\"groupGraphPatternSub\"],VALUES:[\"groupGraphPatternSub\"],VAR1:[\"groupGraphPatternSub\"],VAR2:[\"groupGraphPatternSub\"],NIL:[\"groupGraphPatternSub\"],\"(\":[\"groupGraphPatternSub\"],\"[\":[\"groupGraphPatternSub\"],IRI_REF:[\"groupGraphPatternSub\"],TRUE:[\"groupGraphPatternSub\"],FALSE:[\"groupGraphPatternSub\"],BLANK_NODE_LABEL:[\"groupGraphPatternSub\"],ANON:[\"groupGraphPatternSub\"],PNAME_LN:[\"groupGraphPatternSub\"],PNAME_NS:[\"groupGraphPatternSub\"],STRING_LITERAL1:[\"groupGraphPatternSub\"],STRING_LITERAL2:[\"groupGraphPatternSub\"],STRING_LITERAL_LONG1:[\"groupGraphPatternSub\"],STRING_LITERAL_LONG2:[\"groupGraphPatternSub\"],INTEGER:[\"groupGraphPatternSub\"],DECIMAL:[\"groupGraphPatternSub\"],DOUBLE:[\"groupGraphPatternSub\"],INTEGER_POSITIVE:[\"groupGraphPatternSub\"],DECIMAL_POSITIVE:[\"groupGraphPatternSub\"],DOUBLE_POSITIVE:[\"groupGraphPatternSub\"],INTEGER_NEGATIVE:[\"groupGraphPatternSub\"],DECIMAL_NEGATIVE:[\"groupGraphPatternSub\"],DOUBLE_NEGATIVE:[\"groupGraphPatternSub\"],\"}\":[\"groupGraphPatternSub\"]},\"or([var,[(,expression,AS,var,)]])\":{VAR1:[\"var\"],VAR2:[\"var\"],\"(\":[\"[(,expression,AS,var,)]\"]},\"or([verbPath,verbSimple])\":{\"^\":[\"verbPath\"],a:[\"verbPath\"],\"!\":[\"verbPath\"],\"(\":[\"verbPath\"],IRI_REF:[\"verbPath\"],PNAME_LN:[\"verbPath\"],PNAME_NS:[\"verbPath\"],VAR1:[\"verbSimple\"],VAR2:[\"verbSimple\"]},\"or([},[integer,}]])\":{\"}\":[\"}\"],INTEGER:[\"[integer,}]\"]},orderClause:{ORDER:[\"ORDER\",\"BY\",\"+orderCondition\"]},orderCondition:{ASC:[\"or([ASC,DESC])\",\"brackettedExpression\"],DESC:[\"or([ASC,DESC])\",\"brackettedExpression\"],\"(\":[\"constraint\"],STR:[\"constraint\"],LANG:[\"constraint\"],LANGMATCHES:[\"constraint\"],DATATYPE:[\"constraint\"],BOUND:[\"constraint\"],IRI:[\"constraint\"],URI:[\"constraint\"],BNODE:[\"constraint\"],RAND:[\"constraint\"],ABS:[\"constraint\"],CEIL:[\"constraint\"],FLOOR:[\"constraint\"],ROUND:[\"constraint\"],CONCAT:[\"constraint\"],STRLEN:[\"constraint\"],UCASE:[\"constraint\"],LCASE:[\"constraint\"],ENCODE_FOR_URI:[\"constraint\"],CONTAINS:[\"constraint\"],STRSTARTS:[\"constraint\"],STRENDS:[\"constraint\"],STRBEFORE:[\"constraint\"],STRAFTER:[\"constraint\"],YEAR:[\"constraint\"],MONTH:[\"constraint\"],DAY:[\"constraint\"],HOURS:[\"constraint\"],MINUTES:[\"constraint\"],SECONDS:[\"constraint\"],TIMEZONE:[\"constraint\"],TZ:[\"constraint\"],NOW:[\"constraint\"],UUID:[\"constraint\"],STRUUID:[\"constraint\"],MD5:[\"constraint\"],SHA1:[\"constraint\"],SHA256:[\"constraint\"],SHA384:[\"constraint\"],SHA512:[\"constraint\"],COALESCE:[\"constraint\"],IF:[\"constraint\"],STRLANG:[\"constraint\"],STRDT:[\"constraint\"],SAMETERM:[\"constraint\"],ISIRI:[\"constraint\"],ISURI:[\"constraint\"],ISBLANK:[\"constraint\"],ISLITERAL:[\"constraint\"],ISNUMERIC:[\"constraint\"],SUBSTR:[\"constraint\"],REPLACE:[\"constraint\"],REGEX:[\"constraint\"],EXISTS:[\"constraint\"],NOT:[\"constraint\"],IRI_REF:[\"constraint\"],PNAME_LN:[\"constraint\"],PNAME_NS:[\"constraint\"],VAR1:[\"var\"],VAR2:[\"var\"]},path:{\"^\":[\"pathAlternative\"],a:[\"pathAlternative\"],\"!\":[\"pathAlternative\"],\"(\":[\"pathAlternative\"],IRI_REF:[\"pathAlternative\"],PNAME_LN:[\"pathAlternative\"],PNAME_NS:[\"pathAlternative\"]},pathAlternative:{\"^\":[\"pathSequence\",\"*[|,pathSequence]\"],a:[\"pathSequence\",\"*[|,pathSequence]\"],\"!\":[\"pathSequence\",\"*[|,pathSequence]\"],\"(\":[\"pathSequence\",\"*[|,pathSequence]\"],IRI_REF:[\"pathSequence\",\"*[|,pathSequence]\"],PNAME_LN:[\"pathSequence\",\"*[|,pathSequence]\"],PNAME_NS:[\"pathSequence\",\"*[|,pathSequence]\"]},pathElt:{a:[\"pathPrimary\",\"?pathMod\"],\"!\":[\"pathPrimary\",\"?pathMod\"],\"(\":[\"pathPrimary\",\"?pathMod\"],IRI_REF:[\"pathPrimary\",\"?pathMod\"],PNAME_LN:[\"pathPrimary\",\"?pathMod\"],PNAME_NS:[\"pathPrimary\",\"?pathMod\"]},pathEltOrInverse:{a:[\"pathElt\"],\"!\":[\"pathElt\"],\"(\":[\"pathElt\"],IRI_REF:[\"pathElt\"],PNAME_LN:[\"pathElt\"],PNAME_NS:[\"pathElt\"],\"^\":[\"^\",\"pathElt\"]},pathMod:{\"*\":[\"*\"],\"?\":[\"?\"],\"+\":[\"+\"],\"{\":[\"{\",\"or([[integer,or([[,,or([},[integer,}]])],}])],[,,integer,}]])\"]},pathNegatedPropertySet:{a:[\"pathOneInPropertySet\"],\"^\":[\"pathOneInPropertySet\"],IRI_REF:[\"pathOneInPropertySet\"],PNAME_LN:[\"pathOneInPropertySet\"],PNAME_NS:[\"pathOneInPropertySet\"],\"(\":[\"(\",\"?[pathOneInPropertySet,*[|,pathOneInPropertySet]]\",\")\"]},pathOneInPropertySet:{IRI_REF:[\"iriRef\"],PNAME_LN:[\"iriRef\"],PNAME_NS:[\"iriRef\"],a:[\"a\"],\"^\":[\"^\",\"or([iriRef,a])\"]},pathPrimary:{IRI_REF:[\"storeProperty\",\"iriRef\"],PNAME_LN:[\"storeProperty\",\"iriRef\"],PNAME_NS:[\"storeProperty\",\"iriRef\"],a:[\"storeProperty\",\"a\"],\"!\":[\"!\",\"pathNegatedPropertySet\"],\"(\":[\"(\",\"path\",\")\"]},pathSequence:{\"^\":[\"pathEltOrInverse\",\"*[/,pathEltOrInverse]\"],a:[\"pathEltOrInverse\",\"*[/,pathEltOrInverse]\"],\"!\":[\"pathEltOrInverse\",\"*[/,pathEltOrInverse]\"],\"(\":[\"pathEltOrInverse\",\"*[/,pathEltOrInverse]\"],IRI_REF:[\"pathEltOrInverse\",\"*[/,pathEltOrInverse]\"],PNAME_LN:[\"pathEltOrInverse\",\"*[/,pathEltOrInverse]\"],PNAME_NS:[\"pathEltOrInverse\",\"*[/,pathEltOrInverse]\"]},prefixDecl:{PREFIX:[\"PREFIX\",\"PNAME_NS\",\"IRI_REF\"]},prefixedName:{PNAME_LN:[\"PNAME_LN\"],PNAME_NS:[\"PNAME_NS\"]},primaryExpression:{\"(\":[\"brackettedExpression\"],STR:[\"builtInCall\"],LANG:[\"builtInCall\"],LANGMATCHES:[\"builtInCall\"],DATATYPE:[\"builtInCall\"],BOUND:[\"builtInCall\"],IRI:[\"builtInCall\"],URI:[\"builtInCall\"],BNODE:[\"builtInCall\"],RAND:[\"builtInCall\"],ABS:[\"builtInCall\"],CEIL:[\"builtInCall\"],FLOOR:[\"builtInCall\"],ROUND:[\"builtInCall\"],CONCAT:[\"builtInCall\"],STRLEN:[\"builtInCall\"],UCASE:[\"builtInCall\"],LCASE:[\"builtInCall\"],ENCODE_FOR_URI:[\"builtInCall\"],CONTAINS:[\"builtInCall\"],STRSTARTS:[\"builtInCall\"],STRENDS:[\"builtInCall\"],STRBEFORE:[\"builtInCall\"],STRAFTER:[\"builtInCall\"],YEAR:[\"builtInCall\"],MONTH:[\"builtInCall\"],DAY:[\"builtInCall\"],HOURS:[\"builtInCall\"],MINUTES:[\"builtInCall\"],SECONDS:[\"builtInCall\"],TIMEZONE:[\"builtInCall\"],TZ:[\"builtInCall\"],NOW:[\"builtInCall\"],UUID:[\"builtInCall\"],STRUUID:[\"builtInCall\"],MD5:[\"builtInCall\"],SHA1:[\"builtInCall\"],SHA256:[\"builtInCall\"],SHA384:[\"builtInCall\"],SHA512:[\"builtInCall\"],COALESCE:[\"builtInCall\"],IF:[\"builtInCall\"],STRLANG:[\"builtInCall\"],STRDT:[\"builtInCall\"],SAMETERM:[\"builtInCall\"],ISIRI:[\"builtInCall\"],ISURI:[\"builtInCall\"],ISBLANK:[\"builtInCall\"],ISLITERAL:[\"builtInCall\"],ISNUMERIC:[\"builtInCall\"],SUBSTR:[\"builtInCall\"],REPLACE:[\"builtInCall\"],REGEX:[\"builtInCall\"],EXISTS:[\"builtInCall\"],NOT:[\"builtInCall\"],IRI_REF:[\"iriRefOrFunction\"],PNAME_LN:[\"iriRefOrFunction\"],PNAME_NS:[\"iriRefOrFunction\"],STRING_LITERAL1:[\"rdfLiteral\"],STRING_LITERAL2:[\"rdfLiteral\"],STRING_LITERAL_LONG1:[\"rdfLiteral\"],STRING_LITERAL_LONG2:[\"rdfLiteral\"],INTEGER:[\"numericLiteral\"],DECIMAL:[\"numericLiteral\"],DOUBLE:[\"numericLiteral\"],INTEGER_POSITIVE:[\"numericLiteral\"],DECIMAL_POSITIVE:[\"numericLiteral\"],DOUBLE_POSITIVE:[\"numericLiteral\"],INTEGER_NEGATIVE:[\"numericLiteral\"],DECIMAL_NEGATIVE:[\"numericLiteral\"],DOUBLE_NEGATIVE:[\"numericLiteral\"],TRUE:[\"booleanLiteral\"],FALSE:[\"booleanLiteral\"],VAR1:[\"var\"],VAR2:[\"var\"],COUNT:[\"aggregate\"],SUM:[\"aggregate\"],MIN:[\"aggregate\"],MAX:[\"aggregate\"],AVG:[\"aggregate\"],SAMPLE:[\"aggregate\"],GROUP_CONCAT:[\"aggregate\"]},prologue:{BASE:[\"*or([baseDecl,prefixDecl])\"],PREFIX:[\"*or([baseDecl,prefixDecl])\"],$:[\"*or([baseDecl,prefixDecl])\"],CONSTRUCT:[\"*or([baseDecl,prefixDecl])\"],DESCRIBE:[\"*or([baseDecl,prefixDecl])\"],ASK:[\"*or([baseDecl,prefixDecl])\"],INSERT:[\"*or([baseDecl,prefixDecl])\"],DELETE:[\"*or([baseDecl,prefixDecl])\"],SELECT:[\"*or([baseDecl,prefixDecl])\"],LOAD:[\"*or([baseDecl,prefixDecl])\"],CLEAR:[\"*or([baseDecl,prefixDecl])\"],DROP:[\"*or([baseDecl,prefixDecl])\"],ADD:[\"*or([baseDecl,prefixDecl])\"],MOVE:[\"*or([baseDecl,prefixDecl])\"],COPY:[\"*or([baseDecl,prefixDecl])\"],CREATE:[\"*or([baseDecl,prefixDecl])\"],WITH:[\"*or([baseDecl,prefixDecl])\"]},propertyList:{a:[\"propertyListNotEmpty\"],VAR1:[\"propertyListNotEmpty\"],VAR2:[\"propertyListNotEmpty\"],IRI_REF:[\"propertyListNotEmpty\"],PNAME_LN:[\"propertyListNotEmpty\"],PNAME_NS:[\"propertyListNotEmpty\"],\".\":[],\"}\":[],GRAPH:[]},propertyListNotEmpty:{a:[\"verb\",\"objectList\",\"*[;,?[verb,objectList]]\"],VAR1:[\"verb\",\"objectList\",\"*[;,?[verb,objectList]]\"],VAR2:[\"verb\",\"objectList\",\"*[;,?[verb,objectList]]\"],IRI_REF:[\"verb\",\"objectList\",\"*[;,?[verb,objectList]]\"],PNAME_LN:[\"verb\",\"objectList\",\"*[;,?[verb,objectList]]\"],PNAME_NS:[\"verb\",\"objectList\",\"*[;,?[verb,objectList]]\"]},propertyListPath:{a:[\"propertyListNotEmpty\"],VAR1:[\"propertyListNotEmpty\"],VAR2:[\"propertyListNotEmpty\"],IRI_REF:[\"propertyListNotEmpty\"],PNAME_LN:[\"propertyListNotEmpty\"],PNAME_NS:[\"propertyListNotEmpty\"],\".\":[],\"{\":[],OPTIONAL:[],MINUS:[],GRAPH:[],SERVICE:[],FILTER:[],BIND:[],VALUES:[],\"}\":[]},propertyListPathNotEmpty:{VAR1:[\"or([verbPath,verbSimple])\",\"objectListPath\",\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\"],VAR2:[\"or([verbPath,verbSimple])\",\"objectListPath\",\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\"],\"^\":[\"or([verbPath,verbSimple])\",\"objectListPath\",\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\"],a:[\"or([verbPath,verbSimple])\",\"objectListPath\",\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\"],\"!\":[\"or([verbPath,verbSimple])\",\"objectListPath\",\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\"],\"(\":[\"or([verbPath,verbSimple])\",\"objectListPath\",\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\"],IRI_REF:[\"or([verbPath,verbSimple])\",\"objectListPath\",\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\"],PNAME_LN:[\"or([verbPath,verbSimple])\",\"objectListPath\",\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\"],PNAME_NS:[\"or([verbPath,verbSimple])\",\"objectListPath\",\"*[;,?[or([verbPath,verbSimple]),objectListPath]]\"]},quadData:{\"{\":[\"{\",\"disallowVars\",\"quads\",\"allowVars\",\"}\"]},quadDataNoBnodes:{\"{\":[\"{\",\"disallowBnodes\",\"disallowVars\",\"quads\",\"allowVars\",\"allowBnodes\",\"}\"]},quadPattern:{\"{\":[\"{\",\"quads\",\"}\"]},quadPatternNoBnodes:{\"{\":[\"{\",\"disallowBnodes\",\"quads\",\"allowBnodes\",\"}\"]},quads:{GRAPH:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],VAR1:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],VAR2:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],NIL:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],\"(\":[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],\"[\":[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],IRI_REF:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],TRUE:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],FALSE:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],BLANK_NODE_LABEL:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],ANON:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],PNAME_LN:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],PNAME_NS:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],STRING_LITERAL1:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],STRING_LITERAL2:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],STRING_LITERAL_LONG1:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],STRING_LITERAL_LONG2:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],INTEGER:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],DECIMAL:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],DOUBLE:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],INTEGER_POSITIVE:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],DECIMAL_POSITIVE:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],DOUBLE_POSITIVE:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],INTEGER_NEGATIVE:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],DECIMAL_NEGATIVE:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],DOUBLE_NEGATIVE:[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"],\"}\":[\"?triplesTemplate\",\"*[quadsNotTriples,?.,?triplesTemplate]\"]},quadsNotTriples:{GRAPH:[\"GRAPH\",\"varOrIRIref\",\"{\",\"?triplesTemplate\",\"}\"]},queryAll:{CONSTRUCT:[\"or([selectQuery,constructQuery,describeQuery,askQuery])\",\"valuesClause\"],DESCRIBE:[\"or([selectQuery,constructQuery,describeQuery,askQuery])\",\"valuesClause\"],ASK:[\"or([selectQuery,constructQuery,describeQuery,askQuery])\",\"valuesClause\"],SELECT:[\"or([selectQuery,constructQuery,describeQuery,askQuery])\",\"valuesClause\"]},rdfLiteral:{STRING_LITERAL1:[\"string\",\"?or([LANGTAG,[^^,iriRef]])\"],STRING_LITERAL2:[\"string\",\"?or([LANGTAG,[^^,iriRef]])\"],STRING_LITERAL_LONG1:[\"string\",\"?or([LANGTAG,[^^,iriRef]])\"],STRING_LITERAL_LONG2:[\"string\",\"?or([LANGTAG,[^^,iriRef]])\"]},regexExpression:{REGEX:[\"REGEX\",\"(\",\"expression\",\",\",\"expression\",\"?[,,expression]\",\")\"]},relationalExpression:{\"!\":[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],\"+\":[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],\"-\":[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],VAR1:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],VAR2:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],\"(\":[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STR:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],LANG:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],LANGMATCHES:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],DATATYPE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],BOUND:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],IRI:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],URI:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],BNODE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],RAND:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],ABS:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],CEIL:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],FLOOR:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],ROUND:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],CONCAT:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRLEN:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],UCASE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],LCASE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],ENCODE_FOR_URI:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],CONTAINS:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRSTARTS:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRENDS:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRBEFORE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRAFTER:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],YEAR:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],MONTH:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],DAY:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],HOURS:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],MINUTES:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],SECONDS:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],TIMEZONE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],TZ:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],NOW:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],UUID:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRUUID:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],MD5:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],SHA1:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],SHA256:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],SHA384:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],SHA512:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],COALESCE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],IF:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRLANG:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRDT:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],SAMETERM:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],ISIRI:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],ISURI:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],ISBLANK:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],ISLITERAL:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],ISNUMERIC:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],TRUE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],FALSE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],COUNT:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],SUM:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],MIN:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],MAX:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],AVG:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],SAMPLE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],GROUP_CONCAT:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],SUBSTR:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],REPLACE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],REGEX:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],EXISTS:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],NOT:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],IRI_REF:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRING_LITERAL1:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRING_LITERAL2:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRING_LITERAL_LONG1:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],STRING_LITERAL_LONG2:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],INTEGER:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],DECIMAL:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],DOUBLE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],INTEGER_POSITIVE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],DECIMAL_POSITIVE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],DOUBLE_POSITIVE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],INTEGER_NEGATIVE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],DECIMAL_NEGATIVE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],DOUBLE_NEGATIVE:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],PNAME_LN:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"],PNAME_NS:[\"numericExpression\",\"?or([[=,numericExpression],[!=,numericExpression],[<,numericExpression],[>,numericExpression],[<=,numericExpression],[>=,numericExpression],[IN,expressionList],[NOT,IN,expressionList]])\"]},selectClause:{SELECT:[\"SELECT\",\"?or([DISTINCT,REDUCED])\",\"or([+or([var,[(,expression,AS,var,)]]),*])\"]},selectQuery:{SELECT:[\"selectClause\",\"*datasetClause\",\"whereClause\",\"solutionModifier\"]},serviceGraphPattern:{SERVICE:[\"SERVICE\",\"?SILENT\",\"varOrIRIref\",\"groupGraphPattern\"]},solutionModifier:{LIMIT:[\"?groupClause\",\"?havingClause\",\"?orderClause\",\"?limitOffsetClauses\"],OFFSET:[\"?groupClause\",\"?havingClause\",\"?orderClause\",\"?limitOffsetClauses\"],ORDER:[\"?groupClause\",\"?havingClause\",\"?orderClause\",\"?limitOffsetClauses\"],HAVING:[\"?groupClause\",\"?havingClause\",\"?orderClause\",\"?limitOffsetClauses\"],GROUP:[\"?groupClause\",\"?havingClause\",\"?orderClause\",\"?limitOffsetClauses\"],VALUES:[\"?groupClause\",\"?havingClause\",\"?orderClause\",\"?limitOffsetClauses\"],$:[\"?groupClause\",\"?havingClause\",\"?orderClause\",\"?limitOffsetClauses\"],\"}\":[\"?groupClause\",\"?havingClause\",\"?orderClause\",\"?limitOffsetClauses\"]},sourceSelector:{IRI_REF:[\"iriRef\"],PNAME_LN:[\"iriRef\"],PNAME_NS:[\"iriRef\"]},sparql11:{$:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],CONSTRUCT:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],DESCRIBE:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],ASK:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],INSERT:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],DELETE:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],SELECT:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],LOAD:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],CLEAR:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],DROP:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],ADD:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],MOVE:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],COPY:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],CREATE:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],WITH:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],BASE:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"],PREFIX:[\"prologue\",\"or([queryAll,updateAll])\",\"$\"]},storeProperty:{VAR1:[],VAR2:[],IRI_REF:[],PNAME_LN:[],PNAME_NS:[],a:[]},strReplaceExpression:{REPLACE:[\"REPLACE\",\"(\",\"expression\",\",\",\"expression\",\",\",\"expression\",\"?[,,expression]\",\")\"]},string:{STRING_LITERAL1:[\"STRING_LITERAL1\"],STRING_LITERAL2:[\"STRING_LITERAL2\"],STRING_LITERAL_LONG1:[\"STRING_LITERAL_LONG1\"],STRING_LITERAL_LONG2:[\"STRING_LITERAL_LONG2\"]},subSelect:{SELECT:[\"selectClause\",\"whereClause\",\"solutionModifier\",\"valuesClause\"]},substringExpression:{SUBSTR:[\"SUBSTR\",\"(\",\"expression\",\",\",\"expression\",\"?[,,expression]\",\")\"]},triplesBlock:{VAR1:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],VAR2:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],NIL:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],\"(\":[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],\"[\":[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],IRI_REF:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],TRUE:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],FALSE:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],BLANK_NODE_LABEL:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],ANON:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],PNAME_LN:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],PNAME_NS:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],STRING_LITERAL1:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],STRING_LITERAL2:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],STRING_LITERAL_LONG1:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],STRING_LITERAL_LONG2:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],INTEGER:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],DECIMAL:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],DOUBLE:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],INTEGER_POSITIVE:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],DECIMAL_POSITIVE:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],DOUBLE_POSITIVE:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],INTEGER_NEGATIVE:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],DECIMAL_NEGATIVE:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"],DOUBLE_NEGATIVE:[\"triplesSameSubjectPath\",\"?[.,?triplesBlock]\"]},triplesNode:{\"(\":[\"collection\"],\"[\":[\"blankNodePropertyList\"]},triplesNodePath:{\"(\":[\"collectionPath\"],\"[\":[\"blankNodePropertyListPath\"]},triplesSameSubject:{VAR1:[\"varOrTerm\",\"propertyListNotEmpty\"],VAR2:[\"varOrTerm\",\"propertyListNotEmpty\"],NIL:[\"varOrTerm\",\"propertyListNotEmpty\"],IRI_REF:[\"varOrTerm\",\"propertyListNotEmpty\"],TRUE:[\"varOrTerm\",\"propertyListNotEmpty\"],FALSE:[\"varOrTerm\",\"propertyListNotEmpty\"],BLANK_NODE_LABEL:[\"varOrTerm\",\"propertyListNotEmpty\"],ANON:[\"varOrTerm\",\"propertyListNotEmpty\"],PNAME_LN:[\"varOrTerm\",\"propertyListNotEmpty\"],PNAME_NS:[\"varOrTerm\",\"propertyListNotEmpty\"],STRING_LITERAL1:[\"varOrTerm\",\"propertyListNotEmpty\"],STRING_LITERAL2:[\"varOrTerm\",\"propertyListNotEmpty\"],STRING_LITERAL_LONG1:[\"varOrTerm\",\"propertyListNotEmpty\"],STRING_LITERAL_LONG2:[\"varOrTerm\",\"propertyListNotEmpty\"],INTEGER:[\"varOrTerm\",\"propertyListNotEmpty\"],DECIMAL:[\"varOrTerm\",\"propertyListNotEmpty\"],DOUBLE:[\"varOrTerm\",\"propertyListNotEmpty\"],INTEGER_POSITIVE:[\"varOrTerm\",\"propertyListNotEmpty\"],DECIMAL_POSITIVE:[\"varOrTerm\",\"propertyListNotEmpty\"],DOUBLE_POSITIVE:[\"varOrTerm\",\"propertyListNotEmpty\"],INTEGER_NEGATIVE:[\"varOrTerm\",\"propertyListNotEmpty\"],DECIMAL_NEGATIVE:[\"varOrTerm\",\"propertyListNotEmpty\"],DOUBLE_NEGATIVE:[\"varOrTerm\",\"propertyListNotEmpty\"],\"(\":[\"triplesNode\",\"propertyList\"],\"[\":[\"triplesNode\",\"propertyList\"]},triplesSameSubjectPath:{VAR1:[\"varOrTerm\",\"propertyListPathNotEmpty\"],VAR2:[\"varOrTerm\",\"propertyListPathNotEmpty\"],NIL:[\"varOrTerm\",\"propertyListPathNotEmpty\"],IRI_REF:[\"varOrTerm\",\"propertyListPathNotEmpty\"],TRUE:[\"varOrTerm\",\"propertyListPathNotEmpty\"],FALSE:[\"varOrTerm\",\"propertyListPathNotEmpty\"],BLANK_NODE_LABEL:[\"varOrTerm\",\"propertyListPathNotEmpty\"],ANON:[\"varOrTerm\",\"propertyListPathNotEmpty\"],PNAME_LN:[\"varOrTerm\",\"propertyListPathNotEmpty\"],PNAME_NS:[\"varOrTerm\",\"propertyListPathNotEmpty\"],STRING_LITERAL1:[\"varOrTerm\",\"propertyListPathNotEmpty\"],STRING_LITERAL2:[\"varOrTerm\",\"propertyListPathNotEmpty\"],STRING_LITERAL_LONG1:[\"varOrTerm\",\"propertyListPathNotEmpty\"],STRING_LITERAL_LONG2:[\"varOrTerm\",\"propertyListPathNotEmpty\"],INTEGER:[\"varOrTerm\",\"propertyListPathNotEmpty\"],DECIMAL:[\"varOrTerm\",\"propertyListPathNotEmpty\"],DOUBLE:[\"varOrTerm\",\"propertyListPathNotEmpty\"],INTEGER_POSITIVE:[\"varOrTerm\",\"propertyListPathNotEmpty\"],DECIMAL_POSITIVE:[\"varOrTerm\",\"propertyListPathNotEmpty\"],DOUBLE_POSITIVE:[\"varOrTerm\",\"propertyListPathNotEmpty\"],INTEGER_NEGATIVE:[\"varOrTerm\",\"propertyListPathNotEmpty\"],DECIMAL_NEGATIVE:[\"varOrTerm\",\"propertyListPathNotEmpty\"],DOUBLE_NEGATIVE:[\"varOrTerm\",\"propertyListPathNotEmpty\"],\"(\":[\"triplesNodePath\",\"propertyListPath\"],\"[\":[\"triplesNodePath\",\"propertyListPath\"]},triplesTemplate:{VAR1:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],VAR2:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],NIL:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],\"(\":[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],\"[\":[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],IRI_REF:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],TRUE:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],FALSE:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],BLANK_NODE_LABEL:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],ANON:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],PNAME_LN:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],PNAME_NS:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],STRING_LITERAL1:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],STRING_LITERAL2:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],STRING_LITERAL_LONG1:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],STRING_LITERAL_LONG2:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],INTEGER:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],DECIMAL:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],DOUBLE:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],INTEGER_POSITIVE:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],DECIMAL_POSITIVE:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],DOUBLE_POSITIVE:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],INTEGER_NEGATIVE:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],DECIMAL_NEGATIVE:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"],DOUBLE_NEGATIVE:[\"triplesSameSubject\",\"?[.,?triplesTemplate]\"]},unaryExpression:{\"!\":[\"!\",\"primaryExpression\"],\"+\":[\"+\",\"primaryExpression\"],\"-\":[\"-\",\"primaryExpression\"],VAR1:[\"primaryExpression\"],VAR2:[\"primaryExpression\"],\"(\":[\"primaryExpression\"],STR:[\"primaryExpression\"],LANG:[\"primaryExpression\"],LANGMATCHES:[\"primaryExpression\"],DATATYPE:[\"primaryExpression\"],BOUND:[\"primaryExpression\"],IRI:[\"primaryExpression\"],URI:[\"primaryExpression\"],BNODE:[\"primaryExpression\"],RAND:[\"primaryExpression\"],ABS:[\"primaryExpression\"],CEIL:[\"primaryExpression\"],FLOOR:[\"primaryExpression\"],ROUND:[\"primaryExpression\"],CONCAT:[\"primaryExpression\"],STRLEN:[\"primaryExpression\"],UCASE:[\"primaryExpression\"],LCASE:[\"primaryExpression\"],ENCODE_FOR_URI:[\"primaryExpression\"],CONTAINS:[\"primaryExpression\"],STRSTARTS:[\"primaryExpression\"],STRENDS:[\"primaryExpression\"],STRBEFORE:[\"primaryExpression\"],STRAFTER:[\"primaryExpression\"],YEAR:[\"primaryExpression\"],MONTH:[\"primaryExpression\"],DAY:[\"primaryExpression\"],HOURS:[\"primaryExpression\"],MINUTES:[\"primaryExpression\"],SECONDS:[\"primaryExpression\"],TIMEZONE:[\"primaryExpression\"],TZ:[\"primaryExpression\"],NOW:[\"primaryExpression\"],UUID:[\"primaryExpression\"],STRUUID:[\"primaryExpression\"],MD5:[\"primaryExpression\"],SHA1:[\"primaryExpression\"],SHA256:[\"primaryExpression\"],SHA384:[\"primaryExpression\"],SHA512:[\"primaryExpression\"],COALESCE:[\"primaryExpression\"],IF:[\"primaryExpression\"],STRLANG:[\"primaryExpression\"],STRDT:[\"primaryExpression\"],SAMETERM:[\"primaryExpression\"],ISIRI:[\"primaryExpression\"],ISURI:[\"primaryExpression\"],ISBLANK:[\"primaryExpression\"],ISLITERAL:[\"primaryExpression\"],ISNUMERIC:[\"primaryExpression\"],TRUE:[\"primaryExpression\"],FALSE:[\"primaryExpression\"],COUNT:[\"primaryExpression\"],SUM:[\"primaryExpression\"],MIN:[\"primaryExpression\"],MAX:[\"primaryExpression\"],AVG:[\"primaryExpression\"],SAMPLE:[\"primaryExpression\"],GROUP_CONCAT:[\"primaryExpression\"],SUBSTR:[\"primaryExpression\"],REPLACE:[\"primaryExpression\"],REGEX:[\"primaryExpression\"],EXISTS:[\"primaryExpression\"],NOT:[\"primaryExpression\"],IRI_REF:[\"primaryExpression\"],STRING_LITERAL1:[\"primaryExpression\"],STRING_LITERAL2:[\"primaryExpression\"],STRING_LITERAL_LONG1:[\"primaryExpression\"],STRING_LITERAL_LONG2:[\"primaryExpression\"],INTEGER:[\"primaryExpression\"],DECIMAL:[\"primaryExpression\"],DOUBLE:[\"primaryExpression\"],INTEGER_POSITIVE:[\"primaryExpression\"],DECIMAL_POSITIVE:[\"primaryExpression\"],DOUBLE_POSITIVE:[\"primaryExpression\"],INTEGER_NEGATIVE:[\"primaryExpression\"],DECIMAL_NEGATIVE:[\"primaryExpression\"],DOUBLE_NEGATIVE:[\"primaryExpression\"],PNAME_LN:[\"primaryExpression\"],PNAME_NS:[\"primaryExpression\"]},update:{INSERT:[\"prologue\",\"?[update1,?[;,update]]\"],DELETE:[\"prologue\",\"?[update1,?[;,update]]\"],LOAD:[\"prologue\",\"?[update1,?[;,update]]\"],CLEAR:[\"prologue\",\"?[update1,?[;,update]]\"],DROP:[\"prologue\",\"?[update1,?[;,update]]\"],ADD:[\"prologue\",\"?[update1,?[;,update]]\"],MOVE:[\"prologue\",\"?[update1,?[;,update]]\"],COPY:[\"prologue\",\"?[update1,?[;,update]]\"],CREATE:[\"prologue\",\"?[update1,?[;,update]]\"],WITH:[\"prologue\",\"?[update1,?[;,update]]\"],BASE:[\"prologue\",\"?[update1,?[;,update]]\"],PREFIX:[\"prologue\",\"?[update1,?[;,update]]\"],$:[\"prologue\",\"?[update1,?[;,update]]\"]},update1:{LOAD:[\"load\"],CLEAR:[\"clear\"],DROP:[\"drop\"],ADD:[\"add\"],MOVE:[\"move\"],COPY:[\"copy\"],CREATE:[\"create\"],INSERT:[\"INSERT\",\"insert1\"],DELETE:[\"DELETE\",\"delete1\"],WITH:[\"modify\"]},updateAll:{INSERT:[\"?[update1,?[;,update]]\"],DELETE:[\"?[update1,?[;,update]]\"],LOAD:[\"?[update1,?[;,update]]\"],CLEAR:[\"?[update1,?[;,update]]\"],DROP:[\"?[update1,?[;,update]]\"],ADD:[\"?[update1,?[;,update]]\"],MOVE:[\"?[update1,?[;,update]]\"],COPY:[\"?[update1,?[;,update]]\"],CREATE:[\"?[update1,?[;,update]]\"],WITH:[\"?[update1,?[;,update]]\"],$:[\"?[update1,?[;,update]]\"]},usingClause:{USING:[\"USING\",\"or([iriRef,[NAMED,iriRef]])\"]},valueLogical:{\"!\":[\"relationalExpression\"],\"+\":[\"relationalExpression\"],\"-\":[\"relationalExpression\"],VAR1:[\"relationalExpression\"],VAR2:[\"relationalExpression\"],\"(\":[\"relationalExpression\"],STR:[\"relationalExpression\"],LANG:[\"relationalExpression\"],LANGMATCHES:[\"relationalExpression\"],DATATYPE:[\"relationalExpression\"],BOUND:[\"relationalExpression\"],IRI:[\"relationalExpression\"],URI:[\"relationalExpression\"],BNODE:[\"relationalExpression\"],RAND:[\"relationalExpression\"],ABS:[\"relationalExpression\"],CEIL:[\"relationalExpression\"],FLOOR:[\"relationalExpression\"],ROUND:[\"relationalExpression\"],CONCAT:[\"relationalExpression\"],STRLEN:[\"relationalExpression\"],UCASE:[\"relationalExpression\"],LCASE:[\"relationalExpression\"],ENCODE_FOR_URI:[\"relationalExpression\"],CONTAINS:[\"relationalExpression\"],STRSTARTS:[\"relationalExpression\"],STRENDS:[\"relationalExpression\"],STRBEFORE:[\"relationalExpression\"],STRAFTER:[\"relationalExpression\"],YEAR:[\"relationalExpression\"],MONTH:[\"relationalExpression\"],DAY:[\"relationalExpression\"],HOURS:[\"relationalExpression\"],MINUTES:[\"relationalExpression\"],SECONDS:[\"relationalExpression\"],TIMEZONE:[\"relationalExpression\"],TZ:[\"relationalExpression\"],NOW:[\"relationalExpression\"],UUID:[\"relationalExpression\"],STRUUID:[\"relationalExpression\"],MD5:[\"relationalExpression\"],SHA1:[\"relationalExpression\"],SHA256:[\"relationalExpression\"],SHA384:[\"relationalExpression\"],SHA512:[\"relationalExpression\"],COALESCE:[\"relationalExpression\"],IF:[\"relationalExpression\"],STRLANG:[\"relationalExpression\"],STRDT:[\"relationalExpression\"],SAMETERM:[\"relationalExpression\"],ISIRI:[\"relationalExpression\"],ISURI:[\"relationalExpression\"],ISBLANK:[\"relationalExpression\"],ISLITERAL:[\"relationalExpression\"],ISNUMERIC:[\"relationalExpression\"],TRUE:[\"relationalExpression\"],FALSE:[\"relationalExpression\"],COUNT:[\"relationalExpression\"],SUM:[\"relationalExpression\"],MIN:[\"relationalExpression\"],MAX:[\"relationalExpression\"],AVG:[\"relationalExpression\"],SAMPLE:[\"relationalExpression\"],GROUP_CONCAT:[\"relationalExpression\"],SUBSTR:[\"relationalExpression\"],REPLACE:[\"relationalExpression\"],REGEX:[\"relationalExpression\"],EXISTS:[\"relationalExpression\"],NOT:[\"relationalExpression\"],IRI_REF:[\"relationalExpression\"],STRING_LITERAL1:[\"relationalExpression\"],STRING_LITERAL2:[\"relationalExpression\"],STRING_LITERAL_LONG1:[\"relationalExpression\"],STRING_LITERAL_LONG2:[\"relationalExpression\"],INTEGER:[\"relationalExpression\"],DECIMAL:[\"relationalExpression\"],DOUBLE:[\"relationalExpression\"],INTEGER_POSITIVE:[\"relationalExpression\"],DECIMAL_POSITIVE:[\"relationalExpression\"],DOUBLE_POSITIVE:[\"relationalExpression\"],INTEGER_NEGATIVE:[\"relationalExpression\"],DECIMAL_NEGATIVE:[\"relationalExpression\"],DOUBLE_NEGATIVE:[\"relationalExpression\"],PNAME_LN:[\"relationalExpression\"],PNAME_NS:[\"relationalExpression\"]},valuesClause:{VALUES:[\"VALUES\",\"dataBlock\"],$:[],\"}\":[]},var:{VAR1:[\"VAR1\"],VAR2:[\"VAR2\"]},varOrIRIref:{VAR1:[\"var\"],VAR2:[\"var\"],IRI_REF:[\"iriRef\"],PNAME_LN:[\"iriRef\"],PNAME_NS:[\"iriRef\"]},varOrTerm:{VAR1:[\"var\"],VAR2:[\"var\"],NIL:[\"graphTerm\"],IRI_REF:[\"graphTerm\"],TRUE:[\"graphTerm\"],FALSE:[\"graphTerm\"],BLANK_NODE_LABEL:[\"graphTerm\"],ANON:[\"graphTerm\"],PNAME_LN:[\"graphTerm\"],PNAME_NS:[\"graphTerm\"],STRING_LITERAL1:[\"graphTerm\"],STRING_LITERAL2:[\"graphTerm\"],STRING_LITERAL_LONG1:[\"graphTerm\"],STRING_LITERAL_LONG2:[\"graphTerm\"],INTEGER:[\"graphTerm\"],DECIMAL:[\"graphTerm\"],DOUBLE:[\"graphTerm\"],INTEGER_POSITIVE:[\"graphTerm\"],DECIMAL_POSITIVE:[\"graphTerm\"],DOUBLE_POSITIVE:[\"graphTerm\"],INTEGER_NEGATIVE:[\"graphTerm\"],DECIMAL_NEGATIVE:[\"graphTerm\"],DOUBLE_NEGATIVE:[\"graphTerm\"]},verb:{VAR1:[\"storeProperty\",\"varOrIRIref\"],VAR2:[\"storeProperty\",\"varOrIRIref\"],IRI_REF:[\"storeProperty\",\"varOrIRIref\"],PNAME_LN:[\"storeProperty\",\"varOrIRIref\"],PNAME_NS:[\"storeProperty\",\"varOrIRIref\"],a:[\"storeProperty\",\"a\"]},verbPath:{\"^\":[\"path\"],a:[\"path\"],\"!\":[\"path\"],\"(\":[\"path\"],IRI_REF:[\"path\"],PNAME_LN:[\"path\"],PNAME_NS:[\"path\"]},verbSimple:{VAR1:[\"var\"],VAR2:[\"var\"]},whereClause:{\"{\":[\"?WHERE\",\"groupGraphPattern\"],WHERE:[\"?WHERE\",\"groupGraphPattern\"]}},keywords:/^(GROUP_CONCAT|DATATYPE|BASE|PREFIX|SELECT|CONSTRUCT|DESCRIBE|ASK|FROM|NAMED|ORDER|BY|LIMIT|ASC|DESC|OFFSET|DISTINCT|REDUCED|WHERE|GRAPH|OPTIONAL|UNION|FILTER|GROUP|HAVING|AS|VALUES|LOAD|CLEAR|DROP|CREATE|MOVE|COPY|SILENT|INSERT|DELETE|DATA|WITH|TO|USING|NAMED|MINUS|BIND|LANGMATCHES|LANG|BOUND|SAMETERM|ISIRI|ISURI|ISBLANK|ISLITERAL|REGEX|TRUE|FALSE|UNDEF|ADD|DEFAULT|ALL|SERVICE|INTO|IN|NOT|IRI|URI|BNODE|RAND|ABS|CEIL|FLOOR|ROUND|CONCAT|STRLEN|UCASE|LCASE|ENCODE_FOR_URI|CONTAINS|STRSTARTS|STRENDS|STRBEFORE|STRAFTER|YEAR|MONTH|DAY|HOURS|MINUTES|SECONDS|TIMEZONE|TZ|NOW|UUID|STRUUID|MD5|SHA1|SHA256|SHA384|SHA512|COALESCE|IF|STRLANG|STRDT|ISNUMERIC|SUBSTR|REPLACE|EXISTS|COUNT|SUM|MIN|MAX|AVG|SAMPLE|SEPARATOR|STR)/i,punct:/^(\\*|a|\\.|\\{|\\}|,|\\(|\\)|;|\\[|\\]|\\|\\||&&|=|!=|!|<=|>=|<|>|\\+|-|\\/|\\^\\^|\\?|\\||\\^)/,startSymbol:\"sparql11\",acceptEmpty:!0}},5413:(e,t,n)=>{\"use strict\";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{A:()=>r})},5503:(e,t,n)=>{e.exports=function(){return n(815),{}}},5549:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=Function.prototype.toString;const i=function(e){if(null!=e){try{return r.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"}},5668:(e,t,n)=>{\"use strict\";n.r(t),n.d(t,{default:()=>Zt});var r,i,o,a,s=n(9602),l=function(e,t){if(l.factory(e,t))return l;if(this instanceof l)return s(e).DataTable(t);var n=this,r=void 0===(t=e),o=this.length;return r&&(t={}),this.api=function(){return new i(this)},this.each((function(){var e,a=o>1?Ze({},t,!0):t,u=0,c=this.getAttribute(\"id\"),p=l.defaults,d=s(this);if(\"table\"==this.nodeName.toLowerCase()){a.on&&a.on.options&&lt(d,\"options\",a.on.options),d.trigger(\"options.dt\",a),P(p),k(p.column),O(p,p,!0),O(p.column,p.column,!0),O(p,s.extend(a,ut(d.data())),!0);var f=l.settings;for(u=0,e=f.length;u<e;u++){var h=f[u];if(h.nTable==this||h.nTHead&&h.nTHead.parentNode==this||h.nTFoot&&h.nTFoot.parentNode==this){var g=void 0!==a.bRetrieve?a.bRetrieve:p.bRetrieve,m=void 0!==a.bDestroy?a.bDestroy:p.bDestroy;if(r||g)return h.oInstance;if(m){new l.Api(h).destroy();break}return void Ke(h,0,\"Cannot reinitialise DataTable\",3)}if(h.sTableId==this.id){f.splice(u,1);break}}null!==c&&\"\"!==c||(c=\"DataTables_Table_\"+l.ext._unique++,this.id=c),d.children(\"colgroup\").remove();var v=s.extend(!0,{},l.models.oSettings,{sDestroyWidth:d[0].style.width,sInstance:c,sTableId:c,colgroup:s(\"<colgroup>\").prependTo(this),fastData:function(e,t,n){return K(v,e,t,n)}});v.nTable=this,v.oInit=a,f.push(v),v.api=new i(v),v.oInstance=1===n.length?n:d.dataTable(),P(a),a.aLengthMenu&&!a.iDisplayLength&&(a.iDisplayLength=Array.isArray(a.aLengthMenu[0])?a.aLengthMenu[0][0]:s.isPlainObject(a.aLengthMenu[0])?a.aLengthMenu[0].value:a.aLengthMenu[0]),a=Ze(s.extend(!0,{},p),a),Je(v.oFeatures,a,[\"bPaginate\",\"bLengthChange\",\"bFilter\",\"bSort\",\"bSortMulti\",\"bInfo\",\"bProcessing\",\"bAutoWidth\",\"bSortClasses\",\"bServerSide\",\"bDeferRender\"]),Je(v,a,[\"ajax\",\"fnFormatNumber\",\"sServerMethod\",\"aaSorting\",\"aaSortingFixed\",\"aLengthMenu\",\"sPaginationType\",\"iStateDuration\",\"bSortCellsTop\",\"iTabIndex\",\"sDom\",\"fnStateLoadCallback\",\"fnStateSaveCallback\",\"renderer\",\"searchDelay\",\"rowId\",\"caption\",\"layout\",\"orderDescReverse\",\"orderIndicators\",\"orderHandler\",\"titleRow\",\"typeDetect\",[\"iCookieDuration\",\"iStateDuration\"],[\"oSearch\",\"oPreviousSearch\"],[\"aoSearchCols\",\"aoPreSearchCols\"],[\"iDisplayLength\",\"_iDisplayLength\"]]),Je(v.oScroll,a,[[\"sScrollX\",\"sX\"],[\"sScrollXInner\",\"sXInner\"],[\"sScrollY\",\"sY\"],[\"bScrollCollapse\",\"bCollapse\"]]),Je(v.oLanguage,a,\"fnInfoCallback\"),tt(v,\"aoDrawCallback\",a.fnDrawCallback),tt(v,\"aoStateSaveParams\",a.fnStateSaveParams),tt(v,\"aoStateLoadParams\",a.fnStateLoadParams),tt(v,\"aoStateLoaded\",a.fnStateLoaded),tt(v,\"aoRowCallback\",a.fnRowCallback),tt(v,\"aoRowCreatedCallback\",a.fnCreatedRow),tt(v,\"aoHeaderCallback\",a.fnHeaderCallback),tt(v,\"aoFooterCallback\",a.fnFooterCallback),tt(v,\"aoInitComplete\",a.fnInitComplete),tt(v,\"aoPreDrawCallback\",a.fnPreDrawCallback),v.rowIdFn=ne(a.rowId),a.on&&Object.keys(a.on).forEach((function(e){lt(d,e,a.on[e])})),function(e){if(!l.__browser){var t={};l.__browser=t;var n=s(\"<div/>\").css({position:\"fixed\",top:0,left:-1*window.pageXOffset,height:1,width:1,overflow:\"hidden\"}).append(s(\"<div/>\").css({position:\"absolute\",top:1,left:1,width:100,overflow:\"scroll\"}).append(s(\"<div/>\").css({width:\"100%\",height:10}))).appendTo(\"body\"),r=n.children(),i=r.children();t.barWidth=r[0].offsetWidth-r[0].clientWidth,t.bScrollbarLeft=1!==Math.round(i.offset().left),n.remove()}s.extend(e.oBrowser,l.__browser),e.oScroll.iBarWidth=l.__browser.barWidth}(v);var E=v.oClasses;s.extend(E,l.ext.classes,a.oClasses),d.addClass(E.table),v.oFeatures.bPaginate||(a.iDisplayStart=0),void 0===v.iInitDisplayStart&&(v.iInitDisplayStart=a.iDisplayStart,v._iDisplayStart=a.iDisplayStart);var y=a.iDeferLoading;if(null!==y){v.deferLoading=!0;var b=Array.isArray(y);v._iRecordsDisplay=b?y[0]:y,v._iRecordsTotal=b?y[1]:y}var x=[],T=this.getElementsByTagName(\"thead\"),A=be(v,T[0]);if(a.aoColumns)x=a.aoColumns;else if(A.length)for(u=0,e=A[0].length;u<e;u++)x.push(null);for(u=0,e=x.length;u<e;u++)M(v);!function(e,t,n,r,i){var o,a,l,u,c,p,d,f=e.aoColumns;if(n)for(o=0,a=n.length;o<a;o++)n[o]&&n[o].name&&(f[o].sName=n[o].name);if(t)for(o=t.length-1;o>=0;o--){var h=void 0!==(d=t[o]).target?d.target:void 0!==d.targets?d.targets:d.aTargets;for(Array.isArray(h)||(h=[h]),l=0,u=h.length;l<u;l++){var g=h[l];if(\"number\"==typeof g&&g>=0){for(;f.length<=g;)M(e);i(g,d)}else if(\"number\"==typeof g&&g<0)i(f.length+g,d);else if(\"string\"==typeof g)for(c=0,p=f.length;c<p;c++)\"_all\"===g?i(c,d):-1!==g.indexOf(\":name\")?f[c].sName===g.replace(\":name\",\"\")&&i(c,d):r.forEach((function(e){if(e[c]){var t=s(e[c].cell);g.match(/^[a-z][\\w-]*$/i)&&(g=\".\"+g),t.is(g)&&i(c,d)}}))}}if(n)for(o=0,a=n.length;o<a;o++)i(o,n[o])}(v,a.aoColumnDefs,x,A,(function(e,t){F(v,e,t)}));var S=d.children(\"tbody\").find(\"tr:first-child\").eq(0);if(S.length){var L=function(e,t){return null!==e.getAttribute(\"data-\"+t)?t:null};s(S[0]).children(\"th, td\").each((function(e,t){var n=v.aoColumns[e];if(n||Ke(v,0,\"Incorrect column count\",18),n.mData===e){var r=L(t,\"sort\")||L(t,\"order\"),i=L(t,\"filter\")||L(t,\"search\");null===r&&null===i||(n.mData={_:e+\".display\",sort:null!==r?e+\".@data-\"+r:void 0,type:null!==r?e+\".@data-\"+r:void 0,filter:null!==i?e+\".@data-\"+i:void 0},n._isArrayHost=!0,F(v,e))}}))}tt(v,\"aoDrawCallback\",$e);var N=v.oFeatures;if(a.bStateSave&&(N.bStateSave=!0),void 0===a.aaSorting){var C=v.aaSorting;for(u=0,e=C.length;u<e;u++)C[u][1]=v.aoColumns[u].asSorting[0]}Qe(v),tt(v,\"aoDrawCallback\",(function(){(v.bSorted||\"ssp\"===ot(v)||N.bDeferRender)&&Qe(v)}));var I=d.children(\"caption\");v.caption&&(0===I.length&&(I=s(\"<caption/>\").appendTo(d)),I.html(v.caption)),I.length&&(I[0]._captionSide=I.css(\"caption-side\"),v.captionNode=I[0]),0===T.length&&(T=s(\"<thead/>\").appendTo(d)),v.nTHead=T[0];var _=d.children(\"tbody\");0===_.length&&(_=s(\"<tbody/>\").insertAfter(T)),v.nTBody=_[0];var R=d.children(\"tfoot\");0===R.length&&(R=s(\"<tfoot/>\").appendTo(d)),v.nTFoot=R[0],v.aiDisplay=v.aiDisplayMaster.slice(),v.bInitialised=!0;var w=v.oLanguage;s.extend(!0,w,a.oLanguage),w.sUrl?s.ajax({dataType:\"json\",url:w.sUrl,success:function(e){O(p.oLanguage,e),s.extend(!0,w,e,v.oInit.oLanguage),nt(v,null,\"i18n\",[v],!0),_e(v)},error:function(){Ke(v,0,\"i18n file loading error\",21),_e(v)}}):(nt(v,null,\"i18n\",[v],!0),_e(v))}else Ke(null,0,\"Non-table node initialisation (\"+this.nodeName+\")\",2)})),n=null,this};l.ext=r={builder:\"-source-\",buttons:{},ccContent:{},classes:{},errMode:\"alert\",escape:{attributes:!1},feature:[],features:{},search:[],selector:{cell:[],column:[],row:[]},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{className:{},detect:[],render:{},search:{},order:{}},_unique:0,fnVersionCheck:l.fnVersionCheck,iApiIndex:0,sVersion:l.version},s.extend(r,{afnFiltering:r.search,aTypes:r.type.detect,ofnSearch:r.type.search,oSort:r.type.order,afnSortData:r.order,aoFeatures:r.feature,oStdClasses:r.classes,oPagination:r.pager}),s.extend(l.ext.classes,{container:\"dt-container\",empty:{row:\"dt-empty\"},info:{container:\"dt-info\"},layout:{row:\"dt-layout-row\",cell:\"dt-layout-cell\",tableRow:\"dt-layout-table\",tableCell:\"\",start:\"dt-layout-start\",end:\"dt-layout-end\",full:\"dt-layout-full\"},length:{container:\"dt-length\",select:\"dt-input\"},order:{canAsc:\"dt-orderable-asc\",canDesc:\"dt-orderable-desc\",isAsc:\"dt-ordering-asc\",isDesc:\"dt-ordering-desc\",none:\"dt-orderable-none\",position:\"sorting_\"},processing:{container:\"dt-processing\"},scrolling:{body:\"dt-scroll-body\",container:\"dt-scroll\",footer:{self:\"dt-scroll-foot\",inner:\"dt-scroll-footInner\"},header:{self:\"dt-scroll-head\",inner:\"dt-scroll-headInner\"}},search:{container:\"dt-search\",input:\"dt-input\"},table:\"dataTable\",tbody:{cell:\"\",row:\"\"},thead:{cell:\"\",row:\"\"},tfoot:{cell:\"\",row:\"\"},paging:{active:\"current\",button:\"dt-paging-button\",container:\"dt-paging\",disabled:\"disabled\",nav:\"\"}});var u={},c=/[\\r\\n\\u2028]/g,p=/<([^>]*>)/g,d=Math.pow(2,28),f=/^\\d{2,4}[./-]\\d{1,2}[./-]\\d{1,2}([T ]{1}\\d{1,2}[:.]\\d{2}([.:]\\d{2})?)?$/,h=new RegExp(\"(\\\\\"+[\"/\",\".\",\"*\",\"+\",\"?\",\"|\",\"(\",\")\",\"[\",\"]\",\"{\",\"}\",\"\\\\\",\"$\",\"^\",\"-\"].join(\"|\\\\\")+\")\",\"g\"),g=/['\\u00A0,$£€¥%\\u2009\\u202F\\u20BD\\u20a9\\u20BArfkɃΞ]/gi,m=function(e){return!e||!0===e||\"-\"===e},v=function(e){var t=parseInt(e,10);return!isNaN(t)&&isFinite(e)?t:null},E=function(e,t){return u[t]||(u[t]=new RegExp(Ne(t),\"g\")),\"string\"==typeof e&&\".\"!==t?e.replace(/\\./g,\"\").replace(u[t],\".\"):e},y=function(e,t,n,r){var i=typeof e,o=\"string\"===i;return\"number\"===i||\"bigint\"===i||(!(!r||!m(e))||(t&&o&&(e=E(e,t)),n&&o&&(e=e.replace(g,\"\")),!isNaN(parseFloat(e))&&isFinite(e)))},b=function(e,t,n,r){return!(!r||!m(e))||(\"string\"==typeof e&&e.match(/<(input|select)/i)?null:function(e){return m(e)||\"string\"==typeof e}(e)&&!!y(L(e),t,n,r)||null)},x=function(e,t,n){var r=[],i=0,o=e.length;if(void 0!==n)for(;i<o;i++)e[i]&&e[i][t]&&r.push(e[i][t][n]);else for(;i<o;i++)e[i]&&r.push(e[i][t]);return r},T=function(e,t,n,r){var i=[],o=0,a=t.length;if(void 0!==r)for(;o<a;o++)e[t[o]]&&e[t[o]][n]&&i.push(e[t[o]][n][r]);else for(;o<a;o++)e[t[o]]&&i.push(e[t[o]][n]);return i},A=function(e,t){var n,r=[];void 0===t?(t=0,n=e):(n=t,t=e);for(var i=t;i<n;i++)r.push(i);return r},S=function(e){for(var t=[],n=0,r=e.length;n<r;n++)e[n]&&t.push(e[n]);return t},L=function(e){if(!e||\"string\"!=typeof e)return e;if(e.length>d)throw new Error(\"Exceeded max str len\");var t;e=e.replace(p,\"\");do{t=e,e=e.replace(/<script/i,\"\")}while(e!==t);return t},N=function(e){return Array.isArray(e)&&(e=e.join(\",\")),\"string\"==typeof e?e.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\"):e},C=function(e,t){if(\"string\"!=typeof e)return e;var n=e.normalize?e.normalize(\"NFD\"):e;return n.length!==e.length?(!0===t?e+\" \":\"\")+n.replace(/[\\u0300-\\u036f]/g,\"\"):n},I=function(e){if(Array.from&&Set)return Array.from(new Set(e));if(function(e){if(e.length<2)return!0;for(var t=e.slice().sort(),n=t[0],r=1,i=t.length;r<i;r++){if(t[r]===n)return!1;n=t[r]}return!0}(e))return e.slice();var t,n,r,i=[],o=e.length,a=0;e:for(n=0;n<o;n++){for(t=e[n],r=0;r<a;r++)if(i[r]===t)continue e;i.push(t),a++}return i},_=function(e,t){if(Array.isArray(t))for(var n=0;n<t.length;n++)_(e,t[n]);else e.push(t);return e};function R(e,t){t&&t.split(\" \").forEach((function(t){t&&e.classList.add(t)}))}function w(e){var t,n,r={};s.each(e,(function(i){(t=i.match(/^([^A-Z]+?)([A-Z])/))&&-1!==\"a aa ai ao as b fn i m o s \".indexOf(t[1]+\" \")&&(n=i.replace(t[0],t[2].toLowerCase()),r[n]=i,\"o\"===t[1]&&w(e[i]))})),e._hungarianMap=r}function O(e,t,n){var r;e._hungarianMap||w(e),s.each(t,(function(i){void 0===(r=e._hungarianMap[i])||!n&&void 0!==t[r]||(\"o\"===r.charAt(0)?(t[r]||(t[r]={}),s.extend(!0,t[r],t[i]),O(e[r],t[r],n)):t[r]=t[i])}))}l.util={diacritics:function(e,t){if(\"function\"!==typeof e)return C(e,t);C=e},debounce:function(e,t){var n;return function(){var r=this,i=arguments;clearTimeout(n),n=setTimeout((function(){e.apply(r,i)}),t||250)}},throttle:function(e,t){var n,r,i=void 0!==t?t:200;return function(){var t=this,o=+new Date,a=arguments;n&&o<n+i?(clearTimeout(r),r=setTimeout((function(){n=void 0,e.apply(t,a)}),i)):(n=o,e.apply(t,a))}},escapeRegex:function(e){return e.replace(h,\"\\\\$1\")},set:function(e){if(s.isPlainObject(e))return l.util.set(e._);if(null===e)return function(){};if(\"function\"==typeof e)return function(t,n,r){e(t,\"set\",n,r)};if(\"string\"!=typeof e||-1===e.indexOf(\".\")&&-1===e.indexOf(\"[\")&&-1===e.indexOf(\"(\"))return function(t,n){t[e]=n};var t=function(e,n,r){for(var i,o,a,s,l,u=te(r),c=u[u.length-1],p=0,d=u.length-1;p<d;p++){if(\"__proto__\"===u[p]||\"constructor\"===u[p])throw new Error(\"Cannot set prototype values\");if(o=u[p].match(Z),a=u[p].match(ee),o){if(u[p]=u[p].replace(Z,\"\"),e[u[p]]=[],(i=u.slice()).splice(0,p+1),l=i.join(\".\"),Array.isArray(n))for(var f=0,h=n.length;f<h;f++)t(s={},n[f],l),e[u[p]].push(s);else e[u[p]]=n;return}a&&(u[p]=u[p].replace(ee,\"\"),e=e[u[p]](n)),null!==e[u[p]]&&void 0!==e[u[p]]||(e[u[p]]={}),e=e[u[p]]}c.match(ee)?e=e[c.replace(ee,\"\")](n):e[c.replace(Z,\"\")]=n};return function(n,r){return t(n,r,e)}},get:function(e){if(s.isPlainObject(e)){var t={};return s.each(e,(function(e,n){n&&(t[e]=l.util.get(n))})),function(e,n,r,i){var o=t[n]||t._;return void 0!==o?o(e,n,r,i):e}}if(null===e)return function(e){return e};if(\"function\"==typeof e)return function(t,n,r,i){return e(t,n,r,i)};if(\"string\"!=typeof e||-1===e.indexOf(\".\")&&-1===e.indexOf(\"[\")&&-1===e.indexOf(\"(\"))return function(t){return t[e]};var n=function(e,t,r){var i,o,a,s;if(\"\"!==r)for(var l=te(r),u=0,c=l.length;u<c;u++){if(i=l[u].match(Z),o=l[u].match(ee),i){if(l[u]=l[u].replace(Z,\"\"),\"\"!==l[u]&&(e=e[l[u]]),a=[],l.splice(0,u+1),s=l.join(\".\"),Array.isArray(e))for(var p=0,d=e.length;p<d;p++)a.push(n(e[p],t,s));var f=i[0].substring(1,i[0].length-1);e=\"\"===f?a:a.join(f);break}if(o)l[u]=l[u].replace(ee,\"\"),e=e[l[u]]();else{if(null===e||null===e[l[u]])return null;if(void 0===e||void 0===e[l[u]])return;e=e[l[u]]}}return e};return function(t,r){return n(t,r,e)}},stripHtml:function(e){var t=typeof e;if(\"function\"!==t)return\"string\"===t?L(e):e;L=e},escapeHtml:function(e){var t=typeof e;if(\"function\"!==t)return\"string\"===t||Array.isArray(e)?N(e):e;N=e},unique:I};var D=function(e,t,n){void 0!==e[t]&&(e[n]=e[t])};function P(e){D(e,\"ordering\",\"bSort\"),D(e,\"orderMulti\",\"bSortMulti\"),D(e,\"orderClasses\",\"bSortClasses\"),D(e,\"orderCellsTop\",\"bSortCellsTop\"),D(e,\"order\",\"aaSorting\"),D(e,\"orderFixed\",\"aaSortingFixed\"),D(e,\"paging\",\"bPaginate\"),D(e,\"pagingType\",\"sPaginationType\"),D(e,\"pageLength\",\"iDisplayLength\"),D(e,\"searching\",\"bFilter\"),\"boolean\"==typeof e.sScrollX&&(e.sScrollX=e.sScrollX?\"100%\":\"\"),\"boolean\"==typeof e.scrollX&&(e.scrollX=e.scrollX?\"100%\":\"\"),\"object\"==typeof e.bSort?(e.orderIndicators=void 0===e.bSort.indicators||e.bSort.indicators,e.orderHandler=void 0===e.bSort.handler||e.bSort.handler,e.bSort=!0):!1===e.bSort?(e.orderIndicators=!1,e.orderHandler=!1):!0===e.bSort&&(e.orderIndicators=!0,e.orderHandler=!0),\"boolean\"==typeof e.bSortCellsTop&&(e.titleRow=e.bSortCellsTop);var t=e.aoSearchCols;if(t)for(var n=0,r=t.length;n<r;n++)t[n]&&O(l.models.oSearch,t[n]);e.serverSide&&!e.searchDelay&&(e.searchDelay=400)}function k(e){D(e,\"orderable\",\"bSortable\"),D(e,\"orderData\",\"aDataSort\"),D(e,\"orderSequence\",\"asSorting\"),D(e,\"orderDataType\",\"sortDataType\");var t=e.aDataSort;\"number\"!=typeof t||Array.isArray(t)||(e.aDataSort=[t])}function M(e){var t=l.defaults.column,n=e.aoColumns.length,r=s.extend({},l.models.oColumn,t,{aDataSort:t.aDataSort?t.aDataSort:[n],mData:t.mData?t.mData:n,idx:n,searchFixed:{},colEl:s(\"<col>\").attr(\"data-dt-column\",n)});e.aoColumns.push(r);var i=e.aoPreSearchCols;i[n]=s.extend({},l.models.oSearch,i[n])}function F(e,t,n){var r=e.aoColumns[t];if(null!=n){k(n),O(l.defaults.column,n,!0),void 0===n.mDataProp||n.mData||(n.mData=n.mDataProp),n.sType&&(r._sManualType=n.sType),n.className&&!n.sClass&&(n.sClass=n.className);var i=r.sClass;s.extend(r,n),Je(r,n,\"sWidth\",\"sWidthOrig\"),i!==r.sClass&&(r.sClass=i+\" \"+r.sClass),void 0!==n.iDataSort&&(r.aDataSort=[n.iDataSort]),Je(r,n,\"aDataSort\")}var o=r.mData,a=ne(o);if(r.mRender&&Array.isArray(r.mRender)){var u=r.mRender.slice(),c=u.shift();r.mRender=l.render[c].apply(window,u)}r._render=r.mRender?ne(r.mRender):null;var p=function(e){return\"string\"==typeof e&&-1!==e.indexOf(\"@\")};r._bAttrSrc=s.isPlainObject(o)&&(p(o.sort)||p(o.type)||p(o.filter)),r._setter=null,r.fnGetData=function(e,t,n){var i=a(e,t,void 0,n);return r._render&&t?r._render(i,t,e,n):i},r.fnSetData=function(e,t,n){return re(o)(e,t,n)},\"number\"==typeof o||r._isArrayHost||(e._rowReadObject=!0),e.oFeatures.bSort||(r.bSortable=!1)}function B(e){!function(e){if(!e.oFeatures.bAutoWidth)return;var t,n,i,o,a=e.nTable,u=e.aoColumns,c=e.oScroll,p=c.sY,d=c.sX,f=c.sXInner,h=H(e,\"bVisible\"),g=a.getAttribute(\"width\"),m=a.parentNode,v=a.style.width,E=Fe(e);if(E===e.containerWidth)return!1;e.containerWidth=E,v||g||(a.style.width=\"100%\",v=\"100%\");v&&-1!==v.indexOf(\"%\")&&(g=v);nt(e,null,\"column-calc\",{visible:h},!1);var y=s(a.cloneNode()).css(\"visibility\",\"hidden\").css(\"margin\",0).removeAttr(\"id\");y.append(\"<tbody/>\"),y.append(s(e.nTHead).clone()).append(s(e.nTFoot).clone()),y.find(\"tfoot th, tfoot td\").css(\"width\",\"\"),y.find(\"thead th, thead td\").each((function(){var t=Q(e,this,!0,!1);t?(this.style.width=t,d&&(this.style.minWidth=t,s(this).append(s(\"<div/>\").css({width:t,margin:0,padding:0,border:0,height:1})))):this.style.width=\"\"}));var b=[];for(t=0;t<h.length;t++)b.push(Be(e,h[t]));if(b.length)for(t=0;t<b[0].length;t++){var x=s(\"<tr/>\").appendTo(y.find(\"tbody\"));for(n=0;n<h.length;n++){o=h[n],i=u[o];var T=b[n][t]||\"\",A=r.type.className[i.sType],S=i.sContentPadding||(d?\"-\":\"\"),L=T+S,N=-1===T.indexOf(\"<\")?document.createTextNode(L):L;s(\"<td/>\").addClass(A).addClass(i.sClass).append(N).appendTo(x)}}s(\"[name]\",y).removeAttr(\"name\");var C=s(\"<div/>\").css(d||p?{position:\"absolute\",top:0,left:0,height:1,right:0,overflow:\"hidden\"}:{}).append(y).appendTo(m);d&&f?y.width(f):d?(y.css(\"width\",\"auto\"),y.removeAttr(\"width\"),y.outerWidth()<m.clientWidth&&g&&y.outerWidth(m.clientWidth)):p?y.outerWidth(m.clientWidth):g&&y.outerWidth(g);var I=0,_=y.find(\"tbody tr\").eq(0).children();for(t=0;t<h.length;t++){var R=_[t].getBoundingClientRect().width;I+=R,u[h[t]].sWidth=Ge(R)}a.style.width=Ge(I),C.remove(),g&&(a.style.width=Ge(g));if((g||d)&&!e._reszEvt){var w=l.util.throttle((function(){var t=Fe(e);e.bDestroying||0===t||B(e)}));if(window.ResizeObserver){var O=s(e.nTableWrapper).is(\":visible\"),D=s(\"<div>\").css({width:\"100%\",height:0}).addClass(\"dt-autosize\").appendTo(e.nTableWrapper);e.resizeObserver=new ResizeObserver((function(e){O?O=!1:w()})),e.resizeObserver.observe(D[0])}else s(window).on(\"resize.DT-\"+e.sInstance,w);e._reszEvt=!0}}(e),function(e){for(var t=e.aoColumns,n=0;n<t.length;n++){var r=Q(e,[n],!1,!1);t[n].colEl.css(\"width\",r),e.oScroll.sX&&t[n].colEl.css(\"min-width\",r)}}(e);var t=e.oScroll;\"\"===t.sY&&\"\"===t.sX||Me(e),nt(e,null,\"column-sizing\",[e])}function G(e,t){var n=H(e,\"bVisible\");return\"number\"==typeof n[t]?n[t]:null}function j(e,t){var n=H(e,\"bVisible\").indexOf(t);return-1!==n?n:null}function U(e){var t=e.aoHeader,n=e.aoColumns,r=0;if(t.length)for(var i=0,o=t[0].length;i<o;i++)n[i].bVisible&&\"none\"!==s(t[0][i].cell).css(\"display\")&&r++;return r}function H(e,t){var n=[];return e.aoColumns.map((function(e,r){e[t]&&n.push(r)})),n}function q(e,t){return!0===t?e._name:t}function V(e){var t,n,i,o,a,s,u,c,p,d=e.aoColumns,f=e.aoData,h=l.ext.type.detect;for(t=0,n=d.length;t<n;t++){if(p=[],!(u=d[t]).sType&&u._sManualType)u.sType=u._sManualType;else if(!u.sType){if(!e.typeDetect)return;for(i=0,o=h.length;i<o;i++){var g=h[i],v=g.oneOf,E=g.allOf||g,y=g.init,b=!1;if(c=null,y&&(c=q(g,y(e,u,t)))){u.sType=c;break}for(a=0,s=f.length;a<s;a++)if(f[a]){if(void 0===p[a]&&(p[a]=K(e,a,t,\"type\")),v&&!b&&(b=q(g,v(p[a],e))),!(c=q(g,E(p[a],e)))&&i!==h.length-3)break;if(\"html\"===c&&!m(p[a]))break}if(v&&b&&c||!v&&c){u.sType=c;break}}u.sType||(u.sType=\"string\")}var x=r.type.className[u.sType];x&&(z(e.aoHeader,t,x),z(e.aoFooter,t,x));var T=r.type.render[u.sType];T&&!u._render&&(u._render=l.util.get(T),W(e,t))}}function W(e,t){for(var n=e.aoData,r=0;r<n.length;r++)if(n[r].nTr){var i=K(e,r,t,\"display\");n[r].displayData[t]=i,J(n[r].anCells[t],i)}}function z(e,t,n){e.forEach((function(e){e[t]&&e[t].unique&&R(e[t].cell,n)}))}function Q(e,t,n,r){Array.isArray(t)||(t=X(t));for(var i,o=0,a=e.aoColumns,s=0,l=t.length;s<l;s++){var u=a[t[s]],c=n?u.sWidthOrig:u.sWidth;if(r||!1!==u.bVisible){if(null==c)return null;if(\"number\"==typeof c)i=\"px\",o+=c;else{var p=c.match(/([\\d\\.]+)([^\\d]*)/);p&&(o+=1*p[1],i=3===p.length?p[2]:\"px\")}}}return o+i}function X(e){var t=s(e).closest(\"[data-dt-column]\").attr(\"data-dt-column\");return t?t.split(\",\").map((function(e){return 1*e})):[]}function $(e,t,n,r){var i=e.aoData.length,o=s.extend(!0,{},l.models.oRow,{src:n?\"dom\":\"data\",idx:i});o._aData=t,e.aoData.push(o);for(var a=e.aoColumns,u=0,c=a.length;u<c;u++)a[u].sType=null;e.aiDisplayMaster.push(i);var p=e.rowIdFn(t);return void 0!==p&&(e.aIds[p]=o),!n&&e.oFeatures.bDeferRender||ue(e,i,n,r),i}function Y(e,t){var n;return t instanceof s||(t=s(t)),t.map((function(t,r){return n=se(e,r),$(e,n.data,r,n.cells)}))}function K(e,t,n,r){\"search\"===r?r=\"filter\":\"order\"===r&&(r=\"sort\");var i=e.aoData[t];if(i){var o=e.iDraw,a=e.aoColumns[n],s=i._aData,u=a.sDefaultContent,c=a.fnGetData(s,r,{settings:e,row:t,col:n});if(\"display\"!==r&&c&&\"object\"==typeof c&&c.nodeName&&(c=c.innerHTML),void 0===c)return e.iDrawError!=o&&null===u&&(Ke(e,0,\"Requested unknown parameter \"+(\"function\"==typeof a.mData?\"{function}\":\"'\"+a.mData+\"'\")+\" for row \"+t+\", column \"+n,4),e.iDrawError=o),u;if(c!==s&&null!==c||null===u||void 0===r){if(\"function\"==typeof c)return c.call(s)}else c=u;if(null===c&&\"display\"===r)return\"\";if(\"filter\"===r){var p=l.ext.type.search;p[a.sType]&&(c=p[a.sType](c))}return c}}function J(e,t){t&&\"object\"==typeof t&&t.nodeName?s(e).empty().append(t):e.innerHTML=t}var Z=/\\[.*?\\]$/,ee=/\\(\\)$/;function te(e){return(e.match(/(\\\\.|[^.])+/g)||[\"\"]).map((function(e){return e.replace(/\\\\\\./g,\".\")}))}var ne=l.util.get,re=l.util.set;function ie(e){return x(e.aoData,\"_aData\")}function oe(e){e.aoData.length=0,e.aiDisplayMaster.length=0,e.aiDisplay.length=0,e.aIds={}}function ae(e,t,n,r){var i,o,a=e.aoData[t];if(a._aSortData=null,a._aFilterData=null,a.displayData=null,\"dom\"!==n&&(n&&\"auto\"!==n||\"dom\"!==a.src)){var s=a.anCells,l=le(e,t);if(s)if(void 0!==r)J(s[r],l[r]);else for(i=0,o=s.length;i<o;i++)J(s[i],l[i])}else a._aData=se(e,a,r,void 0===r?void 0:a._aData).data;var u=e.aoColumns;if(void 0!==r)u[r].sType=null,u[r].wideStrings=null;else{for(i=0,o=u.length;i<o;i++)u[i].sType=null,u[i].wideStrings=null;ce(e,a)}}function se(e,t,n,r){var i,o,a,s=[],l=t.firstChild,u=0,c=e.aoColumns,p=e._rowReadObject;r=void 0!==r?r:p?{}:[];var d=function(e,t){if(\"string\"==typeof e){var n=e.indexOf(\"@\");if(-1!==n){var i=e.substring(n+1);re(e)(r,t.getAttribute(i))}}},f=function(e){void 0!==n&&n!==u||(o=c[u],a=e.innerHTML.trim(),o&&o._bAttrSrc?(re(o.mData._)(r,a),d(o.mData.sort,e),d(o.mData.type,e),d(o.mData.filter,e)):p?(o._setter||(o._setter=re(o.mData)),o._setter(r,a)):r[u]=a);u++};if(l)for(;l;)\"TD\"!=(i=l.nodeName.toUpperCase())&&\"TH\"!=i||(f(l),s.push(l)),l=l.nextSibling;else for(var h=0,g=(s=t.anCells).length;h<g;h++)f(s[h]);var m=t.firstChild?t:t.nTr;if(m){var v=m.getAttribute(\"id\");v&&re(e.rowId)(r,v)}return{data:r,cells:s}}function le(e,t){var n=e.aoData[t],r=e.aoColumns;if(!n.displayData){n.displayData=[];for(var i=0,o=r.length;i<o;i++)n.displayData.push(K(e,t,i,\"display\"))}return n.displayData}function ue(e,t,n,r){var i,o,a,l,u,c,p=e.aoData[t],d=p._aData,f=[],h=e.oClasses.tbody.row;if(null===p.nTr){for(i=n||document.createElement(\"tr\"),p.nTr=i,p.anCells=f,R(i,h),i._DT_RowIndex=t,ce(e,p),l=0,u=e.aoColumns.length;l<u;l++){a=e.aoColumns[l],(o=(c=!n||!r[l])?document.createElement(a.sCellType):r[l])||Ke(e,0,\"Incorrect column count\",18),o._DT_CellIndex={row:t,column:l},f.push(o);var g=le(e,t);!c&&(!a.mRender&&a.mData===l||s.isPlainObject(a.mData)&&a.mData._===l+\".display\")||J(o,g[l]),R(o,a.sClass),a.bVisible&&c?i.appendChild(o):a.bVisible||c||o.parentNode.removeChild(o),a.fnCreatedCell&&a.fnCreatedCell.call(e.oInstance,o,K(e,t,l),d,t,l)}nt(e,\"aoRowCreatedCallback\",\"row-created\",[i,d,t,f])}else R(p.nTr,h)}function ce(e,t){var n=t.nTr,r=t._aData;if(n){var i=e.rowIdFn(r);if(i&&(n.id=i),r.DT_RowClass){var o=r.DT_RowClass.split(\" \");t.__rowc=t.__rowc?I(t.__rowc.concat(o)):o,s(n).removeClass(t.__rowc.join(\" \")).addClass(r.DT_RowClass)}r.DT_RowAttr&&s(n).attr(r.DT_RowAttr),r.DT_RowData&&s(n).data(r.DT_RowData)}}function pe(e,t){var n,r,i,o=e.oClasses,a=e.aoColumns,l=\"header\"===t?e.nTHead:e.nTFoot,u=\"header\"===t?\"sTitle\":t;if(l){if((\"header\"===t||x(e.aoColumns,u).join(\"\"))&&((i=s(\"tr\",l)).length||(i=s(\"<tr/>\").appendTo(l)),1===i.length)){var c=0;for(s(\"td, th\",i).each((function(){c+=this.colSpan})),n=c,r=a.length;n<r;n++)s(\"<th/>\").html(a[n][u]||\"\").appendTo(i)}var p=be(e,l,!0);\"header\"===t?(e.aoHeader=p,s(\"tr\",l).addClass(o.thead.row)):(e.aoFooter=p,s(\"tr\",l).addClass(o.tfoot.row)),s(l).children(\"tr\").children(\"th, td\").each((function(){it(e,t)(e,s(this),o)}))}}function de(e,t,n){var r,i,o,a,l,u=[],c=[],p=e.aoColumns,d=p.length;if(t){for(n||(n=A(d).filter((function(e){return p[e].bVisible}))),r=0;r<t.length;r++)u[r]=t[r].slice().filter((function(e,t){return n.includes(t)})),c.push([]);for(r=0;r<u.length;r++)for(i=0;i<u[r].length;i++)if(a=1,l=1,void 0===c[r][i]){for(o=u[r][i].cell;void 0!==u[r+a]&&u[r][i].cell==u[r+a][i].cell;)c[r+a][i]=null,a++;for(;void 0!==u[r][i+l]&&u[r][i].cell==u[r][i+l].cell;){for(var f=0;f<a;f++)c[r+f][i+l]=null;l++}var h=s(\"span.dt-column-title\",o);c[r][i]={cell:o,colspan:l,rowspan:a,title:h.length?h.html():s(o).html()}}return c}}function fe(e,t){for(var n,r,i=de(e,t),o=0;o<t.length;o++){if(n=t[o].row)for(;r=n.firstChild;)n.removeChild(r);for(var a=0;a<i[o].length;a++){var l=i[o][a];l&&s(l.cell).appendTo(n).attr(\"rowspan\",l.rowspan).attr(\"colspan\",l.colspan)}}}function he(e,t){if(function(e){var t=\"ssp\"==ot(e),n=e.iInitDisplayStart;void 0!==n&&-1!==n&&(e._iDisplayStart=t?n:n>=e.fnRecordsDisplay()?0:n,e.iInitDisplayStart=-1)}(e),-1===nt(e,\"aoPreDrawCallback\",\"preDraw\",[e]).indexOf(!1)){var n,i=[],o=0,a=\"ssp\"==ot(e),l=e.aiDisplay,u=e._iDisplayStart,c=e.fnDisplayEnd(),p=e.aoColumns,d=s(e.nTBody);if(e.bDrawing=!0,e.deferLoading)e.deferLoading=!1,e.iDraw++,De(e,!1);else if(a){if(!e.bDestroying&&!t)return 0===e.iDraw&&d.empty().append(me(e)),(n=e).iDraw++,De(n,!0),void xe(n,function(e){var t=e.aoColumns,n=e.oFeatures,r=e.oPreviousSearch,i=e.aoPreSearchCols,o=function(e,n){return\"function\"==typeof t[e][n]?\"function\":t[e][n]};return{draw:e.iDraw,columns:t.map((function(e,t){return{data:o(t,\"mData\"),name:e.sName,searchable:e.bSearchable,orderable:e.bSortable,search:{value:i[t].search,regex:i[t].regex,fixed:Object.keys(e.searchFixed).map((function(t){return{name:t,term:\"function\"!=typeof e.searchFixed[t]?e.searchFixed[t].toString():\"function\"}}))}}})),order:Ve(e).map((function(e){return{column:e.col,dir:e.dir,name:o(e.col,\"sName\")}})),start:e._iDisplayStart,length:n.bPaginate?e._iDisplayLength:-1,search:{value:r.search,regex:r.regex,fixed:Object.keys(e.searchFixed).map((function(t){return{name:t,term:\"function\"!=typeof e.searchFixed[t]?e.searchFixed[t].toString():\"function\"}}))}}}(n),(function(e){!function(e,t){var n=Te(e,t),r=Ae(e,\"draw\",t),i=Ae(e,\"recordsTotal\",t),o=Ae(e,\"recordsFiltered\",t);if(void 0!==r){if(1*r<e.iDraw)return;e.iDraw=1*r}n||(n=[]),oe(e),e._iRecordsTotal=parseInt(i,10),e._iRecordsDisplay=parseInt(o,10);for(var a=0,s=n.length;a<s;a++)$(e,n[a]);e.aiDisplay=e.aiDisplayMaster.slice(),V(e),he(e,!0),Re(e),De(e,!1)}(n,e)}))}else e.iDraw++;if(0!==l.length)for(var f=a?0:u,h=a?e.aoData.length:c,g=f;g<h;g++){var m=l[g],v=e.aoData[m];if(null!==v){null===v.nTr&&ue(e,m);for(var E=v.nTr,y=0;y<p.length;y++){var b=p[y],x=v.anCells[y];R(x,r.type.className[b.sType]),R(x,e.oClasses.tbody.cell)}nt(e,\"aoRowCallback\",null,[E,v._aData,o,g,m]),i.push(E),o++}}else i[0]=me(e);nt(e,\"aoHeaderCallback\",\"header\",[s(e.nTHead).children(\"tr\")[0],ie(e),u,c,l]),nt(e,\"aoFooterCallback\",\"footer\",[s(e.nTFoot).children(\"tr\")[0],ie(e),u,c,l]),d[0].replaceChildren?d[0].replaceChildren.apply(d[0],i):(d.children().detach(),d.append(s(i))),s(e.nTableWrapper).toggleClass(\"dt-empty-footer\",0===s(\"tr\",e.nTFoot).length),nt(e,\"aoDrawCallback\",\"draw\",[e],!0),e.bSorted=!1,e.bFiltered=!1,e.bDrawing=!1}else De(e,!1)}function ge(e,t,n){var r=e.oFeatures,i=r.bSort,o=r.bFilter;void 0!==n&&!0!==n||(V(e),i&&We(e),o?Se(e,e.oPreviousSearch):e.aiDisplay=e.aiDisplayMaster.slice()),!0!==t&&(e._iDisplayStart=0),e._drawHold=t,he(e),e.api.one(\"draw\",(function(){e._drawHold=!1}))}function me(e){var t=e.oLanguage,n=t.sZeroRecords,r=ot(e);return\"ssp\"!==r&&\"ajax\"!==r||e.json?t.sEmptyTable&&0===e.fnRecordsTotal()&&(n=t.sEmptyTable):n=t.sLoadingRecords,s(\"<tr/>\").append(s(\"<td />\",{colSpan:U(e),class:e.oClasses.empty.row}).html(n))[0]}function ve(e,t,n){var r=[];s.each(t,(function(e,t){if(null!==t){var i=e.match(/^([a-z]+)([0-9]*)([A-Za-z]*)$/),o=i[2]?1*i[2]:0,a=i[3]?i[3].toLowerCase():\"full\";if(i[1]===n)!function e(t,n,r){if(Array.isArray(r))for(var i=0;i<r.length;i++)e(t,n,r[i]);else{var o=t[n];s.isPlainObject(r)?r.features?(r.rowId&&(t.id=r.rowId),r.rowClass&&(t.className=r.rowClass),o.id=r.id,o.className=r.className,e(t,n,r.features)):Object.keys(r).map((function(e){o.contents.push({feature:e,opts:r[e]})})):o.contents.push(r)}}(function(e,t,n){for(var r,i=0;i<e.length;i++)if((r=e[i]).rowNum===t&&(\"full\"===n&&r.full||(\"start\"===n||\"end\"===n)&&(r.start||r.end)))return r[n]||(r[n]={contents:[]}),r;return(r={rowNum:t})[n]={contents:[]},e.push(r),r}(r,o,a),a,t)}})),r.sort((function(e,t){var r=e.rowNum,i=t.rowNum;if(r===i){var o=e.full&&!t.full?-1:1;return\"bottom\"===n?-1*o:o}return i-r})),\"bottom\"===n&&r.reverse();for(var i=0;i<r.length;i++)delete r[i].rowNum,Ee(e,r[i]);return r}function Ee(e,t){var n=function(t,n){return r.features[t]||Ke(e,0,\"Unknown feature: \"+t),r.features[t].apply(this,[e,n])},i=function(r){if(t[r])for(var i=t[r].contents,o=0,a=i.length;o<a;o++)if(i[o])if(\"string\"==typeof i[o])i[o]=n(i[o],null);else if(s.isPlainObject(i[o]))i[o]=n(i[o].feature,i[o].opts);else if(\"function\"==typeof i[o].node)i[o]=i[o].node(e);else if(\"function\"==typeof i[o]){var l=i[o](e);i[o]=\"function\"==typeof l.node?l.node():l}};i(\"start\"),i(\"end\"),i(\"full\")}function ye(e){var t=e.oClasses,n=s(e.nTable),r=s(\"<div/>\").attr({id:e.sTableId+\"_wrapper\",class:t.container}).insertBefore(n);if(e.nTableWrapper=r[0],e.sDom)!function(e,t,n){for(var r,i,o,a,u,c=t.match(/(\".*?\")|('.*?')|./g),p=0;p<c.length;p++){if(r=null,\"<\"==(i=c[p])){if(o=s(\"<div/>\"),\"'\"==(a=c[p+1])[0]||'\"'==a[0]){u=a.replace(/['\"]/g,\"\");var d,f=\"\";if(-1!=u.indexOf(\".\")){var h=u.split(\".\");f=h[0],d=h[1]}else\"#\"==u[0]?f=u:d=u;o.attr(\"id\",f.substring(1)).addClass(d),p++}n.append(o),n=o}else\">\"==i?n=n.parent():\"t\"==i?r=ke(e):l.ext.feature.forEach((function(t){i==t.cFeature&&(r=t.fnInit(e))}));r&&n.append(r)}}(e,e.sDom,r);else{var i=ve(e,e.layout,\"top\"),o=ve(e,e.layout,\"bottom\"),a=it(e,\"layout\");i.forEach((function(t){a(e,r,t)})),a(e,r,{full:{table:!0,contents:[ke(e)]}}),o.forEach((function(t){a(e,r,t)}))}!function(e){var t=e.nTable,n=\"\"!==e.oScroll.sX||\"\"!==e.oScroll.sY;if(e.oFeatures.bProcessing){var r=s(\"<div/>\",{id:e.sTableId+\"_processing\",class:e.oClasses.processing.container,role:\"status\"}).html(e.oLanguage.sProcessing).append(\"<div><div></div><div></div><div></div><div></div></div>\");n?r.prependTo(s(\"div.dt-scroll\",e.nTableWrapper)):r.insertBefore(t),s(t).on(\"processing.dt.DT\",(function(e,t,n){r.css(\"display\",n?\"block\":\"none\")}))}}(e)}function be(e,t,n){var r,i,o,a,l,u,c,p,d,f,h=e.aoColumns,g=s(t).children(\"tr\"),m=e.titleRow,v=t&&\"thead\"===t.nodeName.toLowerCase(),E=[],y=function(e,t,n){for(var r=e[t];r[n];)n++;return n};for(o=0,u=g.length;o<u;o++)E.push([]);for(o=0,u=g.length;o<u;o++)for(0,i=(r=g[o]).firstChild;i;){if(\"TD\"==i.nodeName.toUpperCase()||\"TH\"==i.nodeName.toUpperCase()){var b=[],x=s(i);if(p=(p=1*i.getAttribute(\"colspan\"))&&0!==p&&1!==p?p:1,d=(d=1*i.getAttribute(\"rowspan\"))&&0!==d&&1!==d?d:1,c=y(E,o,0),f=1===p,n){if(f){F(e,c,ut(x.data()));var T=h[c],A=i.getAttribute(\"width\")||null,S=i.style.width.match(/width:\\s*(\\d+[pxem%]+)/);S&&(A=S[1]),T.sWidthOrig=T.sWidth||A,v?(null===T.sTitle||T.autoTitle||(!0===m&&0===o||!1===m&&o===g.length-1||m===o||null===m)&&(i.innerHTML=T.sTitle),!T.sTitle&&f&&(T.sTitle=L(i.innerHTML),T.autoTitle=!0)):T.footer&&(i.innerHTML=T.footer),T.ariaTitle||(T.ariaTitle=x.attr(\"aria-label\")||T.sTitle),T.className&&x.addClass(T.className)}0===s(\"span.dt-column-title\",i).length&&s(\"<span>\").addClass(\"dt-column-title\").append(i.childNodes).appendTo(i),e.orderIndicators&&v&&0!==x.filter(\":not([data-dt-order=disable])\").length&&0!==x.parent(\":not([data-dt-order=disable])\").length&&0===s(\"span.dt-column-order\",i).length&&s(\"<span>\").addClass(\"dt-column-order\").appendTo(i);var N=v?\"header\":\"footer\";0===s(\"span.dt-column-\"+N,i).length&&s(\"<div>\").addClass(\"dt-column-\"+N).append(i.childNodes).appendTo(i)}for(l=0;l<p;l++){for(a=0;a<d;a++)E[o+a][c+l]={cell:i,unique:f},E[o+a].row=r;b.push(c+l)}i.setAttribute(\"data-dt-column\",I(b).join(\",\"))}i=i.nextSibling}return E}function xe(e,t,n){var r,i=e.ajax,o=e.oInstance,a=function(t){var r=e.jqXHR?e.jqXHR.status:null;(null===t||\"number\"==typeof r&&204==r)&&Te(e,t={},[]);var i=t.error||t.sError;if(i&&Ke(e,0,i),t.d&&\"string\"==typeof t.d)try{t=JSON.parse(t.d)}catch(e){}e.json=t,nt(e,null,\"xhr\",[e,t,e.jqXHR],!0),n(t)};if(s.isPlainObject(i)&&i.data){var l=\"function\"==typeof(r=i.data)?r(t,e):r;t=\"function\"==typeof r&&l?l:s.extend(!0,t,l),delete i.data}var u={url:\"string\"==typeof i?i:\"\",data:t,success:a,dataType:\"json\",cache:!1,type:e.sServerMethod,error:function(t,n){-1===nt(e,null,\"xhr\",[e,null,e.jqXHR],!0).indexOf(!0)&&(\"parsererror\"==n?Ke(e,0,\"Invalid JSON response\",1):4===t.readyState&&Ke(e,0,\"Ajax error\",7)),De(e,!1)}};if(s.isPlainObject(i)&&s.extend(u,i),e.oAjaxData=t,nt(e,null,\"preXhr\",[e,t,u],!0),\"json\"===u.submitAs&&\"object\"==typeof t&&(u.data=JSON.stringify(t)),\"function\"==typeof i)e.jqXHR=i.call(o,t,a,e);else if(\"\"===i.url){var c={};Te(e,c,[]),a(c)}else e.jqXHR=s.ajax(u);r&&(i.data=r)}function Te(e,t,n){var r=\"data\";if(s.isPlainObject(e.ajax)&&void 0!==e.ajax.dataSrc){var i=e.ajax.dataSrc;\"string\"==typeof i||\"function\"==typeof i?r=i:void 0!==i.data&&(r=i.data)}if(!n)return\"data\"===r?t.aaData||t[r]:\"\"!==r?ne(r)(t):t;re(r)(t,n)}function Ae(e,t,n){var r=s.isPlainObject(e.ajax)?e.ajax.dataSrc:null;if(r&&r[t])return ne(r[t])(n);var i=\"\";return\"draw\"===t?i=\"sEcho\":\"recordsTotal\"===t?i=\"iTotalRecords\":\"recordsFiltered\"===t&&(i=\"iTotalDisplayRecords\"),void 0!==n[i]?n[i]:n[t]}function Se(e,t){var n=e.aoPreSearchCols;if(\"ssp\"!=ot(e)){!function(e){for(var t,n,r,i,o,a=e.aoColumns,s=e.aoData,l=!1,u=0;u<s.length;u++)if(s[u]&&!(o=s[u])._aFilterData){for(r=[],t=0,n=a.length;t<n;t++)a[t].bSearchable?(null===(i=K(e,u,t,\"filter\"))&&(i=\"\"),\"string\"!=typeof i&&i.toString&&(i=i.toString())):i=\"\",i.indexOf&&-1!==i.indexOf(\"&\")&&(Ce.innerHTML=i,i=Ie?Ce.textContent:Ce.innerText),i.replace&&(i=i.replace(/[\\r\\n\\u2028]/g,\"\")),r.push(i);o._aFilterData=r,o._sFilterRow=r.join(\"  \"),l=!0}}(e),e.aiDisplay=e.aiDisplayMaster.slice(),Le(e.aiDisplay,e,t.search,t),s.each(e.searchFixed,(function(t,n){Le(e.aiDisplay,e,n,{})}));for(var r=0;r<n.length;r++){var i=n[r];Le(e.aiDisplay,e,i.search,i,r),s.each(e.aoColumns[r].searchFixed,(function(t,n){Le(e.aiDisplay,e,n,{},r)}))}!function(e){for(var t,n,r=l.ext.search,i=e.aiDisplay,o=0,a=r.length;o<a;o++){for(var s=[],u=0,c=i.length;u<c;u++)n=i[u],t=e.aoData[n],r[o](e,t._aFilterData,n,t._aData,u)&&s.push(n);i.length=0,st(i,s)}}(e)}e.bFiltered=!0,nt(e,null,\"search\",[e])}function Le(e,t,n,r,i){if(\"\"!==n){var o=0,a=[],l=\"function\"==typeof n?n:null,u=n instanceof RegExp?n:l?null:function(e,t){var n=[],r=s.extend({},{boundary:!1,caseInsensitive:!0,exact:!1,regex:!1,smart:!0},t);\"string\"!=typeof e&&(e=e.toString());if(e=C(e),r.exact)return new RegExp(\"^\"+Ne(e)+\"$\",r.caseInsensitive?\"i\":\"\");if(e=r.regex?e:Ne(e),r.smart){var i=(e.match(/!?[\"\\u201C][^\"\\u201D]+[\"\\u201D]|[^ ]+/g)||[\"\"]).map((function(e){var t,r=!1;return\"!\"===e.charAt(0)&&(r=!0,e=e.substring(1)),'\"'===e.charAt(0)?(t=e.match(/^\"(.*)\"$/),e=t?t[1]:e):\"“\"===e.charAt(0)&&(t=e.match(/^\\u201C(.*)\\u201D$/),e=t?t[1]:e),r&&(e.length>1&&n.push(\"(?!\"+e+\")\"),e=\"\"),e.replace(/\"/g,\"\")})),o=n.length?n.join(\"\"):\"\",a=r.boundary?\"\\\\b\":\"\";e=\"^(?=.*?\"+a+i.join(\")(?=.*?\"+a)+\")(\"+o+\".)*$\"}return new RegExp(e,r.caseInsensitive?\"i\":\"\")}(n,r);for(o=0;o<e.length;o++){var c=t.aoData[e[o]],p=void 0===i?c._sFilterRow:c._aFilterData[i];(l&&l(p,c._aData,e[o],i)||u&&u.test(p))&&a.push(e[o])}for(e.length=a.length,o=0;o<a.length;o++)e[o]=a[o]}}var Ne=l.util.escapeRegex,Ce=s(\"<div>\")[0],Ie=void 0!==Ce.textContent;function _e(e){var t,n=e.oInit,r=e.deferLoading,i=ot(e);e.bInitialised?(pe(e,\"header\"),pe(e,\"footer\"),function(e,t,n){if(!e.oFeatures.bStateSave)return void n();var r=e.fnStateLoadCallback.call(e.oInstance,e,(function(t){Ye(e,t,n)}));void 0!==r&&Ye(e,r,n)}(e,0,(function(){fe(e,e.aoHeader),fe(e,e.aoFooter);var o=e.iInitDisplayStart;if(n.aaData)for(t=0;t<n.aaData.length;t++)$(e,n.aaData[t]);else(r||\"dom\"==i)&&Y(e,s(e.nTBody).children(\"tr\"));e.aiDisplay=e.aiDisplayMaster.slice(),ye(e),function(e){var t=e.nTHead,n=t.querySelectorAll(\"tr\"),r=e.titleRow,i=':not([data-dt-order=\"disable\"]):not([data-dt-order=\"icon-only\"])';!0===r?t=n[0]:!1===r?t=n[n.length-1]:null!==r&&(t=n[r]);e.orderHandler&&Ue(e,t,t===e.nTHead?\"tr\"+i+\" th\"+i+\", tr\"+i+\" td\"+i:\"th\"+i+\", td\"+i);var o=[];qe(e,o,e.aaSorting),e.aaSorting=o}(e),je(e),De(e,!0),nt(e,null,\"preInit\",[e],!0),ge(e),(\"ssp\"!=i||r)&&(\"ajax\"==i?xe(e,{},(function(n){var r=Te(e,n);for(t=0;t<r.length;t++)$(e,r[t]);e.iInitDisplayStart=o,ge(e),De(e,!1),Re(e)})):(Re(e),De(e,!1)))}))):setTimeout((function(){_e(e)}),200)}function Re(e){if(!e._bInitComplete){var t=[e,e.json];e._bInitComplete=!0,B(e),nt(e,null,\"plugin-init\",t,!0),nt(e,\"aoInitComplete\",\"init\",t,!0)}}function we(e,t){var n=parseInt(t,10);e._iDisplayLength=n,rt(e),nt(e,null,\"length\",[e,n])}function Oe(e,t,n){var r=e._iDisplayStart,i=e._iDisplayLength,o=e.fnRecordsDisplay();if(0===o||-1===i)r=0;else if(\"number\"==typeof t)(r=t*i)>o&&(r=0);else if(\"first\"==t)r=0;else if(\"previous\"==t)(r=i>=0?r-i:0)<0&&(r=0);else if(\"next\"==t)r+i<o&&(r+=i);else if(\"last\"==t)r=Math.floor((o-1)/i)*i;else{if(\"ellipsis\"===t)return;Ke(e,0,\"Unknown paging action: \"+t,5)}var a=e._iDisplayStart!==r;return e._iDisplayStart=r,nt(e,null,a?\"page\":\"page-nc\",[e]),a&&n&&he(e),a}function De(e,t){e.bDrawing&&!1===t||nt(e,null,\"processing\",[e,t])}function Pe(e,t,n){t?(De(e,!0),setTimeout((function(){n(),De(e,!1)}),0)):n()}function ke(e){var t=s(e.nTable),n=e.oScroll;if(\"\"===n.sX&&\"\"===n.sY)return e.nTable;var r=n.sX,i=n.sY,o=e.oClasses.scrolling,a=e.captionNode,l=a?a._captionSide:null,u=s(t[0].cloneNode(!1)),c=s(t[0].cloneNode(!1)),p=t.children(\"tfoot\"),d=\"<div/>\",f=function(e){return e?Ge(e):null};p.length||(p=null);var h=s(d,{class:o.container}).append(s(d,{class:o.header.self}).css({overflow:\"hidden\",position:\"relative\",border:0,width:r?f(r):\"100%\"}).append(s(d,{class:o.header.inner}).css({\"box-sizing\":\"content-box\",width:n.sXInner||\"100%\"}).append(u.removeAttr(\"id\").css(\"margin-left\",0).append(\"top\"===l?a:null).append(t.children(\"thead\"))))).append(s(d,{class:o.body}).css({position:\"relative\",overflow:\"auto\",width:f(r)}).append(t));p&&h.append(s(d,{class:o.footer.self}).css({overflow:\"hidden\",border:0,width:r?f(r):\"100%\"}).append(s(d,{class:o.footer.inner}).append(c.removeAttr(\"id\").css(\"margin-left\",0).append(\"bottom\"===l?a:null).append(t.children(\"tfoot\")))));var g=h.children(),m=g[0],v=g[1],E=p?g[2]:null;return s(v).on(\"scroll.DT\",(function(){var e=this.scrollLeft;m.scrollLeft=e,p&&(E.scrollLeft=e)})),s(\"th, td\",m).on(\"focus\",(function(){var e=m.scrollLeft;v.scrollLeft=e,p&&(v.scrollLeft=e)})),s(v).css(\"max-height\",i),n.bCollapse||s(v).css(\"height\",i),e.nScrollHead=m,e.nScrollBody=v,e.nScrollFoot=E,e.aoDrawCallback.push(Me),h[0]}function Me(e){var t,n,r=e.oScroll,i=r.iBarWidth,o=s(e.nScrollHead).children(\"div\"),a=o.children(\"table\"),l=e.nScrollBody,u=s(l),c=s(e.nScrollFoot).children(\"div\"),p=c.children(\"table\"),d=s(e.nTHead),f=s(e.nTable),h=e.nTFoot&&s(\"th, td\",e.nTFoot).length?s(e.nTFoot):null,g=e.oBrowser,m=l.scrollHeight>l.clientHeight;if(e.scrollBarVis!==m&&void 0!==e.scrollBarVis)return e.scrollBarVis=m,void B(e);if(e.scrollBarVis=m,f.children(\"thead, tfoot\").remove(),(t=d.clone().prependTo(f)).find(\"th, td\").removeAttr(\"tabindex\"),t.find(\"[id]\").removeAttr(\"id\"),h&&(n=h.clone().prependTo(f)).find(\"[id]\").removeAttr(\"id\"),e.aiDisplay.length){var v=null,E=\"ssp\"!==ot(e)?e._iDisplayStart:0;for(T=E;T<E+e.aiDisplay.length;T++){var y=e.aiDisplay[T],b=e.aoData[y].nTr;if(b){v=b;break}}if(v)for(var x=s(v).children(\"th, td\").map((function(t){return{idx:G(e,t),width:s(this).outerWidth()}})),T=0;T<x.length;T++){var A=e.aoColumns[x[T].idx].colEl[0];A.style.width.replace(\"px\",\"\")!==x[T].width&&(A.style.width=x[T].width+\"px\",r.sX&&(A.style.minWidth=x[T].width+\"px\"))}}a.find(\"colgroup\").remove(),a.append(e.colgroup.clone()),h&&(p.find(\"colgroup\").remove(),p.append(e.colgroup.clone())),s(\"th, td\",t).each((function(){s(this.childNodes).wrapAll('<div class=\"dt-scroll-sizing\">')})),h&&s(\"th, td\",n).each((function(){s(this.childNodes).wrapAll('<div class=\"dt-scroll-sizing\">')}));var S=Math.floor(f.height())>l.clientHeight||\"scroll\"==u.css(\"overflow-y\"),L=\"padding\"+(g.bScrollbarLeft?\"Left\":\"Right\"),N=f.outerWidth();a.css(\"width\",Ge(N)),o.css(\"width\",Ge(N)).css(L,S?i+\"px\":\"0px\"),h&&(p.css(\"width\",Ge(N)),c.css(\"width\",Ge(N)).css(L,S?i+\"px\":\"0px\")),f.children(\"colgroup\").prependTo(f),u.trigger(\"scroll\"),!e.bSorted&&!e.bFiltered||e._drawHold||(l.scrollTop=0)}function Fe(e){return s(e.nTableWrapper).is(\":visible\")?s(e.nTableWrapper).width():0}function Be(e,t){var n=e.aoColumns[t];if(!n.wideStrings){for(var r=[],i=[],o=0,a=e.aiDisplayMaster.length;o<a;o++){var s=le(e,e.aiDisplayMaster[o])[t],l=s&&\"object\"==typeof s&&s.nodeType?s.innerHTML:s+\"\";l=l.replace(/id=\".*?\"/g,\"\").replace(/name=\".*?\"/g,\"\");var u=L(l).replace(/&nbsp;/g,\" \");i.push({str:u,len:u.length}),r.push(u)}i.sort((function(e,t){return t.len-e.len})).splice(3),n.wideStrings=i.map((function(e){return e.str}));let c=r.join(\" \").split(\" \");c.sort((function(e,t){return t.length-e.length})),c.length&&n.wideStrings.push(c[0]),c.length>1&&n.wideStrings.push(c[1]),c.length>2&&n.wideStrings.push(c[3])}return n.wideStrings}function Ge(e){return null===e?\"0px\":\"number\"==typeof e?e<0?\"0px\":e+\"px\":e.match(/\\d$/)?e+\"px\":e}function je(e){var t=e.aoColumns;for(e.colgroup.empty(),Ht=0;Ht<t.length;Ht++)t[Ht].bVisible&&e.colgroup.append(t[Ht].colEl)}function Ue(e,t,n,r,i){et(t,n,(function(t){var n=!1,o=void 0===r?X(t.target):\"function\"==typeof r?r():Array.isArray(r)?r:[r];if(o.length){for(var a=0,s=o.length;a<s;a++){if(!1!==ze(e,o[a],a,t.shiftKey)&&(n=!0),1===e.aaSorting.length&&\"\"===e.aaSorting[0][1])break}n&&Pe(e,!0,(function(){We(e),He(e,e.aiDisplay),ge(e,!1,!1),i&&i()}))}}))}function He(e,t){if(!(t.length<2)){var n,r=e.aiDisplayMaster,i={},o={};for(n=0;n<r.length;n++)i[r[n]]=n;for(n=0;n<t.length;n++)o[t[n]]=i[t[n]];t.sort((function(e,t){return o[e]-o[t]}))}}function qe(e,t,n){var r=function(n){if(s.isPlainObject(n)){if(void 0!==n.idx)t.push([n.idx,n.dir]);else if(n.name){var r=x(e.aoColumns,\"sName\").indexOf(n.name);-1!==r&&t.push([r,n.dir])}}else t.push(n)};if(s.isPlainObject(n))r(n);else if(n.length&&\"number\"==typeof n[0])r(n);else if(n.length)for(var i=0;i<n.length;i++)r(n[i])}function Ve(e){var t,n,r,i,o,a,u,c=[],p=l.ext.type.order,d=e.aoColumns,f=e.aaSortingFixed,h=s.isPlainObject(f),g=[];if(!e.oFeatures.bSort)return c;for(Array.isArray(f)&&qe(e,g,f),h&&f.pre&&qe(e,g,f.pre),qe(e,g,e.aaSorting),h&&f.post&&qe(e,g,f.post),t=0;t<g.length;t++)if(d[u=g[t][0]])for(n=0,r=(i=d[u].aDataSort).length;n<r;n++)a=d[o=i[n]].sType||\"string\",void 0===g[t]._idx&&(g[t]._idx=d[o].asSorting.indexOf(g[t][1])),g[t][1]&&c.push({src:u,col:o,dir:g[t][1],index:g[t]._idx,type:a,formatter:p[a+\"-pre\"],sorter:p[a+\"-\"+g[t][1]]});return c}function We(e,t,n){var r,i,o,a=[],s=l.ext.type.order,u=e.aoData,c=e.aiDisplayMaster;if(V(e),void 0!==t){var p=e.aoColumns[t];o=[{src:t,col:t,dir:n,index:0,type:p.sType,formatter:s[p.sType+\"-pre\"],sorter:s[p.sType+\"-\"+n]}],c=c.slice()}else o=Ve(e);for(r=0,i=o.length;r<i;r++)Xe(e,o[r].col);if(\"ssp\"!=ot(e)&&0!==o.length){for(r=0,i=c.length;r<i;r++)a[r]=r;o.length&&\"desc\"===o[0].dir&&e.orderDescReverse&&a.reverse(),c.sort((function(e,t){var n,r,i,s,l,c=o.length,p=u[e]._aSortData,d=u[t]._aSortData;for(i=0;i<c;i++)if(n=p[(l=o[i]).col],r=d[l.col],l.sorter){if(0!==(s=l.sorter(n,r)))return s}else if(0!==(s=n<r?-1:n>r?1:0))return\"asc\"===l.dir?s:-s;return(n=a[e])<(r=a[t])?-1:n>r?1:0}))}else 0===o.length&&c.sort((function(e,t){return e<t?-1:e>t?1:0}));return void 0===t&&(e.bSorted=!0,e.sortDetails=o,nt(e,null,\"order\",[e,o])),c}function ze(e,t,n,r){var i,o=e.aoColumns[t],a=e.aaSorting,s=o.asSorting,l=function(e,t){var n=e._idx;return void 0===n&&(n=s.indexOf(e[1])),n+1<s.length?n+1:t?null:0};if(!o.bSortable)return!1;if(\"number\"==typeof a[0]&&(a=e.aaSorting=[a]),(r||n)&&e.oFeatures.bSortMulti){var u=x(a,\"0\").indexOf(t);-1!==u?(null===(i=l(a[u],!0))&&1===a.length&&(i=0),null===i||\"\"===s[i]?a.splice(u,1):(a[u][1]=s[i],a[u]._idx=i)):r?(a.push([t,s[0],0]),a[a.length-1]._idx=0):(a.push([t,a[0][1],0]),a[a.length-1]._idx=0)}else a.length&&a[0][0]==t?(i=l(a[0]),a.length=1,a[0][1]=s[i],a[0]._idx=i):(a.length=0,a.push([t,s[0]]),a[0]._idx=0)}function Qe(e){var t,n,r,i=e.aLastSort,o=e.oClasses.order.position,a=Ve(e),l=e.oFeatures;if(l.bSort&&l.bSortClasses){for(t=0,n=i.length;t<n;t++)r=i[t].src,s(x(e.aoData,\"anCells\",r)).removeClass(o+(t<2?t+1:3));for(t=0,n=a.length;t<n;t++)r=a[t].src,s(x(e.aoData,\"anCells\",r)).addClass(o+(t<2?t+1:3))}e.aLastSort=a}function Xe(e,t){var n,r,i,o=e.aoColumns[t],a=l.ext.order[o.sSortDataType];a&&(n=a.call(e.oInstance,e,t,j(e,t)));for(var s=l.ext.type.order[o.sType+\"-pre\"],u=e.aoData,c=0;c<u.length;c++)u[c]&&((r=u[c])._aSortData||(r._aSortData=[]),r._aSortData[t]&&!a||(i=a?n[c]:K(e,c,t,\"sort\"),r._aSortData[t]=s?s(i,e):i))}function $e(e){if(!e._bLoadingState){var t=[];qe(e,t,e.aaSorting);var n=e.aoColumns,r={time:+new Date,start:e._iDisplayStart,length:e._iDisplayLength,order:t.map((function(e){return n[e[0]]&&n[e[0]].sName?[n[e[0]].sName,e[1]]:e.slice()})),search:s.extend({},e.oPreviousSearch),columns:e.aoColumns.map((function(t,n){return{name:t.sName,visible:t.bVisible,search:s.extend({},e.aoPreSearchCols[n])}}))};e.oSavedState=r,nt(e,\"aoStateSaveParams\",\"stateSaveParams\",[e,r]),e.oFeatures.bStateSave&&!e.bDestroying&&e.fnStateSaveCallback.call(e.oInstance,e,r)}}function Ye(e,t,n){var r,i,o=e.aoColumns,a=x(e.aoColumns,\"sName\");e._bLoadingState=!0;var u=e._bInitComplete?new l.Api(e):null;if(!t||!t.time)return e._bLoadingState=!1,void n();var c=e.iStateDuration;if(c>0&&t.time<+new Date-1e3*c)return e._bLoadingState=!1,void n();if(-1!==nt(e,\"aoStateLoadParams\",\"stateLoadParams\",[e,t]).indexOf(!1))return e._bLoadingState=!1,void n();if(e.oLoadedState=s.extend(!0,{},t),nt(e,null,\"stateLoadInit\",[e,t],!0),void 0!==t.length&&(u?u.page.len(t.length):e._iDisplayLength=t.length),void 0!==t.start&&(null===u?(e._iDisplayStart=t.start,e.iInitDisplayStart=t.start):Oe(e,t.start/e._iDisplayLength)),void 0!==t.order&&(e.aaSorting=[],s.each(t.order,(function(t,n){var r=[n[0],n[1]];if(\"string\"==typeof n[0]){var i=a.indexOf(n[0]);if(i<0)return;r[0]=i}else if(r[0]>=o.length)return;e.aaSorting.push(r)}))),void 0!==t.search&&s.extend(e.oPreviousSearch,t.search),t.columns){var p=t.columns,d=x(t.columns,\"name\");if(d.join(\"\").length&&d.join(\"\")!==a.join(\"\"))for(p=[],r=0;r<a.length;r++)if(\"\"!=a[r]){var f=d.indexOf(a[r]);f>=0?p.push(t.columns[f]):p.push({})}else p.push({});if(p.length===o.length){for(r=0,i=p.length;r<i;r++){var h=p[r];void 0!==h.visible&&(u?u.column(r).visible(h.visible,!1):o[r].bVisible=h.visible),void 0!==h.search&&s.extend(e.aoPreSearchCols[r],h.search)}u&&u.one(\"draw\",(function(){u.columns.adjust()}))}}e._bLoadingState=!1,nt(e,\"aoStateLoaded\",\"stateLoaded\",[e,t]),n()}function Ke(e,t,n,r){if(n=\"DataTables warning: \"+(e?\"table id=\"+e.sTableId+\" - \":\"\")+n,r&&(n+=\". For more information about this error, please see https://datatables.net/tn/\"+r),t)window.console&&console.log&&console.log(n);else{var i=l.ext,o=i.sErrMode||i.errMode;if(e&&nt(e,null,\"dt-error\",[e,r,n],!0),\"alert\"==o)alert(n);else{if(\"throw\"==o)throw new Error(n);\"function\"==typeof o&&o(e,r,n)}}}function Je(e,t,n,r){Array.isArray(n)?s.each(n,(function(n,r){Array.isArray(r)?Je(e,t,r[0],r[1]):Je(e,t,r)})):(void 0===r&&(r=n),void 0!==t[n]&&(e[r]=t[n]))}function Ze(e,t,n){var r;for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r=t[i],s.isPlainObject(r)?(s.isPlainObject(e[i])||(e[i]={}),s.extend(!0,e[i],r)):n&&\"data\"!==i&&\"aaData\"!==i&&Array.isArray(r)?e[i]=r.slice():e[i]=r);return e}function et(e,t,n){s(e).on(\"click.DT\",t,(function(e){n(e)})).on(\"keypress.DT\",t,(function(e){13===e.which&&(e.preventDefault(),n(e))})).on(\"selectstart.DT\",t,(function(){return!1}))}function tt(e,t,n){n&&e[t].push(n)}function nt(e,t,n,r,i){var o=[];if(t&&(o=e[t].slice().reverse().map((function(t){return t.apply(e.oInstance,r)}))),null!==n){var a=s.Event(n+\".dt\"),l=s(e.nTable);a.dt=e.api,l[i?\"trigger\":\"triggerHandler\"](a,r),i&&0===l.parents(\"body\").length&&s(\"body\").trigger(a,r),o.push(a.result)}return o}function rt(e){var t=e._iDisplayStart,n=e.fnDisplayEnd(),r=e._iDisplayLength;t>=n&&(t=n-r),t-=t%r,(-1===r||t<0)&&(t=0),e._iDisplayStart=t}function it(e,t){var n=e.renderer,r=l.ext.renderer[t];return s.isPlainObject(n)&&n[t]?r[n[t]]||r._:\"string\"==typeof n&&r[n]||r._}function ot(e){return e.oFeatures.bServerSide?\"ssp\":e.ajax?\"ajax\":\"dom\"}function at(e,t,n){var r=e.fnFormatNumber,i=e._iDisplayStart+1,o=e._iDisplayLength,a=e.fnRecordsDisplay(),s=e.fnRecordsTotal(),l=-1===o;return t.replace(/_START_/g,r.call(e,i)).replace(/_END_/g,r.call(e,e.fnDisplayEnd())).replace(/_MAX_/g,r.call(e,s)).replace(/_TOTAL_/g,r.call(e,a)).replace(/_PAGE_/g,r.call(e,l?1:Math.ceil(i/o))).replace(/_PAGES_/g,r.call(e,l?1:Math.ceil(a/o))).replace(/_ENTRIES_/g,e.api.i18n(\"entries\",\"\",n)).replace(/_ENTRIES-MAX_/g,e.api.i18n(\"entries\",\"\",s)).replace(/_ENTRIES-TOTAL_/g,e.api.i18n(\"entries\",\"\",a))}function st(e,t){if(t)if(t.length<1e4)e.push.apply(e,t);else for(Ht=0;Ht<t.length;Ht++)e.push(t[Ht])}function lt(e,t,n){for(Array.isArray(n)||(n=[n]),Ht=0;Ht<n.length;Ht++)e.on(t+\".dt\",n[Ht])}function ut(e){return l.ext.escape.attributes&&s.each(e,(function(t,n){e[t]=N(n)})),e}var ct=[],pt=Array.prototype;function dt(e,t,n){return function(){var r=t.apply(e||this,arguments);return i.extend(r,r,n.methodExt),r}}function ft(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n].name===t)return e[n];return null}i=function(e,t){if(!(this instanceof i))return new i(e,t);var n,r=[],o=function(e){var t=function(e){var t,n,r=l.settings,i=x(r,\"nTable\");return e?e.nTable&&e.oFeatures?[e]:e.nodeName&&\"table\"===e.nodeName.toLowerCase()?-1!==(t=i.indexOf(e))?[r[t]]:null:e&&\"function\"==typeof e.settings?e.settings().toArray():(\"string\"==typeof e?n=s(e).get():e instanceof s&&(n=e.get()),n?r.filter((function(e,t){return n.includes(i[t])})):void 0):[]}(e);t&&r.push.apply(r,t)};if(Array.isArray(e))for(n=0;n<e.length;n++)o(e[n]);else o(e);this.context=r.length>1?I(r):r,st(this,t),this.selector={rows:null,cols:null,opts:null},i.extend(this,this,ct)},l.Api=i,s.extend(i.prototype,{any:function(){return 0!==this.count()},context:[],count:function(){return this.flatten().length},each:function(e){for(var t=0,n=this.length;t<n;t++)e.call(this,this[t],t,this);return this},eq:function(e){var t=this.context;return t.length>e?new i(t[e],this[e]):null},filter:function(e){var t=pt.filter.call(this,e,this);return new i(this.context,t)},flatten:function(){var e=[];return new i(this.context,e.concat.apply(e,this.toArray()))},get:function(e){return this[e]},join:pt.join,includes:function(e){return-1!==this.indexOf(e)},indexOf:pt.indexOf,iterator:function(e,t,n,r){var o,a,s,l,u,c,p,d,f=[],h=this.context,g=this.selector;for(\"string\"==typeof e&&(r=n,n=t,t=e,e=!1),a=0,s=h.length;a<s;a++){var m=new i(h[a]);if(\"table\"===t)void 0!==(o=n.call(m,h[a],a))&&f.push(o);else if(\"columns\"===t||\"rows\"===t)void 0!==(o=n.call(m,h[a],this[a],a))&&f.push(o);else if(\"every\"===t||\"column\"===t||\"column-rows\"===t||\"row\"===t||\"cell\"===t)for(p=this[a],\"column-rows\"===t&&(c=yt(h[a],g.opts)),l=0,u=p.length;l<u;l++)d=p[l],void 0!==(o=\"cell\"===t?n.call(m,h[a],d.row,d.column,a,l):n.call(m,h[a],d,a,l,c))&&f.push(o)}if(f.length||r){var v=new i(h,e?f.concat.apply([],f):f),E=v.selector;return E.rows=g.rows,E.cols=g.cols,E.opts=g.opts,v}return this},lastIndexOf:pt.lastIndexOf,length:0,map:function(e){var t=pt.map.call(this,e,this);return new i(this.context,t)},pluck:function(e){var t=l.util.get(e);return this.map((function(e){return t(e)}))},pop:pt.pop,push:pt.push,reduce:pt.reduce,reduceRight:pt.reduceRight,reverse:pt.reverse,selector:null,shift:pt.shift,slice:function(){return new i(this.context,this)},sort:pt.sort,splice:pt.splice,toArray:function(){return pt.slice.call(this)},to$:function(){return s(this)},toJQuery:function(){return s(this)},unique:function(){return new i(this.context,I(this.toArray()))},unshift:pt.unshift}),window.__apiStruct=ct,i.extend=function(e,t,n){var r,o,a;if(n.length&&t&&(t instanceof i||t.__dt_wrapper))for(r=0,o=n.length;r<o;r++)\"__proto__\"!==(a=n[r]).name&&(t[a.name]=\"function\"===a.type?dt(e,a.val,a):\"object\"===a.type?{}:a.val,t[a.name].__dt_wrapper=!0,i.extend(e,t[a.name],a.propExt))},i.register=o=function(e,t){if(Array.isArray(e))for(var n=0,r=e.length;n<r;n++)i.register(e[n],t);else{var o,a,l,u,c=e.split(\".\"),p=ct;for(o=0,a=c.length;o<a;o++){var d=ft(p,l=(u=-1!==c[o].indexOf(\"()\"))?c[o].replace(\"()\",\"\"):c[o]);d||(d={name:l,val:{},methodExt:[],propExt:[],type:\"object\"},p.push(d)),o===a-1?(d.val=t,d.type=\"function\"==typeof t?\"function\":s.isPlainObject(t)?\"object\":\"other\"):p=u?d.methodExt:d.propExt}}},i.registerPlural=a=function(e,t,n){i.register(e,n),i.register(t,(function(){var e=n.apply(this,arguments);return e===this?this:e instanceof i?e.length?Array.isArray(e[0])?new i(e.context,e[0]):e[0]:void 0:e}))};var ht=function(e,t){if(Array.isArray(e)){var n=[];return e.forEach((function(e){var r=ht(e,t);st(n,r)})),n.filter((function(e){return e}))}if(\"number\"==typeof e)return[t[e]];var r=t.map((function(e){return e.nTable}));return s(r).filter(e).map((function(){var e=r.indexOf(this);return t[e]})).toArray()};o(\"tables()\",(function(e){return null!=e?new i(ht(e,this.context)):this})),o(\"table()\",(function(e){var t=this.tables(e),n=t.context;return n.length?new i(n[0]):t})),[[\"nodes\",\"node\",\"nTable\"],[\"body\",\"body\",\"nTBody\"],[\"header\",\"header\",\"nTHead\"],[\"footer\",\"footer\",\"nTFoot\"]].forEach((function(e){a(\"tables().\"+e[0]+\"()\",\"table().\"+e[1]+\"()\",(function(){return this.iterator(\"table\",(function(t){return t[e[2]]}),1)}))})),[[\"header\",\"aoHeader\"],[\"footer\",\"aoFooter\"]].forEach((function(e){o(\"table().\"+e[0]+\".structure()\",(function(t){var n=this.columns(t).indexes().flatten().toArray(),r=this.context[0],i=de(r,r[e[1]],n),o=n.slice().sort((function(e,t){return e-t}));return i.map((function(e){return n.map((function(t){return e[o.indexOf(t)]}))}))}))})),a(\"tables().containers()\",\"table().container()\",(function(){return this.iterator(\"table\",(function(e){return e.nTableWrapper}),1)})),o(\"tables().every()\",(function(e){var t=this;return this.iterator(\"table\",(function(n,r){e.call(t.table(r),r)}))})),o(\"caption()\",(function(e,t){var n=this.context;if(void 0===e){var r=n[0].captionNode;return r&&n.length?r.innerHTML:null}return this.iterator(\"table\",(function(n){var r=s(n.nTable),i=s(n.captionNode),o=s(n.nTableWrapper);if(i.length||(i=s(\"<caption/>\").html(e),n.captionNode=i[0],t||(r.prepend(i),t=i.css(\"caption-side\"))),i.html(e),t&&(i.css(\"caption-side\",t),i[0]._captionSide=t),o.find(\"div.dataTables_scroll\").length){var a=\"top\"===t?\"Head\":\"Foot\";o.find(\"div.dataTables_scroll\"+a+\" table\").prepend(i)}else r.prepend(i)}),1)})),o(\"caption.node()\",(function(){var e=this.context;return e.length?e[0].captionNode:null})),o(\"draw()\",(function(e){return this.iterator(\"table\",(function(t){\"page\"===e?he(t):(\"string\"==typeof e&&(e=\"full-hold\"!==e),ge(t,!1===e))}))})),o(\"page()\",(function(e){return void 0===e?this.page.info().page:this.iterator(\"table\",(function(t){Oe(t,e)}))})),o(\"page.info()\",(function(){if(0!==this.context.length){var e=this.context[0],t=e._iDisplayStart,n=e.oFeatures.bPaginate?e._iDisplayLength:-1,r=e.fnRecordsDisplay(),i=-1===n;return{page:i?0:Math.floor(t/n),pages:i?1:Math.ceil(r/n),start:t,end:e.fnDisplayEnd(),length:n,recordsTotal:e.fnRecordsTotal(),recordsDisplay:r,serverSide:\"ssp\"===ot(e)}}})),o(\"page.len()\",(function(e){return void 0===e?0!==this.context.length?this.context[0]._iDisplayLength:void 0:this.iterator(\"table\",(function(t){we(t,e)}))}));var gt=function(e,t,n){if(n){var r=new i(e);r.one(\"draw\",(function(){n(r.ajax.json())}))}if(\"ssp\"==ot(e))ge(e,t);else{De(e,!0);var o=e.jqXHR;o&&4!==o.readyState&&o.abort(),xe(e,{},(function(n){oe(e);for(var r=Te(e,n),i=0,o=r.length;i<o;i++)$(e,r[i]);ge(e,t),Re(e),De(e,!1)}))}};o(\"ajax.json()\",(function(){var e=this.context;if(e.length>0)return e[0].json})),o(\"ajax.params()\",(function(){var e=this.context;if(e.length>0)return e[0].oAjaxData})),o(\"ajax.reload()\",(function(e,t){return this.iterator(\"table\",(function(n){gt(n,!1===t,e)}))})),o(\"ajax.url()\",(function(e){var t=this.context;if(void 0===e){if(0===t.length)return;return t=t[0],s.isPlainObject(t.ajax)?t.ajax.url:t.ajax}return this.iterator(\"table\",(function(t){s.isPlainObject(t.ajax)?t.ajax.url=e:t.ajax=e}))})),o(\"ajax.url().load()\",(function(e,t){return this.iterator(\"table\",(function(n){gt(n,!1===t,e)}))}));var mt=function(e,t,n,i,o){var a,s,l,u=[],c=typeof t;for(t&&\"string\"!==c&&\"function\"!==c&&void 0!==t.length||(t=[t]),s=0,l=t.length;s<l;s++)(a=(a=n(\"string\"==typeof t[s]?t[s].trim():t[s])).filter((function(e){return null!=e})))&&a.length&&(u=u.concat(a));var p=r.selector[e];if(p.length)for(s=0,l=p.length;s<l;s++)u=p[s](i,o,u);return I(u)},vt=function(e){return e||(e={}),e.filter&&void 0===e.search&&(e.search=e.filter),s.extend({columnOrder:\"implied\",search:\"none\",order:\"current\",page:\"all\"},e)},Et=function(e){var t=new i(e.context[0]);return e.length&&t.push(e[0]),t.selector=e.selector,t.length&&t[0].length>1&&t[0].splice(1),t},yt=function(e,t){var n,r,i,o=[],a=e.aiDisplay,s=e.aiDisplayMaster,l=t.search,u=t.order,c=t.page;if(\"ssp\"==ot(e))return\"removed\"===l?[]:A(0,s.length);if(\"current\"==c)for(n=e._iDisplayStart,r=e.fnDisplayEnd();n<r;n++)o.push(a[n]);else if(\"current\"==u||\"applied\"==u){if(\"none\"==l)o=s.slice();else if(\"applied\"==l)o=a.slice();else if(\"removed\"==l){var p={};for(n=0,r=a.length;n<r;n++)p[a[n]]=null;s.forEach((function(e){Object.prototype.hasOwnProperty.call(p,e)||o.push(e)}))}}else if(\"index\"==u||\"original\"==u)for(n=0,r=e.aoData.length;n<r;n++)e.aoData[n]&&(\"none\"==l||-1===(i=a.indexOf(n))&&\"removed\"==l||i>=0&&\"applied\"==l)&&o.push(n);else if(\"number\"==typeof u){var d=We(e,u,\"asc\");if(\"none\"===l)o=d;else for(n=0;n<d.length;n++)(-1===(i=a.indexOf(d[n]))&&\"removed\"==l||i>=0&&\"applied\"==l)&&o.push(d[n])}return o};o(\"rows()\",(function(e,t){void 0===e?e=\"\":s.isPlainObject(e)&&(t=e,e=\"\"),t=vt(t);var n=this.iterator(\"table\",(function(n){return function(e,t,n){var r,i=mt(\"row\",t,(function(t){var i=v(t),o=e.aoData;if(null!==i&&!n)return[i];if(r||(r=yt(e,n)),null!==i&&-1!==r.indexOf(i))return[i];if(null==t||\"\"===t)return r;if(\"function\"==typeof t)return r.map((function(e){var n=o[e];return t(e,n._aData,n.nTr)?e:null}));if(t.nodeName){var a=t._DT_RowIndex,l=t._DT_CellIndex;if(void 0!==a)return o[a]&&o[a].nTr===t?[a]:[];if(l)return o[l.row]&&o[l.row].nTr===t.parentNode?[l.row]:[];var u=s(t).closest(\"*[data-dt-row]\");return u.length?[u.data(\"dt-row\")]:[]}if(\"string\"==typeof t&&\"#\"===t.charAt(0)){var c=e.aIds[t.replace(/^#/,\"\")];if(void 0!==c)return[c.idx]}var p=S(T(e.aoData,r,\"nTr\"));return s(p).filter(t).map((function(){return this._DT_RowIndex})).toArray()}),e,n);return\"current\"!==n.order&&\"applied\"!==n.order||He(e,i),i}(n,e,t)}),1);return n.selector.rows=e,n.selector.opts=t,n})),o(\"rows().nodes()\",(function(){return this.iterator(\"row\",(function(e,t){return e.aoData[t].nTr||void 0}),1)})),o(\"rows().data()\",(function(){return this.iterator(!0,\"rows\",(function(e,t){return T(e.aoData,t,\"_aData\")}),1)})),a(\"rows().cache()\",\"row().cache()\",(function(e){return this.iterator(\"row\",(function(t,n){var r=t.aoData[n];return\"search\"===e?r._aFilterData:r._aSortData}),1)})),a(\"rows().invalidate()\",\"row().invalidate()\",(function(e){return this.iterator(\"row\",(function(t,n){ae(t,n,e)}))})),a(\"rows().indexes()\",\"row().index()\",(function(){return this.iterator(\"row\",(function(e,t){return t}),1)})),a(\"rows().ids()\",\"row().id()\",(function(e){for(var t=[],n=this.context,r=0,o=n.length;r<o;r++)for(var a=0,s=this[r].length;a<s;a++){var l=n[r].rowIdFn(n[r].aoData[this[r][a]]._aData);t.push((!0===e?\"#\":\"\")+l)}return new i(n,t)})),a(\"rows().remove()\",\"row().remove()\",(function(){return this.iterator(\"row\",(function(e,t){var n=e.aoData,r=n[t],i=e.aiDisplayMaster.indexOf(t);-1!==i&&e.aiDisplayMaster.splice(i,1),e._iRecordsDisplay>0&&e._iRecordsDisplay--,rt(e);var o=e.rowIdFn(r._aData);void 0!==o&&delete e.aIds[o],n[t]=null})),this})),o(\"rows.add()\",(function(e){var t=this.iterator(\"table\",(function(t){var n,r,i,o=[];for(r=0,i=e.length;r<i;r++)(n=e[r]).nodeName&&\"TR\"===n.nodeName.toUpperCase()?o.push(Y(t,n)[0]):o.push($(t,n));return o}),1),n=this.rows(-1);return n.pop(),st(n,t),n})),o(\"row()\",(function(e,t){return Et(this.rows(e,t))})),o(\"row().data()\",(function(e){var t=this.context;if(void 0===e)return t.length&&this.length&&this[0].length?t[0].aoData[this[0]]._aData:void 0;var n=t[0].aoData[this[0]];return n._aData=e,Array.isArray(e)&&n.nTr&&n.nTr.id&&re(t[0].rowId)(e,n.nTr.id),ae(t[0],this[0],\"data\"),this})),o(\"row().node()\",(function(){var e=this.context;if(e.length&&this.length&&this[0].length){var t=e[0].aoData[this[0]];if(t&&t.nTr)return t.nTr}return null})),o(\"row.add()\",(function(e){e instanceof s&&e.length&&(e=e[0]);var t=this.iterator(\"table\",(function(t){return e.nodeName&&\"TR\"===e.nodeName.toUpperCase()?Y(t,e)[0]:$(t,e)}));return this.row(t[0])})),s(document).on(\"plugin-init.dt\",(function(e,t){var n=new i(t);n.on(\"stateSaveParams.DT\",(function(e,t,n){for(var r=t.rowIdFn,i=t.aiDisplayMaster,o=[],a=0;a<i.length;a++){var s=i[a],l=t.aoData[s];l._detailsShow&&o.push(\"#\"+r(l._aData))}n.childRows=o})),n.on(\"stateLoaded.DT\",(function(e,t,r){bt(n,r)})),bt(n,n.state.loaded())}));var bt=function(e,t){t&&t.childRows&&e.rows(t.childRows.map((function(e){return e.replace(/([^:\\\\]*(?:\\\\.[^:\\\\]*)*):/g,\"$1\\\\:\")}))).every((function(){nt(e.settings()[0],null,\"requestChild\",[this])}))},xt=l.util.throttle((function(e){$e(e[0])}),500),Tt=function(e,t){var n=e.context;if(n.length){var r=n[0].aoData[void 0!==t?t:e[0]];r&&r._details&&(r._details.detach(),r._detailsShow=void 0,r._details=void 0,s(r.nTr).removeClass(\"dt-hasChild\"),xt(n))}},At=function(e,t){var n=e.context;if(n.length&&e.length){var r=n[0].aoData[e[0]];r._details&&(r._detailsShow=t,t?(r._details.insertAfter(r.nTr),s(r.nTr).addClass(\"dt-hasChild\")):(r._details.detach(),s(r.nTr).removeClass(\"dt-hasChild\")),nt(n[0],null,\"childRow\",[t,e.row(e[0])]),St(n[0]),xt(n))}},St=function(e){var t=new i(e),n=e.aoData;t.off(\"draw.dt.DT_details column-sizing.dt.DT_details destroy.dt.DT_details\"),x(n,\"_details\").length>0&&(t.on(\"draw.dt.DT_details\",(function(r,i){e===i&&t.rows({page:\"current\"}).eq(0).each((function(e){var t=n[e];t._detailsShow&&t._details.insertAfter(t.nTr)}))})),t.on(\"column-sizing.dt.DT_details\",(function(t,r){if(e===r)for(var i,o=U(r),a=0,l=n.length;a<l;a++)(i=n[a])&&i._details&&i._details.each((function(){var e=s(this).children(\"td\");1==e.length&&e.attr(\"colspan\",o)}))})),t.on(\"destroy.dt.DT_details\",(function(r,i){if(e===i)for(var o=0,a=n.length;o<a;o++)n[o]&&n[o]._details&&Tt(t,o)})))};o(\"row().child()\",(function(e,t){var n=this.context;return void 0===e?n.length&&this.length&&n[0].aoData[this[0]]?n[0].aoData[this[0]]._details:void 0:(!0===e?this.child.show():!1===e?Tt(this):n.length&&this.length&&function(e,t,n,r){var i=[],o=function(n,r){if(Array.isArray(n)||n instanceof s)for(var a=0,l=n.length;a<l;a++)o(n[a],r);else if(n.nodeName&&\"tr\"===n.nodeName.toLowerCase())n.setAttribute(\"data-dt-row\",t.idx),i.push(n);else{var u=s(\"<tr><td></td></tr>\").attr(\"data-dt-row\",t.idx).addClass(r);s(\"td\",u).addClass(r).html(n)[0].colSpan=U(e),i.push(u[0])}};o(n,r),t._details&&t._details.detach(),t._details=s(i),t._detailsShow&&t._details.insertAfter(t.nTr)}(n[0],n[0].aoData[this[0]],e,t),this)})),o([\"row().child.show()\",\"row().child().show()\"],(function(){return At(this,!0),this})),o([\"row().child.hide()\",\"row().child().hide()\"],(function(){return At(this,!1),this})),o([\"row().child.remove()\",\"row().child().remove()\"],(function(){return Tt(this),this})),o(\"row().child.isShown()\",(function(){var e=this.context;return e.length&&this.length&&e[0].aoData[this[0]]&&e[0].aoData[this[0]]._detailsShow||!1}));var Lt=/^([^:]+)?:(name|title|visIdx|visible)$/,Nt=function(e,t,n,r,i,o){for(var a=[],s=0,l=i.length;s<l;s++)a.push(K(e,i[s],t,o));return a},Ct=function(e,t,n){var r=e.aoHeader,i=e.titleRow,o=null;if(void 0!==n)o=n;else if(!0===i)o=0;else if(!1===i)o=r.length-1;else if(null!==i)o=i;else{for(var a=0;a<r.length;a++)r[a][t].unique&&s(\"span.dt-column-title\",r[a][t].cell).text()&&(o=a);null===o&&(o=0)}return r[o][t].cell};o(\"columns()\",(function(e,t){void 0===e?e=\"\":s.isPlainObject(e)&&(t=e,e=\"\"),t=vt(t);var n=this.iterator(\"table\",(function(n){return function(e,t,n){var r,i,o=e.aoColumns,a=function(e){for(var t=[],n=0;n<e.length;n++)for(var r=0;r<e[n].length;r++){var i=e[n][r].cell;t.includes(i)||t.push(i)}return t}(e.aoHeader),l=mt(\"column\",t,(function(t){var l=v(t);if(\"\"===t)return A(o.length);if(null!==l)return[l>=0?l:o.length+l];if(\"function\"==typeof t){var u=yt(e,n);return o.map((function(n,r){return t(r,Nt(e,r,0,0,u),Ct(e,r))?r:null}))}var c=\"string\"==typeof t?t.match(Lt):\"\";if(c)switch(c[2]){case\"visIdx\":case\"visible\":if(c[1]&&c[1].match(/^\\d+$/)){var p=parseInt(c[1],10);if(p<0){var d=o.map((function(e,t){return e.bVisible?t:null}));return[d[d.length+p]]}return[G(e,p)]}return o.map((function(e,t){return e.bVisible?c[1]?s(a[t]).filter(c[1]).length>0?t:null:t:null}));case\"name\":return r||(r=x(o,\"sName\")),r.map((function(e,t){return e===c[1]?t:null}));case\"title\":return i||(i=x(o,\"sTitle\")),i.map((function(e,t){return e===c[1]?t:null}));default:return[]}if(t.nodeName&&t._DT_CellIndex)return[t._DT_CellIndex.column];var f=s(a).filter(t).map((function(){return X(this)})).toArray().sort((function(e,t){return e-t}));if(f.length||!t.nodeName)return f;var h=s(t).closest(\"*[data-dt-column]\");return h.length?[h.data(\"dt-column\")]:[]}),e,n);return n.columnOrder&&\"index\"===n.columnOrder?l.sort((function(e,t){return e-t})):l}(n,e,t)}),1);return n.selector.cols=e,n.selector.opts=t,n})),a(\"columns().header()\",\"column().header()\",(function(e){return this.iterator(\"column\",(function(t,n){return Ct(t,n,e)}),1)})),a(\"columns().footer()\",\"column().footer()\",(function(e){return this.iterator(\"column\",(function(t,n){return t.aoFooter.length?t.aoFooter[void 0!==e?e:0][n].cell:null}),1)})),a(\"columns().data()\",\"column().data()\",(function(){return this.iterator(\"column-rows\",Nt,1)})),a(\"columns().render()\",\"column().render()\",(function(e){return this.iterator(\"column-rows\",(function(t,n,r,i,o){return Nt(t,n,0,0,o,e)}),1)})),a(\"columns().dataSrc()\",\"column().dataSrc()\",(function(){return this.iterator(\"column\",(function(e,t){return e.aoColumns[t].mData}),1)})),a(\"columns().cache()\",\"column().cache()\",(function(e){return this.iterator(\"column-rows\",(function(t,n,r,i,o){return T(t.aoData,o,\"search\"===e?\"_aFilterData\":\"_aSortData\",n)}),1)})),a(\"columns().init()\",\"column().init()\",(function(){return this.iterator(\"column\",(function(e,t){return e.aoColumns[t]}),1)})),a(\"columns().names()\",\"column().name()\",(function(){return this.iterator(\"column\",(function(e,t){return e.aoColumns[t].sName}),1)})),a(\"columns().nodes()\",\"column().nodes()\",(function(){return this.iterator(\"column-rows\",(function(e,t,n,r,i){return T(e.aoData,i,\"anCells\",t)}),1)})),a(\"columns().titles()\",\"column().title()\",(function(e,t){return this.iterator(\"column\",(function(n,r){\"number\"==typeof e&&(t=e,e=void 0);var i=s(\"span.dt-column-title\",this.column(r).header(t));return void 0!==e?(i.html(e),this):i.html()}),1)})),a(\"columns().types()\",\"column().type()\",(function(){return this.iterator(\"column\",(function(e,t){var n=e.aoColumns[t],r=n.sType;return r||(V(e),r=n.sType),r}),1)})),a(\"columns().visible()\",\"column().visible()\",(function(e,t){var n=this,r=[],i=this.iterator(\"column\",(function(t,n){if(void 0===e)return t.aoColumns[n].bVisible;(function(e,t,n){var r,i,o,a,l=e.aoColumns,u=l[t],c=e.aoData;if(void 0===n)return u.bVisible;if(u.bVisible===n)return!1;if(n){var p=x(l,\"bVisible\").indexOf(!0,t+1);for(i=0,o=c.length;i<o;i++)c[i]&&(a=c[i].nTr,r=c[i].anCells,a&&a.insertBefore(r[t],r[p]||null))}else s(x(e.aoData,\"anCells\",t)).detach();return u.bVisible=n,je(e),!0})(t,n,e)&&r.push(n)}));return void 0!==e&&this.iterator(\"table\",(function(i){fe(i,i.aoHeader),fe(i,i.aoFooter),i.aiDisplay.length||s(i.nTBody).find(\"td[colspan]\").attr(\"colspan\",U(i)),$e(i),n.iterator(\"column\",(function(n,i){r.includes(i)&&nt(n,null,\"column-visibility\",[n,i,e,t])})),r.length&&(void 0===t||t)&&n.columns.adjust()})),i})),a(\"columns().widths()\",\"column().width()\",(function(){var e=this.columns(\":visible\").count(),t=s(\"<tr>\").html(\"<td>\"+Array(e).join(\"</td><td>\")+\"</td>\");s(this.table().body()).append(t);var n=t.children().map((function(){return s(this).outerWidth()}));return t.remove(),this.iterator(\"column\",(function(e,t){var r=j(e,t);return null!==r?n[r]:0}),1)})),a(\"columns().indexes()\",\"column().index()\",(function(e){return this.iterator(\"column\",(function(t,n){return\"visible\"===e?j(t,n):n}),1)})),o(\"columns.adjust()\",(function(){return this.iterator(\"table\",(function(e){e.containerWidth=-1,B(e)}),1)})),o(\"column.index()\",(function(e,t){if(0!==this.context.length){var n=this.context[0];if(\"fromVisible\"===e||\"toData\"===e)return G(n,t);if(\"fromData\"===e||\"toVisible\"===e)return j(n,t)}})),o(\"column()\",(function(e,t){return Et(this.columns(e,t))}));var It,_t;function Rt(e,t){s(e).find(\"span.dt-column-order\").remove(),s(e).find(\"span.dt-column-title\").each((function(){var e=s(this).html();s(this).parent().parent().append(e),s(this).remove()})),s(e).find(\"div.dt-column-\"+t).remove(),s(\"th, td\",e).removeAttr(\"data-dt-column\")}o(\"cells()\",(function(e,t,n){if(s.isPlainObject(e)&&(void 0===e.row?(n=e,e=null):(n=t,t=null)),s.isPlainObject(t)&&(n=t,t=null),null==t)return this.iterator(\"table\",(function(t){return function(e,t,n){var r,i,o,a,l,u,c,p=e.aoData,d=yt(e,n),f=S(T(p,d,\"anCells\")),h=s(_([],f)),g=e.aoColumns.length;return mt(\"cell\",t,(function(t){var n=\"function\"==typeof t;if(null==t||n){for(i=[],o=0,a=d.length;o<a;o++)for(r=d[o],l=0;l<g;l++)u={row:r,column:l},n?(c=p[r],t(u,K(e,r,l),c.anCells?c.anCells[l]:null)&&i.push(u)):i.push(u);return i}if(s.isPlainObject(t))return void 0!==t.column&&void 0!==t.row&&-1!==d.indexOf(t.row)?[t]:[];var f=h.filter(t).map((function(e,t){return{row:t._DT_CellIndex.row,column:t._DT_CellIndex.column}})).toArray();return f.length||!t.nodeName?f:(c=s(t).closest(\"*[data-dt-row]\")).length?[{row:c.data(\"dt-row\"),column:c.data(\"dt-column\")}]:[]}),e,n)}(t,e,vt(n))}));var r,i,o,a,l=n?{page:n.page,order:n.order,search:n.search}:{},u=this.columns(t,l),c=this.rows(e,l),p=this.iterator(\"table\",(function(e,t){var n=[];for(r=0,i=c[t].length;r<i;r++)for(o=0,a=u[t].length;o<a;o++)n.push({row:c[t][r],column:u[t][o]});return n}),1),d=n&&n.selected?this.cells(p,n):p;return s.extend(d.selector,{cols:t,rows:e,opts:n}),d})),a(\"cells().nodes()\",\"cell().node()\",(function(){return this.iterator(\"cell\",(function(e,t,n){var r=e.aoData[t];return r&&r.anCells?r.anCells[n]:void 0}),1)})),o(\"cells().data()\",(function(){return this.iterator(\"cell\",(function(e,t,n){return K(e,t,n)}),1)})),a(\"cells().cache()\",\"cell().cache()\",(function(e){return e=\"search\"===e?\"_aFilterData\":\"_aSortData\",this.iterator(\"cell\",(function(t,n,r){return t.aoData[n][e][r]}),1)})),a(\"cells().render()\",\"cell().render()\",(function(e){return this.iterator(\"cell\",(function(t,n,r){return K(t,n,r,e)}),1)})),a(\"cells().indexes()\",\"cell().index()\",(function(){return this.iterator(\"cell\",(function(e,t,n){return{row:t,column:n,columnVisible:j(e,n)}}),1)})),a(\"cells().invalidate()\",\"cell().invalidate()\",(function(e){return this.iterator(\"cell\",(function(t,n,r){ae(t,n,e,r)}))})),o(\"cell()\",(function(e,t,n){return Et(this.cells(e,t,n))})),o(\"cell().data()\",(function(e){var t,n,r,i,o,a,s=this.context,l=this[0];return void 0===e?s.length&&l.length?K(s[0],l[0].row,l[0].column):void 0:(t=s[0],n=l[0].row,r=l[0].column,i=e,o=t.aoColumns[r],a=t.aoData[n]._aData,o.fnSetData(a,i,{settings:t,row:n,col:r}),ae(s[0],l[0].row,\"data\",l[0].column),this)})),o(\"order()\",(function(e,t){var n=this.context,r=Array.prototype.slice.call(arguments);return void 0===e?0!==n.length?n[0].aaSorting:void 0:(\"number\"==typeof e?e=[[e,t]]:r.length>1&&(e=r),this.iterator(\"table\",(function(t){var n=[];qe(t,n,e),t.aaSorting=n})))})),o(\"order.listener()\",(function(e,t,n){return this.iterator(\"table\",(function(r){Ue(r,e,{},t,n)}))})),o(\"order.fixed()\",(function(e){if(!e){var t=this.context,n=t.length?t[0].aaSortingFixed:void 0;return Array.isArray(n)?{pre:n}:n}return this.iterator(\"table\",(function(t){t.aaSortingFixed=s.extend(!0,{},e)}))})),o([\"columns().order()\",\"column().order()\"],(function(e){var t=this;return e?this.iterator(\"table\",(function(n,r){n.aaSorting=t[r].map((function(t){return[t,e]}))})):this.iterator(\"column\",(function(e,t){for(var n=Ve(e),r=0,i=n.length;r<i;r++)if(n[r].col===t)return n[r].dir;return null}),1)})),a(\"columns().orderable()\",\"column().orderable()\",(function(e){return this.iterator(\"column\",(function(t,n){var r=t.aoColumns[n];return e?r.asSorting:r.bSortable}),1)})),o(\"processing()\",(function(e){return this.iterator(\"table\",(function(t){De(t,e)}))})),o(\"search()\",(function(e,t,n,r){var i=this.context;return void 0===e?0!==i.length?i[0].oPreviousSearch.search:void 0:this.iterator(\"table\",(function(i){i.oFeatures.bFilter&&Se(i,\"object\"==typeof t?s.extend(i.oPreviousSearch,t,{search:e}):s.extend(i.oPreviousSearch,{search:e,regex:null!==t&&t,smart:null===n||n,caseInsensitive:null===r||r}))}))})),o(\"search.fixed()\",(function(e,t){var n=this.iterator(!0,\"table\",(function(n){var r=n.searchFixed;return e?void 0===t?r[e]:(null===t?delete r[e]:r[e]=t,this):Object.keys(r)}));return void 0!==e&&void 0===t?n[0]:n})),a(\"columns().search()\",\"column().search()\",(function(e,t,n,r){return this.iterator(\"column\",(function(i,o){var a=i.aoPreSearchCols;if(void 0===e)return a[o].search;i.oFeatures.bFilter&&(\"object\"==typeof t?s.extend(a[o],t,{search:e}):s.extend(a[o],{search:e,regex:null!==t&&t,smart:null===n||n,caseInsensitive:null===r||r}),Se(i,i.oPreviousSearch))}))})),o([\"columns().search.fixed()\",\"column().search.fixed()\"],(function(e,t){var n=this.iterator(!0,\"column\",(function(n,r){var i=n.aoColumns[r].searchFixed;return e?void 0===t?i[e]||null:(null===t?delete i[e]:i[e]=t,this):Object.keys(i)}));return void 0!==e&&void 0===t?n[0]:n})),o(\"state()\",(function(e,t){if(!e)return this.context.length?this.context[0].oSavedState:null;var n=s.extend(!0,{},e);return this.iterator(\"table\",(function(e){!1!==t&&(n.time=+new Date+100),Ye(e,n,(function(){}))}))})),o(\"state.clear()\",(function(){return this.iterator(\"table\",(function(e){e.fnStateSaveCallback.call(e.oInstance,e,{})}))})),o(\"state.loaded()\",(function(){return this.context.length?this.context[0].oLoadedState:null})),o(\"state.save()\",(function(){return this.iterator(\"table\",(function(e){$e(e)}))})),l.use=function(e,t){var n=\"string\"==typeof e?t:e,r=\"string\"==typeof t?t:e;if(void 0===n&&\"string\"==typeof r)switch(r){case\"lib\":case\"jq\":return s;case\"win\":return window;case\"datetime\":return l.DateTime;case\"luxon\":return Pt;case\"moment\":return kt;case\"bootstrap\":return It||window.bootstrap;case\"foundation\":return _t||window.Foundation;default:return null}\"lib\"===r||\"jq\"===r||n&&n.fn&&n.fn.jquery?s=n:\"win\"===r||n&&n.document?(window=n,document=n.document):\"datetime\"===r||n&&\"DateTime\"===n.type?l.DateTime=n:\"luxon\"===r||n&&n.FixedOffsetZone?Pt=n:\"moment\"===r||n&&n.isMoment?kt=n:\"bootstrap\"===r||n&&n.Modal&&\"modal\"===n.Modal.NAME?It=n:(\"foundation\"===r||n&&n.Reveal)&&(_t=n)},l.factory=function(e,t){var n=!1;return e&&e.document&&(window=e,document=e.document),t&&t.fn&&t.fn.jquery&&(s=t,n=!0),n},l.versionCheck=function(e,t){for(var n,r,i=t?t.split(\".\"):l.version.split(\".\"),o=e.split(\".\"),a=0,s=o.length;a<s;a++)if((n=parseInt(i[a],10)||0)!==(r=parseInt(o[a],10)||0))return n>r;return!0},l.isDataTable=function(e){var t=s(e).get(0),n=!1;return e instanceof l.Api||(s.each(l.settings,(function(e,r){var i=r.nScrollHead?s(\"table\",r.nScrollHead)[0]:null,o=r.nScrollFoot?s(\"table\",r.nScrollFoot)[0]:null;r.nTable!==t&&i!==t&&o!==t||(n=!0)})),n)},l.tables=function(e){var t=!1;s.isPlainObject(e)&&(t=e.api,e=e.visible);var n=l.settings.filter((function(t){return!!(!e||e&&s(t.nTable).is(\":visible\"))})).map((function(e){return e.nTable}));return t?new i(n):n},l.camelToHungarian=O,o(\"$()\",(function(e,t){var n=this.rows(t).nodes(),r=s(n);return s([].concat(r.filter(e).toArray(),r.find(e).toArray()))})),s.each([\"on\",\"one\",\"off\"],(function(e,t){o(t+\"()\",(function(){var e=Array.prototype.slice.call(arguments);e[0]=e[0].split(/\\s/).map((function(e){return e.match(/\\.dt\\b/)?e:e+\".dt\"})).join(\" \");var n=s(this.tables().nodes());return n[t].apply(n,e),this}))})),o(\"clear()\",(function(){return this.iterator(\"table\",(function(e){oe(e)}))})),o(\"error()\",(function(e){return this.iterator(\"table\",(function(t){Ke(t,0,e)}))})),o(\"settings()\",(function(){return new i(this.context,this.context)})),o(\"init()\",(function(){var e=this.context;return e.length?e[0].oInit:null})),o(\"data()\",(function(){return this.iterator(\"table\",(function(e){return x(e.aoData,\"_aData\")})).flatten()})),o(\"trigger()\",(function(e,t,n){return this.iterator(\"table\",(function(r){return nt(r,null,e,t,n)})).flatten()})),o(\"ready()\",(function(e){var t=this.context;return e?this.tables().every((function(){var t=this;this.context[0]._bInitComplete?e.call(t):this.on(\"init.dt.DT\",(function(){e.call(t)}))})):t.length?t[0]._bInitComplete||!1:null})),o(\"destroy()\",(function(e){return e=e||!1,this.iterator(\"table\",(function(t){var n=t.oClasses,r=t.nTable,o=t.nTBody,a=t.nTHead,u=t.nTFoot,c=s(r),p=s(o),d=s(t.nTableWrapper),f=t.aoData.map((function(e){return e?e.nTr:null})),h=n.order;t.bDestroying=!0,nt(t,\"aoDestroyCallback\",\"destroy\",[t],!0),e||new i(t).columns().visible(!0),t.resizeObserver&&t.resizeObserver.disconnect(),d.off(\".DT\").find(\":not(tbody *)\").off(\".DT\"),s(window).off(\".DT-\"+t.sInstance),r!=a.parentNode&&(c.children(\"thead\").detach(),c.append(a)),u&&r!=u.parentNode&&(c.children(\"tfoot\").detach(),c.append(u)),Rt(a,\"header\"),Rt(u,\"footer\"),t.colgroup.remove(),t.aaSorting=[],t.aaSortingFixed=[],Qe(t),s(c).find(\"th, td\").removeClass(s.map(l.ext.type.className,(function(e){return e})).join(\" \")),s(\"th, td\",a).removeClass(h.none+\" \"+h.canAsc+\" \"+h.canDesc+\" \"+h.isAsc+\" \"+h.isDesc).css(\"width\",\"\").removeAttr(\"aria-sort\"),p.children().detach(),p.append(f);var g=t.nTableWrapper.parentNode,m=t.nTableWrapper.nextSibling,v=e?\"remove\":\"detach\";c[v](),d[v](),!e&&g&&(g.insertBefore(r,m),c.css(\"width\",t.sDestroyWidth).removeClass(n.table));var E=l.settings.indexOf(t);-1!==E&&l.settings.splice(E,1)}))})),s.each([\"column\",\"row\",\"cell\"],(function(e,t){o(t+\"s().every()\",(function(e){var n,r=this.selector.opts,i=this,o=0;return this.iterator(\"every\",(function(a,s,l){n=i[t](s,r),\"cell\"===t?e.call(n,n[0][0].row,n[0][0].column,l,o):e.call(n,s,l,o),o++}))}))})),o(\"i18n()\",(function(e,t,n){var r=this.context[0],i=ne(e)(r.oLanguage);return void 0===i&&(i=t),s.isPlainObject(i)&&(i=void 0!==n&&void 0!==i[n]?i[n]:!1===n?i:i._),\"string\"==typeof i?i.replace(\"%d\",n):i})),l.version=\"2.3.5\",l.settings=[],l.models={},l.models.oSearch={caseInsensitive:!0,search:\"\",regex:!1,smart:!0,return:!1},l.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,src:null,idx:-1,displayData:null},l.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:\"std\",sSortingClass:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null,wideStrings:null,searchFixed:null},l.defaults={aaData:null,aaSorting:[[0,\"asc\"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],bAutoWidth:!0,bDeferRender:!0,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:null,titleRow:null,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(e){return e.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnStateLoadCallback:function(e){try{return JSON.parse((-1===e.iStateDuration?sessionStorage:localStorage).getItem(\"DataTables_\"+e.sInstance+\"_\"+location.pathname))}catch(e){return{}}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(e,t){try{(-1===e.iStateDuration?sessionStorage:localStorage).setItem(\"DataTables_\"+e.sInstance+\"_\"+location.pathname,JSON.stringify(t))}catch(e){}},fnStateSaveParams:null,iStateDuration:7200,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{orderable:\": Activate to sort\",orderableReverse:\": Activate to invert sorting\",orderableRemove:\": Activate to remove sorting\",paginate:{first:\"First\",last:\"Last\",next:\"Next\",previous:\"Previous\",number:\"\"}},oPaginate:{sFirst:\"«\",sLast:\"»\",sNext:\"›\",sPrevious:\"‹\"},entries:{_:\"entries\",1:\"entry\"},lengthLabels:{\"-1\":\"All\"},sEmptyTable:\"No data available in table\",sInfo:\"Showing _START_ to _END_ of _TOTAL_ _ENTRIES-TOTAL_\",sInfoEmpty:\"Showing 0 to 0 of 0 _ENTRIES-TOTAL_\",sInfoFiltered:\"(filtered from _MAX_ total _ENTRIES-MAX_)\",sInfoPostFix:\"\",sDecimal:\"\",sThousands:\",\",sLengthMenu:\"_MENU_ _ENTRIES_ per page\",sLoadingRecords:\"Loading...\",sProcessing:\"\",sSearch:\"Search:\",sSearchPlaceholder:\"\",sUrl:\"\",sZeroRecords:\"No matching records found\"},orderDescReverse:!0,oSearch:s.extend({},l.models.oSearch),layout:{topStart:\"pageLength\",topEnd:\"search\",bottomStart:\"info\",bottomEnd:\"paging\"},sDom:null,searchDelay:null,sPaginationType:\"\",sScrollX:\"\",sScrollXInner:\"\",sScrollY:\"\",sServerMethod:\"GET\",renderer:null,rowId:\"DT_RowId\",caption:null,iDeferLoading:null,on:null},w(l.defaults),l.defaults.column={aDataSort:null,iDataSort:-1,ariaTitle:\"\",asSorting:[\"asc\",\"desc\",\"\"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:\"td\",sClass:\"\",sContentPadding:\"\",sDefaultContent:null,sName:\"\",sSortDataType:\"std\",sTitle:null,sType:null,sWidth:null},w(l.defaults.column),l.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:!0,bLengthChange:!0,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollbarLeft:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},searchFixed:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:\"\",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:\"two_button\",pagingControls:0,iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,bAjaxDataGet:!0,jqXHR:null,json:void 0,oAjaxData:void 0,sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return\"ssp\"==ot(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return\"ssp\"==ot(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var e=this._iDisplayLength,t=this._iDisplayStart,n=t+e,r=this.aiDisplay.length,i=this.oFeatures,o=i.bPaginate;return i.bServerSide?!1===o||-1===e?t+r:Math.min(t+e,this._iRecordsDisplay):!o||n>r||-1===e?r:n},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null,caption:\"\",captionNode:null,colgroup:null,deferLoading:null,typeDetect:!0,resizeObserver:null,containerWidth:-1,orderDescReverse:null,orderIndicators:!0,orderHandler:!0,titleRow:null};var wt=l.ext.pager;s.extend(wt,{simple:function(){return[\"previous\",\"next\"]},full:function(){return[\"first\",\"previous\",\"next\",\"last\"]},numbers:function(){return[\"numbers\"]},simple_numbers:function(){return[\"previous\",\"numbers\",\"next\"]},full_numbers:function(){return[\"first\",\"previous\",\"numbers\",\"next\",\"last\"]},first_last:function(){return[\"first\",\"last\"]},first_last_numbers:function(){return[\"first\",\"numbers\",\"last\"]},_numbers:Kt,numbers_length:7}),s.extend(!0,l.ext.renderer,{pagingButton:{_:function(e,t,n,r,i){var o,a=e.oClasses.paging,l=[a.button];return r&&l.push(a.active),i&&l.push(a.disabled),{display:o=\"ellipsis\"===t?s('<span class=\"ellipsis\"></span>').html(n)[0]:s(\"<button>\",{class:l.join(\" \"),role:\"link\",type:\"button\"}).html(n),clicker:o}}},pagingContainer:{_:function(e,t){return t}}});var Ot=function(e,t){return function(n){return m(n)||\"string\"!=typeof n||(n=n.replace(c,\" \"),e&&(n=L(n)),t&&(n=C(n,!1))),n}};function Dt(e,t,n,r,i){return kt?e[t](i):Pt?e[n](i):r?e[r](i):e}var Pt,kt,Mt=!1;function Ft(e,t,n){var r;if(window.luxon&&!Pt&&(Pt=window.luxon),window.moment&&!kt&&(kt=window.moment),kt){if(!(r=kt.utc(e,t,n,!0)).isValid())return null}else if(Pt){if(!(r=t&&\"string\"==typeof e?Pt.DateTime.fromFormat(e,t):Pt.DateTime.fromISO(e)).isValid)return null;r=r.setLocale(n)}else t?(Mt||alert(\"DataTables warning: Formatted date without Moment.js or Luxon - https://datatables.net/tn/17\"),Mt=!0):r=new Date(e);return r}function Bt(e){return function(t,n,r,i){0===arguments.length?(r=\"en\",n=null,t=null):1===arguments.length?(r=\"en\",n=t,t=null):2===arguments.length&&(r=n,n=t,t=null);var o=\"datetime\"+(n?\"-\"+n:\"\");return l.ext.type.order[o+\"-pre\"]||l.type(o,{detect:function(e){return e===o&&o},order:{pre:function(e){return e.valueOf()}},className:\"dt-right\"}),function(a,s){if(null==a)if(\"--now\"===i){var l=new Date;a=new Date(Date.UTC(l.getFullYear(),l.getMonth(),l.getDate(),l.getHours(),l.getMinutes(),l.getSeconds()))}else a=\"\";if(\"type\"===s)return o;if(\"\"===a)return\"sort\"!==s?\"\":Ft(\"0000-01-01 00:00:00\",null,r);if(null!==n&&t===n&&\"sort\"!==s&&\"type\"!==s&&!(a instanceof Date))return a;var u=Ft(a,t,r);if(null===u)return a;if(\"sort\"===s)return u;var c=null===n?Dt(u,\"toDate\",\"toJSDate\",\"\")[e](navigator.language,{timeZone:\"UTC\"}):Dt(u,\"format\",\"toFormat\",\"toISOString\",n);return\"display\"===s?N(c):c}}}var Gt=\",\",jt=\".\";if(void 0!==window.Intl)try{for(var Ut=(new Intl.NumberFormat).formatToParts(100000.1),Ht=0;Ht<Ut.length;Ht++)\"group\"===Ut[Ht].type?Gt=Ut[Ht].value:\"decimal\"===Ut[Ht].type&&(jt=Ut[Ht].value)}catch(e){}l.datetime=function(e,t){var n=\"datetime-\"+e;t||(t=\"en\"),l.ext.type.order[n]||l.type(n,{detect:function(r){var i=Ft(r,e,t);return!(\"\"!==r&&!i)&&n},order:{pre:function(n){return Ft(n,e,t)||0}},className:\"dt-right\"})},l.render={date:Bt(\"toLocaleDateString\"),datetime:Bt(\"toLocaleString\"),time:Bt(\"toLocaleTimeString\"),number:function(e,t,n,r,i){return null==e&&(e=Gt),null==t&&(t=jt),{display:function(o){if(\"number\"!=typeof o&&\"string\"!=typeof o)return o;if(\"\"===o||null===o)return o;var a=o<0?\"-\":\"\",s=parseFloat(o),l=Math.abs(s);if(l>=1e11||l<1e-4&&0!==l){var u=s.toExponential(n).split(/e\\+?/);return u[0]+\" x 10<sup>\"+u[1]+\"</sup>\"}if(isNaN(s))return N(o);s=s.toFixed(n),o=Math.abs(s);var c=parseInt(o,10),p=n?t+(o-c).toFixed(n).substring(2):\"\";return 0===c&&0===parseFloat(p)&&(a=\"\"),a+(r||\"\")+c.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g,e)+p+(i||\"\")}}},text:function(){return{display:N,filter:N}}};var qt=l.ext.type;l.type=function(e,t,n){if(!t)return{className:qt.className[e],detect:qt.detect.find((function(t){return t._name===e})),order:{pre:qt.order[e+\"-pre\"],asc:qt.order[e+\"-asc\"],desc:qt.order[e+\"-desc\"]},render:qt.render[e],search:qt.search[e]};var r=function(t,n){qt[t][e]=n},i=function(t){Object.defineProperty(t,\"_name\",{value:e});var n=qt.detect.findIndex((function(t){return t._name===e}));-1===n?qt.detect.unshift(t):qt.detect.splice(n,1,t)},o=function(t){qt.order[e+\"-pre\"]=t.pre,qt.order[e+\"-asc\"]=t.asc,qt.order[e+\"-desc\"]=t.desc};void 0===n&&(n=t,t=null),\"className\"===t?r(\"className\",n):\"detect\"===t?i(n):\"order\"===t?o(n):\"render\"===t?r(\"render\",n):\"search\"===t?r(\"search\",n):t||(n.className&&r(\"className\",n.className),void 0!==n.detect&&i(n.detect),n.order&&o(n.order),void 0!==n.render&&r(\"render\",n.render),void 0!==n.search&&r(\"search\",n.search))},l.types=function(){return qt.detect.map((function(e){return e._name}))};var Vt=function(e,t){return e=null!=e?e.toString().toLowerCase():\"\",t=null!=t?t.toString().toLowerCase():\"\",e.localeCompare(t,navigator.languages[0]||navigator.language,{numeric:!0,ignorePunctuation:!0})},Wt=function(e,t){return e=L(e),t=L(t),Vt(e,t)};l.type(\"string\",{detect:function(){return\"string\"},order:{pre:function(e){return m(e)&&\"boolean\"!=typeof e?\"\":\"string\"==typeof e?e.toLowerCase():e.toString?e.toString():\"\"}},search:Ot(!1,!0)}),l.type(\"string-utf8\",{detect:{allOf:function(e){return!0},oneOf:function(e){return!m(e)&&navigator.languages&&\"string\"==typeof e&&e.match(/[^\\x00-\\x7F]/)}},order:{asc:Vt,desc:function(e,t){return-1*Vt(e,t)}},search:Ot(!1,!0)}),l.type(\"html\",{detect:{allOf:function(e){return m(e)||\"string\"==typeof e&&-1!==e.indexOf(\"<\")},oneOf:function(e){return!m(e)&&\"string\"==typeof e&&-1!==e.indexOf(\"<\")}},order:{pre:function(e){return m(e)?\"\":e.replace?L(e).trim().toLowerCase():e+\"\"}},search:Ot(!0,!0)}),l.type(\"html-utf8\",{detect:{allOf:function(e){return m(e)||\"string\"==typeof e&&-1!==e.indexOf(\"<\")},oneOf:function(e){return navigator.languages&&!m(e)&&\"string\"==typeof e&&-1!==e.indexOf(\"<\")&&\"string\"==typeof e&&e.match(/[^\\x00-\\x7F]/)}},order:{asc:Wt,desc:function(e,t){return-1*Wt(e,t)}},search:Ot(!0,!0)}),l.type(\"date\",{className:\"dt-type-date\",detect:{allOf:function(e){if(e&&!(e instanceof Date)&&!f.test(e))return null;var t=Date.parse(e);return null!==t&&!isNaN(t)||m(e)},oneOf:function(e){return e instanceof Date||\"string\"==typeof e&&f.test(e)}},order:{pre:function(e){var t=Date.parse(e);return isNaN(t)?-1/0:t}}}),l.type(\"html-num-fmt\",{className:\"dt-type-numeric\",detect:{allOf:function(e,t){var n=t.oLanguage.sDecimal;return b(e,n,!0,!1)},oneOf:function(e,t){var n=t.oLanguage.sDecimal;return b(e,n,!0,!1)}},order:{pre:function(e,t){var n=t.oLanguage.sDecimal;return zt(e,n,p,g)}},search:Ot(!0,!0)}),l.type(\"html-num\",{className:\"dt-type-numeric\",detect:{allOf:function(e,t){var n=t.oLanguage.sDecimal;return b(e,n,!1,!0)},oneOf:function(e,t){var n=t.oLanguage.sDecimal;return b(e,n,!1,!1)}},order:{pre:function(e,t){var n=t.oLanguage.sDecimal;return zt(e,n,p)}},search:Ot(!0,!0)}),l.type(\"num-fmt\",{className:\"dt-type-numeric\",detect:{allOf:function(e,t){var n=t.oLanguage.sDecimal;return y(e,n,!0,!0)},oneOf:function(e,t){var n=t.oLanguage.sDecimal;return y(e,n,!0,!1)}},order:{pre:function(e,t){var n=t.oLanguage.sDecimal;return zt(e,n,g)}}}),l.type(\"num\",{className:\"dt-type-numeric\",detect:{allOf:function(e,t){var n=t.oLanguage.sDecimal;return y(e,n,!1,!0)},oneOf:function(e,t){var n=t.oLanguage.sDecimal;return y(e,n,!1,!1)}},order:{pre:function(e,t){var n=t.oLanguage.sDecimal;return zt(e,n)}}});var zt=function(e,t,n,r){if(0!==e&&(!e||\"-\"===e))return-1/0;var i=typeof e;return\"number\"===i||\"bigint\"===i?e:(t&&(e=E(e,t)),e.replace&&(n&&(e=e.replace(n,\"\")),r&&(e=e.replace(r,\"\"))),1*e)};function Qt(e,t,n){n&&(e[t]=n)}s.extend(!0,l.ext.renderer,{footer:{_:function(e,t,n){t.addClass(n.tfoot.cell)}},header:{_:function(e,t,n){t.addClass(n.thead.cell),e.oFeatures.bSort||t.addClass(n.order.none);var r=e.titleRow,i=t.closest(\"thead\").find(\"tr\"),o=t.parent().index();\"disable\"===t.attr(\"data-dt-order\")||\"disable\"===t.parent().attr(\"data-dt-order\")||!0===r&&0!==o||!1===r&&o!==i.length-1||\"number\"==typeof r&&o!==r||s(e.nTable).on(\"order.dt.DT column-visibility.dt.DT\",(function(r,i,o){if(e===i){var a=i.sortDetails;if(a){var s=x(a,\"col\");if(\"column-visibility\"!==r.type||s.includes(o)){var l,u=n.order,c=i.api.columns(t),p=e.aoColumns[c.flatten()[0]],d=c.orderable().includes(!0),f=\"\",h=c.indexes(),g=c.orderable(!0).flatten(),m=e.iTabIndex,v=i.orderHandler&&d;t.removeClass(u.isAsc+\" \"+u.isDesc).toggleClass(u.none,!d).toggleClass(u.canAsc,v&&g.includes(\"asc\")).toggleClass(u.canDesc,v&&g.includes(\"desc\"));var E=!0;for(l=0;l<h.length;l++)s.includes(h[l])||(E=!1);if(E){var y=c.order();t.addClass(y.includes(\"asc\")?u.isAsc:\"\"+y.includes(\"desc\")?u.isDesc:\"\")}var b=-1;for(l=0;l<s.length;l++)if(e.aoColumns[s[l]].bVisible){b=s[l];break}if(h[0]==b){var T=a[0],A=p.asSorting;t.attr(\"aria-sort\",\"asc\"===T.dir?\"ascending\":\"descending\"),f=A[T.index+1]?\"Reverse\":\"Remove\"}else t.removeAttr(\"aria-sort\");if(d){var S=t.find(\".dt-column-order\");S.attr(\"role\",\"button\").attr(\"aria-label\",d?p.ariaTitle+i.api.i18n(\"oAria.orderable\"+f):p.ariaTitle),-1!==m&&S.attr(\"tabindex\",m)}}}}}))}},layout:{_:function(e,t,n){var r=e.oClasses.layout,i=s(\"<div/>\").attr(\"id\",n.id||null).addClass(n.className||r.row).appendTo(t);l.ext.renderer.layout._forLayoutRow(n,(function(e,t){if(\"id\"!==e&&\"className\"!==e){var n=\"\";t.table&&(i.addClass(r.tableRow),n+=r.tableCell+\" \"),n+=\"start\"===e?r.start:\"end\"===e?r.end:r.full,s(\"<div/>\").attr({id:t.id||null,class:t.className?t.className:r.cell+\" \"+n}).append(t.contents).appendTo(i)}}))},_forLayoutRow:function(e,t){var n=function(e){switch(e){case\"\":return 0;case\"start\":return 1;case\"end\":return 2;default:return 3}};Object.keys(e).sort((function(e,t){return n(e)-n(t)})).forEach((function(n){t(n,e[n])}))}}}),l.feature={},l.feature.register=function(e,t,n){l.ext.features[e]=t,n&&r.feature.push({cFeature:n,fnInit:t})},l.feature.register(\"div\",(function(e,t){var n=s(\"<div>\")[0];return t&&(Qt(n,\"className\",t.className),Qt(n,\"id\",t.id),Qt(n,\"innerHTML\",t.html),Qt(n,\"textContent\",t.text)),n})),l.feature.register(\"info\",(function(e,t){if(!e.oFeatures.bInfo)return null;var n=e.oLanguage,r=e.sTableId,i=s(\"<div/>\",{class:e.oClasses.info.container});return t=s.extend({callback:n.fnInfoCallback,empty:n.sInfoEmpty,postfix:n.sInfoPostFix,search:n.sInfoFiltered,text:n.sInfo},t),e.aoDrawCallback.push((function(e){!function(e,t,n){var r=e._iDisplayStart+1,i=e.fnDisplayEnd(),o=e.fnRecordsTotal(),a=e.fnRecordsDisplay(),s=a?t.text:t.empty;a!==o&&(s+=\" \"+t.search);s+=t.postfix,s=at(e,s),t.callback&&(s=t.callback.call(e.oInstance,e,r,i,o,a,s));n.html(s),nt(e,null,\"info\",[e,n[0],s])}(e,t,i)})),e._infoEl||(i.attr({\"aria-live\":\"polite\",id:r+\"_info\",role:\"status\"}),s(e.nTable).attr(\"aria-describedby\",r+\"_info\"),e._infoEl=i),i}),\"i\");var Xt=0;function $t(e){var t=[];return e.numbers&&t.push(\"numbers\"),e.previousNext&&(t.unshift(\"previous\"),t.push(\"next\")),e.firstLast&&(t.unshift(\"first\"),t.push(\"last\")),t}function Yt(e,t,n,r){var i=e.oLanguage.oPaginate,o={display:\"\",active:!1,disabled:!1};switch(t){case\"ellipsis\":o.display=\"&#x2026;\";break;case\"first\":o.display=i.sFirst,0===n&&(o.disabled=!0);break;case\"previous\":o.display=i.sPrevious,0===n&&(o.disabled=!0);break;case\"next\":o.display=i.sNext,0!==r&&n!==r-1||(o.disabled=!0);break;case\"last\":o.display=i.sLast,0!==r&&n!==r-1||(o.disabled=!0);break;default:\"number\"==typeof t&&(o.display=e.fnFormatNumber(t+1),n===t&&(o.active=!0))}return o}function Kt(e,t,n,r){var i=[],o=Math.floor(n/2),a=r?2:1,s=r?1:0;return t<=n?i=A(0,t):1===n?i=[e]:3===n?e<=1?i=[0,1,\"ellipsis\"]:e>=t-2?(i=A(t-2,t)).unshift(\"ellipsis\"):i=[\"ellipsis\",e,\"ellipsis\"]:e<=o?((i=A(0,n-a)).push(\"ellipsis\"),r&&i.push(t-1)):e>=t-1-o?((i=A(t-(n-a),t)).unshift(\"ellipsis\"),r&&i.unshift(0)):((i=A(e-o+a,e+o-s)).push(\"ellipsis\"),i.unshift(\"ellipsis\"),r&&(i.push(t-1),i.unshift(0))),i}l.feature.register(\"search\",(function(e,t){if(!e.oFeatures.bFilter)return null;var n=e.oClasses.search,r=e.sTableId,i=e.oLanguage,o=e.oPreviousSearch,a='<input type=\"search\" class=\"'+n.input+'\"/>';-1===(t=s.extend({placeholder:i.sSearchPlaceholder,processing:!1,text:i.sSearch},t)).text.indexOf(\"_INPUT_\")&&(t.text+=\"_INPUT_\"),t.text=at(e,t.text);var u=t.text.match(/_INPUT_$/),c=t.text.match(/^_INPUT_/),p=t.text.replace(/_INPUT_/,\"\"),d=\"<label>\"+t.text+\"</label>\";c?d=\"_INPUT_<label>\"+p+\"</label>\":u&&(d=\"<label>\"+p+\"</label>_INPUT_\");var f=s(\"<div>\").addClass(n.container).append(d.replace(/_INPUT_/,a));f.find(\"label\").attr(\"for\",\"dt-search-\"+Xt),f.find(\"input\").attr(\"id\",\"dt-search-\"+Xt),Xt++;var h=function(n){var r=this.value;o.return&&\"Enter\"!==n.key||r!=o.search&&Pe(e,t.processing,(function(){o.search=r,Se(e,o),e._iDisplayStart=0,he(e)}))},g=null!==e.searchDelay?e.searchDelay:0,m=s(\"input\",f).val(o.search).attr(\"placeholder\",t.placeholder).on(\"keyup.DT search.DT input.DT paste.DT cut.DT\",g?l.util.debounce(h,g):h).on(\"mouseup.DT\",(function(e){setTimeout((function(){h.call(m[0],e)}),10)})).on(\"keypress.DT\",(function(e){if(13==e.keyCode)return!1})).attr(\"aria-controls\",r);return s(e.nTable).on(\"search.dt.DT\",(function(t,n){e===n&&m[0]!==document.activeElement&&m.val(\"function\"!=typeof o.search?o.search:\"\")})),f}),\"f\"),l.feature.register(\"paging\",(function(e,t){if(!e.oFeatures.bPaginate)return null;t=s.extend({buttons:l.ext.pager.numbers_length,type:e.sPaginationType,boundaryNumbers:!0,firstLast:!0,previousNext:!0,numbers:!0},t);var n=s(\"<div/>\").addClass(e.oClasses.paging.container+(t.type?\" paging_\"+t.type:\"\")).append(s(\"<nav>\").attr(\"aria-label\",\"pagination\").addClass(e.oClasses.paging.nav)),r=function(){!function e(t,n,r){if(!t._bInitComplete)return;var i=r.type?l.ext.pager[r.type]:$t,o=t.oLanguage.oAria.paginate||{},a=t._iDisplayStart,u=t._iDisplayLength,c=t.fnRecordsDisplay(),p=-1===u,d=p?0:Math.ceil(a/u),f=p?1:Math.ceil(c/u),h=[],g=[],m=i(r).map((function(e){return\"numbers\"===e?Kt(d,f,r.buttons,r.boundaryNumbers):e}));h=h.concat.apply(h,m);for(var v=0;v<h.length;v++){var E=h[v],y=Yt(t,E,d,f),b=it(t,\"pagingButton\")(t,E,y.display,y.active,y.disabled),x=\"string\"==typeof E?o[E]:o.number?o.number+(E+1):null;s(b.clicker).attr({\"aria-controls\":t.sTableId,\"aria-disabled\":y.disabled?\"true\":null,\"aria-current\":y.active?\"page\":null,\"aria-label\":x,\"data-dt-idx\":E,tabIndex:y.disabled?-1:t.iTabIndex&&\"span\"!==b.clicker[0].nodeName.toLowerCase()?t.iTabIndex:null}),\"number\"!=typeof E&&s(b.clicker).addClass(E),et(b.clicker,{action:E},(function(e){e.preventDefault(),Oe(t,e.data.action,!0)})),g.push(b.display)}var T=it(t,\"pagingContainer\")(t,g),A=n.find(document.activeElement).data(\"dt-idx\");n.empty().append(T),void 0!==A&&n.find(\"[data-dt-idx=\"+A+\"]\").trigger(\"focus\");if(g.length){var S=s(g[0]).outerHeight();r.buttons>1&&S>0&&s(n).height()>=2*S-10&&e(t,n,s.extend({},r,{buttons:r.buttons-2}))}}(e,n.children(),t)};return e.aoDrawCallback.push(r),s(e.nTable).on(\"column-sizing.dt.DT\",r),n}),\"p\");var Jt=0;l.feature.register(\"pageLength\",(function(e,t){var n=e.oFeatures;if(!n.bPaginate||!n.bLengthChange)return null;t=s.extend({menu:e.aLengthMenu,text:e.oLanguage.sLengthMenu},t);var r,i=e.oClasses.length,o=e.sTableId,a=t.menu,l=[],u=[];if(Array.isArray(a[0]))l=a[0],u=a[1];else for(r=0;r<a.length;r++)s.isPlainObject(a[r])?(l.push(a[r].value),u.push(a[r].label)):(l.push(a[r]),u.push(a[r]));var c=t.text.match(/_MENU_$/),p=t.text.match(/^_MENU_/),d=t.text.replace(/_MENU_/,\"\"),f=\"<label>\"+t.text+\"</label>\";p?f=\"_MENU_<label>\"+d+\"</label>\":c&&(f=\"<label>\"+d+\"</label>_MENU_\");var h=\"tmp-\"+ +new Date,g=s(\"<div/>\").addClass(i.container).append(f.replace(\"_MENU_\",'<span id=\"'+h+'\"></span>')),m=[];Array.prototype.slice.call(g.find(\"label\")[0].childNodes).forEach((function(e){e.nodeType===Node.TEXT_NODE&&m.push({el:e,text:e.textContent})}));var v=function(t){m.forEach((function(n){n.el.textContent=at(e,n.text,t)}))},E=s(\"<select/>\",{\"aria-controls\":o,class:i.select});for(r=0;r<l.length;r++){var y=e.api.i18n(\"lengthLabels.\"+l[r],null);null===y&&(y=\"number\"==typeof u[r]?e.fnFormatNumber(u[r]):u[r]),E[0][r]=new Option(y,l[r])}return g.find(\"label\").attr(\"for\",\"dt-length-\"+Jt),E.attr(\"id\",\"dt-length-\"+Jt),Jt++,g.find(\"#\"+h).replaceWith(E),s(\"select\",g).val(e._iDisplayLength).on(\"change.DT\",(function(){we(e,s(this).val()),he(e)})),s(e.nTable).on(\"length.dt.DT\",(function(t,n,r){e===n&&(s(\"select\",g).val(r),v(r))})),v(e._iDisplayLength),g}),\"l\"),s.fn.dataTable=l,l.$=s,s.fn.dataTableSettings=l.settings,s.fn.dataTableExt=l.ext,s.fn.DataTable=function(e){return s(this).dataTable(e).api()},s.each(l,(function(e,t){s.fn.DataTable[e]=t}));const Zt=l},5757:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(){return[]}},5764:(e,t,n)=>{\"use strict\";n.r(t)},5788:(e,t,n)=>{e.exports=[n(5355),n(8199),n(7837),n(732),n(1850),n(8883)]},5826:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>d});const r=function(){this.__data__=[],this.size=0};var i=n(7348);const o=function(e,t){for(var n=e.length;n--;)if((0,i.A)(e[n][0],t))return n;return-1};var a=Array.prototype.splice;const s=function(e){var t=this.__data__,n=o(t,e);return!(n<0)&&(n==t.length-1?t.pop():a.call(t,n,1),--this.size,!0)};const l=function(e){var t=this.__data__,n=o(t,e);return n<0?void 0:t[n][1]};const u=function(e){return o(this.__data__,e)>-1};const c=function(e,t){var n=this.__data__,r=o(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function p(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}p.prototype.clear=r,p.prototype.delete=s,p.prototype.get=l,p.prototype.has=u,p.prototype.set=c;const d=p},5955:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>A});var r=n(3779),i=n(8023);const o=function(e,t,n,o){var a=n.length,s=a,l=!o;if(null==e)return!s;for(e=Object(e);a--;){var u=n[a];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++a<s;){var c=(u=n[a])[0],p=e[c],d=u[1];if(l&&u[2]){if(void 0===p&&!(c in e))return!1}else{var f=new r.A;if(o)var h=o(p,d,c,e,t,f);if(!(void 0===h?(0,i.A)(d,p,3,o,f):h))return!1}}return!0};var a=n(6809);const s=function(e){return e==e&&!(0,a.A)(e)};var l=n(6826);const u=function(e){for(var t=(0,l.A)(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,s(i)]}return t};const c=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}};const p=function(e){var t=u(e);return 1==t.length&&t[0][2]?c(t[0][0],t[0][1]):function(n){return n===e||o(n,e,t)}};var d=n(6074);const f=function(e,t,n){var r=null==e?void 0:(0,d.A)(e,t);return void 0===r?n:r};var h=n(6928),g=n(9758),m=n(761);const v=function(e,t){return(0,g.A)(e)&&s(t)?c((0,m.A)(e),t):function(n){var r=f(n,e);return void 0===r&&r===t?(0,h.A)(n,e):(0,i.A)(t,r,3)}};var E=n(1100),y=n(8285);const b=function(e){return function(t){return null==t?void 0:t[e]}};const x=function(e){return function(t){return(0,d.A)(t,e)}};const T=function(e){return(0,g.A)(e)?b((0,m.A)(e)):x(e)};const A=function(e){return\"function\"==typeof e?e:null==e?E.A:\"object\"==typeof e?(0,y.A)(e)?v(e[0],e[1]):p(e):T(e)}},6037:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>s});var r=n(7476),i=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,o=i&&\"object\"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===i&&r.A.process;const s=function(){try{var e=o&&o.require&&o.require(\"util\").types;return e||a&&a.binding&&a.binding(\"util\")}catch(e){}}()},6074:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(8563),i=n(761);const o=function(e,t){for(var n=0,o=(t=(0,r.A)(t,e)).length;null!=e&&n<o;)e=e[(0,i.A)(t[n++])];return n&&n==o?e:void 0}},6095:(e,t)=>{\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=[],r=\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\";t.definition={prefix:\"fas\",iconName:\"table\",icon:[512,512,n,\"f0ce\",r]},t.faTable=t.definition,t.prefix=\"fas\",t.iconName=\"table\",t.width=512,t.height=512,t.ligatures=n,t.unicode=\"f0ce\",t.svgPathData=r},6118:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>l});var r=n(8377);const i=function(){return!1};var o=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,a=o&&\"object\"==typeof module&&module&&!module.nodeType&&module,s=a&&a.exports===o?r.A.Buffer:void 0;const l=(s?s.isBuffer:void 0)||i},6422:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[i++]=a)}return o}},6425:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>K});var r=n(3779);const i=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e};var o=n(7903),a=n(6531),s=n(6826);const l=function(e,t){return e&&(0,a.A)(t,(0,s.A)(t),e)};var u=n(6962);const c=function(e,t){return e&&(0,a.A)(t,(0,u.A)(t),e)};var p=n(3382),d=n(1779),f=n(4508);const h=function(e,t){return(0,a.A)(e,(0,f.A)(e),t)};var g=n(2020),m=n(7827),v=n(5757);const E=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)(0,g.A)(t,(0,f.A)(e)),e=(0,m.A)(e);return t}:v.A;const y=function(e,t){return(0,a.A)(e,E(e),t)};var b=n(6886),x=n(9091);const T=function(e){return(0,x.A)(e,u.A,E)};var A=n(4889),S=Object.prototype.hasOwnProperty;const L=function(e){var t=e.length,n=new e.constructor(t);return t&&\"string\"==typeof e[0]&&S.call(e,\"index\")&&(n.index=e.index,n.input=e.input),n};var N=n(1273);const C=function(e,t){var n=t?(0,N.A)(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)};var I=/\\w*$/;const _=function(e){var t=new e.constructor(e.source,I.exec(e));return t.lastIndex=e.lastIndex,t};var R=n(7181),w=R.A?R.A.prototype:void 0,O=w?w.valueOf:void 0;const D=function(e){return O?Object(O.call(e)):{}};var P=n(9741);const k=function(e,t,n){var r=e.constructor;switch(t){case\"[object ArrayBuffer]\":return(0,N.A)(e);case\"[object Boolean]\":case\"[object Date]\":return new r(+e);case\"[object DataView]\":return C(e,n);case\"[object Float32Array]\":case\"[object Float64Array]\":case\"[object Int8Array]\":case\"[object Int16Array]\":case\"[object Int32Array]\":case\"[object Uint8Array]\":case\"[object Uint8ClampedArray]\":case\"[object Uint16Array]\":case\"[object Uint32Array]\":return(0,P.A)(e,n);case\"[object Map]\":return new r;case\"[object Number]\":case\"[object String]\":return new r(e);case\"[object RegExp]\":return _(e);case\"[object Set]\":return new r;case\"[object Symbol]\":return D(e)}};var M=n(9557),F=n(8285),B=n(6118),G=n(8214);const j=function(e){return(0,G.A)(e)&&\"[object Map]\"==(0,A.A)(e)};var U=n(9161),H=n(6037),q=H.A&&H.A.isMap;const V=q?(0,U.A)(q):j;var W=n(6809);const z=function(e){return(0,G.A)(e)&&\"[object Set]\"==(0,A.A)(e)};var Q=H.A&&H.A.isSet;const X=Q?(0,U.A)(Q):z;var $={};$[\"[object Arguments]\"]=$[\"[object Array]\"]=$[\"[object ArrayBuffer]\"]=$[\"[object DataView]\"]=$[\"[object Boolean]\"]=$[\"[object Date]\"]=$[\"[object Float32Array]\"]=$[\"[object Float64Array]\"]=$[\"[object Int8Array]\"]=$[\"[object Int16Array]\"]=$[\"[object Int32Array]\"]=$[\"[object Map]\"]=$[\"[object Number]\"]=$[\"[object Object]\"]=$[\"[object RegExp]\"]=$[\"[object Set]\"]=$[\"[object String]\"]=$[\"[object Symbol]\"]=$[\"[object Uint8Array]\"]=$[\"[object Uint8ClampedArray]\"]=$[\"[object Uint16Array]\"]=$[\"[object Uint32Array]\"]=!0,$[\"[object Error]\"]=$[\"[object Function]\"]=$[\"[object WeakMap]\"]=!1;const Y=function e(t,n,a,f,g,m){var v,E=1&n,x=2&n,S=4&n;if(a&&(v=g?a(t,f,g,m):a(t)),void 0!==v)return v;if(!(0,W.A)(t))return t;var N=(0,F.A)(t);if(N){if(v=L(t),!E)return(0,d.A)(t,v)}else{var C=(0,A.A)(t),I=\"[object Function]\"==C||\"[object GeneratorFunction]\"==C;if((0,B.A)(t))return(0,p.A)(t,E);if(\"[object Object]\"==C||\"[object Arguments]\"==C||I&&!g){if(v=x||I?{}:(0,M.A)(t),!E)return x?y(t,c(v,t)):h(t,l(v,t))}else{if(!$[C])return g?t:{};v=k(t,C,E)}}m||(m=new r.A);var _=m.get(t);if(_)return _;m.set(t,v),X(t)?t.forEach((function(r){v.add(e(r,n,a,r,t,m))})):V(t)&&t.forEach((function(r,i){v.set(i,e(r,n,a,i,t,m))}));var R=S?x?T:b.A:x?u.A:s.A,w=N?void 0:R(t);return i(w||t,(function(r,i){w&&(r=t[i=r]),(0,o.A)(v,i,e(r,n,a,i,t,m))})),v};const K=function(e){return Y(e,5)}},6531:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(7903),i=n(8292);const o=function(e,t,n,o){var a=!n;n||(n={});for(var s=-1,l=t.length;++s<l;){var u=t[s],c=o?o(n[u],e[u],u,n,e):void 0;void 0===c&&(c=e[u]),a?(0,i.A)(n,u,c):(0,r.A)(n,u,c)}return n}},6583:(e,t,n)=>{!function(e){\"use strict\";function t(e,t,n,r){this.cm=e,this.options=r;var i={listenForChanges:!1};for(var o in r)i[o]=r[o];i.className||(i.className=\"CodeMirror-search-match\"),this.annotation=e.annotateScrollbar(i),this.query=t,this.caseFold=n,this.gap={from:e.firstLine(),to:e.lastLine()+1},this.matches=[],this.update=null,this.findMatches(),this.annotation.update(this.matches);var a=this;e.on(\"change\",this.changeHandler=function(e,t){a.onChange(t)})}function n(e,t,n){return e<=t?e:Math.max(t,e+n)}e.defineExtension(\"showMatchesOnScrollbar\",(function(e,n,r){return\"string\"==typeof r&&(r={className:r}),r||(r={}),new t(this,e,n,r)})),t.prototype.findMatches=function(){if(this.gap){for(var t=0;t<this.matches.length&&!((i=this.matches[t]).from.line>=this.gap.to);t++)i.to.line>=this.gap.from&&this.matches.splice(t--,1);for(var n=this.cm.getSearchCursor(this.query,e.Pos(this.gap.from,0),{caseFold:this.caseFold,multiline:this.options.multiline}),r=this.options&&this.options.maxMatches||1e3;n.findNext();){var i;if((i={from:n.from(),to:n.to()}).from.line>=this.gap.to)break;if(this.matches.splice(t++,0,i),this.matches.length>r)break}this.gap=null}},t.prototype.onChange=function(t){var r=t.from.line,i=e.changeEnd(t).line,o=i-t.to.line;if(this.gap?(this.gap.from=Math.min(n(this.gap.from,r,o),t.from.line),this.gap.to=Math.max(n(this.gap.to,r,o),t.from.line)):this.gap={from:t.from.line,to:i+1},o)for(var a=0;a<this.matches.length;a++){var s=this.matches[a],l=n(s.from.line,r,o);l!=s.from.line&&(s.from=e.Pos(l,s.from.ch));var u=n(s.to.line,r,o);u!=s.to.line&&(s.to=e.Pos(u,s.to.ch))}clearTimeout(this.update);var c=this;this.update=setTimeout((function(){c.updateAfterChange()}),250)},t.prototype.updateAfterChange=function(){this.findMatches(),this.annotation.update(this.matches)},t.prototype.clear=function(){this.cm.off(\"change\",this.changeHandler),this.annotation.clear()}}(n(1719),n(404),n(9298))},6691:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>s});const r=(0,n(4636).A)({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"});var i=n(2965),o=/[&<>\"']/g,a=RegExp(o.source);const s=function(e){return(e=(0,i.A)(e))&&a.test(e)?e.replace(o,r):e}},6732:(e,t,n)=>{\"use strict\";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e){return(o=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function l(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function u(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||function(e,t){if(!e)return;if(\"string\"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(e,t)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.r(t),n.d(t,{MultiDrag:()=>At,Sortable:()=>Ve,Swap:()=>dt,default:()=>Nt});function p(e){if(\"undefined\"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var d=p(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i),f=p(/Edge/i),h=p(/firefox/i),g=p(/safari/i)&&!p(/chrome/i)&&!p(/android/i),m=p(/iP(ad|od|hone)/i),v=p(/chrome/i)&&p(/android/i),E={capture:!1,passive:!1};function y(e,t,n){e.addEventListener(t,n,!d&&E)}function b(e,t,n){e.removeEventListener(t,n,!d&&E)}function x(e,t){if(t){if(\">\"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(e){return!1}return!1}}function T(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function A(e,t,n,r){if(e){n=n||document;do{if(null!=t&&(\">\"===t[0]?e.parentNode===n&&x(e,t):x(e,t))||r&&e===n)return e;if(e===n)break}while(e=T(e))}return null}var S,L=/\\s+/g;function N(e,t,n){if(e&&t)if(e.classList)e.classList[n?\"add\":\"remove\"](t);else{var r=(\" \"+e.className+\" \").replace(L,\" \").replace(\" \"+t+\" \",\" \");e.className=(r+(n?\" \"+t:\"\")).replace(L,\" \")}}function C(e,t,n){var r=e&&e.style;if(r){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,\"\"):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in r||-1!==t.indexOf(\"webkit\")||(t=\"-webkit-\"+t),r[t]=n+(\"string\"==typeof n?\"\":\"px\")}}function I(e,t){var n=\"\";if(\"string\"==typeof e)n=e;else do{var r=C(e,\"transform\");r&&\"none\"!==r&&(n=r+\" \"+n)}while(!t&&(e=e.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function _(e,t,n){if(e){var r=e.getElementsByTagName(t),i=0,o=r.length;if(n)for(;i<o;i++)n(r[i],i);return r}return[]}function R(){var e=document.scrollingElement;return e||document.documentElement}function w(e,t,n,r,i){if(e.getBoundingClientRect||e===window){var o,a,s,l,u,c,p;if(e!==window&&e.parentNode&&e!==R()?(a=(o=e.getBoundingClientRect()).top,s=o.left,l=o.bottom,u=o.right,c=o.height,p=o.width):(a=0,s=0,l=window.innerHeight,u=window.innerWidth,c=window.innerHeight,p=window.innerWidth),(t||n)&&e!==window&&(i=i||e.parentNode,!d))do{if(i&&i.getBoundingClientRect&&(\"none\"!==C(i,\"transform\")||n&&\"static\"!==C(i,\"position\"))){var f=i.getBoundingClientRect();a-=f.top+parseInt(C(i,\"border-top-width\")),s-=f.left+parseInt(C(i,\"border-left-width\")),l=a+o.height,u=s+o.width;break}}while(i=i.parentNode);if(r&&e!==window){var h=I(i||e),g=h&&h.a,m=h&&h.d;h&&(l=(a/=m)+(c/=m),u=(s/=g)+(p/=g))}return{top:a,left:s,bottom:l,right:u,width:p,height:c}}}function O(e,t,n){for(var r=F(e,!0),i=w(e)[t];r;){var o=w(r)[n];if(!(\"top\"===n||\"left\"===n?i>=o:i<=o))return r;if(r===R())break;r=F(r,!1)}return!1}function D(e,t,n,r){for(var i=0,o=0,a=e.children;o<a.length;){if(\"none\"!==a[o].style.display&&a[o]!==Ve.ghost&&(r||a[o]!==Ve.dragged)&&A(a[o],n.draggable,e,!1)){if(i===t)return a[o];i++}o++}return null}function P(e,t){for(var n=e.lastElementChild;n&&(n===Ve.ghost||\"none\"===C(n,\"display\")||t&&!x(n,t));)n=n.previousElementSibling;return n||null}function k(e,t){var n=0;if(!e||!e.parentNode)return-1;for(;e=e.previousElementSibling;)\"TEMPLATE\"===e.nodeName.toUpperCase()||e===Ve.clone||t&&!x(e,t)||n++;return n}function M(e){var t=0,n=0,r=R();if(e)do{var i=I(e),o=i.a,a=i.d;t+=e.scrollLeft*o,n+=e.scrollTop*a}while(e!==r&&(e=e.parentNode));return[t,n]}function F(e,t){if(!e||!e.getBoundingClientRect)return R();var n=e,r=!1;do{if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var i=C(n);if(n.clientWidth<n.scrollWidth&&(\"auto\"==i.overflowX||\"scroll\"==i.overflowX)||n.clientHeight<n.scrollHeight&&(\"auto\"==i.overflowY||\"scroll\"==i.overflowY)){if(!n.getBoundingClientRect||n===document.body)return R();if(r||t)return n;r=!0}}}while(n=n.parentNode);return R()}function B(e,t){return Math.round(e.top)===Math.round(t.top)&&Math.round(e.left)===Math.round(t.left)&&Math.round(e.height)===Math.round(t.height)&&Math.round(e.width)===Math.round(t.width)}function G(e,t){return function(){if(!S){var n=arguments,r=this;1===n.length?e.call(r,n[0]):e.apply(r,n),S=setTimeout((function(){S=void 0}),t)}}}function j(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function U(e){var t=window.Polymer,n=window.jQuery||window.Zepto;return t&&t.dom?t.dom(e).cloneNode(!0):n?n(e).clone(!0)[0]:e.cloneNode(!0)}function H(e,t){C(e,\"position\",\"absolute\"),C(e,\"top\",t.top),C(e,\"left\",t.left),C(e,\"width\",t.width),C(e,\"height\",t.height)}function q(e){C(e,\"position\",\"\"),C(e,\"top\",\"\"),C(e,\"left\",\"\"),C(e,\"width\",\"\"),C(e,\"height\",\"\")}function V(e,t,n){var r={};return Array.from(e.children).forEach((function(i){var o,a,s,l;if(A(i,t.draggable,e,!1)&&!i.animated&&i!==n){var u=w(i);r.left=Math.min(null!==(o=r.left)&&void 0!==o?o:1/0,u.left),r.top=Math.min(null!==(a=r.top)&&void 0!==a?a:1/0,u.top),r.right=Math.max(null!==(s=r.right)&&void 0!==s?s:-1/0,u.right),r.bottom=Math.max(null!==(l=r.bottom)&&void 0!==l?l:-1/0,u.bottom)}})),r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}var W=\"Sortable\"+(new Date).getTime();function z(){var e,t=[];return{captureAnimationState:function(){(t=[],this.options.animation)&&[].slice.call(this.el.children).forEach((function(e){if(\"none\"!==C(e,\"display\")&&e!==Ve.ghost){t.push({target:e,rect:w(e)});var n=i({},t[t.length-1].rect);if(e.thisAnimationDuration){var r=I(e,!0);r&&(n.top-=r.f,n.left-=r.e)}e.fromRect=n}}))},addAnimationState:function(e){t.push(e)},removeAnimationState:function(e){t.splice(function(e,t){for(var n in e)if(e.hasOwnProperty(n))for(var r in t)if(t.hasOwnProperty(r)&&t[r]===e[n][r])return Number(n);return-1}(t,{target:e}),1)},animateAll:function(n){var r=this;if(!this.options.animation)return clearTimeout(e),void(\"function\"==typeof n&&n());var i=!1,o=0;t.forEach((function(e){var t=0,n=e.target,a=n.fromRect,s=w(n),l=n.prevFromRect,u=n.prevToRect,c=e.rect,p=I(n,!0);p&&(s.top-=p.f,s.left-=p.e),n.toRect=s,n.thisAnimationDuration&&B(l,s)&&!B(a,s)&&(c.top-s.top)/(c.left-s.left)==(a.top-s.top)/(a.left-s.left)&&(t=function(e,t,n,r){return Math.sqrt(Math.pow(t.top-e.top,2)+Math.pow(t.left-e.left,2))/Math.sqrt(Math.pow(t.top-n.top,2)+Math.pow(t.left-n.left,2))*r.animation}(c,l,u,r.options)),B(s,a)||(n.prevFromRect=a,n.prevToRect=s,t||(t=r.options.animation),r.animate(n,c,s,t)),t&&(i=!0,o=Math.max(o,t),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout((function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null}),t),n.thisAnimationDuration=t)})),clearTimeout(e),i?e=setTimeout((function(){\"function\"==typeof n&&n()}),o):\"function\"==typeof n&&n(),t=[]},animate:function(e,t,n,r){if(r){C(e,\"transition\",\"\"),C(e,\"transform\",\"\");var i=I(this.el),o=i&&i.a,a=i&&i.d,s=(t.left-n.left)/(o||1),l=(t.top-n.top)/(a||1);e.animatingX=!!s,e.animatingY=!!l,C(e,\"transform\",\"translate3d(\"+s+\"px,\"+l+\"px,0)\"),this.forRepaintDummy=function(e){return e.offsetWidth}(e),C(e,\"transition\",\"transform \"+r+\"ms\"+(this.options.easing?\" \"+this.options.easing:\"\")),C(e,\"transform\",\"translate3d(0,0,0)\"),\"number\"==typeof e.animated&&clearTimeout(e.animated),e.animated=setTimeout((function(){C(e,\"transition\",\"\"),C(e,\"transform\",\"\"),e.animated=!1,e.animatingX=!1,e.animatingY=!1}),r)}}}}var Q=[],X={initializeByDefault:!0},$={mount:function(e){for(var t in X)X.hasOwnProperty(t)&&!(t in e)&&(e[t]=X[t]);Q.forEach((function(t){if(t.pluginName===e.pluginName)throw\"Sortable: Cannot mount plugin \".concat(e.pluginName,\" more than once\")})),Q.push(e)},pluginEvent:function(e,t,n){var r=this;this.eventCanceled=!1,n.cancel=function(){r.eventCanceled=!0};var o=e+\"Global\";Q.forEach((function(r){t[r.pluginName]&&(t[r.pluginName][o]&&t[r.pluginName][o](i({sortable:t},n)),t.options[r.pluginName]&&t[r.pluginName][e]&&t[r.pluginName][e](i({sortable:t},n)))}))},initializePlugins:function(e,t,n,r){for(var i in Q.forEach((function(r){var i=r.pluginName;if(e.options[i]||r.initializeByDefault){var o=new r(e,t,e.options);o.sortable=e,o.options=e.options,e[i]=o,s(n,o.defaults)}})),e.options)if(e.options.hasOwnProperty(i)){var o=this.modifyOption(e,i,e.options[i]);void 0!==o&&(e.options[i]=o)}},getEventProperties:function(e,t){var n={};return Q.forEach((function(r){\"function\"==typeof r.eventProperties&&s(n,r.eventProperties.call(t[r.pluginName],e))})),n},modifyOption:function(e,t,n){var r;return Q.forEach((function(i){e[i.pluginName]&&i.optionListeners&&\"function\"==typeof i.optionListeners[t]&&(r=i.optionListeners[t].call(e[i.pluginName],n))})),r}};function Y(e){var t=e.sortable,n=e.rootEl,r=e.name,o=e.targetEl,a=e.cloneEl,s=e.toEl,l=e.fromEl,u=e.oldIndex,c=e.newIndex,p=e.oldDraggableIndex,h=e.newDraggableIndex,g=e.originalEvent,m=e.putSortable,v=e.extraEventProperties;if(t=t||n&&n[W]){var E,y=t.options,b=\"on\"+r.charAt(0).toUpperCase()+r.substr(1);!window.CustomEvent||d||f?(E=document.createEvent(\"Event\")).initEvent(r,!0,!0):E=new CustomEvent(r,{bubbles:!0,cancelable:!0}),E.to=s||n,E.from=l||n,E.item=o||n,E.clone=a,E.oldIndex=u,E.newIndex=c,E.oldDraggableIndex=p,E.newDraggableIndex=h,E.originalEvent=g,E.pullMode=m?m.lastPutMode:void 0;var x=i(i({},v),$.getEventProperties(r,t));for(var T in x)E[T]=x[T];n&&n.dispatchEvent(E),y[b]&&y[b].call(t,E)}}var K=[\"evt\"],J=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.evt,o=l(n,K);$.pluginEvent.bind(Ve)(e,t,i({dragEl:ee,parentEl:te,ghostEl:ne,rootEl:re,nextEl:ie,lastDownEl:oe,cloneEl:ae,cloneHidden:se,dragStarted:be,putSortable:fe,activeSortable:Ve.active,originalEvent:r,oldIndex:le,oldDraggableIndex:ce,newIndex:ue,newDraggableIndex:pe,hideGhostForTarget:je,unhideGhostForTarget:Ue,cloneNowHidden:function(){se=!0},cloneNowShown:function(){se=!1},dispatchSortableEvent:function(e){Z({sortable:t,name:e,originalEvent:r})}},o))};function Z(e){Y(i({putSortable:fe,cloneEl:ae,targetEl:ee,rootEl:re,oldIndex:le,oldDraggableIndex:ce,newIndex:ue,newDraggableIndex:pe},e))}var ee,te,ne,re,ie,oe,ae,se,le,ue,ce,pe,de,fe,he,ge,me,ve,Ee,ye,be,xe,Te,Ae,Se,Le=!1,Ne=!1,Ce=[],Ie=!1,_e=!1,Re=[],we=!1,Oe=[],De=\"undefined\"!=typeof document,Pe=m,ke=f||d?\"cssFloat\":\"float\",Me=De&&!v&&!m&&\"draggable\"in document.createElement(\"div\"),Fe=function(){if(De){if(d)return!1;var e=document.createElement(\"x\");return e.style.cssText=\"pointer-events:auto\",\"auto\"===e.style.pointerEvents}}(),Be=function(e,t){var n=C(e),r=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=D(e,0,t),o=D(e,1,t),a=i&&C(i),s=o&&C(o),l=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+w(i).width,u=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+w(o).width;if(\"flex\"===n.display)return\"column\"===n.flexDirection||\"column-reverse\"===n.flexDirection?\"vertical\":\"horizontal\";if(\"grid\"===n.display)return n.gridTemplateColumns.split(\" \").length<=1?\"vertical\":\"horizontal\";if(i&&a.float&&\"none\"!==a.float){var c=\"left\"===a.float?\"left\":\"right\";return!o||\"both\"!==s.clear&&s.clear!==c?\"horizontal\":\"vertical\"}return i&&(\"block\"===a.display||\"flex\"===a.display||\"table\"===a.display||\"grid\"===a.display||l>=r&&\"none\"===n[ke]||o&&\"none\"===n[ke]&&l+u>r)?\"vertical\":\"horizontal\"},Ge=function(e){function t(e,n){return function(r,i,o,a){var s=r.options.group.name&&i.options.group.name&&r.options.group.name===i.options.group.name;if(null==e&&(n||s))return!0;if(null==e||!1===e)return!1;if(n&&\"clone\"===e)return e;if(\"function\"==typeof e)return t(e(r,i,o,a),n)(r,i,o,a);var l=(n?r:i).options.group.name;return!0===e||\"string\"==typeof e&&e===l||e.join&&e.indexOf(l)>-1}}var n={},r=e.group;r&&\"object\"==o(r)||(r={name:r}),n.name=r.name,n.checkPull=t(r.pull,!0),n.checkPut=t(r.put),n.revertClone=r.revertClone,e.group=n},je=function(){!Fe&&ne&&C(ne,\"display\",\"none\")},Ue=function(){!Fe&&ne&&C(ne,\"display\",\"\")};De&&!v&&document.addEventListener(\"click\",(function(e){if(Ne)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Ne=!1,!1}),!0);var He=function(e){if(ee){e=e.touches?e.touches[0]:e;var t=(i=e.clientX,o=e.clientY,Ce.some((function(e){var t=e[W].options.emptyInsertThreshold;if(t&&!P(e)){var n=w(e),r=i>=n.left-t&&i<=n.right+t,s=o>=n.top-t&&o<=n.bottom+t;return r&&s?a=e:void 0}})),a);if(t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);n.target=n.rootEl=t,n.preventDefault=void 0,n.stopPropagation=void 0,t[W]._onDragOver(n)}}var i,o,a},qe=function(e){ee&&ee.parentNode[W]._isOutsideThisEl(e.target)};function Ve(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw\"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(e));this.el=e,this.options=t=s({},t),e[W]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?\">li\":\">*\",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Be(e,this.options)},ghostClass:\"sortable-ghost\",chosenClass:\"sortable-chosen\",dragClass:\"sortable-drag\",ignore:\"a, img\",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData(\"Text\",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:\"data-id\",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:\"sortable-fallback\",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Ve.supportPointer&&\"PointerEvent\"in window&&(!g||m),emptyInsertThreshold:5};for(var r in $.initializePlugins(this,e,n),n)!(r in t)&&(t[r]=n[r]);for(var i in Ge(t),this)\"_\"===i.charAt(0)&&\"function\"==typeof this[i]&&(this[i]=this[i].bind(this));this.nativeDraggable=!t.forceFallback&&Me,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?y(e,\"pointerdown\",this._onTapStart):(y(e,\"mousedown\",this._onTapStart),y(e,\"touchstart\",this._onTapStart)),this.nativeDraggable&&(y(e,\"dragover\",this),y(e,\"dragenter\",this)),Ce.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),s(this,z())}function We(e,t,n,r,i,o,a,s){var l,u,c=e[W],p=c.options.onMove;return!window.CustomEvent||d||f?(l=document.createEvent(\"Event\")).initEvent(\"move\",!0,!0):l=new CustomEvent(\"move\",{bubbles:!0,cancelable:!0}),l.to=t,l.from=e,l.dragged=n,l.draggedRect=r,l.related=i||t,l.relatedRect=o||w(t),l.willInsertAfter=s,l.originalEvent=a,e.dispatchEvent(l),p&&(u=p.call(c,l,a)),u}function ze(e){e.draggable=!1}function Qe(){we=!1}function Xe(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,r=0;n--;)r+=t.charCodeAt(n);return r.toString(36)}function $e(e){return setTimeout(e,0)}function Ye(e){return clearTimeout(e)}Ve.prototype={constructor:Ve,_isOutsideThisEl:function(e){this.el.contains(e)||e===this.el||(xe=null)},_getDirection:function(e,t){return\"function\"==typeof this.options.direction?this.options.direction.call(this,e,t,ee):this.options.direction},_onTapStart:function(e){if(e.cancelable){var t=this,n=this.el,r=this.options,i=r.preventOnFilter,o=e.type,a=e.touches&&e.touches[0]||e.pointerType&&\"touch\"===e.pointerType&&e,s=(a||e).target,l=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||s,u=r.filter;if(function(e){Oe.length=0;var t=e.getElementsByTagName(\"input\"),n=t.length;for(;n--;){var r=t[n];r.checked&&Oe.push(r)}}(n),!ee&&!(/mousedown|pointerdown/.test(o)&&0!==e.button||r.disabled)&&!l.isContentEditable&&(this.nativeDraggable||!g||!s||\"SELECT\"!==s.tagName.toUpperCase())&&!((s=A(s,r.draggable,n,!1))&&s.animated||oe===s)){if(le=k(s),ce=k(s,r.draggable),\"function\"==typeof u){if(u.call(this,e,s,this))return Z({sortable:t,rootEl:l,name:\"filter\",targetEl:s,toEl:n,fromEl:n}),J(\"filter\",t,{evt:e}),void(i&&e.preventDefault())}else if(u&&(u=u.split(\",\").some((function(r){if(r=A(l,r.trim(),n,!1))return Z({sortable:t,rootEl:r,name:\"filter\",targetEl:s,fromEl:n,toEl:n}),J(\"filter\",t,{evt:e}),!0}))))return void(i&&e.preventDefault());r.handle&&!A(l,r.handle,n,!1)||this._prepareDragStart(e,a,s)}}},_prepareDragStart:function(e,t,n){var r,i=this,o=i.el,a=i.options,s=o.ownerDocument;if(n&&!ee&&n.parentNode===o){var l=w(n);if(re=o,te=(ee=n).parentNode,ie=ee.nextSibling,oe=n,de=a.group,Ve.dragged=ee,he={target:ee,clientX:(t||e).clientX,clientY:(t||e).clientY},Ee=he.clientX-l.left,ye=he.clientY-l.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,ee.style[\"will-change\"]=\"all\",r=function(){J(\"delayEnded\",i,{evt:e}),Ve.eventCanceled?i._onDrop():(i._disableDelayedDragEvents(),!h&&i.nativeDraggable&&(ee.draggable=!0),i._triggerDragStart(e,t),Z({sortable:i,name:\"choose\",originalEvent:e}),N(ee,a.chosenClass,!0))},a.ignore.split(\",\").forEach((function(e){_(ee,e.trim(),ze)})),y(s,\"dragover\",He),y(s,\"mousemove\",He),y(s,\"touchmove\",He),a.supportPointer?(y(s,\"pointerup\",i._onDrop),!this.nativeDraggable&&y(s,\"pointercancel\",i._onDrop)):(y(s,\"mouseup\",i._onDrop),y(s,\"touchend\",i._onDrop),y(s,\"touchcancel\",i._onDrop)),h&&this.nativeDraggable&&(this.options.touchStartThreshold=4,ee.draggable=!0),J(\"delayStart\",this,{evt:e}),!a.delay||a.delayOnTouchOnly&&!t||this.nativeDraggable&&(f||d))r();else{if(Ve.eventCanceled)return void this._onDrop();a.supportPointer?(y(s,\"pointerup\",i._disableDelayedDrag),y(s,\"pointercancel\",i._disableDelayedDrag)):(y(s,\"mouseup\",i._disableDelayedDrag),y(s,\"touchend\",i._disableDelayedDrag),y(s,\"touchcancel\",i._disableDelayedDrag)),y(s,\"mousemove\",i._delayedDragTouchMoveHandler),y(s,\"touchmove\",i._delayedDragTouchMoveHandler),a.supportPointer&&y(s,\"pointermove\",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(r,a.delay)}}},_delayedDragTouchMoveHandler:function(e){var t=e.touches?e.touches[0]:e;Math.max(Math.abs(t.clientX-this._lastX),Math.abs(t.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){ee&&ze(ee),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;b(e,\"mouseup\",this._disableDelayedDrag),b(e,\"touchend\",this._disableDelayedDrag),b(e,\"touchcancel\",this._disableDelayedDrag),b(e,\"pointerup\",this._disableDelayedDrag),b(e,\"pointercancel\",this._disableDelayedDrag),b(e,\"mousemove\",this._delayedDragTouchMoveHandler),b(e,\"touchmove\",this._delayedDragTouchMoveHandler),b(e,\"pointermove\",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||\"touch\"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?y(document,\"pointermove\",this._onTouchMove):y(document,t?\"touchmove\":\"mousemove\",this._onTouchMove):(y(ee,\"dragend\",this),y(re,\"dragstart\",this._onDragStart));try{document.selection?$e((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(e,t){if(Le=!1,re&&ee){J(\"dragStarted\",this,{evt:t}),this.nativeDraggable&&y(document,\"dragover\",qe);var n=this.options;!e&&N(ee,n.dragClass,!1),N(ee,n.ghostClass,!0),Ve.active=this,e&&this._appendGhost(),Z({sortable:this,name:\"start\",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(ge){this._lastX=ge.clientX,this._lastY=ge.clientY,je();for(var e=document.elementFromPoint(ge.clientX,ge.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(ge.clientX,ge.clientY))!==t;)t=e;if(ee.parentNode[W]._isOutsideThisEl(e),t)do{if(t[W]){if(t[W]._onDragOver({clientX:ge.clientX,clientY:ge.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=T(t));Ue()}},_onTouchMove:function(e){if(he){var t=this.options,n=t.fallbackTolerance,r=t.fallbackOffset,i=e.touches?e.touches[0]:e,o=ne&&I(ne,!0),a=ne&&o&&o.a,s=ne&&o&&o.d,l=Pe&&Se&&M(Se),u=(i.clientX-he.clientX+r.x)/(a||1)+(l?l[0]-Re[0]:0)/(a||1),c=(i.clientY-he.clientY+r.y)/(s||1)+(l?l[1]-Re[1]:0)/(s||1);if(!Ve.active&&!Le){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))<n)return;this._onDragStart(e,!0)}if(ne){o?(o.e+=u-(me||0),o.f+=c-(ve||0)):o={a:1,b:0,c:0,d:1,e:u,f:c};var p=\"matrix(\".concat(o.a,\",\").concat(o.b,\",\").concat(o.c,\",\").concat(o.d,\",\").concat(o.e,\",\").concat(o.f,\")\");C(ne,\"webkitTransform\",p),C(ne,\"mozTransform\",p),C(ne,\"msTransform\",p),C(ne,\"transform\",p),me=u,ve=c,ge=i}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!ne){var e=this.options.fallbackOnBody?document.body:re,t=w(ee,!0,Pe,!0,e),n=this.options;if(Pe){for(Se=e;\"static\"===C(Se,\"position\")&&\"none\"===C(Se,\"transform\")&&Se!==document;)Se=Se.parentNode;Se!==document.body&&Se!==document.documentElement?(Se===document&&(Se=R()),t.top+=Se.scrollTop,t.left+=Se.scrollLeft):Se=R(),Re=M(Se)}N(ne=ee.cloneNode(!0),n.ghostClass,!1),N(ne,n.fallbackClass,!0),N(ne,n.dragClass,!0),C(ne,\"transition\",\"\"),C(ne,\"transform\",\"\"),C(ne,\"box-sizing\",\"border-box\"),C(ne,\"margin\",0),C(ne,\"top\",t.top),C(ne,\"left\",t.left),C(ne,\"width\",t.width),C(ne,\"height\",t.height),C(ne,\"opacity\",\"0.8\"),C(ne,\"position\",Pe?\"absolute\":\"fixed\"),C(ne,\"zIndex\",\"100000\"),C(ne,\"pointerEvents\",\"none\"),Ve.ghost=ne,e.appendChild(ne),C(ne,\"transform-origin\",Ee/parseInt(ne.style.width)*100+\"% \"+ye/parseInt(ne.style.height)*100+\"%\")}},_onDragStart:function(e,t){var n=this,r=e.dataTransfer,i=n.options;J(\"dragStart\",this,{evt:e}),Ve.eventCanceled?this._onDrop():(J(\"setupClone\",this),Ve.eventCanceled||((ae=U(ee)).removeAttribute(\"id\"),ae.draggable=!1,ae.style[\"will-change\"]=\"\",this._hideClone(),N(ae,this.options.chosenClass,!1),Ve.clone=ae),n.cloneId=$e((function(){J(\"clone\",n),Ve.eventCanceled||(n.options.removeCloneOnHide||re.insertBefore(ae,ee),n._hideClone(),Z({sortable:n,name:\"clone\"}))})),!t&&N(ee,i.dragClass,!0),t?(Ne=!0,n._loopId=setInterval(n._emulateDragOver,50)):(b(document,\"mouseup\",n._onDrop),b(document,\"touchend\",n._onDrop),b(document,\"touchcancel\",n._onDrop),r&&(r.effectAllowed=\"move\",i.setData&&i.setData.call(n,r,ee)),y(document,\"drop\",n),C(ee,\"transform\",\"translateZ(0)\")),Le=!0,n._dragStartId=$e(n._dragStarted.bind(n,t,e)),y(document,\"selectstart\",n),be=!0,window.getSelection().removeAllRanges(),g&&C(document.body,\"user-select\",\"none\"))},_onDragOver:function(e){var t,n,r,o,a=this.el,s=e.target,l=this.options,u=l.group,c=Ve.active,p=de===u,d=l.sort,f=fe||c,h=this,g=!1;if(!we){if(void 0!==e.preventDefault&&e.cancelable&&e.preventDefault(),s=A(s,l.draggable,a,!0),B(\"dragOver\"),Ve.eventCanceled)return g;if(ee.contains(e.target)||s.animated&&s.animatingX&&s.animatingY||h._ignoreWhileAnimating===s)return U(!1);if(Ne=!1,c&&!l.disabled&&(p?d||(r=te!==re):fe===this||(this.lastPutMode=de.checkPull(this,c,ee,e))&&u.checkPut(this,c,ee,e))){if(o=\"vertical\"===this._getDirection(e,s),t=w(ee),B(\"dragOverValid\"),Ve.eventCanceled)return g;if(r)return te=re,G(),this._hideClone(),B(\"revert\"),Ve.eventCanceled||(ie?re.insertBefore(ee,ie):re.appendChild(ee)),U(!0);var m=P(a,l.draggable);if(!m||function(e,t,n){var r=w(P(n.el,n.options.draggable)),i=V(n.el,n.options,ne);return t?e.clientX>i.right+10||e.clientY>r.bottom&&e.clientX>r.left:e.clientY>i.bottom+10||e.clientX>r.right&&e.clientY>r.top}(e,o,this)&&!m.animated){if(m===ee)return U(!1);if(m&&a===e.target&&(s=m),s&&(n=w(s)),!1!==We(re,a,ee,t,s,n,e,!!s))return G(),m&&m.nextSibling?a.insertBefore(ee,m.nextSibling):a.appendChild(ee),te=a,H(),U(!0)}else if(m&&function(e,t,n){var r=w(D(n.el,0,n.options,!0)),i=V(n.el,n.options,ne);return t?e.clientX<i.left-10||e.clientY<r.top&&e.clientX<r.right:e.clientY<i.top-10||e.clientY<r.bottom&&e.clientX<r.left}(e,o,this)){var v=D(a,0,l,!0);if(v===ee)return U(!1);if(n=w(s=v),!1!==We(re,a,ee,t,s,n,e,!1))return G(),a.insertBefore(ee,v),te=a,H(),U(!0)}else if(s.parentNode===a){n=w(s);var E,y,b,x=ee.parentNode!==a,T=!function(e,t,n){var r=n?e.left:e.top,i=n?e.right:e.bottom,o=n?e.width:e.height,a=n?t.left:t.top,s=n?t.right:t.bottom,l=n?t.width:t.height;return r===a||i===s||r+o/2===a+l/2}(ee.animated&&ee.toRect||t,s.animated&&s.toRect||n,o),S=o?\"top\":\"left\",L=O(s,\"top\",\"top\")||O(ee,\"top\",\"top\"),I=L?L.scrollTop:void 0;if(xe!==s&&(y=n[S],Ie=!1,_e=!T&&l.invertSwap||x),0!==(E=function(e,t,n,r,i,o,a,s){var l=r?e.clientY:e.clientX,u=r?n.height:n.width,c=r?n.top:n.left,p=r?n.bottom:n.right,d=!1;if(!a)if(s&&Ae<u*i){if(!Ie&&(1===Te?l>c+u*o/2:l<p-u*o/2)&&(Ie=!0),Ie)d=!0;else if(1===Te?l<c+Ae:l>p-Ae)return-Te}else if(l>c+u*(1-i)/2&&l<p-u*(1-i)/2)return function(e){return k(ee)<k(e)?1:-1}(t);if((d=d||a)&&(l<c+u*o/2||l>p-u*o/2))return l>c+u/2?1:-1;return 0}(e,s,n,o,T?1:l.swapThreshold,null==l.invertedSwapThreshold?l.swapThreshold:l.invertedSwapThreshold,_e,xe===s))){var _=k(ee);do{_-=E,b=te.children[_]}while(b&&(\"none\"===C(b,\"display\")||b===ne))}if(0===E||b===s)return U(!1);xe=s,Te=E;var R=s.nextElementSibling,M=!1,F=We(re,a,ee,t,s,n,e,M=1===E);if(!1!==F)return 1!==F&&-1!==F||(M=1===F),we=!0,setTimeout(Qe,30),G(),M&&!R?a.appendChild(ee):s.parentNode.insertBefore(ee,M?R:s),L&&j(L,0,I-L.scrollTop),te=ee.parentNode,void 0===y||_e||(Ae=Math.abs(y-w(s)[S])),H(),U(!0)}if(a.contains(ee))return U(!1)}return!1}function B(l,u){J(l,h,i({evt:e,isOwner:p,axis:o?\"vertical\":\"horizontal\",revert:r,dragRect:t,targetRect:n,canSort:d,fromSortable:f,target:s,completed:U,onMove:function(n,r){return We(re,a,ee,t,n,w(n),e,r)},changed:H},u))}function G(){B(\"dragOverAnimationCapture\"),h.captureAnimationState(),h!==f&&f.captureAnimationState()}function U(t){return B(\"dragOverCompleted\",{insertion:t}),t&&(p?c._hideClone():c._showClone(h),h!==f&&(N(ee,fe?fe.options.ghostClass:c.options.ghostClass,!1),N(ee,l.ghostClass,!0)),fe!==h&&h!==Ve.active?fe=h:h===Ve.active&&fe&&(fe=null),f===h&&(h._ignoreWhileAnimating=s),h.animateAll((function(){B(\"dragOverAnimationComplete\"),h._ignoreWhileAnimating=null})),h!==f&&(f.animateAll(),f._ignoreWhileAnimating=null)),(s===ee&&!ee.animated||s===a&&!s.animated)&&(xe=null),l.dragoverBubble||e.rootEl||s===document||(ee.parentNode[W]._isOutsideThisEl(e.target),!t&&He(e)),!l.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),g=!0}function H(){ue=k(ee),pe=k(ee,l.draggable),Z({sortable:h,name:\"change\",toEl:a,newIndex:ue,newDraggableIndex:pe,originalEvent:e})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){b(document,\"mousemove\",this._onTouchMove),b(document,\"touchmove\",this._onTouchMove),b(document,\"pointermove\",this._onTouchMove),b(document,\"dragover\",He),b(document,\"mousemove\",He),b(document,\"touchmove\",He)},_offUpEvents:function(){var e=this.el.ownerDocument;b(e,\"mouseup\",this._onDrop),b(e,\"touchend\",this._onDrop),b(e,\"pointerup\",this._onDrop),b(e,\"pointercancel\",this._onDrop),b(e,\"touchcancel\",this._onDrop),b(document,\"selectstart\",this)},_onDrop:function(e){var t=this.el,n=this.options;ue=k(ee),pe=k(ee,n.draggable),J(\"drop\",this,{evt:e}),te=ee&&ee.parentNode,ue=k(ee),pe=k(ee,n.draggable),Ve.eventCanceled||(Le=!1,_e=!1,Ie=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Ye(this.cloneId),Ye(this._dragStartId),this.nativeDraggable&&(b(document,\"drop\",this),b(t,\"dragstart\",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),g&&C(document.body,\"user-select\",\"\"),C(ee,\"transform\",\"\"),e&&(be&&(e.cancelable&&e.preventDefault(),!n.dropBubble&&e.stopPropagation()),ne&&ne.parentNode&&ne.parentNode.removeChild(ne),(re===te||fe&&\"clone\"!==fe.lastPutMode)&&ae&&ae.parentNode&&ae.parentNode.removeChild(ae),ee&&(this.nativeDraggable&&b(ee,\"dragend\",this),ze(ee),ee.style[\"will-change\"]=\"\",be&&!Le&&N(ee,fe?fe.options.ghostClass:this.options.ghostClass,!1),N(ee,this.options.chosenClass,!1),Z({sortable:this,name:\"unchoose\",toEl:te,newIndex:null,newDraggableIndex:null,originalEvent:e}),re!==te?(ue>=0&&(Z({rootEl:te,name:\"add\",toEl:te,fromEl:re,originalEvent:e}),Z({sortable:this,name:\"remove\",toEl:te,originalEvent:e}),Z({rootEl:te,name:\"sort\",toEl:te,fromEl:re,originalEvent:e}),Z({sortable:this,name:\"sort\",toEl:te,originalEvent:e})),fe&&fe.save()):ue!==le&&ue>=0&&(Z({sortable:this,name:\"update\",toEl:te,originalEvent:e}),Z({sortable:this,name:\"sort\",toEl:te,originalEvent:e})),Ve.active&&(null!=ue&&-1!==ue||(ue=le,pe=ce),Z({sortable:this,name:\"end\",toEl:te,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){J(\"nulling\",this),re=ee=te=ne=ie=ae=oe=se=he=ge=be=ue=pe=le=ce=xe=Te=fe=de=Ve.dragged=Ve.ghost=Ve.clone=Ve.active=null,Oe.forEach((function(e){e.checked=!0})),Oe.length=me=ve=0},handleEvent:function(e){switch(e.type){case\"drop\":case\"dragend\":this._onDrop(e);break;case\"dragenter\":case\"dragover\":ee&&(this._onDragOver(e),function(e){e.dataTransfer&&(e.dataTransfer.dropEffect=\"move\");e.cancelable&&e.preventDefault()}(e));break;case\"selectstart\":e.preventDefault()}},toArray:function(){for(var e,t=[],n=this.el.children,r=0,i=n.length,o=this.options;r<i;r++)A(e=n[r],o.draggable,this.el,!1)&&t.push(e.getAttribute(o.dataIdAttr)||Xe(e));return t},sort:function(e,t){var n={},r=this.el;this.toArray().forEach((function(e,t){var i=r.children[t];A(i,this.options.draggable,r,!1)&&(n[e]=i)}),this),t&&this.captureAnimationState(),e.forEach((function(e){n[e]&&(r.removeChild(n[e]),r.appendChild(n[e]))})),t&&this.animateAll()},save:function(){var e=this.options.store;e&&e.set&&e.set(this)},closest:function(e,t){return A(e,t||this.options.draggable,this.el,!1)},option:function(e,t){var n=this.options;if(void 0===t)return n[e];var r=$.modifyOption(this,e,t);n[e]=void 0!==r?r:t,\"group\"===e&&Ge(n)},destroy:function(){J(\"destroy\",this);var e=this.el;e[W]=null,b(e,\"mousedown\",this._onTapStart),b(e,\"touchstart\",this._onTapStart),b(e,\"pointerdown\",this._onTapStart),this.nativeDraggable&&(b(e,\"dragover\",this),b(e,\"dragenter\",this)),Array.prototype.forEach.call(e.querySelectorAll(\"[draggable]\"),(function(e){e.removeAttribute(\"draggable\")})),this._onDrop(),this._disableDelayedDragEvents(),Ce.splice(Ce.indexOf(this.el),1),this.el=e=null},_hideClone:function(){if(!se){if(J(\"hideClone\",this),Ve.eventCanceled)return;C(ae,\"display\",\"none\"),this.options.removeCloneOnHide&&ae.parentNode&&ae.parentNode.removeChild(ae),se=!0}},_showClone:function(e){if(\"clone\"===e.lastPutMode){if(se){if(J(\"showClone\",this),Ve.eventCanceled)return;ee.parentNode!=re||this.options.group.revertClone?ie?re.insertBefore(ae,ie):re.appendChild(ae):re.insertBefore(ae,ee),this.options.group.revertClone&&this.animate(ee,ae),C(ae,\"display\",\"\"),se=!1}}else this._hideClone()}},De&&y(document,\"touchmove\",(function(e){(Ve.active||Le)&&e.cancelable&&e.preventDefault()})),Ve.utils={on:y,off:b,css:C,find:_,is:function(e,t){return!!A(e,t,e,!1)},extend:function(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},throttle:G,closest:A,toggleClass:N,clone:U,index:k,nextTick:$e,cancelNextTick:Ye,detectDirection:Be,getChild:D,expando:W},Ve.get=function(e){return e[W]},Ve.mount=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t[0].constructor===Array&&(t=t[0]),t.forEach((function(e){if(!e.prototype||!e.prototype.constructor)throw\"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(e));e.utils&&(Ve.utils=i(i({},Ve.utils),e.utils)),$.mount(e)}))},Ve.create=function(e,t){return new Ve(e,t)},Ve.version=\"1.15.6\";var Ke,Je,Ze,et,tt,nt,rt=[],it=!1;function ot(){rt.forEach((function(e){clearInterval(e.pid)})),rt=[]}function at(){clearInterval(nt)}var st,lt=G((function(e,t,n,r){if(t.scroll){var i,o=(e.touches?e.touches[0]:e).clientX,a=(e.touches?e.touches[0]:e).clientY,s=t.scrollSensitivity,l=t.scrollSpeed,u=R(),c=!1;Je!==n&&(Je=n,ot(),Ke=t.scroll,i=t.scrollFn,!0===Ke&&(Ke=F(n,!0)));var p=0,d=Ke;do{var f=d,h=w(f),g=h.top,m=h.bottom,v=h.left,E=h.right,y=h.width,b=h.height,x=void 0,T=void 0,A=f.scrollWidth,S=f.scrollHeight,L=C(f),N=f.scrollLeft,I=f.scrollTop;f===u?(x=y<A&&(\"auto\"===L.overflowX||\"scroll\"===L.overflowX||\"visible\"===L.overflowX),T=b<S&&(\"auto\"===L.overflowY||\"scroll\"===L.overflowY||\"visible\"===L.overflowY)):(x=y<A&&(\"auto\"===L.overflowX||\"scroll\"===L.overflowX),T=b<S&&(\"auto\"===L.overflowY||\"scroll\"===L.overflowY));var _=x&&(Math.abs(E-o)<=s&&N+y<A)-(Math.abs(v-o)<=s&&!!N),O=T&&(Math.abs(m-a)<=s&&I+b<S)-(Math.abs(g-a)<=s&&!!I);if(!rt[p])for(var D=0;D<=p;D++)rt[D]||(rt[D]={});rt[p].vx==_&&rt[p].vy==O&&rt[p].el===f||(rt[p].el=f,rt[p].vx=_,rt[p].vy=O,clearInterval(rt[p].pid),0==_&&0==O||(c=!0,rt[p].pid=setInterval(function(){r&&0===this.layer&&Ve.active._onTouchMove(tt);var t=rt[this.layer].vy?rt[this.layer].vy*l:0,n=rt[this.layer].vx?rt[this.layer].vx*l:0;\"function\"==typeof i&&\"continue\"!==i.call(Ve.dragged.parentNode[W],n,t,e,tt,rt[this.layer].el)||j(rt[this.layer].el,n,t)}.bind({layer:p}),24))),p++}while(t.bubbleScroll&&d!==u&&(d=F(d,!1)));it=c}}),30),ut=function(e){var t=e.originalEvent,n=e.putSortable,r=e.dragEl,i=e.activeSortable,o=e.dispatchSortableEvent,a=e.hideGhostForTarget,s=e.unhideGhostForTarget;if(t){var l=n||i;a();var u=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,c=document.elementFromPoint(u.clientX,u.clientY);s(),l&&!l.el.contains(c)&&(o(\"spill\"),this.onSpill({dragEl:r,putSortable:n}))}};function ct(){}function pt(){}function dt(){function e(){this.defaults={swapClass:\"sortable-swap-highlight\"}}return e.prototype={dragStart:function(e){var t=e.dragEl;st=t},dragOverValid:function(e){var t=e.completed,n=e.target,r=e.onMove,i=e.activeSortable,o=e.changed,a=e.cancel;if(i.options.swap){var s=this.sortable.el,l=this.options;if(n&&n!==s){var u=st;!1!==r(n)?(N(n,l.swapClass,!0),st=n):st=null,u&&u!==st&&N(u,l.swapClass,!1)}o(),t(!0),a()}},drop:function(e){var t=e.activeSortable,n=e.putSortable,r=e.dragEl,i=n||this.sortable,o=this.options;st&&N(st,o.swapClass,!1),st&&(o.swap||n&&n.options.swap)&&r!==st&&(i.captureAnimationState(),i!==t&&t.captureAnimationState(),function(e,t){var n,r,i=e.parentNode,o=t.parentNode;if(!i||!o||i.isEqualNode(t)||o.isEqualNode(e))return;n=k(e),r=k(t),i.isEqualNode(o)&&n<r&&r++;i.insertBefore(t,i.children[n]),o.insertBefore(e,o.children[r])}(r,st),i.animateAll(),i!==t&&t.animateAll())},nulling:function(){st=null}},s(e,{pluginName:\"swap\",eventProperties:function(){return{swapItem:st}}})}ct.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,n=e.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var r=D(this.sortable.el,this.startIndex,this.options);r?this.sortable.el.insertBefore(t,r):this.sortable.el.appendChild(t),this.sortable.animateAll(),n&&n.animateAll()},drop:ut},s(ct,{pluginName:\"revertOnSpill\"}),pt.prototype={onSpill:function(e){var t=e.dragEl,n=e.putSortable||this.sortable;n.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),n.animateAll()},drop:ut},s(pt,{pluginName:\"removeOnSpill\"});var ft,ht,gt,mt,vt,Et=[],yt=[],bt=!1,xt=!1,Tt=!1;function At(){function e(e){for(var t in this)\"_\"===t.charAt(0)&&\"function\"==typeof this[t]&&(this[t]=this[t].bind(this));e.options.avoidImplicitDeselect||(e.options.supportPointer?y(document,\"pointerup\",this._deselectMultiDrag):(y(document,\"mouseup\",this._deselectMultiDrag),y(document,\"touchend\",this._deselectMultiDrag))),y(document,\"keydown\",this._checkKeyDown),y(document,\"keyup\",this._checkKeyUp),this.defaults={selectedClass:\"sortable-selected\",multiDragKey:null,avoidImplicitDeselect:!1,setData:function(t,n){var r=\"\";Et.length&&ht===e?Et.forEach((function(e,t){r+=(t?\", \":\"\")+e.textContent})):r=n.textContent,t.setData(\"Text\",r)}}}return e.prototype={multiDragKeyDown:!1,isMultiDrag:!1,delayStartGlobal:function(e){var t=e.dragEl;gt=t},delayEnded:function(){this.isMultiDrag=~Et.indexOf(gt)},setupClone:function(e){var t=e.sortable,n=e.cancel;if(this.isMultiDrag){for(var r=0;r<Et.length;r++)yt.push(U(Et[r])),yt[r].sortableIndex=Et[r].sortableIndex,yt[r].draggable=!1,yt[r].style[\"will-change\"]=\"\",N(yt[r],this.options.selectedClass,!1),Et[r]===gt&&N(yt[r],this.options.chosenClass,!1);t._hideClone(),n()}},clone:function(e){var t=e.sortable,n=e.rootEl,r=e.dispatchSortableEvent,i=e.cancel;this.isMultiDrag&&(this.options.removeCloneOnHide||Et.length&&ht===t&&(St(!0,n),r(\"clone\"),i()))},showClone:function(e){var t=e.cloneNowShown,n=e.rootEl,r=e.cancel;this.isMultiDrag&&(St(!1,n),yt.forEach((function(e){C(e,\"display\",\"\")})),t(),vt=!1,r())},hideClone:function(e){var t=this,n=(e.sortable,e.cloneNowHidden),r=e.cancel;this.isMultiDrag&&(yt.forEach((function(e){C(e,\"display\",\"none\"),t.options.removeCloneOnHide&&e.parentNode&&e.parentNode.removeChild(e)})),n(),vt=!0,r())},dragStartGlobal:function(e){e.sortable;!this.isMultiDrag&&ht&&ht.multiDrag._deselectMultiDrag(),Et.forEach((function(e){e.sortableIndex=k(e)})),Et=Et.sort((function(e,t){return e.sortableIndex-t.sortableIndex})),Tt=!0},dragStarted:function(e){var t=this,n=e.sortable;if(this.isMultiDrag){if(this.options.sort&&(n.captureAnimationState(),this.options.animation)){Et.forEach((function(e){e!==gt&&C(e,\"position\",\"absolute\")}));var r=w(gt,!1,!0,!0);Et.forEach((function(e){e!==gt&&H(e,r)})),xt=!0,bt=!0}n.animateAll((function(){xt=!1,bt=!1,t.options.animation&&Et.forEach((function(e){q(e)})),t.options.sort&&Lt()}))}},dragOver:function(e){var t=e.target,n=e.completed,r=e.cancel;xt&&~Et.indexOf(t)&&(n(!1),r())},revert:function(e){var t=e.fromSortable,n=e.rootEl,r=e.sortable,i=e.dragRect;Et.length>1&&(Et.forEach((function(e){r.addAnimationState({target:e,rect:xt?w(e):i}),q(e),e.fromRect=i,t.removeAnimationState(e)})),xt=!1,function(e,t){Et.forEach((function(n,r){var i=t.children[n.sortableIndex+(e?Number(r):0)];i?t.insertBefore(n,i):t.appendChild(n)}))}(!this.options.removeCloneOnHide,n))},dragOverCompleted:function(e){var t=e.sortable,n=e.isOwner,r=e.insertion,i=e.activeSortable,o=e.parentEl,a=e.putSortable,s=this.options;if(r){if(n&&i._hideClone(),bt=!1,s.animation&&Et.length>1&&(xt||!n&&!i.options.sort&&!a)){var l=w(gt,!1,!0,!0);Et.forEach((function(e){e!==gt&&(H(e,l),o.appendChild(e))})),xt=!0}if(!n)if(xt||Lt(),Et.length>1){var u=vt;i._showClone(t),i.options.animation&&!vt&&u&&yt.forEach((function(e){i.addAnimationState({target:e,rect:mt}),e.fromRect=mt,e.thisAnimationDuration=null}))}else i._showClone(t)}},dragOverAnimationCapture:function(e){var t=e.dragRect,n=e.isOwner,r=e.activeSortable;if(Et.forEach((function(e){e.thisAnimationDuration=null})),r.options.animation&&!n&&r.multiDrag.isMultiDrag){mt=s({},t);var i=I(gt,!0);mt.top-=i.f,mt.left-=i.e}},dragOverAnimationComplete:function(){xt&&(xt=!1,Lt())},drop:function(e){var t=e.originalEvent,n=e.rootEl,r=e.parentEl,i=e.sortable,o=e.dispatchSortableEvent,a=e.oldIndex,s=e.putSortable,l=s||this.sortable;if(t){var u=this.options,c=r.children;if(!Tt)if(u.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),N(gt,u.selectedClass,!~Et.indexOf(gt)),~Et.indexOf(gt))Et.splice(Et.indexOf(gt),1),ft=null,Y({sortable:i,rootEl:n,name:\"deselect\",targetEl:gt,originalEvent:t});else{if(Et.push(gt),Y({sortable:i,rootEl:n,name:\"select\",targetEl:gt,originalEvent:t}),t.shiftKey&&ft&&i.el.contains(ft)){var p=k(ft),d=k(gt);~p&&~d&&p!==d&&function(){var e,o;d>p?(o=p,e=d):(o=d,e=p+1);for(var a=u.filter;o<e;o++){if(!~Et.indexOf(c[o]))if(A(c[o],u.draggable,r,!1))a&&(\"function\"==typeof a?a.call(i,t,c[o],i):a.split(\",\").some((function(e){return A(c[o],e.trim(),r,!1)})))||(N(c[o],u.selectedClass,!0),Et.push(c[o]),Y({sortable:i,rootEl:n,name:\"select\",targetEl:c[o],originalEvent:t}))}}()}else ft=gt;ht=l}if(Tt&&this.isMultiDrag){if(xt=!1,(r[W].options.sort||r!==n)&&Et.length>1){var f=w(gt),h=k(gt,\":not(.\"+this.options.selectedClass+\")\");if(!bt&&u.animation&&(gt.thisAnimationDuration=null),l.captureAnimationState(),!bt&&(u.animation&&(gt.fromRect=f,Et.forEach((function(e){if(e.thisAnimationDuration=null,e!==gt){var t=xt?w(e):f;e.fromRect=t,l.addAnimationState({target:e,rect:t})}}))),Lt(),Et.forEach((function(e){c[h]?r.insertBefore(e,c[h]):r.appendChild(e),h++})),a===k(gt))){var g=!1;Et.forEach((function(e){e.sortableIndex===k(e)||(g=!0)})),g&&(o(\"update\"),o(\"sort\"))}Et.forEach((function(e){q(e)})),l.animateAll()}ht=l}(n===r||s&&\"clone\"!==s.lastPutMode)&&yt.forEach((function(e){e.parentNode&&e.parentNode.removeChild(e)}))}},nullingGlobal:function(){this.isMultiDrag=Tt=!1,yt.length=0},destroyGlobal:function(){this._deselectMultiDrag(),b(document,\"pointerup\",this._deselectMultiDrag),b(document,\"mouseup\",this._deselectMultiDrag),b(document,\"touchend\",this._deselectMultiDrag),b(document,\"keydown\",this._checkKeyDown),b(document,\"keyup\",this._checkKeyUp)},_deselectMultiDrag:function(e){if(!(void 0!==Tt&&Tt||ht!==this.sortable||e&&A(e.target,this.options.draggable,this.sortable.el,!1)||e&&0!==e.button))for(;Et.length;){var t=Et[0];N(t,this.options.selectedClass,!1),Et.shift(),Y({sortable:this.sortable,rootEl:this.sortable.el,name:\"deselect\",targetEl:t,originalEvent:e})}},_checkKeyDown:function(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(e){e.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},s(e,{pluginName:\"multiDrag\",utils:{select:function(e){var t=e.parentNode[W];t&&t.options.multiDrag&&!~Et.indexOf(e)&&(ht&&ht!==t&&(ht.multiDrag._deselectMultiDrag(),ht=t),N(e,t.options.selectedClass,!0),Et.push(e))},deselect:function(e){var t=e.parentNode[W],n=Et.indexOf(e);t&&t.options.multiDrag&&~n&&(N(e,t.options.selectedClass,!1),Et.splice(n,1))}},eventProperties:function(){var e=this,t=[],n=[];return Et.forEach((function(r){var i;t.push({multiDragElement:r,index:r.sortableIndex}),i=xt&&r!==gt?-1:xt?k(r,\":not(.\"+e.options.selectedClass+\")\"):k(r),n.push({multiDragElement:r,index:i})})),{items:u(Et),clones:[].concat(yt),oldIndicies:t,newIndicies:n}},optionListeners:{multiDragKey:function(e){return\"ctrl\"===(e=e.toLowerCase())?e=\"Control\":e.length>1&&(e=e.charAt(0).toUpperCase()+e.substr(1)),e}}})}function St(e,t){yt.forEach((function(n,r){var i=t.children[n.sortableIndex+(e?Number(r):0)];i?t.insertBefore(n,i):t.appendChild(n)}))}function Lt(){Et.forEach((function(e){e!==gt&&e.parentNode&&e.parentNode.removeChild(e)}))}Ve.mount(new function(){function e(){for(var e in this.defaults={scroll:!0,forceAutoScrollFallback:!1,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)\"_\"===e.charAt(0)&&\"function\"==typeof this[e]&&(this[e]=this[e].bind(this))}return e.prototype={dragStarted:function(e){var t=e.originalEvent;this.sortable.nativeDraggable?y(document,\"dragover\",this._handleAutoScroll):this.options.supportPointer?y(document,\"pointermove\",this._handleFallbackAutoScroll):t.touches?y(document,\"touchmove\",this._handleFallbackAutoScroll):y(document,\"mousemove\",this._handleFallbackAutoScroll)},dragOverCompleted:function(e){var t=e.originalEvent;this.options.dragOverBubble||t.rootEl||this._handleAutoScroll(t)},drop:function(){this.sortable.nativeDraggable?b(document,\"dragover\",this._handleAutoScroll):(b(document,\"pointermove\",this._handleFallbackAutoScroll),b(document,\"touchmove\",this._handleFallbackAutoScroll),b(document,\"mousemove\",this._handleFallbackAutoScroll)),at(),ot(),clearTimeout(S),S=void 0},nulling:function(){tt=Je=Ke=it=nt=Ze=et=null,rt.length=0},_handleFallbackAutoScroll:function(e){this._handleAutoScroll(e,!0)},_handleAutoScroll:function(e,t){var n=this,r=(e.touches?e.touches[0]:e).clientX,i=(e.touches?e.touches[0]:e).clientY,o=document.elementFromPoint(r,i);if(tt=e,t||this.options.forceAutoScrollFallback||f||d||g){lt(e,this.options,o,t);var a=F(o,!0);!it||nt&&r===Ze&&i===et||(nt&&at(),nt=setInterval((function(){var o=F(document.elementFromPoint(r,i),!0);o!==a&&(a=o,ot()),lt(e,n.options,o,t)}),10),Ze=r,et=i)}else{if(!this.options.bubbleScroll||F(o,!0)===R())return void ot();lt(e,this.options,F(o,!1),!1)}}},s(e,{pluginName:\"scroll\",initializeByDefault:!0})}),Ve.mount(pt,ct);const Nt=Ve},6787:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(1671),i=n(8377);const o=(0,r.A)(i.A,\"Map\")},6809:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)}},6824:(e,t,n)=>{\"use strict\";n.r(t)},6825:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},6826:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>a});var r=n(4479),i=n(3001),o=n(7242);const a=function(e){return(0,o.A)(e)?(0,r.A)(e):(0,i.A)(e)}},6855:(e,t,n)=>{\"use strict\";n.r(t)},6886:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>a});var r=n(9091),i=n(4508),o=n(6826);const a=function(e){return(0,r.A)(e,o.A,i.A)}},6918:e=>{function t(n,r,i,o){var a=Object.defineProperty;try{a({},\"\",{})}catch(n){a=0}e.exports=t=function(e,n,r,i){function o(n,r){t(e,n,(function(e){return this._invoke(n,r,e)}))}n?a?a(e,n,{value:r,enumerable:!i,configurable:!i,writable:!i}):e[n]=r:(o(\"next\",0),o(\"throw\",1),o(\"return\",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(n,r,i,o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},6928:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>p});const r=function(e,t){return null!=e&&t in Object(e)};var i=n(8563),o=n(2078),a=n(8285),s=n(3869),l=n(7554),u=n(761);const c=function(e,t,n){for(var r=-1,c=(t=(0,i.A)(t,e)).length,p=!1;++r<c;){var d=(0,u.A)(t[r]);if(!(p=null!=e&&n(e,d)))break;e=e[d]}return p||++r!=c?p:!!(c=null==e?0:e.length)&&(0,l.A)(c)&&(0,s.A)(d,c)&&((0,a.A)(e)||(0,o.A)(e))};const p=function(e,t){return null!=e&&c(e,t,r)}},6962:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>c});var r=n(4479),i=n(6809),o=n(4603);const a=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t};var s=Object.prototype.hasOwnProperty;const l=function(e){if(!(0,i.A)(e))return a(e);var t=(0,o.A)(e),n=[];for(var r in e)(\"constructor\"!=r||!t&&s.call(e,r))&&n.push(r);return n};var u=n(7242);const c=function(e){return(0,u.A)(e)?(0,r.A)(e,!0):l(e)}},6988:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>s});var r=n(7348),i=n(7242),o=n(3869),a=n(6809);const s=function(e,t,n){if(!(0,a.A)(n))return!1;var s=typeof t;return!!(\"number\"==s?(0,i.A)(n)&&(0,o.A)(t,n.length):\"string\"==s&&t in n)&&(0,r.A)(n[t],e)}},7167:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=n(1671);const i=function(){try{var e=(0,r.A)(Object,\"defineProperty\");return e({},\"\",{}),e}catch(e){}}()},7181:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=n(8377).A.Symbol},7204:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>P});var r=n(3779),i=n(8292),o=n(7348);const a=function(e,t,n){(void 0!==n&&!(0,o.A)(e[t],n)||void 0===n&&!(t in e))&&(0,i.A)(e,t,n)};var s=n(2984),l=n(3382),u=n(9741),c=n(1779),p=n(9557),d=n(2078),f=n(8285),h=n(7242),g=n(8214);const m=function(e){return(0,g.A)(e)&&(0,h.A)(e)};var v=n(6118),E=n(9790),y=n(6809),b=n(2977),x=n(7827),T=Function.prototype,A=Object.prototype,S=T.toString,L=A.hasOwnProperty,N=S.call(Object);const C=function(e){if(!(0,g.A)(e)||\"[object Object]\"!=(0,b.A)(e))return!1;var t=(0,x.A)(e);if(null===t)return!0;var n=L.call(t,\"constructor\")&&t.constructor;return\"function\"==typeof n&&n instanceof n&&S.call(n)==N};var I=n(4249);const _=function(e,t){if((\"constructor\"!==t||\"function\"!=typeof e[t])&&\"__proto__\"!=t)return e[t]};var R=n(6531),w=n(6962);const O=function(e){return(0,R.A)(e,(0,w.A)(e))};const D=function(e,t,n,r,i,o,s){var h=_(e,n),g=_(t,n),b=s.get(g);if(b)a(e,n,b);else{var x=o?o(h,g,n+\"\",e,t,s):void 0,T=void 0===x;if(T){var A=(0,f.A)(g),S=!A&&(0,v.A)(g),L=!A&&!S&&(0,I.A)(g);x=g,A||S||L?(0,f.A)(h)?x=h:m(h)?x=(0,c.A)(h):S?(T=!1,x=(0,l.A)(g,!0)):L?(T=!1,x=(0,u.A)(g,!0)):x=[]:C(g)||(0,d.A)(g)?(x=h,(0,d.A)(h)?x=O(h):(0,y.A)(h)&&!(0,E.A)(h)||(x=(0,p.A)(g))):T=!1}T&&(s.set(g,x),i(x,g,r,o,s),s.delete(g)),a(e,n,x)}};const P=function e(t,n,i,o,l){t!==n&&(0,s.A)(n,(function(s,u){if(l||(l=new r.A),(0,y.A)(s))D(t,n,u,i,e,o,l);else{var c=o?o(_(t,u),s,u+\"\",t,n,l):void 0;void 0===c&&(c=s),a(t,u,c)}}),w.A)}},7242:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(9790),i=n(7554);const o=function(e){return null!=e&&(0,i.A)(e.length)&&!(0,r.A)(e)}},7348:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e,t){return e===t||e!=e&&t!=t}},7371:function(e){var t,n;e.exports=(t={705:e=>{e.exports=function(e,t){const n=[];return 0===t.length?n.push({text:e,highlight:!1}):t[0][0]>0&&n.push({text:e.slice(0,t[0][0]),highlight:!1}),t.forEach((r,i)=>{const o=r[0],a=r[1];n.push({text:e.slice(o,a),highlight:!0}),i===t.length-1?a<e.length&&n.push({text:e.slice(a,e.length),highlight:!1}):a<t[i+1][0]&&n.push({text:e.slice(a,t[i+1][0]),highlight:!1})}),n}}},n={},function e(r){var i=n[r];if(void 0!==i)return i.exports;var o=n[r]={exports:{}};return t[r](o,o.exports,e),o.exports}(705))},7392:(e,t,n)=>{\"use strict\";n.r(t)},7440:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=n(7204);const i=(0,n(4043).A)((function(e,t,n){(0,r.A)(e,t,n)}))},7459:(e,t,n)=>{var r=n(7589),i=r.slice,o=r.pluck,a=r.each,s=r.bind,l=r.create,u=r.isList,c=r.isFunction,p=r.isObject;e.exports={createStore:f};var d={version:\"2.0.12\",enabled:!1,get:function(e,t){var n=this.storage.read(this._namespacePrefix+e);return this._deserialize(n,t)},set:function(e,t){return void 0===t?this.remove(e):(this.storage.write(this._namespacePrefix+e,this._serialize(t)),t)},remove:function(e){this.storage.remove(this._namespacePrefix+e)},each:function(e){var t=this;this.storage.each((function(n,r){e.call(t,t._deserialize(n),(r||\"\").replace(t._namespaceRegexp,\"\"))}))},clearAll:function(){this.storage.clearAll()},hasNamespace:function(e){return this._namespacePrefix==\"__storejs_\"+e+\"_\"},createStore:function(){return f.apply(this,arguments)},addPlugin:function(e){this._addPlugin(e)},namespace:function(e){return f(this.storage,this.plugins,e)}};function f(e,t,n){n||(n=\"\"),e&&!u(e)&&(e=[e]),t&&!u(t)&&(t=[t]);var r=n?\"__storejs_\"+n+\"_\":\"\",f=n?new RegExp(\"^\"+r):null;if(!/^[a-zA-Z0-9_\\-]*$/.test(n))throw new Error(\"store.js namespaces can only have alphanumerics + underscores and dashes\");var h=l({_namespacePrefix:r,_namespaceRegexp:f,_testStorage:function(e){try{var t=\"__storejs__test__\";e.write(t,t);var n=e.read(t)===t;return e.remove(t),n}catch(e){return!1}},_assignPluginFnProp:function(e,t){var n=this[t];this[t]=function(){var t=i(arguments,0),r=this;function o(){if(n)return a(arguments,(function(e,n){t[n]=e})),n.apply(r,t)}var s=[o].concat(t);return e.apply(r,s)}},_serialize:function(e){return JSON.stringify(e)},_deserialize:function(e,t){if(!e)return t;var n=\"\";try{n=JSON.parse(e)}catch(t){n=e}return void 0!==n?n:t},_addStorage:function(e){this.enabled||this._testStorage(e)&&(this.storage=e,this.enabled=!0)},_addPlugin:function(e){var t=this;if(u(e))a(e,(function(e){t._addPlugin(e)}));else if(!o(this.plugins,(function(t){return e===t}))){if(this.plugins.push(e),!c(e))throw new Error(\"Plugins must be function values that return objects\");var n=e.call(this);if(!p(n))throw new Error(\"Plugins must return an object of function properties\");a(n,(function(n,r){if(!c(n))throw new Error(\"Bad plugin property: \"+r+\" from plugin \"+e.name+\". Plugins should only return functions.\");t._assignPluginFnProp(n,r)}))}},addStorage:function(e){!function(){var e=\"undefined\"==typeof console?null:console;if(e){var t=e.warn?e.warn:e.log;t.apply(e,arguments)}}(\"store.addStorage(storage) is deprecated. Use createStore([storages])\"),this._addStorage(e)}},d,{plugins:[]});return h.raw={},a(h,(function(e,t){c(e)&&(h.raw[t]=s(h,e))})),a(e,(function(e){h._addStorage(e)})),a(t,(function(e){h._addPlugin(e)})),h}},7476:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=\"object\"==typeof n.g&&n.g&&n.g.Object===Object&&n.g},7518:(e,t,n)=>{!function(e){\"use strict\";e.defineMode(\"javascript\",(function(t,n){var r,i,o=t.indentUnit,a=n.statementIndent,s=n.jsonld,l=n.json||s,u=!1!==n.trackScope,c=n.typescript,p=n.wordCharacters||/[\\w$\\xa1-\\uffff]/,d=function(){function e(e){return{type:e,style:\"keyword\"}}var t=e(\"keyword a\"),n=e(\"keyword b\"),r=e(\"keyword c\"),i=e(\"keyword d\"),o=e(\"operator\"),a={type:\"atom\",style:\"atom\"};return{if:e(\"if\"),while:t,with:t,else:n,do:n,try:n,finally:n,return:i,break:i,continue:i,new:e(\"new\"),delete:r,void:r,throw:r,debugger:e(\"debugger\"),var:e(\"var\"),const:e(\"var\"),let:e(\"var\"),function:e(\"function\"),catch:e(\"catch\"),for:e(\"for\"),switch:e(\"switch\"),case:e(\"case\"),default:e(\"default\"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e(\"this\"),class:e(\"class\"),super:e(\"atom\"),yield:r,export:e(\"export\"),import:e(\"import\"),extends:r,await:r}}(),f=/[+\\-*&%=<>!?|~^@]/,h=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;function g(e,t,n){return r=e,i=n,t}function m(e,t){var n,r=e.next();if('\"'==r||\"'\"==r)return t.tokenize=(n=r,function(e,t){var r,i=!1;if(s&&\"@\"==e.peek()&&e.match(h))return t.tokenize=m,g(\"jsonld-keyword\",\"meta\");for(;null!=(r=e.next())&&(r!=n||i);)i=!i&&\"\\\\\"==r;return i||(t.tokenize=m),g(\"string\",\"string\")}),t.tokenize(e,t);if(\".\"==r&&e.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/))return g(\"number\",\"number\");if(\".\"==r&&e.match(\"..\"))return g(\"spread\",\"meta\");if(/[\\[\\]{}\\(\\),;\\:\\.]/.test(r))return g(r);if(\"=\"==r&&e.eat(\">\"))return g(\"=>\",\"operator\");if(\"0\"==r&&e.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return g(\"number\",\"number\");if(/\\d/.test(r))return e.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/),g(\"number\",\"number\");if(\"/\"==r)return e.eat(\"*\")?(t.tokenize=v,v(e,t)):e.eat(\"/\")?(e.skipToEnd(),g(\"comment\",\"comment\")):Je(e,t,1)?(function(e){for(var t,n=!1,r=!1;null!=(t=e.next());){if(!n){if(\"/\"==t&&!r)return;\"[\"==t?r=!0:r&&\"]\"==t&&(r=!1)}n=!n&&\"\\\\\"==t}}(e),e.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/),g(\"regexp\",\"string-2\")):(e.eat(\"=\"),g(\"operator\",\"operator\",e.current()));if(\"`\"==r)return t.tokenize=E,E(e,t);if(\"#\"==r&&\"!\"==e.peek())return e.skipToEnd(),g(\"meta\",\"meta\");if(\"#\"==r&&e.eatWhile(p))return g(\"variable\",\"property\");if(\"<\"==r&&e.match(\"!--\")||\"-\"==r&&e.match(\"->\")&&!/\\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),g(\"comment\",\"comment\");if(f.test(r))return\">\"==r&&t.lexical&&\">\"==t.lexical.type||(e.eat(\"=\")?\"!\"!=r&&\"=\"!=r||e.eat(\"=\"):/[<>*+\\-|&?]/.test(r)&&(e.eat(r),\">\"==r&&e.eat(r))),\"?\"==r&&e.eat(\".\")?g(\".\"):g(\"operator\",\"operator\",e.current());if(p.test(r)){e.eatWhile(p);var i=e.current();if(\".\"!=t.lastType){if(d.propertyIsEnumerable(i)){var o=d[i];return g(o.type,o.style,i)}if(\"async\"==i&&e.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/,!1))return g(\"async\",\"keyword\",i)}return g(\"variable\",\"variable\",i)}}function v(e,t){for(var n,r=!1;n=e.next();){if(\"/\"==n&&r){t.tokenize=m;break}r=\"*\"==n}return g(\"comment\",\"comment\")}function E(e,t){for(var n,r=!1;null!=(n=e.next());){if(!r&&(\"`\"==n||\"$\"==n&&e.eat(\"{\"))){t.tokenize=m;break}r=!r&&\"\\\\\"==n}return g(\"quasi\",\"string-2\",e.current())}function y(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf(\"=>\",e.start);if(!(n<0)){if(c){var r=/:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(e.string.slice(e.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=e.string.charAt(a),l=\"([{}])\".indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){\"(\"==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(p.test(s))o=!0;else if(/[\"'\\/`]/.test(s))for(;;--a){if(0==a)return;if(e.string.charAt(a-1)==s&&\"\\\\\"!=e.string.charAt(a-2)){a--;break}}else if(o&&!i){++a;break}}o&&!i&&(t.fatArrowAt=a)}}var b={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,\"jsonld-keyword\":!0};function x(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function T(e,t){if(!u)return!1;for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var r=e.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==t)return!0}function A(e,t,n,r,i){var o=e.cc;for(S.state=e,S.stream=i,S.marked=null,S.cc=o,S.style=t,e.lexical.hasOwnProperty(\"align\")||(e.lexical.align=!0);;)if((o.length?o.pop():l?U:G)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return S.marked?S.marked:\"variable\"==n&&T(e,r)?\"variable-2\":t}}var S={state:null,column:null,marked:null,cc:null};function L(){for(var e=arguments.length-1;e>=0;e--)S.cc.push(arguments[e])}function N(){return L.apply(null,arguments),!0}function C(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function I(e){var t=S.state;if(S.marked=\"def\",u){if(t.context)if(\"var\"==t.lexical.info&&t.context&&t.context.block){var r=function e(t,n){if(n){if(n.block){var r=e(t,n.prev);return r?r==n.prev?n:new R(r,n.vars,!0):null}return C(t,n.vars)?n:new R(n.prev,new w(t,n.vars),!1)}return null}(e,t.context);if(null!=r)return void(t.context=r)}else if(!C(e,t.localVars))return void(t.localVars=new w(e,t.localVars));n.globalVars&&!C(e,t.globalVars)&&(t.globalVars=new w(e,t.globalVars))}}function _(e){return\"public\"==e||\"private\"==e||\"protected\"==e||\"abstract\"==e||\"readonly\"==e}function R(e,t,n){this.prev=e,this.vars=t,this.block=n}function w(e,t){this.name=e,this.next=t}var O=new w(\"this\",new w(\"arguments\",null));function D(){S.state.context=new R(S.state.context,S.state.localVars,!1),S.state.localVars=O}function P(){S.state.context=new R(S.state.context,S.state.localVars,!0),S.state.localVars=null}function k(){S.state.localVars=S.state.context.vars,S.state.context=S.state.context.prev}function M(e,t){var n=function(){var n=S.state,r=n.indented;if(\"stat\"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&\")\"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new x(r,S.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function F(){var e=S.state;e.lexical.prev&&(\")\"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function B(e){return function t(n){return n==e?N():\";\"==e||\"}\"==n||\")\"==n||\"]\"==n?L():N(t)}}function G(e,t){return\"var\"==e?N(M(\"vardef\",t),Ae,B(\";\"),F):\"keyword a\"==e?N(M(\"form\"),q,G,F):\"keyword b\"==e?N(M(\"form\"),G,F):\"keyword d\"==e?S.stream.match(/^\\s*$/,!1)?N():N(M(\"stat\"),W,B(\";\"),F):\"debugger\"==e?N(B(\";\")):\"{\"==e?N(M(\"}\"),P,se,F,k):\";\"==e?N():\"if\"==e?(\"else\"==S.state.lexical.info&&S.state.cc[S.state.cc.length-1]==F&&S.state.cc.pop()(),N(M(\"form\"),q,G,F,_e)):\"function\"==e?N(De):\"for\"==e?N(M(\"form\"),P,Re,G,k,F):\"class\"==e||c&&\"interface\"==t?(S.marked=\"keyword\",N(M(\"form\",\"class\"==e?e:t),Be,F)):\"variable\"==e?c&&\"declare\"==t?(S.marked=\"keyword\",N(G)):c&&(\"module\"==t||\"enum\"==t||\"type\"==t)&&S.stream.match(/^\\s*\\w/,!1)?(S.marked=\"keyword\",\"enum\"==t?N(Ye):\"type\"==t?N(ke,B(\"operator\"),de,B(\";\")):N(M(\"form\"),Se,B(\"{\"),M(\"}\"),se,F,F)):c&&\"namespace\"==t?(S.marked=\"keyword\",N(M(\"form\"),U,G,F)):c&&\"abstract\"==t?(S.marked=\"keyword\",N(G)):N(M(\"stat\"),ee):\"switch\"==e?N(M(\"form\"),q,B(\"{\"),M(\"}\",\"switch\"),P,se,F,F,k):\"case\"==e?N(U,B(\":\")):\"default\"==e?N(B(\":\")):\"catch\"==e?N(M(\"form\"),D,j,G,F,k):\"export\"==e?N(M(\"stat\"),He,F):\"import\"==e?N(M(\"stat\"),Ve,F):\"async\"==e?N(G):\"@\"==t?N(U,G):L(M(\"stat\"),U,B(\";\"),F)}function j(e){if(\"(\"==e)return N(Me,B(\")\"))}function U(e,t){return V(e,t,!1)}function H(e,t){return V(e,t,!0)}function q(e){return\"(\"!=e?L():N(M(\")\"),W,B(\")\"),F)}function V(e,t,n){if(S.state.fatArrowAt==S.stream.start){var r=n?K:Y;if(\"(\"==e)return N(D,M(\")\"),oe(Me,\")\"),F,B(\"=>\"),r,k);if(\"variable\"==e)return L(D,Se,B(\"=>\"),r,k)}var i=n?Q:z;return b.hasOwnProperty(e)?N(i):\"function\"==e?N(De,i):\"class\"==e||c&&\"interface\"==t?(S.marked=\"keyword\",N(M(\"form\"),Fe,F)):\"keyword c\"==e||\"async\"==e?N(n?H:U):\"(\"==e?N(M(\")\"),W,B(\")\"),F,i):\"operator\"==e||\"spread\"==e?N(n?H:U):\"[\"==e?N(M(\"]\"),$e,F,i):\"{\"==e?ae(ne,\"}\",null,i):\"quasi\"==e?L(X,i):\"new\"==e?N(function(e){return function(t){return\".\"==t?N(e?Z:J):\"variable\"==t&&c?N(be,e?Q:z):L(e?H:U)}}(n)):N()}function W(e){return e.match(/[;\\}\\)\\],]/)?L():L(U)}function z(e,t){return\",\"==e?N(W):Q(e,t,!1)}function Q(e,t,n){var r=0==n?z:Q,i=0==n?U:H;return\"=>\"==e?N(D,n?K:Y,k):\"operator\"==e?/\\+\\+|--/.test(t)||c&&\"!\"==t?N(r):c&&\"<\"==t&&S.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/,!1)?N(M(\">\"),oe(de,\">\"),F,r):\"?\"==t?N(U,B(\":\"),i):N(i):\"quasi\"==e?L(X,r):\";\"!=e?\"(\"==e?ae(H,\")\",\"call\",r):\".\"==e?N(te,r):\"[\"==e?N(M(\"]\"),W,B(\"]\"),F,r):c&&\"as\"==t?(S.marked=\"keyword\",N(de,r)):\"regexp\"==e?(S.state.lastType=S.marked=\"operator\",S.stream.backUp(S.stream.pos-S.stream.start-1),N(i)):void 0:void 0}function X(e,t){return\"quasi\"!=e?L():\"${\"!=t.slice(t.length-2)?N(X):N(W,$)}function $(e){if(\"}\"==e)return S.marked=\"string-2\",S.state.tokenize=E,N(X)}function Y(e){return y(S.stream,S.state),L(\"{\"==e?G:U)}function K(e){return y(S.stream,S.state),L(\"{\"==e?G:H)}function J(e,t){if(\"target\"==t)return S.marked=\"keyword\",N(z)}function Z(e,t){if(\"target\"==t)return S.marked=\"keyword\",N(Q)}function ee(e){return\":\"==e?N(F,G):L(z,B(\";\"),F)}function te(e){if(\"variable\"==e)return S.marked=\"property\",N()}function ne(e,t){return\"async\"==e?(S.marked=\"property\",N(ne)):\"variable\"==e||\"keyword\"==S.style?(S.marked=\"property\",\"get\"==t||\"set\"==t?N(re):(c&&S.state.fatArrowAt==S.stream.start&&(n=S.stream.match(/^\\s*:\\s*/,!1))&&(S.state.fatArrowAt=S.stream.pos+n[0].length),N(ie))):\"number\"==e||\"string\"==e?(S.marked=s?\"property\":S.style+\" property\",N(ie)):\"jsonld-keyword\"==e?N(ie):c&&_(t)?(S.marked=\"keyword\",N(ne)):\"[\"==e?N(U,le,B(\"]\"),ie):\"spread\"==e?N(H,ie):\"*\"==t?(S.marked=\"keyword\",N(ne)):\":\"==e?L(ie):void 0;var n}function re(e){return\"variable\"!=e?L(ie):(S.marked=\"property\",N(De))}function ie(e){return\":\"==e?N(H):\"(\"==e?L(De):void 0}function oe(e,t,n){function r(i,o){if(n?n.indexOf(i)>-1:\",\"==i){var a=S.state.lexical;return\"call\"==a.info&&(a.pos=(a.pos||0)+1),N((function(n,r){return n==t||r==t?L():L(e)}),r)}return i==t||o==t?N():n&&n.indexOf(\";\")>-1?L(e):N(B(t))}return function(n,i){return n==t||i==t?N():L(e,r)}}function ae(e,t,n){for(var r=3;r<arguments.length;r++)S.cc.push(arguments[r]);return N(M(t,n),oe(e,t),F)}function se(e){return\"}\"==e?N():L(G,se)}function le(e,t){if(c){if(\":\"==e)return N(de);if(\"?\"==t)return N(le)}}function ue(e,t){if(c&&(\":\"==e||\"in\"==t))return N(de)}function ce(e){if(c&&\":\"==e)return S.stream.match(/^\\s*\\w+\\s+is\\b/,!1)?N(U,pe,de):N(de)}function pe(e,t){if(\"is\"==t)return S.marked=\"keyword\",N()}function de(e,t){return\"keyof\"==t||\"typeof\"==t||\"infer\"==t||\"readonly\"==t?(S.marked=\"keyword\",N(\"typeof\"==t?H:de)):\"variable\"==e||\"void\"==t?(S.marked=\"type\",N(ye)):\"|\"==t||\"&\"==t?N(de):\"string\"==e||\"number\"==e||\"atom\"==e?N(ye):\"[\"==e?N(M(\"]\"),oe(de,\"]\",\",\"),F,ye):\"{\"==e?N(M(\"}\"),he,F,ye):\"(\"==e?N(oe(Ee,\")\"),fe,ye):\"<\"==e?N(oe(de,\">\"),de):\"quasi\"==e?L(me,ye):void 0}function fe(e){if(\"=>\"==e)return N(de)}function he(e){return e.match(/[\\}\\)\\]]/)?N():\",\"==e||\";\"==e?N(he):L(ge,he)}function ge(e,t){return\"variable\"==e||\"keyword\"==S.style?(S.marked=\"property\",N(ge)):\"?\"==t||\"number\"==e||\"string\"==e?N(ge):\":\"==e?N(de):\"[\"==e?N(B(\"variable\"),ue,B(\"]\"),ge):\"(\"==e?L(Pe,ge):e.match(/[;\\}\\)\\],]/)?void 0:N()}function me(e,t){return\"quasi\"!=e?L():\"${\"!=t.slice(t.length-2)?N(me):N(de,ve)}function ve(e){if(\"}\"==e)return S.marked=\"string-2\",S.state.tokenize=E,N(me)}function Ee(e,t){return\"variable\"==e&&S.stream.match(/^\\s*[?:]/,!1)||\"?\"==t?N(Ee):\":\"==e?N(de):\"spread\"==e?N(Ee):L(de)}function ye(e,t){return\"<\"==t?N(M(\">\"),oe(de,\">\"),F,ye):\"|\"==t||\".\"==e||\"&\"==t?N(de):\"[\"==e?N(de,B(\"]\"),ye):\"extends\"==t||\"implements\"==t?(S.marked=\"keyword\",N(de)):\"?\"==t?N(de,B(\":\"),de):void 0}function be(e,t){if(\"<\"==t)return N(M(\">\"),oe(de,\">\"),F,ye)}function xe(){return L(de,Te)}function Te(e,t){if(\"=\"==t)return N(de)}function Ae(e,t){return\"enum\"==t?(S.marked=\"keyword\",N(Ye)):L(Se,le,Ce,Ie)}function Se(e,t){return c&&_(t)?(S.marked=\"keyword\",N(Se)):\"variable\"==e?(I(t),N()):\"spread\"==e?N(Se):\"[\"==e?ae(Ne,\"]\"):\"{\"==e?ae(Le,\"}\"):void 0}function Le(e,t){return\"variable\"!=e||S.stream.match(/^\\s*:/,!1)?(\"variable\"==e&&(S.marked=\"property\"),\"spread\"==e?N(Se):\"}\"==e?L():\"[\"==e?N(U,B(\"]\"),B(\":\"),Le):N(B(\":\"),Se,Ce)):(I(t),N(Ce))}function Ne(){return L(Se,Ce)}function Ce(e,t){if(\"=\"==t)return N(H)}function Ie(e){if(\",\"==e)return N(Ae)}function _e(e,t){if(\"keyword b\"==e&&\"else\"==t)return N(M(\"form\",\"else\"),G,F)}function Re(e,t){return\"await\"==t?N(Re):\"(\"==e?N(M(\")\"),we,F):void 0}function we(e){return\"var\"==e?N(Ae,Oe):\"variable\"==e?N(Oe):L(Oe)}function Oe(e,t){return\")\"==e?N():\";\"==e?N(Oe):\"in\"==t||\"of\"==t?(S.marked=\"keyword\",N(U,Oe)):L(U,Oe)}function De(e,t){return\"*\"==t?(S.marked=\"keyword\",N(De)):\"variable\"==e?(I(t),N(De)):\"(\"==e?N(D,M(\")\"),oe(Me,\")\"),F,ce,G,k):c&&\"<\"==t?N(M(\">\"),oe(xe,\">\"),F,De):void 0}function Pe(e,t){return\"*\"==t?(S.marked=\"keyword\",N(Pe)):\"variable\"==e?(I(t),N(Pe)):\"(\"==e?N(D,M(\")\"),oe(Me,\")\"),F,ce,k):c&&\"<\"==t?N(M(\">\"),oe(xe,\">\"),F,Pe):void 0}function ke(e,t){return\"keyword\"==e||\"variable\"==e?(S.marked=\"type\",N(ke)):\"<\"==t?N(M(\">\"),oe(xe,\">\"),F):void 0}function Me(e,t){return\"@\"==t&&N(U,Me),\"spread\"==e?N(Me):c&&_(t)?(S.marked=\"keyword\",N(Me)):c&&\"this\"==e?N(le,Ce):L(Se,le,Ce)}function Fe(e,t){return\"variable\"==e?Be(e,t):Ge(e,t)}function Be(e,t){if(\"variable\"==e)return I(t),N(Ge)}function Ge(e,t){return\"<\"==t?N(M(\">\"),oe(xe,\">\"),F,Ge):\"extends\"==t||\"implements\"==t||c&&\",\"==e?(\"implements\"==t&&(S.marked=\"keyword\"),N(c?de:U,Ge)):\"{\"==e?N(M(\"}\"),je,F):void 0}function je(e,t){return\"async\"==e||\"variable\"==e&&(\"static\"==t||\"get\"==t||\"set\"==t||c&&_(t))&&S.stream.match(/^\\s+#?[\\w$\\xa1-\\uffff]/,!1)?(S.marked=\"keyword\",N(je)):\"variable\"==e||\"keyword\"==S.style?(S.marked=\"property\",N(Ue,je)):\"number\"==e||\"string\"==e?N(Ue,je):\"[\"==e?N(U,le,B(\"]\"),Ue,je):\"*\"==t?(S.marked=\"keyword\",N(je)):c&&\"(\"==e?L(Pe,je):\";\"==e||\",\"==e?N(je):\"}\"==e?N():\"@\"==t?N(U,je):void 0}function Ue(e,t){if(\"!\"==t)return N(Ue);if(\"?\"==t)return N(Ue);if(\":\"==e)return N(de,Ce);if(\"=\"==t)return N(H);var n=S.state.lexical.prev;return L(n&&\"interface\"==n.info?Pe:De)}function He(e,t){return\"*\"==t?(S.marked=\"keyword\",N(Xe,B(\";\"))):\"default\"==t?(S.marked=\"keyword\",N(U,B(\";\"))):\"{\"==e?N(oe(qe,\"}\"),Xe,B(\";\")):L(G)}function qe(e,t){return\"as\"==t?(S.marked=\"keyword\",N(B(\"variable\"))):\"variable\"==e?L(H,qe):void 0}function Ve(e){return\"string\"==e?N():\"(\"==e?L(U):\".\"==e?L(z):L(We,ze,Xe)}function We(e,t){return\"{\"==e?ae(We,\"}\"):(\"variable\"==e&&I(t),\"*\"==t&&(S.marked=\"keyword\"),N(Qe))}function ze(e){if(\",\"==e)return N(We,ze)}function Qe(e,t){if(\"as\"==t)return S.marked=\"keyword\",N(We)}function Xe(e,t){if(\"from\"==t)return S.marked=\"keyword\",N(U)}function $e(e){return\"]\"==e?N():L(oe(H,\"]\"))}function Ye(){return L(M(\"form\"),Se,B(\"{\"),M(\"}\"),oe(Ke,\"}\"),F,F)}function Ke(){return L(Se,Ce)}function Je(e,t,n){return t.tokenize==m&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(t.lastType)||\"quasi\"==t.lastType&&/\\{\\s*$/.test(e.string.slice(0,e.pos-(n||0)))}return D.lex=P.lex=!0,k.lex=!0,F.lex=!0,{startState:function(e){var t={tokenize:m,lastType:\"sof\",cc:[],lexical:new x((e||0)-o,0,\"block\",!1),localVars:n.localVars,context:n.localVars&&new R(null,null,!1),indented:e||0};return n.globalVars&&\"object\"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty(\"align\")||(t.lexical.align=!1),t.indented=e.indentation(),y(e,t)),t.tokenize!=v&&e.eatSpace())return null;var n=t.tokenize(e,t);return\"comment\"==r?n:(t.lastType=\"operator\"!=r||\"++\"!=i&&\"--\"!=i?r:\"incdec\",A(t,n,r,i,e))},indent:function(t,r){if(t.tokenize==v||t.tokenize==E)return e.Pass;if(t.tokenize!=m)return 0;var i,s=r&&r.charAt(0),l=t.lexical;if(!/^\\s*else\\b/.test(r))for(var u=t.cc.length-1;u>=0;--u){var c=t.cc[u];if(c==F)l=l.prev;else if(c!=_e&&c!=k)break}for(;(\"stat\"==l.type||\"form\"==l.type)&&(\"}\"==s||(i=t.cc[t.cc.length-1])&&(i==z||i==Q)&&!/^[,\\.=+\\-*:?[\\(]/.test(r));)l=l.prev;a&&\")\"==l.type&&\"stat\"==l.prev.type&&(l=l.prev);var p=l.type,d=s==p;return\"vardef\"==p?l.indented+(\"operator\"==t.lastType||\",\"==t.lastType?l.info.length+1:0):\"form\"==p&&\"{\"==s?l.indented:\"form\"==p?l.indented+o:\"stat\"==p?l.indented+(function(e,t){return\"operator\"==e.lastType||\",\"==e.lastType||f.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}(t,r)?a||o:0):\"switch\"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:o):l.indented+(/^(?:case|default)\\b/.test(r)?o:2*o)},electricInput:/^\\s*(?:case .*?:|default:|\\{|\\})$/,blockCommentStart:l?null:\"/*\",blockCommentEnd:l?null:\"*/\",blockCommentContinue:l?null:\" * \",lineComment:l?null:\"//\",fold:\"brace\",closeBrackets:\"()[]{}''\\\"\\\"``\",helperType:l?\"json\":\"javascript\",jsonldMode:s,jsonMode:l,expressionAllowed:Je,skipExpression:function(t){A(t,\"atom\",\"atom\",\"true\",new e.StringStream(\"\",2,null))}}})),e.registerHelper(\"wordChars\",\"javascript\",/[\\w$]/),e.defineMIME(\"text/javascript\",\"javascript\"),e.defineMIME(\"text/ecmascript\",\"javascript\"),e.defineMIME(\"application/javascript\",\"javascript\"),e.defineMIME(\"application/x-javascript\",\"javascript\"),e.defineMIME(\"application/ecmascript\",\"javascript\"),e.defineMIME(\"application/json\",{name:\"javascript\",json:!0}),e.defineMIME(\"application/x-json\",{name:\"javascript\",json:!0}),e.defineMIME(\"application/manifest+json\",{name:\"javascript\",json:!0}),e.defineMIME(\"application/ld+json\",{name:\"javascript\",jsonld:!0}),e.defineMIME(\"text/typescript\",{name:\"javascript\",typescript:!0}),e.defineMIME(\"application/typescript\",{name:\"javascript\",typescript:!0})}(n(1719))},7554:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e){return\"number\"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},7589:(e,t,n)=>{var r=Object.assign?Object.assign:function(e,t,n,r){for(var i=1;i<arguments.length;i++)l(Object(arguments[i]),(function(t,n){e[n]=t}));return e},i=function(){if(Object.create)return function(e,t,n,i){var o=s(arguments,1);return r.apply(this,[Object.create(e)].concat(o))};{function e(){}return function(t,n,i,o){var a=s(arguments,1);return e.prototype=t,r.apply(this,[new e].concat(a))}}}(),o=String.prototype.trim?function(e){return String.prototype.trim.call(e)}:function(e){return e.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")},a=\"undefined\"!=typeof window?window:n.g;function s(e,t){return Array.prototype.slice.call(e,t||0)}function l(e,t){u(e,(function(e,n){return t(e,n),!1}))}function u(e,t){if(c(e)){for(var n=0;n<e.length;n++)if(t(e[n],n))return e[n]}else for(var r in e)if(e.hasOwnProperty(r)&&t(e[r],r))return e[r]}function c(e){return null!=e&&\"function\"!=typeof e&&\"number\"==typeof e.length}e.exports={assign:r,create:i,trim:o,bind:function(e,t){return function(){return t.apply(e,Array.prototype.slice.call(arguments,0))}},slice:s,each:l,map:function(e,t){var n=c(e)?[]:{};return u(e,(function(e,r){return n[r]=t(e,r),!1})),n},pluck:u,isList:c,isFunction:function(e){return e&&\"[object Function]\"==={}.toString.call(e)},isObject:function(e){return e&&\"[object Object]\"==={}.toString.call(e)},Global:a}},7623:(e,t,n)=>{!function(e){\"use strict\";var t=e.Pos;function n(e,t){return e.line-t.line||e.ch-t.ch}var r=\"A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",i=new RegExp(\"<(/?)([\"+r+\"][\"+r+\"-:.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*)\",\"g\");function o(e,t,n,r){this.line=t,this.ch=n,this.cm=e,this.text=e.getLine(t),this.min=r?Math.max(r.from,e.firstLine()):e.firstLine(),this.max=r?Math.min(r.to-1,e.lastLine()):e.lastLine()}function a(e,n){var r=e.cm.getTokenTypeAt(t(e.line,n));return r&&/\\btag\\b/.test(r)}function s(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function l(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function u(e){for(;;){var t=e.text.indexOf(\">\",e.ch);if(-1==t){if(s(e))continue;return}if(a(e,t+1)){var n=e.text.lastIndexOf(\"/\",t),r=n>-1&&!/\\S/.test(e.text.slice(n+1,t));return e.ch=t+1,r?\"selfClose\":\"regular\"}e.ch=t+1}}function c(e){for(;;){var t=e.ch?e.text.lastIndexOf(\"<\",e.ch-1):-1;if(-1==t){if(l(e))continue;return}if(a(e,t+1)){i.lastIndex=t,e.ch=t;var n=i.exec(e.text);if(n&&n.index==t)return n}else e.ch=t}}function p(e){for(;;){i.lastIndex=e.ch;var t=i.exec(e.text);if(!t){if(s(e))continue;return}if(a(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}function d(e){for(;;){var t=e.ch?e.text.lastIndexOf(\">\",e.ch-1):-1;if(-1==t){if(l(e))continue;return}if(a(e,t+1)){var n=e.text.lastIndexOf(\"/\",t),r=n>-1&&!/\\S/.test(e.text.slice(n+1,t));return e.ch=t+1,r?\"selfClose\":\"regular\"}e.ch=t}}function f(e,n){for(var r=[];;){var i,o=p(e),a=e.line,s=e.ch-(o?o[0].length:0);if(!o||!(i=u(e)))return;if(\"selfClose\"!=i)if(o[1]){for(var l=r.length-1;l>=0;--l)if(r[l]==o[2]){r.length=l;break}if(l<0&&(!n||n==o[2]))return{tag:o[2],from:t(a,s),to:t(e.line,e.ch)}}else r.push(o[2])}}function h(e,n){for(var r=[];;){var i=d(e);if(!i)return;if(\"selfClose\"!=i){var o=e.line,a=e.ch,s=c(e);if(!s)return;if(s[1])r.push(s[2]);else{for(var l=r.length-1;l>=0;--l)if(r[l]==s[2]){r.length=l;break}if(l<0&&(!n||n==s[2]))return{tag:s[2],from:t(e.line,e.ch),to:t(o,a)}}}else c(e)}}e.registerHelper(\"fold\",\"xml\",(function(e,r){for(var i=new o(e,r.line,0);;){var a=p(i);if(!a||i.line!=r.line)return;var s=u(i);if(!s)return;if(!a[1]&&\"selfClose\"!=s){var l=t(i.line,i.ch),c=f(i,a[2]);return c&&n(c.from,l)>0?{from:l,to:c.from}:null}}})),e.findMatchingTag=function(e,r,i){var a=new o(e,r.line,r.ch,i);if(-1!=a.text.indexOf(\">\")||-1!=a.text.indexOf(\"<\")){var s=u(a),l=s&&t(a.line,a.ch),p=s&&c(a);if(s&&p&&!(n(a,r)>0)){var d={from:t(a.line,a.ch),to:l,tag:p[2]};return\"selfClose\"==s?{open:d,close:null,at:\"open\"}:p[1]?{open:h(a,p[2]),close:d,at:\"close\"}:{open:d,close:f(a=new o(e,l.line,l.ch,i),p[2]),at:\"open\"}}}},e.findEnclosingTag=function(e,t,n,r){for(var i=new o(e,t.line,t.ch,n);;){var a=h(i,r);if(!a)break;var s=f(new o(e,t.line,t.ch,n),a.tag);if(s)return{open:a,close:s}}},e.scanForClosingTag=function(e,t,n,r){return f(new o(e,t.line,t.ch,r?{from:0,to:r}:null),n)}}(n(1719))},7735:(e,t,n)=>{var r=n(2990).default;e.exports=function(e){if(null!=e){var t=e[\"function\"==typeof Symbol&&Symbol.iterator||\"@@iterator\"],n=0;if(t)return t.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}throw new TypeError(r(e)+\" is not iterable\")},e.exports.__esModule=!0,e.exports.default=e.exports},7781:e=>{\"use strict\";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return\"%\".concat(e.charCodeAt(0).toString(16).toUpperCase())}))}},7827:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=(0,n(5067).A)(Object.getPrototypeOf,Object)},7837:(e,t,n)=>{var r=n(7589).Global;e.exports={name:\"oldIE-userDataStorage\",write:function(e,t){if(a)return;var n=l(e);o((function(e){e.setAttribute(n,t),e.save(\"storejs\")}))},read:function(e){if(a)return;var t=l(e),n=null;return o((function(e){n=e.getAttribute(t)})),n},each:function(e){o((function(t){for(var n=t.XMLDocument.documentElement.attributes,r=n.length-1;r>=0;r--){var i=n[r];e(t.getAttribute(i.name),i.name)}}))},remove:function(e){var t=l(e);o((function(e){e.removeAttribute(t),e.save(\"storejs\")}))},clearAll:function(){o((function(e){var t=e.XMLDocument.documentElement.attributes;e.load(\"storejs\");for(var n=t.length-1;n>=0;n--)e.removeAttribute(t[n].name);e.save(\"storejs\")}))}};var i=r.document,o=function(){if(!i||!i.documentElement||!i.documentElement.addBehavior)return null;var e,t,n;try{(t=new ActiveXObject(\"htmlfile\")).open(),t.write('<script>document.w=window<\\/script><iframe src=\"/favicon.ico\"></iframe>'),t.close(),e=t.w.frames[0].document,n=e.createElement(\"div\")}catch(t){n=i.createElement(\"div\"),e=i.body}return function(t){var r=[].slice.call(arguments,0);r.unshift(n),e.appendChild(n),n.addBehavior(\"#default#userData\"),n.load(\"storejs\"),t.apply(this,r),e.removeChild(n)}}(),a=(r.navigator?r.navigator.userAgent:\"\").match(/ (MSIE 8|MSIE 9|MSIE 10)\\./);var s=new RegExp(\"[!\\\"#$%&'()*+,/\\\\\\\\:;<=>?@[\\\\]^`{|}~]\",\"g\");function l(e){return e.replace(/^\\d/,\"___$&\").replace(s,\"___\")}},7899:(e,t,n)=>{!function(e){\"use strict\";e.runMode=function(t,n,r,i){var o=e.getMode(e.defaults,n),a=i&&i.tabSize||e.defaults.tabSize;if(r.appendChild){var s=/MSIE \\d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<9),l=r,u=0;l.textContent=\"\",r=function(e,t){if(\"\\n\"==e)return l.appendChild(document.createTextNode(s?\"\\r\":e)),void(u=0);for(var n=\"\",r=0;;){var i=e.indexOf(\"\\t\",r);if(-1==i){n+=e.slice(r),u+=e.length-r;break}u+=i-r,n+=e.slice(r,i);var o=a-u%a;u+=o;for(var c=0;c<o;++c)n+=\" \";r=i+1}if(t){var p=l.appendChild(document.createElement(\"span\"));p.className=\"cm-\"+t.replace(/ +/g,\" cm-\"),p.appendChild(document.createTextNode(n))}else l.appendChild(document.createTextNode(n))}}for(var c=e.splitLines(t),p=i&&i.state||e.startState(o),d=0,f=c.length;d<f;++d){d&&r(\"\\n\");var h=new e.StringStream(c[d],null,{lookAhead:function(e){return c[d+e]},baseToken:function(){}});for(!h.string&&o.blankLine&&o.blankLine(p);!h.eol();){var g=o.token(h,p);r(h.current(),g,d,h.start,p,o),h.start=h.pos}}}}(n(1719))},7903:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>a});var r=n(8292),i=n(7348),o=Object.prototype.hasOwnProperty;const a=function(e,t,n){var a=e[t];o.call(e,t)&&(0,i.A)(a,n)&&(void 0!==n||t in e)||(0,r.A)(e,t,n)}},8023:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>w});var r=n(3779),i=n(8412);const o=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this};const a=function(e){return this.__data__.has(e)};function s(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new i.A;++t<n;)this.add(e[t])}s.prototype.add=s.prototype.push=o,s.prototype.has=a;const l=s;const u=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1};const c=function(e,t){return e.has(t)};const p=function(e,t,n,r,i,o){var a=1&n,s=e.length,p=t.length;if(s!=p&&!(a&&p>s))return!1;var d=o.get(e),f=o.get(t);if(d&&f)return d==t&&f==e;var h=-1,g=!0,m=2&n?new l:void 0;for(o.set(e,t),o.set(t,e);++h<s;){var v=e[h],E=t[h];if(r)var y=a?r(E,v,h,t,e,o):r(v,E,h,e,t,o);if(void 0!==y){if(y)continue;g=!1;break}if(m){if(!u(t,(function(e,t){if(!c(m,t)&&(v===e||i(v,e,n,r,o)))return m.push(t)}))){g=!1;break}}else if(v!==E&&!i(v,E,n,r,o)){g=!1;break}}return o.delete(e),o.delete(t),g};var d=n(7181),f=n(5168),h=n(7348),g=n(6825);const m=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n};var v=d.A?d.A.prototype:void 0,E=v?v.valueOf:void 0;const y=function(e,t,n,r,i,o,a){switch(n){case\"[object DataView]\":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case\"[object ArrayBuffer]\":return!(e.byteLength!=t.byteLength||!o(new f.A(e),new f.A(t)));case\"[object Boolean]\":case\"[object Date]\":case\"[object Number]\":return(0,h.A)(+e,+t);case\"[object Error]\":return e.name==t.name&&e.message==t.message;case\"[object RegExp]\":case\"[object String]\":return e==t+\"\";case\"[object Map]\":var s=g.A;case\"[object Set]\":var l=1&r;if(s||(s=m),e.size!=t.size&&!l)return!1;var u=a.get(e);if(u)return u==t;r|=2,a.set(e,t);var c=p(s(e),s(t),r,i,o,a);return a.delete(e),c;case\"[object Symbol]\":if(E)return E.call(e)==E.call(t)}return!1};var b=n(6886),x=Object.prototype.hasOwnProperty;const T=function(e,t,n,r,i,o){var a=1&n,s=(0,b.A)(e),l=s.length;if(l!=(0,b.A)(t).length&&!a)return!1;for(var u=l;u--;){var c=s[u];if(!(a?c in t:x.call(t,c)))return!1}var p=o.get(e),d=o.get(t);if(p&&d)return p==t&&d==e;var f=!0;o.set(e,t),o.set(t,e);for(var h=a;++u<l;){var g=e[c=s[u]],m=t[c];if(r)var v=a?r(m,g,c,t,e,o):r(g,m,c,e,t,o);if(!(void 0===v?g===m||i(g,m,n,r,o):v)){f=!1;break}h||(h=\"constructor\"==c)}if(f&&!h){var E=e.constructor,y=t.constructor;E==y||!(\"constructor\"in e)||!(\"constructor\"in t)||\"function\"==typeof E&&E instanceof E&&\"function\"==typeof y&&y instanceof y||(f=!1)}return o.delete(e),o.delete(t),f};var A=n(4889),S=n(8285),L=n(6118),N=n(4249),C=\"[object Object]\",I=Object.prototype.hasOwnProperty;const _=function(e,t,n,i,o,a){var s=(0,S.A)(e),l=(0,S.A)(t),u=s?\"[object Array]\":(0,A.A)(e),c=l?\"[object Array]\":(0,A.A)(t),d=(u=\"[object Arguments]\"==u?C:u)==C,f=(c=\"[object Arguments]\"==c?C:c)==C,h=u==c;if(h&&(0,L.A)(e)){if(!(0,L.A)(t))return!1;s=!0,d=!1}if(h&&!d)return a||(a=new r.A),s||(0,N.A)(e)?p(e,t,n,i,o,a):y(e,t,u,n,i,o,a);if(!(1&n)){var g=d&&I.call(e,\"__wrapped__\"),m=f&&I.call(t,\"__wrapped__\");if(g||m){var v=g?e.value():e,E=m?t.value():t;return a||(a=new r.A),o(v,E,n,i,a)}}return!!h&&(a||(a=new r.A),T(e,t,n,i,o,a))};var R=n(8214);const w=function e(t,n,r,i,o){return t===n||(null==t||null==n||!(0,R.A)(t)&&!(0,R.A)(n)?t!=t&&n!=n:_(t,n,r,i,e,o))}},8086:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(2977),i=n(8214);const o=function(e){return\"symbol\"==typeof e||(0,i.A)(e)&&\"[object Symbol]\"==(0,r.A)(e)}},8199:(e,t,n)=>{var r=n(7589).Global;e.exports={name:\"oldFF-globalStorage\",read:function(e){return i[e]},write:function(e,t){i[e]=t},each:o,remove:function(e){return i.removeItem(e)},clearAll:function(){o((function(e,t){delete i[e]}))}};var i=r.globalStorage;function o(e){for(var t=i.length-1;t>=0;t--){var n=i.key(t);e(i[n],n)}}},8214:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e){return null!=e&&\"object\"==typeof e}},8272:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}},8285:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=Array.isArray},8292:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=n(7167);const i=function(e,t,n){\"__proto__\"==t&&r.A?(0,r.A)(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},8377:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(7476),i=\"object\"==typeof self&&self&&self.Object===Object&&self;const o=r.A||i||Function(\"return this\")()},8412:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>A});const r=(0,n(1671).A)(Object,\"create\");const i=function(){this.__data__=r?r(null):{},this.size=0};const o=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t};var a=Object.prototype.hasOwnProperty;const s=function(e){var t=this.__data__;if(r){var n=t[e];return\"__lodash_hash_undefined__\"===n?void 0:n}return a.call(t,e)?t[e]:void 0};var l=Object.prototype.hasOwnProperty;const u=function(e){var t=this.__data__;return r?void 0!==t[e]:l.call(t,e)};const c=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?\"__lodash_hash_undefined__\":t,this};function p(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}p.prototype.clear=i,p.prototype.delete=o,p.prototype.get=s,p.prototype.has=u,p.prototype.set=c;const d=p;var f=n(5826),h=n(6787);const g=function(){this.size=0,this.__data__={hash:new d,map:new(h.A||f.A),string:new d}};const m=function(e){var t=typeof e;return\"string\"==t||\"number\"==t||\"symbol\"==t||\"boolean\"==t?\"__proto__\"!==e:null===e};const v=function(e,t){var n=e.__data__;return m(t)?n[\"string\"==typeof t?\"string\":\"hash\"]:n.map};const E=function(e){var t=v(this,e).delete(e);return this.size-=t?1:0,t};const y=function(e){return v(this,e).get(e)};const b=function(e){return v(this,e).has(e)};const x=function(e,t){var n=v(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function T(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}T.prototype.clear=g,T.prototype.delete=E,T.prototype.get=y,T.prototype.has=b,T.prototype.set=x;const A=T},8541:(e,t,n)=>{var r=n(8696),i=n(1461),o=n(5217),a=n(1115),s=n(1907),l=n(1697),u=n(7735);function c(){\"use strict\";var t=i(),n=t.m(c),p=(Object.getPrototypeOf?Object.getPrototypeOf(n):n.__proto__).constructor;function d(e){var t=\"function\"==typeof e&&e.constructor;return!!t&&(t===p||\"GeneratorFunction\"===(t.displayName||t.name))}var f={throw:1,return:2,break:3,continue:3};function h(e){var t,n;return function(r){t||(t={stop:function(){return n(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return n(r.a,f[e],t)},delegateYield:function(e,i,o){return t.resultName=i,n(r.d,u(e),o)},finish:function(e){return n(r.f,e)}},n=function(e,n,i){r.p=t.prev,r.n=t.next;try{return e(n,i)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=c=function(){return{wrap:function(e,n,r,i){return t.w(h(e),n,r,i&&i.reverse())},isGeneratorFunction:d,mark:t.m,awrap:function(e,t){return new r(e,t)},AsyncIterator:s,async:function(e,t,n,r,i){return(d(t)?a:o)(h(e),t,n,r,i)},keys:l,values:u}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},8563:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>d});var r=n(8285),i=n(9758),o=n(8412);function a(e,t){if(\"function\"!=typeof e||null!=t&&\"function\"!=typeof t)throw new TypeError(\"Expected a function\");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(a.Cache||o.A),n}a.Cache=o.A;const s=a;var l=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,u=/\\\\(\\\\)?/g;const c=function(e){var t=s(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(\"\"),e.replace(l,(function(e,n,r,i){t.push(r?i.replace(u,\"$1\"):n||e)})),t}));var p=n(2965);const d=function(e,t){return(0,r.A)(e)?e:(0,i.A)(e,t)?[e]:c((0,p.A)(e))}},8696:e=>{e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},8709:(e,t,n)=>{!function(e){var t=/MSIE \\d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),n=e.Pos,r={\"(\":\")>\",\")\":\"(<\",\"[\":\"]>\",\"]\":\"[<\",\"{\":\"}>\",\"}\":\"{<\",\"<\":\">>\",\">\":\"<<\"};function i(e){return e&&e.bracketRegex||/[(){}[\\]]/}function o(e,t,o){var s=e.getLineHandle(t.line),l=t.ch-1,u=o&&o.afterCursor;null==u&&(u=/(^| )cm-fat-cursor($| )/.test(e.getWrapperElement().className));var c=i(o),p=!u&&l>=0&&c.test(s.text.charAt(l))&&r[s.text.charAt(l)]||c.test(s.text.charAt(l+1))&&r[s.text.charAt(++l)];if(!p)return null;var d=\">\"==p.charAt(1)?1:-1;if(o&&o.strict&&d>0!=(l==t.ch))return null;var f=e.getTokenTypeAt(n(t.line,l+1)),h=a(e,n(t.line,l+(d>0?1:0)),d,f,o);return null==h?null:{from:n(t.line,l),to:h&&h.pos,match:h&&h.ch==p.charAt(0),forward:d>0}}function a(e,t,o,a,s){for(var l=s&&s.maxScanLineLength||1e4,u=s&&s.maxScanLines||1e3,c=[],p=i(s),d=o>0?Math.min(t.line+u,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-u),f=t.line;f!=d;f+=o){var h=e.getLine(f);if(h){var g=o>0?0:h.length-1,m=o>0?h.length:-1;if(!(h.length>l))for(f==t.line&&(g=t.ch-(o<0?1:0));g!=m;g+=o){var v=h.charAt(g);if(p.test(v)&&(void 0===a||(e.getTokenTypeAt(n(f,g+1))||\"\")==(a||\"\"))){var E=r[v];if(E&&\">\"==E.charAt(1)==o>0)c.push(v);else{if(!c.length)return{pos:n(f,g),ch:v};c.pop()}}}}}return f-o!=(o>0?e.lastLine():e.firstLine())&&null}function s(e,r,i){for(var a=e.state.matchBrackets.maxHighlightLineLength||1e3,s=i&&i.highlightNonMatching,l=[],u=e.listSelections(),c=0;c<u.length;c++){var p=u[c].empty()&&o(e,u[c].head,i);if(p&&(p.match||!1!==s)&&e.getLine(p.from.line).length<=a){var d=p.match?\"CodeMirror-matchingbracket\":\"CodeMirror-nonmatchingbracket\";l.push(e.markText(p.from,n(p.from.line,p.from.ch+1),{className:d})),p.to&&e.getLine(p.to.line).length<=a&&l.push(e.markText(p.to,n(p.to.line,p.to.ch+1),{className:d}))}}if(l.length){t&&e.state.focused&&e.focus();var f=function(){e.operation((function(){for(var e=0;e<l.length;e++)l[e].clear()}))};if(!r)return f;setTimeout(f,800)}}function l(e){e.operation((function(){e.state.matchBrackets.currentlyHighlighted&&(e.state.matchBrackets.currentlyHighlighted(),e.state.matchBrackets.currentlyHighlighted=null),e.state.matchBrackets.currentlyHighlighted=s(e,!1,e.state.matchBrackets)}))}function u(e){e.state.matchBrackets&&e.state.matchBrackets.currentlyHighlighted&&(e.state.matchBrackets.currentlyHighlighted(),e.state.matchBrackets.currentlyHighlighted=null)}e.defineOption(\"matchBrackets\",!1,(function(t,n,r){r&&r!=e.Init&&(t.off(\"cursorActivity\",l),t.off(\"focus\",l),t.off(\"blur\",u),u(t)),n&&(t.state.matchBrackets=\"object\"==typeof n?n:{},t.on(\"cursorActivity\",l),t.on(\"focus\",l),t.on(\"blur\",u))})),e.defineExtension(\"matchBrackets\",(function(){s(this,!0)})),e.defineExtension(\"findMatchingBracket\",(function(e,t,n){return(n||\"boolean\"==typeof t)&&(n?(n.strict=t,t=n):t=t?{strict:!0}:null),o(this,e,t)})),e.defineExtension(\"scanForBracket\",(function(e,t,n,r){return a(this,e,t,n,r)}))}(n(1719))},8723:e=>{\"use strict\";e.exports=function(e,t){if(\"string\"!=typeof e||\"string\"!=typeof t)throw new TypeError(\"Expected the arguments to be of type `string`\");if(\"\"===t)return[e];var n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},8782:(e,t,n)=>{\"use strict\";function r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}n.d(t,{A:()=>r})},8839:(e,t,n)=>{\"use strict\";n.r(t)},8883:e=>{e.exports={name:\"memoryStorage\",read:function(e){return t[e]},write:function(e,n){t[e]=n},each:function(e){for(var n in t)t.hasOwnProperty(n)&&e(t[n],n)},remove:function(e){delete t[e]},clearAll:function(e){t={}}};var t={}},8956:(e,t,n)=>{\"use strict\";n.r(t)},9029:(e,t)=>{t.read=function(e,t,n,r,i){var o,a,s=8*i-r-1,l=(1<<s)-1,u=l>>1,c=-7,p=n?i-1:0,d=n?-1:1,f=e[t+p];for(p+=d,o=f&(1<<-c)-1,f>>=-c,c+=s;c>0;o=256*o+e[t+p],p+=d,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=r;c>0;a=256*a+e[t+p],p+=d,c-=8);if(0===o)o=1-u;else{if(o===l)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,r),o-=u}return(f?-1:1)*a*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var a,s,l,u=8*o-i-1,c=(1<<u)-1,p=c>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,h=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),(t+=a+p>=1?d/l:d*Math.pow(2,1-p))*l>=2&&(a++,l/=2),a+p>=c?(s=0,a=c):a+p>=1?(s=(t*l-1)*Math.pow(2,i),a+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,i),a=0));i>=8;e[n+f]=255&s,f+=h,s/=256,i-=8);for(a=a<<i|s,u+=i;u>0;e[n+f]=255&a,f+=h,a/=256,u-=8);e[n+f-h]|=128*g}},9082:(e,t,n)=>{!function(e){\"use strict\";var t={style:\"matchhighlight\",minChars:2,delay:100,wordsOnly:!1,annotateScrollbar:!1,showToken:!1,trim:!0};function n(e){for(var n in this.options={},t)this.options[n]=(e&&e.hasOwnProperty(n)?e:t)[n];this.overlay=this.timeout=null,this.matchesonscroll=null,this.active=!1}function r(e){var t=e.state.matchHighlighter;(t.active||e.hasFocus())&&o(e,t)}function i(e){var t=e.state.matchHighlighter;t.active||(t.active=!0,o(e,t))}function o(e,t){clearTimeout(t.timeout),t.timeout=setTimeout((function(){l(e)}),t.options.delay)}function a(e,t,n,r){var i=e.state.matchHighlighter;if(e.addOverlay(i.overlay=function(e,t,n){return{token:function(r){if(r.match(e)&&(!t||function(e,t){return!(e.start&&t.test(e.string.charAt(e.start-1))||e.pos!=e.string.length&&t.test(e.string.charAt(e.pos)))}(r,t)))return n;r.next(),r.skipTo(e.charAt(0))||r.skipToEnd()}}}(t,n,r)),i.options.annotateScrollbar&&e.showMatchesOnScrollbar){var o=n?new RegExp((/\\w/.test(t.charAt(0))?\"\\\\b\":\"\")+t.replace(/[\\\\\\[.+*?(){|^$]/g,\"\\\\$&\")+(/\\w/.test(t.charAt(t.length-1))?\"\\\\b\":\"\")):t;i.matchesonscroll=e.showMatchesOnScrollbar(o,!1,{className:\"CodeMirror-selection-highlight-scrollbar\"})}}function s(e){var t=e.state.matchHighlighter;t.overlay&&(e.removeOverlay(t.overlay),t.overlay=null,t.matchesonscroll&&(t.matchesonscroll.clear(),t.matchesonscroll=null))}function l(e){e.operation((function(){var t=e.state.matchHighlighter;if(s(e),e.somethingSelected()||!t.options.showToken){var n=e.getCursor(\"from\"),r=e.getCursor(\"to\");if(n.line==r.line&&(!t.options.wordsOnly||function(e,t,n){if(null!==e.getRange(t,n).match(/^\\w+$/)){if(t.ch>0){var r={line:t.line,ch:t.ch-1};if(null===e.getRange(r,t).match(/\\W/))return!1}return!(n.ch<e.getLine(t.line).length&&(r={line:n.line,ch:n.ch+1},null===e.getRange(n,r).match(/\\W/)))}return!1}(e,n,r))){var i=e.getRange(n,r);t.options.trim&&(i=i.replace(/^\\s+|\\s+$/g,\"\")),i.length>=t.options.minChars&&a(e,i,!1,t.options.style)}}else{for(var o=!0===t.options.showToken?/[\\w$]/:t.options.showToken,l=e.getCursor(),u=e.getLine(l.line),c=l.ch,p=c;c&&o.test(u.charAt(c-1));)--c;for(;p<u.length&&o.test(u.charAt(p));)++p;c<p&&a(e,u.slice(c,p),o,t.options.style)}}))}e.defineOption(\"highlightSelectionMatches\",!1,(function(t,o,a){if(a&&a!=e.Init&&(s(t),clearTimeout(t.state.matchHighlighter.timeout),t.state.matchHighlighter=null,t.off(\"cursorActivity\",r),t.off(\"focus\",i)),o){var u=t.state.matchHighlighter=new n(o);t.hasFocus()?(u.active=!0,l(t)):t.on(\"focus\",i),t.on(\"cursorActivity\",r)}}))}(n(1719),n(6583))},9091:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(2020),i=n(8285);const o=function(e,t,n){var o=t(e);return(0,i.A)(e)?o:(0,r.A)(o,n(e))}},9121:(e,t,n)=>{\"use strict\";function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}n.d(t,{A:()=>r})},9161:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>r});const r=function(e){return function(t){return e(t)}}},9298:(e,t,n)=>{!function(e){\"use strict\";function t(e,t){function n(e){clearTimeout(r.doRedraw),r.doRedraw=setTimeout((function(){r.redraw()}),e)}this.cm=e,this.options=t,this.buttonHeight=t.scrollButtonHeight||e.getOption(\"scrollButtonHeight\"),this.annotations=[],this.doRedraw=this.doUpdate=null,this.div=e.getWrapperElement().appendChild(document.createElement(\"div\")),this.div.style.cssText=\"position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none\",this.computeScale();var r=this;e.on(\"refresh\",this.resizeHandler=function(){clearTimeout(r.doUpdate),r.doUpdate=setTimeout((function(){r.computeScale()&&n(20)}),100)}),e.on(\"markerAdded\",this.resizeHandler),e.on(\"markerCleared\",this.resizeHandler),!1!==t.listenForChanges&&e.on(\"changes\",this.changeHandler=function(){n(250)})}e.defineExtension(\"annotateScrollbar\",(function(e){return\"string\"==typeof e&&(e={className:e}),new t(this,e)})),e.defineOption(\"scrollButtonHeight\",0),t.prototype.computeScale=function(){var e=this.cm,t=(e.getWrapperElement().clientHeight-e.display.barHeight-2*this.buttonHeight)/e.getScrollerElement().scrollHeight;if(t!=this.hScale)return this.hScale=t,!0},t.prototype.update=function(e){this.annotations=e,this.redraw()},t.prototype.redraw=function(e){!1!==e&&this.computeScale();var t=this.cm,n=this.hScale,r=document.createDocumentFragment(),i=this.annotations,o=t.getOption(\"lineWrapping\"),a=o&&1.5*t.defaultTextHeight(),s=null,l=null;function u(e,n){if(s!=e.line){s=e.line,l=t.getLineHandle(e.line);var r=t.getLineHandleVisualStart(l);r!=l&&(s=t.getLineNumber(r),l=r)}return l.widgets&&l.widgets.length||o&&l.height>a?t.charCoords(e,\"local\")[n?\"top\":\"bottom\"]:t.heightAtLine(l,\"local\")+(n?0:l.height)}var c=t.lastLine();if(t.display.barWidth)for(var p,d=0;d<i.length;d++){var f=i[d];if(!(f.to.line>c)){for(var h=p||u(f.from,!0)*n,g=u(f.to,!1)*n;d<i.length-1&&!(i[d+1].to.line>c)&&!((p=u(i[d+1].from,!0)*n)>g+.9);)g=u((f=i[++d]).to,!1)*n;if(g!=h){var m=Math.max(g-h,3),v=r.appendChild(document.createElement(\"div\"));v.style.cssText=\"position: absolute; right: 0px; width: \"+Math.max(t.display.barWidth-1,2)+\"px; top: \"+(h+this.buttonHeight)+\"px; height: \"+m+\"px\",v.className=this.options.className,f.id&&v.setAttribute(\"annotation-id\",f.id)}}}this.div.textContent=\"\",this.div.appendChild(r)},t.prototype.clear=function(){this.cm.off(\"refresh\",this.resizeHandler),this.cm.off(\"markerAdded\",this.resizeHandler),this.cm.off(\"markerCleared\",this.resizeHandler),this.changeHandler&&this.cm.off(\"changes\",this.changeHandler),this.div.parentNode.removeChild(this.div)}}(n(1719))},9418:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>le});const{entries:r,setPrototypeOf:i,isFrozen:o,getPrototypeOf:a,getOwnPropertyDescriptor:s}=Object;let{freeze:l,seal:u,create:c}=Object,{apply:p,construct:d}=\"undefined\"!=typeof Reflect&&Reflect;l||(l=function(e){return e}),u||(u=function(e){return e}),p||(p=function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i<n;i++)r[i-2]=arguments[i];return e.apply(t,r)}),d||(d=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return new e(...n)});const f=I(Array.prototype.forEach),h=I(Array.prototype.lastIndexOf),g=I(Array.prototype.pop),m=I(Array.prototype.push),v=I(Array.prototype.splice),E=I(String.prototype.toLowerCase),y=I(String.prototype.toString),b=I(String.prototype.match),x=I(String.prototype.replace),T=I(String.prototype.indexOf),A=I(String.prototype.trim),S=I(Object.prototype.hasOwnProperty),L=I(RegExp.prototype.test),N=(C=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return d(C,t)});var C;function I(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return p(e,t,r)}}function _(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:E;i&&i(e,null);let r=t.length;for(;r--;){let i=t[r];if(\"string\"==typeof i){const e=n(i);e!==i&&(o(t)||(t[r]=e),i=e)}e[i]=!0}return e}function R(e){for(let t=0;t<e.length;t++){S(e,t)||(e[t]=null)}return e}function w(e){const t=c(null);for(const[n,i]of r(e)){S(e,n)&&(Array.isArray(i)?t[n]=R(i):i&&\"object\"==typeof i&&i.constructor===Object?t[n]=w(i):t[n]=i)}return t}function O(e,t){for(;null!==e;){const n=s(e,t);if(n){if(n.get)return I(n.get);if(\"function\"==typeof n.value)return I(n.value)}e=a(e)}return function(){return null}}const D=l([\"a\",\"abbr\",\"acronym\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"bdi\",\"bdo\",\"big\",\"blink\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"center\",\"cite\",\"code\",\"col\",\"colgroup\",\"content\",\"data\",\"datalist\",\"dd\",\"decorator\",\"del\",\"details\",\"dfn\",\"dialog\",\"dir\",\"div\",\"dl\",\"dt\",\"element\",\"em\",\"fieldset\",\"figcaption\",\"figure\",\"font\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"img\",\"input\",\"ins\",\"kbd\",\"label\",\"legend\",\"li\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meter\",\"nav\",\"nobr\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"search\",\"section\",\"select\",\"shadow\",\"slot\",\"small\",\"source\",\"spacer\",\"span\",\"strike\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"tt\",\"u\",\"ul\",\"var\",\"video\",\"wbr\"]),P=l([\"svg\",\"a\",\"altglyph\",\"altglyphdef\",\"altglyphitem\",\"animatecolor\",\"animatemotion\",\"animatetransform\",\"circle\",\"clippath\",\"defs\",\"desc\",\"ellipse\",\"enterkeyhint\",\"exportparts\",\"filter\",\"font\",\"g\",\"glyph\",\"glyphref\",\"hkern\",\"image\",\"inputmode\",\"line\",\"lineargradient\",\"marker\",\"mask\",\"metadata\",\"mpath\",\"part\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialgradient\",\"rect\",\"stop\",\"style\",\"switch\",\"symbol\",\"text\",\"textpath\",\"title\",\"tref\",\"tspan\",\"view\",\"vkern\"]),k=l([\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feDistantLight\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMergeNode\",\"feMorphology\",\"feOffset\",\"fePointLight\",\"feSpecularLighting\",\"feSpotLight\",\"feTile\",\"feTurbulence\"]),M=l([\"animate\",\"color-profile\",\"cursor\",\"discard\",\"font-face\",\"font-face-format\",\"font-face-name\",\"font-face-src\",\"font-face-uri\",\"foreignobject\",\"hatch\",\"hatchpath\",\"mesh\",\"meshgradient\",\"meshpatch\",\"meshrow\",\"missing-glyph\",\"script\",\"set\",\"solidcolor\",\"unknown\",\"use\"]),F=l([\"math\",\"menclose\",\"merror\",\"mfenced\",\"mfrac\",\"mglyph\",\"mi\",\"mlabeledtr\",\"mmultiscripts\",\"mn\",\"mo\",\"mover\",\"mpadded\",\"mphantom\",\"mroot\",\"mrow\",\"ms\",\"mspace\",\"msqrt\",\"mstyle\",\"msub\",\"msup\",\"msubsup\",\"mtable\",\"mtd\",\"mtext\",\"mtr\",\"munder\",\"munderover\",\"mprescripts\"]),B=l([\"maction\",\"maligngroup\",\"malignmark\",\"mlongdiv\",\"mscarries\",\"mscarry\",\"msgroup\",\"mstack\",\"msline\",\"msrow\",\"semantics\",\"annotation\",\"annotation-xml\",\"mprescripts\",\"none\"]),G=l([\"#text\"]),j=l([\"accept\",\"action\",\"align\",\"alt\",\"autocapitalize\",\"autocomplete\",\"autopictureinpicture\",\"autoplay\",\"background\",\"bgcolor\",\"border\",\"capture\",\"cellpadding\",\"cellspacing\",\"checked\",\"cite\",\"class\",\"clear\",\"color\",\"cols\",\"colspan\",\"controls\",\"controlslist\",\"coords\",\"crossorigin\",\"datetime\",\"decoding\",\"default\",\"dir\",\"disabled\",\"disablepictureinpicture\",\"disableremoteplayback\",\"download\",\"draggable\",\"enctype\",\"enterkeyhint\",\"exportparts\",\"face\",\"for\",\"headers\",\"height\",\"hidden\",\"high\",\"href\",\"hreflang\",\"id\",\"inert\",\"inputmode\",\"integrity\",\"ismap\",\"kind\",\"label\",\"lang\",\"list\",\"loading\",\"loop\",\"low\",\"max\",\"maxlength\",\"media\",\"method\",\"min\",\"minlength\",\"multiple\",\"muted\",\"name\",\"nonce\",\"noshade\",\"novalidate\",\"nowrap\",\"open\",\"optimum\",\"part\",\"pattern\",\"placeholder\",\"playsinline\",\"popover\",\"popovertarget\",\"popovertargetaction\",\"poster\",\"preload\",\"pubdate\",\"radiogroup\",\"readonly\",\"rel\",\"required\",\"rev\",\"reversed\",\"role\",\"rows\",\"rowspan\",\"spellcheck\",\"scope\",\"selected\",\"shape\",\"size\",\"sizes\",\"slot\",\"span\",\"srclang\",\"start\",\"src\",\"srcset\",\"step\",\"style\",\"summary\",\"tabindex\",\"title\",\"translate\",\"type\",\"usemap\",\"valign\",\"value\",\"width\",\"wrap\",\"xmlns\",\"slot\"]),U=l([\"accent-height\",\"accumulate\",\"additive\",\"alignment-baseline\",\"amplitude\",\"ascent\",\"attributename\",\"attributetype\",\"azimuth\",\"basefrequency\",\"baseline-shift\",\"begin\",\"bias\",\"by\",\"class\",\"clip\",\"clippathunits\",\"clip-path\",\"clip-rule\",\"color\",\"color-interpolation\",\"color-interpolation-filters\",\"color-profile\",\"color-rendering\",\"cx\",\"cy\",\"d\",\"dx\",\"dy\",\"diffuseconstant\",\"direction\",\"display\",\"divisor\",\"dur\",\"edgemode\",\"elevation\",\"end\",\"exponent\",\"fill\",\"fill-opacity\",\"fill-rule\",\"filter\",\"filterunits\",\"flood-color\",\"flood-opacity\",\"font-family\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-variant\",\"font-weight\",\"fx\",\"fy\",\"g1\",\"g2\",\"glyph-name\",\"glyphref\",\"gradientunits\",\"gradienttransform\",\"height\",\"href\",\"id\",\"image-rendering\",\"in\",\"in2\",\"intercept\",\"k\",\"k1\",\"k2\",\"k3\",\"k4\",\"kerning\",\"keypoints\",\"keysplines\",\"keytimes\",\"lang\",\"lengthadjust\",\"letter-spacing\",\"kernelmatrix\",\"kernelunitlength\",\"lighting-color\",\"local\",\"marker-end\",\"marker-mid\",\"marker-start\",\"markerheight\",\"markerunits\",\"markerwidth\",\"maskcontentunits\",\"maskunits\",\"max\",\"mask\",\"mask-type\",\"media\",\"method\",\"mode\",\"min\",\"name\",\"numoctaves\",\"offset\",\"operator\",\"opacity\",\"order\",\"orient\",\"orientation\",\"origin\",\"overflow\",\"paint-order\",\"path\",\"pathlength\",\"patterncontentunits\",\"patterntransform\",\"patternunits\",\"points\",\"preservealpha\",\"preserveaspectratio\",\"primitiveunits\",\"r\",\"rx\",\"ry\",\"radius\",\"refx\",\"refy\",\"repeatcount\",\"repeatdur\",\"restart\",\"result\",\"rotate\",\"scale\",\"seed\",\"shape-rendering\",\"slope\",\"specularconstant\",\"specularexponent\",\"spreadmethod\",\"startoffset\",\"stddeviation\",\"stitchtiles\",\"stop-color\",\"stop-opacity\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke\",\"stroke-width\",\"style\",\"surfacescale\",\"systemlanguage\",\"tabindex\",\"tablevalues\",\"targetx\",\"targety\",\"transform\",\"transform-origin\",\"text-anchor\",\"text-decoration\",\"text-rendering\",\"textlength\",\"type\",\"u1\",\"u2\",\"unicode\",\"values\",\"viewbox\",\"visibility\",\"version\",\"vert-adv-y\",\"vert-origin-x\",\"vert-origin-y\",\"width\",\"word-spacing\",\"wrap\",\"writing-mode\",\"xchannelselector\",\"ychannelselector\",\"x\",\"x1\",\"x2\",\"xmlns\",\"y\",\"y1\",\"y2\",\"z\",\"zoomandpan\"]),H=l([\"accent\",\"accentunder\",\"align\",\"bevelled\",\"close\",\"columnsalign\",\"columnlines\",\"columnspan\",\"denomalign\",\"depth\",\"dir\",\"display\",\"displaystyle\",\"encoding\",\"fence\",\"frame\",\"height\",\"href\",\"id\",\"largeop\",\"length\",\"linethickness\",\"lspace\",\"lquote\",\"mathbackground\",\"mathcolor\",\"mathsize\",\"mathvariant\",\"maxsize\",\"minsize\",\"movablelimits\",\"notation\",\"numalign\",\"open\",\"rowalign\",\"rowlines\",\"rowspacing\",\"rowspan\",\"rspace\",\"rquote\",\"scriptlevel\",\"scriptminsize\",\"scriptsizemultiplier\",\"selection\",\"separator\",\"separators\",\"stretchy\",\"subscriptshift\",\"supscriptshift\",\"symmetric\",\"voffset\",\"width\",\"xmlns\"]),q=l([\"xlink:href\",\"xml:id\",\"xlink:title\",\"xml:space\",\"xmlns:xlink\"]),V=u(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm),W=u(/<%[\\w\\W]*|[\\w\\W]*%>/gm),z=u(/\\$\\{[\\w\\W]*/gm),Q=u(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/),X=u(/^aria-[\\-\\w]+$/),$=u(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i),Y=u(/^(?:\\w+script|data):/i),K=u(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g),J=u(/^html$/i),Z=u(/^[a-z][.\\w]*(-[.\\w]+)+$/i);var ee=Object.freeze({__proto__:null,ARIA_ATTR:X,ATTR_WHITESPACE:K,CUSTOM_ELEMENT:Z,DATA_ATTR:Q,DOCTYPE_NAME:J,ERB_EXPR:W,IS_ALLOWED_URI:$,IS_SCRIPT_OR_DATA:Y,MUSTACHE_EXPR:V,TMPLIT_EXPR:z});const te=1,ne=3,re=7,ie=8,oe=9,ae=function(){return\"undefined\"==typeof window?null:window},se=function(e,t){if(\"object\"!=typeof e||\"function\"!=typeof e.createPolicy)return null;let n=null;t&&t.hasAttribute(\"data-tt-policy-suffix\")&&(n=t.getAttribute(\"data-tt-policy-suffix\"));const r=\"dompurify\"+(n?\"#\"+n:\"\");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn(\"TrustedTypes policy \"+r+\" could not be created.\"),null}};var le=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ae();const n=t=>e(t);if(n.version=\"3.3.0\",n.removed=[],!t||!t.document||t.document.nodeType!==oe||!t.Element)return n.isSupported=!1,n;let{document:i}=t;const o=i,a=o.currentScript,{DocumentFragment:s,HTMLTemplateElement:u,Node:p,Element:d,NodeFilter:C,NamedNodeMap:I=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:R,DOMParser:V,trustedTypes:W}=t,z=d.prototype,Q=O(z,\"cloneNode\"),X=O(z,\"remove\"),Y=O(z,\"nextSibling\"),K=O(z,\"childNodes\"),Z=O(z,\"parentNode\");if(\"function\"==typeof u){const e=i.createElement(\"template\");e.content&&e.content.ownerDocument&&(i=e.content.ownerDocument)}let le,ue=\"\";const{implementation:ce,createNodeIterator:pe,createDocumentFragment:de,getElementsByTagName:fe}=i,{importNode:he}=o;let ge={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};n.isSupported=\"function\"==typeof r&&\"function\"==typeof Z&&ce&&void 0!==ce.createHTMLDocument;const{MUSTACHE_EXPR:me,ERB_EXPR:ve,TMPLIT_EXPR:Ee,DATA_ATTR:ye,ARIA_ATTR:be,IS_SCRIPT_OR_DATA:xe,ATTR_WHITESPACE:Te,CUSTOM_ELEMENT:Ae}=ee;let{IS_ALLOWED_URI:Se}=ee,Le=null;const Ne=_({},[...D,...P,...k,...F,...G]);let Ce=null;const Ie=_({},[...j,...U,...H,...q]);let _e=Object.seal(c(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Re=null,we=null;const Oe=Object.seal(c(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let De=!0,Pe=!0,ke=!1,Me=!0,Fe=!1,Be=!0,Ge=!1,je=!1,Ue=!1,He=!1,qe=!1,Ve=!1,We=!0,ze=!1;const Qe=\"user-content-\";let Xe=!0,$e=!1,Ye={},Ke=null;const Je=_({},[\"annotation-xml\",\"audio\",\"colgroup\",\"desc\",\"foreignobject\",\"head\",\"iframe\",\"math\",\"mi\",\"mn\",\"mo\",\"ms\",\"mtext\",\"noembed\",\"noframes\",\"noscript\",\"plaintext\",\"script\",\"style\",\"svg\",\"template\",\"thead\",\"title\",\"video\",\"xmp\"]);let Ze=null;const et=_({},[\"audio\",\"video\",\"img\",\"source\",\"image\",\"track\"]);let tt=null;const nt=_({},[\"alt\",\"class\",\"for\",\"id\",\"label\",\"name\",\"pattern\",\"placeholder\",\"role\",\"summary\",\"title\",\"value\",\"style\",\"xmlns\"]),rt=\"http://www.w3.org/1998/Math/MathML\",it=\"http://www.w3.org/2000/svg\",ot=\"http://www.w3.org/1999/xhtml\";let at=ot,st=!1,lt=null;const ut=_({},[rt,it,ot],y);let ct=_({},[\"mi\",\"mo\",\"mn\",\"ms\",\"mtext\"]),pt=_({},[\"annotation-xml\"]);const dt=_({},[\"title\",\"style\",\"font\",\"a\",\"script\"]);let ft=null;const ht=[\"application/xhtml+xml\",\"text/html\"],gt=\"text/html\";let mt=null,vt=null;const Et=i.createElement(\"form\"),yt=function(e){return e instanceof RegExp||e instanceof Function},bt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!vt||vt!==e){if(e&&\"object\"==typeof e||(e={}),e=w(e),ft=-1===ht.indexOf(e.PARSER_MEDIA_TYPE)?gt:e.PARSER_MEDIA_TYPE,mt=\"application/xhtml+xml\"===ft?y:E,Le=S(e,\"ALLOWED_TAGS\")?_({},e.ALLOWED_TAGS,mt):Ne,Ce=S(e,\"ALLOWED_ATTR\")?_({},e.ALLOWED_ATTR,mt):Ie,lt=S(e,\"ALLOWED_NAMESPACES\")?_({},e.ALLOWED_NAMESPACES,y):ut,tt=S(e,\"ADD_URI_SAFE_ATTR\")?_(w(nt),e.ADD_URI_SAFE_ATTR,mt):nt,Ze=S(e,\"ADD_DATA_URI_TAGS\")?_(w(et),e.ADD_DATA_URI_TAGS,mt):et,Ke=S(e,\"FORBID_CONTENTS\")?_({},e.FORBID_CONTENTS,mt):Je,Re=S(e,\"FORBID_TAGS\")?_({},e.FORBID_TAGS,mt):w({}),we=S(e,\"FORBID_ATTR\")?_({},e.FORBID_ATTR,mt):w({}),Ye=!!S(e,\"USE_PROFILES\")&&e.USE_PROFILES,De=!1!==e.ALLOW_ARIA_ATTR,Pe=!1!==e.ALLOW_DATA_ATTR,ke=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Me=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Fe=e.SAFE_FOR_TEMPLATES||!1,Be=!1!==e.SAFE_FOR_XML,Ge=e.WHOLE_DOCUMENT||!1,He=e.RETURN_DOM||!1,qe=e.RETURN_DOM_FRAGMENT||!1,Ve=e.RETURN_TRUSTED_TYPE||!1,Ue=e.FORCE_BODY||!1,We=!1!==e.SANITIZE_DOM,ze=e.SANITIZE_NAMED_PROPS||!1,Xe=!1!==e.KEEP_CONTENT,$e=e.IN_PLACE||!1,Se=e.ALLOWED_URI_REGEXP||$,at=e.NAMESPACE||ot,ct=e.MATHML_TEXT_INTEGRATION_POINTS||ct,pt=e.HTML_INTEGRATION_POINTS||pt,_e=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&yt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(_e.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&yt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(_e.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&\"boolean\"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(_e.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Fe&&(Pe=!1),qe&&(He=!0),Ye&&(Le=_({},G),Ce=[],!0===Ye.html&&(_(Le,D),_(Ce,j)),!0===Ye.svg&&(_(Le,P),_(Ce,U),_(Ce,q)),!0===Ye.svgFilters&&(_(Le,k),_(Ce,U),_(Ce,q)),!0===Ye.mathMl&&(_(Le,F),_(Ce,H),_(Ce,q))),e.ADD_TAGS&&(\"function\"==typeof e.ADD_TAGS?Oe.tagCheck=e.ADD_TAGS:(Le===Ne&&(Le=w(Le)),_(Le,e.ADD_TAGS,mt))),e.ADD_ATTR&&(\"function\"==typeof e.ADD_ATTR?Oe.attributeCheck=e.ADD_ATTR:(Ce===Ie&&(Ce=w(Ce)),_(Ce,e.ADD_ATTR,mt))),e.ADD_URI_SAFE_ATTR&&_(tt,e.ADD_URI_SAFE_ATTR,mt),e.FORBID_CONTENTS&&(Ke===Je&&(Ke=w(Ke)),_(Ke,e.FORBID_CONTENTS,mt)),Xe&&(Le[\"#text\"]=!0),Ge&&_(Le,[\"html\",\"head\",\"body\"]),Le.table&&(_(Le,[\"tbody\"]),delete Re.tbody),e.TRUSTED_TYPES_POLICY){if(\"function\"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw N('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');if(\"function\"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw N('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');le=e.TRUSTED_TYPES_POLICY,ue=le.createHTML(\"\")}else void 0===le&&(le=se(W,a)),null!==le&&\"string\"==typeof ue&&(ue=le.createHTML(\"\"));l&&l(e),vt=e}},xt=_({},[...P,...k,...M]),Tt=_({},[...F,...B]),At=function(e){let t=Z(e);t&&t.tagName||(t={namespaceURI:at,tagName:\"template\"});const n=E(e.tagName),r=E(t.tagName);return!!lt[e.namespaceURI]&&(e.namespaceURI===it?t.namespaceURI===ot?\"svg\"===n:t.namespaceURI===rt?\"svg\"===n&&(\"annotation-xml\"===r||ct[r]):Boolean(xt[n]):e.namespaceURI===rt?t.namespaceURI===ot?\"math\"===n:t.namespaceURI===it?\"math\"===n&&pt[r]:Boolean(Tt[n]):e.namespaceURI===ot?!(t.namespaceURI===it&&!pt[r])&&(!(t.namespaceURI===rt&&!ct[r])&&(!Tt[n]&&(dt[n]||!xt[n]))):!(\"application/xhtml+xml\"!==ft||!lt[e.namespaceURI]))},St=function(e){m(n.removed,{element:e});try{Z(e).removeChild(e)}catch(t){X(e)}},Lt=function(e,t){try{m(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){m(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),\"is\"===e)if(He||qe)try{St(t)}catch(e){}else try{t.setAttribute(e,\"\")}catch(e){}},Nt=function(e){let t=null,n=null;if(Ue)e=\"<remove></remove>\"+e;else{const t=b(e,/^[\\r\\n\\t ]+/);n=t&&t[0]}\"application/xhtml+xml\"===ft&&at===ot&&(e='<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>'+e+\"</body></html>\");const r=le?le.createHTML(e):e;if(at===ot)try{t=(new V).parseFromString(r,ft)}catch(e){}if(!t||!t.documentElement){t=ce.createDocument(at,\"template\",null);try{t.documentElement.innerHTML=st?ue:r}catch(e){}}const o=t.body||t.documentElement;return e&&n&&o.insertBefore(i.createTextNode(n),o.childNodes[0]||null),at===ot?fe.call(t,Ge?\"html\":\"body\")[0]:Ge?t.documentElement:o},Ct=function(e){return pe.call(e.ownerDocument||e,e,C.SHOW_ELEMENT|C.SHOW_COMMENT|C.SHOW_TEXT|C.SHOW_PROCESSING_INSTRUCTION|C.SHOW_CDATA_SECTION,null)},It=function(e){return e instanceof R&&(\"string\"!=typeof e.nodeName||\"string\"!=typeof e.textContent||\"function\"!=typeof e.removeChild||!(e.attributes instanceof I)||\"function\"!=typeof e.removeAttribute||\"function\"!=typeof e.setAttribute||\"string\"!=typeof e.namespaceURI||\"function\"!=typeof e.insertBefore||\"function\"!=typeof e.hasChildNodes)},_t=function(e){return\"function\"==typeof p&&e instanceof p};function Rt(e,t,r){f(e,e=>{e.call(n,t,r,vt)})}const wt=function(e){let t=null;if(Rt(ge.beforeSanitizeElements,e,null),It(e))return St(e),!0;const r=mt(e.nodeName);if(Rt(ge.uponSanitizeElement,e,{tagName:r,allowedTags:Le}),Be&&e.hasChildNodes()&&!_t(e.firstElementChild)&&L(/<[/\\w!]/g,e.innerHTML)&&L(/<[/\\w!]/g,e.textContent))return St(e),!0;if(e.nodeType===re)return St(e),!0;if(Be&&e.nodeType===ie&&L(/<[/\\w]/g,e.data))return St(e),!0;if(!(Oe.tagCheck instanceof Function&&Oe.tagCheck(r))&&(!Le[r]||Re[r])){if(!Re[r]&&Dt(r)){if(_e.tagNameCheck instanceof RegExp&&L(_e.tagNameCheck,r))return!1;if(_e.tagNameCheck instanceof Function&&_e.tagNameCheck(r))return!1}if(Xe&&!Ke[r]){const t=Z(e)||e.parentNode,n=K(e)||e.childNodes;if(n&&t){for(let r=n.length-1;r>=0;--r){const i=Q(n[r],!0);i.__removalCount=(e.__removalCount||0)+1,t.insertBefore(i,Y(e))}}}return St(e),!0}return e instanceof d&&!At(e)?(St(e),!0):\"noscript\"!==r&&\"noembed\"!==r&&\"noframes\"!==r||!L(/<\\/no(script|embed|frames)/i,e.innerHTML)?(Fe&&e.nodeType===ne&&(t=e.textContent,f([me,ve,Ee],e=>{t=x(t,e,\" \")}),e.textContent!==t&&(m(n.removed,{element:e.cloneNode()}),e.textContent=t)),Rt(ge.afterSanitizeElements,e,null),!1):(St(e),!0)},Ot=function(e,t,n){if(We&&(\"id\"===t||\"name\"===t)&&(n in i||n in Et))return!1;if(Pe&&!we[t]&&L(ye,t));else if(De&&L(be,t));else if(Oe.attributeCheck instanceof Function&&Oe.attributeCheck(t,e));else if(!Ce[t]||we[t]){if(!(Dt(e)&&(_e.tagNameCheck instanceof RegExp&&L(_e.tagNameCheck,e)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(e))&&(_e.attributeNameCheck instanceof RegExp&&L(_e.attributeNameCheck,t)||_e.attributeNameCheck instanceof Function&&_e.attributeNameCheck(t,e))||\"is\"===t&&_e.allowCustomizedBuiltInElements&&(_e.tagNameCheck instanceof RegExp&&L(_e.tagNameCheck,n)||_e.tagNameCheck instanceof Function&&_e.tagNameCheck(n))))return!1}else if(tt[t]);else if(L(Se,x(n,Te,\"\")));else if(\"src\"!==t&&\"xlink:href\"!==t&&\"href\"!==t||\"script\"===e||0!==T(n,\"data:\")||!Ze[e]){if(ke&&!L(xe,x(n,Te,\"\")));else if(n)return!1}else;return!0},Dt=function(e){return\"annotation-xml\"!==e&&b(e,Ae)},Pt=function(e){Rt(ge.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||It(e))return;const r={attrName:\"\",attrValue:\"\",keepAttr:!0,allowedAttributes:Ce,forceKeepAttr:void 0};let i=t.length;for(;i--;){const o=t[i],{name:a,namespaceURI:s,value:l}=o,u=mt(a),c=l;let p=\"value\"===a?c:A(c);if(r.attrName=u,r.attrValue=p,r.keepAttr=!0,r.forceKeepAttr=void 0,Rt(ge.uponSanitizeAttribute,e,r),p=r.attrValue,!ze||\"id\"!==u&&\"name\"!==u||(Lt(a,e),p=Qe+p),Be&&L(/((--!?|])>)|<\\/(style|title|textarea)/i,p)){Lt(a,e);continue}if(\"attributename\"===u&&b(p,\"href\")){Lt(a,e);continue}if(r.forceKeepAttr)continue;if(!r.keepAttr){Lt(a,e);continue}if(!Me&&L(/\\/>/i,p)){Lt(a,e);continue}Fe&&f([me,ve,Ee],e=>{p=x(p,e,\" \")});const d=mt(e.nodeName);if(Ot(d,u,p)){if(le&&\"object\"==typeof W&&\"function\"==typeof W.getAttributeType)if(s);else switch(W.getAttributeType(d,u)){case\"TrustedHTML\":p=le.createHTML(p);break;case\"TrustedScriptURL\":p=le.createScriptURL(p)}if(p!==c)try{s?e.setAttributeNS(s,a,p):e.setAttribute(a,p),It(e)?St(e):g(n.removed)}catch(t){Lt(a,e)}}else Lt(a,e)}Rt(ge.afterSanitizeAttributes,e,null)},kt=function e(t){let n=null;const r=Ct(t);for(Rt(ge.beforeSanitizeShadowDOM,t,null);n=r.nextNode();)Rt(ge.uponSanitizeShadowNode,n,null),wt(n),Pt(n),n.content instanceof s&&e(n.content);Rt(ge.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,i=null,a=null,l=null;if(st=!e,st&&(e=\"\\x3c!--\\x3e\"),\"string\"!=typeof e&&!_t(e)){if(\"function\"!=typeof e.toString)throw N(\"toString is not a function\");if(\"string\"!=typeof(e=e.toString()))throw N(\"dirty is not a string, aborting\")}if(!n.isSupported)return e;if(je||bt(t),n.removed=[],\"string\"==typeof e&&($e=!1),$e){if(e.nodeName){const t=mt(e.nodeName);if(!Le[t]||Re[t])throw N(\"root node is forbidden and cannot be sanitized in-place\")}}else if(e instanceof p)r=Nt(\"\\x3c!----\\x3e\"),i=r.ownerDocument.importNode(e,!0),i.nodeType===te&&\"BODY\"===i.nodeName||\"HTML\"===i.nodeName?r=i:r.appendChild(i);else{if(!He&&!Fe&&!Ge&&-1===e.indexOf(\"<\"))return le&&Ve?le.createHTML(e):e;if(r=Nt(e),!r)return He?null:Ve?ue:\"\"}r&&Ue&&St(r.firstChild);const u=Ct($e?e:r);for(;a=u.nextNode();)wt(a),Pt(a),a.content instanceof s&&kt(a.content);if($e)return e;if(He){if(qe)for(l=de.call(r.ownerDocument);r.firstChild;)l.appendChild(r.firstChild);else l=r;return(Ce.shadowroot||Ce.shadowrootmode)&&(l=he.call(o,l,!0)),l}let c=Ge?r.outerHTML:r.innerHTML;return Ge&&Le[\"!doctype\"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&L(J,r.ownerDocument.doctype.name)&&(c=\"<!DOCTYPE \"+r.ownerDocument.doctype.name+\">\\n\"+c),Fe&&f([me,ve,Ee],e=>{c=x(c,e,\" \")}),le&&Ve?le.createHTML(c):c},n.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};bt(e),je=!0},n.clearConfig=function(){vt=null,je=!1},n.isValidAttribute=function(e,t,n){vt||bt({});const r=mt(e),i=mt(t);return Ot(r,i,n)},n.addHook=function(e,t){\"function\"==typeof t&&m(ge[e],t)},n.removeHook=function(e,t){if(void 0!==t){const n=h(ge[e],t);return-1===n?void 0:v(ge[e],n,1)[0]}return g(ge[e])},n.removeHooks=function(e){ge[e]=[]},n.removeAllHooks=function(){ge={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},n}()},9430:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>l});var r=n(946),i=n(7167),o=n(1100);const a=i.A?function(e,t){return(0,i.A)(e,\"toString\",{configurable:!0,enumerable:!1,value:(0,r.A)(t),writable:!0})}:o.A;var s=Date.now;const l=function(e){var t=0,n=0;return function(){var r=s(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(a)},9557:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>l});var r=n(6809),i=Object.create;const o=function(){function e(){}return function(t){if(!(0,r.A)(t))return{};if(i)return i(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();var a=n(7827),s=n(4603);const l=function(e){return\"function\"!=typeof e.constructor||(0,s.A)(e)?{}:o((0,a.A)(e))}},9602:function(e,t){var n;!function(t,n){\"use strict\";\"object\"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return n(e)}:n(t)}(\"undefined\"!=typeof window?window:this,(function(r,i){\"use strict\";var o=[],a=Object.getPrototypeOf,s=o.slice,l=o.flat?function(e){return o.flat.call(e)}:function(e){return o.concat.apply([],e)},u=o.push,c=o.indexOf,p={},d=p.toString,f=p.hasOwnProperty,h=f.toString,g=h.call(Object),m={},v=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType&&\"function\"!=typeof e.item},E=function(e){return null!=e&&e===e.window},y=r.document,b={type:!0,src:!0,nonce:!0,noModule:!0};function x(e,t,n){var r,i,o=(n=n||y).createElement(\"script\");if(o.text=e,t)for(r in b)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function T(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?p[d.call(e)]||\"object\":typeof e}var A=/HTML$/i,S=function(e,t){return new S.fn.init(e,t)};function L(e){var t=!!e&&\"length\"in e&&e.length,n=T(e);return!v(e)&&!E(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&t>0&&t-1 in e)}function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}S.fn=S.prototype={jquery:\"3.7.1\",constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(e){return this.pushStack(S.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(S.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:o.sort,splice:o.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,l=arguments.length,u=!1;for(\"boolean\"==typeof a&&(u=a,a=arguments[s]||{},s++),\"object\"==typeof a||v(a)||(a={}),s===l&&(a=this,s--);s<l;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],\"__proto__\"!==t&&a!==r&&(u&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(u,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:\"jQuery\"+(\"3.7.1\"+Math.random()).replace(/\\D/g,\"\"),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||\"[object Object]\"!==d.call(e))&&(!(t=a(e))||\"function\"==typeof(n=f.call(t,\"constructor\")&&t.constructor)&&h.call(n)===g)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){x(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(L(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n=\"\",r=0,i=e.nodeType;if(!i)for(;t=e[r++];)n+=S.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(L(Object(e))?S.merge(n,\"string\"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:c.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!A.test(t||n&&n.nodeName||\"HTML\")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(L(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return l(a)},guid:1,support:m}),\"function\"==typeof Symbol&&(S.fn[Symbol.iterator]=o[Symbol.iterator]),S.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"),(function(e,t){p[\"[object \"+t+\"]\"]=t.toLowerCase()}));var C=o.pop,I=o.sort,_=o.splice,R=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",w=new RegExp(\"^\"+R+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+R+\"+$\",\"g\");S.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var O=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;function D(e,t){return t?\"\\0\"===e?\"�\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e}S.escapeSelector=function(e){return(e+\"\").replace(O,D)};var P=y,k=u;!function(){var e,t,n,i,a,l,u,p,d,h,g=k,v=S.expando,E=0,y=0,b=ee(),x=ee(),T=ee(),A=ee(),L=function(e,t){return e===t&&(a=!0),0},O=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",D=\"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\"+R+\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",M=\"\\\\[\"+R+\"*(\"+D+\")(?:\"+R+\"*([*^$|!~]?=)\"+R+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+D+\"))|)\"+R+\"*\\\\]\",F=\":(\"+D+\")(?:\\\\((('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+M+\")*)|.*)\\\\)|)\",B=new RegExp(R+\"+\",\"g\"),G=new RegExp(\"^\"+R+\"*,\"+R+\"*\"),j=new RegExp(\"^\"+R+\"*([>+~]|\"+R+\")\"+R+\"*\"),U=new RegExp(R+\"|>\"),H=new RegExp(F),q=new RegExp(\"^\"+D+\"$\"),V={ID:new RegExp(\"^#(\"+D+\")\"),CLASS:new RegExp(\"^\\\\.(\"+D+\")\"),TAG:new RegExp(\"^(\"+D+\"|[*])\"),ATTR:new RegExp(\"^\"+M),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+R+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+R+\"*(?:([+-]|)\"+R+\"*(\\\\d+)|))\"+R+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+O+\")$\",\"i\"),needsContext:new RegExp(\"^\"+R+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+R+\"*((?:-\\\\d)?\\\\d*)\"+R+\"*\\\\)|)(?=[^-]|$)\",\"i\")},W=/^(?:input|select|textarea|button)$/i,z=/^h\\d$/i,Q=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,X=/[+~]/,$=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+R+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),Y=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},K=function(){le()},J=de((function(e){return!0===e.disabled&&N(e,\"fieldset\")}),{dir:\"parentNode\",next:\"legend\"});try{g.apply(o=s.call(P.childNodes),P.childNodes),o[P.childNodes.length].nodeType}catch(e){g={apply:function(e,t){k.apply(e,s.call(t))},call:function(e){k.apply(e,s.call(arguments,1))}}}function Z(e,t,n,r){var i,o,a,s,u,c,f,h=t&&t.ownerDocument,E=t?t.nodeType:9;if(n=n||[],\"string\"!=typeof e||!e||1!==E&&9!==E&&11!==E)return n;if(!r&&(le(t),t=t||l,p)){if(11!==E&&(u=Q.exec(e)))if(i=u[1]){if(9===E){if(!(a=t.getElementById(i)))return n;if(a.id===i)return g.call(n,a),n}else if(h&&(a=h.getElementById(i))&&Z.contains(t,a)&&a.id===i)return g.call(n,a),n}else{if(u[2])return g.apply(n,t.getElementsByTagName(e)),n;if((i=u[3])&&t.getElementsByClassName)return g.apply(n,t.getElementsByClassName(i)),n}if(!(A[e+\" \"]||d&&d.test(e))){if(f=e,h=t,1===E&&(U.test(e)||j.test(e))){for((h=X.test(e)&&se(t.parentNode)||t)==t&&m.scope||((s=t.getAttribute(\"id\"))?s=S.escapeSelector(s):t.setAttribute(\"id\",s=v)),o=(c=ce(e)).length;o--;)c[o]=(s?\"#\"+s:\":scope\")+\" \"+pe(c[o]);f=c.join(\",\")}try{return g.apply(n,h.querySelectorAll(f)),n}catch(t){A(e,!0)}finally{s===v&&t.removeAttribute(\"id\")}}}return Ee(e.replace(w,\"$1\"),t,n,r)}function ee(){var e=[];return function n(r,i){return e.push(r+\" \")>t.cacheLength&&delete n[e.shift()],n[r+\" \"]=i}}function te(e){return e[v]=!0,e}function ne(e){var t=l.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function re(e){return function(t){return N(t,\"input\")&&t.type===e}}function ie(e){return function(t){return(N(t,\"input\")||N(t,\"button\"))&&t.type===e}}function oe(e){return function(t){return\"form\"in t?t.parentNode&&!1===t.disabled?\"label\"in t?\"label\"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&J(t)===e:t.disabled===e:\"label\"in t&&t.disabled===e}}function ae(e){return te((function(t){return t=+t,te((function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))}))}))}function se(e){return e&&void 0!==e.getElementsByTagName&&e}function le(e){var n,r=e?e.ownerDocument||e:P;return r!=l&&9===r.nodeType&&r.documentElement?(u=(l=r).documentElement,p=!S.isXMLDoc(l),h=u.matches||u.webkitMatchesSelector||u.msMatchesSelector,u.msMatchesSelector&&P!=l&&(n=l.defaultView)&&n.top!==n&&n.addEventListener(\"unload\",K),m.getById=ne((function(e){return u.appendChild(e).id=S.expando,!l.getElementsByName||!l.getElementsByName(S.expando).length})),m.disconnectedMatch=ne((function(e){return h.call(e,\"*\")})),m.scope=ne((function(){return l.querySelectorAll(\":scope\")})),m.cssHas=ne((function(){try{return l.querySelector(\":has(*,:jqfake)\"),!1}catch(e){return!0}})),m.getById?(t.filter.ID=function(e){var t=e.replace($,Y);return function(e){return e.getAttribute(\"id\")===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&p){var n=t.getElementById(e);return n?[n]:[]}}):(t.filter.ID=function(e){var t=e.replace($,Y);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode(\"id\");return n&&n.value===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&p){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),t.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},t.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&p)return t.getElementsByClassName(e)},d=[],ne((function(e){var t;u.appendChild(e).innerHTML=\"<a id='\"+v+\"' href='' disabled='disabled'></a><select id='\"+v+\"-\\r\\\\' disabled='disabled'><option selected=''></option></select>\",e.querySelectorAll(\"[selected]\").length||d.push(\"\\\\[\"+R+\"*(?:value|\"+O+\")\"),e.querySelectorAll(\"[id~=\"+v+\"-]\").length||d.push(\"~=\"),e.querySelectorAll(\"a#\"+v+\"+*\").length||d.push(\".#.+[+~]\"),e.querySelectorAll(\":checked\").length||d.push(\":checked\"),(t=l.createElement(\"input\")).setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),u.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&d.push(\":enabled\",\":disabled\"),(t=l.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||d.push(\"\\\\[\"+R+\"*name\"+R+\"*=\"+R+\"*(?:''|\\\"\\\")\")})),m.cssHas||d.push(\":has\"),d=d.length&&new RegExp(d.join(\"|\")),L=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!m.sortDetached&&t.compareDocumentPosition(e)===n?e===l||e.ownerDocument==P&&Z.contains(P,e)?-1:t===l||t.ownerDocument==P&&Z.contains(P,t)?1:i?c.call(i,e)-c.call(i,t):0:4&n?-1:1)},l):l}for(e in Z.matches=function(e,t){return Z(e,null,null,t)},Z.matchesSelector=function(e,t){if(le(e),p&&!A[t+\" \"]&&(!d||!d.test(t)))try{var n=h.call(e,t);if(n||m.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return Z(t,l,null,[e]).length>0},Z.contains=function(e,t){return(e.ownerDocument||e)!=l&&le(e),S.contains(e,t)},Z.attr=function(e,n){(e.ownerDocument||e)!=l&&le(e);var r=t.attrHandle[n.toLowerCase()],i=r&&f.call(t.attrHandle,n.toLowerCase())?r(e,n,!p):void 0;return void 0!==i?i:e.getAttribute(n)},Z.error=function(e){throw new Error(\"Syntax error, unrecognized expression: \"+e)},S.uniqueSort=function(e){var t,n=[],r=0,o=0;if(a=!m.sortStable,i=!m.sortStable&&s.call(e,0),I.call(e,L),a){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)_.call(e,n[r],1)}return i=null,e},S.fn.uniqueSort=function(){return this.pushStack(S.uniqueSort(s.apply(this)))},(t=S.expr={cacheLength:50,createPseudo:te,match:V,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,Y),e[3]=(e[3]||e[4]||e[5]||\"\").replace($,Y),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||Z.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&Z.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&H.test(n)&&(t=ce(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace($,Y).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return N(e,t)}},CLASS:function(e){var t=b[e+\" \"];return t||(t=new RegExp(\"(^|\"+R+\")\"+e+\"(\"+R+\"|$)\"))&&b(e,(function(e){return t.test(\"string\"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute(\"class\")||\"\")}))},ATTR:function(e,t,n){return function(r){var i=Z.attr(r,e);return null==i?\"!=\"===t:!t||(i+=\"\",\"=\"===t?i===n:\"!=\"===t?i!==n:\"^=\"===t?n&&0===i.indexOf(n):\"*=\"===t?n&&i.indexOf(n)>-1:\"$=\"===t?n&&i.slice(-n.length)===n:\"~=\"===t?(\" \"+i.replace(B,\" \")+\" \").indexOf(n)>-1:\"|=\"===t&&(i===n||i.slice(0,n.length+1)===n+\"-\"))}},CHILD:function(e,t,n,r,i){var o=\"nth\"!==e.slice(0,3),a=\"last\"!==e.slice(-4),s=\"of-type\"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,d,f,h=o!==a?\"nextSibling\":\"previousSibling\",g=t.parentNode,m=s&&t.nodeName.toLowerCase(),y=!l&&!s,b=!1;if(g){if(o){for(;h;){for(p=t;p=p[h];)if(s?N(p,m):1===p.nodeType)return!1;f=h=\"only\"===e&&!f&&\"nextSibling\"}return!0}if(f=[a?g.firstChild:g.lastChild],a&&y){for(b=(d=(u=(c=g[v]||(g[v]={}))[e]||[])[0]===E&&u[1])&&u[2],p=d&&g.childNodes[d];p=++d&&p&&p[h]||(b=d=0)||f.pop();)if(1===p.nodeType&&++b&&p===t){c[e]=[E,d,b];break}}else if(y&&(b=d=(u=(c=t[v]||(t[v]={}))[e]||[])[0]===E&&u[1]),!1===b)for(;(p=++d&&p&&p[h]||(b=d=0)||f.pop())&&(!(s?N(p,m):1===p.nodeType)||!++b||(y&&((c=p[v]||(p[v]={}))[e]=[E,b]),p!==t)););return(b-=i)===r||b%r==0&&b/r>=0}}},PSEUDO:function(e,n){var r,i=t.pseudos[e]||t.setFilters[e.toLowerCase()]||Z.error(\"unsupported pseudo: \"+e);return i[v]?i(n):i.length>1?(r=[e,e,\"\",n],t.setFilters.hasOwnProperty(e.toLowerCase())?te((function(e,t){for(var r,o=i(e,n),a=o.length;a--;)e[r=c.call(e,o[a])]=!(t[r]=o[a])})):function(e){return i(e,0,r)}):i}},pseudos:{not:te((function(e){var t=[],n=[],r=ve(e.replace(w,\"$1\"));return r[v]?te((function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:te((function(e){return function(t){return Z(e,t).length>0}})),contains:te((function(e){return e=e.replace($,Y),function(t){return(t.textContent||S.text(t)).indexOf(e)>-1}})),lang:te((function(e){return q.test(e||\"\")||Z.error(\"unsupported lang: \"+e),e=e.replace($,Y).toLowerCase(),function(t){var n;do{if(n=p?t.lang:t.getAttribute(\"xml:lang\")||t.getAttribute(\"lang\"))return(n=n.toLowerCase())===e||0===n.indexOf(e+\"-\")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(e){var t=r.location&&r.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===u},focus:function(e){return e===function(){try{return l.activeElement}catch(e){}}()&&l.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:oe(!1),disabled:oe(!0),checked:function(e){return N(e,\"input\")&&!!e.checked||N(e,\"option\")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!t.pseudos.empty(e)},header:function(e){return z.test(e.nodeName)},input:function(e){return W.test(e.nodeName)},button:function(e){return N(e,\"input\")&&\"button\"===e.type||N(e,\"button\")},text:function(e){var t;return N(e,\"input\")&&\"text\"===e.type&&(null==(t=e.getAttribute(\"type\"))||\"text\"===t.toLowerCase())},first:ae((function(){return[0]})),last:ae((function(e,t){return[t-1]})),eq:ae((function(e,t,n){return[n<0?n+t:n]})),even:ae((function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e})),odd:ae((function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e})),lt:ae((function(e,t,n){var r;for(r=n<0?n+t:n>t?t:n;--r>=0;)e.push(r);return e})),gt:ae((function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e}))}}).pseudos.nth=t.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})t.pseudos[e]=re(e);for(e in{submit:!0,reset:!0})t.pseudos[e]=ie(e);function ue(){}function ce(e,n){var r,i,o,a,s,l,u,c=x[e+\" \"];if(c)return n?0:c.slice(0);for(s=e,l=[],u=t.preFilter;s;){for(a in r&&!(i=G.exec(s))||(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=j.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(w,\" \")}),s=s.slice(r.length)),t.filter)!(i=V[a].exec(s))||u[a]&&!(i=u[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?Z.error(e):x(e,l).slice(0)}function pe(e){for(var t=0,n=e.length,r=\"\";t<n;t++)r+=e[t].value;return r}function de(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&\"parentNode\"===o,s=y++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,l){var u,c,p=[E,s];if(l){for(;t=t[r];)if((1===t.nodeType||a)&&e(t,n,l))return!0}else for(;t=t[r];)if(1===t.nodeType||a)if(c=t[v]||(t[v]={}),i&&N(t,i))t=t[r]||t;else{if((u=c[o])&&u[0]===E&&u[1]===s)return p[2]=u[2];if(c[o]=p,p[2]=e(t,n,l))return!0}return!1}}function fe(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function he(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,u=null!=t;s<l;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),u&&t.push(s)));return a}function ge(e,t,n,r,i,o){return r&&!r[v]&&(r=ge(r)),i&&!i[v]&&(i=ge(i,o)),te((function(o,a,s,l){var u,p,d,f,h=[],m=[],v=a.length,E=o||function(e,t,n){for(var r=0,i=t.length;r<i;r++)Z(e,t[r],n);return n}(t||\"*\",s.nodeType?[s]:s,[]),y=!e||!o&&t?E:he(E,h,e,s,l);if(n?n(y,f=i||(o?e:v||r)?[]:a,s,l):f=y,r)for(u=he(f,m),r(u,[],s,l),p=u.length;p--;)(d=u[p])&&(f[m[p]]=!(y[m[p]]=d));if(o){if(i||e){if(i){for(u=[],p=f.length;p--;)(d=f[p])&&u.push(y[p]=d);i(null,f=[],u,l)}for(p=f.length;p--;)(d=f[p])&&(u=i?c.call(o,d):h[p])>-1&&(o[u]=!(a[u]=d))}}else f=he(f===a?f.splice(v,f.length):f),i?i(null,a,f,l):g.apply(a,f)}))}function me(e){for(var r,i,o,a=e.length,s=t.relative[e[0].type],l=s||t.relative[\" \"],u=s?1:0,p=de((function(e){return e===r}),l,!0),d=de((function(e){return c.call(r,e)>-1}),l,!0),f=[function(e,t,i){var o=!s&&(i||t!=n)||((r=t).nodeType?p(e,t,i):d(e,t,i));return r=null,o}];u<a;u++)if(i=t.relative[e[u].type])f=[de(fe(f),i)];else{if((i=t.filter[e[u].type].apply(null,e[u].matches))[v]){for(o=++u;o<a&&!t.relative[e[o].type];o++);return ge(u>1&&fe(f),u>1&&pe(e.slice(0,u-1).concat({value:\" \"===e[u-2].type?\"*\":\"\"})).replace(w,\"$1\"),i,u<o&&me(e.slice(u,o)),o<a&&me(e=e.slice(o)),o<a&&pe(e))}f.push(i)}return fe(f)}function ve(e,r){var i,o=[],a=[],s=T[e+\" \"];if(!s){for(r||(r=ce(e)),i=r.length;i--;)(s=me(r[i]))[v]?o.push(s):a.push(s);(s=T(e,function(e,r){var i=r.length>0,o=e.length>0,a=function(a,s,u,c,d){var f,h,m,v=0,y=\"0\",b=a&&[],x=[],T=n,A=a||o&&t.find.TAG(\"*\",d),L=E+=null==T?1:Math.random()||.1,N=A.length;for(d&&(n=s==l||s||d);y!==N&&null!=(f=A[y]);y++){if(o&&f){for(h=0,s||f.ownerDocument==l||(le(f),u=!p);m=e[h++];)if(m(f,s||l,u)){g.call(c,f);break}d&&(E=L)}i&&((f=!m&&f)&&v--,a&&b.push(f))}if(v+=y,i&&y!==v){for(h=0;m=r[h++];)m(b,x,s,u);if(a){if(v>0)for(;y--;)b[y]||x[y]||(x[y]=C.call(c));x=he(x)}g.apply(c,x),d&&!a&&x.length>0&&v+r.length>1&&S.uniqueSort(c)}return d&&(E=L,n=T),b};return i?te(a):a}(a,o))).selector=e}return s}function Ee(e,n,r,i){var o,a,s,l,u,c=\"function\"==typeof e&&e,d=!i&&ce(e=c.selector||e);if(r=r||[],1===d.length){if((a=d[0]=d[0].slice(0)).length>2&&\"ID\"===(s=a[0]).type&&9===n.nodeType&&p&&t.relative[a[1].type]){if(!(n=(t.find.ID(s.matches[0].replace($,Y),n)||[])[0]))return r;c&&(n=n.parentNode),e=e.slice(a.shift().value.length)}for(o=V.needsContext.test(e)?0:a.length;o--&&(s=a[o],!t.relative[l=s.type]);)if((u=t.find[l])&&(i=u(s.matches[0].replace($,Y),X.test(a[0].type)&&se(n.parentNode)||n))){if(a.splice(o,1),!(e=i.length&&pe(a)))return g.apply(r,i),r;break}}return(c||ve(e,d))(i,n,!p,r,!n||X.test(e)&&se(n.parentNode)||n),r}ue.prototype=t.filters=t.pseudos,t.setFilters=new ue,m.sortStable=v.split(\"\").sort(L).join(\"\")===v,le(),m.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(l.createElement(\"fieldset\"))})),S.find=Z,S.expr[\":\"]=S.expr.pseudos,S.unique=S.uniqueSort,Z.compile=ve,Z.select=Ee,Z.setDocument=le,Z.tokenize=ce,Z.escape=S.escapeSelector,Z.getText=S.text,Z.isXML=S.isXMLDoc,Z.selectors=S.expr,Z.support=S.support,Z.uniqueSort=S.uniqueSort}();var M=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},F=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},B=S.expr.match.needsContext,G=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function j(e,t,n){return v(t)?S.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?S.grep(e,(function(e){return e===t!==n})):\"string\"!=typeof t?S.grep(e,(function(e){return c.call(t,e)>-1!==n})):S.filter(t,e,n)}S.filter=function(e,t,n){var r=t[0];return n&&(e=\":not(\"+e+\")\"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,(function(e){return 1===e.nodeType})))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if(\"string\"!=typeof e)return this.pushStack(S(e).filter((function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0})));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return r>1?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,\"string\"==typeof e&&B.test(e)?S(e):e||[],!1).length}});var U,H=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||U,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&e.length>=3?[null,e,null]:H.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:y,!0)),G.test(r[1])&&S.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=y.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,U=S(y);var q=/^(?:parents|prev(?:Until|All))/,V={children:!0,contents:!0,next:!0,prev:!0};function W(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter((function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0}))},closest:function(e,t){var n,r=0,i=this.length,o=[],a=\"string\"!=typeof e&&S(e);if(!B.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?S.uniqueSort(o):o)},index:function(e){return e?\"string\"==typeof e?c.call(S(e),this[0]):c.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return M(e,\"parentNode\")},parentsUntil:function(e,t,n){return M(e,\"parentNode\",n)},next:function(e){return W(e,\"nextSibling\")},prev:function(e){return W(e,\"previousSibling\")},nextAll:function(e){return M(e,\"nextSibling\")},prevAll:function(e){return M(e,\"previousSibling\")},nextUntil:function(e,t,n){return M(e,\"nextSibling\",n)},prevUntil:function(e,t,n){return M(e,\"previousSibling\",n)},siblings:function(e){return F((e.parentNode||{}).firstChild,e)},children:function(e){return F(e.firstChild)},contents:function(e){return null!=e.contentDocument&&a(e.contentDocument)?e.contentDocument:(N(e,\"template\")&&(e=e.content||e),S.merge([],e.childNodes))}},(function(e,t){S.fn[e]=function(n,r){var i=S.map(this,t,n);return\"Until\"!==e.slice(-5)&&(r=n),r&&\"string\"==typeof r&&(i=S.filter(r,i)),this.length>1&&(V[e]||S.uniqueSort(i),q.test(e)&&i.reverse()),this.pushStack(i)}}));var z=/[^\\x20\\t\\r\\n\\f]+/g;function Q(e){return e}function X(e){throw e}function $(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(e){e=\"string\"==typeof e?function(e){var t={};return S.each(e.match(z)||[],(function(e,n){t[n]=!0})),t}(e):S.extend({},e);var t,n,r,i,o=[],a=[],s=-1,l=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s<o.length;)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1);e.memory||(n=!1),t=!1,i&&(o=n?[]:\"\")},u={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){S.each(n,(function(n,r){v(r)?e.unique&&u.has(r)||o.push(r):r&&r.length&&\"string\"!==T(r)&&t(r)}))}(arguments),n&&!t&&l()),this},remove:function(){return S.each(arguments,(function(e,t){for(var n;(n=S.inArray(t,o,n))>-1;)o.splice(n,1),n<=s&&s--})),this},has:function(e){return e?S.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n=\"\",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=\"\"),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||l()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!r}};return u},S.extend({Deferred:function(e){var t=[[\"notify\",\"progress\",S.Callbacks(\"memory\"),S.Callbacks(\"memory\"),2],[\"resolve\",\"done\",S.Callbacks(\"once memory\"),S.Callbacks(\"once memory\"),0,\"resolved\"],[\"reject\",\"fail\",S.Callbacks(\"once memory\"),S.Callbacks(\"once memory\"),1,\"rejected\"]],n=\"pending\",i={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return S.Deferred((function(n){S.each(t,(function(t,r){var i=v(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&v(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+\"With\"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,n,i){var o=0;function a(e,t,n,i){return function(){var s=this,l=arguments,u=function(){var r,u;if(!(e<o)){if((r=n.apply(s,l))===t.promise())throw new TypeError(\"Thenable self-resolution\");u=r&&(\"object\"==typeof r||\"function\"==typeof r)&&r.then,v(u)?i?u.call(r,a(o,t,Q,i),a(o,t,X,i)):(o++,u.call(r,a(o,t,Q,i),a(o,t,X,i),a(o,t,Q,t.notifyWith))):(n!==Q&&(s=void 0,l=[r]),(i||t.resolveWith)(s,l))}},c=i?u:function(){try{u()}catch(r){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(r,c.error),e+1>=o&&(n!==X&&(s=void 0,l=[r]),t.rejectWith(s,l))}};e?c():(S.Deferred.getErrorHook?c.error=S.Deferred.getErrorHook():S.Deferred.getStackHook&&(c.error=S.Deferred.getStackHook()),r.setTimeout(c))}}return S.Deferred((function(r){t[0][3].add(a(0,r,v(i)?i:Q,r.notifyWith)),t[1][3].add(a(0,r,v(e)?e:Q)),t[2][3].add(a(0,r,v(n)?n:X))})).promise()},promise:function(e){return null!=e?S.extend(e,i):i}},o={};return S.each(t,(function(e,r){var a=r[2],s=r[5];i[r[1]]=a.add,s&&a.add((function(){n=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),a.add(r[3].fire),o[r[0]]=function(){return o[r[0]+\"With\"](this===o?void 0:this,arguments),this},o[r[0]+\"With\"]=a.fireWith})),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=s.call(arguments),o=S.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?s.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&($(e,o.done(a(n)).resolve,o.reject,!t),\"pending\"===o.state()||v(i[n]&&i[n].then)))return o.then();for(;n--;)$(i[n],a(n),o.reject);return o.promise()}});var Y=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){r.console&&r.console.warn&&e&&Y.test(e.name)&&r.console.warn(\"jQuery.Deferred exception: \"+e.message,e.stack,t)},S.readyException=function(e){r.setTimeout((function(){throw e}))};var K=S.Deferred();function J(){y.removeEventListener(\"DOMContentLoaded\",J),r.removeEventListener(\"load\",J),S.ready()}S.fn.ready=function(e){return K.then(e).catch((function(e){S.readyException(e)})),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0,!0!==e&&--S.readyWait>0||K.resolveWith(y,[S]))}}),S.ready.then=K.then,\"complete\"===y.readyState||\"loading\"!==y.readyState&&!y.documentElement.doScroll?r.setTimeout(S.ready):(y.addEventListener(\"DOMContentLoaded\",J),r.addEventListener(\"load\",J));var Z=function(e,t,n,r,i,o,a){var s=0,l=e.length,u=null==n;if(\"object\"===T(n))for(s in i=!0,n)Z(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),u&&(a?(t.call(e,r),t=null):(u=t,t=function(e,t,n){return u.call(S(e),n)})),t))for(;s<l;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:u?t.call(e):l?t(e[0],n):o},ee=/^-ms-/,te=/-([a-z])/g;function ne(e,t){return t.toUpperCase()}function re(e){return e.replace(ee,\"ms-\").replace(te,ne)}var ie=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function oe(){this.expando=S.expando+oe.uid++}oe.uid=1,oe.prototype={cache:function(e){var t=e[this.expando];return t||(t={},ie(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if(\"string\"==typeof t)i[re(t)]=n;else for(r in t)i[re(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][re(t)]},access:function(e,t,n){return void 0===t||t&&\"string\"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(re):(t=re(t))in r?[t]:t.match(z)||[]).length;for(;n--;)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var ae=new oe,se=new oe,le=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,ue=/[A-Z]/g;function ce(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r=\"data-\"+t.replace(ue,\"-$&\").toLowerCase(),\"string\"==typeof(n=e.getAttribute(r))){try{n=function(e){return\"true\"===e||\"false\"!==e&&(\"null\"===e?null:e===+e+\"\"?+e:le.test(e)?JSON.parse(e):e)}(n)}catch(e){}se.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return se.hasData(e)||ae.hasData(e)},data:function(e,t,n){return se.access(e,t,n)},removeData:function(e,t){se.remove(e,t)},_data:function(e,t,n){return ae.access(e,t,n)},_removeData:function(e,t){ae.remove(e,t)}}),S.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=se.get(o),1===o.nodeType&&!ae.get(o,\"hasDataAttrs\"))){for(n=a.length;n--;)a[n]&&0===(r=a[n].name).indexOf(\"data-\")&&(r=re(r.slice(5)),ce(o,r,i[r]));ae.set(o,\"hasDataAttrs\",!0)}return i}return\"object\"==typeof e?this.each((function(){se.set(this,e)})):Z(this,(function(t){var n;if(o&&void 0===t)return void 0!==(n=se.get(o,e))||void 0!==(n=ce(o,e))?n:void 0;this.each((function(){se.set(this,e,t)}))}),null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each((function(){se.remove(this,e)}))}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||\"fx\")+\"queue\",r=ae.get(e,t),n&&(!r||Array.isArray(n)?r=ae.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||\"fx\";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);\"inprogress\"===i&&(i=n.shift(),r--),i&&(\"fx\"===t&&n.unshift(\"inprogress\"),delete o.stop,i.call(e,(function(){S.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+\"queueHooks\";return ae.get(e,n)||ae.access(e,n,{empty:S.Callbacks(\"once memory\").add((function(){ae.remove(e,[t+\"queue\",n])}))})}}),S.fn.extend({queue:function(e,t){var n=2;return\"string\"!=typeof e&&(t=e,e=\"fx\",n--),arguments.length<n?S.queue(this[0],e):void 0===t?this:this.each((function(){var n=S.queue(this,e,t);S._queueHooks(this,e),\"fx\"===e&&\"inprogress\"!==n[0]&&S.dequeue(this,e)}))},dequeue:function(e){return this.each((function(){S.dequeue(this,e)}))},clearQueue:function(e){return this.queue(e||\"fx\",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for(\"string\"!=typeof e&&(t=e,e=void 0),e=e||\"fx\";a--;)(n=ae.get(o[a],e+\"queueHooks\"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var pe=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,de=new RegExp(\"^(?:([+-])=|)(\"+pe+\")([a-z%]*)$\",\"i\"),fe=[\"Top\",\"Right\",\"Bottom\",\"Left\"],he=y.documentElement,ge=function(e){return S.contains(e.ownerDocument,e)},me={composed:!0};he.getRootNode&&(ge=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(me)===e.ownerDocument});var ve=function(e,t){return\"none\"===(e=t||e).style.display||\"\"===e.style.display&&ge(e)&&\"none\"===S.css(e,\"display\")};function Ee(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,\"\")},l=s(),u=n&&n[3]||(S.cssNumber[t]?\"\":\"px\"),c=e.nodeType&&(S.cssNumber[t]||\"px\"!==u&&+l)&&de.exec(S.css(e,t));if(c&&c[3]!==u){for(l/=2,u=u||c[3],c=+l||1;a--;)S.style(e,t,c+u),(1-o)*(1-(o=s()/l||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+u),n=n||[]}return n&&(c=+c||+l||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=u,r.start=c,r.end=i)),i}var ye={};function be(e){var t,n=e.ownerDocument,r=e.nodeName,i=ye[r];return i||(t=n.body.appendChild(n.createElement(r)),i=S.css(t,\"display\"),t.parentNode.removeChild(t),\"none\"===i&&(i=\"block\"),ye[r]=i,i)}function xe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?(\"none\"===n&&(i[o]=ae.get(r,\"display\")||null,i[o]||(r.style.display=\"\")),\"\"===r.style.display&&ve(r)&&(i[o]=be(r))):\"none\"!==n&&(i[o]=\"none\",ae.set(r,\"display\",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}S.fn.extend({show:function(){return xe(this,!0)},hide:function(){return xe(this)},toggle:function(e){return\"boolean\"==typeof e?e?this.show():this.hide():this.each((function(){ve(this)?S(this).show():S(this).hide()}))}});var Te,Ae,Se=/^(?:checkbox|radio)$/i,Le=/<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i,Ne=/^$|^module$|\\/(?:java|ecma)script/i;Te=y.createDocumentFragment().appendChild(y.createElement(\"div\")),(Ae=y.createElement(\"input\")).setAttribute(\"type\",\"radio\"),Ae.setAttribute(\"checked\",\"checked\"),Ae.setAttribute(\"name\",\"t\"),Te.appendChild(Ae),m.checkClone=Te.cloneNode(!0).cloneNode(!0).lastChild.checked,Te.innerHTML=\"<textarea>x</textarea>\",m.noCloneChecked=!!Te.cloneNode(!0).lastChild.defaultValue,Te.innerHTML=\"<option></option>\",m.option=!!Te.lastChild;var Ce={thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};function Ie(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):void 0!==e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&N(e,t)?S.merge([e],n):n}function _e(e,t){for(var n=0,r=e.length;n<r;n++)ae.set(e[n],\"globalEval\",!t||ae.get(t[n],\"globalEval\"))}Ce.tbody=Ce.tfoot=Ce.colgroup=Ce.caption=Ce.thead,Ce.th=Ce.td,m.option||(Ce.optgroup=Ce.option=[1,\"<select multiple='multiple'>\",\"</select>\"]);var Re=/<|&#?\\w+;/;function we(e,t,n,r,i){for(var o,a,s,l,u,c,p=t.createDocumentFragment(),d=[],f=0,h=e.length;f<h;f++)if((o=e[f])||0===o)if(\"object\"===T(o))S.merge(d,o.nodeType?[o]:o);else if(Re.test(o)){for(a=a||p.appendChild(t.createElement(\"div\")),s=(Le.exec(o)||[\"\",\"\"])[1].toLowerCase(),l=Ce[s]||Ce._default,a.innerHTML=l[1]+S.htmlPrefilter(o)+l[2],c=l[0];c--;)a=a.lastChild;S.merge(d,a.childNodes),(a=p.firstChild).textContent=\"\"}else d.push(t.createTextNode(o));for(p.textContent=\"\",f=0;o=d[f++];)if(r&&S.inArray(o,r)>-1)i&&i.push(o);else if(u=ge(o),a=Ie(p.appendChild(o),\"script\"),u&&_e(a),n)for(c=0;o=a[c++];)Ne.test(o.type||\"\")&&n.push(o);return p}var Oe=/^([^.]*)(?:\\.(.+)|)/;function De(){return!0}function Pe(){return!1}function ke(e,t,n,r,i,o){var a,s;if(\"object\"==typeof t){for(s in\"string\"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&(\"string\"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Pe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each((function(){S.event.add(this,t,i,r,n)}))}function Me(e,t,n){n?(ae.set(e,t,!1),S.event.add(e,t,{namespace:!1,handler:function(e){var n,r=ae.get(this,t);if(1&e.isTrigger&&this[t]){if(r)(S.event.special[t]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),ae.set(this,t,r),this[t](),n=ae.get(this,t),ae.set(this,t,!1),r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(ae.set(this,t,S.event.trigger(r[0],r.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=De)}})):void 0===ae.get(e,t)&&S.event.add(e,t,De)}S.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,u,c,p,d,f,h,g,m=ae.get(e);if(ie(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(he,i),n.guid||(n.guid=S.guid++),(l=m.events)||(l=m.events=Object.create(null)),(a=m.handle)||(a=m.handle=function(t){return void 0!==S&&S.event.triggered!==t.type?S.event.dispatch.apply(e,arguments):void 0}),u=(t=(t||\"\").match(z)||[\"\"]).length;u--;)f=g=(s=Oe.exec(t[u])||[])[1],h=(s[2]||\"\").split(\".\").sort(),f&&(p=S.event.special[f]||{},f=(i?p.delegateType:p.bindType)||f,p=S.event.special[f]||{},c=S.extend({type:f,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(\".\")},o),(d=l[f])||((d=l[f]=[]).delegateCount=0,p.setup&&!1!==p.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(f,a)),p.add&&(p.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),S.event.global[f]=!0)},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,d,f,h,g,m=ae.hasData(e)&&ae.get(e);if(m&&(l=m.events)){for(u=(t=(t||\"\").match(z)||[\"\"]).length;u--;)if(f=g=(s=Oe.exec(t[u])||[])[1],h=(s[2]||\"\").split(\".\").sort(),f){for(p=S.event.special[f]||{},d=l[f=(r?p.delegateType:p.bindType)||f]||[],s=s[2]&&new RegExp(\"(^|\\\\.)\"+h.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"),a=o=d.length;o--;)c=d[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&(\"**\"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,p.remove&&p.remove.call(e,c));a&&!d.length&&(p.teardown&&!1!==p.teardown.call(e,h,m.handle)||S.removeEvent(e,f,m.handle),delete l[f])}else for(f in l)S.event.remove(e,f+t[u],n,r,!0);S.isEmptyObject(l)&&ae.remove(e,\"handle events\")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),l=S.event.fix(e),u=(ae.get(this,\"events\")||Object.create(null))[l.type]||[],c=S.event.special[l.type]||{};for(s[0]=l,t=1;t<arguments.length;t++)s[t]=arguments[t];if(l.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,l)){for(a=S.event.handlers.call(this,l,u),t=0;(i=a[t++])&&!l.isPropagationStopped();)for(l.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!l.isImmediatePropagationStopped();)l.rnamespace&&!1!==o.namespace&&!l.rnamespace.test(o.namespace)||(l.handleObj=o,l.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(l.result=r)&&(l.preventDefault(),l.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,l),l.result}},handlers:function(e,t){var n,r,i,o,a,s=[],l=t.delegateCount,u=e.target;if(l&&u.nodeType&&!(\"click\"===e.type&&e.button>=1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&(\"click\"!==e.type||!0!==u.disabled)){for(o=[],a={},n=0;n<l;n++)void 0===a[i=(r=t[n]).selector+\" \"]&&(a[i]=r.needsContext?S(i,this).index(u)>-1:S.find(i,this,null,[u]).length),a[i]&&o.push(r);o.length&&s.push({elem:u,handlers:o})}return u=this,l<t.length&&s.push({elem:u,handlers:t.slice(l)}),s},addProp:function(e,t){Object.defineProperty(S.Event.prototype,e,{enumerable:!0,configurable:!0,get:v(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return Se.test(t.type)&&t.click&&N(t,\"input\")&&Me(t,\"click\",!0),!1},trigger:function(e){var t=this||e;return Se.test(t.type)&&t.click&&N(t,\"input\")&&Me(t,\"click\"),!0},_default:function(e){var t=e.target;return Se.test(t.type)&&t.click&&N(t,\"input\")&&ae.get(t,\"click\")||N(t,\"a\")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?De:Pe,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Pe,isPropagationStopped:Pe,isImmediatePropagationStopped:Pe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=De,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=De,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=De,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:\"focusin\",blur:\"focusout\"},(function(e,t){function n(e){if(y.documentMode){var n=ae.get(this,\"handle\"),r=S.event.fix(e);r.type=\"focusin\"===e.type?\"focus\":\"blur\",r.isSimulated=!0,n(e),r.target===r.currentTarget&&n(r)}else S.event.simulate(t,e.target,S.event.fix(e))}S.event.special[e]={setup:function(){var r;if(Me(this,e,!0),!y.documentMode)return!1;(r=ae.get(this,t))||this.addEventListener(t,n),ae.set(this,t,(r||0)+1)},trigger:function(){return Me(this,e),!0},teardown:function(){var e;if(!y.documentMode)return!1;(e=ae.get(this,t)-1)?ae.set(this,t,e):(this.removeEventListener(t,n),ae.remove(this,t))},_default:function(t){return ae.get(t.target,e)},delegateType:t},S.event.special[t]={setup:function(){var r=this.ownerDocument||this.document||this,i=y.documentMode?this:r,o=ae.get(i,t);o||(y.documentMode?this.addEventListener(t,n):r.addEventListener(e,n,!0)),ae.set(i,t,(o||0)+1)},teardown:function(){var r=this.ownerDocument||this.document||this,i=y.documentMode?this:r,o=ae.get(i,t)-1;o?ae.set(i,t,o):(y.documentMode?this.removeEventListener(t,n):r.removeEventListener(e,n,!0),ae.remove(i,t))}}})),S.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},(function(e,t){S.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||S.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}})),S.fn.extend({on:function(e,t,n,r){return ke(this,e,t,n,r)},one:function(e,t,n,r){return ke(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+\".\"+r.namespace:r.origType,r.selector,r.handler),this;if(\"object\"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&\"function\"!=typeof t||(n=t,t=void 0),!1===n&&(n=Pe),this.each((function(){S.event.remove(this,e,n,t)}))}});var Fe=/<script|<style|<link/i,Be=/checked\\s*(?:[^=]|=\\s*.checked.)/i,Ge=/^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;function je(e,t){return N(e,\"table\")&&N(11!==t.nodeType?t:t.firstChild,\"tr\")&&S(e).children(\"tbody\")[0]||e}function Ue(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function He(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function qe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(ae.hasData(e)&&(s=ae.get(e).events))for(i in ae.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);se.hasData(e)&&(o=se.access(e),a=S.extend({},o),se.set(t,a))}}function Ve(e,t){var n=t.nodeName.toLowerCase();\"input\"===n&&Se.test(e.type)?t.checked=e.checked:\"input\"!==n&&\"textarea\"!==n||(t.defaultValue=e.defaultValue)}function We(e,t,n,r){t=l(t);var i,o,a,s,u,c,p=0,d=e.length,f=d-1,h=t[0],g=v(h);if(g||d>1&&\"string\"==typeof h&&!m.checkClone&&Be.test(h))return e.each((function(i){var o=e.eq(i);g&&(t[0]=h.call(this,i,o.html())),We(o,t,n,r)}));if(d&&(o=(i=we(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=S.map(Ie(i,\"script\"),Ue)).length;p<d;p++)u=i,p!==f&&(u=S.clone(u,!0,!0),s&&S.merge(a,Ie(u,\"script\"))),n.call(e[p],u,p);if(s)for(c=a[a.length-1].ownerDocument,S.map(a,He),p=0;p<s;p++)u=a[p],Ne.test(u.type||\"\")&&!ae.access(u,\"globalEval\")&&S.contains(c,u)&&(u.src&&\"module\"!==(u.type||\"\").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute(\"nonce\")},c):x(u.textContent.replace(Ge,\"\"),u,c))}return e}function ze(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(Ie(r)),r.parentNode&&(n&&ge(r)&&_e(Ie(r,\"script\")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),l=ge(e);if(!(m.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=Ie(s),r=0,i=(o=Ie(e)).length;r<i;r++)Ve(o[r],a[r]);if(t)if(n)for(o=o||Ie(e),a=a||Ie(s),r=0,i=o.length;r<i;r++)qe(o[r],a[r]);else qe(e,s);return(a=Ie(s,\"script\")).length>0&&_e(a,!l&&Ie(e,\"script\")),s},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(ie(n)){if(t=n[ae.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[ae.expando]=void 0}n[se.expando]&&(n[se.expando]=void 0)}}}),S.fn.extend({detach:function(e){return ze(this,e,!0)},remove:function(e){return ze(this,e)},text:function(e){return Z(this,(function(e){return void 0===e?S.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return We(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)}))},prepend:function(){return We(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return We(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return We(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(Ie(e,!1)),e.textContent=\"\");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return S.clone(this,e,t)}))},html:function(e){return Z(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if(\"string\"==typeof e&&!Fe.test(e)&&!Ce[(Le.exec(e)||[\"\",\"\"])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(Ie(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)}),null,e,arguments.length)},replaceWith:function(){var e=[];return We(this,arguments,(function(t){var n=this.parentNode;S.inArray(this,e)<0&&(S.cleanData(Ie(this)),n&&n.replaceChild(t,this))}),e)}}),S.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},(function(e,t){S.fn[e]=function(e){for(var n,r=[],i=S(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),S(i[a])[t](n),u.apply(r,n.get());return this.pushStack(r)}}));var Qe=new RegExp(\"^(\"+pe+\")(?!px)[a-z%]+$\",\"i\"),Xe=/^--/,$e=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=r),t.getComputedStyle(e)},Ye=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ke=new RegExp(fe.join(\"|\"),\"i\");function Je(e,t,n){var r,i,o,a,s=Xe.test(t),l=e.style;return(n=n||$e(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(w,\"$1\")||void 0),\"\"!==a||ge(e)||(a=S.style(e,t)),!m.pixelBoxStyles()&&Qe.test(a)&&Ke.test(t)&&(r=l.width,i=l.minWidth,o=l.maxWidth,l.minWidth=l.maxWidth=l.width=a,a=n.width,l.width=r,l.minWidth=i,l.maxWidth=o)),void 0!==a?a+\"\":a}function Ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(c){u.style.cssText=\"position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0\",c.style.cssText=\"position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%\",he.appendChild(u).appendChild(c);var e=r.getComputedStyle(c);n=\"1%\"!==e.top,l=12===t(e.marginLeft),c.style.right=\"60%\",a=36===t(e.right),i=36===t(e.width),c.style.position=\"absolute\",o=12===t(c.offsetWidth/3),he.removeChild(u),c=null}}function t(e){return Math.round(parseFloat(e))}var n,i,o,a,s,l,u=y.createElement(\"div\"),c=y.createElement(\"div\");c.style&&(c.style.backgroundClip=\"content-box\",c.cloneNode(!0).style.backgroundClip=\"\",m.clearCloneStyle=\"content-box\"===c.style.backgroundClip,S.extend(m,{boxSizingReliable:function(){return e(),i},pixelBoxStyles:function(){return e(),a},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),l},scrollboxSize:function(){return e(),o},reliableTrDimensions:function(){var e,t,n,i;return null==s&&(e=y.createElement(\"table\"),t=y.createElement(\"tr\"),n=y.createElement(\"div\"),e.style.cssText=\"position:absolute;left:-11111px;border-collapse:separate\",t.style.cssText=\"box-sizing:content-box;border:1px solid\",t.style.height=\"1px\",n.style.height=\"9px\",n.style.display=\"block\",he.appendChild(e).appendChild(t).appendChild(n),i=r.getComputedStyle(t),s=parseInt(i.height,10)+parseInt(i.borderTopWidth,10)+parseInt(i.borderBottomWidth,10)===t.offsetHeight,he.removeChild(e)),s}}))}();var et=[\"Webkit\",\"Moz\",\"ms\"],tt=y.createElement(\"div\").style,nt={};function rt(e){var t=S.cssProps[e]||nt[e];return t||(e in tt?e:nt[e]=function(e){for(var t=e[0].toUpperCase()+e.slice(1),n=et.length;n--;)if((e=et[n]+t)in tt)return e}(e)||e)}var it=/^(none|table(?!-c[ea]).+)/,ot={position:\"absolute\",visibility:\"hidden\",display:\"block\"},at={letterSpacing:\"0\",fontWeight:\"400\"};function st(e,t,n){var r=de.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||\"px\"):t}function lt(e,t,n,r,i,o){var a=\"width\"===t?1:0,s=0,l=0,u=0;if(n===(r?\"border\":\"content\"))return 0;for(;a<4;a+=2)\"margin\"===n&&(u+=S.css(e,n+fe[a],!0,i)),r?(\"content\"===n&&(l-=S.css(e,\"padding\"+fe[a],!0,i)),\"margin\"!==n&&(l-=S.css(e,\"border\"+fe[a]+\"Width\",!0,i))):(l+=S.css(e,\"padding\"+fe[a],!0,i),\"padding\"!==n?l+=S.css(e,\"border\"+fe[a]+\"Width\",!0,i):s+=S.css(e,\"border\"+fe[a]+\"Width\",!0,i));return!r&&o>=0&&(l+=Math.max(0,Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-o-l-s-.5))||0),l+u}function ut(e,t,n){var r=$e(e),i=(!m.boxSizingReliable()||n)&&\"border-box\"===S.css(e,\"boxSizing\",!1,r),o=i,a=Je(e,t,r),s=\"offset\"+t[0].toUpperCase()+t.slice(1);if(Qe.test(a)){if(!n)return a;a=\"auto\"}return(!m.boxSizingReliable()&&i||!m.reliableTrDimensions()&&N(e,\"tr\")||\"auto\"===a||!parseFloat(a)&&\"inline\"===S.css(e,\"display\",!1,r))&&e.getClientRects().length&&(i=\"border-box\"===S.css(e,\"boxSizing\",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+lt(e,t,n||(i?\"border\":\"content\"),o,r,a)+\"px\"}function ct(e,t,n,r,i){return new ct.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Je(e,\"opacity\");return\"\"===n?\"1\":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=re(t),l=Xe.test(t),u=e.style;if(l||(t=rt(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&\"get\"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];\"string\"===(o=typeof n)&&(i=de.exec(n))&&i[1]&&(n=Ee(e,t,i),o=\"number\"),null!=n&&n==n&&(\"number\"!==o||l||(n+=i&&i[3]||(S.cssNumber[s]?\"\":\"px\")),m.clearCloneStyle||\"\"!==n||0!==t.indexOf(\"background\")||(u[t]=\"inherit\"),a&&\"set\"in a&&void 0===(n=a.set(e,n,r))||(l?u.setProperty(t,n):u[t]=n))}},css:function(e,t,n,r){var i,o,a,s=re(t);return Xe.test(t)||(t=rt(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&\"get\"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Je(e,t,r)),\"normal\"===i&&t in at&&(i=at[t]),\"\"===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each([\"height\",\"width\"],(function(e,t){S.cssHooks[t]={get:function(e,n,r){if(n)return!it.test(S.css(e,\"display\"))||e.getClientRects().length&&e.getBoundingClientRect().width?ut(e,t,r):Ye(e,ot,(function(){return ut(e,t,r)}))},set:function(e,n,r){var i,o=$e(e),a=!m.scrollboxSize()&&\"absolute\"===o.position,s=(a||r)&&\"border-box\"===S.css(e,\"boxSizing\",!1,o),l=r?lt(e,t,r,s,o):0;return s&&a&&(l-=Math.ceil(e[\"offset\"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-lt(e,t,\"border\",!1,o)-.5)),l&&(i=de.exec(n))&&\"px\"!==(i[3]||\"px\")&&(e.style[t]=n,n=S.css(e,t)),st(0,n,l)}}})),S.cssHooks.marginLeft=Ze(m.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Je(e,\"marginLeft\"))||e.getBoundingClientRect().left-Ye(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+\"px\"})),S.each({margin:\"\",padding:\"\",border:\"Width\"},(function(e,t){S.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o=\"string\"==typeof n?n.split(\" \"):[n];r<4;r++)i[e+fe[r]+t]=o[r]||o[r-2]||o[0];return i}},\"margin\"!==e&&(S.cssHooks[e+t].set=st)})),S.fn.extend({css:function(e,t){return Z(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)}),e,t,arguments.length>1)}}),S.Tween=ct,ct.prototype={constructor:ct,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?\"\":\"px\")},cur:function(){var e=ct.propHooks[this.prop];return e&&e.get?e.get(this):ct.propHooks._default.get(this)},run:function(e){var t,n=ct.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ct.propHooks._default.set(this),this}},ct.prototype.init.prototype=ct.prototype,ct.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,\"\"))&&\"auto\"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[rt(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}},ct.propHooks.scrollTop=ct.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:\"swing\"},S.fx=ct.prototype.init,S.fx.step={};var pt,dt,ft=/^(?:toggle|show|hide)$/,ht=/queueHooks$/;function gt(){dt&&(!1===y.hidden&&r.requestAnimationFrame?r.requestAnimationFrame(gt):r.setTimeout(gt,S.fx.interval),S.fx.tick())}function mt(){return r.setTimeout((function(){pt=void 0})),pt=Date.now()}function vt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i[\"margin\"+(n=fe[r])]=i[\"padding\"+n]=e;return t&&(i.opacity=i.width=e),i}function Et(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners[\"*\"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(e,t,n){var r,i,o=0,a=yt.prefilters.length,s=S.Deferred().always((function(){delete l.elem})),l=function(){if(i)return!1;for(var t=pt||mt(),n=Math.max(0,u.startTime+u.duration-t),r=1-(n/u.duration||0),o=0,a=u.tweens.length;o<a;o++)u.tweens[o].run(r);return s.notifyWith(e,[u,r,n]),r<1&&a?n:(a||s.notifyWith(e,[u,1,0]),s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:S.extend({},t),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},n),originalProperties:t,originalOptions:n,startTime:pt||mt(),duration:n.duration,tweens:[],createTween:function(t,n){var r=S.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)u.tweens[n].run(1);return t?(s.notifyWith(e,[u,1,0]),s.resolveWith(e,[u,t])):s.rejectWith(e,[u,t]),this}}),c=u.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=re(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&\"expand\"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,u.opts.specialEasing);o<a;o++)if(r=yt.prefilters[o].call(u,e,c,u.opts))return v(r.stop)&&(S._queueHooks(u.elem,u.opts.queue).stop=r.stop.bind(r)),r;return S.map(c,Et,u),v(u.opts.start)&&u.opts.start.call(e,u),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always),S.fx.timer(S.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u}S.Animation=S.extend(yt,{tweeners:{\"*\":[function(e,t){var n=this.createTween(e,t);return Ee(n.elem,e,de.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=[\"*\"]):e=e.match(z);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,l,u,c,p=\"width\"in t||\"height\"in t,d=this,f={},h=e.style,g=e.nodeType&&ve(e),m=ae.get(e,\"fxshow\");for(r in n.queue||(null==(a=S._queueHooks(e,\"fx\")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,d.always((function(){d.always((function(){a.unqueued--,S.queue(e,\"fx\").length||a.empty.fire()}))}))),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||\"toggle\"===i,i===(g?\"hide\":\"show\")){if(\"show\"!==i||!m||void 0===m[r])continue;g=!0}f[r]=m&&m[r]||S.style(e,r)}if((l=!S.isEmptyObject(t))||!S.isEmptyObject(f))for(r in p&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(u=m&&m.display)&&(u=ae.get(e,\"display\")),\"none\"===(c=S.css(e,\"display\"))&&(u?c=u:(xe([e],!0),u=e.style.display||u,c=S.css(e,\"display\"),xe([e]))),(\"inline\"===c||\"inline-block\"===c&&null!=u)&&\"none\"===S.css(e,\"float\")&&(l||(d.done((function(){h.display=u})),null==u&&(c=h.display,u=\"none\"===c?\"\":c)),h.display=\"inline-block\")),n.overflow&&(h.overflow=\"hidden\",d.always((function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]}))),l=!1,f)l||(m?\"hidden\"in m&&(g=m.hidden):m=ae.access(e,\"fxshow\",{display:u}),o&&(m.hidden=!g),g&&xe([e],!0),d.done((function(){for(r in g||xe([e]),ae.remove(e,\"fxshow\"),f)S.style(e,r,f[r])}))),l=Et(g?m[r]:0,r,d),r in m||(m[r]=l.start,g&&(l.end=l.start,l.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&\"object\"==typeof e?S.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return S.fx.off?r.duration=0:\"number\"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue=\"fx\"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ve).css(\"opacity\",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=S.isEmptyObject(e),o=S.speed(t,n,r),a=function(){var t=yt(this,S.extend({},e),o);(i||ae.get(this,\"finish\"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return\"string\"!=typeof e&&(n=t,t=e,e=void 0),t&&this.queue(e||\"fx\",[]),this.each((function(){var t=!0,i=null!=e&&e+\"queueHooks\",o=S.timers,a=ae.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ht.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||S.dequeue(this,e)}))},finish:function(e){return!1!==e&&(e=e||\"fx\"),this.each((function(){var t,n=ae.get(this),r=n[e+\"queue\"],i=n[e+\"queueHooks\"],o=S.timers,a=r?r.length:0;for(n.finish=!0,S.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish}))}}),S.each([\"toggle\",\"show\",\"hide\"],(function(e,t){var n=S.fn[t];S.fn[t]=function(e,r,i){return null==e||\"boolean\"==typeof e?n.apply(this,arguments):this.animate(vt(t,!0),e,r,i)}})),S.each({slideDown:vt(\"show\"),slideUp:vt(\"hide\"),slideToggle:vt(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},(function(e,t){S.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}})),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(pt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),pt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){dt||(dt=!0,gt())},S.fx.stop=function(){dt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(e,t){return e=S.fx&&S.fx.speeds[e]||e,t=t||\"fx\",this.queue(t,(function(t,n){var i=r.setTimeout(t,e);n.stop=function(){r.clearTimeout(i)}}))},function(){var e=y.createElement(\"input\"),t=y.createElement(\"select\").appendChild(y.createElement(\"option\"));e.type=\"checkbox\",m.checkOn=\"\"!==e.value,m.optSelected=t.selected,(e=y.createElement(\"input\")).value=\"t\",e.type=\"radio\",m.radioValue=\"t\"===e.value}();var bt,xt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return Z(this,S.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each((function(){S.removeAttr(this,e)}))}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?bt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+\"\"),n):i&&\"get\"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!m.radioValue&&\"radio\"===t&&N(e,\"input\")){var n=e.value;return e.setAttribute(\"type\",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(z);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),bt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\\w+/g),(function(e,t){var n=xt[t]||S.find.attr;xt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=xt[a],xt[a]=i,i=null!=n(e,t,r)?a:null,xt[a]=o),i}}));var Tt=/^(?:input|select|textarea|button)$/i,At=/^(?:a|area)$/i;function St(e){return(e.match(z)||[]).join(\" \")}function Lt(e){return e.getAttribute&&e.getAttribute(\"class\")||\"\"}function Nt(e){return Array.isArray(e)?e:\"string\"==typeof e&&e.match(z)||[]}S.fn.extend({prop:function(e,t){return Z(this,S.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[S.propFix[e]||e]}))}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&\"set\"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&\"get\"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,\"tabindex\");return t?parseInt(t,10):Tt.test(e.nodeName)||At.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:\"htmlFor\",class:\"className\"}}),m.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],(function(){S.propFix[this.toLowerCase()]=this})),S.fn.extend({addClass:function(e){var t,n,r,i,o,a;return v(e)?this.each((function(t){S(this).addClass(e.call(this,t,Lt(this)))})):(t=Nt(e)).length?this.each((function(){if(r=Lt(this),n=1===this.nodeType&&\" \"+St(r)+\" \"){for(o=0;o<t.length;o++)i=t[o],n.indexOf(\" \"+i+\" \")<0&&(n+=i+\" \");a=St(n),r!==a&&this.setAttribute(\"class\",a)}})):this},removeClass:function(e){var t,n,r,i,o,a;return v(e)?this.each((function(t){S(this).removeClass(e.call(this,t,Lt(this)))})):arguments.length?(t=Nt(e)).length?this.each((function(){if(r=Lt(this),n=1===this.nodeType&&\" \"+St(r)+\" \"){for(o=0;o<t.length;o++)for(i=t[o];n.indexOf(\" \"+i+\" \")>-1;)n=n.replace(\" \"+i+\" \",\" \");a=St(n),r!==a&&this.setAttribute(\"class\",a)}})):this:this.attr(\"class\",\"\")},toggleClass:function(e,t){var n,r,i,o,a=typeof e,s=\"string\"===a||Array.isArray(e);return v(e)?this.each((function(n){S(this).toggleClass(e.call(this,n,Lt(this),t),t)})):\"boolean\"==typeof t&&s?t?this.addClass(e):this.removeClass(e):(n=Nt(e),this.each((function(){if(s)for(o=S(this),i=0;i<n.length;i++)r=n[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==e&&\"boolean\"!==a||((r=Lt(this))&&ae.set(this,\"__className__\",r),this.setAttribute&&this.setAttribute(\"class\",r||!1===e?\"\":ae.get(this,\"__className__\")||\"\"))})))},hasClass:function(e){var t,n,r=0;for(t=\" \"+e+\" \";n=this[r++];)if(1===n.nodeType&&(\" \"+St(Lt(n))+\" \").indexOf(t)>-1)return!0;return!1}});var Ct=/\\r/g;S.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=v(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,S(this).val()):e)?i=\"\":\"number\"==typeof i?i+=\"\":Array.isArray(i)&&(i=S.map(i,(function(e){return null==e?\"\":e+\"\"}))),(t=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&\"set\"in t&&void 0!==t.set(this,i,\"value\")||(this.value=i))}))):i?(t=S.valHooks[i.type]||S.valHooks[i.nodeName.toLowerCase()])&&\"get\"in t&&void 0!==(n=t.get(i,\"value\"))?n:\"string\"==typeof(n=i.value)?n.replace(Ct,\"\"):null==n?\"\":n:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,\"value\");return null!=t?t:St(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a=\"select-one\"===e.type,s=a?null:[],l=a?o+1:i.length;for(r=o<0?l:a?o:0;r<l;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,\"optgroup\"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){for(var n,r,i=e.options,o=S.makeArray(t),a=i.length;a--;)((r=i[a]).selected=S.inArray(S.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each([\"radio\",\"checkbox\"],(function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=S.inArray(S(e).val(),t)>-1}},m.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute(\"value\")?\"on\":e.value})}));var It=r.location,_t={guid:Date.now()},Rt=/\\?/;S.parseXML=function(e){var t,n;if(!e||\"string\"!=typeof e)return null;try{t=(new r.DOMParser).parseFromString(e,\"text/xml\")}catch(e){}return n=t&&t.getElementsByTagName(\"parsererror\")[0],t&&!n||S.error(\"Invalid XML: \"+(n?S.map(n.childNodes,(function(e){return e.textContent})).join(\"\\n\"):e)),t};var wt=/^(?:focusinfocus|focusoutblur)$/,Ot=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,i){var o,a,s,l,u,c,p,d,h=[n||y],g=f.call(e,\"type\")?e.type:e,m=f.call(e,\"namespace\")?e.namespace.split(\".\"):[];if(a=d=s=n=n||y,3!==n.nodeType&&8!==n.nodeType&&!wt.test(g+S.event.triggered)&&(g.indexOf(\".\")>-1&&(m=g.split(\".\"),g=m.shift(),m.sort()),u=g.indexOf(\":\")<0&&\"on\"+g,(e=e[S.expando]?e:new S.Event(g,\"object\"==typeof e&&e)).isTrigger=i?2:3,e.namespace=m.join(\".\"),e.rnamespace=e.namespace?new RegExp(\"(^|\\\\.)\"+m.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),p=S.event.special[g]||{},i||!p.trigger||!1!==p.trigger.apply(n,t))){if(!i&&!p.noBubble&&!E(n)){for(l=p.delegateType||g,wt.test(l+g)||(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(n.ownerDocument||y)&&h.push(s.defaultView||s.parentWindow||r)}for(o=0;(a=h[o++])&&!e.isPropagationStopped();)d=a,e.type=o>1?l:p.bindType||g,(c=(ae.get(a,\"events\")||Object.create(null))[e.type]&&ae.get(a,\"handle\"))&&c.apply(a,t),(c=u&&a[u])&&c.apply&&ie(a)&&(e.result=c.apply(a,t),!1===e.result&&e.preventDefault());return e.type=g,i||e.isDefaultPrevented()||p._default&&!1!==p._default.apply(h.pop(),t)||!ie(n)||u&&v(n[g])&&!E(n)&&((s=n[u])&&(n[u]=null),S.event.triggered=g,e.isPropagationStopped()&&d.addEventListener(g,Ot),n[g](),e.isPropagationStopped()&&d.removeEventListener(g,Ot),S.event.triggered=void 0,s&&(n[u]=s)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each((function(){S.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}});var Dt=/\\[\\]$/,Pt=/\\r?\\n/g,kt=/^(?:submit|button|image|reset|file)$/i,Mt=/^(?:input|select|textarea|keygen)/i;function Ft(e,t,n,r){var i;if(Array.isArray(t))S.each(t,(function(t,i){n||Dt.test(e)?r(e,i):Ft(e+\"[\"+(\"object\"==typeof i&&null!=i?t:\"\")+\"]\",i,n,r)}));else if(n||\"object\"!==T(t))r(e,t);else for(i in t)Ft(e+\"[\"+i+\"]\",t[i],n,r)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(null==n?\"\":n)};if(null==e)return\"\";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,(function(){i(this.name,this.value)}));else for(n in e)Ft(n,e[n],t,i);return r.join(\"&\")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=S.prop(this,\"elements\");return e?S.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!S(this).is(\":disabled\")&&Mt.test(this.nodeName)&&!kt.test(e)&&(this.checked||!Se.test(e))})).map((function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,(function(e){return{name:t.name,value:e.replace(Pt,\"\\r\\n\")}})):{name:t.name,value:n.replace(Pt,\"\\r\\n\")}})).get()}});var Bt=/%20/g,Gt=/#.*$/,jt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,Ht=/^(?:GET|HEAD)$/,qt=/^\\/\\//,Vt={},Wt={},zt=\"*/\".concat(\"*\"),Qt=y.createElement(\"a\");function Xt(e){return function(t,n){\"string\"!=typeof t&&(n=t,t=\"*\");var r,i=0,o=t.toLowerCase().match(z)||[];if(v(n))for(;r=o[i++];)\"+\"===r[0]?(r=r.slice(1)||\"*\",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function $t(e,t,n,r){var i={},o=e===Wt;function a(s){var l;return i[s]=!0,S.each(e[s]||[],(function(e,s){var u=s(t,n,r);return\"string\"!=typeof u||o||i[u]?o?!(l=u):void 0:(t.dataTypes.unshift(u),a(u),!1)})),l}return a(t.dataTypes[0])||!i[\"*\"]&&a(\"*\")}function Yt(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Qt.href=It.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:It.href,type:\"GET\",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(It.protocol),global:!0,processData:!0,async:!0,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":zt,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/\\bxml\\b/,html:/\\bhtml/,json:/\\bjson\\b/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":!0,\"text json\":JSON.parse,\"text xml\":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Yt(Yt(e,S.ajaxSettings),t):Yt(S.ajaxSettings,e)},ajaxPrefilter:Xt(Vt),ajaxTransport:Xt(Wt),ajax:function(e,t){\"object\"==typeof e&&(t=e,e=void 0),t=t||{};var n,i,o,a,s,l,u,c,p,d,f=S.ajaxSetup({},t),h=f.context||f,g=f.context&&(h.nodeType||h.jquery)?S(h):S.event,m=S.Deferred(),v=S.Callbacks(\"once memory\"),E=f.statusCode||{},b={},x={},T=\"canceled\",A={readyState:0,getResponseHeader:function(e){var t;if(u){if(!a)for(a={};t=Ut.exec(o);)a[t[1].toLowerCase()+\" \"]=(a[t[1].toLowerCase()+\" \"]||[]).concat(t[2]);t=a[e.toLowerCase()+\" \"]}return null==t?null:t.join(\", \")},getAllResponseHeaders:function(){return u?o:null},setRequestHeader:function(e,t){return null==u&&(e=x[e.toLowerCase()]=x[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==u&&(f.mimeType=e),this},statusCode:function(e){var t;if(e)if(u)A.always(e[A.status]);else for(t in e)E[t]=[E[t],e[t]];return this},abort:function(e){var t=e||T;return n&&n.abort(t),L(0,t),this}};if(m.promise(A),f.url=((e||f.url||It.href)+\"\").replace(qt,It.protocol+\"//\"),f.type=t.method||t.type||f.method||f.type,f.dataTypes=(f.dataType||\"*\").toLowerCase().match(z)||[\"\"],null==f.crossDomain){l=y.createElement(\"a\");try{l.href=f.url,l.href=l.href,f.crossDomain=Qt.protocol+\"//\"+Qt.host!=l.protocol+\"//\"+l.host}catch(e){f.crossDomain=!0}}if(f.data&&f.processData&&\"string\"!=typeof f.data&&(f.data=S.param(f.data,f.traditional)),$t(Vt,f,t,A),u)return A;for(p in(c=S.event&&f.global)&&0==S.active++&&S.event.trigger(\"ajaxStart\"),f.type=f.type.toUpperCase(),f.hasContent=!Ht.test(f.type),i=f.url.replace(Gt,\"\"),f.hasContent?f.data&&f.processData&&0===(f.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&(f.data=f.data.replace(Bt,\"+\")):(d=f.url.slice(i.length),f.data&&(f.processData||\"string\"==typeof f.data)&&(i+=(Rt.test(i)?\"&\":\"?\")+f.data,delete f.data),!1===f.cache&&(i=i.replace(jt,\"$1\"),d=(Rt.test(i)?\"&\":\"?\")+\"_=\"+_t.guid+++d),f.url=i+d),f.ifModified&&(S.lastModified[i]&&A.setRequestHeader(\"If-Modified-Since\",S.lastModified[i]),S.etag[i]&&A.setRequestHeader(\"If-None-Match\",S.etag[i])),(f.data&&f.hasContent&&!1!==f.contentType||t.contentType)&&A.setRequestHeader(\"Content-Type\",f.contentType),A.setRequestHeader(\"Accept\",f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+(\"*\"!==f.dataTypes[0]?\", \"+zt+\"; q=0.01\":\"\"):f.accepts[\"*\"]),f.headers)A.setRequestHeader(p,f.headers[p]);if(f.beforeSend&&(!1===f.beforeSend.call(h,A,f)||u))return A.abort();if(T=\"abort\",v.add(f.complete),A.done(f.success),A.fail(f.error),n=$t(Wt,f,t,A)){if(A.readyState=1,c&&g.trigger(\"ajaxSend\",[A,f]),u)return A;f.async&&f.timeout>0&&(s=r.setTimeout((function(){A.abort(\"timeout\")}),f.timeout));try{u=!1,n.send(b,L)}catch(e){if(u)throw e;L(-1,e)}}else L(-1,\"No Transport\");function L(e,t,a,l){var p,d,y,b,x,T=t;u||(u=!0,s&&r.clearTimeout(s),n=void 0,o=l||\"\",A.readyState=e>0?4:0,p=e>=200&&e<300||304===e,a&&(b=function(e,t,n){for(var r,i,o,a,s=e.contents,l=e.dataTypes;\"*\"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader(\"Content-Type\"));if(r)for(i in s)if(s[i]&&s[i].test(r)){l.unshift(i);break}if(l[0]in n)o=l[0];else{for(i in n){if(!l[0]||e.converters[i+\" \"+l[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==l[0]&&l.unshift(o),n[o]}(f,A,a)),!p&&S.inArray(\"script\",f.dataTypes)>-1&&S.inArray(\"json\",f.dataTypes)<0&&(f.converters[\"text script\"]=function(){}),b=function(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if(\"*\"===o)o=l;else if(\"*\"!==l&&l!==o){if(!(a=u[l+\" \"+o]||u[\"* \"+o]))for(i in u)if((s=i.split(\" \"))[1]===o&&(a=u[l+\" \"+s[0]]||u[\"* \"+s[0]])){!0===a?a=u[i]:!0!==u[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:\"parsererror\",error:a?e:\"No conversion from \"+l+\" to \"+o}}}return{state:\"success\",data:t}}(f,b,A,p),p?(f.ifModified&&((x=A.getResponseHeader(\"Last-Modified\"))&&(S.lastModified[i]=x),(x=A.getResponseHeader(\"etag\"))&&(S.etag[i]=x)),204===e||\"HEAD\"===f.type?T=\"nocontent\":304===e?T=\"notmodified\":(T=b.state,d=b.data,p=!(y=b.error))):(y=T,!e&&T||(T=\"error\",e<0&&(e=0))),A.status=e,A.statusText=(t||T)+\"\",p?m.resolveWith(h,[d,T,A]):m.rejectWith(h,[A,T,y]),A.statusCode(E),E=void 0,c&&g.trigger(p?\"ajaxSuccess\":\"ajaxError\",[A,f,p?d:y]),v.fireWith(h,[A,T]),c&&(g.trigger(\"ajaxComplete\",[A,f]),--S.active||S.event.trigger(\"ajaxStop\")))}return A},getJSON:function(e,t,n){return S.get(e,t,n,\"json\")},getScript:function(e,t){return S.get(e,void 0,t,\"script\")}}),S.each([\"get\",\"post\"],(function(e,t){S[t]=function(e,n,r,i){return v(n)&&(i=i||r,r=n,n=void 0),S.ajax(S.extend({url:e,type:t,dataType:i,data:n,success:r},S.isPlainObject(e)&&e))}})),S.ajaxPrefilter((function(e){var t;for(t in e.headers)\"content-type\"===t.toLowerCase()&&(e.contentType=e.headers[t]||\"\")})),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:\"GET\",dataType:\"script\",cache:!0,async:!1,global:!1,converters:{\"text script\":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return v(e)?this.each((function(t){S(this).wrapInner(e.call(this,t))})):this.each((function(){var t=S(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=v(e);return this.each((function(n){S(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not(\"body\").each((function(){S(this).replaceWith(this.childNodes)})),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(e){}};var Kt={0:200,1223:204},Jt=S.ajaxSettings.xhr();m.cors=!!Jt&&\"withCredentials\"in Jt,m.ajax=Jt=!!Jt,S.ajaxTransport((function(e){var t,n;if(m.cors||Jt&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i[\"X-Requested-With\"]||(i[\"X-Requested-With\"]=\"XMLHttpRequest\"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=n=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,\"abort\"===e?s.abort():\"error\"===e?\"number\"!=typeof s.status?o(0,\"error\"):o(s.status,s.statusText):o(Kt[s.status]||s.status,s.statusText,\"text\"!==(s.responseType||\"text\")||\"string\"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),n=s.onerror=s.ontimeout=t(\"error\"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&r.setTimeout((function(){t&&n()}))},t=t(\"abort\");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),S.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),S.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/\\b(?:java|ecma)script\\b/},converters:{\"text script\":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter(\"script\",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type=\"GET\")})),S.ajaxTransport(\"script\",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=S(\"<script>\").attr(e.scriptAttrs||{}).prop({charset:e.scriptCharset,src:e.url}).on(\"load error\",n=function(e){t.remove(),n=null,e&&i(\"error\"===e.type?404:200,e.type)}),y.head.appendChild(t[0])},abort:function(){n&&n()}}}));var Zt,en=[],tn=/(=)\\?(?=&|$)|\\?\\?/;S.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=en.pop()||S.expando+\"_\"+_t.guid++;return this[e]=!0,e}}),S.ajaxPrefilter(\"json jsonp\",(function(e,t,n){var i,o,a,s=!1!==e.jsonp&&(tn.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&tn.test(e.data)&&\"data\");if(s||\"jsonp\"===e.dataTypes[0])return i=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(tn,\"$1\"+i):!1!==e.jsonp&&(e.url+=(Rt.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+i),e.converters[\"script json\"]=function(){return a||S.error(i+\" was not called\"),a[0]},e.dataTypes[0]=\"json\",o=r[i],r[i]=function(){a=arguments},n.always((function(){void 0===o?S(r).removeProp(i):r[i]=o,e[i]&&(e.jsonpCallback=t.jsonpCallback,en.push(i)),a&&v(o)&&o(a[0]),a=o=void 0})),\"script\"})),m.createHTMLDocument=((Zt=y.implementation.createHTMLDocument(\"\").body).innerHTML=\"<form></form><form></form>\",2===Zt.childNodes.length),S.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(m.createHTMLDocument?((r=(t=y.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=y.location.href,t.head.appendChild(r)):t=y),o=!n&&[],(i=G.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return s>-1&&(r=St(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&\"object\"==typeof t&&(i=\"POST\"),a.length>0&&S.ajax({url:e,type:i||\"GET\",dataType:\"html\",data:t}).done((function(e){o=arguments,a.html(r?S(\"<div>\").append(S.parseHTML(e)).find(r):e)})).always(n&&function(e,t){a.each((function(){n.apply(this,o||[e.responseText,t,e])}))}),this},S.expr.pseudos.animated=function(e){return S.grep(S.timers,(function(t){return e===t.elem})).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,l,u=S.css(e,\"position\"),c=S(e),p={};\"static\"===u&&(e.style.position=\"relative\"),s=c.offset(),o=S.css(e,\"top\"),l=S.css(e,\"left\"),(\"absolute\"===u||\"fixed\"===u)&&(o+l).indexOf(\"auto\")>-1?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(l)||0),v(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),\"using\"in t?t.using.call(e,p):c.css(p)}},S.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each((function(t){S.offset.setOffset(this,e,t)}));var t,n,r=this[0];return r?r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===S.css(r,\"position\"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&\"static\"===S.css(e,\"position\");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,\"borderTopWidth\",!0),i.left+=S.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-S.css(r,\"marginTop\",!0),left:t.left-i.left-S.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map((function(){for(var e=this.offsetParent;e&&\"static\"===S.css(e,\"position\");)e=e.offsetParent;return e||he}))}}),S.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},(function(e,t){var n=\"pageYOffset\"===t;S.fn[e]=function(r){return Z(this,(function(e,r,i){var o;if(E(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i}),e,r,arguments.length)}})),S.each([\"top\",\"left\"],(function(e,t){S.cssHooks[t]=Ze(m.pixelPosition,(function(e,n){if(n)return n=Je(e,t),Qe.test(n)?S(e).position()[t]+\"px\":n}))})),S.each({Height:\"height\",Width:\"width\"},(function(e,t){S.each({padding:\"inner\"+e,content:t,\"\":\"outer\"+e},(function(n,r){S.fn[r]=function(i,o){var a=arguments.length&&(n||\"boolean\"!=typeof i),s=n||(!0===i||!0===o?\"margin\":\"border\");return Z(this,(function(t,n,i){var o;return E(t)?0===r.indexOf(\"outer\")?t[\"inner\"+e]:t.document.documentElement[\"client\"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body[\"scroll\"+e],o[\"scroll\"+e],t.body[\"offset\"+e],o[\"offset\"+e],o[\"client\"+e])):void 0===i?S.css(t,n,s):S.style(t,n,i,s)}),t,a?i:void 0,a)}}))})),S.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],(function(e,t){S.fn[t]=function(e){return this.on(t,e)}})),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.on(\"mouseenter\",e).on(\"mouseleave\",t||e)}}),S.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),(function(e,t){S.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}));var nn=/^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if(\"string\"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=N,S.isFunction=v,S.isWindow=E,S.camelCase=re,S.type=T,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return(\"number\"===t||\"string\"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?\"\":(e+\"\").replace(nn,\"$1\")},void 0===(n=function(){return S}.apply(t,[]))||(e.exports=n);var rn=r.jQuery,on=r.$;return S.noConflict=function(e){return r.$===S&&(r.$=on),e&&r.jQuery===S&&(r.jQuery=rn),S},void 0===i&&(r.jQuery=r.$=S),S}))},9604:(e,t,n)=>{\"use strict\";function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function i(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&r(e,t)}n.d(t,{A:()=>i})},9715:(e,t,n)=>{\"use strict\";n.r(t)},9736:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>a});var r=n(1717);var i=n(3564),o=n(3886);function a(e,t){return(0,r.A)(e)||function(e,t){var n=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=n){var r,i,o,a,s=[],l=!0,u=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){u=!0,i=e}finally{try{if(!l&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(u)throw i}}return s}}(e,t)||(0,i.A)(e,t)||(0,o.A)()}},9741:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>i});var r=n(1273);const i=function(e,t){var n=t?(0,r.A)(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},9754:(e,t,n)=>{!function(e){\"use strict\";function t(t,n,i,o){if(i&&i.call){var a=i;i=null}else a=r(t,i,\"rangeFinder\");\"number\"==typeof n&&(n=e.Pos(n,0));var s=r(t,i,\"minFoldSize\");function l(e){var r=a(t,n);if(!r||r.to.line-r.from.line<s)return null;if(\"fold\"===o)return r;for(var i=t.findMarksAt(r.from),l=0;l<i.length;++l)if(i[l].__isFold){if(!e)return null;r.cleared=!0,i[l].clear()}return r}var u=l(!0);if(r(t,i,\"scanUp\"))for(;!u&&n.line>t.firstLine();)n=e.Pos(n.line-1,0),u=l(!1);if(u&&!u.cleared&&\"unfold\"!==o){var c=function(e,t,n){var i=r(e,t,\"widget\");if(\"function\"==typeof i&&(i=i(n.from,n.to)),\"string\"==typeof i){var o=document.createTextNode(i);(i=document.createElement(\"span\")).appendChild(o),i.className=\"CodeMirror-foldmarker\"}else i&&(i=i.cloneNode(!0));return i}(t,i,u);e.on(c,\"mousedown\",(function(t){p.clear(),e.e_preventDefault(t)}));var p=t.markText(u.from,u.to,{replacedWith:c,clearOnEnter:r(t,i,\"clearOnEnter\"),__isFold:!0});p.on(\"clear\",(function(n,r){e.signal(t,\"unfold\",t,n,r)})),e.signal(t,\"fold\",t,u.from,u.to)}}e.newFoldFunction=function(e,n){return function(r,i){t(r,i,{rangeFinder:e,widget:n})}},e.defineExtension(\"foldCode\",(function(e,n,r){t(this,e,n,r)})),e.defineExtension(\"isFolded\",(function(e){for(var t=this.findMarksAt(e),n=0;n<t.length;++n)if(t[n].__isFold)return!0})),e.commands.toggleFold=function(e){e.foldCode(e.getCursor())},e.commands.fold=function(e){e.foldCode(e.getCursor(),null,\"fold\")},e.commands.unfold=function(e){e.foldCode(e.getCursor(),{scanUp:!1},\"unfold\")},e.commands.foldAll=function(t){t.operation((function(){for(var n=t.firstLine(),r=t.lastLine();n<=r;n++)t.foldCode(e.Pos(n,0),{scanUp:!1},\"fold\")}))},e.commands.unfoldAll=function(t){t.operation((function(){for(var n=t.firstLine(),r=t.lastLine();n<=r;n++)t.foldCode(e.Pos(n,0),{scanUp:!1},\"unfold\")}))},e.registerHelper(\"fold\",\"combine\",(function(){var e=Array.prototype.slice.call(arguments,0);return function(t,n){for(var r=0;r<e.length;++r){var i=e[r](t,n);if(i)return i}}})),e.registerHelper(\"fold\",\"auto\",(function(e,t){for(var n=e.getHelpers(t,\"fold\"),r=0;r<n.length;r++){var i=n[r](e,t);if(i)return i}}));var n={rangeFinder:e.fold.auto,widget:\"↔\",minFoldSize:0,scanUp:!1,clearOnEnter:!0};function r(e,t,r){if(t&&void 0!==t[r])return t[r];var i=e.options.foldOptions;return i&&void 0!==i[r]?i[r]:n[r]}e.defineOption(\"foldOptions\",null),e.defineExtension(\"foldOption\",(function(e,t){return r(this,e,t)}))}(n(1719))},9758:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>s});var r=n(8285),i=n(8086),o=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,a=/^\\w*$/;const s=function(e,t){if((0,r.A)(e))return!1;var n=typeof e;return!(\"number\"!=n&&\"symbol\"!=n&&\"boolean\"!=n&&null!=e&&!(0,i.A)(e))||(a.test(e)||!o.test(e)||null!=t&&e in Object(t))}},9790:(e,t,n)=>{\"use strict\";n.d(t,{A:()=>o});var r=n(2977),i=n(6809);const o=function(e){if(!(0,i.A)(e))return!1;var t=(0,r.A)(e);return\"[object Function]\"==t||\"[object GeneratorFunction]\"==t||\"[object AsyncFunction]\"==t||\"[object Proxy]\"==t}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},__webpack_require__.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(e){if(\"object\"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var __webpack_exports__={};return(()=>{\"use strict\";__webpack_require__.d(__webpack_exports__,{default:()=>Ct,r:()=>Nt});var e={};__webpack_require__.r(e),__webpack_require__.d(e,{appendArgsToUrl:()=>ke,createShareConfig:()=>Fe,createShareLink:()=>Me,getConfigFromUrl:()=>Be,queryCatalogConfigToTabConfig:()=>Ge});var t=__webpack_require__(9121),n=__webpack_require__(4758),r=__webpack_require__(365),i=__webpack_require__(8782),o=__webpack_require__(9604),a=__webpack_require__(4785),s=__webpack_require__(7440),l=__webpack_require__(5955),u=__webpack_require__(7242),c=__webpack_require__(6826);const p=function(e){return function(t,n,r){var i=Object(t);if(!(0,u.A)(t)){var o=(0,l.A)(n,3);t=(0,c.A)(t),n=function(e){return o(i[e],e,i)}}var a=e(t,n,r);return a>-1?i[o?t[a]:a]:void 0}};const d=function(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return-1};var f=__webpack_require__(4801),h=Math.max;const g=p((function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:(0,f.A)(n);return i<0&&(i=h(r+i,0)),d(e,(0,l.A)(t,3),i)}));var m=__webpack_require__(8023);const v=function(e,t){return(0,m.A)(e,t)};var E=__webpack_require__(4175),y=__webpack_require__(3142);var b=__webpack_require__(3111);var x=function(){function e(n){(0,t.A)(this,e),this.yasgui=n,this.storageId=this.yasgui.getStorageId(this.yasgui.config.persistenceLabelConfig),this.storage=new b.wc(\"triply\"),this.fromStorage(),this.registerListeners()}return(0,n.A)(e,[{key:\"setActive\",value:function(e){this.persistedJson.active=e,this.toStorage()}},{key:\"getActiveId\",value:function(){return this.persistedJson.active}},{key:\"addToTabList\",value:function(e,t){void 0!==t&&this.persistedJson.tabs.length>t?this.persistedJson.tabs.splice(t,0,e):this.persistedJson.tabs.push(e),this.toStorage()}},{key:\"setTabOrder\",value:function(e){this.persistedJson.tabs=e,this.toStorage()}},{key:\"getEndpointHistory\",value:function(){return this.persistedJson.endpointHistory}},{key:\"retrieveLastClosedTab\",value:function(){var e=this.persistedJson.lastClosedTab;return void 0===e||(this.persistedJson.lastClosedTab=void 0),e}},{key:\"hasLastClosedTab\",value:function(){return!!this.persistedJson.lastClosedTab}},{key:\"deleteTab\",value:function(e){var t=this.persistedJson.tabs.indexOf(e);t>-1&&this.persistedJson.tabs.splice(t,1),this.tabIsActive(e)&&(this.persistedJson.active=void 0),this.persistedJson.lastClosedTab={index:t,tab:this.persistedJson.tabConfig[e]},delete this.persistedJson.tabConfig[e],this.toStorage()}},{key:\"registerListeners\",value:function(){var e=this;this.yasgui.on(\"tabChange\",(function(t,n){e.persistedJson.tabConfig[n.getId()]=n.getPersistedJson(),e.toStorage()})),this.yasgui.on(\"endpointHistoryChange\",(function(t,n){e.persistedJson.endpointHistory=n,e.toStorage()}))}},{key:\"toStorage\",value:function(){this.storage.set(this.storageId,this.persistedJson,this.yasgui.config.persistencyExpire,this.handleLocalStorageQuotaFull)}},{key:\"fromStorage\",value:function(){return this.persistedJson=this.storage.get(this.storageId)||{endpointHistory:[],tabs:[],active:void 0,tabConfig:{},lastClosedTab:void 0},this.persistedJson.endpointHistory||(this.persistedJson.endpointHistory=[]),this.persistedJson}},{key:\"handleLocalStorageQuotaFull\",value:function(t){console.warn(\"Localstorage quota exceeded. Clearing all YASGUI configurations\"),e.clear()}},{key:\"getTabs\",value:function(){return this.persistedJson.tabs}},{key:\"getTab\",value:function(e){return this.persistedJson.tabConfig[e]}},{key:\"setTab\",value:function(e,t){this.persistedJson.tabs.push(e),this.persistedJson.tabConfig[e]=t,this.persistedJson.active=e}},{key:\"tabIsActive\",value:function(e){return e===this.persistedJson.active}},{key:\"currentId\",value:function(){return this.persistedJson.active}}],[{key:\"clear\",value:function(){new b.wc(\"triply\").removeNamespace()}}])}(),T=__webpack_require__(3322),A=__webpack_require__(232),S=__webpack_require__.n(A),L=__webpack_require__(9736),N=__webpack_require__(8272);const C=function(e,t){return(0,N.A)(t,(function(t){return[t,e[t]]}))};var I=__webpack_require__(4889),_=__webpack_require__(6825);const R=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=[e,e]})),n};const w=function(e){return function(t){var n=(0,I.A)(t);return\"[object Map]\"==n?(0,_.A)(t):\"[object Set]\"==n?R(t):C(t,e(t))}}(c.A);const O=function(e){for(var t=-1,n=null==e?0:e.length,r={};++t<n;){var i=e[t];r[i[0]]=i[1]}return r};function D(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return P(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?P(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var k=[{key:\"JSON\",value:\"application/sparql-results+json\"},{key:\"XML\",value:\"application/sparql-results+xml\"},{key:\"CSV\",value:\"text/csv\"},{key:\"TSV\",value:\"text/tab-separated-values\"}],M=[{key:\"Turtle\",value:\"text/turtle\"},{key:\"JSON\",value:\"application/rdf+json\"},{key:\"RDF/XML\",value:\"application/rdf+xml\"},{key:\"TriG\",value:\"application/trig\"},{key:\"N-Triples\",value:\"application/n-triples\"},{key:\"N-Quads\",value:\"application/n-quads\"},{key:\"CSV\",value:\"text/csv\"},{key:\"TSV\",value:\"text/tab-separated-values\"}],F=function(){return(0,n.A)((function e(n,r,i){(0,t.A)(this,e),this.tab=n,this.rootEl=r,this.isOpen=!1,this.init(i)}),[{key:\"init\",value:function(e){var t=this;this.settingsButton=document.createElement(\"button\"),this.toggleAriaSettings(),this.settingsButton.appendChild((0,b.Mg)('<svg width=\"100.06\" height=\"100.05\" data-name=\"Layer 1\" version=\"1.1\" viewBox=\"0 0 100.06 100.05\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\\n        <metadata>\\n         <rdf:RDF>\\n          <cc:Work rdf:about=\"\">\\n           <dc:format>image/svg+xml</dc:format>\\n           <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\\n           <dc:title>Settings</dc:title>\\n          </cc:Work>\\n         </rdf:RDF>\\n        </metadata>\\n        <title>Settings</title>\\n        <path d=\"m95.868 58.018-3-3.24a42.5 42.5 0 0 0 0-9.43l3-3.22c1.79-1.91 5-4.44 4-6.85l-4.11-10c-1-2.41-5.08-1.91-7.69-2l-4.43-0.16a43.24 43.24 0 0 0-6.64-6.66l-0.14-4.43c-0.08-2.6 0.43-6.69-2-7.69l-10-4.15c-2.4-1-4.95 2.25-6.85 4l-3.23 3a42.49 42.49 0 0 0-9.44 0l-3.21-3c-1.9-1.78-4.44-5-6.85-4l-10 4.11c-2.41 1-1.9 5.09-2 7.69l-0.16 4.42a43.24 43.24 0 0 0-6.67 6.65l-4.42 0.14c-2.6 0.08-6.69-0.43-7.69 2l-4.15 10c-1 2.4 2.25 4.94 4 6.84l3 3.23a42.49 42.49 0 0 0 0 9.44l-3 3.22c-1.78 1.9-5 4.43-4 6.84l4.11 10c1 2.41 5.09 1.91 7.7 2l4.41 0.15a43.24 43.24 0 0 0 6.66 6.68l0.13 4.41c0.08 2.6-0.43 6.7 2 7.7l10 4.15c2.4 1 4.94-2.25 6.84-4l3.24-3a42.5 42.5 0 0 0 9.42 0l3.22 3c1.91 1.79 4.43 5 6.84 4l10-4.11c2.41-1 1.91-5.08 2-7.7l0.15-4.42a43.24 43.24 0 0 0 6.68-6.65l4.42-0.14c2.6-0.08 6.7 0.43 7.7-2l4.15-10c1.04-2.36-2.22-4.9-3.99-6.82zm-45.74 15.7c-12.66 0-22.91-10.61-22.91-23.7s10.25-23.7 22.91-23.7 22.91 10.61 22.91 23.7-10.25 23.7-22.91 23.7z\"/>\\n       </svg>')),(0,b.iQ)(this.settingsButton,\"tabContextButton\"),e.appendChild(this.settingsButton),this.settingsButton.onclick=function(e){t.open(e)},this.menuElement=document.createElement(\"div\"),(0,b.iQ)(this.menuElement,\"tabMenu\"),e.appendChild(this.menuElement),this.menuElement.onclick=function(e){return e.stopImmediatePropagation(),!1},this.drawBody()}},{key:\"updateBody\",value:function(){var e=this.tab.getRequestConfig();\"function\"!=typeof e.method&&this.setRequestMethod(e.method),this.setAcceptHeader_select(e.acceptHeaderSelect),this.setAcceptHeader_graph(e.acceptHeaderGraph),\"function\"!=typeof e.args&&this.setArguments((0,T.A)(e.args||[])),\"function\"!=typeof e.headers&&this.setHeaders(w(e.headers).map((function(e){var t=(0,L.A)(e,2);return{name:t[0],value:t[1]}}))),\"function\"!=typeof e.defaultGraphs&&this.setDefaultGraphs((0,T.A)(e.defaultGraphs||[])),\"function\"!=typeof e.namedGraphs&&this.setNamedGraphs((0,T.A)(e.namedGraphs||[]))}},{key:\"open\",value:function(e){var t=this;if(!this.isOpen){this.updateBody(),this.isOpen=!0,(0,b.iQ)(this.menuElement,\"open\"),this.toggleAriaSettings();var n=function(e){for(var r=e.target;window.MSInputMethodContext&&document.documentMode&&r.parentElement;){if(-1!==r.className.indexOf(\"tabMenu\"))return!1;r=r.parentElement}return t.close(e),document.removeEventListener(\"click\",n,!0),!1};document.addEventListener(\"click\",n,{once:!0}),e.stopImmediatePropagation()}}},{key:\"close\",value:function(e){this.isOpen&&(this.isOpen=!1,(0,b.vy)(this.menuElement,\"open\"),this.toggleAriaSettings())}},{key:\"toggleAriaSettings\",value:function(){this.settingsButton.setAttribute(\"aria-label\",this.isOpen?\"Close settings\":\"Open settings\"),this.settingsButton.setAttribute(\"aria-expanded\",\"\".concat(this.isOpen))}},{key:\"drawRequestMethodSelector\",value:function(){var e=this,t=document.createElement(\"div\");(0,b.iQ)(t,\"requestConfigWrapper\"),j(\"Request method\",t);var n=document.createElement(\"button\");(0,b.iQ)(n,\"selectorButton\"),n.innerText=\"GET\";var r=document.createElement(\"button\");(0,b.iQ)(r,\"selectorButton\"),r.innerText=\"POST\",(0,b.iQ)(\"GET\"===this.tab.getRequestConfig().method?n:r,\"selected\"),this.setRequestMethod=function(e){\"GET\"===e?((0,b.iQ)(n,\"selected\"),(0,b.vy)(r,\"selected\")):\"POST\"===e&&((0,b.iQ)(r,\"selected\"),(0,b.vy)(n,\"selected\"))},n.onclick=function(){e.tab.setRequestConfig({method:\"GET\"}),e.setRequestMethod(\"GET\")},r.onclick=function(){e.tab.setRequestConfig({method:\"POST\"}),e.setRequestMethod(\"POST\")},t.appendChild(n),t.appendChild(r),this.menuElement.appendChild(t)}},{key:\"drawAcceptSelector\",value:function(){var e=this,t=document.createElement(\"div\");(0,b.iQ)(t,\"requestConfigWrapper\",\"acceptWrapper\"),j(\"Accept Headers\",t),this.setAcceptHeader_select=B(k,(function(t){e.tab.setRequestConfig({acceptHeaderSelect:t.target.value})}),\"Ask / Select\",t),this.setAcceptHeader_graph=B(M,(function(t){e.tab.setRequestConfig({acceptHeaderGraph:t.target.value})}),\"Construct / Describe\",t),this.menuElement.appendChild(t)}},{key:\"drawArgumentsInput\",value:function(){var e=this,t=function(){var t=[];n.querySelectorAll(\".textRow\").forEach((function(e){var n=(0,L.A)(e.children,2),r=n[0],i=n[1];r instanceof HTMLInputElement&&i instanceof HTMLInputElement&&r.value.length&&t.push({name:r.value,value:i.value})})),e.tab.setRequestConfig({args:t})},n=document.createElement(\"div\");(0,b.iQ)(n,\"requestConfigWrapper\",\"textSetting\"),j(\"Arguments\",n),this.menuElement.appendChild(n),this.setArguments=function(r){n.querySelectorAll(\".textRow\").forEach((function(e){n.removeChild(e)}));for(var i=function(i){H((function(){r.splice(i,1),e.tab.setRequestConfig({args:r}),e.setArguments(r)}),z(n,i,r,t))},o=0;o<r.length;o++)i(o);W(n,r,t)}}},{key:\"drawHeaderInput\",value:function(){var e=this,t=function(){var t={};n.querySelectorAll(\".textRow\").forEach((function(e){var n=(0,L.A)(e.children,2),r=n[0],i=n[1];r instanceof HTMLInputElement&&i instanceof HTMLInputElement&&r.value.length&&(t[r.value]=i.value)})),e.tab.setRequestConfig({headers:t})},n=document.createElement(\"div\");(0,b.iQ)(n,\"requestConfigWrapper\",\"textSetting\");var r=j(\"Header Arguments\");n.appendChild(r),this.menuElement.appendChild(n),this.setHeaders=function(r){n.querySelectorAll(\".textRow\").forEach((function(e){n.removeChild(e)}));for(var i=function(i){H((function(){r.splice(i,1),e.tab.setRequestConfig({headers:O(r.map((function(e){return[e.name,e.value]})))}),e.setHeaders(r)}),z(n,i,r,t))},o=0;o<r.length;o++)i(o);W(n,r,t)}}},{key:\"drawDefaultGraphInput\",value:function(){var e=this,t=document.createElement(\"div\");(0,b.iQ)(t,\"requestConfigWrapper\",\"textSetting\");var n=j(\"Default Graphs\");t.appendChild(n),this.menuElement.appendChild(t);var r=function(){var n=[];t.querySelectorAll(\".graphInput\").forEach((function(e){var t=(0,L.A)(e.children,1)[0];t instanceof HTMLInputElement&&t.value.length&&n.push(t.value)})),e.tab.setRequestConfig({defaultGraphs:n})};this.setDefaultGraphs=function(e){t.querySelectorAll(\".graphInput\").forEach((function(e){t.removeChild(e)}));for(var n=function(n){H((function(){return e[n]=void 0}),V(t,n,e,r))},i=0;i<e.length;i++)n(i);q(t,e,r)}}},{key:\"drawNamedGraphInput\",value:function(){var e=this,t=document.createElement(\"div\");(0,b.iQ)(t,\"requestConfigWrapper\",\"textSetting\");var n=j(\"Named Graphs\");t.appendChild(n),this.menuElement.appendChild(t);var r=function(){var n=[];t.querySelectorAll(\".graphInput\").forEach((function(e){var t=(0,L.A)(e.children,1)[0];t instanceof HTMLInputElement&&t.value.length&&n.push(t.value)})),e.tab.setRequestConfig({namedGraphs:n})};this.setNamedGraphs=function(e){t.querySelectorAll(\".graphInput\").forEach((function(e){t.removeChild(e)}));for(var n=function(n){H((function(){return e[n]=void 0}),V(t,n,e,r))},i=0;i<e.length;i++)n(i);q(t,e,r)}}},{key:\"drawBody\",value:function(){this.drawRequestMethodSelector(),this.drawAcceptSelector(),this.drawArgumentsInput(),this.drawHeaderInput(),this.drawDefaultGraphInput(),this.drawNamedGraphInput()}},{key:\"destroy\",value:function(){for(this.settingsButton.onclick=null,this.menuElement.onclick=null;this.menuElement.firstChild;)this.menuElement.firstChild.remove();this.menuElement.remove()}}])}();function B(e,t,n,r){var i=document.createElement(\"div\");(0,b.iQ)(i,\"selector\");var o=j(n,i);(0,b.iQ)(o,\"selectorLabel\");var a=document.createElement(\"select\");a.onchange=t,i.appendChild(a);var s=e.map((function(e){return function(e,t){var n=document.createElement(\"option\");return n.textContent=e.key,n.value=e.value,t.appendChild(n),n}(e,a)}));return r.appendChild(i),function(e){if(\"string\"==typeof e){var t,n=D(s);try{for(n.s();!(t=n.n()).done;){var r=t.value;r.selected=r.value===e}}catch(e){n.e(e)}finally{n.f()}}}}function G(e){var t,n=[],r=D(e.getElementsByTagName(\"input\"));try{for(r.s();!(t=r.n()).done;){var i=t.value;n.push(i.value)}}catch(e){r.e(e)}finally{r.f()}return n}function j(e,t){var n=document.createElement(\"label\");return(0,b.iQ)(n,\"label\"),n.innerText=e,t&&t.appendChild(n),n}function U(e,t){var n=document.createElement(\"input\");return n.type=\"text\",n.value=e||\"\",t&&t.appendChild(n),n}function H(e,t){var n=document.createElement(\"button\");return n.textContent=\"X\",(0,b.iQ)(n,\"removeButton\"),t&&t.appendChild(n),n.onclick=function(t){var n;e(),null===(n=t.target.parentElement)||void 0===n||n.remove()},n}function q(e,t,n){var r=e.querySelector(\".graphInput:last-of-type\");if(!r||\"\"!==G(r)[0]||0!==r.getElementsByTagName(\"button\").length){var i=t.length;V(e,i,t,n),r&&0===r.getElementsByTagName(\"button\").length&&H((function(){return t[i-1]=void 0}),r)}}function V(e,t,n,r){var i=document.createElement(\"div\");return(0,b.iQ)(i,\"graphInput\"),U(n[t]||\"\",i).onkeyup=function(i){var o=i.target;n[t]?n[t]=o.value:n.push(o.value),q(e,n,r)},i.onblur=r,e.appendChild(i),i}function W(e,t,n){var r=e.querySelector(\".textRow:last-of-type\");if(!r||0!==G(r).filter((function(e){return e})).length){var i=t.length;z(e,i,t,n),r&&0===r.getElementsByTagName(\"button\").length&&H((function(){return t[i-1]=void 0}),r)}}function z(e,t,n,r){var i=document.createElement(\"div\");(0,b.iQ)(i,\"textRow\");var o=n[t],a=U(o?o.name:\"\",i),s=U(o?o.value:\"\",i);return a.onkeyup=function(i){var o=n[t];o?o.name=i.target.value:n.push({name:i.target.value,value:\"\"}),W(e,n,r)},a.onblur=r,s.onkeyup=function(i){var o=n[t];o?o.value=i.target.value:n.push({value:i.target.value,name:\"\"}),W(e,n,r)},s.onblur=r,e.appendChild(i),i}var Q=__webpack_require__(7348),X=__webpack_require__(7204);const $=(0,__webpack_require__(4043).A)((function(e,t,n,r){(0,X.A)(e,t,n,r)}));var Y=__webpack_require__(946),K=__webpack_require__(3653);const J=function(e,t,n,r){return(0,K.A)(e,(function(e,i,o){t(r,n(e),i,o)})),r};const Z=function(e,t){return function(n,r){return J(n,e,t(r),{})}};var ee=__webpack_require__(1100),te=Object.prototype.toString;const ne=Z((function(e,t,n){null!=t&&\"function\"!=typeof t.toString&&(t=te.call(t)),e[t]=n}),(0,Y.A)(ee.A));var re=__webpack_require__(5200),ie=/[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;const oe=function(e){return e.match(ie)||[]};var ae=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;const se=function(e){return ae.test(e)};var le=__webpack_require__(2965),ue=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\\\\u2000-\\\\u206f \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",ce=\"[\"+ue+\"]\",pe=\"\\\\d+\",de=\"[\\\\u2700-\\\\u27bf]\",fe=\"[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]\",he=\"[^\\\\ud800-\\\\udfff\"+ue+pe+\"\\\\u2700-\\\\u27bfa-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xffA-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",ge=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",me=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",ve=\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",Ee=\"(?:\"+fe+\"|\"+he+\")\",ye=\"(?:\"+ve+\"|\"+he+\")\",be=\"(?:[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]|\\\\ud83c[\\\\udffb-\\\\udfff])?\",xe=\"[\\\\ufe0e\\\\ufe0f]?\"+be+(\"(?:\\\\u200d(?:\"+[\"[^\\\\ud800-\\\\udfff]\",ge,me].join(\"|\")+\")[\\\\ufe0e\\\\ufe0f]?\"+be+\")*\"),Te=\"(?:\"+[de,ge,me].join(\"|\")+\")\"+xe,Ae=RegExp([ve+\"?\"+fe+\"+(?:['’](?:d|ll|m|re|s|t|ve))?(?=\"+[ce,ve,\"$\"].join(\"|\")+\")\",ye+\"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=\"+[ce,ve+Ee,\"$\"].join(\"|\")+\")\",ve+\"?\"+Ee+\"+(?:['’](?:d|ll|m|re|s|t|ve))?\",ve+\"+(?:['’](?:D|LL|M|RE|S|T|VE))?\",\"\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])\",\"\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])\",pe,Te].join(\"|\"),\"g\");const Se=function(e){return e.match(Ae)||[]};const Le=function(e,t,n){return e=(0,le.A)(e),void 0===(t=n?void 0:t)?se(e)?Se(e):oe(e):e.match(t)||[]};const Ne=(0,__webpack_require__(4636).A)({\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"Ç\":\"C\",\"ç\":\"c\",\"Ð\":\"D\",\"ð\":\"d\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"Ñ\":\"N\",\"ñ\":\"n\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"Ý\":\"Y\",\"ý\":\"y\",\"ÿ\":\"y\",\"Æ\":\"Ae\",\"æ\":\"ae\",\"Þ\":\"Th\",\"þ\":\"th\",\"ß\":\"ss\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ą\":\"A\",\"ā\":\"a\",\"ă\":\"a\",\"ą\":\"a\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"Ď\":\"D\",\"Đ\":\"D\",\"ď\":\"d\",\"đ\":\"d\",\"Ē\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ę\":\"E\",\"Ě\":\"E\",\"ē\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ę\":\"e\",\"ě\":\"e\",\"Ĝ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ģ\":\"G\",\"ĝ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ģ\":\"g\",\"Ĥ\":\"H\",\"Ħ\":\"H\",\"ĥ\":\"h\",\"ħ\":\"h\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"Į\":\"I\",\"İ\":\"I\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"į\":\"i\",\"ı\":\"i\",\"Ĵ\":\"J\",\"ĵ\":\"j\",\"Ķ\":\"K\",\"ķ\":\"k\",\"ĸ\":\"k\",\"Ĺ\":\"L\",\"Ļ\":\"L\",\"Ľ\":\"L\",\"Ŀ\":\"L\",\"Ł\":\"L\",\"ĺ\":\"l\",\"ļ\":\"l\",\"ľ\":\"l\",\"ŀ\":\"l\",\"ł\":\"l\",\"Ń\":\"N\",\"Ņ\":\"N\",\"Ň\":\"N\",\"Ŋ\":\"N\",\"ń\":\"n\",\"ņ\":\"n\",\"ň\":\"n\",\"ŋ\":\"n\",\"Ō\":\"O\",\"Ŏ\":\"O\",\"Ő\":\"O\",\"ō\":\"o\",\"ŏ\":\"o\",\"ő\":\"o\",\"Ŕ\":\"R\",\"Ŗ\":\"R\",\"Ř\":\"R\",\"ŕ\":\"r\",\"ŗ\":\"r\",\"ř\":\"r\",\"Ś\":\"S\",\"Ŝ\":\"S\",\"Ş\":\"S\",\"Š\":\"S\",\"ś\":\"s\",\"ŝ\":\"s\",\"ş\":\"s\",\"š\":\"s\",\"Ţ\":\"T\",\"Ť\":\"T\",\"Ŧ\":\"T\",\"ţ\":\"t\",\"ť\":\"t\",\"ŧ\":\"t\",\"Ũ\":\"U\",\"Ū\":\"U\",\"Ŭ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ų\":\"U\",\"ũ\":\"u\",\"ū\":\"u\",\"ŭ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"ź\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"Ĳ\":\"IJ\",\"ĳ\":\"ij\",\"Œ\":\"Oe\",\"œ\":\"oe\",\"ŉ\":\"'n\",\"ſ\":\"s\"});var Ce=/[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g,Ie=RegExp(\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",\"g\");const _e=function(e){return(e=(0,le.A)(e))&&e.replace(Ce,Ne).replace(Ie,\"\")};var Re=__webpack_require__(4360);function we(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return Oe(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Oe(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function Oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var De=__webpack_require__(1540),Pe=function(e){var t=!1;e||(e=window.location.href,t=!0);var n=new De(e);return n.anchor().length>0&&(n.query(n.anchor()),t&&(window.location.hash=\"\")),n};function ke(e,t){var n=new De(e);for(var r in t){var i=t[r];if(Array.isArray(i)){var o,a=we(i);try{for(a.s();!(o=a.n()).done;){var s=o.value;n.addQueryParam(r,s)}}catch(e){a.e(e)}finally{a.f()}}else n.addQueryParam(r,i)}return n.toString()}function Me(e,t){var n,r=new De(e),i=new De,o=Fe(t);for(n in o)if(o.hasOwnProperty(n))if(\"namedGraphs\"===n)o.namedGraphs.forEach((function(e){return i.addQueryParam(\"namedGraph\",e)}));else if(\"defaultGraphs\"===n)o.defaultGraphs.forEach((function(e){return i.addQueryParam(\"defaultGraph\",e)}));else if(\"args\"===n){(0,b._A)(o.args,t.yasgui).forEach((function(e){return i.addQueryParam(e.name,e.value)}))}else\"object\"===(0,Re.A)(o[n])?o[n]&&i.addQueryParam(n,JSON.stringify(o[n])):o[n]&&i.addQueryParam(n,o[n]);return Pe(e).queryPairs.forEach((function(e){i.hasQueryParam(e[0])||i.addQueryParam(e[0],e[1])})),r.anchor(i.query().substr(1)),r.toString()}function Fe(e){var t=e.yasgui,n=e.getRequestConfig(),r=e.getPersistedJson().yasr.settings;return{query:e.getQuery(),endpoint:e.getEndpoint(),requestMethod:(0,b._A)(n.method,t),tabTitle:e.getName(),headers:(0,b._A)(n.headers,t),contentTypeConstruct:(0,b._A)(n.acceptHeaderGraph,t),contentTypeSelect:(0,b._A)(n.acceptHeaderSelect,t),args:(0,b._A)(n.args,t),namedGraphs:(0,b._A)(n.namedGraphs,t),defaultGraphs:(0,b._A)(n.defaultGraphs,t),outputFormat:r.selectedPlugin,outputSettings:r.pluginsConfig&&r.selectedPlugin?r.pluginsConfig[r.selectedPlugin]:void 0}}function Be(e,t){var n,r=e,i=Pe(t),o=!1;if(i.queryPairs.forEach((function(e){var t=(0,L.A)(e,2),i=t[0],a=t[1];\"query\"===i?(o=!0,r.yasqe.value=a):\"outputFormat\"===i&&a.length?E.default.plugins[a]?r.yasr.settings.selectedPlugin=a:console.warn('Output format plugin \"'.concat(a,'\" not found')):\"outputSettings\"==i?n=JSON.parse(a):\"contentTypeConstruct\"==i?r.requestConfig.acceptHeaderGraph=a:\"contentTypeSelect\"==i?r.requestConfig.acceptHeaderSelect=a:\"endpoint\"==i?r.requestConfig.endpoint=a:\"requestMethod\"==i?r.requestConfig.method=a:\"tabTitle\"==i?r.name=a:\"namedGraph\"==i?(Array.isArray(r.requestConfig.namedGraphs)||(r.requestConfig.namedGraphs=[]),r.requestConfig.namedGraphs.push(a)):\"defaultGraph\"==i?(Array.isArray(r.requestConfig.defaultGraphs)||(r.requestConfig.defaultGraphs=[]),r.requestConfig.defaultGraphs.push(a)):\"headers\"==i?(r.requestConfig.headers||(r.requestConfig.headers={}),r.requestConfig.headers=JSON.parse(a)):(r.requestConfig.args||(r.requestConfig.args=[]),r.requestConfig.args.push({name:i,value:a}))})),n&&r.yasr.settings.selectedPlugin&&r.yasr.settings.pluginsConfig&&(r.yasr.settings.pluginsConfig[r.yasr.settings.selectedPlugin]=n),o)return r}function Ge(e,t){var n=t||ht.getDefaults();return e.service&&(n.requestConfig.endpoint=e.service),e.requestConfig&&(e.requestConfig.payload&&(e.requestConfig.payload.query&&(n.yasqe.value=e.requestConfig.payload.query),e.requestConfig.payload[\"default-graph-uri\"]&&(n.requestConfig.defaultGraphs=Array.isArray(e.requestConfig.payload[\"default-graph-uri\"])?e.requestConfig.payload[\"default-graph-uri\"]:[e.requestConfig.payload[\"default-graph-uri\"]]),e.requestConfig.payload[\"named-graph-uri\"]&&(n.requestConfig.namedGraphs=Array.isArray(e.requestConfig.payload[\"named-graph-uri\"])?e.requestConfig.payload[\"named-graph-uri\"]:[e.requestConfig.payload[\"named-graph-uri\"]])),e.requestConfig.headers&&(n.requestConfig.headers=e.requestConfig.headers)),e.renderConfig&&(e.renderConfig.output&&(E.default.plugins[e.renderConfig.output]?n.yasr.settings.selectedPlugin=e.renderConfig.output:console.warn('Output format plugin \"'.concat(e.renderConfig.output,'\" not found'))),e.renderConfig.settings&&(E.default.plugins[e.renderConfig.output]&&n.yasr.settings.pluginsConfig?n.yasr.settings.pluginsConfig[e.renderConfig.output]=e.renderConfig.settings:console.warn('Output format plugin \"'.concat(e.renderConfig.output,'\" not found, cannot apply settings')))),e.name&&(n.name=e.name),n}var je=__webpack_require__(2980),Ue=__webpack_require__.n(je),He=__webpack_require__(6074),qe=__webpack_require__(7903),Ve=__webpack_require__(8563),We=__webpack_require__(3869),ze=__webpack_require__(6809),Qe=__webpack_require__(761);const Xe=function(e,t,n,r){if(!(0,ze.A)(e))return e;for(var i=-1,o=(t=(0,Ve.A)(t,e)).length,a=o-1,s=e;null!=s&&++i<o;){var l=(0,Qe.A)(t[i]),u=n;if(\"__proto__\"===l||\"constructor\"===l||\"prototype\"===l)return e;if(i!=a){var c=s[l];void 0===(u=r?r(c,l,s):void 0)&&(u=(0,ze.A)(c)?c:(0,We.A)(t[i+1])?[]:{})}(0,qe.A)(s,l,u),s=s[l]}return e};const $e=function(e,t,n){for(var r=-1,i=t.length,o={};++r<i;){var a=t[r],s=(0,He.A)(e,a);n(s,a)&&Xe(o,(0,Ve.A)(a,e),s)}return o};var Ye=__webpack_require__(6928);const Ke=function(e,t){return $e(e,t,(function(t,n){return(0,Ye.A)(e,n)}))};var Je=__webpack_require__(4560);const Ze=function(e){return(null==e?0:e.length)?(0,Je.A)(e,1):[]};var et=__webpack_require__(4858),tt=__webpack_require__(9430);const nt=function(e){return(0,tt.A)((0,et.A)(e,void 0,Ze),e+\"\")}((function(e,t){return null==e?{}:Ke(e,t)}));var rt=__webpack_require__(7371),it=__webpack_require__.n(rt),ot=__webpack_require__(9418);function at(e,t,n){return t=(0,i.A)(t),(0,r.A)(e,function(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return function(){return!!e}()}()?Reflect.construct(t,n||[],(0,i.A)(e).constructor):t.apply(e,n))}var st=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};__webpack_require__(2144);var lt=ot.A.sanitize;function ut(e){return e.match(/\\S+/g)||[]}function ct(e,t){return ut(t).reduce((function(t,n){if(!n.length)return t;var r=n.length,i=e.indexOf(n);return i>-1&&(t.push([i,i+r]),e=e.slice(0,i)+new Array(r+1).join(\" \")+e.slice(i+r)),t}),[]).sort((function(e,t){return e[0]-t[0]}))}const pt=function(e){function r(e,n,i,o){var a;return(0,t.A)(this,r),(a=at(this,r)).clearListSuggestionList=function(){var e=a.container.querySelector(\".autocompleteList\");e&&(e.innerHTML=\"\")},a.container=n,a.options=i,a.value=e,a.history=o.map((function(e){return{endpoint:lt(e),type:\"history\"}})),a.options.keys.indexOf(\"endpoint\")<=0&&a.options.keys.push(\"endpoint\"),a.draw(),a}return(0,o.A)(r,e),(0,n.A)(r,[{key:\"draw\",value:function(){var e=this,t=document.createElement(\"div\");(0,b.iQ)(t,\"autocompleteWrapper\"),this.container.appendChild(t),this.inputField=document.createElement(\"input\"),(0,b.iQ)(this.inputField,\"autocomplete\"),this.inputField.value=this.value,t.appendChild(this.inputField);var n=document.createElement(\"button\");n.title=\"Clear endpoint\",(0,b.iQ)(n,\"clearEndpointBtn\"),n.innerText=\"✖\",n.addEventListener(\"click\",(function(){e.inputField.value=\"\",e.inputField.focus()})),this.container.appendChild(n),new(Ue())({placeholder:\"Search or add an endpoint\",highlight:!1,maxResults:100,trigger:{event:[\"input\",\"focusin\"],condition:function(){return!0}},searchEngine:function(e,t){return!e||0===e.trim().length||ut(e).every((function(e){return t.indexOf(e)>=0}))},data:{src:function(){return st(e,void 0,void 0,S().mark((function e(){var t=this;return S().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(\"return\",[].concat((0,T.A)(this.history),(0,T.A)(this.options.getData())).map((function(e){return Object.assign(Object.assign({},e),{all:Object.values(nt(e,[\"endpoint\"].concat((0,T.A)(t.options.keys)))).join(\" \")})})));case 1:case\"end\":return e.stop()}}),e,this)})))},key:[\"all\"],cache:!1},selector:function(){return e.inputField},resultsList:{render:!0,destination:this.inputField,container:function(e){e.id=\"\",(0,b.iQ)(e,\"autocompleteList\")}},resultItem:{content:function(t,n){var r=lt(t.value.endpoint);if(t.value.type&&\"history\"===t.value.type){var i=document.createElement(\"div\");i.innerHTML=it()(r,ct(r,e.inputField.value)).reduce((function(e,t){return t.highlight?e+t.text.bold():e+t.text}),\"\"),n.append(i);var o=document.createElement(\"button\");o.textContent=\"✖\",(0,b.iQ)(o,\"removeItem\"),o.addEventListener(\"mousedown\",(function(t){e.history=e.history.filter((function(e){return e.endpoint!==r})),e.emit(\"remove\",e.value,e.history.map((function(e){return e.endpoint}))),n.remove(),t.stopPropagation()})),n.appendChild(o)}else{for(var a={matches:{}},s=0,l=(0,T.A)(e.options.keys);s<l.length;s++){var u=l[s],c=t.value[u];c&&(a.matches[u]=it()(c,ct(c,e.inputField.value)))}e.options.renderItem(Object.assign(Object.assign({},t),a),n)}},element:\"li\"},onSelection:function(t){var n=t.selection.value;e.value=n.endpoint,e.inputField.value=e.value,e.emit(\"select\",e.value,e.history.map((function(e){return e.endpoint})))},noResults:function(){var t=e.container.querySelector(\".autocompleteList\");if(t){var n=document.createElement(\"div\");(0,b.iQ)(n,\"noResults\"),n.innerText='Press \"enter\" to add this endpoint',t.appendChild(n)}}}),this.inputField.addEventListener(\"keyup\",(function(t){var n=t.target;if(13===t.keyCode){if(e.value===n.value)return e.clearListSuggestionList(),void e.inputField.blur();if(!n.value||!n.value.trim())return e.clearListSuggestionList(),void e.inputField.blur();if(e.options.getData().find((function(t){return t.endpoint===e.inputField.value}))||e.history.find((function(t){return t.endpoint===e.inputField.value})))return e.value=n.value,e.clearListSuggestionList(),e.emit(\"select\",e.value,e.history.map((function(e){return e.endpoint}))),void e.inputField.blur();e.value=n.value,e.history.push({endpoint:n.value,type:\"history\"}),e.emit(\"select\",e.value,e.history.map((function(e){return e.endpoint}))),e.clearListSuggestionList(),e.inputField.blur()}if(27===t.keyCode&&(e.inputField.blur(),e.inputField.value=e.value,e.clearListSuggestionList()),38===t.keyCode||40===t.keyCode){t.stopPropagation();var r=e.container.querySelector(\".autocompleteList .autoComplete_result.autoComplete_selected\");r&&!function(e){var t=e.getBoundingClientRect(),n=t.top,r=t.bottom;if(r<0)return!1;if(n>document.documentElement.clientHeight)return!1;var i=e.parentNode.getBoundingClientRect();return r<=i.bottom!=!1&&!(n<=i.top)}(r)&&r.scrollIntoView(!1)}})),this.inputField.addEventListener(\"blur\",(function(t){t.target.className===e.inputField.className&&t.relatedTarget&&(e.clearListSuggestionList(),e.inputField.value=e.value)})),document.addEventListener(\"mousedown\",(function(t){if(2!==t.button){var n=t.target;if(\"removeItem\"===n.className||\"autoComplete_result\"===n.className||\"autocomplete\"===n.className)return;e.clearListSuggestionList(),e.inputField.value=e.value}}))}},{key:\"setEndpoint\",value:function(e,t){this.value=e,t&&(this.history=t.map((function(e){return{endpoint:e,type:\"history\"}}))),this.inputField===document.activeElement?this.inputField.focus():this.inputField.value=e}},{key:\"destroy\",value:function(){this.removeAllListeners(),this.inputField.remove()}}])}(a.EventEmitter);function dt(e,t,n){return t=(0,i.A)(t),(0,r.A)(e,function(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return function(){return!!e}()}()?Reflect.construct(t,n||[],(0,i.A)(e).constructor):t.apply(e,n))}var ft=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function a(e){try{l(r.next(e))}catch(e){o(e)}}function s(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((r=r.apply(e,t||[])).next())}))};__webpack_require__(2276);const ht=function(e){function r(e,n){var i;if((0,t.A)(this,r),(i=dt(this,r)).handleYasqeBlur=function(e){i.persistentJson.yasqe.value=e.getValue(),i.emit(\"change\",i,i.persistentJson)},i.handleYasqeQuery=function(e){e.getValue()!==i.persistentJson.yasqe.value&&(i.persistentJson.yasqe.value=e.getValue(),i.emit(\"change\",i,i.persistentJson)),i.emit(\"query\",i)},i.handleYasqeQueryAbort=function(){i.emit(\"queryAbort\",i)},i.handleYasqeQueryBefore=function(){i.emit(\"queryBefore\",i)},i.handleYasqeResize=function(e,t){i.persistentJson.yasqe.editorHeight=t,i.emit(\"change\",i,i.persistentJson)},i.handleAutocompletionShown=function(e,t){i.emit(\"autocompletionShown\",i,t)},i.handleAutocompletionClose=function(e){i.emit(\"autocompletionClose\",i)},i.handleQueryResponse=function(e,t,n){if(i.emit(\"queryResponse\",i),!i.yasr)throw new Error(\"Resultset visualizer not initialized. Cannot draw results\");i.yasr.setResponse(t,n),i.yasr.results&&(i.yasr.results.hasError()?i.persistentJson.yasr.response=void 0:i.persistentJson.yasr.response=i.yasr.results.getAsStoreObject(i.yasgui.config.yasr.maxPersistentResponseSize),i.emit(\"change\",i,i.persistentJson))},!n||void 0===n.id)throw new Error(\"Expected a valid configuration to initialize tab with\");return i.yasgui=e,i.persistentJson=n,i}return(0,o.A)(r,e),(0,n.A)(r,[{key:\"name\",value:function(){return this.persistentJson.name}},{key:\"getPersistedJson\",value:function(){return this.persistentJson}},{key:\"getId\",value:function(){return this.persistentJson.id}},{key:\"draw\",value:function(){if(!this.rootEl){this.rootEl=document.createElement(\"div\"),this.rootEl.className=\"tabPanel\",this.rootEl.id=this.persistentJson.id,this.rootEl.setAttribute(\"role\",\"tabpanel\"),this.rootEl.setAttribute(\"aria-labelledby\",\"tab-\"+this.persistentJson.id);var e=document.createElement(\"div\");e.className=\"editorwrapper\";var t=document.createElement(\"div\");this.controlBarEl=document.createElement(\"div\"),this.controlBarEl.className=\"controlbar\",t.appendChild(this.controlBarEl),this.yasqeWrapperEl=document.createElement(\"div\"),t.appendChild(this.yasqeWrapperEl),e.appendChild(t),this.yasrWrapperEl=document.createElement(\"div\"),this.initTabSettingsMenu(),this.rootEl.appendChild(e),this.rootEl.appendChild(this.yasrWrapperEl),this.initControlbar(),this.initYasqe(),this.initYasr(),this.yasgui._setPanel(this.persistentJson.id,this.rootEl)}}},{key:\"hide\",value:function(){(0,b.vy)(this.rootEl,\"active\")}},{key:\"show\",value:function(){this.draw(),(0,b.iQ)(this.rootEl,\"active\"),this.yasgui.tabElements.selectTab(this.persistentJson.id),this.yasqe&&(this.yasqe.refresh(),this.yasgui.config.autofocus&&this.yasqe.focus()),this.yasr&&this.yasr.refresh(),this.setEndpoint(this.getEndpoint(),this.yasgui.persistentConfig.getEndpointHistory())}},{key:\"select\",value:function(){this.yasgui.selectTabId(this.persistentJson.id)}},{key:\"close\",value:function(){if(this.yasqe&&this.yasqe.abortQuery(),this.yasgui.getTab()===this){var e=this.yasgui.persistentConfig.getTabs(),t=e.indexOf(this.persistentJson.id);t>-1&&this.yasgui.selectTabId(e[t===e.length-1?t-1:t+1])}this.yasgui._removePanel(this.rootEl),this.yasgui.persistentConfig.deleteTab(this.persistentJson.id),this.yasgui.emit(\"tabClose\",this.yasgui,this),this.emit(\"close\",this),this.yasgui.tabElements.get(this.persistentJson.id).delete(),delete this.yasgui._tabs[this.persistentJson.id]}},{key:\"getQuery\",value:function(){var e;if(!this.yasqe)throw new Error(\"Cannot get value from uninitialized editor\");return null===(e=this.yasqe)||void 0===e?void 0:e.getValue()}},{key:\"setQuery\",value:function(e){if(!this.yasqe)throw new Error(\"Cannot set value for uninitialized editor\");return this.yasqe.setValue(e),this.persistentJson.yasqe.value=e,this.emit(\"change\",this,this.persistentJson),this}},{key:\"getRequestConfig\",value:function(){return this.persistentJson.requestConfig}},{key:\"initControlbar\",value:function(){this.initEndpointSelectField(),this.yasgui.config.endpointInfo&&this.controlBarEl&&this.controlBarEl.appendChild(this.yasgui.config.endpointInfo())}},{key:\"getYasqe\",value:function(){return this.yasqe}},{key:\"getYasr\",value:function(){return this.yasr}},{key:\"initTabSettingsMenu\",value:function(){if(!this.rootEl||!this.controlBarEl)throw new Error(\"Need to initialize wrapper elements before drawing tab pabel\");this.tabPanel=new F(this,this.rootEl,this.controlBarEl)}},{key:\"initEndpointSelectField\",value:function(){var e=this;if(!this.controlBarEl)throw new Error(\"Need to initialize wrapper elements before drawing endpoint field\");this.endpointSelect=new pt(this.getEndpoint(),this.controlBarEl,this.yasgui.config.endpointCatalogueOptions,this.yasgui.persistentConfig.getEndpointHistory()),this.endpointSelect.on(\"select\",(function(t,n){e.setEndpoint(t,n)})),this.endpointSelect.on(\"remove\",(function(t,n){e.setEndpoint(t,n)}))}},{key:\"checkEndpointForCors\",value:function(e){if(this.yasgui.config.corsProxy&&!(e in Ct.corsEnabled)){var t=new URL(e);t.searchParams.append(\"query\",\"ASK {?x ?y ?z}\"),fetch(t.toString()).then((function(){Ct.corsEnabled[e]=!0})).catch((function(t){Ct.corsEnabled[e]=!(t instanceof TypeError)}))}}},{key:\"setEndpoint\",value:function(e,t){return e&&(e=e.trim()),t&&!(0,Q.A)(t,this.yasgui.persistentConfig.getEndpointHistory())&&this.yasgui.emit(\"endpointHistoryChange\",this.yasgui,t),this.checkEndpointForCors(e),this.persistentJson.requestConfig.endpoint!==e&&(this.persistentJson.requestConfig.endpoint=e,this.emit(\"change\",this,this.persistentJson),this.emit(\"endpointChange\",this,e)),this.endpointSelect instanceof pt&&this.endpointSelect.setEndpoint(e,t),this}},{key:\"getEndpoint\",value:function(){return(0,b._A)(this.persistentJson.requestConfig.endpoint,this.yasgui)}},{key:\"updateContextMenu\",value:function(){this.getTabListEl().redrawContextMenu()}},{key:\"getShareableLink\",value:function(e){return Me(e||window.location.href,this)}},{key:\"getShareObject\",value:function(){return Fe(this)}},{key:\"getTabListEl\",value:function(){return this.yasgui.tabElements.get(this.persistentJson.id)}},{key:\"setName\",value:function(e){return this.getTabListEl().rename(e),this.persistentJson.name=e,this.emit(\"change\",this,this.persistentJson),this}},{key:\"hasResults\",value:function(){var e;return!!(null===(e=this.yasr)||void 0===e?void 0:e.results)}},{key:\"getName\",value:function(){return this.persistentJson.name}},{key:\"query\",value:function(){return this.yasqe?this.yasqe.query():Promise.reject(new Error(\"No yasqe editor initialized\"))}},{key:\"setRequestConfig\",value:function(e){this.persistentJson.requestConfig=Object.assign(Object.assign({},this.persistentJson.requestConfig),e),this.emit(\"change\",this,this.persistentJson)}},{key:\"getStaticRequestConfig\",value:function(){var e,t={};for(e in this.yasgui.config.requestConfig)if(\"adjustQueryBeforeRequest\"!==e){var n=this.yasgui.config.requestConfig[e];\"function\"==typeof n&&(t[e]=n(this.yasgui))}return t}},{key:\"initYasqe\",value:function(){var e=this,t=Object.assign(Object.assign({},this.yasgui.config.yasqe),{value:this.persistentJson.yasqe.value,editorHeight:this.persistentJson.yasqe.editorHeight?this.persistentJson.yasqe.editorHeight:void 0,persistenceId:null,consumeShareLink:null,createShareableLink:function(){return e.getShareableLink()},requestConfig:function(){var t=Object.assign(Object.assign({acceptHeaderGraph:\"text/turtle\",acceptHeaderSelect:\"application/sparql-results+json\"},$({},e.persistentJson.requestConfig,e.getStaticRequestConfig(),(function(e,t){if(Array.isArray(e)||Array.isArray(t))return[].concat((0,T.A)(e||[]),(0,T.A)(t||[]))}))),{adjustQueryBeforeRequest:e.yasgui.config.requestConfig.adjustQueryBeforeRequest});return e.yasgui.config.corsProxy&&!Ct.corsEnabled[e.getEndpoint()]?Object.assign(Object.assign({},t),{args:[].concat((0,T.A)(Array.isArray(t.args)?t.args:[]),[{name:\"endpoint\",value:e.getEndpoint()},{name:\"method\",value:e.persistentJson.requestConfig.method}]),method:\"POST\",endpoint:e.yasgui.config.corsProxy}):t}});if(t.hintConfig||(t.hintConfig={}),t.hintConfig.container||(t.hintConfig.container=this.yasgui.rootEl),!this.yasqeWrapperEl)throw new Error(\"Expected a wrapper element before instantiating yasqe\");this.yasqe=new y.default(this.yasqeWrapperEl,t),this.yasqe.on(\"blur\",this.handleYasqeBlur),this.yasqe.on(\"query\",this.handleYasqeQuery),this.yasqe.on(\"queryBefore\",this.handleYasqeQueryBefore),this.yasqe.on(\"queryAbort\",this.handleYasqeQueryAbort),this.yasqe.on(\"resize\",this.handleYasqeResize),this.yasqe.on(\"autocompletionShown\",this.handleAutocompletionShown),this.yasqe.on(\"autocompletionClose\",this.handleAutocompletionClose),this.yasqe.on(\"queryResponse\",this.handleQueryResponse)}},{key:\"destroyYasqe\",value:function(){var e,t,n,r,i,o,a,s,l;null===(e=this.yasqe)||void 0===e||e.off(\"blur\",this.handleYasqeBlur),null===(t=this.yasqe)||void 0===t||t.off(\"query\",this.handleYasqeQuery),null===(n=this.yasqe)||void 0===n||n.off(\"queryAbort\",this.handleYasqeQueryAbort),null===(r=this.yasqe)||void 0===r||r.off(\"resize\",this.handleYasqeResize),null===(i=this.yasqe)||void 0===i||i.off(\"autocompletionShown\",this.handleAutocompletionShown),null===(o=this.yasqe)||void 0===o||o.off(\"autocompletionClose\",this.handleAutocompletionClose),null===(a=this.yasqe)||void 0===a||a.off(\"queryBefore\",this.handleYasqeQueryBefore),null===(s=this.yasqe)||void 0===s||s.off(\"queryResponse\",this.handleQueryResponse),null===(l=this.yasqe)||void 0===l||l.destroy(),this.yasqe=void 0}},{key:\"initYasr\",value:function(){var e=this;if(!this.yasrWrapperEl)throw new Error(\"Wrapper for yasr does not exist\");var t={persistenceId:null,prefixes:function(t){var n,r=\"function\"==typeof e.yasgui.config.yasr.prefixes?e.yasgui.config.yasr.prefixes(t):e.yasgui.config.yasr.prefixes,i=null===(n=e.yasqe)||void 0===n?void 0:n.getPrefixesFromQuery();return ne(ne(Object.assign(Object.assign({},r),i)))},defaultPlugin:this.persistentJson.yasr.settings.selectedPlugin,getPlainQueryLinkToEndpoint:function(){if(e.yasqe)return ke(e.getEndpoint(),y.default.Sparql.getUrlArguments(e.yasqe,e.persistentJson.requestConfig))},plugins:(0,re.A)(this.persistentJson.yasr.settings.pluginsConfig,(function(e){return{dynamicConfig:e}})),errorRenderers:[mt(this)].concat((0,T.A)(E.default.defaults.errorRenderers||[]))};void 0===t.getDownloadFileName&&(t.getDownloadFileName=function(){return Le(_e(e.getName())).join(\"-\")}),this.yasr=new E.default(this.yasrWrapperEl,t,this.persistentJson.yasr.response),this.persistentJson.yasr.settings=this.yasr.getPersistentConfig(),this.yasr.on(\"change\",(function(){e.yasr&&(e.persistentJson.yasr.settings=e.yasr.getPersistentConfig()),e.emit(\"change\",e,e.persistentJson)}))}},{key:\"destroy\",value:function(){var e,t,n;this.removeAllListeners(),null===(e=this.tabPanel)||void 0===e||e.destroy(),null===(t=this.endpointSelect)||void 0===t||t.destroy(),this.endpointSelect=void 0,null===(n=this.yasr)||void 0===n||n.destroy(),this.yasr=void 0,this.destroyYasqe()}}],[{key:\"getDefaults\",value:function(e){return{yasqe:{value:e?e.config.yasqe.value:Ct.defaults.yasqe.value},yasr:{response:void 0,settings:{selectedPlugin:e?e.config.yasr.defaultPlugin:\"table\",pluginsConfig:{}}},requestConfig:e?e.config.requestConfig:Object.assign({},Ct.defaults.requestConfig),id:Nt(),name:e?e.createTabName():Ct.defaults.tabName}}}])}(a.EventEmitter);var gt=function(e){var t=new URL(e);return encodeURI(t.href)};function mt(e){var t=this;return function(n){return ft(t,void 0,void 0,S().mark((function t(){var r,i,o;return S().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.status){t.next=1;break}if(!(\"http:\"===new URL(e.getEndpoint()).protocol&&\"https:\"===window.location.protocol)){t.next=1;break}return r=document.createElement(\"div\"),(i=document.createElement(\"p\")).innerHTML='You are trying to query an HTTP endpoint (<a href=\"'.concat(gt(e.getEndpoint()),'\" target=\"_blank\" rel=\"noopener noreferrer\">').concat(gt(e.getEndpoint()),'</a>) from an HTTP<strong>S</strong> website (<a href=\"').concat(gt(window.location.href),'\">').concat(gt(window.location.href),'</a>).<br>This is not allowed in modern browsers, see <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy\">https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy</a>.'),e.yasgui.config.nonSslDomain&&((o=document.createElement(\"p\")).innerHTML='As a workaround, you can use the HTTP version of Yasgui instead: <a href=\"'.concat(e.getShareableLink(e.yasgui.config.nonSslDomain),'\" target=\"_blank\">').concat(e.yasgui.config.nonSslDomain,\"</a>\"),i.appendChild(o)),r.appendChild(i),t.abrupt(\"return\",r);case 1:case\"end\":return t.stop()}}),t)})))}}var vt=__webpack_require__(6425);__webpack_require__(5764);var Et=function(){function e(n,r){var i=this;(0,t.A)(this,e),this.handleContextClick=function(e){2!==e.button||e.target!==i.contextEl?i.closeConfigMenu():e.stopImmediatePropagation()},this.closeConfigMenu=function(){i.tabRef=void 0,i.contextEl&&i.contextEl.remove()},this.yasgui=n,this.rootEl=r,document.addEventListener(\"click\",this.handleContextClick),document.addEventListener(\"keyup\",this.closeConfigMenu)}return(0,n.A)(e,[{key:\"getMenuItemEl\",value:function(e){var t=document.createElement(\"li\");return(0,b.iQ)(t,\"context-menu-item\"),t.addEventListener(\"contextmenu\",(function(e){e.stopPropagation()})),void 0!==e&&(t.innerText=e),t}},{key:\"draw\",value:function(e){var t=this;this.contextEl=document.createElement(\"div\");var n=document.createElement(\"ul\");(0,b.iQ)(n,\"context-menu-list\"),this.newTabEl=this.getMenuItemEl(\"New Tab\"),this.newTabEl.onclick=function(){return t.yasgui.addTab(!0)},this.renameTabEl=this.getMenuItemEl(\"Rename Tab\"),this.copyTabEl=this.getMenuItemEl(\"Copy Tab\"),this.closeTabEl=this.getMenuItemEl(\"Close Tab\"),this.closeOtherTabsEl=this.getMenuItemEl(\"Close other tabs\"),this.reOpenOldTab=this.getMenuItemEl(\"Undo close Tab\"),n.appendChild(this.newTabEl),n.appendChild(this.renameTabEl),n.appendChild(this.copyTabEl),n.appendChild(document.createElement(\"hr\")),n.appendChild(this.closeTabEl),n.appendChild(this.closeOtherTabsEl),n.appendChild(this.reOpenOldTab),this.contextEl.appendChild(n),(0,b.iQ)(this.contextEl,\"yasgui\",\"context-menu\"),e.appendChild(this.contextEl)}},{key:\"redraw\",value:function(){var e;if(this.contextEl&&(null===(e=this.tabRef)||void 0===e?void 0:e.tabEl)){var t=this.tabRef.tabEl.getBoundingClientRect();this.contextEl.style.top=\"\".concat(window.pageYOffset+t.bottom,\"px\")}}},{key:\"openConfigMenu\",value:function(e,t,n){var r=this;if(t.tabEl){this.draw(this.rootEl),this.tabRef=t;var i=this.yasgui.getTab(e),o=t.tabEl.getBoundingClientRect();this.contextEl.style.left=\"\".concat(window.pageXOffset+o.left,\"px\"),this.contextEl.style.top=\"\".concat(window.pageYOffset+o.bottom,\"px\"),n.stopPropagation(),this.renameTabEl.onclick=function(){return t.startRename()},this.copyTabEl.onclick=function(){if(i){var e=(0,vt.A)(i.getPersistedJson());e.id=Nt(),r.yasgui.addTab(!0,e)}},this.closeTabEl.onclick=function(){return null==i?void 0:i.close()},1===Object.keys(this.yasgui._tabs).length?(0,b.iQ)(this.closeOtherTabsEl,\"disabled\"):this.closeOtherTabsEl.onclick=function(){for(var t=0,n=Object.keys(r.yasgui._tabs);t<n.length;t++){var i=n[t];i!==e&&r.yasgui.getTab(i).close()}},this.yasgui.persistentConfig&&this.yasgui.persistentConfig.hasLastClosedTab()?this.reOpenOldTab.onclick=function(){return r.yasgui.restoreLastTab()}:(0,b.iQ)(this.reOpenOldTab,\"disabled\")}}},{key:\"unregisterEventListeners\",value:function(){document.removeEventListener(\"click\",this.handleContextClick),document.removeEventListener(\"keyup\",this.closeConfigMenu)}},{key:\"destroy\",value:function(){this.unregisterEventListeners()}}],[{key:\"get\",value:function(t,n){return new e(t,n)}}])}(),yt=__webpack_require__(6732);__webpack_require__(2357);var bt=function(){return(0,n.A)((function e(n,r,i){(0,t.A)(this,e),this.tabList=r,this.yasgui=n,this.tabId=i}),[{key:\"delete\",value:function(){var e;this.tabEl&&(null===(e=this.tabList._tabsListEl)||void 0===e||e.removeChild(this.tabEl),delete this.tabList._tabs[this.tabId])}},{key:\"startRename\",value:function(){if(this.renameEl){var e=this.yasgui.getTab(this.tabId);e&&(this.renameEl.value=e.name(),(0,b.iQ)(this.tabEl,\"renaming\"),this.renameEl.focus())}}},{key:\"active\",value:function(e){this.tabEl&&(e?((0,b.iQ)(this.tabEl,\"active\"),this.tabEl.children[0].setAttribute(\"aria-selected\",\"true\"),this.tabEl.children[0].setAttribute(\"tabindex\",\"0\")):((0,b.vy)(this.tabEl,\"active\"),this.tabEl.children[0].setAttribute(\"aria-selected\",\"false\"),this.tabEl.children[0].setAttribute(\"tabindex\",\"-1\")))}},{key:\"rename\",value:function(e){this.nameEl&&(this.nameEl.textContent=e)}},{key:\"setAsQuerying\",value:function(e){e?(0,b.iQ)(this.tabEl,\"querying\"):(0,b.vy)(this.tabEl,\"querying\")}},{key:\"draw\",value:function(e){var t=this;this.tabEl=document.createElement(\"div\"),this.tabEl.setAttribute(\"role\",\"presentation\"),this.tabEl.ondblclick=function(){t.startRename()},(0,b.iQ)(this.tabEl,\"tab\"),this.tabEl.addEventListener(\"keydown\",(function(e){\"Delete\"===e.code&&n()}));var n=function(e){var n;null==e||e.preventDefault(),null===(n=t.yasgui.getTab(t.tabId))||void 0===n||n.close()},r=document.createElement(\"a\");r.setAttribute(\"role\",\"tab\"),r.href=\"#\"+this.tabId,r.id=\"tab-\"+this.tabId,r.setAttribute(\"aria-controls\",this.tabId),r.addEventListener(\"blur\",(function(){t.tabEl&&(t.tabEl.classList.contains(\"active\")?r.setAttribute(\"tabindex\",\"0\"):r.setAttribute(\"tabindex\",\"-1\"))})),r.addEventListener(\"focus\",(function(){if(t.tabEl&&t.tabEl.classList.contains(\"active\")){var e=Object.keys(t.tabList._tabs).indexOf(t.tabId);t.tabList.tabEntryIndex=e}})),r.addEventListener(\"click\",(function(e){e.preventDefault(),t.yasgui.selectTabId(t.tabId)})),this.nameEl=document.createElement(\"span\"),this.nameEl.textContent=e,r.appendChild(this.nameEl);var i=document.createElement(\"div\");i.innerHTML=\"&#x2716;\",i.title=\"Close tab\",i.setAttribute(\"tabindex\",\"-1\"),i.setAttribute(\"aria-hidden\",\"true\"),(0,b.iQ)(i,\"closeTab\"),i.addEventListener(\"click\",n),r.appendChild(i);var o=this.renameEl=document.createElement(\"input\");o.type=\"text\",o.value=e,o.onkeyup=function(e){var n;\"Enter\"===e.key&&(null===(n=t.yasgui.getTab(t.tabId))||void 0===n||n.setName(o.value),(0,b.vy)(t.tabEl,\"renaming\"))},o.onblur=function(){var e;null===(e=t.yasgui.getTab(t.tabId))||void 0===e||e.setName(o.value),(0,b.vy)(t.tabEl,\"renaming\")},r.appendChild(this.renameEl),r.oncontextmenu=function(e){var n;null===(n=t.tabList.tabContextMenu)||void 0===n||n.closeConfigMenu(),t.openTabConfigMenu(e),e.preventDefault(),e.stopPropagation()},this.tabEl.appendChild(r);var a=document.createElement(\"div\");return(0,b.iQ)(a,\"loader\"),this.tabEl.appendChild(a),this.tabEl}},{key:\"openTabConfigMenu\",value:function(e){var t;null===(t=this.tabList.tabContextMenu)||void 0===t||t.openConfigMenu(this.tabId,this,e)}},{key:\"redrawContextMenu\",value:function(){var e;null===(e=this.tabList.tabContextMenu)||void 0===e||e.redraw()}}])}();const xt=function(){return(0,n.A)((function e(n){var r=this;(0,t.A)(this,e),this._tabs={},this.handleKeydownArrowKeys=function(e){if(\"ArrowLeft\"===e.code||\"ArrowRight\"===e.code){if(!r._tabsListEl)return;var t=r._tabsListEl.childElementCount;if(\"number\"!=typeof r.tabEntryIndex)return;var n=r._tabsListEl.children[r.tabEntryIndex];n.classList.contains(\"active\")||n.children[0].setAttribute(\"tabindex\",\"-1\"),\"ArrowLeft\"===e.code&&(r.tabEntryIndex--,r.tabEntryIndex<0&&(r.tabEntryIndex=t-1)),\"ArrowRight\"===e.code&&(r.tabEntryIndex++,r.tabEntryIndex>=t&&(r.tabEntryIndex=0));var i=r._tabsListEl.children[r.tabEntryIndex];i.children[0].setAttribute(\"tabindex\",\"0\"),i.children[0].focus()}},this.handleAddNewTab=function(e){e.preventDefault(),r.yasgui.addTab(!0)},this.yasgui=n,this.registerListeners(),this.tabEntryIndex=this.getActiveIndex()}),[{key:\"get\",value:function(e){return this._tabs[e]}},{key:\"registerListeners\",value:function(){var e=this;this.yasgui.on(\"query\",(function(t,n){var r=n.getId();e._tabs[r]&&e._tabs[r].setAsQuerying(!0)})),this.yasgui.on(\"queryResponse\",(function(t,n){var r=n.getId();e._tabs[r]&&e._tabs[r].setAsQuerying(!1)})),this.yasgui.on(\"queryAbort\",(function(t,n){var r=n.getId();e._tabs[r]&&e._tabs[r].setAsQuerying(!1)}))}},{key:\"getActiveIndex\",value:function(){if(this._selectedTab)return Object.keys(this._tabs).indexOf(this._selectedTab)}},{key:\"drawTabsList\",value:function(){var e=this;this._tabsListEl=document.createElement(\"div\"),(0,b.iQ)(this._tabsListEl,\"tabsList\"),this._tabsListEl.setAttribute(\"role\",\"tablist\"),this._tabsListEl.addEventListener(\"keydown\",this.handleKeydownArrowKeys),yt.default.create(this._tabsListEl,{group:\"tabList\",animation:100,onUpdate:function(t){var n=e.deriveTabOrderFromEls();e.yasgui.emit(\"tabOrderChanged\",e.yasgui,n),e.yasgui.persistentConfig.setTabOrder(n)},filter:\".addTab\",onMove:function(e,t){return(0,b.nB)(e.related,\"tab\")}}),this.addTabEl=document.createElement(\"div\"),this.addTabEl.setAttribute(\"role\",\"presentation\");var t=document.createElement(\"button\");return t.className=\"addTab\",t.textContent=\"+\",t.title=\"Add tab\",t.setAttribute(\"aria-label\",\"Add a new tab\"),t.addEventListener(\"click\",this.handleAddNewTab),t.addEventListener(\"focus\",(function(){e._tabsListEl&&(e.tabEntryIndex=e._tabsListEl.childElementCount-1)})),t.addEventListener(\"blur\",(function(){t.setAttribute(\"tabindex\",\"0\")})),this.addTabEl.appendChild(t),this._tabsListEl.appendChild(this.addTabEl),this.tabContextMenu=Et.get(this.yasgui,this.yasgui.config.contextMenuContainer?this.yasgui.config.contextMenuContainer:this._tabsListEl),this._tabsListEl}},{key:\"addTab\",value:function(e,t){return this.drawTab(e,t)}},{key:\"deriveTabOrderFromEls\",value:function(){var e=[];if(this._tabsListEl)for(var t=0;t<this._tabsListEl.children.length;t++){var n=this._tabsListEl.children[t].children[0];if(n){var r=n.href;r&&r.indexOf(\"#\")>=0&&e.push(r.substr(r.indexOf(\"#\")+1))}}return e}},{key:\"selectTab\",value:function(e){for(var t in this._selectedTab=e,this._tabs)this._tabs[t].active(this._selectedTab===t)}},{key:\"drawTab\",value:function(e,t){var n,r;this._tabs[e]=new bt(this.yasgui,this,e);var i=this.yasgui.persistentConfig.getTab(e);void 0!==t&&t<this.yasgui.persistentConfig.getTabs().length-1?null===(n=this._tabsListEl)||void 0===n||n.insertBefore(this._tabs[e].draw(i.name),this._tabs[this.yasgui.persistentConfig.getTabs()[t+1]].tabEl||null):null===(r=this._tabsListEl)||void 0===r||r.insertBefore(this._tabs[e].draw(i.name),this.addTabEl||null)}},{key:\"destroy\",value:function(){var e,t;for(var n in this._tabs){this._tabs[n].delete()}this._tabs={},null===(e=this.tabContextMenu)||void 0===e||e.destroy(),null===(t=this._tabsListEl)||void 0===t||t.remove(),this._tabsListEl=void 0}}])}();function Tt(e,t){var n=\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if(\"string\"==typeof e)return At(e,t);var n={}.toString.call(e).slice(8,-1);return\"Object\"===n&&e.constructor&&(n=e.constructor.name),\"Map\"===n||\"Set\"===n?Array.from(e):\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?At(e,t):void 0}}(e))||t&&e&&\"number\"==typeof e.length){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var o,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function At(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function St(e,t,n){return t=(0,i.A)(t),(0,r.A)(e,function(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return function(){return!!e}()}()?Reflect.construct(t,n||[],(0,i.A)(e).constructor):t.apply(e,n))}__webpack_require__(6855),__webpack_require__(7392),window&&(y.default&&(window.Yasqe=y.default),E.default&&(window.Yasr=E.default));var Lt=function(e){function r(e,n){var i,o,a;if((0,t.A)(this,r),(i=St(this,r))._tabs={},i.rootEl=document.createElement(\"div\"),(0,b.iQ)(i.rootEl,\"yasgui\"),e.appendChild(i.rootEl),i.config=(0,s.A)({},r.defaults,n),i.persistentConfig=new x(i),i.tabElements=new xt(i),i.tabPanelsEl=document.createElement(\"div\"),i.rootEl.appendChild(i.tabElements.drawTabsList()),i.rootEl.appendChild(i.tabPanelsEl),i.config.populateFromUrl&&(a=Be(ht.getDefaults(i)))){var l=i.findTabIdForConfig(a);if(l){var u=i.persistentConfig.getTab(l).yasr;i.persistentConfig.getTab(l).yasr={settings:a.yasr.settings,response:u.response},i.persistentConfig.setActive(l),u.response||(o=l)}else i.persistentConfig.setTab(a.id,\"function\"==typeof i.config.populateFromUrl?i.config.populateFromUrl(a):a),o=a.id}var c=i.persistentConfig.getTabs();if(!c.length&&i.config.autoAddOnInit){var p=i.addTab(!0);i.persistentConfig.setActive(p.getId()),i.emit(\"tabChange\",i,p)}else{var d,f=Tt(c);try{for(f.s();!(d=f.n()).done;){var h=d.value;i._tabs[h]=new ht(i,i.persistentConfig.getTab(h)),i._registerTabListeners(i._tabs[h]),i.tabElements.drawTab(h)}}catch(e){f.e(e)}finally{f.f()}var g=i.persistentConfig.getActiveId();g&&(i.markTabSelected(g),o&&o===g&&i.getTab(g).query().catch((function(){})))}return i}return(0,o.A)(r,e),(0,n.A)(r,[{key:\"hasFullscreen\",value:function(e){e?(this.emit(\"fullscreen-enter\",this),(0,b.iQ)(this.rootEl,\"hasFullscreen\")):(this.emit(\"fullscreen-leave\",this),(0,b.vy)(this.rootEl,\"hasFullscreen\"))}},{key:\"getStorageId\",value:function(e,t){var n=t||this.config.persistenceId;if(n)return\"string\"==typeof n?n+\"_\"+e:n(this)+\"_\"+e}},{key:\"createTabName\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;e||(e=this.config.tabName);var n=e+(t>0?\" \"+t:\"\");return this.tabNameTaken(n)&&(n=this.createTabName(e,t+1)),n}},{key:\"tabNameTaken\",value:function(e){return g(this._tabs,(function(t){return t.getName()===e}))}},{key:\"getTab\",value:function(e){if(e)return this._tabs[e];var t=this.persistentConfig.currentId();return t?this._tabs[t]:void 0}},{key:\"markTabSelected\",value:function(e){if(!this.persistentConfig.getTab(e))return!1;for(var t in this.tabElements.selectTab(e),this._tabs[e]||(this._tabs[e]=new ht(this,ht.getDefaults(this))),this._tabs[e].show(),this._tabs)t!==e&&this._tabs[t].hide();return!0}},{key:\"selectTabId\",value:function(e){var t=this.getTab();return t&&t.getId()!==e&&this.markTabSelected(e)&&(this.emit(\"tabSelect\",this,e),this.persistentConfig.setActive(e)),t}},{key:\"tabConfigEquals\",value:function(e,t){var n,r,i,o,a,s=!0;for(a in e.requestConfig)e.requestConfig[a]&&(v(t.requestConfig[a],e.requestConfig[a])||(s=!1));return s&&(s=[\"endpoint\",\"value\"].every((function(n){return e.yasqe[n]===t.yasqe[n]}))),s&&(s=e.yasr.settings.selectedPlugin===t.yasr.settings.selectedPlugin&&v(null===(n=e.yasr.settings.pluginsConfig)||void 0===n?void 0:n[(null===(r=e.yasr.settings)||void 0===r?void 0:r.selectedPlugin)||\"\"],null===(i=t.yasr.settings.pluginsConfig)||void 0===i?void 0:i[(null===(o=t.yasr.settings)||void 0===o?void 0:o.selectedPlugin)||\"\"])),s&&e.name===t.name}},{key:\"findTabIdForConfig\",value:function(e){var t=this;return this.persistentConfig.getTabs().find((function(n){var r=t.persistentConfig.getTab(n);return t.tabConfigEquals(r,e)}))}},{key:\"_registerTabListeners\",value:function(e){var t=this;e.on(\"change\",(function(e){return t.emit(\"tabChange\",t,e)})),e.on(\"query\",(function(e){return t.emit(\"query\",t,e)})),e.on(\"queryBefore\",(function(e){return t.emit(\"queryBefore\",t,e)})),e.on(\"queryAbort\",(function(e){return t.emit(\"queryAbort\",t,e)})),e.on(\"queryResponse\",(function(e){return t.emit(\"queryResponse\",t,e)})),e.on(\"autocompletionShown\",(function(e,n){return t.emit(\"autocompletionShown\",t,e,n)})),e.on(\"autocompletionClose\",(function(e){return t.emit(\"autocompletionClose\",t,e)}))}},{key:\"_setPanel\",value:function(e,t){for(var n in this._tabs)n!==e&&this._tabs[n].hide();this.tabPanelsEl.appendChild(t)}},{key:\"_removePanel\",value:function(e){e&&this.tabPanelsEl.removeChild(e)}},{key:\"addTab\",value:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=(0,s.A)({},ht.getDefaults(this),t);if(i.id&&this.getTab(i.id))throw new Error(\"Duplicate tab ID\");if(this.config.copyEndpointOnNewTab&&!(null===(n=null==t?void 0:t.requestConfig)||void 0===n?void 0:n.endpoint)){var o=this.getTab();o&&(i.requestConfig.endpoint=o.getEndpoint())}if(r.avoidDuplicateTabs){var a=this.findTabIdForConfig(i);if(a)return this.selectTabId(a)}var l=i.id,u=r.atIndex;return this.persistentConfig.addToTabList(l,u),this.emit(\"tabAdd\",this,l),this._tabs[l]=new ht(this,i),this.emit(\"tabChange\",this,this._tabs[l]),this.tabElements.addTab(l,u),this._registerTabListeners(this._tabs[l]),e&&(this.persistentConfig.setActive(l),this._tabs[l].show()),this._tabs[l]}},{key:\"restoreLastTab\",value:function(){var e=this.persistentConfig.retrieveLastClosedTab();e&&this.addTab(!0,e.tab,{atIndex:e.index})}},{key:\"destroy\",value:function(){for(var e in this.removeAllListeners(),this.tabElements.destroy(),this._tabs){this._tabs[e].destroy()}for(this._tabs={};this.rootEl.firstChild;)this.rootEl.firstChild.remove()}}])}(a.EventEmitter);function Nt(){return Math.random().toString(36).substring(7)}Lt.Tab=ht,Lt.linkUtils=e,Lt.Yasr=E.default,Lt.Yasqe=y.default,Lt.defaults={autofocus:!0,endpointInfo:void 0,persistenceId:function(e){var t=\"\",n=e.rootEl;for(n.id&&(t=n.id);n&&n!==document;n=n.parentNode)if(n){n.id&&(t=n.id);break}return\"yagui_\"+t},tabName:\"Query\",corsProxy:void 0,persistencyExpire:2592e3,persistenceLabelResponse:\"response\",persistenceLabelConfig:\"config\",yasqe:y.default.defaults,yasr:E.default.defaults,endpointCatalogueOptions:{getData:function(){return[{endpoint:\"https://dbpedia.org/sparql\"},{endpoint:\"https://query.wikidata.org/bigdata/namespace/wdq/sparql\"}]},keys:[],renderItem:function(e,t){var n,r=document.createElement(\"div\");r.style.display=\"flex\",r.style.flexDirection=\"column\";var i=document.createElement(\"span\");i.innerHTML=(null===(n=e.matches.endpoint)||void 0===n?void 0:n.reduce((function(e,t){return t.highlight?e+t.text.bold():e+t.text}),\"\"))||\"\",r.appendChild(i),t.appendChild(r)}},copyEndpointOnNewTab:!0,populateFromUrl:!0,autoAddOnInit:!0,requestConfig:y.default.defaults.requestConfig,contextMenuContainer:void 0},Lt.corsEnabled={};const Ct=Lt})(),__webpack_exports__=__webpack_exports__.default,__webpack_exports__})());\n//# sourceMappingURL=yasgui.min.js.map","/* eslint-disable no-multi-assign */\n\nfunction deepFreeze(obj) {\n  if (obj instanceof Map) {\n    obj.clear =\n      obj.delete =\n      obj.set =\n        function () {\n          throw new Error('map is read-only');\n        };\n  } else if (obj instanceof Set) {\n    obj.add =\n      obj.clear =\n      obj.delete =\n        function () {\n          throw new Error('set is read-only');\n        };\n  }\n\n  // Freeze self\n  Object.freeze(obj);\n\n  Object.getOwnPropertyNames(obj).forEach((name) => {\n    const prop = obj[name];\n    const type = typeof prop;\n\n    // Freeze prop if it is an object or function and also not already frozen\n    if ((type === 'object' || type === 'function') && !Object.isFrozen(prop)) {\n      deepFreeze(prop);\n    }\n  });\n\n  return obj;\n}\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n  /**\n   * @param {CompiledMode} mode\n   */\n  constructor(mode) {\n    // eslint-disable-next-line no-undefined\n    if (mode.data === undefined) mode.data = {};\n\n    this.data = mode.data;\n    this.isMatchIgnored = false;\n  }\n\n  ignoreMatch() {\n    this.isMatchIgnored = true;\n  }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n  return value\n    .replace(/&/g, '&amp;')\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;')\n    .replace(/\"/g, '&quot;')\n    .replace(/'/g, '&#x27;');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record<string,any>[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n  /** @type Record<string,any> */\n  const result = Object.create(null);\n\n  for (const key in original) {\n    result[key] = original[key];\n  }\n  objects.forEach(function(obj) {\n    for (const key in obj) {\n      result[key] = obj[key];\n    }\n  });\n  return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{scope?: string, language?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '</span>';\n\n/**\n * Determines if a node needs to be wrapped in <span>\n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n  // rarely we can have a sublanguage where language is undefined\n  // TODO: track down why\n  return !!node.scope;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst scopeToCSSClass = (name, { prefix }) => {\n  // sub-language\n  if (name.startsWith(\"language:\")) {\n    return name.replace(\"language:\", \"language-\");\n  }\n  // tiered scope: comment.line\n  if (name.includes(\".\")) {\n    const pieces = name.split(\".\");\n    return [\n      `${prefix}${pieces.shift()}`,\n      ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n    ].join(\" \");\n  }\n  // simple scope\n  return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n  /**\n   * Creates a new HTMLRenderer\n   *\n   * @param {Tree} parseTree - the parse tree (must support `walk` API)\n   * @param {{classPrefix: string}} options\n   */\n  constructor(parseTree, options) {\n    this.buffer = \"\";\n    this.classPrefix = options.classPrefix;\n    parseTree.walk(this);\n  }\n\n  /**\n   * Adds texts to the output stream\n   *\n   * @param {string} text */\n  addText(text) {\n    this.buffer += escapeHTML(text);\n  }\n\n  /**\n   * Adds a node open to the output stream (if needed)\n   *\n   * @param {Node} node */\n  openNode(node) {\n    if (!emitsWrappingTags(node)) return;\n\n    const className = scopeToCSSClass(node.scope,\n      { prefix: this.classPrefix });\n    this.span(className);\n  }\n\n  /**\n   * Adds a node close to the output stream (if needed)\n   *\n   * @param {Node} node */\n  closeNode(node) {\n    if (!emitsWrappingTags(node)) return;\n\n    this.buffer += SPAN_CLOSE;\n  }\n\n  /**\n   * returns the accumulated buffer\n  */\n  value() {\n    return this.buffer;\n  }\n\n  // helpers\n\n  /**\n   * Builds a span element\n   *\n   * @param {string} className */\n  span(className) {\n    this.buffer += `<span class=\"${className}\">`;\n  }\n}\n\n/** @typedef {{scope?: string, language?: string, children: Node[]} | string} Node */\n/** @typedef {{scope?: string, language?: string, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/**  */\n\n/** @returns {DataNode} */\nconst newNode = (opts = {}) => {\n  /** @type DataNode */\n  const result = { children: [] };\n  Object.assign(result, opts);\n  return result;\n};\n\nclass TokenTree {\n  constructor() {\n    /** @type DataNode */\n    this.rootNode = newNode();\n    this.stack = [this.rootNode];\n  }\n\n  get top() {\n    return this.stack[this.stack.length - 1];\n  }\n\n  get root() { return this.rootNode; }\n\n  /** @param {Node} node */\n  add(node) {\n    this.top.children.push(node);\n  }\n\n  /** @param {string} scope */\n  openNode(scope) {\n    /** @type Node */\n    const node = newNode({ scope });\n    this.add(node);\n    this.stack.push(node);\n  }\n\n  closeNode() {\n    if (this.stack.length > 1) {\n      return this.stack.pop();\n    }\n    // eslint-disable-next-line no-undefined\n    return undefined;\n  }\n\n  closeAllNodes() {\n    while (this.closeNode());\n  }\n\n  toJSON() {\n    return JSON.stringify(this.rootNode, null, 4);\n  }\n\n  /**\n   * @typedef { import(\"./html_renderer\").Renderer } Renderer\n   * @param {Renderer} builder\n   */\n  walk(builder) {\n    // this does not\n    return this.constructor._walk(builder, this.rootNode);\n    // this works\n    // return TokenTree._walk(builder, this.rootNode);\n  }\n\n  /**\n   * @param {Renderer} builder\n   * @param {Node} node\n   */\n  static _walk(builder, node) {\n    if (typeof node === \"string\") {\n      builder.addText(node);\n    } else if (node.children) {\n      builder.openNode(node);\n      node.children.forEach((child) => this._walk(builder, child));\n      builder.closeNode(node);\n    }\n    return builder;\n  }\n\n  /**\n   * @param {Node} node\n   */\n  static _collapse(node) {\n    if (typeof node === \"string\") return;\n    if (!node.children) return;\n\n    if (node.children.every(el => typeof el === \"string\")) {\n      // node.text = node.children.join(\"\");\n      // delete node.children;\n      node.children = [node.children.join(\"\")];\n    } else {\n      node.children.forEach((child) => {\n        TokenTree._collapse(child);\n      });\n    }\n  }\n}\n\n/**\n  Currently this is all private API, but this is the minimal API necessary\n  that an Emitter must implement to fully support the parser.\n\n  Minimal interface:\n\n  - addText(text)\n  - __addSublanguage(emitter, subLanguageName)\n  - startScope(scope)\n  - endScope()\n  - finalize()\n  - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n  /**\n   * @param {*} options\n   */\n  constructor(options) {\n    super();\n    this.options = options;\n  }\n\n  /**\n   * @param {string} text\n   */\n  addText(text) {\n    if (text === \"\") { return; }\n\n    this.add(text);\n  }\n\n  /** @param {string} scope */\n  startScope(scope) {\n    this.openNode(scope);\n  }\n\n  endScope() {\n    this.closeNode();\n  }\n\n  /**\n   * @param {Emitter & {root: DataNode}} emitter\n   * @param {string} name\n   */\n  __addSublanguage(emitter, name) {\n    /** @type DataNode */\n    const node = emitter.root;\n    if (name) node.scope = `language:${name}`;\n\n    this.add(node);\n  }\n\n  toHTML() {\n    const renderer = new HTMLRenderer(this, this.options);\n    return renderer.value();\n  }\n\n  finalize() {\n    this.closeAllNodes();\n    return true;\n  }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n  if (!re) return null;\n  if (typeof re === \"string\") return re;\n\n  return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n  return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n  return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n  return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n  const joined = args.map((x) => source(x)).join(\"\");\n  return joined;\n}\n\n/**\n * @param { Array<string | RegExp | Object> } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n  const opts = args[args.length - 1];\n\n  if (typeof opts === 'object' && opts.constructor === Object) {\n    args.splice(args.length - 1, 1);\n    return opts;\n  } else {\n    return {};\n  }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n  /** @type { object & {capture?: boolean} }  */\n  const opts = stripOptionsFromArgs(args);\n  const joined = '('\n    + (opts.capture ? \"\" : \"?:\")\n    + args.map((x) => source(x)).join(\"|\") + \")\";\n  return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n  return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n  const match = re && re.exec(lexeme);\n  return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n//   interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n//   follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n  let numCaptures = 0;\n\n  return regexps.map((regex) => {\n    numCaptures += 1;\n    const offset = numCaptures;\n    let re = source(regex);\n    let out = '';\n\n    while (re.length > 0) {\n      const match = BACKREF_RE.exec(re);\n      if (!match) {\n        out += re;\n        break;\n      }\n      out += re.substring(0, match.index);\n      re = re.substring(match.index + match[0].length);\n      if (match[0][0] === '\\\\' && match[1]) {\n        // Adjust the backreference.\n        out += '\\\\' + String(Number(match[1]) + offset);\n      } else {\n        out += match[0];\n        if (match[0] === '(') {\n          numCaptures++;\n        }\n      }\n    }\n    return out;\n  }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial<Mode> & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n  const beginShebang = /^#![ ]*\\//;\n  if (opts.binary) {\n    opts.begin = concat(\n      beginShebang,\n      /.*\\b/,\n      opts.binary,\n      /\\b.*/);\n  }\n  return inherit$1({\n    scope: 'meta',\n    begin: beginShebang,\n    end: /$/,\n    relevance: 0,\n    /** @type {ModeCallback} */\n    \"on:begin\": (m, resp) => {\n      if (m.index !== 0) resp.ignoreMatch();\n    }\n  }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n  begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n  scope: 'string',\n  begin: '\\'',\n  end: '\\'',\n  illegal: '\\\\n',\n  contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n  scope: 'string',\n  begin: '\"',\n  end: '\"',\n  illegal: '\\\\n',\n  contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n  begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial<Mode>}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n  const mode = inherit$1(\n    {\n      scope: 'comment',\n      begin,\n      end,\n      contains: []\n    },\n    modeOptions\n  );\n  mode.contains.push({\n    scope: 'doctag',\n    // hack to avoid the space from being included. the space is necessary to\n    // match here to prevent the plain text rule below from gobbling up doctags\n    begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n    end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n    excludeBegin: true,\n    relevance: 0\n  });\n  const ENGLISH_WORD = either(\n    // list of common 1 and 2 letter words in English\n    \"I\",\n    \"a\",\n    \"is\",\n    \"so\",\n    \"us\",\n    \"to\",\n    \"at\",\n    \"if\",\n    \"in\",\n    \"it\",\n    \"on\",\n    // note: this is not an exhaustive list of contractions, just popular ones\n    /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n    /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n    /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n  );\n  // looking like plain text, more likely to be a comment\n  mode.contains.push(\n    {\n      // TODO: how to include \", (, ) without breaking grammars that use these for\n      // comment delimiters?\n      // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n      // ---\n\n      // this tries to find sequences of 3 english words in a row (without any\n      // \"programming\" type syntax) this gives us a strong signal that we've\n      // TRULY found a comment - vs perhaps scanning with the wrong language.\n      // It's possible to find something that LOOKS like the start of the\n      // comment - but then if there is no readable text - good chance it is a\n      // false match and not a comment.\n      //\n      // for a visual example please see:\n      // https://github.com/highlightjs/highlight.js/issues/2827\n\n      begin: concat(\n        /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n        '(',\n        ENGLISH_WORD,\n        /[.]?[:]?([.][ ]|[ ])/,\n        '){3}') // look for 3 words in a row\n    }\n  );\n  return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n  scope: 'number',\n  begin: NUMBER_RE,\n  relevance: 0\n};\nconst C_NUMBER_MODE = {\n  scope: 'number',\n  begin: C_NUMBER_RE,\n  relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n  scope: 'number',\n  begin: BINARY_NUMBER_RE,\n  relevance: 0\n};\nconst REGEXP_MODE = {\n  scope: \"regexp\",\n  begin: /\\/(?=[^/\\n]*\\/)/,\n  end: /\\/[gimuy]*/,\n  contains: [\n    BACKSLASH_ESCAPE,\n    {\n      begin: /\\[/,\n      end: /\\]/,\n      relevance: 0,\n      contains: [BACKSLASH_ESCAPE]\n    }\n  ]\n};\nconst TITLE_MODE = {\n  scope: 'title',\n  begin: IDENT_RE,\n  relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n  scope: 'title',\n  begin: UNDERSCORE_IDENT_RE,\n  relevance: 0\n};\nconst METHOD_GUARD = {\n  // excludes method names from keyword processing\n  begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n  relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial<Mode>} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n  return Object.assign(mode,\n    {\n      /** @type {ModeCallback} */\n      'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n      /** @type {ModeCallback} */\n      'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n    });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  APOS_STRING_MODE: APOS_STRING_MODE,\n  BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n  BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n  BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n  COMMENT: COMMENT,\n  C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n  C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n  C_NUMBER_MODE: C_NUMBER_MODE,\n  C_NUMBER_RE: C_NUMBER_RE,\n  END_SAME_AS_BEGIN: END_SAME_AS_BEGIN,\n  HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n  IDENT_RE: IDENT_RE,\n  MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n  METHOD_GUARD: METHOD_GUARD,\n  NUMBER_MODE: NUMBER_MODE,\n  NUMBER_RE: NUMBER_RE,\n  PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n  QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n  REGEXP_MODE: REGEXP_MODE,\n  RE_STARTERS_RE: RE_STARTERS_RE,\n  SHEBANG: SHEBANG,\n  TITLE_MODE: TITLE_MODE,\n  UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n  UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`.  The extension then just moves `match` into\n// `begin` when it runs.  Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n  const before = match.input[match.index - 1];\n  if (before === \".\") {\n    response.ignoreMatch();\n  }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n  // eslint-disable-next-line no-undefined\n  if (mode.className !== undefined) {\n    mode.scope = mode.className;\n    delete mode.className;\n  }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n  if (!parent) return;\n  if (!mode.beginKeywords) return;\n\n  // for languages with keywords that include non-word characters checking for\n  // a word boundary is not sufficient, so instead we check for a word boundary\n  // or whitespace - this does no harm in any case since our keyword engine\n  // doesn't allow spaces in keywords anyways and we still check for the boundary\n  // first\n  mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n  mode.__beforeBegin = skipIfHasPrecedingDot;\n  mode.keywords = mode.keywords || mode.beginKeywords;\n  delete mode.beginKeywords;\n\n  // prevents double relevance, the keywords themselves provide\n  // relevance, the mode doesn't need to double it\n  // eslint-disable-next-line no-undefined\n  if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n  if (!Array.isArray(mode.illegal)) return;\n\n  mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n  if (!mode.match) return;\n  if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n  mode.begin = mode.match;\n  delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n  // eslint-disable-next-line no-undefined\n  if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n  if (!mode.beforeMatch) return;\n  // starts conflicts with endsParent which we need to make sure the child\n  // rule is not matched multiple times\n  if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n  const originalMode = Object.assign({}, mode);\n  Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n  mode.keywords = originalMode.keywords;\n  mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n  mode.starts = {\n    relevance: 0,\n    contains: [\n      Object.assign(originalMode, { endsParent: true })\n    ]\n  };\n  mode.relevance = 0;\n\n  delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n  'of',\n  'and',\n  'for',\n  'in',\n  'not',\n  'or',\n  'if',\n  'then',\n  'parent', // common variable name\n  'list', // common variable name\n  'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record<string,string|string[]> | Array<string>} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n  /** @type {import(\"highlight.js/private\").KeywordDict} */\n  const compiledKeywords = Object.create(null);\n\n  // input can be a string of keywords, an array of keywords, or a object with\n  // named keys representing scopeName (which can then point to a string or array)\n  if (typeof rawKeywords === 'string') {\n    compileList(scopeName, rawKeywords.split(\" \"));\n  } else if (Array.isArray(rawKeywords)) {\n    compileList(scopeName, rawKeywords);\n  } else {\n    Object.keys(rawKeywords).forEach(function(scopeName) {\n      // collapse all our objects back into the parent object\n      Object.assign(\n        compiledKeywords,\n        compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n      );\n    });\n  }\n  return compiledKeywords;\n\n  // ---\n\n  /**\n   * Compiles an individual list of keywords\n   *\n   * Ex: \"for if when while|5\"\n   *\n   * @param {string} scopeName\n   * @param {Array<string>} keywordList\n   */\n  function compileList(scopeName, keywordList) {\n    if (caseInsensitive) {\n      keywordList = keywordList.map(x => x.toLowerCase());\n    }\n    keywordList.forEach(function(keyword) {\n      const pair = keyword.split('|');\n      compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n    });\n  }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n  // manual scores always win over common keywords\n  // so you can force a score of 1 if you really insist\n  if (providedScore) {\n    return Number(providedScore);\n  }\n\n  return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n  return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record<string, boolean>}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n  console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n  console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n  if (seenDeprecations[`${version}/${message}`]) return;\n\n  console.log(`Deprecated as of ${version}. ${message}`);\n  seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n *   { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n *   (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n *   { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5.  This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array<RegExp | string>} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n  let offset = 0;\n  const scopeNames = mode[key];\n  /** @type Record<number,boolean> */\n  const emit = {};\n  /** @type Record<number,string> */\n  const positions = {};\n\n  for (let i = 1; i <= regexes.length; i++) {\n    positions[i + offset] = scopeNames[i];\n    emit[i + offset] = true;\n    offset += countMatchGroups(regexes[i - 1]);\n  }\n  // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n  // output from inside match groups\n  mode[key] = positions;\n  mode[key]._emit = emit;\n  mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n  if (!Array.isArray(mode.begin)) return;\n\n  if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n    error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n    throw MultiClassError;\n  }\n\n  if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n    error(\"beginScope must be object\");\n    throw MultiClassError;\n  }\n\n  remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n  mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n  if (!Array.isArray(mode.end)) return;\n\n  if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n    error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n    throw MultiClassError;\n  }\n\n  if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n    error(\"endScope must be object\");\n    throw MultiClassError;\n  }\n\n  remapScopeNames(mode, mode.end, { key: \"endScope\" });\n  mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n  {\n    match: [ /def/, /\\w+/ ]\n    scope: { 1: \"keyword\" , 2: \"title\" }\n  }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n  if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n    mode.beginScope = mode.scope;\n    delete mode.scope;\n  }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n  scopeSugar(mode);\n\n  if (typeof mode.beginScope === \"string\") {\n    mode.beginScope = { _wrap: mode.beginScope };\n  }\n  if (typeof mode.endScope === \"string\") {\n    mode.endScope = { _wrap: mode.endScope };\n  }\n\n  beginMultiClass(mode);\n  endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n  /**\n   * Builds a regex with the case sensitivity of the current language\n   *\n   * @param {RegExp | string} value\n   * @param {boolean} [global]\n   */\n  function langRe(value, global) {\n    return new RegExp(\n      source(value),\n      'm'\n      + (language.case_insensitive ? 'i' : '')\n      + (language.unicodeRegex ? 'u' : '')\n      + (global ? 'g' : '')\n    );\n  }\n\n  /**\n    Stores multiple regular expressions and allows you to quickly search for\n    them all in a string simultaneously - returning the first match.  It does\n    this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n    and joined by `|` - using match groups to track position.  When a match is\n    found checking which position in the array has content allows us to figure\n    out which of the original regexes / match groups triggered the match.\n\n    The match object itself (the result of `Regex.exec`) is returned but also\n    enhanced by merging in any meta-data that was registered with the regex.\n    This is how we keep track of which mode matched, and what type of rule\n    (`illegal`, `begin`, end, etc).\n  */\n  class MultiRegex {\n    constructor() {\n      this.matchIndexes = {};\n      // @ts-ignore\n      this.regexes = [];\n      this.matchAt = 1;\n      this.position = 0;\n    }\n\n    // @ts-ignore\n    addRule(re, opts) {\n      opts.position = this.position++;\n      // @ts-ignore\n      this.matchIndexes[this.matchAt] = opts;\n      this.regexes.push([opts, re]);\n      this.matchAt += countMatchGroups(re) + 1;\n    }\n\n    compile() {\n      if (this.regexes.length === 0) {\n        // avoids the need to check length every time exec is called\n        // @ts-ignore\n        this.exec = () => null;\n      }\n      const terminators = this.regexes.map(el => el[1]);\n      this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n      this.lastIndex = 0;\n    }\n\n    /** @param {string} s */\n    exec(s) {\n      this.matcherRe.lastIndex = this.lastIndex;\n      const match = this.matcherRe.exec(s);\n      if (!match) { return null; }\n\n      // eslint-disable-next-line no-undefined\n      const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n      // @ts-ignore\n      const matchData = this.matchIndexes[i];\n      // trim off any earlier non-relevant match groups (ie, the other regex\n      // match groups that make up the multi-matcher)\n      match.splice(0, i);\n\n      return Object.assign(match, matchData);\n    }\n  }\n\n  /*\n    Created to solve the key deficiently with MultiRegex - there is no way to\n    test for multiple matches at a single location.  Why would we need to do\n    that?  In the future a more dynamic engine will allow certain matches to be\n    ignored.  An example: if we matched say the 3rd regex in a large group but\n    decided to ignore it - we'd need to started testing again at the 4th\n    regex... but MultiRegex itself gives us no real way to do that.\n\n    So what this class creates MultiRegexs on the fly for whatever search\n    position they are needed.\n\n    NOTE: These additional MultiRegex objects are created dynamically.  For most\n    grammars most of the time we will never actually need anything more than the\n    first MultiRegex - so this shouldn't have too much overhead.\n\n    Say this is our search group, and we match regex3, but wish to ignore it.\n\n      regex1 | regex2 | regex3 | regex4 | regex5    ' ie, startAt = 0\n\n    What we need is a new MultiRegex that only includes the remaining\n    possibilities:\n\n      regex4 | regex5                               ' ie, startAt = 3\n\n    This class wraps all that complexity up in a simple API... `startAt` decides\n    where in the array of expressions to start doing the matching. It\n    auto-increments, so if a match is found at position 2, then startAt will be\n    set to 3.  If the end is reached startAt will return to 0.\n\n    MOST of the time the parser will be setting startAt manually to 0.\n  */\n  class ResumableMultiRegex {\n    constructor() {\n      // @ts-ignore\n      this.rules = [];\n      // @ts-ignore\n      this.multiRegexes = [];\n      this.count = 0;\n\n      this.lastIndex = 0;\n      this.regexIndex = 0;\n    }\n\n    // @ts-ignore\n    getMatcher(index) {\n      if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n      const matcher = new MultiRegex();\n      this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n      matcher.compile();\n      this.multiRegexes[index] = matcher;\n      return matcher;\n    }\n\n    resumingScanAtSamePosition() {\n      return this.regexIndex !== 0;\n    }\n\n    considerAll() {\n      this.regexIndex = 0;\n    }\n\n    // @ts-ignore\n    addRule(re, opts) {\n      this.rules.push([re, opts]);\n      if (opts.type === \"begin\") this.count++;\n    }\n\n    /** @param {string} s */\n    exec(s) {\n      const m = this.getMatcher(this.regexIndex);\n      m.lastIndex = this.lastIndex;\n      let result = m.exec(s);\n\n      // The following is because we have no easy way to say \"resume scanning at the\n      // existing position but also skip the current rule ONLY\". What happens is\n      // all prior rules are also skipped which can result in matching the wrong\n      // thing. Example of matching \"booger\":\n\n      // our matcher is [string, \"booger\", number]\n      //\n      // ....booger....\n\n      // if \"booger\" is ignored then we'd really need a regex to scan from the\n      // SAME position for only: [string, number] but ignoring \"booger\" (if it\n      // was the first match), a simple resume would scan ahead who knows how\n      // far looking only for \"number\", ignoring potential string matches (or\n      // future \"booger\" matches that might be valid.)\n\n      // So what we do: We execute two matchers, one resuming at the same\n      // position, but the second full matcher starting at the position after:\n\n      //     /--- resume first regex match here (for [number])\n      //     |/---- full match here for [string, \"booger\", number]\n      //     vv\n      // ....booger....\n\n      // Which ever results in a match first is then used. So this 3-4 step\n      // process essentially allows us to say \"match at this position, excluding\n      // a prior rule that was ignored\".\n      //\n      // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n      // 2. Resume matching for [number]\n      // 3. Match at index + 1 for [string, \"booger\", number]\n      // 4. If #2 and #3 result in matches, which came first?\n      if (this.resumingScanAtSamePosition()) {\n        if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n          const m2 = this.getMatcher(0);\n          m2.lastIndex = this.lastIndex + 1;\n          result = m2.exec(s);\n        }\n      }\n\n      if (result) {\n        this.regexIndex += result.position + 1;\n        if (this.regexIndex === this.count) {\n          // wrap-around to considering all matches again\n          this.considerAll();\n        }\n      }\n\n      return result;\n    }\n  }\n\n  /**\n   * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n   * the content and find matches.\n   *\n   * @param {CompiledMode} mode\n   * @returns {ResumableMultiRegex}\n   */\n  function buildModeRegex(mode) {\n    const mm = new ResumableMultiRegex();\n\n    mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n    if (mode.terminatorEnd) {\n      mm.addRule(mode.terminatorEnd, { type: \"end\" });\n    }\n    if (mode.illegal) {\n      mm.addRule(mode.illegal, { type: \"illegal\" });\n    }\n\n    return mm;\n  }\n\n  /** skip vs abort vs ignore\n   *\n   * @skip   - The mode is still entered and exited normally (and contains rules apply),\n   *           but all content is held and added to the parent buffer rather than being\n   *           output when the mode ends.  Mostly used with `sublanguage` to build up\n   *           a single large buffer than can be parsed by sublanguage.\n   *\n   *             - The mode begin ands ends normally.\n   *             - Content matched is added to the parent mode buffer.\n   *             - The parser cursor is moved forward normally.\n   *\n   * @abort  - A hack placeholder until we have ignore.  Aborts the mode (as if it\n   *           never matched) but DOES NOT continue to match subsequent `contains`\n   *           modes.  Abort is bad/suboptimal because it can result in modes\n   *           farther down not getting applied because an earlier rule eats the\n   *           content but then aborts.\n   *\n   *             - The mode does not begin.\n   *             - Content matched by `begin` is added to the mode buffer.\n   *             - The parser cursor is moved forward accordingly.\n   *\n   * @ignore - Ignores the mode (as if it never matched) and continues to match any\n   *           subsequent `contains` modes.  Ignore isn't technically possible with\n   *           the current parser implementation.\n   *\n   *             - The mode does not begin.\n   *             - Content matched by `begin` is ignored.\n   *             - The parser cursor is not moved forward.\n   */\n\n  /**\n   * Compiles an individual mode\n   *\n   * This can raise an error if the mode contains certain detectable known logic\n   * issues.\n   * @param {Mode} mode\n   * @param {CompiledMode | null} [parent]\n   * @returns {CompiledMode | never}\n   */\n  function compileMode(mode, parent) {\n    const cmode = /** @type CompiledMode */ (mode);\n    if (mode.isCompiled) return cmode;\n\n    [\n      scopeClassName,\n      // do this early so compiler extensions generally don't have to worry about\n      // the distinction between match/begin\n      compileMatch,\n      MultiClass,\n      beforeMatchExt\n    ].forEach(ext => ext(mode, parent));\n\n    language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n    // __beforeBegin is considered private API, internal use only\n    mode.__beforeBegin = null;\n\n    [\n      beginKeywords,\n      // do this later so compiler extensions that come earlier have access to the\n      // raw array if they wanted to perhaps manipulate it, etc.\n      compileIllegal,\n      // default to 1 relevance if not specified\n      compileRelevance\n    ].forEach(ext => ext(mode, parent));\n\n    mode.isCompiled = true;\n\n    let keywordPattern = null;\n    if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n      // we need a copy because keywords might be compiled multiple times\n      // so we can't go deleting $pattern from the original on the first\n      // pass\n      mode.keywords = Object.assign({}, mode.keywords);\n      keywordPattern = mode.keywords.$pattern;\n      delete mode.keywords.$pattern;\n    }\n    keywordPattern = keywordPattern || /\\w+/;\n\n    if (mode.keywords) {\n      mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n    }\n\n    cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n    if (parent) {\n      if (!mode.begin) mode.begin = /\\B|\\b/;\n      cmode.beginRe = langRe(cmode.begin);\n      if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n      if (mode.end) cmode.endRe = langRe(cmode.end);\n      cmode.terminatorEnd = source(cmode.end) || '';\n      if (mode.endsWithParent && parent.terminatorEnd) {\n        cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n      }\n    }\n    if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n    if (!mode.contains) mode.contains = [];\n\n    mode.contains = [].concat(...mode.contains.map(function(c) {\n      return expandOrCloneMode(c === 'self' ? mode : c);\n    }));\n    mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n    if (mode.starts) {\n      compileMode(mode.starts, parent);\n    }\n\n    cmode.matcher = buildModeRegex(cmode);\n    return cmode;\n  }\n\n  if (!language.compilerExtensions) language.compilerExtensions = [];\n\n  // self is not valid at the top-level\n  if (language.contains && language.contains.includes('self')) {\n    throw new Error(\"ERR: contains `self` is not supported at the top-level of a language.  See documentation.\");\n  }\n\n  // we need a null object, which inherit will guarantee\n  language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n  return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n  if (!mode) return false;\n\n  return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n  if (mode.variants && !mode.cachedVariants) {\n    mode.cachedVariants = mode.variants.map(function(variant) {\n      return inherit$1(mode, { variants: null }, variant);\n    });\n  }\n\n  // EXPAND\n  // if we have variants then essentially \"replace\" the mode with the variants\n  // this happens in compileMode, where this function is called from\n  if (mode.cachedVariants) {\n    return mode.cachedVariants;\n  }\n\n  // CLONE\n  // if we have dependencies on parents then we need a unique\n  // instance of ourselves, so we can be reused with many\n  // different parents without issue\n  if (dependencyOnParent(mode)) {\n    return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n  }\n\n  if (Object.isFrozen(mode)) {\n    return inherit$1(mode);\n  }\n\n  // no special dependency issues, just return ourselves\n  return mode;\n}\n\nvar version = \"11.11.1\";\n\nclass HTMLInjectionError extends Error {\n  constructor(reason, html) {\n    super(reason);\n    this.name = \"HTMLInjectionError\";\n    this.html = html;\n  }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n  // Global internal variables used within the highlight.js library.\n  /** @type {Record<string, Language>} */\n  const languages = Object.create(null);\n  /** @type {Record<string, string>} */\n  const aliases = Object.create(null);\n  /** @type {HLJSPlugin[]} */\n  const plugins = [];\n\n  // safe/production mode - swallows more errors, tries to keep running\n  // even if a single syntax or parse hits a fatal error\n  let SAFE_MODE = true;\n  const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n  /** @type {Language} */\n  const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n  // Global options used when within external APIs. This is modified when\n  // calling the `hljs.configure` function.\n  /** @type HLJSOptions */\n  let options = {\n    ignoreUnescapedHTML: false,\n    throwUnescapedHTML: false,\n    noHighlightRe: /^(no-?highlight)$/i,\n    languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n    classPrefix: 'hljs-',\n    cssSelector: 'pre code',\n    languages: null,\n    // beta configuration options, subject to change, welcome to discuss\n    // https://github.com/highlightjs/highlight.js/issues/1086\n    __emitter: TokenTreeEmitter\n  };\n\n  /* Utility functions */\n\n  /**\n   * Tests a language name to see if highlighting should be skipped\n   * @param {string} languageName\n   */\n  function shouldNotHighlight(languageName) {\n    return options.noHighlightRe.test(languageName);\n  }\n\n  /**\n   * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n   */\n  function blockLanguage(block) {\n    let classes = block.className + ' ';\n\n    classes += block.parentNode ? block.parentNode.className : '';\n\n    // language-* takes precedence over non-prefixed class names.\n    const match = options.languageDetectRe.exec(classes);\n    if (match) {\n      const language = getLanguage(match[1]);\n      if (!language) {\n        warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n        warn(\"Falling back to no-highlight mode for this block.\", block);\n      }\n      return language ? match[1] : 'no-highlight';\n    }\n\n    return classes\n      .split(/\\s+/)\n      .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n  }\n\n  /**\n   * Core highlighting function.\n   *\n   * OLD API\n   * highlight(lang, code, ignoreIllegals, continuation)\n   *\n   * NEW API\n   * highlight(code, {lang, ignoreIllegals})\n   *\n   * @param {string} codeOrLanguageName - the language to use for highlighting\n   * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n   * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n   *\n   * @returns {HighlightResult} Result - an object that represents the result\n   * @property {string} language - the language name\n   * @property {number} relevance - the relevance score\n   * @property {string} value - the highlighted HTML code\n   * @property {string} code - the original raw code\n   * @property {CompiledMode} top - top of the current mode stack\n   * @property {boolean} illegal - indicates whether any illegal matches were found\n  */\n  function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n    let code = \"\";\n    let languageName = \"\";\n    if (typeof optionsOrCode === \"object\") {\n      code = codeOrLanguageName;\n      ignoreIllegals = optionsOrCode.ignoreIllegals;\n      languageName = optionsOrCode.language;\n    } else {\n      // old API\n      deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n      deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n      languageName = codeOrLanguageName;\n      code = optionsOrCode;\n    }\n\n    // https://github.com/highlightjs/highlight.js/issues/3149\n    // eslint-disable-next-line no-undefined\n    if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n    /** @type {BeforeHighlightContext} */\n    const context = {\n      code,\n      language: languageName\n    };\n    // the plugin can change the desired language or the code to be highlighted\n    // just be changing the object it was passed\n    fire(\"before:highlight\", context);\n\n    // a before plugin can usurp the result completely by providing it's own\n    // in which case we don't even need to call highlight\n    const result = context.result\n      ? context.result\n      : _highlight(context.language, context.code, ignoreIllegals);\n\n    result.code = context.code;\n    // the plugin can change anything in result to suite it\n    fire(\"after:highlight\", result);\n\n    return result;\n  }\n\n  /**\n   * private highlight that's used internally and does not fire callbacks\n   *\n   * @param {string} languageName - the language to use for highlighting\n   * @param {string} codeToHighlight - the code to highlight\n   * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n   * @param {CompiledMode?} [continuation] - current continuation mode, if any\n   * @returns {HighlightResult} - result of the highlight operation\n  */\n  function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n    const keywordHits = Object.create(null);\n\n    /**\n     * Return keyword data if a match is a keyword\n     * @param {CompiledMode} mode - current mode\n     * @param {string} matchText - the textual match\n     * @returns {KeywordData | false}\n     */\n    function keywordData(mode, matchText) {\n      return mode.keywords[matchText];\n    }\n\n    function processKeywords() {\n      if (!top.keywords) {\n        emitter.addText(modeBuffer);\n        return;\n      }\n\n      let lastIndex = 0;\n      top.keywordPatternRe.lastIndex = 0;\n      let match = top.keywordPatternRe.exec(modeBuffer);\n      let buf = \"\";\n\n      while (match) {\n        buf += modeBuffer.substring(lastIndex, match.index);\n        const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n        const data = keywordData(top, word);\n        if (data) {\n          const [kind, keywordRelevance] = data;\n          emitter.addText(buf);\n          buf = \"\";\n\n          keywordHits[word] = (keywordHits[word] || 0) + 1;\n          if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n          if (kind.startsWith(\"_\")) {\n            // _ implied for relevance only, do not highlight\n            // by applying a class name\n            buf += match[0];\n          } else {\n            const cssClass = language.classNameAliases[kind] || kind;\n            emitKeyword(match[0], cssClass);\n          }\n        } else {\n          buf += match[0];\n        }\n        lastIndex = top.keywordPatternRe.lastIndex;\n        match = top.keywordPatternRe.exec(modeBuffer);\n      }\n      buf += modeBuffer.substring(lastIndex);\n      emitter.addText(buf);\n    }\n\n    function processSubLanguage() {\n      if (modeBuffer === \"\") return;\n      /** @type HighlightResult */\n      let result = null;\n\n      if (typeof top.subLanguage === 'string') {\n        if (!languages[top.subLanguage]) {\n          emitter.addText(modeBuffer);\n          return;\n        }\n        result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n        continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n      } else {\n        result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n      }\n\n      // Counting embedded language score towards the host language may be disabled\n      // with zeroing the containing mode relevance. Use case in point is Markdown that\n      // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n      // score.\n      if (top.relevance > 0) {\n        relevance += result.relevance;\n      }\n      emitter.__addSublanguage(result._emitter, result.language);\n    }\n\n    function processBuffer() {\n      if (top.subLanguage != null) {\n        processSubLanguage();\n      } else {\n        processKeywords();\n      }\n      modeBuffer = '';\n    }\n\n    /**\n     * @param {string} text\n     * @param {string} scope\n     */\n    function emitKeyword(keyword, scope) {\n      if (keyword === \"\") return;\n\n      emitter.startScope(scope);\n      emitter.addText(keyword);\n      emitter.endScope();\n    }\n\n    /**\n     * @param {CompiledScope} scope\n     * @param {RegExpMatchArray} match\n     */\n    function emitMultiClass(scope, match) {\n      let i = 1;\n      const max = match.length - 1;\n      while (i <= max) {\n        if (!scope._emit[i]) { i++; continue; }\n        const klass = language.classNameAliases[scope[i]] || scope[i];\n        const text = match[i];\n        if (klass) {\n          emitKeyword(text, klass);\n        } else {\n          modeBuffer = text;\n          processKeywords();\n          modeBuffer = \"\";\n        }\n        i++;\n      }\n    }\n\n    /**\n     * @param {CompiledMode} mode - new mode to start\n     * @param {RegExpMatchArray} match\n     */\n    function startNewMode(mode, match) {\n      if (mode.scope && typeof mode.scope === \"string\") {\n        emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n      }\n      if (mode.beginScope) {\n        // beginScope just wraps the begin match itself in a scope\n        if (mode.beginScope._wrap) {\n          emitKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n          modeBuffer = \"\";\n        } else if (mode.beginScope._multi) {\n          // at this point modeBuffer should just be the match\n          emitMultiClass(mode.beginScope, match);\n          modeBuffer = \"\";\n        }\n      }\n\n      top = Object.create(mode, { parent: { value: top } });\n      return top;\n    }\n\n    /**\n     * @param {CompiledMode } mode - the mode to potentially end\n     * @param {RegExpMatchArray} match - the latest match\n     * @param {string} matchPlusRemainder - match plus remainder of content\n     * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n     */\n    function endOfMode(mode, match, matchPlusRemainder) {\n      let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n      if (matched) {\n        if (mode[\"on:end\"]) {\n          const resp = new Response(mode);\n          mode[\"on:end\"](match, resp);\n          if (resp.isMatchIgnored) matched = false;\n        }\n\n        if (matched) {\n          while (mode.endsParent && mode.parent) {\n            mode = mode.parent;\n          }\n          return mode;\n        }\n      }\n      // even if on:end fires an `ignore` it's still possible\n      // that we might trigger the end node because of a parent mode\n      if (mode.endsWithParent) {\n        return endOfMode(mode.parent, match, matchPlusRemainder);\n      }\n    }\n\n    /**\n     * Handle matching but then ignoring a sequence of text\n     *\n     * @param {string} lexeme - string containing full match text\n     */\n    function doIgnore(lexeme) {\n      if (top.matcher.regexIndex === 0) {\n        // no more regexes to potentially match here, so we move the cursor forward one\n        // space\n        modeBuffer += lexeme[0];\n        return 1;\n      } else {\n        // no need to move the cursor, we still have additional regexes to try and\n        // match at this very spot\n        resumeScanAtSamePosition = true;\n        return 0;\n      }\n    }\n\n    /**\n     * Handle the start of a new potential mode match\n     *\n     * @param {EnhancedMatch} match - the current match\n     * @returns {number} how far to advance the parse cursor\n     */\n    function doBeginMatch(match) {\n      const lexeme = match[0];\n      const newMode = match.rule;\n\n      const resp = new Response(newMode);\n      // first internal before callbacks, then the public ones\n      const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n      for (const cb of beforeCallbacks) {\n        if (!cb) continue;\n        cb(match, resp);\n        if (resp.isMatchIgnored) return doIgnore(lexeme);\n      }\n\n      if (newMode.skip) {\n        modeBuffer += lexeme;\n      } else {\n        if (newMode.excludeBegin) {\n          modeBuffer += lexeme;\n        }\n        processBuffer();\n        if (!newMode.returnBegin && !newMode.excludeBegin) {\n          modeBuffer = lexeme;\n        }\n      }\n      startNewMode(newMode, match);\n      return newMode.returnBegin ? 0 : lexeme.length;\n    }\n\n    /**\n     * Handle the potential end of mode\n     *\n     * @param {RegExpMatchArray} match - the current match\n     */\n    function doEndMatch(match) {\n      const lexeme = match[0];\n      const matchPlusRemainder = codeToHighlight.substring(match.index);\n\n      const endMode = endOfMode(top, match, matchPlusRemainder);\n      if (!endMode) { return NO_MATCH; }\n\n      const origin = top;\n      if (top.endScope && top.endScope._wrap) {\n        processBuffer();\n        emitKeyword(lexeme, top.endScope._wrap);\n      } else if (top.endScope && top.endScope._multi) {\n        processBuffer();\n        emitMultiClass(top.endScope, match);\n      } else if (origin.skip) {\n        modeBuffer += lexeme;\n      } else {\n        if (!(origin.returnEnd || origin.excludeEnd)) {\n          modeBuffer += lexeme;\n        }\n        processBuffer();\n        if (origin.excludeEnd) {\n          modeBuffer = lexeme;\n        }\n      }\n      do {\n        if (top.scope) {\n          emitter.closeNode();\n        }\n        if (!top.skip && !top.subLanguage) {\n          relevance += top.relevance;\n        }\n        top = top.parent;\n      } while (top !== endMode.parent);\n      if (endMode.starts) {\n        startNewMode(endMode.starts, match);\n      }\n      return origin.returnEnd ? 0 : lexeme.length;\n    }\n\n    function processContinuations() {\n      const list = [];\n      for (let current = top; current !== language; current = current.parent) {\n        if (current.scope) {\n          list.unshift(current.scope);\n        }\n      }\n      list.forEach(item => emitter.openNode(item));\n    }\n\n    /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n    let lastMatch = {};\n\n    /**\n     *  Process an individual match\n     *\n     * @param {string} textBeforeMatch - text preceding the match (since the last match)\n     * @param {EnhancedMatch} [match] - the match itself\n     */\n    function processLexeme(textBeforeMatch, match) {\n      const lexeme = match && match[0];\n\n      // add non-matched text to the current mode buffer\n      modeBuffer += textBeforeMatch;\n\n      if (lexeme == null) {\n        processBuffer();\n        return 0;\n      }\n\n      // we've found a 0 width match and we're stuck, so we need to advance\n      // this happens when we have badly behaved rules that have optional matchers to the degree that\n      // sometimes they can end up matching nothing at all\n      // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n      if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n        // spit the \"skipped\" character that our regex choked on back into the output sequence\n        modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n        if (!SAFE_MODE) {\n          /** @type {AnnotatedError} */\n          const err = new Error(`0 width match regex (${languageName})`);\n          err.languageName = languageName;\n          err.badRule = lastMatch.rule;\n          throw err;\n        }\n        return 1;\n      }\n      lastMatch = match;\n\n      if (match.type === \"begin\") {\n        return doBeginMatch(match);\n      } else if (match.type === \"illegal\" && !ignoreIllegals) {\n        // illegal match, we do not continue processing\n        /** @type {AnnotatedError} */\n        const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '<unnamed>') + '\"');\n        err.mode = top;\n        throw err;\n      } else if (match.type === \"end\") {\n        const processed = doEndMatch(match);\n        if (processed !== NO_MATCH) {\n          return processed;\n        }\n      }\n\n      // edge case for when illegal matches $ (end of line) which is technically\n      // a 0 width match but not a begin/end match so it's not caught by the\n      // first handler (when ignoreIllegals is true)\n      if (match.type === \"illegal\" && lexeme === \"\") {\n        // advance so we aren't stuck in an infinite loop\n        modeBuffer += \"\\n\";\n        return 1;\n      }\n\n      // infinite loops are BAD, this is a last ditch catch all. if we have a\n      // decent number of iterations yet our index (cursor position in our\n      // parsing) still 3x behind our index then something is very wrong\n      // so we bail\n      if (iterations > 100000 && iterations > match.index * 3) {\n        const err = new Error('potential infinite loop, way more iterations than matches');\n        throw err;\n      }\n\n      /*\n      Why might be find ourselves here?  An potential end match that was\n      triggered but could not be completed.  IE, `doEndMatch` returned NO_MATCH.\n      (this could be because a callback requests the match be ignored, etc)\n\n      This causes no real harm other than stopping a few times too many.\n      */\n\n      modeBuffer += lexeme;\n      return lexeme.length;\n    }\n\n    const language = getLanguage(languageName);\n    if (!language) {\n      error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n      throw new Error('Unknown language: \"' + languageName + '\"');\n    }\n\n    const md = compileLanguage(language);\n    let result = '';\n    /** @type {CompiledMode} */\n    let top = continuation || md;\n    /** @type Record<string,CompiledMode> */\n    const continuations = {}; // keep continuations for sub-languages\n    const emitter = new options.__emitter(options);\n    processContinuations();\n    let modeBuffer = '';\n    let relevance = 0;\n    let index = 0;\n    let iterations = 0;\n    let resumeScanAtSamePosition = false;\n\n    try {\n      if (!language.__emitTokens) {\n        top.matcher.considerAll();\n\n        for (;;) {\n          iterations++;\n          if (resumeScanAtSamePosition) {\n            // only regexes not matched previously will now be\n            // considered for a potential match\n            resumeScanAtSamePosition = false;\n          } else {\n            top.matcher.considerAll();\n          }\n          top.matcher.lastIndex = index;\n\n          const match = top.matcher.exec(codeToHighlight);\n          // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n          if (!match) break;\n\n          const beforeMatch = codeToHighlight.substring(index, match.index);\n          const processedCount = processLexeme(beforeMatch, match);\n          index = match.index + processedCount;\n        }\n        processLexeme(codeToHighlight.substring(index));\n      } else {\n        language.__emitTokens(codeToHighlight, emitter);\n      }\n\n      emitter.finalize();\n      result = emitter.toHTML();\n\n      return {\n        language: languageName,\n        value: result,\n        relevance,\n        illegal: false,\n        _emitter: emitter,\n        _top: top\n      };\n    } catch (err) {\n      if (err.message && err.message.includes('Illegal')) {\n        return {\n          language: languageName,\n          value: escape(codeToHighlight),\n          illegal: true,\n          relevance: 0,\n          _illegalBy: {\n            message: err.message,\n            index,\n            context: codeToHighlight.slice(index - 100, index + 100),\n            mode: err.mode,\n            resultSoFar: result\n          },\n          _emitter: emitter\n        };\n      } else if (SAFE_MODE) {\n        return {\n          language: languageName,\n          value: escape(codeToHighlight),\n          illegal: false,\n          relevance: 0,\n          errorRaised: err,\n          _emitter: emitter,\n          _top: top\n        };\n      } else {\n        throw err;\n      }\n    }\n  }\n\n  /**\n   * returns a valid highlight result, without actually doing any actual work,\n   * auto highlight starts with this and it's possible for small snippets that\n   * auto-detection may not find a better match\n   * @param {string} code\n   * @returns {HighlightResult}\n   */\n  function justTextHighlightResult(code) {\n    const result = {\n      value: escape(code),\n      illegal: false,\n      relevance: 0,\n      _top: PLAINTEXT_LANGUAGE,\n      _emitter: new options.__emitter(options)\n    };\n    result._emitter.addText(code);\n    return result;\n  }\n\n  /**\n  Highlighting with language detection. Accepts a string with the code to\n  highlight. Returns an object with the following properties:\n\n  - language (detected language)\n  - relevance (int)\n  - value (an HTML string with highlighting markup)\n  - secondBest (object with the same structure for second-best heuristically\n    detected language, may be absent)\n\n    @param {string} code\n    @param {Array<string>} [languageSubset]\n    @returns {AutoHighlightResult}\n  */\n  function highlightAuto(code, languageSubset) {\n    languageSubset = languageSubset || options.languages || Object.keys(languages);\n    const plaintext = justTextHighlightResult(code);\n\n    const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n      _highlight(name, code, false)\n    );\n    results.unshift(plaintext); // plaintext is always an option\n\n    const sorted = results.sort((a, b) => {\n      // sort base on relevance\n      if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n      // always award the tie to the base language\n      // ie if C++ and Arduino are tied, it's more likely to be C++\n      if (a.language && b.language) {\n        if (getLanguage(a.language).supersetOf === b.language) {\n          return 1;\n        } else if (getLanguage(b.language).supersetOf === a.language) {\n          return -1;\n        }\n      }\n\n      // otherwise say they are equal, which has the effect of sorting on\n      // relevance while preserving the original ordering - which is how ties\n      // have historically been settled, ie the language that comes first always\n      // wins in the case of a tie\n      return 0;\n    });\n\n    const [best, secondBest] = sorted;\n\n    /** @type {AutoHighlightResult} */\n    const result = best;\n    result.secondBest = secondBest;\n\n    return result;\n  }\n\n  /**\n   * Builds new class name for block given the language name\n   *\n   * @param {HTMLElement} element\n   * @param {string} [currentLang]\n   * @param {string} [resultLang]\n   */\n  function updateClassName(element, currentLang, resultLang) {\n    const language = (currentLang && aliases[currentLang]) || resultLang;\n\n    element.classList.add(\"hljs\");\n    element.classList.add(`language-${language}`);\n  }\n\n  /**\n   * Applies highlighting to a DOM node containing code.\n   *\n   * @param {HighlightedHTMLElement} element - the HTML element to highlight\n  */\n  function highlightElement(element) {\n    /** @type HTMLElement */\n    let node = null;\n    const language = blockLanguage(element);\n\n    if (shouldNotHighlight(language)) return;\n\n    fire(\"before:highlightElement\",\n      { el: element, language });\n\n    if (element.dataset.highlighted) {\n      console.log(\"Element previously highlighted. To highlight again, first unset `dataset.highlighted`.\", element);\n      return;\n    }\n\n    // we should be all text, no child nodes (unescaped HTML) - this is possibly\n    // an HTML injection attack - it's likely too late if this is already in\n    // production (the code has likely already done its damage by the time\n    // we're seeing it)... but we yell loudly about this so that hopefully it's\n    // more likely to be caught in development before making it to production\n    if (element.children.length > 0) {\n      if (!options.ignoreUnescapedHTML) {\n        console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n        console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n        console.warn(\"The element with unescaped HTML:\");\n        console.warn(element);\n      }\n      if (options.throwUnescapedHTML) {\n        const err = new HTMLInjectionError(\n          \"One of your code blocks includes unescaped HTML.\",\n          element.innerHTML\n        );\n        throw err;\n      }\n    }\n\n    node = element;\n    const text = node.textContent;\n    const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n    element.innerHTML = result.value;\n    element.dataset.highlighted = \"yes\";\n    updateClassName(element, language, result.language);\n    element.result = {\n      language: result.language,\n      // TODO: remove with version 11.0\n      re: result.relevance,\n      relevance: result.relevance\n    };\n    if (result.secondBest) {\n      element.secondBest = {\n        language: result.secondBest.language,\n        relevance: result.secondBest.relevance\n      };\n    }\n\n    fire(\"after:highlightElement\", { el: element, result, text });\n  }\n\n  /**\n   * Updates highlight.js global options with the passed options\n   *\n   * @param {Partial<HLJSOptions>} userOptions\n   */\n  function configure(userOptions) {\n    options = inherit(options, userOptions);\n  }\n\n  // TODO: remove v12, deprecated\n  const initHighlighting = () => {\n    highlightAll();\n    deprecated(\"10.6.0\", \"initHighlighting() deprecated.  Use highlightAll() now.\");\n  };\n\n  // TODO: remove v12, deprecated\n  function initHighlightingOnLoad() {\n    highlightAll();\n    deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated.  Use highlightAll() now.\");\n  }\n\n  let wantsHighlight = false;\n\n  /**\n   * auto-highlights all pre>code elements on the page\n   */\n  function highlightAll() {\n    function boot() {\n      // if a highlight was requested before DOM was loaded, do now\n      highlightAll();\n    }\n\n    // if we are called too early in the loading process\n    if (document.readyState === \"loading\") {\n      // make sure the event listener is only added once\n      if (!wantsHighlight) {\n        window.addEventListener('DOMContentLoaded', boot, false);\n      }\n      wantsHighlight = true;\n      return;\n    }\n\n    const blocks = document.querySelectorAll(options.cssSelector);\n    blocks.forEach(highlightElement);\n  }\n\n  /**\n   * Register a language grammar module\n   *\n   * @param {string} languageName\n   * @param {LanguageFn} languageDefinition\n   */\n  function registerLanguage(languageName, languageDefinition) {\n    let lang = null;\n    try {\n      lang = languageDefinition(hljs);\n    } catch (error$1) {\n      error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n      // hard or soft error\n      if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n      // languages that have serious errors are replaced with essentially a\n      // \"plaintext\" stand-in so that the code blocks will still get normal\n      // css classes applied to them - and one bad language won't break the\n      // entire highlighter\n      lang = PLAINTEXT_LANGUAGE;\n    }\n    // give it a temporary name if it doesn't have one in the meta-data\n    if (!lang.name) lang.name = languageName;\n    languages[languageName] = lang;\n    lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n    if (lang.aliases) {\n      registerAliases(lang.aliases, { languageName });\n    }\n  }\n\n  /**\n   * Remove a language grammar module\n   *\n   * @param {string} languageName\n   */\n  function unregisterLanguage(languageName) {\n    delete languages[languageName];\n    for (const alias of Object.keys(aliases)) {\n      if (aliases[alias] === languageName) {\n        delete aliases[alias];\n      }\n    }\n  }\n\n  /**\n   * @returns {string[]} List of language internal names\n   */\n  function listLanguages() {\n    return Object.keys(languages);\n  }\n\n  /**\n   * @param {string} name - name of the language to retrieve\n   * @returns {Language | undefined}\n   */\n  function getLanguage(name) {\n    name = (name || '').toLowerCase();\n    return languages[name] || languages[aliases[name]];\n  }\n\n  /**\n   *\n   * @param {string|string[]} aliasList - single alias or list of aliases\n   * @param {{languageName: string}} opts\n   */\n  function registerAliases(aliasList, { languageName }) {\n    if (typeof aliasList === 'string') {\n      aliasList = [aliasList];\n    }\n    aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n  }\n\n  /**\n   * Determines if a given language has auto-detection enabled\n   * @param {string} name - name of the language\n   */\n  function autoDetection(name) {\n    const lang = getLanguage(name);\n    return lang && !lang.disableAutodetect;\n  }\n\n  /**\n   * Upgrades the old highlightBlock plugins to the new\n   * highlightElement API\n   * @param {HLJSPlugin} plugin\n   */\n  function upgradePluginAPI(plugin) {\n    // TODO: remove with v12\n    if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n      plugin[\"before:highlightElement\"] = (data) => {\n        plugin[\"before:highlightBlock\"](\n          Object.assign({ block: data.el }, data)\n        );\n      };\n    }\n    if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n      plugin[\"after:highlightElement\"] = (data) => {\n        plugin[\"after:highlightBlock\"](\n          Object.assign({ block: data.el }, data)\n        );\n      };\n    }\n  }\n\n  /**\n   * @param {HLJSPlugin} plugin\n   */\n  function addPlugin(plugin) {\n    upgradePluginAPI(plugin);\n    plugins.push(plugin);\n  }\n\n  /**\n   * @param {HLJSPlugin} plugin\n   */\n  function removePlugin(plugin) {\n    const index = plugins.indexOf(plugin);\n    if (index !== -1) {\n      plugins.splice(index, 1);\n    }\n  }\n\n  /**\n   *\n   * @param {PluginEvent} event\n   * @param {any} args\n   */\n  function fire(event, args) {\n    const cb = event;\n    plugins.forEach(function(plugin) {\n      if (plugin[cb]) {\n        plugin[cb](args);\n      }\n    });\n  }\n\n  /**\n   * DEPRECATED\n   * @param {HighlightedHTMLElement} el\n   */\n  function deprecateHighlightBlock(el) {\n    deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n    deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n    return highlightElement(el);\n  }\n\n  /* Interface definition */\n  Object.assign(hljs, {\n    highlight,\n    highlightAuto,\n    highlightAll,\n    highlightElement,\n    // TODO: Remove with v12 API\n    highlightBlock: deprecateHighlightBlock,\n    configure,\n    initHighlighting,\n    initHighlightingOnLoad,\n    registerLanguage,\n    unregisterLanguage,\n    listLanguages,\n    getLanguage,\n    registerAliases,\n    autoDetection,\n    inherit,\n    addPlugin,\n    removePlugin\n  });\n\n  hljs.debugMode = function() { SAFE_MODE = false; };\n  hljs.safeMode = function() { SAFE_MODE = true; };\n  hljs.versionString = version;\n\n  hljs.regex = {\n    concat: concat,\n    lookahead: lookahead,\n    either: either,\n    optional: optional,\n    anyNumberOfTimes: anyNumberOfTimes\n  };\n\n  for (const key in MODES) {\n    // @ts-ignore\n    if (typeof MODES[key] === \"object\") {\n      // @ts-ignore\n      deepFreeze(MODES[key]);\n    }\n  }\n\n  // merge all the modes/regexes into our main object\n  Object.assign(hljs, MODES);\n\n  return hljs;\n};\n\n// Other names for the variable may break build script\nconst highlight = HLJS({});\n\n// returns a new instance of the highlighter to be used for extensions\n// check https://github.com/wooorm/lowlight/issues/47\nhighlight.newInstance = () => HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n",null,null,null,"/**\n * MIT License\n * \n * Copyright (c) 2014-present, Lee Byron and other contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar DELETE = 'delete';\n\n// Constants describing the size of trie nodes.\nvar SHIFT = 5; // Resulted in best performance after ______?\nvar SIZE = 1 << SHIFT;\nvar MASK = SIZE - 1;\n\n// A consistent shared value representing \"not set\" which equals nothing other\n// than itself, and nothing that could be provided externally.\nvar NOT_SET = {};\n\n// Boolean references, Rough equivalent of `bool &`.\nfunction MakeRef() {\n  return { value: false };\n}\n\nfunction SetRef(ref) {\n  if (ref) {\n    ref.value = true;\n  }\n}\n\n// A function which returns a value representing an \"owner\" for transient writes\n// to tries. The return value will only ever equal itself, and will not equal\n// the return of any subsequent call of this function.\nfunction OwnerID() {}\n\nfunction ensureSize(iter) {\n  if (iter.size === undefined) {\n    iter.size = iter.__iterate(returnTrue);\n  }\n  return iter.size;\n}\n\nfunction wrapIndex(iter, index) {\n  // This implements \"is array index\" which the ECMAString spec defines as:\n  //\n  //     A String property name P is an array index if and only if\n  //     ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n  //     to 2^32−1.\n  //\n  // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n  if (typeof index !== 'number') {\n    var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n    if ('' + uint32Index !== index || uint32Index === 4294967295) {\n      return NaN;\n    }\n    index = uint32Index;\n  }\n  return index < 0 ? ensureSize(iter) + index : index;\n}\n\nfunction returnTrue() {\n  return true;\n}\n\nfunction wholeSlice(begin, end, size) {\n  return (\n    ((begin === 0 && !isNeg(begin)) ||\n      (size !== undefined && begin <= -size)) &&\n    (end === undefined || (size !== undefined && end >= size))\n  );\n}\n\nfunction resolveBegin(begin, size) {\n  return resolveIndex(begin, size, 0);\n}\n\nfunction resolveEnd(end, size) {\n  return resolveIndex(end, size, size);\n}\n\nfunction resolveIndex(index, size, defaultIndex) {\n  // Sanitize indices using this shorthand for ToInt32(argument)\n  // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n  return index === undefined\n    ? defaultIndex\n    : isNeg(index)\n    ? size === Infinity\n      ? size\n      : Math.max(0, size + index) | 0\n    : size === undefined || size === index\n    ? index\n    : Math.min(size, index) | 0;\n}\n\nfunction isNeg(value) {\n  // Account for -0 which is negative, but not less than 0.\n  return value < 0 || (value === 0 && 1 / value === -Infinity);\n}\n\nvar IS_COLLECTION_SYMBOL = '@@__IMMUTABLE_ITERABLE__@@';\n\nfunction isCollection(maybeCollection) {\n  return Boolean(maybeCollection && maybeCollection[IS_COLLECTION_SYMBOL]);\n}\n\nvar IS_KEYED_SYMBOL = '@@__IMMUTABLE_KEYED__@@';\n\nfunction isKeyed(maybeKeyed) {\n  return Boolean(maybeKeyed && maybeKeyed[IS_KEYED_SYMBOL]);\n}\n\nvar IS_INDEXED_SYMBOL = '@@__IMMUTABLE_INDEXED__@@';\n\nfunction isIndexed(maybeIndexed) {\n  return Boolean(maybeIndexed && maybeIndexed[IS_INDEXED_SYMBOL]);\n}\n\nfunction isAssociative(maybeAssociative) {\n  return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n}\n\nvar Collection = function Collection(value) {\n  // eslint-disable-next-line no-constructor-return\n  return isCollection(value) ? value : Seq(value);\n};\n\nvar KeyedCollection = /*@__PURE__*/(function (Collection) {\n  function KeyedCollection(value) {\n    // eslint-disable-next-line no-constructor-return\n    return isKeyed(value) ? value : KeyedSeq(value);\n  }\n\n  if ( Collection ) KeyedCollection.__proto__ = Collection;\n  KeyedCollection.prototype = Object.create( Collection && Collection.prototype );\n  KeyedCollection.prototype.constructor = KeyedCollection;\n\n  return KeyedCollection;\n}(Collection));\n\nvar IndexedCollection = /*@__PURE__*/(function (Collection) {\n  function IndexedCollection(value) {\n    // eslint-disable-next-line no-constructor-return\n    return isIndexed(value) ? value : IndexedSeq(value);\n  }\n\n  if ( Collection ) IndexedCollection.__proto__ = Collection;\n  IndexedCollection.prototype = Object.create( Collection && Collection.prototype );\n  IndexedCollection.prototype.constructor = IndexedCollection;\n\n  return IndexedCollection;\n}(Collection));\n\nvar SetCollection = /*@__PURE__*/(function (Collection) {\n  function SetCollection(value) {\n    // eslint-disable-next-line no-constructor-return\n    return isCollection(value) && !isAssociative(value) ? value : SetSeq(value);\n  }\n\n  if ( Collection ) SetCollection.__proto__ = Collection;\n  SetCollection.prototype = Object.create( Collection && Collection.prototype );\n  SetCollection.prototype.constructor = SetCollection;\n\n  return SetCollection;\n}(Collection));\n\nCollection.Keyed = KeyedCollection;\nCollection.Indexed = IndexedCollection;\nCollection.Set = SetCollection;\n\nvar IS_SEQ_SYMBOL = '@@__IMMUTABLE_SEQ__@@';\n\nfunction isSeq(maybeSeq) {\n  return Boolean(maybeSeq && maybeSeq[IS_SEQ_SYMBOL]);\n}\n\nvar IS_RECORD_SYMBOL = '@@__IMMUTABLE_RECORD__@@';\n\nfunction isRecord(maybeRecord) {\n  return Boolean(maybeRecord && maybeRecord[IS_RECORD_SYMBOL]);\n}\n\nfunction isImmutable(maybeImmutable) {\n  return isCollection(maybeImmutable) || isRecord(maybeImmutable);\n}\n\nvar IS_ORDERED_SYMBOL = '@@__IMMUTABLE_ORDERED__@@';\n\nfunction isOrdered(maybeOrdered) {\n  return Boolean(maybeOrdered && maybeOrdered[IS_ORDERED_SYMBOL]);\n}\n\nvar ITERATE_KEYS = 0;\nvar ITERATE_VALUES = 1;\nvar ITERATE_ENTRIES = 2;\n\nvar REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nvar ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\nvar Iterator = function Iterator(next) {\n  this.next = next;\n};\n\nIterator.prototype.toString = function toString () {\n  return '[Iterator]';\n};\n\nIterator.KEYS = ITERATE_KEYS;\nIterator.VALUES = ITERATE_VALUES;\nIterator.ENTRIES = ITERATE_ENTRIES;\n\nIterator.prototype.inspect = Iterator.prototype.toSource = function () {\n  return this.toString();\n};\nIterator.prototype[ITERATOR_SYMBOL] = function () {\n  return this;\n};\n\nfunction iteratorValue(type, k, v, iteratorResult) {\n  var value = type === 0 ? k : type === 1 ? v : [k, v];\n  iteratorResult\n    ? (iteratorResult.value = value)\n    : (iteratorResult = {\n        value: value,\n        done: false,\n      });\n  return iteratorResult;\n}\n\nfunction iteratorDone() {\n  return { value: undefined, done: true };\n}\n\nfunction hasIterator(maybeIterable) {\n  if (Array.isArray(maybeIterable)) {\n    // IE11 trick as it does not support `Symbol.iterator`\n    return true;\n  }\n\n  return !!getIteratorFn(maybeIterable);\n}\n\nfunction isIterator(maybeIterator) {\n  return maybeIterator && typeof maybeIterator.next === 'function';\n}\n\nfunction getIterator(iterable) {\n  var iteratorFn = getIteratorFn(iterable);\n  return iteratorFn && iteratorFn.call(iterable);\n}\n\nfunction getIteratorFn(iterable) {\n  var iteratorFn =\n    iterable &&\n    ((REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n      iterable[FAUX_ITERATOR_SYMBOL]);\n  if (typeof iteratorFn === 'function') {\n    return iteratorFn;\n  }\n}\n\nfunction isEntriesIterable(maybeIterable) {\n  var iteratorFn = getIteratorFn(maybeIterable);\n  return iteratorFn && iteratorFn === maybeIterable.entries;\n}\n\nfunction isKeysIterable(maybeIterable) {\n  var iteratorFn = getIteratorFn(maybeIterable);\n  return iteratorFn && iteratorFn === maybeIterable.keys;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isArrayLike(value) {\n  if (Array.isArray(value) || typeof value === 'string') {\n    return true;\n  }\n\n  return (\n    value &&\n    typeof value === 'object' &&\n    Number.isInteger(value.length) &&\n    value.length >= 0 &&\n    (value.length === 0\n      ? // Only {length: 0} is considered Array-like.\n        Object.keys(value).length === 1\n      : // An object is only Array-like if it has a property where the last value\n        // in the array-like may be found (which could be undefined).\n        value.hasOwnProperty(value.length - 1))\n  );\n}\n\nvar Seq = /*@__PURE__*/(function (Collection) {\n  function Seq(value) {\n    // eslint-disable-next-line no-constructor-return\n    return value === undefined || value === null\n      ? emptySequence()\n      : isImmutable(value)\n      ? value.toSeq()\n      : seqFromValue(value);\n  }\n\n  if ( Collection ) Seq.__proto__ = Collection;\n  Seq.prototype = Object.create( Collection && Collection.prototype );\n  Seq.prototype.constructor = Seq;\n\n  Seq.prototype.toSeq = function toSeq () {\n    return this;\n  };\n\n  Seq.prototype.toString = function toString () {\n    return this.__toString('Seq {', '}');\n  };\n\n  Seq.prototype.cacheResult = function cacheResult () {\n    if (!this._cache && this.__iterateUncached) {\n      this._cache = this.entrySeq().toArray();\n      this.size = this._cache.length;\n    }\n    return this;\n  };\n\n  // abstract __iterateUncached(fn, reverse)\n\n  Seq.prototype.__iterate = function __iterate (fn, reverse) {\n    var cache = this._cache;\n    if (cache) {\n      var size = cache.length;\n      var i = 0;\n      while (i !== size) {\n        var entry = cache[reverse ? size - ++i : i++];\n        if (fn(entry[1], entry[0], this) === false) {\n          break;\n        }\n      }\n      return i;\n    }\n    return this.__iterateUncached(fn, reverse);\n  };\n\n  // abstract __iteratorUncached(type, reverse)\n\n  Seq.prototype.__iterator = function __iterator (type, reverse) {\n    var cache = this._cache;\n    if (cache) {\n      var size = cache.length;\n      var i = 0;\n      return new Iterator(function () {\n        if (i === size) {\n          return iteratorDone();\n        }\n        var entry = cache[reverse ? size - ++i : i++];\n        return iteratorValue(type, entry[0], entry[1]);\n      });\n    }\n    return this.__iteratorUncached(type, reverse);\n  };\n\n  return Seq;\n}(Collection));\n\nvar KeyedSeq = /*@__PURE__*/(function (Seq) {\n  function KeyedSeq(value) {\n    // eslint-disable-next-line no-constructor-return\n    return value === undefined || value === null\n      ? emptySequence().toKeyedSeq()\n      : isCollection(value)\n      ? isKeyed(value)\n        ? value.toSeq()\n        : value.fromEntrySeq()\n      : isRecord(value)\n      ? value.toSeq()\n      : keyedSeqFromValue(value);\n  }\n\n  if ( Seq ) KeyedSeq.__proto__ = Seq;\n  KeyedSeq.prototype = Object.create( Seq && Seq.prototype );\n  KeyedSeq.prototype.constructor = KeyedSeq;\n\n  KeyedSeq.prototype.toKeyedSeq = function toKeyedSeq () {\n    return this;\n  };\n\n  return KeyedSeq;\n}(Seq));\n\nvar IndexedSeq = /*@__PURE__*/(function (Seq) {\n  function IndexedSeq(value) {\n    // eslint-disable-next-line no-constructor-return\n    return value === undefined || value === null\n      ? emptySequence()\n      : isCollection(value)\n      ? isKeyed(value)\n        ? value.entrySeq()\n        : value.toIndexedSeq()\n      : isRecord(value)\n      ? value.toSeq().entrySeq()\n      : indexedSeqFromValue(value);\n  }\n\n  if ( Seq ) IndexedSeq.__proto__ = Seq;\n  IndexedSeq.prototype = Object.create( Seq && Seq.prototype );\n  IndexedSeq.prototype.constructor = IndexedSeq;\n\n  IndexedSeq.of = function of (/*...values*/) {\n    return IndexedSeq(arguments);\n  };\n\n  IndexedSeq.prototype.toIndexedSeq = function toIndexedSeq () {\n    return this;\n  };\n\n  IndexedSeq.prototype.toString = function toString () {\n    return this.__toString('Seq [', ']');\n  };\n\n  return IndexedSeq;\n}(Seq));\n\nvar SetSeq = /*@__PURE__*/(function (Seq) {\n  function SetSeq(value) {\n    // eslint-disable-next-line no-constructor-return\n    return (\n      isCollection(value) && !isAssociative(value) ? value : IndexedSeq(value)\n    ).toSetSeq();\n  }\n\n  if ( Seq ) SetSeq.__proto__ = Seq;\n  SetSeq.prototype = Object.create( Seq && Seq.prototype );\n  SetSeq.prototype.constructor = SetSeq;\n\n  SetSeq.of = function of (/*...values*/) {\n    return SetSeq(arguments);\n  };\n\n  SetSeq.prototype.toSetSeq = function toSetSeq () {\n    return this;\n  };\n\n  return SetSeq;\n}(Seq));\n\nSeq.isSeq = isSeq;\nSeq.Keyed = KeyedSeq;\nSeq.Set = SetSeq;\nSeq.Indexed = IndexedSeq;\n\nSeq.prototype[IS_SEQ_SYMBOL] = true;\n\n// #pragma Root Sequences\n\nvar ArraySeq = /*@__PURE__*/(function (IndexedSeq) {\n  function ArraySeq(array) {\n    this._array = array;\n    this.size = array.length;\n  }\n\n  if ( IndexedSeq ) ArraySeq.__proto__ = IndexedSeq;\n  ArraySeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n  ArraySeq.prototype.constructor = ArraySeq;\n\n  ArraySeq.prototype.get = function get (index, notSetValue) {\n    return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n  };\n\n  ArraySeq.prototype.__iterate = function __iterate (fn, reverse) {\n    var array = this._array;\n    var size = array.length;\n    var i = 0;\n    while (i !== size) {\n      var ii = reverse ? size - ++i : i++;\n      if (fn(array[ii], ii, this) === false) {\n        break;\n      }\n    }\n    return i;\n  };\n\n  ArraySeq.prototype.__iterator = function __iterator (type, reverse) {\n    var array = this._array;\n    var size = array.length;\n    var i = 0;\n    return new Iterator(function () {\n      if (i === size) {\n        return iteratorDone();\n      }\n      var ii = reverse ? size - ++i : i++;\n      return iteratorValue(type, ii, array[ii]);\n    });\n  };\n\n  return ArraySeq;\n}(IndexedSeq));\n\nvar ObjectSeq = /*@__PURE__*/(function (KeyedSeq) {\n  function ObjectSeq(object) {\n    var keys = Object.keys(object).concat(\n      Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(object) : []\n    );\n    this._object = object;\n    this._keys = keys;\n    this.size = keys.length;\n  }\n\n  if ( KeyedSeq ) ObjectSeq.__proto__ = KeyedSeq;\n  ObjectSeq.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n  ObjectSeq.prototype.constructor = ObjectSeq;\n\n  ObjectSeq.prototype.get = function get (key, notSetValue) {\n    if (notSetValue !== undefined && !this.has(key)) {\n      return notSetValue;\n    }\n    return this._object[key];\n  };\n\n  ObjectSeq.prototype.has = function has (key) {\n    return hasOwnProperty.call(this._object, key);\n  };\n\n  ObjectSeq.prototype.__iterate = function __iterate (fn, reverse) {\n    var object = this._object;\n    var keys = this._keys;\n    var size = keys.length;\n    var i = 0;\n    while (i !== size) {\n      var key = keys[reverse ? size - ++i : i++];\n      if (fn(object[key], key, this) === false) {\n        break;\n      }\n    }\n    return i;\n  };\n\n  ObjectSeq.prototype.__iterator = function __iterator (type, reverse) {\n    var object = this._object;\n    var keys = this._keys;\n    var size = keys.length;\n    var i = 0;\n    return new Iterator(function () {\n      if (i === size) {\n        return iteratorDone();\n      }\n      var key = keys[reverse ? size - ++i : i++];\n      return iteratorValue(type, key, object[key]);\n    });\n  };\n\n  return ObjectSeq;\n}(KeyedSeq));\nObjectSeq.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar CollectionSeq = /*@__PURE__*/(function (IndexedSeq) {\n  function CollectionSeq(collection) {\n    this._collection = collection;\n    this.size = collection.length || collection.size;\n  }\n\n  if ( IndexedSeq ) CollectionSeq.__proto__ = IndexedSeq;\n  CollectionSeq.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n  CollectionSeq.prototype.constructor = CollectionSeq;\n\n  CollectionSeq.prototype.__iterateUncached = function __iterateUncached (fn, reverse) {\n    if (reverse) {\n      return this.cacheResult().__iterate(fn, reverse);\n    }\n    var collection = this._collection;\n    var iterator = getIterator(collection);\n    var iterations = 0;\n    if (isIterator(iterator)) {\n      var step;\n      while (!(step = iterator.next()).done) {\n        if (fn(step.value, iterations++, this) === false) {\n          break;\n        }\n      }\n    }\n    return iterations;\n  };\n\n  CollectionSeq.prototype.__iteratorUncached = function __iteratorUncached (type, reverse) {\n    if (reverse) {\n      return this.cacheResult().__iterator(type, reverse);\n    }\n    var collection = this._collection;\n    var iterator = getIterator(collection);\n    if (!isIterator(iterator)) {\n      return new Iterator(iteratorDone);\n    }\n    var iterations = 0;\n    return new Iterator(function () {\n      var step = iterator.next();\n      return step.done ? step : iteratorValue(type, iterations++, step.value);\n    });\n  };\n\n  return CollectionSeq;\n}(IndexedSeq));\n\n// # pragma Helper functions\n\nvar EMPTY_SEQ;\n\nfunction emptySequence() {\n  return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n}\n\nfunction keyedSeqFromValue(value) {\n  var seq = maybeIndexedSeqFromValue(value);\n  if (seq) {\n    return seq.fromEntrySeq();\n  }\n  if (typeof value === 'object') {\n    return new ObjectSeq(value);\n  }\n  throw new TypeError(\n    'Expected Array or collection object of [k, v] entries, or keyed object: ' +\n      value\n  );\n}\n\nfunction indexedSeqFromValue(value) {\n  var seq = maybeIndexedSeqFromValue(value);\n  if (seq) {\n    return seq;\n  }\n  throw new TypeError(\n    'Expected Array or collection object of values: ' + value\n  );\n}\n\nfunction seqFromValue(value) {\n  var seq = maybeIndexedSeqFromValue(value);\n  if (seq) {\n    return isEntriesIterable(value)\n      ? seq.fromEntrySeq()\n      : isKeysIterable(value)\n      ? seq.toSetSeq()\n      : seq;\n  }\n  if (typeof value === 'object') {\n    return new ObjectSeq(value);\n  }\n  throw new TypeError(\n    'Expected Array or collection object of values, or keyed object: ' + value\n  );\n}\n\nfunction maybeIndexedSeqFromValue(value) {\n  return isArrayLike(value)\n    ? new ArraySeq(value)\n    : hasIterator(value)\n    ? new CollectionSeq(value)\n    : undefined;\n}\n\nvar IS_MAP_SYMBOL = '@@__IMMUTABLE_MAP__@@';\n\nfunction isMap(maybeMap) {\n  return Boolean(maybeMap && maybeMap[IS_MAP_SYMBOL]);\n}\n\nfunction isOrderedMap(maybeOrderedMap) {\n  return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n}\n\nfunction isValueObject(maybeValue) {\n  return Boolean(\n    maybeValue &&\n      typeof maybeValue.equals === 'function' &&\n      typeof maybeValue.hashCode === 'function'\n  );\n}\n\n/**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n *     var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n *     var date2 = new Date(1234567890000);\n *     date1.valueOf(); // 1234567890000\n *     assert( date1 !== date2 );\n *     assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n *     assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n *     if (a.equals(b)) {\n *       assert( a.hashCode() === b.hashCode() );\n *     }\n *\n * All Immutable collections are Value Objects: they implement `equals()`\n * and `hashCode()`.\n */\nfunction is(valueA, valueB) {\n  if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n    return true;\n  }\n  if (!valueA || !valueB) {\n    return false;\n  }\n  if (\n    typeof valueA.valueOf === 'function' &&\n    typeof valueB.valueOf === 'function'\n  ) {\n    valueA = valueA.valueOf();\n    valueB = valueB.valueOf();\n    if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n      return true;\n    }\n    if (!valueA || !valueB) {\n      return false;\n    }\n  }\n  return !!(\n    isValueObject(valueA) &&\n    isValueObject(valueB) &&\n    valueA.equals(valueB)\n  );\n}\n\nvar imul =\n  typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2\n    ? Math.imul\n    : function imul(a, b) {\n        a |= 0; // int\n        b |= 0; // int\n        var c = a & 0xffff;\n        var d = b & 0xffff;\n        // Shift by 0 fixes the sign on the high part.\n        return (c * d + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0)) | 0; // int\n      };\n\n// v8 has an optimization for storing 31-bit signed numbers.\n// Values which have either 00 or 11 as the high order bits qualify.\n// This function drops the highest order bit in a signed number, maintaining\n// the sign bit.\nfunction smi(i32) {\n  return ((i32 >>> 1) & 0x40000000) | (i32 & 0xbfffffff);\n}\n\nvar defaultValueOf = Object.prototype.valueOf;\n\nfunction hash(o) {\n  if (o == null) {\n    return hashNullish(o);\n  }\n\n  if (typeof o.hashCode === 'function') {\n    // Drop any high bits from accidentally long hash codes.\n    return smi(o.hashCode(o));\n  }\n\n  var v = valueOf(o);\n\n  if (v == null) {\n    return hashNullish(v);\n  }\n\n  switch (typeof v) {\n    case 'boolean':\n      // The hash values for built-in constants are a 1 value for each 5-byte\n      // shift region expect for the first, which encodes the value. This\n      // reduces the odds of a hash collision for these common values.\n      return v ? 0x42108421 : 0x42108420;\n    case 'number':\n      return hashNumber(v);\n    case 'string':\n      return v.length > STRING_HASH_CACHE_MIN_STRLEN\n        ? cachedHashString(v)\n        : hashString(v);\n    case 'object':\n    case 'function':\n      return hashJSObj(v);\n    case 'symbol':\n      return hashSymbol(v);\n    default:\n      if (typeof v.toString === 'function') {\n        return hashString(v.toString());\n      }\n      throw new Error('Value type ' + typeof v + ' cannot be hashed.');\n  }\n}\n\nfunction hashNullish(nullish) {\n  return nullish === null ? 0x42108422 : /* undefined */ 0x42108423;\n}\n\n// Compress arbitrarily large numbers into smi hashes.\nfunction hashNumber(n) {\n  if (n !== n || n === Infinity) {\n    return 0;\n  }\n  var hash = n | 0;\n  if (hash !== n) {\n    hash ^= n * 0xffffffff;\n  }\n  while (n > 0xffffffff) {\n    n /= 0xffffffff;\n    hash ^= n;\n  }\n  return smi(hash);\n}\n\nfunction cachedHashString(string) {\n  var hashed = stringHashCache[string];\n  if (hashed === undefined) {\n    hashed = hashString(string);\n    if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n      STRING_HASH_CACHE_SIZE = 0;\n      stringHashCache = {};\n    }\n    STRING_HASH_CACHE_SIZE++;\n    stringHashCache[string] = hashed;\n  }\n  return hashed;\n}\n\n// http://jsperf.com/hashing-strings\nfunction hashString(string) {\n  // This is the hash from JVM\n  // The hash code for a string is computed as\n  // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n  // where s[i] is the ith character of the string and n is the length of\n  // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n  // (exclusive) by dropping high bits.\n  var hashed = 0;\n  for (var ii = 0; ii < string.length; ii++) {\n    hashed = (31 * hashed + string.charCodeAt(ii)) | 0;\n  }\n  return smi(hashed);\n}\n\nfunction hashSymbol(sym) {\n  var hashed = symbolMap[sym];\n  if (hashed !== undefined) {\n    return hashed;\n  }\n\n  hashed = nextHash();\n\n  symbolMap[sym] = hashed;\n\n  return hashed;\n}\n\nfunction hashJSObj(obj) {\n  var hashed;\n  if (usingWeakMap) {\n    hashed = weakMap.get(obj);\n    if (hashed !== undefined) {\n      return hashed;\n    }\n  }\n\n  hashed = obj[UID_HASH_KEY];\n  if (hashed !== undefined) {\n    return hashed;\n  }\n\n  if (!canDefineProperty) {\n    hashed = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n    if (hashed !== undefined) {\n      return hashed;\n    }\n\n    hashed = getIENodeHash(obj);\n    if (hashed !== undefined) {\n      return hashed;\n    }\n  }\n\n  hashed = nextHash();\n\n  if (usingWeakMap) {\n    weakMap.set(obj, hashed);\n  } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n    throw new Error('Non-extensible objects are not allowed as keys.');\n  } else if (canDefineProperty) {\n    Object.defineProperty(obj, UID_HASH_KEY, {\n      enumerable: false,\n      configurable: false,\n      writable: false,\n      value: hashed,\n    });\n  } else if (\n    obj.propertyIsEnumerable !== undefined &&\n    obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable\n  ) {\n    // Since we can't define a non-enumerable property on the object\n    // we'll hijack one of the less-used non-enumerable properties to\n    // save our hash on it. Since this is a function it will not show up in\n    // `JSON.stringify` which is what we want.\n    obj.propertyIsEnumerable = function () {\n      return this.constructor.prototype.propertyIsEnumerable.apply(\n        this,\n        arguments\n      );\n    };\n    obj.propertyIsEnumerable[UID_HASH_KEY] = hashed;\n  } else if (obj.nodeType !== undefined) {\n    // At this point we couldn't get the IE `uniqueID` to use as a hash\n    // and we couldn't use a non-enumerable property to exploit the\n    // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n    // itself.\n    obj[UID_HASH_KEY] = hashed;\n  } else {\n    throw new Error('Unable to set a non-enumerable property on object.');\n  }\n\n  return hashed;\n}\n\n// Get references to ES5 object methods.\nvar isExtensible = Object.isExtensible;\n\n// True if Object.defineProperty works as expected. IE8 fails this test.\nvar canDefineProperty = (function () {\n  try {\n    Object.defineProperty({}, '@', {});\n    return true;\n  } catch (e) {\n    return false;\n  }\n})();\n\n// IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n// and avoid memory leaks from the IE cloneNode bug.\nfunction getIENodeHash(node) {\n  if (node && node.nodeType > 0) {\n    switch (node.nodeType) {\n      case 1: // Element\n        return node.uniqueID;\n      case 9: // Document\n        return node.documentElement && node.documentElement.uniqueID;\n    }\n  }\n}\n\nfunction valueOf(obj) {\n  return obj.valueOf !== defaultValueOf && typeof obj.valueOf === 'function'\n    ? obj.valueOf(obj)\n    : obj;\n}\n\nfunction nextHash() {\n  var nextHash = ++_objHashUID;\n  if (_objHashUID & 0x40000000) {\n    _objHashUID = 0;\n  }\n  return nextHash;\n}\n\n// If possible, use a WeakMap.\nvar usingWeakMap = typeof WeakMap === 'function';\nvar weakMap;\nif (usingWeakMap) {\n  weakMap = new WeakMap();\n}\n\nvar symbolMap = Object.create(null);\n\nvar _objHashUID = 0;\n\nvar UID_HASH_KEY = '__immutablehash__';\nif (typeof Symbol === 'function') {\n  UID_HASH_KEY = Symbol(UID_HASH_KEY);\n}\n\nvar STRING_HASH_CACHE_MIN_STRLEN = 16;\nvar STRING_HASH_CACHE_MAX_SIZE = 255;\nvar STRING_HASH_CACHE_SIZE = 0;\nvar stringHashCache = {};\n\nvar ToKeyedSequence = /*@__PURE__*/(function (KeyedSeq) {\n  function ToKeyedSequence(indexed, useKeys) {\n    this._iter = indexed;\n    this._useKeys = useKeys;\n    this.size = indexed.size;\n  }\n\n  if ( KeyedSeq ) ToKeyedSequence.__proto__ = KeyedSeq;\n  ToKeyedSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n  ToKeyedSequence.prototype.constructor = ToKeyedSequence;\n\n  ToKeyedSequence.prototype.get = function get (key, notSetValue) {\n    return this._iter.get(key, notSetValue);\n  };\n\n  ToKeyedSequence.prototype.has = function has (key) {\n    return this._iter.has(key);\n  };\n\n  ToKeyedSequence.prototype.valueSeq = function valueSeq () {\n    return this._iter.valueSeq();\n  };\n\n  ToKeyedSequence.prototype.reverse = function reverse () {\n    var this$1$1 = this;\n\n    var reversedSequence = reverseFactory(this, true);\n    if (!this._useKeys) {\n      reversedSequence.valueSeq = function () { return this$1$1._iter.toSeq().reverse(); };\n    }\n    return reversedSequence;\n  };\n\n  ToKeyedSequence.prototype.map = function map (mapper, context) {\n    var this$1$1 = this;\n\n    var mappedSequence = mapFactory(this, mapper, context);\n    if (!this._useKeys) {\n      mappedSequence.valueSeq = function () { return this$1$1._iter.toSeq().map(mapper, context); };\n    }\n    return mappedSequence;\n  };\n\n  ToKeyedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n    var this$1$1 = this;\n\n    return this._iter.__iterate(function (v, k) { return fn(v, k, this$1$1); }, reverse);\n  };\n\n  ToKeyedSequence.prototype.__iterator = function __iterator (type, reverse) {\n    return this._iter.__iterator(type, reverse);\n  };\n\n  return ToKeyedSequence;\n}(KeyedSeq));\nToKeyedSequence.prototype[IS_ORDERED_SYMBOL] = true;\n\nvar ToIndexedSequence = /*@__PURE__*/(function (IndexedSeq) {\n  function ToIndexedSequence(iter) {\n    this._iter = iter;\n    this.size = iter.size;\n  }\n\n  if ( IndexedSeq ) ToIndexedSequence.__proto__ = IndexedSeq;\n  ToIndexedSequence.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n  ToIndexedSequence.prototype.constructor = ToIndexedSequence;\n\n  ToIndexedSequence.prototype.includes = function includes (value) {\n    return this._iter.includes(value);\n  };\n\n  ToIndexedSequence.prototype.__iterate = function __iterate (fn, reverse) {\n    var this$1$1 = this;\n\n    var i = 0;\n    reverse && ensureSize(this);\n    return this._iter.__iterate(\n      function (v) { return fn(v, reverse ? this$1$1.size - ++i : i++, this$1$1); },\n      reverse\n    );\n  };\n\n  ToIndexedSequence.prototype.__iterator = function __iterator (type, reverse) {\n    var this$1$1 = this;\n\n    var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n    var i = 0;\n    reverse && ensureSize(this);\n    return new Iterator(function () {\n      var step = iterator.next();\n      return step.done\n        ? step\n        : iteratorValue(\n            type,\n            reverse ? this$1$1.size - ++i : i++,\n            step.value,\n            step\n          );\n    });\n  };\n\n  return ToIndexedSequence;\n}(IndexedSeq));\n\nvar ToSetSequence = /*@__PURE__*/(function (SetSeq) {\n  function ToSetSequence(iter) {\n    this._iter = iter;\n    this.size = iter.size;\n  }\n\n  if ( SetSeq ) ToSetSequence.__proto__ = SetSeq;\n  ToSetSequence.prototype = Object.create( SetSeq && SetSeq.prototype );\n  ToSetSequence.prototype.constructor = ToSetSequence;\n\n  ToSetSequence.prototype.has = function has (key) {\n    return this._iter.includes(key);\n  };\n\n  ToSetSequence.prototype.__iterate = function __iterate (fn, reverse) {\n    var this$1$1 = this;\n\n    return this._iter.__iterate(function (v) { return fn(v, v, this$1$1); }, reverse);\n  };\n\n  ToSetSequence.prototype.__iterator = function __iterator (type, reverse) {\n    var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n    return new Iterator(function () {\n      var step = iterator.next();\n      return step.done\n        ? step\n        : iteratorValue(type, step.value, step.value, step);\n    });\n  };\n\n  return ToSetSequence;\n}(SetSeq));\n\nvar FromEntriesSequence = /*@__PURE__*/(function (KeyedSeq) {\n  function FromEntriesSequence(entries) {\n    this._iter = entries;\n    this.size = entries.size;\n  }\n\n  if ( KeyedSeq ) FromEntriesSequence.__proto__ = KeyedSeq;\n  FromEntriesSequence.prototype = Object.create( KeyedSeq && KeyedSeq.prototype );\n  FromEntriesSequence.prototype.constructor = FromEntriesSequence;\n\n  FromEntriesSequence.prototype.entrySeq = function entrySeq () {\n    return this._iter.toSeq();\n  };\n\n  FromEntriesSequence.prototype.__iterate = function __iterate (fn, reverse) {\n    var this$1$1 = this;\n\n    return this._iter.__iterate(function (entry) {\n      // Check if entry exists first so array access doesn't throw for holes\n      // in the parent iteration.\n      if (entry) {\n        validateEntry(entry);\n        var indexedCollection = isCollection(entry);\n        return fn(\n          indexedCollection ? entry.get(1) : entry[1],\n          indexedCollection ? entry.get(0) : entry[0],\n          this$1$1\n        );\n      }\n    }, reverse);\n  };\n\n  FromEntriesSequence.prototype.__iterator = function __iterator (type, reverse) {\n    var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n    return new Iterator(function () {\n      while (true) {\n        var step = iterator.next();\n        if (step.done) {\n          return step;\n        }\n        var entry = step.value;\n        // Check if entry exists first so array access doesn't throw for holes\n        // in the parent iteration.\n        if (entry) {\n          validateEntry(entry);\n          var indexedCollection = isCollection(entry);\n          return iteratorValue(\n            type,\n            indexedCollection ? entry.get(0) : entry[0],\n            indexedCollection ? entry.get(1) : entry[1],\n            step\n          );\n        }\n      }\n    });\n  };\n\n  return FromEntriesSequence;\n}(KeyedSeq));\n\nToIndexedSequence.prototype.cacheResult =\n  ToKeyedSequence.prototype.cacheResult =\n  ToSetSequence.prototype.cacheResult =\n  FromEntriesSequence.prototype.cacheResult =\n    cacheResultThrough;\n\nfunction flipFactory(collection) {\n  var flipSequence = makeSequence(collection);\n  flipSequence._iter = collection;\n  flipSequence.size = collection.size;\n  flipSequence.flip = function () { return collection; };\n  flipSequence.reverse = function () {\n    var reversedSequence = collection.reverse.apply(this); // super.reverse()\n    reversedSequence.flip = function () { return collection.reverse(); };\n    return reversedSequence;\n  };\n  flipSequence.has = function (key) { return collection.includes(key); };\n  flipSequence.includes = function (key) { return collection.has(key); };\n  flipSequence.cacheResult = cacheResultThrough;\n  flipSequence.__iterateUncached = function (fn, reverse) {\n    var this$1$1 = this;\n\n    return collection.__iterate(function (v, k) { return fn(k, v, this$1$1) !== false; }, reverse);\n  };\n  flipSequence.__iteratorUncached = function (type, reverse) {\n    if (type === ITERATE_ENTRIES) {\n      var iterator = collection.__iterator(type, reverse);\n      return new Iterator(function () {\n        var step = iterator.next();\n        if (!step.done) {\n          var k = step.value[0];\n          step.value[0] = step.value[1];\n          step.value[1] = k;\n        }\n        return step;\n      });\n    }\n    return collection.__iterator(\n      type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n      reverse\n    );\n  };\n  return flipSequence;\n}\n\nfunction mapFactory(collection, mapper, context) {\n  var mappedSequence = makeSequence(collection);\n  mappedSequence.size = collection.size;\n  mappedSequence.has = function (key) { return collection.has(key); };\n  mappedSequence.get = function (key, notSetValue) {\n    var v = collection.get(key, NOT_SET);\n    return v === NOT_SET\n      ? notSetValue\n      : mapper.call(context, v, key, collection);\n  };\n  mappedSequence.__iterateUncached = function (fn, reverse) {\n    var this$1$1 = this;\n\n    return collection.__iterate(\n      function (v, k, c) { return fn(mapper.call(context, v, k, c), k, this$1$1) !== false; },\n      reverse\n    );\n  };\n  mappedSequence.__iteratorUncached = function (type, reverse) {\n    var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n    return new Iterator(function () {\n      var step = iterator.next();\n      if (step.done) {\n        return step;\n      }\n      var entry = step.value;\n      var key = entry[0];\n      return iteratorValue(\n        type,\n        key,\n        mapper.call(context, entry[1], key, collection),\n        step\n      );\n    });\n  };\n  return mappedSequence;\n}\n\nfunction reverseFactory(collection, useKeys) {\n  var this$1$1 = this;\n\n  var reversedSequence = makeSequence(collection);\n  reversedSequence._iter = collection;\n  reversedSequence.size = collection.size;\n  reversedSequence.reverse = function () { return collection; };\n  if (collection.flip) {\n    reversedSequence.flip = function () {\n      var flipSequence = flipFactory(collection);\n      flipSequence.reverse = function () { return collection.flip(); };\n      return flipSequence;\n    };\n  }\n  reversedSequence.get = function (key, notSetValue) { return collection.get(useKeys ? key : -1 - key, notSetValue); };\n  reversedSequence.has = function (key) { return collection.has(useKeys ? key : -1 - key); };\n  reversedSequence.includes = function (value) { return collection.includes(value); };\n  reversedSequence.cacheResult = cacheResultThrough;\n  reversedSequence.__iterate = function (fn, reverse) {\n    var this$1$1 = this;\n\n    var i = 0;\n    reverse && ensureSize(collection);\n    return collection.__iterate(\n      function (v, k) { return fn(v, useKeys ? k : reverse ? this$1$1.size - ++i : i++, this$1$1); },\n      !reverse\n    );\n  };\n  reversedSequence.__iterator = function (type, reverse) {\n    var i = 0;\n    reverse && ensureSize(collection);\n    var iterator = collection.__iterator(ITERATE_ENTRIES, !reverse);\n    return new Iterator(function () {\n      var step = iterator.next();\n      if (step.done) {\n        return step;\n      }\n      var entry = step.value;\n      return iteratorValue(\n        type,\n        useKeys ? entry[0] : reverse ? this$1$1.size - ++i : i++,\n        entry[1],\n        step\n      );\n    });\n  };\n  return reversedSequence;\n}\n\nfunction filterFactory(collection, predicate, context, useKeys) {\n  var filterSequence = makeSequence(collection);\n  if (useKeys) {\n    filterSequence.has = function (key) {\n      var v = collection.get(key, NOT_SET);\n      return v !== NOT_SET && !!predicate.call(context, v, key, collection);\n    };\n    filterSequence.get = function (key, notSetValue) {\n      var v = collection.get(key, NOT_SET);\n      return v !== NOT_SET && predicate.call(context, v, key, collection)\n        ? v\n        : notSetValue;\n    };\n  }\n  filterSequence.__iterateUncached = function (fn, reverse) {\n    var this$1$1 = this;\n\n    var iterations = 0;\n    collection.__iterate(function (v, k, c) {\n      if (predicate.call(context, v, k, c)) {\n        iterations++;\n        return fn(v, useKeys ? k : iterations - 1, this$1$1);\n      }\n    }, reverse);\n    return iterations;\n  };\n  filterSequence.__iteratorUncached = function (type, reverse) {\n    var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n    var iterations = 0;\n    return new Iterator(function () {\n      while (true) {\n        var step = iterator.next();\n        if (step.done) {\n          return step;\n        }\n        var entry = step.value;\n        var key = entry[0];\n        var value = entry[1];\n        if (predicate.call(context, value, key, collection)) {\n          return iteratorValue(type, useKeys ? key : iterations++, value, step);\n        }\n      }\n    });\n  };\n  return filterSequence;\n}\n\nfunction countByFactory(collection, grouper, context) {\n  var groups = Map().asMutable();\n  collection.__iterate(function (v, k) {\n    groups.update(grouper.call(context, v, k, collection), 0, function (a) { return a + 1; });\n  });\n  return groups.asImmutable();\n}\n\nfunction groupByFactory(collection, grouper, context) {\n  var isKeyedIter = isKeyed(collection);\n  var groups = (isOrdered(collection) ? OrderedMap() : Map()).asMutable();\n  collection.__iterate(function (v, k) {\n    groups.update(\n      grouper.call(context, v, k, collection),\n      function (a) { return ((a = a || []), a.push(isKeyedIter ? [k, v] : v), a); }\n    );\n  });\n  var coerce = collectionClass(collection);\n  return groups.map(function (arr) { return reify(collection, coerce(arr)); }).asImmutable();\n}\n\nfunction partitionFactory(collection, predicate, context) {\n  var isKeyedIter = isKeyed(collection);\n  var groups = [[], []];\n  collection.__iterate(function (v, k) {\n    groups[predicate.call(context, v, k, collection) ? 1 : 0].push(\n      isKeyedIter ? [k, v] : v\n    );\n  });\n  var coerce = collectionClass(collection);\n  return groups.map(function (arr) { return reify(collection, coerce(arr)); });\n}\n\nfunction sliceFactory(collection, begin, end, useKeys) {\n  var originalSize = collection.size;\n\n  if (wholeSlice(begin, end, originalSize)) {\n    return collection;\n  }\n\n  // begin or end can not be resolved if they were provided as negative numbers and\n  // this collection's size is unknown. In that case, cache first so there is\n  // a known size and these do not resolve to NaN.\n  if (typeof originalSize === 'undefined' && (begin < 0 || end < 0)) {\n    return sliceFactory(collection.toSeq().cacheResult(), begin, end, useKeys);\n  }\n\n  var resolvedBegin = resolveBegin(begin, originalSize);\n  var resolvedEnd = resolveEnd(end, originalSize);\n\n  // Note: resolvedEnd is undefined when the original sequence's length is\n  // unknown and this slice did not supply an end and should contain all\n  // elements after resolvedBegin.\n  // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n  var resolvedSize = resolvedEnd - resolvedBegin;\n  var sliceSize;\n  if (resolvedSize === resolvedSize) {\n    sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n  }\n\n  var sliceSeq = makeSequence(collection);\n\n  // If collection.size is undefined, the size of the realized sliceSeq is\n  // unknown at this point unless the number of items to slice is 0\n  sliceSeq.size =\n    sliceSize === 0 ? sliceSize : (collection.size && sliceSize) || undefined;\n\n  if (!useKeys && isSeq(collection) && sliceSize >= 0) {\n    sliceSeq.get = function (index, notSetValue) {\n      index = wrapIndex(this, index);\n      return index >= 0 && index < sliceSize\n        ? collection.get(index + resolvedBegin, notSetValue)\n        : notSetValue;\n    };\n  }\n\n  sliceSeq.__iterateUncached = function (fn, reverse) {\n    var this$1$1 = this;\n\n    if (sliceSize === 0) {\n      return 0;\n    }\n    if (reverse) {\n      return this.cacheResult().__iterate(fn, reverse);\n    }\n    var skipped = 0;\n    var isSkipping = true;\n    var iterations = 0;\n    collection.__iterate(function (v, k) {\n      if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n        iterations++;\n        return (\n          fn(v, useKeys ? k : iterations - 1, this$1$1) !== false &&\n          iterations !== sliceSize\n        );\n      }\n    });\n    return iterations;\n  };\n\n  sliceSeq.__iteratorUncached = function (type, reverse) {\n    if (sliceSize !== 0 && reverse) {\n      return this.cacheResult().__iterator(type, reverse);\n    }\n    // Don't bother instantiating parent iterator if taking 0.\n    if (sliceSize === 0) {\n      return new Iterator(iteratorDone);\n    }\n    var iterator = collection.__iterator(type, reverse);\n    var skipped = 0;\n    var iterations = 0;\n    return new Iterator(function () {\n      while (skipped++ < resolvedBegin) {\n        iterator.next();\n      }\n      if (++iterations > sliceSize) {\n        return iteratorDone();\n      }\n      var step = iterator.next();\n      if (useKeys || type === ITERATE_VALUES || step.done) {\n        return step;\n      }\n      if (type === ITERATE_KEYS) {\n        return iteratorValue(type, iterations - 1, undefined, step);\n      }\n      return iteratorValue(type, iterations - 1, step.value[1], step);\n    });\n  };\n\n  return sliceSeq;\n}\n\nfunction takeWhileFactory(collection, predicate, context) {\n  var takeSequence = makeSequence(collection);\n  takeSequence.__iterateUncached = function (fn, reverse) {\n    var this$1$1 = this;\n\n    if (reverse) {\n      return this.cacheResult().__iterate(fn, reverse);\n    }\n    var iterations = 0;\n    collection.__iterate(\n      function (v, k, c) { return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$1$1); }\n    );\n    return iterations;\n  };\n  takeSequence.__iteratorUncached = function (type, reverse) {\n    var this$1$1 = this;\n\n    if (reverse) {\n      return this.cacheResult().__iterator(type, reverse);\n    }\n    var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n    var iterating = true;\n    return new Iterator(function () {\n      if (!iterating) {\n        return iteratorDone();\n      }\n      var step = iterator.next();\n      if (step.done) {\n        return step;\n      }\n      var entry = step.value;\n      var k = entry[0];\n      var v = entry[1];\n      if (!predicate.call(context, v, k, this$1$1)) {\n        iterating = false;\n        return iteratorDone();\n      }\n      return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n    });\n  };\n  return takeSequence;\n}\n\nfunction skipWhileFactory(collection, predicate, context, useKeys) {\n  var skipSequence = makeSequence(collection);\n  skipSequence.__iterateUncached = function (fn, reverse) {\n    var this$1$1 = this;\n\n    if (reverse) {\n      return this.cacheResult().__iterate(fn, reverse);\n    }\n    var isSkipping = true;\n    var iterations = 0;\n    collection.__iterate(function (v, k, c) {\n      if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n        iterations++;\n        return fn(v, useKeys ? k : iterations - 1, this$1$1);\n      }\n    });\n    return iterations;\n  };\n  skipSequence.__iteratorUncached = function (type, reverse) {\n    var this$1$1 = this;\n\n    if (reverse) {\n      return this.cacheResult().__iterator(type, reverse);\n    }\n    var iterator = collection.__iterator(ITERATE_ENTRIES, reverse);\n    var skipping = true;\n    var iterations = 0;\n    return new Iterator(function () {\n      var step;\n      var k;\n      var v;\n      do {\n        step = iterator.next();\n        if (step.done) {\n          if (useKeys || type === ITERATE_VALUES) {\n            return step;\n          }\n          if (type === ITERATE_KEYS) {\n            return iteratorValue(type, iterations++, undefined, step);\n          }\n          return iteratorValue(type, iterations++, step.value[1], step);\n        }\n        var entry = step.value;\n        k = entry[0];\n        v = entry[1];\n        skipping && (skipping = predicate.call(context, v, k, this$1$1));\n      } while (skipping);\n      return type === ITERATE_ENTRIES ? step : iteratorValue(type, k, v, step);\n    });\n  };\n  return skipSequence;\n}\n\nfunction concatFactory(collection, values) {\n  var isKeyedCollection = isKeyed(collection);\n  var iters = [collection]\n    .concat(values)\n    .map(function (v) {\n      if (!isCollection(v)) {\n        v = isKeyedCollection\n          ? keyedSeqFromValue(v)\n          : indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n      } else if (isKeyedCollection) {\n        v = KeyedCollection(v);\n      }\n      return v;\n    })\n    .filter(function (v) { return v.size !== 0; });\n\n  if (iters.length === 0) {\n    return collection;\n  }\n\n  if (iters.length === 1) {\n    var singleton = iters[0];\n    if (\n      singleton === collection ||\n      (isKeyedCollection && isKeyed(singleton)) ||\n      (isIndexed(collection) && isIndexed(singleton))\n    ) {\n      return singleton;\n    }\n  }\n\n  var concatSeq = new ArraySeq(iters);\n  if (isKeyedCollection) {\n    concatSeq = concatSeq.toKeyedSeq();\n  } else if (!isIndexed(collection)) {\n    concatSeq = concatSeq.toSetSeq();\n  }\n  concatSeq = concatSeq.flatten(true);\n  concatSeq.size = iters.reduce(function (sum, seq) {\n    if (sum !== undefined) {\n      var size = seq.size;\n      if (size !== undefined) {\n        return sum + size;\n      }\n    }\n  }, 0);\n  return concatSeq;\n}\n\nfunction flattenFactory(collection, depth, useKeys) {\n  var flatSequence = makeSequence(collection);\n  flatSequence.__iterateUncached = function (fn, reverse) {\n    if (reverse) {\n      return this.cacheResult().__iterate(fn, reverse);\n    }\n    var iterations = 0;\n    var stopped = false;\n    function flatDeep(iter, currentDepth) {\n      iter.__iterate(function (v, k) {\n        if ((!depth || currentDepth < depth) && isCollection(v)) {\n          flatDeep(v, currentDepth + 1);\n        } else {\n          iterations++;\n          if (fn(v, useKeys ? k : iterations - 1, flatSequence) === false) {\n            stopped = true;\n          }\n        }\n        return !stopped;\n      }, reverse);\n    }\n    flatDeep(collection, 0);\n    return iterations;\n  };\n  flatSequence.__iteratorUncached = function (type, reverse) {\n    if (reverse) {\n      return this.cacheResult().__iterator(type, reverse);\n    }\n    var iterator = collection.__iterator(type, reverse);\n    var stack = [];\n    var iterations = 0;\n    return new Iterator(function () {\n      while (iterator) {\n        var step = iterator.next();\n        if (step.done !== false) {\n          iterator = stack.pop();\n          continue;\n        }\n        var v = step.value;\n        if (type === ITERATE_ENTRIES) {\n          v = v[1];\n        }\n        if ((!depth || stack.length < depth) && isCollection(v)) {\n          stack.push(iterator);\n          iterator = v.__iterator(type, reverse);\n        } else {\n          return useKeys ? step : iteratorValue(type, iterations++, v, step);\n        }\n      }\n      return iteratorDone();\n    });\n  };\n  return flatSequence;\n}\n\nfunction flatMapFactory(collection, mapper, context) {\n  var coerce = collectionClass(collection);\n  return collection\n    .toSeq()\n    .map(function (v, k) { return coerce(mapper.call(context, v, k, collection)); })\n    .flatten(true);\n}\n\nfunction interposeFactory(collection, separator) {\n  var interposedSequence = makeSequence(collection);\n  interposedSequence.size = collection.size && collection.size * 2 - 1;\n  interposedSequence.__iterateUncached = function (fn, reverse) {\n    var this$1$1 = this;\n\n    var iterations = 0;\n    collection.__iterate(\n      function (v) { return (!iterations || fn(separator, iterations++, this$1$1) !== false) &&\n        fn(v, iterations++, this$1$1) !== false; },\n      reverse\n    );\n    return iterations;\n  };\n  interposedSequence.__iteratorUncached = function (type, reverse) {\n    var iterator = collection.__iterator(ITERATE_VALUES, reverse);\n    var iterations = 0;\n    var step;\n    return new Iterator(function () {\n      if (!step || iterations % 2) {\n        step = iterator.next();\n        if (step.done) {\n          return step;\n        }\n      }\n      return iterations % 2\n        ? iteratorValue(type, iterations++, separator)\n        : iteratorValue(type, iterations++, step.value, step);\n    });\n  };\n  return interposedSequence;\n}\n\nfunction sortFactory(collection, comparator, mapper) {\n  if (!comparator) {\n    comparator = defaultComparator;\n  }\n  var isKeyedCollection = isKeyed(collection);\n  var index = 0;\n  var entries = collection\n    .toSeq()\n    .map(function (v, k) { return [k, v, index++, mapper ? mapper(v, k, collection) : v]; })\n    .valueSeq()\n    .toArray();\n  entries\n    .sort(function (a, b) { return comparator(a[3], b[3]) || a[2] - b[2]; })\n    .forEach(\n      isKeyedCollection\n        ? function (v, i) {\n            entries[i].length = 2;\n          }\n        : function (v, i) {\n            entries[i] = v[1];\n          }\n    );\n  return isKeyedCollection\n    ? KeyedSeq(entries)\n    : isIndexed(collection)\n    ? IndexedSeq(entries)\n    : SetSeq(entries);\n}\n\nfunction maxFactory(collection, comparator, mapper) {\n  if (!comparator) {\n    comparator = defaultComparator;\n  }\n  if (mapper) {\n    var entry = collection\n      .toSeq()\n      .map(function (v, k) { return [v, mapper(v, k, collection)]; })\n      .reduce(function (a, b) { return (maxCompare(comparator, a[1], b[1]) ? b : a); });\n    return entry && entry[0];\n  }\n  return collection.reduce(function (a, b) { return (maxCompare(comparator, a, b) ? b : a); });\n}\n\nfunction maxCompare(comparator, a, b) {\n  var comp = comparator(b, a);\n  // b is considered the new max if the comparator declares them equal, but\n  // they are not equal and b is in fact a nullish value.\n  return (\n    (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) ||\n    comp > 0\n  );\n}\n\nfunction zipWithFactory(keyIter, zipper, iters, zipAll) {\n  var zipSequence = makeSequence(keyIter);\n  var sizes = new ArraySeq(iters).map(function (i) { return i.size; });\n  zipSequence.size = zipAll ? sizes.max() : sizes.min();\n  // Note: this a generic base implementation of __iterate in terms of\n  // __iterator which may be more generically useful in the future.\n  zipSequence.__iterate = function (fn, reverse) {\n    /* generic:\n    var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n    var step;\n    var iterations = 0;\n    while (!(step = iterator.next()).done) {\n      iterations++;\n      if (fn(step.value[1], step.value[0], this) === false) {\n        break;\n      }\n    }\n    return iterations;\n    */\n    // indexed:\n    var iterator = this.__iterator(ITERATE_VALUES, reverse);\n    var step;\n    var iterations = 0;\n    while (!(step = iterator.next()).done) {\n      if (fn(step.value, iterations++, this) === false) {\n        break;\n      }\n    }\n    return iterations;\n  };\n  zipSequence.__iteratorUncached = function (type, reverse) {\n    var iterators = iters.map(\n      function (i) { return ((i = Collection(i)), getIterator(reverse ? i.reverse() : i)); }\n    );\n    var iterations = 0;\n    var isDone = false;\n    return new Iterator(function () {\n      var steps;\n      if (!isDone) {\n        steps = iterators.map(function (i) { return i.next(); });\n        isDone = zipAll ? steps.every(function (s) { return s.done; }) : steps.some(function (s) { return s.done; });\n      }\n      if (isDone) {\n        return iteratorDone();\n      }\n      return iteratorValue(\n        type,\n        iterations++,\n        zipper.apply(\n          null,\n          steps.map(function (s) { return s.value; })\n        )\n      );\n    });\n  };\n  return zipSequence;\n}\n\n// #pragma Helper Functions\n\nfunction reify(iter, seq) {\n  return iter === seq ? iter : isSeq(iter) ? seq : iter.constructor(seq);\n}\n\nfunction validateEntry(entry) {\n  if (entry !== Object(entry)) {\n    throw new TypeError('Expected [K, V] tuple: ' + entry);\n  }\n}\n\nfunction collectionClass(collection) {\n  return isKeyed(collection)\n    ? KeyedCollection\n    : isIndexed(collection)\n    ? IndexedCollection\n    : SetCollection;\n}\n\nfunction makeSequence(collection) {\n  return Object.create(\n    (isKeyed(collection)\n      ? KeyedSeq\n      : isIndexed(collection)\n      ? IndexedSeq\n      : SetSeq\n    ).prototype\n  );\n}\n\nfunction cacheResultThrough() {\n  if (this._iter.cacheResult) {\n    this._iter.cacheResult();\n    this.size = this._iter.size;\n    return this;\n  }\n  return Seq.prototype.cacheResult.call(this);\n}\n\nfunction defaultComparator(a, b) {\n  if (a === undefined && b === undefined) {\n    return 0;\n  }\n\n  if (a === undefined) {\n    return 1;\n  }\n\n  if (b === undefined) {\n    return -1;\n  }\n\n  return a > b ? 1 : a < b ? -1 : 0;\n}\n\nfunction arrCopy(arr, offset) {\n  offset = offset || 0;\n  var len = Math.max(0, arr.length - offset);\n  var newArr = new Array(len);\n  for (var ii = 0; ii < len; ii++) {\n    newArr[ii] = arr[ii + offset];\n  }\n  return newArr;\n}\n\nfunction invariant(condition, error) {\n  if (!condition) { throw new Error(error); }\n}\n\nfunction assertNotInfinite(size) {\n  invariant(\n    size !== Infinity,\n    'Cannot perform this action with an infinite size.'\n  );\n}\n\nfunction coerceKeyPath(keyPath) {\n  if (isArrayLike(keyPath) && typeof keyPath !== 'string') {\n    return keyPath;\n  }\n  if (isOrdered(keyPath)) {\n    return keyPath.toArray();\n  }\n  throw new TypeError(\n    'Invalid keyPath: expected Ordered Collection or Array: ' + keyPath\n  );\n}\n\nvar toString = Object.prototype.toString;\n\nfunction isPlainObject(value) {\n  // The base prototype's toString deals with Argument objects and native namespaces like Math\n  if (\n    !value ||\n    typeof value !== 'object' ||\n    toString.call(value) !== '[object Object]'\n  ) {\n    return false;\n  }\n\n  var proto = Object.getPrototypeOf(value);\n  if (proto === null) {\n    return true;\n  }\n\n  // Iteratively going up the prototype chain is needed for cross-realm environments (differing contexts, iframes, etc)\n  var parentProto = proto;\n  var nextProto = Object.getPrototypeOf(proto);\n  while (nextProto !== null) {\n    parentProto = nextProto;\n    nextProto = Object.getPrototypeOf(parentProto);\n  }\n  return parentProto === proto;\n}\n\n/**\n * Returns true if the value is a potentially-persistent data structure, either\n * provided by Immutable.js or a plain Array or Object.\n */\nfunction isDataStructure(value) {\n  return (\n    typeof value === 'object' &&\n    (isImmutable(value) || Array.isArray(value) || isPlainObject(value))\n  );\n}\n\nfunction quoteString(value) {\n  try {\n    return typeof value === 'string' ? JSON.stringify(value) : String(value);\n  } catch (_ignoreError) {\n    return JSON.stringify(value);\n  }\n}\n\nfunction has(collection, key) {\n  return isImmutable(collection)\n    ? collection.has(key)\n    : isDataStructure(collection) && hasOwnProperty.call(collection, key);\n}\n\nfunction get(collection, key, notSetValue) {\n  return isImmutable(collection)\n    ? collection.get(key, notSetValue)\n    : !has(collection, key)\n    ? notSetValue\n    : typeof collection.get === 'function'\n    ? collection.get(key)\n    : collection[key];\n}\n\nfunction shallowCopy(from) {\n  if (Array.isArray(from)) {\n    return arrCopy(from);\n  }\n  var to = {};\n  for (var key in from) {\n    if (hasOwnProperty.call(from, key)) {\n      to[key] = from[key];\n    }\n  }\n  return to;\n}\n\nfunction remove(collection, key) {\n  if (!isDataStructure(collection)) {\n    throw new TypeError(\n      'Cannot update non-data-structure value: ' + collection\n    );\n  }\n  if (isImmutable(collection)) {\n    if (!collection.remove) {\n      throw new TypeError(\n        'Cannot update immutable value without .remove() method: ' + collection\n      );\n    }\n    return collection.remove(key);\n  }\n  if (!hasOwnProperty.call(collection, key)) {\n    return collection;\n  }\n  var collectionCopy = shallowCopy(collection);\n  if (Array.isArray(collectionCopy)) {\n    collectionCopy.splice(key, 1);\n  } else {\n    delete collectionCopy[key];\n  }\n  return collectionCopy;\n}\n\nfunction set(collection, key, value) {\n  if (!isDataStructure(collection)) {\n    throw new TypeError(\n      'Cannot update non-data-structure value: ' + collection\n    );\n  }\n  if (isImmutable(collection)) {\n    if (!collection.set) {\n      throw new TypeError(\n        'Cannot update immutable value without .set() method: ' + collection\n      );\n    }\n    return collection.set(key, value);\n  }\n  if (hasOwnProperty.call(collection, key) && value === collection[key]) {\n    return collection;\n  }\n  var collectionCopy = shallowCopy(collection);\n  collectionCopy[key] = value;\n  return collectionCopy;\n}\n\nfunction updateIn$1(collection, keyPath, notSetValue, updater) {\n  if (!updater) {\n    updater = notSetValue;\n    notSetValue = undefined;\n  }\n  var updatedValue = updateInDeeply(\n    isImmutable(collection),\n    collection,\n    coerceKeyPath(keyPath),\n    0,\n    notSetValue,\n    updater\n  );\n  return updatedValue === NOT_SET ? notSetValue : updatedValue;\n}\n\nfunction updateInDeeply(\n  inImmutable,\n  existing,\n  keyPath,\n  i,\n  notSetValue,\n  updater\n) {\n  var wasNotSet = existing === NOT_SET;\n  if (i === keyPath.length) {\n    var existingValue = wasNotSet ? notSetValue : existing;\n    var newValue = updater(existingValue);\n    return newValue === existingValue ? existing : newValue;\n  }\n  if (!wasNotSet && !isDataStructure(existing)) {\n    throw new TypeError(\n      'Cannot update within non-data-structure value in path [' +\n        keyPath.slice(0, i).map(quoteString) +\n        ']: ' +\n        existing\n    );\n  }\n  var key = keyPath[i];\n  var nextExisting = wasNotSet ? NOT_SET : get(existing, key, NOT_SET);\n  var nextUpdated = updateInDeeply(\n    nextExisting === NOT_SET ? inImmutable : isImmutable(nextExisting),\n    nextExisting,\n    keyPath,\n    i + 1,\n    notSetValue,\n    updater\n  );\n  return nextUpdated === nextExisting\n    ? existing\n    : nextUpdated === NOT_SET\n    ? remove(existing, key)\n    : set(\n        wasNotSet ? (inImmutable ? emptyMap() : {}) : existing,\n        key,\n        nextUpdated\n      );\n}\n\nfunction setIn$1(collection, keyPath, value) {\n  return updateIn$1(collection, keyPath, NOT_SET, function () { return value; });\n}\n\nfunction setIn(keyPath, v) {\n  return setIn$1(this, keyPath, v);\n}\n\nfunction removeIn(collection, keyPath) {\n  return updateIn$1(collection, keyPath, function () { return NOT_SET; });\n}\n\nfunction deleteIn(keyPath) {\n  return removeIn(this, keyPath);\n}\n\nfunction update$1(collection, key, notSetValue, updater) {\n  return updateIn$1(collection, [key], notSetValue, updater);\n}\n\nfunction update(key, notSetValue, updater) {\n  return arguments.length === 1\n    ? key(this)\n    : update$1(this, key, notSetValue, updater);\n}\n\nfunction updateIn(keyPath, notSetValue, updater) {\n  return updateIn$1(this, keyPath, notSetValue, updater);\n}\n\nfunction merge$1() {\n  var iters = [], len = arguments.length;\n  while ( len-- ) iters[ len ] = arguments[ len ];\n\n  return mergeIntoKeyedWith(this, iters);\n}\n\nfunction mergeWith$1(merger) {\n  var iters = [], len = arguments.length - 1;\n  while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n  if (typeof merger !== 'function') {\n    throw new TypeError('Invalid merger function: ' + merger);\n  }\n  return mergeIntoKeyedWith(this, iters, merger);\n}\n\nfunction mergeIntoKeyedWith(collection, collections, merger) {\n  var iters = [];\n  for (var ii = 0; ii < collections.length; ii++) {\n    var collection$1 = KeyedCollection(collections[ii]);\n    if (collection$1.size !== 0) {\n      iters.push(collection$1);\n    }\n  }\n  if (iters.length === 0) {\n    return collection;\n  }\n  if (\n    collection.toSeq().size === 0 &&\n    !collection.__ownerID &&\n    iters.length === 1\n  ) {\n    return collection.constructor(iters[0]);\n  }\n  return collection.withMutations(function (collection) {\n    var mergeIntoCollection = merger\n      ? function (value, key) {\n          update$1(collection, key, NOT_SET, function (oldVal) { return oldVal === NOT_SET ? value : merger(oldVal, value, key); }\n          );\n        }\n      : function (value, key) {\n          collection.set(key, value);\n        };\n    for (var ii = 0; ii < iters.length; ii++) {\n      iters[ii].forEach(mergeIntoCollection);\n    }\n  });\n}\n\nfunction merge(collection) {\n  var sources = [], len = arguments.length - 1;\n  while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n  return mergeWithSources(collection, sources);\n}\n\nfunction mergeWith(merger, collection) {\n  var sources = [], len = arguments.length - 2;\n  while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n  return mergeWithSources(collection, sources, merger);\n}\n\nfunction mergeDeep$1(collection) {\n  var sources = [], len = arguments.length - 1;\n  while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n  return mergeDeepWithSources(collection, sources);\n}\n\nfunction mergeDeepWith$1(merger, collection) {\n  var sources = [], len = arguments.length - 2;\n  while ( len-- > 0 ) sources[ len ] = arguments[ len + 2 ];\n\n  return mergeDeepWithSources(collection, sources, merger);\n}\n\nfunction mergeDeepWithSources(collection, sources, merger) {\n  return mergeWithSources(collection, sources, deepMergerWith(merger));\n}\n\nfunction mergeWithSources(collection, sources, merger) {\n  if (!isDataStructure(collection)) {\n    throw new TypeError(\n      'Cannot merge into non-data-structure value: ' + collection\n    );\n  }\n  if (isImmutable(collection)) {\n    return typeof merger === 'function' && collection.mergeWith\n      ? collection.mergeWith.apply(collection, [ merger ].concat( sources ))\n      : collection.merge\n      ? collection.merge.apply(collection, sources)\n      : collection.concat.apply(collection, sources);\n  }\n  var isArray = Array.isArray(collection);\n  var merged = collection;\n  var Collection = isArray ? IndexedCollection : KeyedCollection;\n  var mergeItem = isArray\n    ? function (value) {\n        // Copy on write\n        if (merged === collection) {\n          merged = shallowCopy(merged);\n        }\n        merged.push(value);\n      }\n    : function (value, key) {\n        var hasVal = hasOwnProperty.call(merged, key);\n        var nextVal =\n          hasVal && merger ? merger(merged[key], value, key) : value;\n        if (!hasVal || nextVal !== merged[key]) {\n          // Copy on write\n          if (merged === collection) {\n            merged = shallowCopy(merged);\n          }\n          merged[key] = nextVal;\n        }\n      };\n  for (var i = 0; i < sources.length; i++) {\n    Collection(sources[i]).forEach(mergeItem);\n  }\n  return merged;\n}\n\nfunction deepMergerWith(merger) {\n  function deepMerger(oldValue, newValue, key) {\n    return isDataStructure(oldValue) &&\n      isDataStructure(newValue) &&\n      areMergeable(oldValue, newValue)\n      ? mergeWithSources(oldValue, [newValue], deepMerger)\n      : merger\n      ? merger(oldValue, newValue, key)\n      : newValue;\n  }\n  return deepMerger;\n}\n\n/**\n * It's unclear what the desired behavior is for merging two collections that\n * fall into separate categories between keyed, indexed, or set-like, so we only\n * consider them mergeable if they fall into the same category.\n */\nfunction areMergeable(oldDataStructure, newDataStructure) {\n  var oldSeq = Seq(oldDataStructure);\n  var newSeq = Seq(newDataStructure);\n  // This logic assumes that a sequence can only fall into one of the three\n  // categories mentioned above (since there's no `isSetLike()` method).\n  return (\n    isIndexed(oldSeq) === isIndexed(newSeq) &&\n    isKeyed(oldSeq) === isKeyed(newSeq)\n  );\n}\n\nfunction mergeDeep() {\n  var iters = [], len = arguments.length;\n  while ( len-- ) iters[ len ] = arguments[ len ];\n\n  return mergeDeepWithSources(this, iters);\n}\n\nfunction mergeDeepWith(merger) {\n  var iters = [], len = arguments.length - 1;\n  while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n  return mergeDeepWithSources(this, iters, merger);\n}\n\nfunction mergeIn(keyPath) {\n  var iters = [], len = arguments.length - 1;\n  while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n  return updateIn$1(this, keyPath, emptyMap(), function (m) { return mergeWithSources(m, iters); });\n}\n\nfunction mergeDeepIn(keyPath) {\n  var iters = [], len = arguments.length - 1;\n  while ( len-- > 0 ) iters[ len ] = arguments[ len + 1 ];\n\n  return updateIn$1(this, keyPath, emptyMap(), function (m) { return mergeDeepWithSources(m, iters); }\n  );\n}\n\nfunction withMutations(fn) {\n  var mutable = this.asMutable();\n  fn(mutable);\n  return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n}\n\nfunction asMutable() {\n  return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n}\n\nfunction asImmutable() {\n  return this.__ensureOwner();\n}\n\nfunction wasAltered() {\n  return this.__altered;\n}\n\nvar Map = /*@__PURE__*/(function (KeyedCollection) {\n  function Map(value) {\n    // eslint-disable-next-line no-constructor-return\n    return value === undefined || value === null\n      ? emptyMap()\n      : isMap(value) && !isOrdered(value)\n      ? value\n      : emptyMap().withMutations(function (map) {\n          var iter = KeyedCollection(value);\n          assertNotInfinite(iter.size);\n          iter.forEach(function (v, k) { return map.set(k, v); });\n        });\n  }\n\n  if ( KeyedCollection ) Map.__proto__ = KeyedCollection;\n  Map.prototype = Object.create( KeyedCollection && KeyedCollection.prototype );\n  Map.prototype.constructor = Map;\n\n  Map.of = function of () {\n    var keyValues = [], len = arguments.length;\n    while ( len-- ) keyValues[ len ] = arguments[ len ];\n\n    return emptyMap().withMutations(function (map) {\n      for (var i = 0; i < keyValues.length; i += 2) {\n        if (i + 1 >= keyValues.length) {\n          throw new Error('Missing value for key: ' + keyValues[i]);\n        }\n        map.set(keyValues[i], keyValues[i + 1]);\n      }\n    });\n  };\n\n  Map.prototype.toString = function toString () {\n    return this.__toString('Map {', '}');\n  };\n\n  // @pragma Access\n\n  Map.prototype.get = function get (k, notSetValue) {\n    return this._root\n      ? this._root.get(0, undefined, k, notSetValue)\n      : notSetValue;\n  };\n\n  // @pragma Modification\n\n  Map.prototype.set = function set (k, v) {\n    return updateMap(this, k, v);\n  };\n\n  Map.prototype.remove = function remove (k) {\n    return updateMap(this, k, NOT_SET);\n  };\n\n  Map.prototype.deleteAll = function deleteAll (keys) {\n    var collection = Collection(keys);\n\n    if (collection.size === 0) {\n      return this;\n    }\n\n    return this.withMutations(function (map) {\n      collection.forEach(function (key) { return map.remove(key); });\n    });\n  };\n\n  Map.prototype.clear = function clear () {\n    if (this.size === 0) {\n      return this;\n    }\n    if (this.__ownerID) {\n      this.size = 0;\n      this._root = null;\n      this.__hash = undefined;\n      this.__altered = true;\n      return this;\n    }\n    return emptyMap();\n  };\n\n  // @pragma Composition\n\n  Map.prototype.sort = function sort (comparator) {\n    // Late binding\n    return OrderedMap(sortFactory(this, comparator));\n  };\n\n  Map.prototype.sortBy = function sortBy (mapper, comparator) {\n    // Late binding\n    return OrderedMap(sortFactory(this, comparator, mapper));\n  };\n\n  Map.prototype.map = function map (mapper, context) {\n    var this$1$1 = this;\n\n    return this.withMutations(function (map) {\n      map.forEach(function (value, key) {\n        map.set(key, mapper.call(context, value, key, this$1$1));\n      });\n    });\n  };\n\n  // @pragma Mutability\n\n  Map.prototype.__iterator = function __iterator (type, reverse) {\n    return new MapIterator(this, type, reverse);\n  };\n\n  Map.prototype.__iterate = function __iterate (fn, reverse) {\n    var this$1$1 = this;\n\n    var iterations = 0;\n    this._root &&\n      this._root.iterate(function (entry) {\n        iterations++;\n        return fn(entry[1], entry[0], this$1$1);\n      }, reverse);\n    return iterations;\n  };\n\n  Map.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n    if (ownerID === this.__ownerID) {\n      return this;\n    }\n    if (!ownerID) {\n      if (this.size === 0) {\n        return emptyMap();\n      }\n      this.__ownerID = ownerID;\n      this.__altered = false;\n      return this;\n    }\n    return makeMap(this.size, this._root, ownerID, this.__hash);\n  };\n\n  return Map;\n}(KeyedCollection));\n\nMap.isMap = isMap;\n\nvar MapPrototype = Map.prototype;\nMapPrototype[IS_MAP_SYMBOL] = true;\nMapPrototype[DELETE] = MapPrototype.remove;\nMapPrototype.removeAll = MapPrototype.deleteAll;\nMapPrototype.setIn = setIn;\nMapPrototype.removeIn = MapPrototype.deleteIn = deleteIn;\nMapPrototype.update = update;\nMapPrototype.updateIn = updateIn;\nMapPrototype.merge = MapPrototype.concat = merge$1;\nMapPrototype.mergeWith = mergeWith$1;\nMapPrototype.mergeDeep = mergeDeep;\nMapPrototype.mergeDeepWith = mergeDeepWith;\nMapPrototype.mergeIn = mergeIn;\nMapPrototype.mergeDeepIn = mergeDeepIn;\nMapPrototype.withMutations = withMutations;\nMapPrototype.wasAltered = wasAltered;\nMapPrototype.asImmutable = asImmutable;\nMapPrototype['@@transducer/init'] = MapPrototype.asMutable = asMutable;\nMapPrototype['@@transducer/step'] = function (result, arr) {\n  return result.set(arr[0], arr[1]);\n};\nMapPrototype['@@transducer/result'] = function (obj) {\n  return obj.asImmutable();\n};\n\n// #pragma Trie Nodes\n\nvar ArrayMapNode = function ArrayMapNode(ownerID, entries) {\n  this.ownerID = ownerID;\n  this.entries = entries;\n};\n\nArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n  var entries = this.entries;\n  for (var ii = 0, len = entries.length; ii < len; ii++) {\n    if (is(key, entries[ii][0])) {\n      return entries[ii][1];\n    }\n  }\n  return notSetValue;\n};\n\nArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n  var removed = value === NOT_SET;\n\n  var entries = this.entries;\n  var idx = 0;\n  var len = entries.length;\n  for (; idx < len; idx++) {\n    if (is(key, entries[idx][0])) {\n      break;\n    }\n  }\n  var exists = idx < len;\n\n  if (exists ? entries[idx][1] === value : removed) {\n    return this;\n  }\n\n  SetRef(didAlter);\n  (removed || !exists) && SetRef(didChangeSize);\n\n  if (removed && entries.length === 1) {\n    return; // undefined\n  }\n\n  if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n    return createNodes(ownerID, entries, key, value);\n  }\n\n  var isEditable = ownerID && ownerID === this.ownerID;\n  var newEntries = isEditable ? entries : arrCopy(entries);\n\n  if (exists) {\n    if (removed) {\n      idx === len - 1\n        ? newEntries.pop()\n        : (newEntries[idx] = newEntries.pop());\n    } else {\n      newEntries[idx] = [key, value];\n    }\n  } else {\n    newEntries.push([key, value]);\n  }\n\n  if (isEditable) {\n    this.entries = newEntries;\n    return this;\n  }\n\n  return new ArrayMapNode(ownerID, newEntries);\n};\n\nvar BitmapIndexedNode = function BitmapIndexedNode(ownerID, bitmap, nodes) {\n  this.ownerID = ownerID;\n  this.bitmap = bitmap;\n  this.nodes = nodes;\n};\n\nBitmapIndexedNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n  if (keyHash === undefined) {\n    keyHash = hash(key);\n  }\n  var bit = 1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK);\n  var bitmap = this.bitmap;\n  return (bitmap & bit) === 0\n    ? notSetValue\n    : this.nodes[popCount(bitmap & (bit - 1))].get(\n        shift + SHIFT,\n        keyHash,\n        key,\n        notSetValue\n      );\n};\n\nBitmapIndexedNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n  if (keyHash === undefined) {\n    keyHash = hash(key);\n  }\n  var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n  var bit = 1 << keyHashFrag;\n  var bitmap = this.bitmap;\n  var exists = (bitmap & bit) !== 0;\n\n  if (!exists && value === NOT_SET) {\n    return this;\n  }\n\n  var idx = popCount(bitmap & (bit - 1));\n  var nodes = this.nodes;\n  var node = exists ? nodes[idx] : undefined;\n  var newNode = updateNode(\n    node,\n    ownerID,\n    shift + SHIFT,\n    keyHash,\n    key,\n    value,\n    didChangeSize,\n    didAlter\n  );\n\n  if (newNode === node) {\n    return this;\n  }\n\n  if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n    return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n  }\n\n  if (\n    exists &&\n    !newNode &&\n    nodes.length === 2 &&\n    isLeafNode(nodes[idx ^ 1])\n  ) {\n    return nodes[idx ^ 1];\n  }\n\n  if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n    return newNode;\n  }\n\n  var isEditable = ownerID && ownerID === this.ownerID;\n  var newBitmap = exists ? (newNode ? bitmap : bitmap ^ bit) : bitmap | bit;\n  var newNodes = exists\n    ? newNode\n      ? setAt(nodes, idx, newNode, isEditable)\n      : spliceOut(nodes, idx, isEditable)\n    : spliceIn(nodes, idx, newNode, isEditable);\n\n  if (isEditable) {\n    this.bitmap = newBitmap;\n    this.nodes = newNodes;\n    return this;\n  }\n\n  return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n};\n\nvar HashArrayMapNode = function HashArrayMapNode(ownerID, count, nodes) {\n  this.ownerID = ownerID;\n  this.count = count;\n  this.nodes = nodes;\n};\n\nHashArrayMapNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n  if (keyHash === undefined) {\n    keyHash = hash(key);\n  }\n  var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n  var node = this.nodes[idx];\n  return node\n    ? node.get(shift + SHIFT, keyHash, key, notSetValue)\n    : notSetValue;\n};\n\nHashArrayMapNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n  if (keyHash === undefined) {\n    keyHash = hash(key);\n  }\n  var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n  var removed = value === NOT_SET;\n  var nodes = this.nodes;\n  var node = nodes[idx];\n\n  if (removed && !node) {\n    return this;\n  }\n\n  var newNode = updateNode(\n    node,\n    ownerID,\n    shift + SHIFT,\n    keyHash,\n    key,\n    value,\n    didChangeSize,\n    didAlter\n  );\n  if (newNode === node) {\n    return this;\n  }\n\n  var newCount = this.count;\n  if (!node) {\n    newCount++;\n  } else if (!newNode) {\n    newCount--;\n    if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n      return packNodes(ownerID, nodes, newCount, idx);\n    }\n  }\n\n  var isEditable = ownerID && ownerID === this.ownerID;\n  var newNodes = setAt(nodes, idx, newNode, isEditable);\n\n  if (isEditable) {\n    this.count = newCount;\n    this.nodes = newNodes;\n    return this;\n  }\n\n  return new HashArrayMapNode(ownerID, newCount, newNodes);\n};\n\nvar HashCollisionNode = function HashCollisionNode(ownerID, keyHash, entries) {\n  this.ownerID = ownerID;\n  this.keyHash = keyHash;\n  this.entries = entries;\n};\n\nHashCollisionNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n  var entries = this.entries;\n  for (var ii = 0, len = entries.length; ii < len; ii++) {\n    if (is(key, entries[ii][0])) {\n      return entries[ii][1];\n    }\n  }\n  return notSetValue;\n};\n\nHashCollisionNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n  if (keyHash === undefined) {\n    keyHash = hash(key);\n  }\n\n  var removed = value === NOT_SET;\n\n  if (keyHash !== this.keyHash) {\n    if (removed) {\n      return this;\n    }\n    SetRef(didAlter);\n    SetRef(didChangeSize);\n    return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n  }\n\n  var entries = this.entries;\n  var idx = 0;\n  var len = entries.length;\n  for (; idx < len; idx++) {\n    if (is(key, entries[idx][0])) {\n      break;\n    }\n  }\n  var exists = idx < len;\n\n  if (exists ? entries[idx][1] === value : removed) {\n    return this;\n  }\n\n  SetRef(didAlter);\n  (removed || !exists) && SetRef(didChangeSize);\n\n  if (removed && len === 2) {\n    return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n  }\n\n  var isEditable = ownerID && ownerID === this.ownerID;\n  var newEntries = isEditable ? entries : arrCopy(entries);\n\n  if (exists) {\n    if (removed) {\n      idx === len - 1\n        ? newEntries.pop()\n        : (newEntries[idx] = newEntries.pop());\n    } else {\n      newEntries[idx] = [key, value];\n    }\n  } else {\n    newEntries.push([key, value]);\n  }\n\n  if (isEditable) {\n    this.entries = newEntries;\n    return this;\n  }\n\n  return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n};\n\nvar ValueNode = function ValueNode(ownerID, keyHash, entry) {\n  this.ownerID = ownerID;\n  this.keyHash = keyHash;\n  this.entry = entry;\n};\n\nValueNode.prototype.get = function get (shift, keyHash, key, notSetValue) {\n  return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n};\n\nValueNode.prototype.update = function update (ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n  var removed = value === NOT_SET;\n  var keyMatch = is(key, this.entry[0]);\n  if (keyMatch ? value === this.entry[1] : removed) {\n    return this;\n  }\n\n  SetRef(didAlter);\n\n  if (removed) {\n    SetRef(didChangeSize);\n    return; // undefined\n  }\n\n  if (keyMatch) {\n    if (ownerID && ownerID === this.ownerID) {\n      this.entry[1] = value;\n      return this;\n    }\n    return new ValueNode(ownerID, this.keyHash, [key, value]);\n  }\n\n  SetRef(didChangeSize);\n  return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n};\n\n// #pragma Iterators\n\nArrayMapNode.prototype.iterate = HashCollisionNode.prototype.iterate =\n  function (fn, reverse) {\n    var entries = this.entries;\n    for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n      if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n        return false;\n      }\n    }\n  };\n\nBitmapIndexedNode.prototype.iterate = HashArrayMapNode.prototype.iterate =\n  function (fn, reverse) {\n    var nodes = this.nodes;\n    for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n      var node = nodes[reverse ? maxIndex - ii : ii];\n      if (node && node.iterate(fn, reverse) === false) {\n        return false;\n      }\n    }\n  };\n\n// eslint-disable-next-line no-unused-vars\nValueNode.prototype.iterate = function (fn, reverse) {\n  return fn(this.entry);\n};\n\nvar MapIterator = /*@__PURE__*/(function (Iterator) {\n  function MapIterator(map, type, reverse) {\n    this._type = type;\n    this._reverse = reverse;\n    this._stack = map._root && mapIteratorFrame(map._root);\n  }\n\n  if ( Iterator ) MapIterator.__proto__ = Iterator;\n  MapIterator.prototype = Object.create( Iterator && Iterator.prototype );\n  MapIterator.prototype.constructor = MapIterator;\n\n  MapIterator.prototype.next = function next () {\n    var type = this._type;\n    var stack = this._stack;\n    while (stack) {\n      var node = stack.node;\n      var index = stack.index++;\n      var maxIndex = (void 0);\n      if (node.entry) {\n        if (index === 0) {\n          return mapIteratorValue(type, node.entry);\n        }\n      } else if (node.entries) {\n        maxIndex = node.entries.length - 1;\n        if (index <= maxIndex) {\n          return mapIteratorValue(\n            type,\n            node.entries[this._reverse ? maxIndex - index : index]\n          );\n        }\n      } else {\n        maxIndex = node.nodes.length - 1;\n        if (index <= maxIndex) {\n          var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n          if (subNode) {\n            if (subNode.entry) {\n              return mapIteratorValue(type, subNode.entry);\n            }\n            stack = this._stack = mapIteratorFrame(subNode, stack);\n          }\n          continue;\n        }\n      }\n      stack = this._stack = this._stack.__prev;\n    }\n    return iteratorDone();\n  };\n\n  return MapIterator;\n}(Iterator));\n\nfunction mapIteratorValue(type, entry) {\n  return iteratorValue(type, entry[0], entry[1]);\n}\n\nfunction mapIteratorFrame(node, prev) {\n  return {\n    node: node,\n    index: 0,\n    __prev: prev,\n  };\n}\n\nfunction makeMap(size, root, ownerID, hash) {\n  var map = Object.create(MapPrototype);\n  map.size = size;\n  map._root = root;\n  map.__ownerID = ownerID;\n  map.__hash = hash;\n  map.__altered = false;\n  return map;\n}\n\nvar EMPTY_MAP;\nfunction emptyMap() {\n  return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n}\n\nfunction updateMap(map, k, v) {\n  var newRoot;\n  var newSize;\n  if (!map._root) {\n    if (v === NOT_SET) {\n      return map;\n    }\n    newSize = 1;\n    newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n  } else {\n    var didChangeSize = MakeRef();\n    var didAlter = MakeRef();\n    newRoot = updateNode(\n      map._root,\n      map.__ownerID,\n      0,\n      undefined,\n      k,\n      v,\n      didChangeSize,\n      didAlter\n    );\n    if (!didAlter.value) {\n      return map;\n    }\n    newSize = map.size + (didChangeSize.value ? (v === NOT_SET ? -1 : 1) : 0);\n  }\n  if (map.__ownerID) {\n    map.size = newSize;\n    map._root = newRoot;\n    map.__hash = undefined;\n    map.__altered = true;\n    return map;\n  }\n  return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n}\n\nfunction updateNode(\n  node,\n  ownerID,\n  shift,\n  keyHash,\n  key,\n  value,\n  didChangeSize,\n  didAlter\n) {\n  if (!node) {\n    if (value === NOT_SET) {\n      return node;\n    }\n    SetRef(didAlter);\n    SetRef(didChangeSize);\n    return new ValueNode(ownerID, keyHash, [key, value]);\n  }\n  return node.update(\n    ownerID,\n    shift,\n    keyHash,\n    key,\n    value,\n    didChangeSize,\n    didAlter\n  );\n}\n\nfunction isLeafNode(node) {\n  return (\n    node.constructor === ValueNode || node.constructor === HashCollisionNode\n  );\n}\n\nfunction mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n  if (node.keyHash === keyHash) {\n    return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n  }\n\n  var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n  var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n  var newNode;\n  var nodes =\n    idx1 === idx2\n      ? [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)]\n      : ((newNode = new ValueNode(ownerID, keyHash, entry)),\n        idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n  return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n}\n\nfunction createNodes(ownerID, entries, key, value) {\n  if (!ownerID) {\n    ownerID = new OwnerID();\n  }\n  var node = new ValueNode(ownerID, hash(key), [key, value]);\n  for (var ii = 0; ii < entries.length; ii++) {\n    var entry = entries[ii];\n    node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n  }\n  return node;\n}\n\nfunction packNodes(ownerID, nodes, count, excluding) {\n  var bitmap = 0;\n  var packedII = 0;\n  var packedNodes = new Array(count);\n  for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n    var node = nodes[ii];\n    if (node !== undefined && ii !== excluding) {\n      bitmap |= bit;\n      packedNodes[packedII++] = node;\n    }\n  }\n  return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n}\n\nfunction expandNodes(ownerID, nodes, bitmap, including, node) {\n  var count = 0;\n  var expandedNodes = new Array(SIZE);\n  for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n    expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n  }\n  expandedNodes[including] = node;\n  return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n}\n\nfunction popCount(x) {\n  x -= (x >> 1) & 0x55555555;\n  x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n  x = (x + (x >> 4)) & 0x0f0f0f0f;\n  x += x >> 8;\n  x += x >> 16;\n  return x & 0x7f;\n}\n\nfunction setAt(array, idx, val, canEdit) {\n  var newArray = canEdit ? array : arrCopy(array);\n  newArray[idx] = val;\n  return newArray;\n}\n\nfunction spliceIn(array, idx, val, canEdit) {\n  var newLen = array.length + 1;\n  if (canEdit && idx + 1 === newLen) {\n    array[idx] = val;\n    return array;\n  }\n  var newArray = new Array(newLen);\n  var after = 0;\n  for (var ii = 0; ii < newLen; ii++) {\n    if (ii === idx) {\n      newArray[ii] = val;\n      after = -1;\n    } else {\n      newArray[ii] = array[ii + after];\n    }\n  }\n  return newArray;\n}\n\nfunction spliceOut(array, idx, canEdit) {\n  var newLen = array.length - 1;\n  if (canEdit && idx === newLen) {\n    array.pop();\n    return array;\n  }\n  var newArray = new Array(newLen);\n  var after = 0;\n  for (var ii = 0; ii < newLen; ii++) {\n    if (ii === idx) {\n      after = 1;\n    }\n    newArray[ii] = array[ii + after];\n  }\n  return newArray;\n}\n\nvar MAX_ARRAY_MAP_SIZE = SIZE / 4;\nvar MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\nvar MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\nvar IS_LIST_SYMBOL = '@@__IMMUTABLE_LIST__@@';\n\nfunction isList(maybeList) {\n  return Boolean(maybeList && maybeList[IS_LIST_SYMBOL]);\n}\n\nvar List = /*@__PURE__*/(function (IndexedCollection) {\n  function List(value) {\n    var empty = emptyList();\n    if (value === undefined || value === null) {\n      // eslint-disable-next-line no-constructor-return\n      return empty;\n    }\n    if (isList(value)) {\n      // eslint-disable-next-line no-constructor-return\n      return value;\n    }\n    var iter = IndexedCollection(value);\n    var size = iter.size;\n    if (size === 0) {\n      // eslint-disable-next-line no-constructor-return\n      return empty;\n    }\n    assertNotInfinite(size);\n    if (size > 0 && size < SIZE) {\n      // eslint-disable-next-line no-constructor-return\n      return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n    }\n    // eslint-disable-next-line no-constructor-return\n    return empty.withMutations(function (list) {\n      list.setSize(size);\n      iter.forEach(function (v, i) { return list.set(i, v); });\n    });\n  }\n\n  if ( IndexedCollection ) List.__proto__ = IndexedCollection;\n  List.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n  List.prototype.constructor = List;\n\n  List.of = function of (/*...values*/) {\n    return this(arguments);\n  };\n\n  List.prototype.toString = function toString () {\n    return this.__toString('List [', ']');\n  };\n\n  // @pragma Access\n\n  List.prototype.get = function get (index, notSetValue) {\n    index = wrapIndex(this, index);\n    if (index >= 0 && index < this.size) {\n      index += this._origin;\n      var node = listNodeFor(this, index);\n      return node && node.array[index & MASK];\n    }\n    return notSetValue;\n  };\n\n  // @pragma Modification\n\n  List.prototype.set = function set (index, value) {\n    return updateList(this, index, value);\n  };\n\n  List.prototype.remove = function remove (index) {\n    return !this.has(index)\n      ? this\n      : index === 0\n      ? this.shift()\n      : index === this.size - 1\n      ? this.pop()\n      : this.splice(index, 1);\n  };\n\n  List.prototype.insert = function insert (index, value) {\n    return this.splice(index, 0, value);\n  };\n\n  List.prototype.clear = function clear () {\n    if (this.size === 0) {\n      return this;\n    }\n    if (this.__ownerID) {\n      this.size = this._origin = this._capacity = 0;\n      this._level = SHIFT;\n      this._root = this._tail = this.__hash = undefined;\n      this.__altered = true;\n      return this;\n    }\n    return emptyList();\n  };\n\n  List.prototype.push = function push (/*...values*/) {\n    var values = arguments;\n    var oldSize = this.size;\n    return this.withMutations(function (list) {\n      setListBounds(list, 0, oldSize + values.length);\n      for (var ii = 0; ii < values.length; ii++) {\n        list.set(oldSize + ii, values[ii]);\n      }\n    });\n  };\n\n  List.prototype.pop = function pop () {\n    return setListBounds(this, 0, -1);\n  };\n\n  List.prototype.unshift = function unshift (/*...values*/) {\n    var values = arguments;\n    return this.withMutations(function (list) {\n      setListBounds(list, -values.length);\n      for (var ii = 0; ii < values.length; ii++) {\n        list.set(ii, values[ii]);\n      }\n    });\n  };\n\n  List.prototype.shift = function shift () {\n    return setListBounds(this, 1);\n  };\n\n  // @pragma Composition\n\n  List.prototype.concat = function concat (/*...collections*/) {\n    var arguments$1 = arguments;\n\n    var seqs = [];\n    for (var i = 0; i < arguments.length; i++) {\n      var argument = arguments$1[i];\n      var seq = IndexedCollection(\n        typeof argument !== 'string' && hasIterator(argument)\n          ? argument\n          : [argument]\n      );\n      if (seq.size !== 0) {\n        seqs.push(seq);\n      }\n    }\n    if (seqs.length === 0) {\n      return this;\n    }\n    if (this.size === 0 && !this.__ownerID && seqs.length === 1) {\n      return this.constructor(seqs[0]);\n    }\n    return this.withMutations(function (list) {\n      seqs.forEach(function (seq) { return seq.forEach(function (value) { return list.push(value); }); });\n    });\n  };\n\n  List.prototype.setSize = function setSize (size) {\n    return setListBounds(this, 0, size);\n  };\n\n  List.prototype.map = function map (mapper, context) {\n    var this$1$1 = this;\n\n    return this.withMutations(function (list) {\n      for (var i = 0; i < this$1$1.size; i++) {\n        list.set(i, mapper.call(context, list.get(i), i, this$1$1));\n      }\n    });\n  };\n\n  // @pragma Iteration\n\n  List.prototype.slice = function slice (begin, end) {\n    var size = this.size;\n    if (wholeSlice(begin, end, size)) {\n      return this;\n    }\n    return setListBounds(\n      this,\n      resolveBegin(begin, size),\n      resolveEnd(end, size)\n    );\n  };\n\n  List.prototype.__iterator = function __iterator (type, reverse) {\n    var index = reverse ? this.size : 0;\n    var values = iterateList(this, reverse);\n    return new Iterator(function () {\n      var value = values();\n      return value === DONE\n        ? iteratorDone()\n        : iteratorValue(type, reverse ? --index : index++, value);\n    });\n  };\n\n  List.prototype.__iterate = function __iterate (fn, reverse) {\n    var index = reverse ? this.size : 0;\n    var values = iterateList(this, reverse);\n    var value;\n    while ((value = values()) !== DONE) {\n      if (fn(value, reverse ? --index : index++, this) === false) {\n        break;\n      }\n    }\n    return index;\n  };\n\n  List.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n    if (ownerID === this.__ownerID) {\n      return this;\n    }\n    if (!ownerID) {\n      if (this.size === 0) {\n        return emptyList();\n      }\n      this.__ownerID = ownerID;\n      this.__altered = false;\n      return this;\n    }\n    return makeList(\n      this._origin,\n      this._capacity,\n      this._level,\n      this._root,\n      this._tail,\n      ownerID,\n      this.__hash\n    );\n  };\n\n  return List;\n}(IndexedCollection));\n\nList.isList = isList;\n\nvar ListPrototype = List.prototype;\nListPrototype[IS_LIST_SYMBOL] = true;\nListPrototype[DELETE] = ListPrototype.remove;\nListPrototype.merge = ListPrototype.concat;\nListPrototype.setIn = setIn;\nListPrototype.deleteIn = ListPrototype.removeIn = deleteIn;\nListPrototype.update = update;\nListPrototype.updateIn = updateIn;\nListPrototype.mergeIn = mergeIn;\nListPrototype.mergeDeepIn = mergeDeepIn;\nListPrototype.withMutations = withMutations;\nListPrototype.wasAltered = wasAltered;\nListPrototype.asImmutable = asImmutable;\nListPrototype['@@transducer/init'] = ListPrototype.asMutable = asMutable;\nListPrototype['@@transducer/step'] = function (result, arr) {\n  return result.push(arr);\n};\nListPrototype['@@transducer/result'] = function (obj) {\n  return obj.asImmutable();\n};\n\nvar VNode = function VNode(array, ownerID) {\n  this.array = array;\n  this.ownerID = ownerID;\n};\n\n// TODO: seems like these methods are very similar\n\nVNode.prototype.removeBefore = function removeBefore (ownerID, level, index) {\n  if (index === level ? 1 << level : this.array.length === 0) {\n    return this;\n  }\n  var originIndex = (index >>> level) & MASK;\n  if (originIndex >= this.array.length) {\n    return new VNode([], ownerID);\n  }\n  var removingFirst = originIndex === 0;\n  var newChild;\n  if (level > 0) {\n    var oldChild = this.array[originIndex];\n    newChild =\n      oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n    if (newChild === oldChild && removingFirst) {\n      return this;\n    }\n  }\n  if (removingFirst && !newChild) {\n    return this;\n  }\n  var editable = editableVNode(this, ownerID);\n  if (!removingFirst) {\n    for (var ii = 0; ii < originIndex; ii++) {\n      editable.array[ii] = undefined;\n    }\n  }\n  if (newChild) {\n    editable.array[originIndex] = newChild;\n  }\n  return editable;\n};\n\nVNode.prototype.removeAfter = function removeAfter (ownerID, level, index) {\n  if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n    return this;\n  }\n  var sizeIndex = ((index - 1) >>> level) & MASK;\n  if (sizeIndex >= this.array.length) {\n    return this;\n  }\n\n  var newChild;\n  if (level > 0) {\n    var oldChild = this.array[sizeIndex];\n    newChild =\n      oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n    if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n      return this;\n    }\n  }\n\n  var editable = editableVNode(this, ownerID);\n  editable.array.splice(sizeIndex + 1);\n  if (newChild) {\n    editable.array[sizeIndex] = newChild;\n  }\n  return editable;\n};\n\nvar DONE = {};\n\nfunction iterateList(list, reverse) {\n  var left = list._origin;\n  var right = list._capacity;\n  var tailPos = getTailOffset(right);\n  var tail = list._tail;\n\n  return iterateNodeOrLeaf(list._root, list._level, 0);\n\n  function iterateNodeOrLeaf(node, level, offset) {\n    return level === 0\n      ? iterateLeaf(node, offset)\n      : iterateNode(node, level, offset);\n  }\n\n  function iterateLeaf(node, offset) {\n    var array = offset === tailPos ? tail && tail.array : node && node.array;\n    var from = offset > left ? 0 : left - offset;\n    var to = right - offset;\n    if (to > SIZE) {\n      to = SIZE;\n    }\n    return function () {\n      if (from === to) {\n        return DONE;\n      }\n      var idx = reverse ? --to : from++;\n      return array && array[idx];\n    };\n  }\n\n  function iterateNode(node, level, offset) {\n    var values;\n    var array = node && node.array;\n    var from = offset > left ? 0 : (left - offset) >> level;\n    var to = ((right - offset) >> level) + 1;\n    if (to > SIZE) {\n      to = SIZE;\n    }\n    return function () {\n      while (true) {\n        if (values) {\n          var value = values();\n          if (value !== DONE) {\n            return value;\n          }\n          values = null;\n        }\n        if (from === to) {\n          return DONE;\n        }\n        var idx = reverse ? --to : from++;\n        values = iterateNodeOrLeaf(\n          array && array[idx],\n          level - SHIFT,\n          offset + (idx << level)\n        );\n      }\n    };\n  }\n}\n\nfunction makeList(origin, capacity, level, root, tail, ownerID, hash) {\n  var list = Object.create(ListPrototype);\n  list.size = capacity - origin;\n  list._origin = origin;\n  list._capacity = capacity;\n  list._level = level;\n  list._root = root;\n  list._tail = tail;\n  list.__ownerID = ownerID;\n  list.__hash = hash;\n  list.__altered = false;\n  return list;\n}\n\nvar EMPTY_LIST;\nfunction emptyList() {\n  return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n}\n\nfunction updateList(list, index, value) {\n  index = wrapIndex(list, index);\n\n  if (index !== index) {\n    return list;\n  }\n\n  if (index >= list.size || index < 0) {\n    return list.withMutations(function (list) {\n      index < 0\n        ? setListBounds(list, index).set(0, value)\n        : setListBounds(list, 0, index + 1).set(index, value);\n    });\n  }\n\n  index += list._origin;\n\n  var newTail = list._tail;\n  var newRoot = list._root;\n  var didAlter = MakeRef();\n  if (index >= getTailOffset(list._capacity)) {\n    newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n  } else {\n    newRoot = updateVNode(\n      newRoot,\n      list.__ownerID,\n      list._level,\n      index,\n      value,\n      didAlter\n    );\n  }\n\n  if (!didAlter.value) {\n    return list;\n  }\n\n  if (list.__ownerID) {\n    list._root = newRoot;\n    list._tail = newTail;\n    list.__hash = undefined;\n    list.__altered = true;\n    return list;\n  }\n  return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n}\n\nfunction updateVNode(node, ownerID, level, index, value, didAlter) {\n  var idx = (index >>> level) & MASK;\n  var nodeHas = node && idx < node.array.length;\n  if (!nodeHas && value === undefined) {\n    return node;\n  }\n\n  var newNode;\n\n  if (level > 0) {\n    var lowerNode = node && node.array[idx];\n    var newLowerNode = updateVNode(\n      lowerNode,\n      ownerID,\n      level - SHIFT,\n      index,\n      value,\n      didAlter\n    );\n    if (newLowerNode === lowerNode) {\n      return node;\n    }\n    newNode = editableVNode(node, ownerID);\n    newNode.array[idx] = newLowerNode;\n    return newNode;\n  }\n\n  if (nodeHas && node.array[idx] === value) {\n    return node;\n  }\n\n  if (didAlter) {\n    SetRef(didAlter);\n  }\n\n  newNode = editableVNode(node, ownerID);\n  if (value === undefined && idx === newNode.array.length - 1) {\n    newNode.array.pop();\n  } else {\n    newNode.array[idx] = value;\n  }\n  return newNode;\n}\n\nfunction editableVNode(node, ownerID) {\n  if (ownerID && node && ownerID === node.ownerID) {\n    return node;\n  }\n  return new VNode(node ? node.array.slice() : [], ownerID);\n}\n\nfunction listNodeFor(list, rawIndex) {\n  if (rawIndex >= getTailOffset(list._capacity)) {\n    return list._tail;\n  }\n  if (rawIndex < 1 << (list._level + SHIFT)) {\n    var node = list._root;\n    var level = list._level;\n    while (node && level > 0) {\n      node = node.array[(rawIndex >>> level) & MASK];\n      level -= SHIFT;\n    }\n    return node;\n  }\n}\n\nfunction setListBounds(list, begin, end) {\n  // Sanitize begin & end using this shorthand for ToInt32(argument)\n  // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n  if (begin !== undefined) {\n    begin |= 0;\n  }\n  if (end !== undefined) {\n    end |= 0;\n  }\n  var owner = list.__ownerID || new OwnerID();\n  var oldOrigin = list._origin;\n  var oldCapacity = list._capacity;\n  var newOrigin = oldOrigin + begin;\n  var newCapacity =\n    end === undefined\n      ? oldCapacity\n      : end < 0\n      ? oldCapacity + end\n      : oldOrigin + end;\n  if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n    return list;\n  }\n\n  // If it's going to end after it starts, it's empty.\n  if (newOrigin >= newCapacity) {\n    return list.clear();\n  }\n\n  var newLevel = list._level;\n  var newRoot = list._root;\n\n  // New origin might need creating a higher root.\n  var offsetShift = 0;\n  while (newOrigin + offsetShift < 0) {\n    newRoot = new VNode(\n      newRoot && newRoot.array.length ? [undefined, newRoot] : [],\n      owner\n    );\n    newLevel += SHIFT;\n    offsetShift += 1 << newLevel;\n  }\n  if (offsetShift) {\n    newOrigin += offsetShift;\n    oldOrigin += offsetShift;\n    newCapacity += offsetShift;\n    oldCapacity += offsetShift;\n  }\n\n  var oldTailOffset = getTailOffset(oldCapacity);\n  var newTailOffset = getTailOffset(newCapacity);\n\n  // New size might need creating a higher root.\n  while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n    newRoot = new VNode(\n      newRoot && newRoot.array.length ? [newRoot] : [],\n      owner\n    );\n    newLevel += SHIFT;\n  }\n\n  // Locate or create the new tail.\n  var oldTail = list._tail;\n  var newTail =\n    newTailOffset < oldTailOffset\n      ? listNodeFor(list, newCapacity - 1)\n      : newTailOffset > oldTailOffset\n      ? new VNode([], owner)\n      : oldTail;\n\n  // Merge Tail into tree.\n  if (\n    oldTail &&\n    newTailOffset > oldTailOffset &&\n    newOrigin < oldCapacity &&\n    oldTail.array.length\n  ) {\n    newRoot = editableVNode(newRoot, owner);\n    var node = newRoot;\n    for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n      var idx = (oldTailOffset >>> level) & MASK;\n      node = node.array[idx] = editableVNode(node.array[idx], owner);\n    }\n    node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n  }\n\n  // If the size has been reduced, there's a chance the tail needs to be trimmed.\n  if (newCapacity < oldCapacity) {\n    newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n  }\n\n  // If the new origin is within the tail, then we do not need a root.\n  if (newOrigin >= newTailOffset) {\n    newOrigin -= newTailOffset;\n    newCapacity -= newTailOffset;\n    newLevel = SHIFT;\n    newRoot = null;\n    newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n    // Otherwise, if the root has been trimmed, garbage collect.\n  } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n    offsetShift = 0;\n\n    // Identify the new top root node of the subtree of the old root.\n    while (newRoot) {\n      var beginIndex = (newOrigin >>> newLevel) & MASK;\n      if ((beginIndex !== newTailOffset >>> newLevel) & MASK) {\n        break;\n      }\n      if (beginIndex) {\n        offsetShift += (1 << newLevel) * beginIndex;\n      }\n      newLevel -= SHIFT;\n      newRoot = newRoot.array[beginIndex];\n    }\n\n    // Trim the new sides of the new root.\n    if (newRoot && newOrigin > oldOrigin) {\n      newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n    }\n    if (newRoot && newTailOffset < oldTailOffset) {\n      newRoot = newRoot.removeAfter(\n        owner,\n        newLevel,\n        newTailOffset - offsetShift\n      );\n    }\n    if (offsetShift) {\n      newOrigin -= offsetShift;\n      newCapacity -= offsetShift;\n    }\n  }\n\n  if (list.__ownerID) {\n    list.size = newCapacity - newOrigin;\n    list._origin = newOrigin;\n    list._capacity = newCapacity;\n    list._level = newLevel;\n    list._root = newRoot;\n    list._tail = newTail;\n    list.__hash = undefined;\n    list.__altered = true;\n    return list;\n  }\n  return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n}\n\nfunction getTailOffset(size) {\n  return size < SIZE ? 0 : ((size - 1) >>> SHIFT) << SHIFT;\n}\n\nvar OrderedMap = /*@__PURE__*/(function (Map) {\n  function OrderedMap(value) {\n    // eslint-disable-next-line no-constructor-return\n    return value === undefined || value === null\n      ? emptyOrderedMap()\n      : isOrderedMap(value)\n      ? value\n      : emptyOrderedMap().withMutations(function (map) {\n          var iter = KeyedCollection(value);\n          assertNotInfinite(iter.size);\n          iter.forEach(function (v, k) { return map.set(k, v); });\n        });\n  }\n\n  if ( Map ) OrderedMap.__proto__ = Map;\n  OrderedMap.prototype = Object.create( Map && Map.prototype );\n  OrderedMap.prototype.constructor = OrderedMap;\n\n  OrderedMap.of = function of (/*...values*/) {\n    return this(arguments);\n  };\n\n  OrderedMap.prototype.toString = function toString () {\n    return this.__toString('OrderedMap {', '}');\n  };\n\n  // @pragma Access\n\n  OrderedMap.prototype.get = function get (k, notSetValue) {\n    var index = this._map.get(k);\n    return index !== undefined ? this._list.get(index)[1] : notSetValue;\n  };\n\n  // @pragma Modification\n\n  OrderedMap.prototype.clear = function clear () {\n    if (this.size === 0) {\n      return this;\n    }\n    if (this.__ownerID) {\n      this.size = 0;\n      this._map.clear();\n      this._list.clear();\n      this.__altered = true;\n      return this;\n    }\n    return emptyOrderedMap();\n  };\n\n  OrderedMap.prototype.set = function set (k, v) {\n    return updateOrderedMap(this, k, v);\n  };\n\n  OrderedMap.prototype.remove = function remove (k) {\n    return updateOrderedMap(this, k, NOT_SET);\n  };\n\n  OrderedMap.prototype.__iterate = function __iterate (fn, reverse) {\n    var this$1$1 = this;\n\n    return this._list.__iterate(\n      function (entry) { return entry && fn(entry[1], entry[0], this$1$1); },\n      reverse\n    );\n  };\n\n  OrderedMap.prototype.__iterator = function __iterator (type, reverse) {\n    return this._list.fromEntrySeq().__iterator(type, reverse);\n  };\n\n  OrderedMap.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n    if (ownerID === this.__ownerID) {\n      return this;\n    }\n    var newMap = this._map.__ensureOwner(ownerID);\n    var newList = this._list.__ensureOwner(ownerID);\n    if (!ownerID) {\n      if (this.size === 0) {\n        return emptyOrderedMap();\n      }\n      this.__ownerID = ownerID;\n      this.__altered = false;\n      this._map = newMap;\n      this._list = newList;\n      return this;\n    }\n    return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n  };\n\n  return OrderedMap;\n}(Map));\n\nOrderedMap.isOrderedMap = isOrderedMap;\n\nOrderedMap.prototype[IS_ORDERED_SYMBOL] = true;\nOrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\nfunction makeOrderedMap(map, list, ownerID, hash) {\n  var omap = Object.create(OrderedMap.prototype);\n  omap.size = map ? map.size : 0;\n  omap._map = map;\n  omap._list = list;\n  omap.__ownerID = ownerID;\n  omap.__hash = hash;\n  omap.__altered = false;\n  return omap;\n}\n\nvar EMPTY_ORDERED_MAP;\nfunction emptyOrderedMap() {\n  return (\n    EMPTY_ORDERED_MAP ||\n    (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()))\n  );\n}\n\nfunction updateOrderedMap(omap, k, v) {\n  var map = omap._map;\n  var list = omap._list;\n  var i = map.get(k);\n  var has = i !== undefined;\n  var newMap;\n  var newList;\n  if (v === NOT_SET) {\n    // removed\n    if (!has) {\n      return omap;\n    }\n    if (list.size >= SIZE && list.size >= map.size * 2) {\n      newList = list.filter(function (entry, idx) { return entry !== undefined && i !== idx; });\n      newMap = newList\n        .toKeyedSeq()\n        .map(function (entry) { return entry[0]; })\n        .flip()\n        .toMap();\n      if (omap.__ownerID) {\n        newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n      }\n    } else {\n      newMap = map.remove(k);\n      newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n    }\n  } else if (has) {\n    if (v === list.get(i)[1]) {\n      return omap;\n    }\n    newMap = map;\n    newList = list.set(i, [k, v]);\n  } else {\n    newMap = map.set(k, list.size);\n    newList = list.set(list.size, [k, v]);\n  }\n  if (omap.__ownerID) {\n    omap.size = newMap.size;\n    omap._map = newMap;\n    omap._list = newList;\n    omap.__hash = undefined;\n    omap.__altered = true;\n    return omap;\n  }\n  return makeOrderedMap(newMap, newList);\n}\n\nvar IS_STACK_SYMBOL = '@@__IMMUTABLE_STACK__@@';\n\nfunction isStack(maybeStack) {\n  return Boolean(maybeStack && maybeStack[IS_STACK_SYMBOL]);\n}\n\nvar Stack = /*@__PURE__*/(function (IndexedCollection) {\n  function Stack(value) {\n    // eslint-disable-next-line no-constructor-return\n    return value === undefined || value === null\n      ? emptyStack()\n      : isStack(value)\n      ? value\n      : emptyStack().pushAll(value);\n  }\n\n  if ( IndexedCollection ) Stack.__proto__ = IndexedCollection;\n  Stack.prototype = Object.create( IndexedCollection && IndexedCollection.prototype );\n  Stack.prototype.constructor = Stack;\n\n  Stack.of = function of (/*...values*/) {\n    return this(arguments);\n  };\n\n  Stack.prototype.toString = function toString () {\n    return this.__toString('Stack [', ']');\n  };\n\n  // @pragma Access\n\n  Stack.prototype.get = function get (index, notSetValue) {\n    var head = this._head;\n    index = wrapIndex(this, index);\n    while (head && index--) {\n      head = head.next;\n    }\n    return head ? head.value : notSetValue;\n  };\n\n  Stack.prototype.peek = function peek () {\n    return this._head && this._head.value;\n  };\n\n  // @pragma Modification\n\n  Stack.prototype.push = function push (/*...values*/) {\n    var arguments$1 = arguments;\n\n    if (arguments.length === 0) {\n      return this;\n    }\n    var newSize = this.size + arguments.length;\n    var head = this._head;\n    for (var ii = arguments.length - 1; ii >= 0; ii--) {\n      head = {\n        value: arguments$1[ii],\n        next: head,\n      };\n    }\n    if (this.__ownerID) {\n      this.size = newSize;\n      this._head = head;\n      this.__hash = undefined;\n      this.__altered = true;\n      return this;\n    }\n    return makeStack(newSize, head);\n  };\n\n  Stack.prototype.pushAll = function pushAll (iter) {\n    iter = IndexedCollection(iter);\n    if (iter.size === 0) {\n      return this;\n    }\n    if (this.size === 0 && isStack(iter)) {\n      return iter;\n    }\n    assertNotInfinite(iter.size);\n    var newSize = this.size;\n    var head = this._head;\n    iter.__iterate(function (value) {\n      newSize++;\n      head = {\n        value: value,\n        next: head,\n      };\n    }, /* reverse */ true);\n    if (this.__ownerID) {\n      this.size = newSize;\n      this._head = head;\n      this.__hash = undefined;\n      this.__altered = true;\n      return this;\n    }\n    return makeStack(newSize, head);\n  };\n\n  Stack.prototype.pop = function pop () {\n    return this.slice(1);\n  };\n\n  Stack.prototype.clear = function clear () {\n    if (this.size === 0) {\n      return this;\n    }\n    if (this.__ownerID) {\n      this.size = 0;\n      this._head = undefined;\n      this.__hash = undefined;\n      this.__altered = true;\n      return this;\n    }\n    return emptyStack();\n  };\n\n  Stack.prototype.slice = function slice (begin, end) {\n    if (wholeSlice(begin, end, this.size)) {\n      return this;\n    }\n    var resolvedBegin = resolveBegin(begin, this.size);\n    var resolvedEnd = resolveEnd(end, this.size);\n    if (resolvedEnd !== this.size) {\n      // super.slice(begin, end);\n      return IndexedCollection.prototype.slice.call(this, begin, end);\n    }\n    var newSize = this.size - resolvedBegin;\n    var head = this._head;\n    while (resolvedBegin--) {\n      head = head.next;\n    }\n    if (this.__ownerID) {\n      this.size = newSize;\n      this._head = head;\n      this.__hash = undefined;\n      this.__altered = true;\n      return this;\n    }\n    return makeStack(newSize, head);\n  };\n\n  // @pragma Mutability\n\n  Stack.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n    if (ownerID === this.__ownerID) {\n      return this;\n    }\n    if (!ownerID) {\n      if (this.size === 0) {\n        return emptyStack();\n      }\n      this.__ownerID = ownerID;\n      this.__altered = false;\n      return this;\n    }\n    return makeStack(this.size, this._head, ownerID, this.__hash);\n  };\n\n  // @pragma Iteration\n\n  Stack.prototype.__iterate = function __iterate (fn, reverse) {\n    var this$1$1 = this;\n\n    if (reverse) {\n      return new ArraySeq(this.toArray()).__iterate(\n        function (v, k) { return fn(v, k, this$1$1); },\n        reverse\n      );\n    }\n    var iterations = 0;\n    var node = this._head;\n    while (node) {\n      if (fn(node.value, iterations++, this) === false) {\n        break;\n      }\n      node = node.next;\n    }\n    return iterations;\n  };\n\n  Stack.prototype.__iterator = function __iterator (type, reverse) {\n    if (reverse) {\n      return new ArraySeq(this.toArray()).__iterator(type, reverse);\n    }\n    var iterations = 0;\n    var node = this._head;\n    return new Iterator(function () {\n      if (node) {\n        var value = node.value;\n        node = node.next;\n        return iteratorValue(type, iterations++, value);\n      }\n      return iteratorDone();\n    });\n  };\n\n  return Stack;\n}(IndexedCollection));\n\nStack.isStack = isStack;\n\nvar StackPrototype = Stack.prototype;\nStackPrototype[IS_STACK_SYMBOL] = true;\nStackPrototype.shift = StackPrototype.pop;\nStackPrototype.unshift = StackPrototype.push;\nStackPrototype.unshiftAll = StackPrototype.pushAll;\nStackPrototype.withMutations = withMutations;\nStackPrototype.wasAltered = wasAltered;\nStackPrototype.asImmutable = asImmutable;\nStackPrototype['@@transducer/init'] = StackPrototype.asMutable = asMutable;\nStackPrototype['@@transducer/step'] = function (result, arr) {\n  return result.unshift(arr);\n};\nStackPrototype['@@transducer/result'] = function (obj) {\n  return obj.asImmutable();\n};\n\nfunction makeStack(size, head, ownerID, hash) {\n  var map = Object.create(StackPrototype);\n  map.size = size;\n  map._head = head;\n  map.__ownerID = ownerID;\n  map.__hash = hash;\n  map.__altered = false;\n  return map;\n}\n\nvar EMPTY_STACK;\nfunction emptyStack() {\n  return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n}\n\nvar IS_SET_SYMBOL = '@@__IMMUTABLE_SET__@@';\n\nfunction isSet(maybeSet) {\n  return Boolean(maybeSet && maybeSet[IS_SET_SYMBOL]);\n}\n\nfunction isOrderedSet(maybeOrderedSet) {\n  return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n}\n\nfunction deepEqual(a, b) {\n  if (a === b) {\n    return true;\n  }\n\n  if (\n    !isCollection(b) ||\n    (a.size !== undefined && b.size !== undefined && a.size !== b.size) ||\n    (a.__hash !== undefined &&\n      b.__hash !== undefined &&\n      a.__hash !== b.__hash) ||\n    isKeyed(a) !== isKeyed(b) ||\n    isIndexed(a) !== isIndexed(b) ||\n    isOrdered(a) !== isOrdered(b)\n  ) {\n    return false;\n  }\n\n  if (a.size === 0 && b.size === 0) {\n    return true;\n  }\n\n  var notAssociative = !isAssociative(a);\n\n  if (isOrdered(a)) {\n    var entries = a.entries();\n    return (\n      b.every(function (v, k) {\n        var entry = entries.next().value;\n        return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n      }) && entries.next().done\n    );\n  }\n\n  var flipped = false;\n\n  if (a.size === undefined) {\n    if (b.size === undefined) {\n      if (typeof a.cacheResult === 'function') {\n        a.cacheResult();\n      }\n    } else {\n      flipped = true;\n      var _ = a;\n      a = b;\n      b = _;\n    }\n  }\n\n  var allEqual = true;\n  var bSize = b.__iterate(function (v, k) {\n    if (\n      notAssociative\n        ? !a.has(v)\n        : flipped\n        ? !is(v, a.get(k, NOT_SET))\n        : !is(a.get(k, NOT_SET), v)\n    ) {\n      allEqual = false;\n      return false;\n    }\n  });\n\n  return allEqual && a.size === bSize;\n}\n\nfunction mixin(ctor, methods) {\n  var keyCopier = function (key) {\n    ctor.prototype[key] = methods[key];\n  };\n  Object.keys(methods).forEach(keyCopier);\n  Object.getOwnPropertySymbols &&\n    Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n  return ctor;\n}\n\nfunction toJS(value) {\n  if (!value || typeof value !== 'object') {\n    return value;\n  }\n  if (!isCollection(value)) {\n    if (!isDataStructure(value)) {\n      return value;\n    }\n    value = Seq(value);\n  }\n  if (isKeyed(value)) {\n    var result$1 = {};\n    value.__iterate(function (v, k) {\n      result$1[k] = toJS(v);\n    });\n    return result$1;\n  }\n  var result = [];\n  value.__iterate(function (v) {\n    result.push(toJS(v));\n  });\n  return result;\n}\n\nvar Set = /*@__PURE__*/(function (SetCollection) {\n  function Set(value) {\n    // eslint-disable-next-line no-constructor-return\n    return value === undefined || value === null\n      ? emptySet()\n      : isSet(value) && !isOrdered(value)\n      ? value\n      : emptySet().withMutations(function (set) {\n          var iter = SetCollection(value);\n          assertNotInfinite(iter.size);\n          iter.forEach(function (v) { return set.add(v); });\n        });\n  }\n\n  if ( SetCollection ) Set.__proto__ = SetCollection;\n  Set.prototype = Object.create( SetCollection && SetCollection.prototype );\n  Set.prototype.constructor = Set;\n\n  Set.of = function of (/*...values*/) {\n    return this(arguments);\n  };\n\n  Set.fromKeys = function fromKeys (value) {\n    return this(KeyedCollection(value).keySeq());\n  };\n\n  Set.intersect = function intersect (sets) {\n    sets = Collection(sets).toArray();\n    return sets.length\n      ? SetPrototype.intersect.apply(Set(sets.pop()), sets)\n      : emptySet();\n  };\n\n  Set.union = function union (sets) {\n    sets = Collection(sets).toArray();\n    return sets.length\n      ? SetPrototype.union.apply(Set(sets.pop()), sets)\n      : emptySet();\n  };\n\n  Set.prototype.toString = function toString () {\n    return this.__toString('Set {', '}');\n  };\n\n  // @pragma Access\n\n  Set.prototype.has = function has (value) {\n    return this._map.has(value);\n  };\n\n  // @pragma Modification\n\n  Set.prototype.add = function add (value) {\n    return updateSet(this, this._map.set(value, value));\n  };\n\n  Set.prototype.remove = function remove (value) {\n    return updateSet(this, this._map.remove(value));\n  };\n\n  Set.prototype.clear = function clear () {\n    return updateSet(this, this._map.clear());\n  };\n\n  // @pragma Composition\n\n  Set.prototype.map = function map (mapper, context) {\n    var this$1$1 = this;\n\n    // keep track if the set is altered by the map function\n    var didChanges = false;\n\n    var newMap = updateSet(\n      this,\n      this._map.mapEntries(function (ref) {\n        var v = ref[1];\n\n        var mapped = mapper.call(context, v, v, this$1$1);\n\n        if (mapped !== v) {\n          didChanges = true;\n        }\n\n        return [mapped, mapped];\n      }, context)\n    );\n\n    return didChanges ? newMap : this;\n  };\n\n  Set.prototype.union = function union () {\n    var iters = [], len = arguments.length;\n    while ( len-- ) iters[ len ] = arguments[ len ];\n\n    iters = iters.filter(function (x) { return x.size !== 0; });\n    if (iters.length === 0) {\n      return this;\n    }\n    if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n      return this.constructor(iters[0]);\n    }\n    return this.withMutations(function (set) {\n      for (var ii = 0; ii < iters.length; ii++) {\n        if (typeof iters[ii] === 'string') {\n          set.add(iters[ii]);\n        } else {\n          SetCollection(iters[ii]).forEach(function (value) { return set.add(value); });\n        }\n      }\n    });\n  };\n\n  Set.prototype.intersect = function intersect () {\n    var iters = [], len = arguments.length;\n    while ( len-- ) iters[ len ] = arguments[ len ];\n\n    if (iters.length === 0) {\n      return this;\n    }\n    iters = iters.map(function (iter) { return SetCollection(iter); });\n    var toRemove = [];\n    this.forEach(function (value) {\n      if (!iters.every(function (iter) { return iter.includes(value); })) {\n        toRemove.push(value);\n      }\n    });\n    return this.withMutations(function (set) {\n      toRemove.forEach(function (value) {\n        set.remove(value);\n      });\n    });\n  };\n\n  Set.prototype.subtract = function subtract () {\n    var iters = [], len = arguments.length;\n    while ( len-- ) iters[ len ] = arguments[ len ];\n\n    if (iters.length === 0) {\n      return this;\n    }\n    iters = iters.map(function (iter) { return SetCollection(iter); });\n    var toRemove = [];\n    this.forEach(function (value) {\n      if (iters.some(function (iter) { return iter.includes(value); })) {\n        toRemove.push(value);\n      }\n    });\n    return this.withMutations(function (set) {\n      toRemove.forEach(function (value) {\n        set.remove(value);\n      });\n    });\n  };\n\n  Set.prototype.sort = function sort (comparator) {\n    // Late binding\n    return OrderedSet(sortFactory(this, comparator));\n  };\n\n  Set.prototype.sortBy = function sortBy (mapper, comparator) {\n    // Late binding\n    return OrderedSet(sortFactory(this, comparator, mapper));\n  };\n\n  Set.prototype.wasAltered = function wasAltered () {\n    return this._map.wasAltered();\n  };\n\n  Set.prototype.__iterate = function __iterate (fn, reverse) {\n    var this$1$1 = this;\n\n    return this._map.__iterate(function (k) { return fn(k, k, this$1$1); }, reverse);\n  };\n\n  Set.prototype.__iterator = function __iterator (type, reverse) {\n    return this._map.__iterator(type, reverse);\n  };\n\n  Set.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n    if (ownerID === this.__ownerID) {\n      return this;\n    }\n    var newMap = this._map.__ensureOwner(ownerID);\n    if (!ownerID) {\n      if (this.size === 0) {\n        return this.__empty();\n      }\n      this.__ownerID = ownerID;\n      this._map = newMap;\n      return this;\n    }\n    return this.__make(newMap, ownerID);\n  };\n\n  return Set;\n}(SetCollection));\n\nSet.isSet = isSet;\n\nvar SetPrototype = Set.prototype;\nSetPrototype[IS_SET_SYMBOL] = true;\nSetPrototype[DELETE] = SetPrototype.remove;\nSetPrototype.merge = SetPrototype.concat = SetPrototype.union;\nSetPrototype.withMutations = withMutations;\nSetPrototype.asImmutable = asImmutable;\nSetPrototype['@@transducer/init'] = SetPrototype.asMutable = asMutable;\nSetPrototype['@@transducer/step'] = function (result, arr) {\n  return result.add(arr);\n};\nSetPrototype['@@transducer/result'] = function (obj) {\n  return obj.asImmutable();\n};\n\nSetPrototype.__empty = emptySet;\nSetPrototype.__make = makeSet;\n\nfunction updateSet(set, newMap) {\n  if (set.__ownerID) {\n    set.size = newMap.size;\n    set._map = newMap;\n    return set;\n  }\n  return newMap === set._map\n    ? set\n    : newMap.size === 0\n    ? set.__empty()\n    : set.__make(newMap);\n}\n\nfunction makeSet(map, ownerID) {\n  var set = Object.create(SetPrototype);\n  set.size = map ? map.size : 0;\n  set._map = map;\n  set.__ownerID = ownerID;\n  return set;\n}\n\nvar EMPTY_SET;\nfunction emptySet() {\n  return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n}\n\n/**\n * Returns a lazy seq of nums from start (inclusive) to end\n * (exclusive), by step, where start defaults to 0, step to 1, and end to\n * infinity. When start is equal to end, returns empty list.\n */\nvar Range = /*@__PURE__*/(function (IndexedSeq) {\n  function Range(start, end, step) {\n    if (!(this instanceof Range)) {\n      // eslint-disable-next-line no-constructor-return\n      return new Range(start, end, step);\n    }\n    invariant(step !== 0, 'Cannot step a Range by 0');\n    start = start || 0;\n    if (end === undefined) {\n      end = Infinity;\n    }\n    step = step === undefined ? 1 : Math.abs(step);\n    if (end < start) {\n      step = -step;\n    }\n    this._start = start;\n    this._end = end;\n    this._step = step;\n    this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n    if (this.size === 0) {\n      if (EMPTY_RANGE) {\n        // eslint-disable-next-line no-constructor-return\n        return EMPTY_RANGE;\n      }\n      EMPTY_RANGE = this;\n    }\n  }\n\n  if ( IndexedSeq ) Range.__proto__ = IndexedSeq;\n  Range.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n  Range.prototype.constructor = Range;\n\n  Range.prototype.toString = function toString () {\n    if (this.size === 0) {\n      return 'Range []';\n    }\n    return (\n      'Range [ ' +\n      this._start +\n      '...' +\n      this._end +\n      (this._step !== 1 ? ' by ' + this._step : '') +\n      ' ]'\n    );\n  };\n\n  Range.prototype.get = function get (index, notSetValue) {\n    return this.has(index)\n      ? this._start + wrapIndex(this, index) * this._step\n      : notSetValue;\n  };\n\n  Range.prototype.includes = function includes (searchValue) {\n    var possibleIndex = (searchValue - this._start) / this._step;\n    return (\n      possibleIndex >= 0 &&\n      possibleIndex < this.size &&\n      possibleIndex === Math.floor(possibleIndex)\n    );\n  };\n\n  Range.prototype.slice = function slice (begin, end) {\n    if (wholeSlice(begin, end, this.size)) {\n      return this;\n    }\n    begin = resolveBegin(begin, this.size);\n    end = resolveEnd(end, this.size);\n    if (end <= begin) {\n      return new Range(0, 0);\n    }\n    return new Range(\n      this.get(begin, this._end),\n      this.get(end, this._end),\n      this._step\n    );\n  };\n\n  Range.prototype.indexOf = function indexOf (searchValue) {\n    var offsetValue = searchValue - this._start;\n    if (offsetValue % this._step === 0) {\n      var index = offsetValue / this._step;\n      if (index >= 0 && index < this.size) {\n        return index;\n      }\n    }\n    return -1;\n  };\n\n  Range.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n    return this.indexOf(searchValue);\n  };\n\n  Range.prototype.__iterate = function __iterate (fn, reverse) {\n    var size = this.size;\n    var step = this._step;\n    var value = reverse ? this._start + (size - 1) * step : this._start;\n    var i = 0;\n    while (i !== size) {\n      if (fn(value, reverse ? size - ++i : i++, this) === false) {\n        break;\n      }\n      value += reverse ? -step : step;\n    }\n    return i;\n  };\n\n  Range.prototype.__iterator = function __iterator (type, reverse) {\n    var size = this.size;\n    var step = this._step;\n    var value = reverse ? this._start + (size - 1) * step : this._start;\n    var i = 0;\n    return new Iterator(function () {\n      if (i === size) {\n        return iteratorDone();\n      }\n      var v = value;\n      value += reverse ? -step : step;\n      return iteratorValue(type, reverse ? size - ++i : i++, v);\n    });\n  };\n\n  Range.prototype.equals = function equals (other) {\n    return other instanceof Range\n      ? this._start === other._start &&\n          this._end === other._end &&\n          this._step === other._step\n      : deepEqual(this, other);\n  };\n\n  return Range;\n}(IndexedSeq));\n\nvar EMPTY_RANGE;\n\nfunction getIn$1(collection, searchKeyPath, notSetValue) {\n  var keyPath = coerceKeyPath(searchKeyPath);\n  var i = 0;\n  while (i !== keyPath.length) {\n    collection = get(collection, keyPath[i++], NOT_SET);\n    if (collection === NOT_SET) {\n      return notSetValue;\n    }\n  }\n  return collection;\n}\n\nfunction getIn(searchKeyPath, notSetValue) {\n  return getIn$1(this, searchKeyPath, notSetValue);\n}\n\nfunction hasIn$1(collection, keyPath) {\n  return getIn$1(collection, keyPath, NOT_SET) !== NOT_SET;\n}\n\nfunction hasIn(searchKeyPath) {\n  return hasIn$1(this, searchKeyPath);\n}\n\nfunction toObject() {\n  assertNotInfinite(this.size);\n  var object = {};\n  this.__iterate(function (v, k) {\n    object[k] = v;\n  });\n  return object;\n}\n\n// Note: all of these methods are deprecated.\nCollection.isIterable = isCollection;\nCollection.isKeyed = isKeyed;\nCollection.isIndexed = isIndexed;\nCollection.isAssociative = isAssociative;\nCollection.isOrdered = isOrdered;\n\nCollection.Iterator = Iterator;\n\nmixin(Collection, {\n  // ### Conversion to other types\n\n  toArray: function toArray() {\n    assertNotInfinite(this.size);\n    var array = new Array(this.size || 0);\n    var useTuples = isKeyed(this);\n    var i = 0;\n    this.__iterate(function (v, k) {\n      // Keyed collections produce an array of tuples.\n      array[i++] = useTuples ? [k, v] : v;\n    });\n    return array;\n  },\n\n  toIndexedSeq: function toIndexedSeq() {\n    return new ToIndexedSequence(this);\n  },\n\n  toJS: function toJS$1() {\n    return toJS(this);\n  },\n\n  toKeyedSeq: function toKeyedSeq() {\n    return new ToKeyedSequence(this, true);\n  },\n\n  toMap: function toMap() {\n    // Use Late Binding here to solve the circular dependency.\n    return Map(this.toKeyedSeq());\n  },\n\n  toObject: toObject,\n\n  toOrderedMap: function toOrderedMap() {\n    // Use Late Binding here to solve the circular dependency.\n    return OrderedMap(this.toKeyedSeq());\n  },\n\n  toOrderedSet: function toOrderedSet() {\n    // Use Late Binding here to solve the circular dependency.\n    return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n  },\n\n  toSet: function toSet() {\n    // Use Late Binding here to solve the circular dependency.\n    return Set(isKeyed(this) ? this.valueSeq() : this);\n  },\n\n  toSetSeq: function toSetSeq() {\n    return new ToSetSequence(this);\n  },\n\n  toSeq: function toSeq() {\n    return isIndexed(this)\n      ? this.toIndexedSeq()\n      : isKeyed(this)\n      ? this.toKeyedSeq()\n      : this.toSetSeq();\n  },\n\n  toStack: function toStack() {\n    // Use Late Binding here to solve the circular dependency.\n    return Stack(isKeyed(this) ? this.valueSeq() : this);\n  },\n\n  toList: function toList() {\n    // Use Late Binding here to solve the circular dependency.\n    return List(isKeyed(this) ? this.valueSeq() : this);\n  },\n\n  // ### Common JavaScript methods and properties\n\n  toString: function toString() {\n    return '[Collection]';\n  },\n\n  __toString: function __toString(head, tail) {\n    if (this.size === 0) {\n      return head + tail;\n    }\n    return (\n      head +\n      ' ' +\n      this.toSeq().map(this.__toStringMapper).join(', ') +\n      ' ' +\n      tail\n    );\n  },\n\n  // ### ES6 Collection methods (ES6 Array and Map)\n\n  concat: function concat() {\n    var values = [], len = arguments.length;\n    while ( len-- ) values[ len ] = arguments[ len ];\n\n    return reify(this, concatFactory(this, values));\n  },\n\n  includes: function includes(searchValue) {\n    return this.some(function (value) { return is(value, searchValue); });\n  },\n\n  entries: function entries() {\n    return this.__iterator(ITERATE_ENTRIES);\n  },\n\n  every: function every(predicate, context) {\n    assertNotInfinite(this.size);\n    var returnValue = true;\n    this.__iterate(function (v, k, c) {\n      if (!predicate.call(context, v, k, c)) {\n        returnValue = false;\n        return false;\n      }\n    });\n    return returnValue;\n  },\n\n  filter: function filter(predicate, context) {\n    return reify(this, filterFactory(this, predicate, context, true));\n  },\n\n  partition: function partition(predicate, context) {\n    return partitionFactory(this, predicate, context);\n  },\n\n  find: function find(predicate, context, notSetValue) {\n    var entry = this.findEntry(predicate, context);\n    return entry ? entry[1] : notSetValue;\n  },\n\n  forEach: function forEach(sideEffect, context) {\n    assertNotInfinite(this.size);\n    return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n  },\n\n  join: function join(separator) {\n    assertNotInfinite(this.size);\n    separator = separator !== undefined ? '' + separator : ',';\n    var joined = '';\n    var isFirst = true;\n    this.__iterate(function (v) {\n      isFirst ? (isFirst = false) : (joined += separator);\n      joined += v !== null && v !== undefined ? v.toString() : '';\n    });\n    return joined;\n  },\n\n  keys: function keys() {\n    return this.__iterator(ITERATE_KEYS);\n  },\n\n  map: function map(mapper, context) {\n    return reify(this, mapFactory(this, mapper, context));\n  },\n\n  reduce: function reduce$1(reducer, initialReduction, context) {\n    return reduce(\n      this,\n      reducer,\n      initialReduction,\n      context,\n      arguments.length < 2,\n      false\n    );\n  },\n\n  reduceRight: function reduceRight(reducer, initialReduction, context) {\n    return reduce(\n      this,\n      reducer,\n      initialReduction,\n      context,\n      arguments.length < 2,\n      true\n    );\n  },\n\n  reverse: function reverse() {\n    return reify(this, reverseFactory(this, true));\n  },\n\n  slice: function slice(begin, end) {\n    return reify(this, sliceFactory(this, begin, end, true));\n  },\n\n  some: function some(predicate, context) {\n    assertNotInfinite(this.size);\n    var returnValue = false;\n    this.__iterate(function (v, k, c) {\n      if (predicate.call(context, v, k, c)) {\n        returnValue = true;\n        return false;\n      }\n    });\n    return returnValue;\n  },\n\n  sort: function sort(comparator) {\n    return reify(this, sortFactory(this, comparator));\n  },\n\n  values: function values() {\n    return this.__iterator(ITERATE_VALUES);\n  },\n\n  // ### More sequential methods\n\n  butLast: function butLast() {\n    return this.slice(0, -1);\n  },\n\n  isEmpty: function isEmpty() {\n    return this.size !== undefined ? this.size === 0 : !this.some(function () { return true; });\n  },\n\n  count: function count(predicate, context) {\n    return ensureSize(\n      predicate ? this.toSeq().filter(predicate, context) : this\n    );\n  },\n\n  countBy: function countBy(grouper, context) {\n    return countByFactory(this, grouper, context);\n  },\n\n  equals: function equals(other) {\n    return deepEqual(this, other);\n  },\n\n  entrySeq: function entrySeq() {\n    var collection = this;\n    if (collection._cache) {\n      // We cache as an entries array, so we can just return the cache!\n      return new ArraySeq(collection._cache);\n    }\n    var entriesSequence = collection.toSeq().map(entryMapper).toIndexedSeq();\n    entriesSequence.fromEntrySeq = function () { return collection.toSeq(); };\n    return entriesSequence;\n  },\n\n  filterNot: function filterNot(predicate, context) {\n    return this.filter(not(predicate), context);\n  },\n\n  findEntry: function findEntry(predicate, context, notSetValue) {\n    var found = notSetValue;\n    this.__iterate(function (v, k, c) {\n      if (predicate.call(context, v, k, c)) {\n        found = [k, v];\n        return false;\n      }\n    });\n    return found;\n  },\n\n  findKey: function findKey(predicate, context) {\n    var entry = this.findEntry(predicate, context);\n    return entry && entry[0];\n  },\n\n  findLast: function findLast(predicate, context, notSetValue) {\n    return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n  },\n\n  findLastEntry: function findLastEntry(predicate, context, notSetValue) {\n    return this.toKeyedSeq()\n      .reverse()\n      .findEntry(predicate, context, notSetValue);\n  },\n\n  findLastKey: function findLastKey(predicate, context) {\n    return this.toKeyedSeq().reverse().findKey(predicate, context);\n  },\n\n  first: function first(notSetValue) {\n    return this.find(returnTrue, null, notSetValue);\n  },\n\n  flatMap: function flatMap(mapper, context) {\n    return reify(this, flatMapFactory(this, mapper, context));\n  },\n\n  flatten: function flatten(depth) {\n    return reify(this, flattenFactory(this, depth, true));\n  },\n\n  fromEntrySeq: function fromEntrySeq() {\n    return new FromEntriesSequence(this);\n  },\n\n  get: function get(searchKey, notSetValue) {\n    return this.find(function (_, key) { return is(key, searchKey); }, undefined, notSetValue);\n  },\n\n  getIn: getIn,\n\n  groupBy: function groupBy(grouper, context) {\n    return groupByFactory(this, grouper, context);\n  },\n\n  has: function has(searchKey) {\n    return this.get(searchKey, NOT_SET) !== NOT_SET;\n  },\n\n  hasIn: hasIn,\n\n  isSubset: function isSubset(iter) {\n    iter = typeof iter.includes === 'function' ? iter : Collection(iter);\n    return this.every(function (value) { return iter.includes(value); });\n  },\n\n  isSuperset: function isSuperset(iter) {\n    iter = typeof iter.isSubset === 'function' ? iter : Collection(iter);\n    return iter.isSubset(this);\n  },\n\n  keyOf: function keyOf(searchValue) {\n    return this.findKey(function (value) { return is(value, searchValue); });\n  },\n\n  keySeq: function keySeq() {\n    return this.toSeq().map(keyMapper).toIndexedSeq();\n  },\n\n  last: function last(notSetValue) {\n    return this.toSeq().reverse().first(notSetValue);\n  },\n\n  lastKeyOf: function lastKeyOf(searchValue) {\n    return this.toKeyedSeq().reverse().keyOf(searchValue);\n  },\n\n  max: function max(comparator) {\n    return maxFactory(this, comparator);\n  },\n\n  maxBy: function maxBy(mapper, comparator) {\n    return maxFactory(this, comparator, mapper);\n  },\n\n  min: function min(comparator) {\n    return maxFactory(\n      this,\n      comparator ? neg(comparator) : defaultNegComparator\n    );\n  },\n\n  minBy: function minBy(mapper, comparator) {\n    return maxFactory(\n      this,\n      comparator ? neg(comparator) : defaultNegComparator,\n      mapper\n    );\n  },\n\n  rest: function rest() {\n    return this.slice(1);\n  },\n\n  skip: function skip(amount) {\n    return amount === 0 ? this : this.slice(Math.max(0, amount));\n  },\n\n  skipLast: function skipLast(amount) {\n    return amount === 0 ? this : this.slice(0, -Math.max(0, amount));\n  },\n\n  skipWhile: function skipWhile(predicate, context) {\n    return reify(this, skipWhileFactory(this, predicate, context, true));\n  },\n\n  skipUntil: function skipUntil(predicate, context) {\n    return this.skipWhile(not(predicate), context);\n  },\n\n  sortBy: function sortBy(mapper, comparator) {\n    return reify(this, sortFactory(this, comparator, mapper));\n  },\n\n  take: function take(amount) {\n    return this.slice(0, Math.max(0, amount));\n  },\n\n  takeLast: function takeLast(amount) {\n    return this.slice(-Math.max(0, amount));\n  },\n\n  takeWhile: function takeWhile(predicate, context) {\n    return reify(this, takeWhileFactory(this, predicate, context));\n  },\n\n  takeUntil: function takeUntil(predicate, context) {\n    return this.takeWhile(not(predicate), context);\n  },\n\n  update: function update(fn) {\n    return fn(this);\n  },\n\n  valueSeq: function valueSeq() {\n    return this.toIndexedSeq();\n  },\n\n  // ### Hashable Object\n\n  hashCode: function hashCode() {\n    return this.__hash || (this.__hash = hashCollection(this));\n  },\n\n  // ### Internal\n\n  // abstract __iterate(fn, reverse)\n\n  // abstract __iterator(type, reverse)\n});\n\nvar CollectionPrototype = Collection.prototype;\nCollectionPrototype[IS_COLLECTION_SYMBOL] = true;\nCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.values;\nCollectionPrototype.toJSON = CollectionPrototype.toArray;\nCollectionPrototype.__toStringMapper = quoteString;\nCollectionPrototype.inspect = CollectionPrototype.toSource = function () {\n  return this.toString();\n};\nCollectionPrototype.chain = CollectionPrototype.flatMap;\nCollectionPrototype.contains = CollectionPrototype.includes;\n\nmixin(KeyedCollection, {\n  // ### More sequential methods\n\n  flip: function flip() {\n    return reify(this, flipFactory(this));\n  },\n\n  mapEntries: function mapEntries(mapper, context) {\n    var this$1$1 = this;\n\n    var iterations = 0;\n    return reify(\n      this,\n      this.toSeq()\n        .map(function (v, k) { return mapper.call(context, [k, v], iterations++, this$1$1); })\n        .fromEntrySeq()\n    );\n  },\n\n  mapKeys: function mapKeys(mapper, context) {\n    var this$1$1 = this;\n\n    return reify(\n      this,\n      this.toSeq()\n        .flip()\n        .map(function (k, v) { return mapper.call(context, k, v, this$1$1); })\n        .flip()\n    );\n  },\n});\n\nvar KeyedCollectionPrototype = KeyedCollection.prototype;\nKeyedCollectionPrototype[IS_KEYED_SYMBOL] = true;\nKeyedCollectionPrototype[ITERATOR_SYMBOL] = CollectionPrototype.entries;\nKeyedCollectionPrototype.toJSON = toObject;\nKeyedCollectionPrototype.__toStringMapper = function (v, k) { return quoteString(k) + ': ' + quoteString(v); };\n\nmixin(IndexedCollection, {\n  // ### Conversion to other types\n\n  toKeyedSeq: function toKeyedSeq() {\n    return new ToKeyedSequence(this, false);\n  },\n\n  // ### ES6 Collection methods (ES6 Array and Map)\n\n  filter: function filter(predicate, context) {\n    return reify(this, filterFactory(this, predicate, context, false));\n  },\n\n  findIndex: function findIndex(predicate, context) {\n    var entry = this.findEntry(predicate, context);\n    return entry ? entry[0] : -1;\n  },\n\n  indexOf: function indexOf(searchValue) {\n    var key = this.keyOf(searchValue);\n    return key === undefined ? -1 : key;\n  },\n\n  lastIndexOf: function lastIndexOf(searchValue) {\n    var key = this.lastKeyOf(searchValue);\n    return key === undefined ? -1 : key;\n  },\n\n  reverse: function reverse() {\n    return reify(this, reverseFactory(this, false));\n  },\n\n  slice: function slice(begin, end) {\n    return reify(this, sliceFactory(this, begin, end, false));\n  },\n\n  splice: function splice(index, removeNum /*, ...values*/) {\n    var numArgs = arguments.length;\n    removeNum = Math.max(removeNum || 0, 0);\n    if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n      return this;\n    }\n    // If index is negative, it should resolve relative to the size of the\n    // collection. However size may be expensive to compute if not cached, so\n    // only call count() if the number is in fact negative.\n    index = resolveBegin(index, index < 0 ? this.count() : this.size);\n    var spliced = this.slice(0, index);\n    return reify(\n      this,\n      numArgs === 1\n        ? spliced\n        : spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n    );\n  },\n\n  // ### More collection methods\n\n  findLastIndex: function findLastIndex(predicate, context) {\n    var entry = this.findLastEntry(predicate, context);\n    return entry ? entry[0] : -1;\n  },\n\n  first: function first(notSetValue) {\n    return this.get(0, notSetValue);\n  },\n\n  flatten: function flatten(depth) {\n    return reify(this, flattenFactory(this, depth, false));\n  },\n\n  get: function get(index, notSetValue) {\n    index = wrapIndex(this, index);\n    return index < 0 ||\n      this.size === Infinity ||\n      (this.size !== undefined && index > this.size)\n      ? notSetValue\n      : this.find(function (_, key) { return key === index; }, undefined, notSetValue);\n  },\n\n  has: function has(index) {\n    index = wrapIndex(this, index);\n    return (\n      index >= 0 &&\n      (this.size !== undefined\n        ? this.size === Infinity || index < this.size\n        : this.indexOf(index) !== -1)\n    );\n  },\n\n  interpose: function interpose(separator) {\n    return reify(this, interposeFactory(this, separator));\n  },\n\n  interleave: function interleave(/*...collections*/) {\n    var collections = [this].concat(arrCopy(arguments));\n    var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, collections);\n    var interleaved = zipped.flatten(true);\n    if (zipped.size) {\n      interleaved.size = zipped.size * collections.length;\n    }\n    return reify(this, interleaved);\n  },\n\n  keySeq: function keySeq() {\n    return Range(0, this.size);\n  },\n\n  last: function last(notSetValue) {\n    return this.get(-1, notSetValue);\n  },\n\n  skipWhile: function skipWhile(predicate, context) {\n    return reify(this, skipWhileFactory(this, predicate, context, false));\n  },\n\n  zip: function zip(/*, ...collections */) {\n    var collections = [this].concat(arrCopy(arguments));\n    return reify(this, zipWithFactory(this, defaultZipper, collections));\n  },\n\n  zipAll: function zipAll(/*, ...collections */) {\n    var collections = [this].concat(arrCopy(arguments));\n    return reify(this, zipWithFactory(this, defaultZipper, collections, true));\n  },\n\n  zipWith: function zipWith(zipper /*, ...collections */) {\n    var collections = arrCopy(arguments);\n    collections[0] = this;\n    return reify(this, zipWithFactory(this, zipper, collections));\n  },\n});\n\nvar IndexedCollectionPrototype = IndexedCollection.prototype;\nIndexedCollectionPrototype[IS_INDEXED_SYMBOL] = true;\nIndexedCollectionPrototype[IS_ORDERED_SYMBOL] = true;\n\nmixin(SetCollection, {\n  // ### ES6 Collection methods (ES6 Array and Map)\n\n  get: function get(value, notSetValue) {\n    return this.has(value) ? value : notSetValue;\n  },\n\n  includes: function includes(value) {\n    return this.has(value);\n  },\n\n  // ### More sequential methods\n\n  keySeq: function keySeq() {\n    return this.valueSeq();\n  },\n});\n\nvar SetCollectionPrototype = SetCollection.prototype;\nSetCollectionPrototype.has = CollectionPrototype.includes;\nSetCollectionPrototype.contains = SetCollectionPrototype.includes;\nSetCollectionPrototype.keys = SetCollectionPrototype.values;\n\n// Mixin subclasses\n\nmixin(KeyedSeq, KeyedCollectionPrototype);\nmixin(IndexedSeq, IndexedCollectionPrototype);\nmixin(SetSeq, SetCollectionPrototype);\n\n// #pragma Helper functions\n\nfunction reduce(collection, reducer, reduction, context, useFirst, reverse) {\n  assertNotInfinite(collection.size);\n  collection.__iterate(function (v, k, c) {\n    if (useFirst) {\n      useFirst = false;\n      reduction = v;\n    } else {\n      reduction = reducer.call(context, reduction, v, k, c);\n    }\n  }, reverse);\n  return reduction;\n}\n\nfunction keyMapper(v, k) {\n  return k;\n}\n\nfunction entryMapper(v, k) {\n  return [k, v];\n}\n\nfunction not(predicate) {\n  return function () {\n    return !predicate.apply(this, arguments);\n  };\n}\n\nfunction neg(predicate) {\n  return function () {\n    return -predicate.apply(this, arguments);\n  };\n}\n\nfunction defaultZipper() {\n  return arrCopy(arguments);\n}\n\nfunction defaultNegComparator(a, b) {\n  return a < b ? 1 : a > b ? -1 : 0;\n}\n\nfunction hashCollection(collection) {\n  if (collection.size === Infinity) {\n    return 0;\n  }\n  var ordered = isOrdered(collection);\n  var keyed = isKeyed(collection);\n  var h = ordered ? 1 : 0;\n  var size = collection.__iterate(\n    keyed\n      ? ordered\n        ? function (v, k) {\n            h = (31 * h + hashMerge(hash(v), hash(k))) | 0;\n          }\n        : function (v, k) {\n            h = (h + hashMerge(hash(v), hash(k))) | 0;\n          }\n      : ordered\n      ? function (v) {\n          h = (31 * h + hash(v)) | 0;\n        }\n      : function (v) {\n          h = (h + hash(v)) | 0;\n        }\n  );\n  return murmurHashOfSize(size, h);\n}\n\nfunction murmurHashOfSize(size, h) {\n  h = imul(h, 0xcc9e2d51);\n  h = imul((h << 15) | (h >>> -15), 0x1b873593);\n  h = imul((h << 13) | (h >>> -13), 5);\n  h = ((h + 0xe6546b64) | 0) ^ size;\n  h = imul(h ^ (h >>> 16), 0x85ebca6b);\n  h = imul(h ^ (h >>> 13), 0xc2b2ae35);\n  h = smi(h ^ (h >>> 16));\n  return h;\n}\n\nfunction hashMerge(a, b) {\n  return (a ^ (b + 0x9e3779b9 + (a << 6) + (a >> 2))) | 0; // int\n}\n\nvar OrderedSet = /*@__PURE__*/(function (Set) {\n  function OrderedSet(value) {\n    // eslint-disable-next-line no-constructor-return\n    return value === undefined || value === null\n      ? emptyOrderedSet()\n      : isOrderedSet(value)\n      ? value\n      : emptyOrderedSet().withMutations(function (set) {\n          var iter = SetCollection(value);\n          assertNotInfinite(iter.size);\n          iter.forEach(function (v) { return set.add(v); });\n        });\n  }\n\n  if ( Set ) OrderedSet.__proto__ = Set;\n  OrderedSet.prototype = Object.create( Set && Set.prototype );\n  OrderedSet.prototype.constructor = OrderedSet;\n\n  OrderedSet.of = function of (/*...values*/) {\n    return this(arguments);\n  };\n\n  OrderedSet.fromKeys = function fromKeys (value) {\n    return this(KeyedCollection(value).keySeq());\n  };\n\n  OrderedSet.prototype.toString = function toString () {\n    return this.__toString('OrderedSet {', '}');\n  };\n\n  return OrderedSet;\n}(Set));\n\nOrderedSet.isOrderedSet = isOrderedSet;\n\nvar OrderedSetPrototype = OrderedSet.prototype;\nOrderedSetPrototype[IS_ORDERED_SYMBOL] = true;\nOrderedSetPrototype.zip = IndexedCollectionPrototype.zip;\nOrderedSetPrototype.zipWith = IndexedCollectionPrototype.zipWith;\nOrderedSetPrototype.zipAll = IndexedCollectionPrototype.zipAll;\n\nOrderedSetPrototype.__empty = emptyOrderedSet;\nOrderedSetPrototype.__make = makeOrderedSet;\n\nfunction makeOrderedSet(map, ownerID) {\n  var set = Object.create(OrderedSetPrototype);\n  set.size = map ? map.size : 0;\n  set._map = map;\n  set.__ownerID = ownerID;\n  return set;\n}\n\nvar EMPTY_ORDERED_SET;\nfunction emptyOrderedSet() {\n  return (\n    EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()))\n  );\n}\n\nvar PairSorting = {\n  LeftThenRight: -1,\n  RightThenLeft: +1,\n};\n\nfunction throwOnInvalidDefaultValues(defaultValues) {\n  if (isRecord(defaultValues)) {\n    throw new Error(\n      'Can not call `Record` with an immutable Record as default values. Use a plain javascript object instead.'\n    );\n  }\n\n  if (isImmutable(defaultValues)) {\n    throw new Error(\n      'Can not call `Record` with an immutable Collection as default values. Use a plain javascript object instead.'\n    );\n  }\n\n  if (defaultValues === null || typeof defaultValues !== 'object') {\n    throw new Error(\n      'Can not call `Record` with a non-object as default values. Use a plain javascript object instead.'\n    );\n  }\n}\n\nvar Record = function Record(defaultValues, name) {\n  var hasInitialized;\n\n  throwOnInvalidDefaultValues(defaultValues);\n\n  var RecordType = function Record(values) {\n    var this$1$1 = this;\n\n    if (values instanceof RecordType) {\n      return values;\n    }\n    if (!(this instanceof RecordType)) {\n      return new RecordType(values);\n    }\n    if (!hasInitialized) {\n      hasInitialized = true;\n      var keys = Object.keys(defaultValues);\n      var indices = (RecordTypePrototype._indices = {});\n      // Deprecated: left to attempt not to break any external code which\n      // relies on a ._name property existing on record instances.\n      // Use Record.getDescriptiveName() instead\n      RecordTypePrototype._name = name;\n      RecordTypePrototype._keys = keys;\n      RecordTypePrototype._defaultValues = defaultValues;\n      for (var i = 0; i < keys.length; i++) {\n        var propName = keys[i];\n        indices[propName] = i;\n        if (RecordTypePrototype[propName]) {\n          /* eslint-disable no-console */\n          typeof console === 'object' &&\n            console.warn &&\n            console.warn(\n              'Cannot define ' +\n                recordName(this) +\n                ' with property \"' +\n                propName +\n                '\" since that property name is part of the Record API.'\n            );\n          /* eslint-enable no-console */\n        } else {\n          setProp(RecordTypePrototype, propName);\n        }\n      }\n    }\n    this.__ownerID = undefined;\n    this._values = List().withMutations(function (l) {\n      l.setSize(this$1$1._keys.length);\n      KeyedCollection(values).forEach(function (v, k) {\n        l.set(this$1$1._indices[k], v === this$1$1._defaultValues[k] ? undefined : v);\n      });\n    });\n    return this;\n  };\n\n  var RecordTypePrototype = (RecordType.prototype =\n    Object.create(RecordPrototype));\n  RecordTypePrototype.constructor = RecordType;\n\n  if (name) {\n    RecordType.displayName = name;\n  }\n\n  // eslint-disable-next-line no-constructor-return\n  return RecordType;\n};\n\nRecord.prototype.toString = function toString () {\n  var str = recordName(this) + ' { ';\n  var keys = this._keys;\n  var k;\n  for (var i = 0, l = keys.length; i !== l; i++) {\n    k = keys[i];\n    str += (i ? ', ' : '') + k + ': ' + quoteString(this.get(k));\n  }\n  return str + ' }';\n};\n\nRecord.prototype.equals = function equals (other) {\n  return (\n    this === other ||\n    (isRecord(other) && recordSeq(this).equals(recordSeq(other)))\n  );\n};\n\nRecord.prototype.hashCode = function hashCode () {\n  return recordSeq(this).hashCode();\n};\n\n// @pragma Access\n\nRecord.prototype.has = function has (k) {\n  return this._indices.hasOwnProperty(k);\n};\n\nRecord.prototype.get = function get (k, notSetValue) {\n  if (!this.has(k)) {\n    return notSetValue;\n  }\n  var index = this._indices[k];\n  var value = this._values.get(index);\n  return value === undefined ? this._defaultValues[k] : value;\n};\n\n// @pragma Modification\n\nRecord.prototype.set = function set (k, v) {\n  if (this.has(k)) {\n    var newValues = this._values.set(\n      this._indices[k],\n      v === this._defaultValues[k] ? undefined : v\n    );\n    if (newValues !== this._values && !this.__ownerID) {\n      return makeRecord(this, newValues);\n    }\n  }\n  return this;\n};\n\nRecord.prototype.remove = function remove (k) {\n  return this.set(k);\n};\n\nRecord.prototype.clear = function clear () {\n  var newValues = this._values.clear().setSize(this._keys.length);\n\n  return this.__ownerID ? this : makeRecord(this, newValues);\n};\n\nRecord.prototype.wasAltered = function wasAltered () {\n  return this._values.wasAltered();\n};\n\nRecord.prototype.toSeq = function toSeq () {\n  return recordSeq(this);\n};\n\nRecord.prototype.toJS = function toJS$1 () {\n  return toJS(this);\n};\n\nRecord.prototype.entries = function entries () {\n  return this.__iterator(ITERATE_ENTRIES);\n};\n\nRecord.prototype.__iterator = function __iterator (type, reverse) {\n  return recordSeq(this).__iterator(type, reverse);\n};\n\nRecord.prototype.__iterate = function __iterate (fn, reverse) {\n  return recordSeq(this).__iterate(fn, reverse);\n};\n\nRecord.prototype.__ensureOwner = function __ensureOwner (ownerID) {\n  if (ownerID === this.__ownerID) {\n    return this;\n  }\n  var newValues = this._values.__ensureOwner(ownerID);\n  if (!ownerID) {\n    this.__ownerID = ownerID;\n    this._values = newValues;\n    return this;\n  }\n  return makeRecord(this, newValues, ownerID);\n};\n\nRecord.isRecord = isRecord;\nRecord.getDescriptiveName = recordName;\nvar RecordPrototype = Record.prototype;\nRecordPrototype[IS_RECORD_SYMBOL] = true;\nRecordPrototype[DELETE] = RecordPrototype.remove;\nRecordPrototype.deleteIn = RecordPrototype.removeIn = deleteIn;\nRecordPrototype.getIn = getIn;\nRecordPrototype.hasIn = CollectionPrototype.hasIn;\nRecordPrototype.merge = merge$1;\nRecordPrototype.mergeWith = mergeWith$1;\nRecordPrototype.mergeIn = mergeIn;\nRecordPrototype.mergeDeep = mergeDeep;\nRecordPrototype.mergeDeepWith = mergeDeepWith;\nRecordPrototype.mergeDeepIn = mergeDeepIn;\nRecordPrototype.setIn = setIn;\nRecordPrototype.update = update;\nRecordPrototype.updateIn = updateIn;\nRecordPrototype.withMutations = withMutations;\nRecordPrototype.asMutable = asMutable;\nRecordPrototype.asImmutable = asImmutable;\nRecordPrototype[ITERATOR_SYMBOL] = RecordPrototype.entries;\nRecordPrototype.toJSON = RecordPrototype.toObject =\n  CollectionPrototype.toObject;\nRecordPrototype.inspect = RecordPrototype.toSource = function () {\n  return this.toString();\n};\n\nfunction makeRecord(likeRecord, values, ownerID) {\n  var record = Object.create(Object.getPrototypeOf(likeRecord));\n  record._values = values;\n  record.__ownerID = ownerID;\n  return record;\n}\n\nfunction recordName(record) {\n  return record.constructor.displayName || record.constructor.name || 'Record';\n}\n\nfunction recordSeq(record) {\n  return keyedSeqFromValue(record._keys.map(function (k) { return [k, record.get(k)]; }));\n}\n\nfunction setProp(prototype, name) {\n  try {\n    Object.defineProperty(prototype, name, {\n      get: function () {\n        return this.get(name);\n      },\n      set: function (value) {\n        invariant(this.__ownerID, 'Cannot set on an immutable record.');\n        this.set(name, value);\n      },\n    });\n  } catch (error) {\n    // Object.defineProperty failed. Probably IE8.\n  }\n}\n\n/**\n * Returns a lazy Seq of `value` repeated `times` times. When `times` is\n * undefined, returns an infinite sequence of `value`.\n */\nvar Repeat = /*@__PURE__*/(function (IndexedSeq) {\n  function Repeat(value, times) {\n    if (!(this instanceof Repeat)) {\n      // eslint-disable-next-line no-constructor-return\n      return new Repeat(value, times);\n    }\n    this._value = value;\n    this.size = times === undefined ? Infinity : Math.max(0, times);\n    if (this.size === 0) {\n      if (EMPTY_REPEAT) {\n        // eslint-disable-next-line no-constructor-return\n        return EMPTY_REPEAT;\n      }\n      EMPTY_REPEAT = this;\n    }\n  }\n\n  if ( IndexedSeq ) Repeat.__proto__ = IndexedSeq;\n  Repeat.prototype = Object.create( IndexedSeq && IndexedSeq.prototype );\n  Repeat.prototype.constructor = Repeat;\n\n  Repeat.prototype.toString = function toString () {\n    if (this.size === 0) {\n      return 'Repeat []';\n    }\n    return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n  };\n\n  Repeat.prototype.get = function get (index, notSetValue) {\n    return this.has(index) ? this._value : notSetValue;\n  };\n\n  Repeat.prototype.includes = function includes (searchValue) {\n    return is(this._value, searchValue);\n  };\n\n  Repeat.prototype.slice = function slice (begin, end) {\n    var size = this.size;\n    return wholeSlice(begin, end, size)\n      ? this\n      : new Repeat(\n          this._value,\n          resolveEnd(end, size) - resolveBegin(begin, size)\n        );\n  };\n\n  Repeat.prototype.reverse = function reverse () {\n    return this;\n  };\n\n  Repeat.prototype.indexOf = function indexOf (searchValue) {\n    if (is(this._value, searchValue)) {\n      return 0;\n    }\n    return -1;\n  };\n\n  Repeat.prototype.lastIndexOf = function lastIndexOf (searchValue) {\n    if (is(this._value, searchValue)) {\n      return this.size;\n    }\n    return -1;\n  };\n\n  Repeat.prototype.__iterate = function __iterate (fn, reverse) {\n    var size = this.size;\n    var i = 0;\n    while (i !== size) {\n      if (fn(this._value, reverse ? size - ++i : i++, this) === false) {\n        break;\n      }\n    }\n    return i;\n  };\n\n  Repeat.prototype.__iterator = function __iterator (type, reverse) {\n    var this$1$1 = this;\n\n    var size = this.size;\n    var i = 0;\n    return new Iterator(function () { return i === size\n        ? iteratorDone()\n        : iteratorValue(type, reverse ? size - ++i : i++, this$1$1._value); }\n    );\n  };\n\n  Repeat.prototype.equals = function equals (other) {\n    return other instanceof Repeat\n      ? is(this._value, other._value)\n      : deepEqual(this, other);\n  };\n\n  return Repeat;\n}(IndexedSeq));\n\nvar EMPTY_REPEAT;\n\nfunction fromJS(value, converter) {\n  return fromJSWith(\n    [],\n    converter || defaultConverter,\n    value,\n    '',\n    converter && converter.length > 2 ? [] : undefined,\n    { '': value }\n  );\n}\n\nfunction fromJSWith(stack, converter, value, key, keyPath, parentValue) {\n  if (\n    typeof value !== 'string' &&\n    !isImmutable(value) &&\n    (isArrayLike(value) || hasIterator(value) || isPlainObject(value))\n  ) {\n    if (~stack.indexOf(value)) {\n      throw new TypeError('Cannot convert circular structure to Immutable');\n    }\n    stack.push(value);\n    keyPath && key !== '' && keyPath.push(key);\n    var converted = converter.call(\n      parentValue,\n      key,\n      Seq(value).map(function (v, k) { return fromJSWith(stack, converter, v, k, keyPath, value); }\n      ),\n      keyPath && keyPath.slice()\n    );\n    stack.pop();\n    keyPath && keyPath.pop();\n    return converted;\n  }\n  return value;\n}\n\nfunction defaultConverter(k, v) {\n  // Effectively the opposite of \"Collection.toSeq()\"\n  return isIndexed(v) ? v.toList() : isKeyed(v) ? v.toMap() : v.toSet();\n}\n\nvar version = \"4.3.7\";\n\nvar Immutable = {\n  version: version,\n\n  Collection: Collection,\n  // Note: Iterable is deprecated\n  Iterable: Collection,\n\n  Seq: Seq,\n  Map: Map,\n  OrderedMap: OrderedMap,\n  List: List,\n  Stack: Stack,\n  Set: Set,\n  OrderedSet: OrderedSet,\n  PairSorting: PairSorting,\n\n  Record: Record,\n  Range: Range,\n  Repeat: Repeat,\n\n  is: is,\n  fromJS: fromJS,\n  hash: hash,\n\n  isImmutable: isImmutable,\n  isCollection: isCollection,\n  isKeyed: isKeyed,\n  isIndexed: isIndexed,\n  isAssociative: isAssociative,\n  isOrdered: isOrdered,\n  isValueObject: isValueObject,\n  isPlainObject: isPlainObject,\n  isSeq: isSeq,\n  isList: isList,\n  isMap: isMap,\n  isOrderedMap: isOrderedMap,\n  isStack: isStack,\n  isSet: isSet,\n  isOrderedSet: isOrderedSet,\n  isRecord: isRecord,\n\n  get: get,\n  getIn: getIn$1,\n  has: has,\n  hasIn: hasIn$1,\n  merge: merge,\n  mergeDeep: mergeDeep$1,\n  mergeWith: mergeWith,\n  mergeDeepWith: mergeDeepWith$1,\n  remove: remove,\n  removeIn: removeIn,\n  set: set,\n  setIn: setIn$1,\n  update: update$1,\n  updateIn: updateIn$1,\n};\n\n// Note: Iterable is deprecated\nvar Iterable = Collection;\n\nexport default Immutable;\nexport { Collection, Iterable, List, Map, OrderedMap, OrderedSet, PairSorting, Range, Record, Repeat, Seq, Set, Stack, fromJS, get, getIn$1 as getIn, has, hasIn$1 as hasIn, hash, is, isAssociative, isCollection, isImmutable, isIndexed, isKeyed, isList, isMap, isOrdered, isOrderedMap, isOrderedSet, isPlainObject, isRecord, isSeq, isSet, isStack, isValueObject, merge, mergeDeep$1 as mergeDeep, mergeDeepWith$1 as mergeDeepWith, mergeWith, remove, removeIn, set, setIn$1 as setIn, update$1 as update, updateIn$1 as updateIn, version };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionContextKey = exports.ActionContext = void 0;\nconst immutable_1 = require(\"immutable\");\n/**\n * Implementation of {@link IActionContext} using Immutable.js.\n */\nclass ActionContext {\n    constructor(data = {}) {\n        this.map = (0, immutable_1.Map)(data);\n    }\n    /**\n     * Will only set the value if the key is not already set.\n     */\n    setDefault(key, value) {\n        return this.has(key) ? this : this.set(key, value);\n    }\n    set(key, value) {\n        return this.setRaw(key.name, value);\n    }\n    setRaw(key, value) {\n        return new ActionContext(this.map.set(key, value));\n    }\n    delete(key) {\n        return new ActionContext(this.map.delete(key.name));\n    }\n    get(key) {\n        return this.getRaw(key.name);\n    }\n    getRaw(key) {\n        return this.map.get(key);\n    }\n    getSafe(key) {\n        if (!this.has(key)) {\n            throw new Error(`Context entry ${key.name} is required but not available`);\n        }\n        return this.get(key);\n    }\n    has(key) {\n        return this.hasRaw(key.name);\n    }\n    hasRaw(key) {\n        return this.map.has(key);\n    }\n    merge(...contexts) {\n        // eslint-disable-next-line ts/no-this-alias\n        let context = this;\n        for (const source of contexts) {\n            for (const key of source.keys()) {\n                context = context.set(key, source.get(key));\n            }\n        }\n        return context;\n    }\n    keys() {\n        return [...this.map.keys()]\n            .map(keyName => new ActionContextKey(keyName));\n    }\n    toJS() {\n        return this.map.toJS();\n    }\n    toString() {\n        return `ActionContext(${JSON.stringify(this.map.toJS())})`;\n    }\n    [Symbol.for('nodejs.util.inspect.custom')]() {\n        return `ActionContext(${JSON.stringify(this.map.toJS(), null, '  ')})`;\n    }\n    /**\n     * Convert the given object to an action context object if it is not an action context object yet.\n     * If it already is an action context object, return the object as-is.\n     * @param maybeActionContext An action context or record.\n     * @return {ActionContext} An action context object.\n     */\n    static ensureActionContext(maybeActionContext) {\n        return maybeActionContext instanceof ActionContext ?\n            maybeActionContext :\n            new ActionContext((0, immutable_1.Map)(maybeActionContext ?? {}));\n    }\n}\nexports.ActionContext = ActionContext;\n/**\n * Simple implementation of {@link IActionContextKey}.\n */\nclass ActionContextKey {\n    constructor(name) {\n        this.name = name;\n    }\n}\nexports.ActionContextKey = ActionContextKey;\n//# sourceMappingURL=ActionContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bus = void 0;\n/**\n * A publish-subscribe bus for sending actions to actors\n * to test whether or not they can run an action.\n *\n * This bus does not run the action itself,\n * for that a {@link Mediator} can be used.\n *\n * @see Actor\n * @see Mediator\n *\n * @template A The actor type that can subscribe to the sub.\n * @template I The input type of an actor.\n * @template T The test type of an actor.\n * @template O The output type of an actor.\n * @template TS The test side data type.\n */\nclass Bus {\n    /**\n     * All enumerable properties from the `args` object are inherited to this bus.\n     *\n     * @param {IBusArgs} args Arguments object\n     * @param {string} args.name The name for the bus\n     * @throws When required arguments are missing.\n     */\n    constructor(args) {\n        this.actors = [];\n        this.observers = [];\n        // Mapping from dependency (after) to dependents (before)\n        this.dependencyLinks = new Map();\n        Object.assign(this, args);\n        this.failMessage = `All actors over bus ${this.name} failed to handle an action`;\n    }\n    /**\n     * Subscribe the given actor to the bus.\n     * After this, the given actor can be unsubscribed from the bus by calling {@link Bus#unsubscribe}.\n     *\n     * An actor that is subscribed multiple times will exist that amount of times in the bus.\n     *\n     * @param {A} actor The actor to subscribe.\n     */\n    subscribe(actor) {\n        this.actors.push(actor);\n        this.reorderForDependencies();\n    }\n    /**\n     * Subscribe the given observer to the bus.\n     * After this, the given observer can be unsubscribed from the bus by calling {@link Bus#unsubscribeObserver}.\n     *\n     * An observer that is subscribed multiple times will exist that amount of times in the bus.\n     *\n     * @param {ActionObserver<I, O>} observer The observer to subscribe.\n     */\n    subscribeObserver(observer) {\n        this.observers.push(observer);\n    }\n    /**\n     * Unsubscribe the given actor from the bus.\n     *\n     * An actor that is subscribed multiple times will be unsubscribed only once.\n     *\n     * @param {A} actor The actor to unsubscribe\n     * @return {boolean} If the given actor was successfully unsubscribed,\n     *         otherwise it was not subscribed before.\n     */\n    unsubscribe(actor) {\n        const index = this.actors.indexOf(actor);\n        if (index >= 0) {\n            this.actors.splice(index, 1);\n            return true;\n        }\n        return false;\n    }\n    /**\n     * Unsubscribe the given observer from the bus.\n     *\n     * An observer that is subscribed multiple times will be unsubscribed only once.\n     *\n     * @param {ActionObserver<I, O>} observer The observer to unsubscribe.\n     * @return {boolean} If the given observer was successfully unsubscribed,\n     *         otherwise it was not subscribed before.\n     */\n    unsubscribeObserver(observer) {\n        const index = this.observers.indexOf(observer);\n        if (index >= 0) {\n            this.observers.splice(index, 1);\n            return true;\n        }\n        return false;\n    }\n    /**\n     * Publish an action to all actors in the bus to test if they can run the action.\n     *\n     * @param {I} action An action to publish\n     * @return {IActorReply<A extends Actor<I, T, O>, I extends IAction, T extends IActorTest,\n     *         O extends IActorOutput>[]}\n     *         An array of reply objects. Each object contains a reference to the actor,\n     *         and a promise to its {@link Actor#test} result.\n     */\n    publish(action) {\n        return this.actors.map((actor) => ({ actor, reply: actor.test(action) }));\n    }\n    /**\n     * Invoked when an action was run by an actor.\n     *\n     * @param actor               The action on which the {@link Actor#run} method was invoked.\n     * @param {I}          action The original action input.\n     * @param {Promise<O>} output A promise resolving to the final action output.\n     */\n    onRun(actor, action, output) {\n        for (const observer of this.observers) {\n            observer.onRun(actor, action, output);\n        }\n    }\n    /**\n     * Indicate that the given actor has the given actor dependencies.\n     *\n     * This will ensure that the given actor will be present in the bus *before* the given dependencies.\n     *\n     * @param {A} dependent A dependent actor that will be placed before the given actors.\n     * @param {A[]} dependencies Actor dependencies that will be placed after the given actor.\n     */\n    addDependencies(dependent, dependencies) {\n        for (const dependency of dependencies) {\n            let existingDependencies = this.dependencyLinks.get(dependency);\n            if (!existingDependencies) {\n                existingDependencies = [];\n                this.dependencyLinks.set(dependency, existingDependencies);\n            }\n            existingDependencies.push(dependent);\n        }\n        this.reorderForDependencies();\n    }\n    /**\n     * Reorder the bus based on all present dependencies.\n     */\n    reorderForDependencies() {\n        if (this.dependencyLinks.size > 0) {\n            const actorsAfter = [];\n            // Temporarily remove all actors that have dependencies\n            for (const actorAfter of this.dependencyLinks.keys()) {\n                const dependentPos = this.actors.indexOf(actorAfter);\n                if (dependentPos >= 0) {\n                    this.actors.splice(dependentPos, 1);\n                    actorsAfter.push(actorAfter);\n                }\n            }\n            // Iteratively append actors based on the first dependency link\n            // that has all of its dependencies available in the array\n            while (actorsAfter.length > 0) {\n                // Find the first actor that has all of its dependencies available.\n                let activeActorAfterId = -1;\n                for (let i = 0; i < actorsAfter.length; i++) {\n                    let validLink = true;\n                    for (const dependency of this.dependencyLinks.get(actorsAfter[i])) {\n                        if (!this.actors.includes(dependency) && actorsAfter.includes(dependency)) {\n                            validLink = false;\n                            break;\n                        }\n                    }\n                    if (validLink) {\n                        activeActorAfterId = i;\n                        break;\n                    }\n                }\n                // If none of the pending links are possible, there must be a cyclic dependency\n                if (activeActorAfterId < 0) {\n                    throw new Error(`Cyclic dependency links detected in bus ${this.name}`);\n                }\n                // The dependent may not be available (yet), so we don't add it to the array (yet).\n                const activeActorAfter = actorsAfter.splice(activeActorAfterId, 1)[0];\n                this.actors.push(activeActorAfter);\n            }\n        }\n    }\n}\nexports.Bus = Bus;\n//# sourceMappingURL=Bus.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BusIndexed = void 0;\nconst Bus_1 = require(\"./Bus\");\n/**\n * A bus that indexes identified actors,\n * so that actions with a corresponding identifier can be published more efficiently.\n *\n * Multiple actors with the same identifier can be subscribed.\n *\n * If actors or actions do not have a valid identifier,\n * then this will fallback to the normal bus behaviour.\n *\n * @see Bus\n *\n * @template A The actor type that can subscribe to the sub.\n * @template I The input type of an actor.\n * @template T The test type of an actor.\n * @template O The output type of an actor.\n */\nclass BusIndexed extends Bus_1.Bus {\n    /**\n     * All enumerable properties from the `args` object are inherited to this bus.\n     *\n     * @param {IBusIndexedArgs} args Arguments object\n     * @param {string} args.name The name for the bus\n     * @throws When required arguments are missing.\n     */\n    constructor(args) {\n        super(args);\n        this.actorsIndex = {};\n    }\n    subscribe(actor) {\n        const actorIds = this.getActorIdentifiers(actor) ?? ['_undefined_'];\n        for (const actorId of actorIds) {\n            let actors = this.actorsIndex[actorId];\n            if (!actors) {\n                actors = this.actorsIndex[actorId] = [];\n            }\n            actors.push(actor);\n            super.subscribe(actor);\n        }\n    }\n    unsubscribe(actor) {\n        const actorIds = this.getActorIdentifiers(actor) ?? ['_undefined_'];\n        let unsubscribed = false;\n        for (const actorId of actorIds) {\n            const actors = this.actorsIndex[actorId];\n            if (actors) {\n                const i = actors.indexOf(actor);\n                if (i >= 0) {\n                    actors.splice(i, 1);\n                }\n                if (actors.length === 0) {\n                    delete this.actorsIndex[actorId];\n                }\n            }\n            unsubscribed = unsubscribed || super.unsubscribe(actor);\n        }\n        return unsubscribed;\n    }\n    publish(action) {\n        const actionId = this.getActionIdentifier(action);\n        if (actionId) {\n            const actors = [...this.actorsIndex[actionId] || [], ...this.actorsIndex._undefined_ || []];\n            return actors.map((actor) => ({ actor, reply: actor.test(action) }));\n        }\n        return super.publish(action);\n    }\n    getActorIdentifiers(actor) {\n        const identifierValue = this.actorIdentifierFields\n            .reduce((object, field) => object[field], actor);\n        if (!identifierValue) {\n            return;\n        }\n        return Array.isArray(identifierValue) ? identifierValue : [identifierValue];\n    }\n    getActionIdentifier(action) {\n        return this.actionIdentifierFields.reduce((object, field) => object[field], action);\n    }\n}\nexports.BusIndexed = BusIndexed;\n//# sourceMappingURL=BusIndexed.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CONTEXT_KEY_LOGGER = void 0;\nconst ActionContext_1 = require(\"./ActionContext\");\nexports.CONTEXT_KEY_LOGGER = new ActionContext_1.ActionContextKey('@comunica/core:log');\n//# sourceMappingURL=ContextEntries.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionObserver = void 0;\n/**\n * An ActionObserver can passively listen to {@link Actor#run} inputs and outputs for all actors on a certain bus.\n *\n * ActionObserver should not edit inputs and outputs,\n * they should be considered immutable.\n *\n * @see Actor\n * @see Bus\n *\n * @template I The input type of an actor.\n * @template O The output type of an actor.\n * @template TS The test side data type.\n */\nclass ActionObserver {\n    /**\n     * All enumerable properties from the `args` object are inherited to this observer.\n     *\n     * The observer will NOT automatically subscribe to the given bus when this constructor is called.\n     *\n     * @param {IActionObserverArgs<I extends IAction, O extends IActorOutput>} args Arguments object\n     * @throws When required arguments are missing.\n     */\n    constructor(args) {\n        Object.assign(this, args);\n    }\n}\nexports.ActionObserver = ActionObserver;\n//# sourceMappingURL=ActionObserver.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Actor = void 0;\nconst ContextEntries_1 = require(\"./ContextEntries\");\n/**\n * An actor can act on messages of certain types and provide output of a certain type.\n *\n * The flow of an actor is as follows:\n * 1. Send a message to {@link Actor#test} to test if an actor can run that action.\n * 2. If the actor can reply to the message, let the actor run the action using {@link Actor#run}.\n *\n * An actor is typically subscribed to a bus,\n * using which the applicability to an action can be tested.\n *\n * @see Bus\n *\n * @template I The input type of an actor.\n * @template T The test type of an actor.\n * @template O The output type of an actor.\n * @template TS The test side data type.\n */\nclass Actor {\n    /**\n     * All enumerable properties from the `args` object are inherited to this actor.\n     *\n     * The actor will subscribe to the given bus when this constructor is called.\n     *\n     * @param {IActorArgs<I extends IAction, T extends IActorTest, O extends IActorOutput>} args Arguments object\n     * @param {string} args.name The name for this actor.\n     * @param {Bus<A extends Actor<I, T, O>, I extends IAction, T extends IActorTest, O extends IActorOutput>} args.bus\n     *        The bus this actor subscribes to.\n     * @throws When required arguments are missing.\n     */\n    constructor(args) {\n        this.beforeActors = [];\n        Object.assign(this, args);\n        this.bus.subscribe(this);\n        if (this.beforeActors.length > 0) {\n            this.bus.addDependencies(this, this.beforeActors);\n        }\n        if (args.busFailMessage) {\n            this.bus.failMessage = args.busFailMessage;\n        }\n    }\n    /**\n     * Get the logger from the given context.\n     * @param {ActionContext} context An optional context.\n     * @return {Logger} The logger or undefined.\n     */\n    static getContextLogger(context) {\n        return context.get(ContextEntries_1.CONTEXT_KEY_LOGGER);\n    }\n    /**\n     * Run the given action on this actor\n     * AND invokes the {@link Bus#onRun} method.\n     *\n     * @param {I} action The action to run.\n     * @return {Promise<T>} A promise that resolves to the run result.\n     */\n    runObservable(action, sideData) {\n        const output = this.run(action, sideData);\n        this.bus.onRun(this, action, output);\n        return output;\n    }\n    /* Proxy methods for the (optional) logger that is defined in the context */\n    getDefaultLogData(context, data) {\n        const dataActual = data ? data() : {};\n        dataActual.actor = this.name;\n        return dataActual;\n    }\n    logTrace(context, message, data) {\n        const logger = Actor.getContextLogger(context);\n        if (logger) {\n            logger.trace(message, this.getDefaultLogData(context, data));\n        }\n    }\n    logDebug(context, message, data) {\n        const logger = Actor.getContextLogger(context);\n        if (logger) {\n            logger.debug(message, this.getDefaultLogData(context, data));\n        }\n    }\n    logInfo(context, message, data) {\n        const logger = Actor.getContextLogger(context);\n        if (logger) {\n            logger.info(message, this.getDefaultLogData(context, data));\n        }\n    }\n    logWarn(context, message, data) {\n        const logger = Actor.getContextLogger(context);\n        if (logger) {\n            logger.warn(message, this.getDefaultLogData(context, data));\n        }\n    }\n    logError(context, message, data) {\n        const logger = Actor.getContextLogger(context);\n        if (logger) {\n            logger.error(message, this.getDefaultLogData(context, data));\n        }\n    }\n    logFatal(context, message, data) {\n        const logger = Actor.getContextLogger(context);\n        if (logger) {\n            logger.fatal(message, this.getDefaultLogData(context, data));\n        }\n    }\n}\nexports.Actor = Actor;\n//# sourceMappingURL=Actor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Mediator = void 0;\n/**\n * A mediator can mediate an action over a bus of actors.\n *\n * It does the following:\n * 1. Accepts an action in {@link Mediator#mediate}.\n * 2. Sends the action to the bus to test its applicability on all actors.\n * 3. It _mediates_ over these test results.\n * 4. It selects the _best_ actor.\n * 5. The action is run by the _best_ actor, and the result if returned.\n *\n * The _mediates_ and _best_ parts are filled in by subclasses of this abstract Mediator class.\n *\n * @template A The type of actor to mediator over.\n * @template I The input type of an actor.\n * @template T The test type of an actor.\n * @template O The output type of an actor.\n */\nclass Mediator {\n    /**\n     * All enumerable properties from the `args` object are inherited to this mediator.\n     *\n     * @param {IMediatorArgs<A extends Actor<I, T, O>, I extends IAction, T extends IActorTest,\n     * O extends IActorOutput>} args Arguments object\n     * @param {string} args.name The name for this mediator.\n     * @param {Bus<A extends Actor<I, T, O>, I extends IAction, T extends IActorTest, O extends IActorOutput>} args.bus\n     *        The bus this mediator will mediate over.\n     * @throws When required arguments are missing.\n     */\n    constructor(args) {\n        Object.assign(this, args);\n    }\n    /**\n     * Publish the given action in the bus.\n     *\n     * This will send the test action on all actors in the bus.\n     * All actor replies will be returned.\n     *\n     * @param {I} action The action to mediate for.\n     * @return {IActorReply<A extends Actor<I, T, O>, I extends IAction, T extends IActorTest, O extends IActorOutput>[]}\n     * The list of actor replies.\n     */\n    publish(action) {\n        // Test all actors in the bus\n        const actors = this.bus.publish(action);\n        if (actors.length === 0) {\n            throw new Error(`No actors are able to reply to a message in the bus ${this.bus.name}`);\n        }\n        return actors;\n    }\n    /**\n     * Mediate for the given action to get an actor.\n     *\n     * This will send the test action on all actors in the bus.\n     * The actor that tests _best_ will be returned.\n     *\n     * @param {I} action The action to mediate for.\n     * @return {Promise<O extends IActorOutput>} A promise that resolves to the _best_ actor.\n     */\n    async mediateActor(action) {\n        // Mediate to one actor and run that actor.\n        return await this.mediateWith(action, this.publish(action));\n    }\n    /**\n     * Mediate for the given action.\n     *\n     * This will send the test action on all actors in the bus.\n     * The action will be run on the actor that tests _best_,\n     * of which the result will be returned.\n     *\n     * @param {I} action The action to mediate for.\n     * @return {Promise<O extends IActorOutput>} A promise that resolves to the mediation result.\n     */\n    async mediateTestable(action) {\n        // Mediate to one actor and run the action on it\n        const actorResult = await this.mediateActor(action);\n        return actorResult.mapAsync((actor, sideData) => actor.runObservable(action, sideData));\n    }\n    /**\n     * Mediate for the given action.\n     *\n     * This will send the test action on all actors in the bus.\n     * The action will be run on the actor that tests _best_,\n     * of which the result will be returned.\n     *\n     * @param {I} action The action to mediate for.\n     * @return {Promise<O extends IActorOutput>} A promise that resolves to the mediation result.\n     */\n    async mediate(action) {\n        const testable = await this.mediateTestable(action);\n        return testable.getOrThrow();\n    }\n    /**\n     * Construct a human-friendly failure message that accumulates the given actors's failure messages.\n     * @param action The action that was executed.\n     * @param actorFailures The failure messages that were collected from actor tests based on the given executed action.\n     * @protected\n     */\n    constructFailureMessage(action, actorFailures) {\n        const prefix = `\\n        `;\n        const failMessage = this.bus.failMessage\n            .replaceAll(/\\$\\{(.*?)\\}/gu, (match, key) => Mediator\n            .getObjectValue({ action }, key.split('.')) || match);\n        return `${failMessage}\\n    Error messages of failing actors:${prefix}${actorFailures.join(prefix)}`;\n    }\n    static getObjectValue(obj, path) {\n        if (path.length === 0) {\n            return obj;\n        }\n        if (obj) {\n            return Mediator.getObjectValue(obj[path[0]], path.slice(1));\n        }\n        return undefined;\n    }\n}\nexports.Mediator = Mediator;\n//# sourceMappingURL=Mediator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TestResultFailed = exports.TestResultPassed = exports.failTest = exports.passTestVoidWithSideData = exports.passTestWithSideData = exports.passTestVoid = exports.passTest = void 0;\n/**\n * Create a new test result that represents a passed value.\n * @param value The value the test passed with.\n */\nfunction passTest(value) {\n    return new TestResultPassed(value, undefined);\n}\nexports.passTest = passTest;\n/**\n * Create a new test result that represents a passed void value.\n */\nfunction passTestVoid() {\n    return new TestResultPassed(true, undefined);\n}\nexports.passTestVoid = passTestVoid;\n/**\n * Create a new test result that represents a passed value with side data.\n * @param value The value the test passed with.\n * @param sideData Additional data to pass to the run phase.\n */\nfunction passTestWithSideData(value, sideData) {\n    return new TestResultPassed(value, sideData);\n}\nexports.passTestWithSideData = passTestWithSideData;\n/**\n * Create a new test result that represents a passed void value with side data.\n * @param sideData Additional data to pass to the run phase.\n */\nfunction passTestVoidWithSideData(sideData) {\n    return new TestResultPassed(true, sideData);\n}\nexports.passTestVoidWithSideData = passTestVoidWithSideData;\n/**\n * Create a new test result that represents a test failure.\n * @param message The error message that describes the failure.\n */\nfunction failTest(message) {\n    return new TestResultFailed(message);\n}\nexports.failTest = failTest;\n/**\n * A passed test result.\n * This should not be constructed manually.\n * Instead, `testPass` should be used.\n */\nclass TestResultPassed {\n    constructor(passValue, sideData) {\n        this.value = passValue;\n        this.sideData = sideData;\n    }\n    /**\n     * Check if the test has passed.\n     * If true, it will contain a value.\n     */\n    isPassed() {\n        return true;\n    }\n    /**\n     * Check if the test has failed.\n     * If true, it will contain a failure message.\n     */\n    isFailed() {\n        return false;\n    }\n    /**\n     * Get the value of the passed test, or undefined if the test failed.\n     */\n    get() {\n        return this.value;\n    }\n    /**\n     * Get the value of the passed test, or throw an error if the test failed.\n     */\n    getOrThrow() {\n        return this.value;\n    }\n    /**\n     * The side data that will be passed to run.\n     */\n    getSideData() {\n        return this.sideData;\n    }\n    /**\n     * Get the failure message callback of the failed test, or undefined if the test passed.\n     */\n    getFailMessage() {\n        return undefined;\n    }\n    /**\n     * For passed tests, map the passed value to another value.\n     * Failed tests will remain unchanged.\n     *\n     * This will not mutate the test result, and instead return a new test result.\n     *\n     * @param mapper A function that will transform the passed value.\n     */\n    map(mapper) {\n        return new TestResultPassed(mapper(this.value, this.sideData), this.sideData);\n    }\n    /**\n     * For passed tests, asynchronously map the passed value to another value.\n     * Failed tests will remain unchanged.\n     *\n     * This will not mutate the test result, and instead return a new test result.\n     *\n     * @param mapper A function that will transform the passed value.\n     */\n    async mapAsync(mapper) {\n        return new TestResultPassed(await mapper(this.value, this.sideData), this.sideData);\n    }\n}\nexports.TestResultPassed = TestResultPassed;\n/**\n * A failed test result.\n * This should not be constructed manually.\n * Instead, `testFail` should be used.\n */\nclass TestResultFailed {\n    constructor(failMessage) {\n        this.failMessage = failMessage;\n    }\n    /**\n     * Check if the test has passed.\n     * If true, it will contain a value.\n     */\n    isPassed() {\n        return false;\n    }\n    /**\n     * Check if the test has failed.\n     * If true, it will contain a failure message.\n     */\n    isFailed() {\n        return true;\n    }\n    /**\n     * Get the value of the passed test, or undefined if the test failed.\n     */\n    get() {\n        return undefined;\n    }\n    /**\n     * Get the value of the passed test, or throw an error if the test failed.\n     */\n    getOrThrow() {\n        throw new Error(this.getFailMessage());\n    }\n    /**\n     * The side data that will be passed to run.\n     */\n    getSideData() {\n        throw new Error(this.getFailMessage());\n    }\n    /**\n     * Get the failure message callback of the failed test, or undefined if the test passed.\n     */\n    getFailMessage() {\n        return this.failMessage;\n    }\n    /**\n     * For passed tests, map the passed value to another value.\n     * Failed tests will remain unchanged.\n     *\n     * This will not mutate the test result, and instead return a new test result.\n     */\n    map() {\n        return this;\n    }\n    /**\n     * For passed tests, asynchronously map the passed value to another value.\n     * Failed tests will remain unchanged.\n     *\n     * This will not mutate the test result, and instead return a new test result.\n     */\n    async mapAsync() {\n        return this;\n    }\n}\nexports.TestResultFailed = TestResultFailed;\n//# sourceMappingURL=TestResult.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActionContext\"), exports);\n__exportStar(require(\"./Bus\"), exports);\n__exportStar(require(\"./BusIndexed\"), exports);\n__exportStar(require(\"./ContextEntries\"), exports);\n__exportStar(require(\"./ActionObserver\"), exports);\n__exportStar(require(\"./Actor\"), exports);\n__exportStar(require(\"./Mediator\"), exports);\n__exportStar(require(\"./TestResult\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorInit = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A base actor for listening to init events.\n *\n * Actor types:\n * * Input:  IActionInit:      Contains process information\n *                             such as the list of arguments,\n *                             environment variables and input stream.\n * * Test:   <none>\n * * Output: IActorOutputInit: Contains process output streams.\n *\n * @see IActionInit\n */\nclass ActorInit extends core_1.Actor {\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Initialization failed: none of the configured actors were to initialize} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorInit = ActorInit;\n//# sourceMappingURL=ActorInit.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorInit\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorInitQueryBase = void 0;\nconst bus_init_1 = require(\"@comunica/bus-init\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A browser-safe comunica Query Init Actor.\n */\nclass ActorInitQueryBase extends bus_init_1.ActorInit {\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(_action) {\n        throw new Error('ActorInitSparql#run is not supported in the browser.');\n    }\n}\nexports.ActorInitQueryBase = ActorInitQueryBase;\n//# sourceMappingURL=ActorInitQueryBase.js.map","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorInitQuery = void 0;\nconst ActorInitQueryBase_1 = require(\"./ActorInitQueryBase\");\n/* istanbul ignore next */\nif (typeof process === 'undefined') {\n    // Polyfills process.nextTick for readable-stream\n    globalThis.process = require('process/');\n}\nclass ActorInitQuery extends ActorInitQueryBase_1.ActorInitQueryBase {\n}\nexports.ActorInitQuery = ActorInitQuery;\n//# sourceMappingURL=ActorInitQuery-browser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeysStatistics = exports.KeysRdfJoin = exports.KeysMergeBindingsContext = exports.KeysRdfUpdateQuads = exports.KeysQuerySourceIdentify = exports.KeysRdfParseHtmlScript = exports.KeysRdfParseJsonLd = exports.KeysQueryOperation = exports.KeysExpressionEvaluator = exports.KeysInitQuery = exports.KeysHttpProxy = exports.KeysHttpMemento = exports.KeysHttpWayback = exports.KeysHttp = exports.KeysCore = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * When adding entries to this file, also add a shortcut for them in the contextKeyShortcuts TSDoc comment in\n * ActorInitQueryBase in @comunica/actor-init-query if it makes sense to use this entry externally.\n * Also, add this shortcut to IQueryContextCommon in @comunica/types.\n */\nexports.KeysCore = {\n    // We create the core context keys in @comunica/core to avoid a cyclic dependency\n    /**\n     * A logger instance.\n     */\n    log: core_1.CONTEXT_KEY_LOGGER,\n};\nexports.KeysHttp = {\n    /**\n     * Include credentials flags.\n     */\n    includeCredentials: new core_1.ActionContextKey('@comunica/bus-http:include-credentials'),\n    /**\n     * Authentication for a source as a \"username:password\"-pair.\n     */\n    auth: new core_1.ActionContextKey('@comunica/bus-http:auth'),\n    /**\n     * Fetch function implementation.\n     */\n    fetch: new core_1.ActionContextKey('@comunica/bus-http:fetch'),\n    /**\n     * HTTP request timeout in milliseconds.\n     */\n    httpTimeout: new core_1.ActionContextKey('@comunica/bus-http:http-timeout'),\n    /**\n     * Makes the HTTP timeout not only apply until the response starts streaming in\n     * but until the response is fully consumed.\n     */\n    httpBodyTimeout: new core_1.ActionContextKey('@comunica/bus-http:http-body-timeout'),\n    /**\n     * Number of retries to make on failed network calls. This only takes effect\n     * on errors thrown during the initial fetch() call and not while streaming the body.\n     */\n    httpRetryCount: new core_1.ActionContextKey('@comunica/bus-http:http-retry-count'),\n    /**\n     * The fallback retry delay in milliseconds. This value is used when a server does not\n     * send a delay value in the Retry-After header or if the header value is incorrectly formatted.\n     */\n    httpRetryDelayFallback: new core_1.ActionContextKey('@comunica/bus-http:http-retry-delay-fallback'),\n    /**\n     * The upper limit for the retry delay in milliseconds. When a server requests a delay larger than this,\n     * the engine will consider it unavailable until the specified timestamp is close enough.\n     */\n    httpRetryDelayLimit: new core_1.ActionContextKey('@comunica/bus-http:http-retry-delay-limit'),\n    /**\n     * HTTP status codes that should always trigger a retry, regardless of the default behaviour.\n     * This can be used to, for example, force retries on server-side errors in the 500 range.\n     */\n    httpRetryStatusCodes: new core_1.ActionContextKey('@comunica/bus-http:http-retry-status-codes'),\n};\nexports.KeysHttpWayback = {\n    /**\n     * Use the WayBack machine to get the most recent representation of a file if a link is broken.\n     * @default false\n     */\n    recoverBrokenLinks: new core_1.ActionContextKey('@comunica/bus-http:recover-broken-links'),\n};\nexports.KeysHttpMemento = {\n    /**\n     * The desired datetime for Memento datetime-negotiation.\n     */\n    datetime: new core_1.ActionContextKey('@comunica/actor-http-memento:datetime'),\n};\nexports.KeysHttpProxy = {\n    /**\n     * Interface.\n     */\n    httpProxyHandler: new core_1.ActionContextKey('@comunica/actor-http-proxy:httpProxyHandler'),\n};\nexports.KeysInitQuery = {\n    /**\n     * The unidentified sources to query over.\n     */\n    querySourcesUnidentified: new core_1.ActionContextKey('@comunica/actor-init-query:querySourcesUnidentified'),\n    /**\n     * Variables that have to be pre-bound to values in the query.\n     */\n    initialBindings: new core_1.ActionContextKey('@comunica/actor-init-query:initialBindings'),\n    /**\n     * The provided query's format.\n     * Defaults to { language: 'sparql', version: '1.1' }\n     */\n    queryFormat: new core_1.ActionContextKey('@comunica/actor-init-query:queryFormat'),\n    /**\n     * Which GraphQL bindings should be singularized.\n     */\n    graphqlSingularizeVariables: new core_1.ActionContextKey('@comunica/actor-init-query:singularizeVariables'),\n    /**\n     * If HTTP and parsing failures are ignored.\n     */\n    lenient: new core_1.ActionContextKey('@comunica/actor-init-query:lenient'),\n    /**\n     * The original query string.\n     */\n    queryString: new core_1.ActionContextKey('@comunica/actor-init-query:queryString'),\n    /**\n     * The original parsed query.\n     */\n    query: new core_1.ActionContextKey('@comunica/actor-init-query:query'),\n    /**\n     * The query's base IRI.\n     */\n    baseIRI: new core_1.ActionContextKey('@comunica/actor-init-query:baseIRI'),\n    /**\n     * Object to cache function argument overload resolutions.\n     * Defaults to an object that is reused across query executions.\n     */\n    functionArgumentsCache: new core_1.ActionContextKey('@comunica/actor-init-query:functionArgumentsCache'),\n    /**\n     * A timestamp representing the current time.\n     * This is required for certain SPARQL operations such as NOW().\n     */\n    queryTimestamp: new core_1.ActionContextKey('@comunica/actor-init-query:queryTimestamp'),\n    /**\n     * A high resolution timestamp representing the time elapsed since Performance.timeOrigin`.\n     * It can be used to precisely measure durations from the start of query execution.\n     */\n    queryTimestampHighResolution: new core_1.ActionContextKey('@comunica/actor-init-query:queryTimestampHighResolution'),\n    /**\n     * @range {functionNamedNode: RDF.NamedNode) => ((args: RDF.Term[]) => Promise<RDF.Term>) | undefined}\n     * Extension function creator for a given function IRI.\n     * Returned value should be an async function implementation.\n     * Undefined may be returned if no implementation exists for the given function IRI.\n     *\n     * The dictionary-based extensionFunctions context entry may be used instead, but not simultaneously.\n     */\n    extensionFunctionCreator: new core_1.ActionContextKey('@comunica/actor-init-query:extensionFunctionCreator'),\n    /**\n     * Dictionary of extension functions.\n     * Key is the IRI of the function, and value is the async function implementation.\n     *\n     * The callback-based extensionFunctionCreator context entry may be used instead, but not simultaneously.\n     */\n    extensionFunctions: new core_1.ActionContextKey('@comunica/actor-init-query:extensionFunctions'),\n    /**\n     * Enables manipulation of the CLI arguments and their processing.\n     */\n    cliArgsHandlers: new core_1.ActionContextKey('@comunica/actor-init-query:cliArgsHandlers'),\n    /**\n     * Explain mode of the query. Can be 'parsed', 'logical', 'physical', or 'physical-json'.\n     */\n    explain: new core_1.ActionContextKey('@comunica/actor-init-query:explain'),\n    /**\n     * Logs the used physical operators\n     */\n    physicalQueryPlanLogger: new core_1.ActionContextKey('@comunica/actor-init-query:physicalQueryPlanLogger'),\n    /**\n     * The current physical operator within the query plan.\n     *              This is used to pass parent-child relationships for invoking the query plan logger.\n     */\n    physicalQueryPlanNode: new core_1.ActionContextKey('@comunica/actor-init-query:physicalQueryPlanNode'),\n    /**\n     * A JSON-LD context\n     */\n    jsonLdContext: new core_1.ActionContextKey('@context'),\n    /**\n     * A boolean value denoting whether caching is disabled or not.\n     */\n    invalidateCache: new core_1.ActionContextKey('@comunica/actor-init-query:invalidateCache'),\n    /**\n     * The data factory for creating terms and quads.\n     */\n    dataFactory: new core_1.ActionContextKey('@comunica/actor-init-query:dataFactory'),\n    /**\n     * A boolean value denoting whether results should be deduplicated or not.\n     */\n    distinctConstruct: new core_1.ActionContextKey('@comunica/actor-init-query:distinctConstruct'),\n};\nexports.KeysExpressionEvaluator = {\n    extensionFunctionCreator: new core_1.ActionContextKey('@comunica/utils-expression-evaluator:extensionFunctionCreator'),\n    superTypeProvider: new core_1.ActionContextKey('@comunica/utils-expression-evaluator:superTypeProvider'),\n    defaultTimeZone: new core_1.ActionContextKey('@comunica/utils-expression-evaluator:defaultTimeZone'),\n    actionContext: new core_1.ActionContextKey('@comunica/utils-expression-evaluator:actionContext'),\n};\nexports.KeysQueryOperation = {\n    /**\n     * Context entry for the current query operation.\n     */\n    operation: new core_1.ActionContextKey('@comunica/bus-query-operation:operation'),\n    /**\n     * @type {any} The metadata from the left streams within a join operation.\n     */\n    joinLeftMetadata: new core_1.ActionContextKey('@comunica/bus-query-operation:joinLeftMetadata'),\n    /**\n     * An array of metadata from the right streams within a join operation.\n     */\n    joinRightMetadatas: new core_1.ActionContextKey('@comunica/bus-query-operation:joinRightMetadatas'),\n    /**\n     * Indicates the bindings that were used to bind the operation.\n     */\n    joinBindings: new core_1.ActionContextKey('@comunica/bus-query-operation:joinBindings'),\n    /**\n     * Flag for indicating that only read operations are allowed, defaults to false.\n     */\n    readOnly: new core_1.ActionContextKey('@comunica/bus-query-operation:readOnly'),\n    /**\n     * An internal context entry to mark that a property path with arbitrary length and a distinct key is being processed.\n     */\n    isPathArbitraryLengthDistinctKey: new core_1.ActionContextKey('@comunica/bus-query-operation:isPathArbitraryLengthDistinct'),\n    /**\n     * An indicator that the stream will be limited to the given number of elements afterwards.\n     */\n    limitIndicator: new core_1.ActionContextKey('@comunica/bus-query-operation:limitIndicator'),\n    /**\n     * If the default graph should also contain the union of all named graphs.\n     */\n    unionDefaultGraph: new core_1.ActionContextKey('@comunica/bus-query-operation:unionDefaultGraph'),\n    /**\n     * The sources to query over.\n     */\n    querySources: new core_1.ActionContextKey('@comunica/bus-query-operation:querySources'),\n};\nexports.KeysRdfParseJsonLd = {\n    /**\n     * @range {IDocumentLoader}\n     */\n    documentLoader: new core_1.ActionContextKey('@comunica/actor-rdf-parse-jsonld:documentLoader'),\n    /**\n     * @range {boolean}\n     */\n    strictValues: new core_1.ActionContextKey('@comunica/actor-rdf-parse-jsonld:strictValues'),\n    /**\n     * @range {Record<string, any>}\n     */\n    parserOptions: new core_1.ActionContextKey('@comunica/actor-rdf-parse-jsonld:parserOptions'),\n};\nexports.KeysRdfParseHtmlScript = {\n    /**\n     * An internal context flag to determine if the engine is already processing an HTML script tag.\n     */\n    processingHtmlScript: new core_1.ActionContextKey('@comunica/actor-rdf-parse-html-script:processingHtmlScript'),\n    /**\n     * If all HTML script tags must be considered.\n     */\n    extractAllScripts: new core_1.ActionContextKey('extractAllScripts'),\n};\nexports.KeysQuerySourceIdentify = {\n    /**\n     * A map containing unique IDs for each source\n     */\n    sourceIds: new core_1.ActionContextKey('@comunica/bus-query-source-identify:sourceIds'),\n    /**\n     * Hypermedia sources mapping to their aggregated store.\n     */\n    hypermediaSourcesAggregatedStores: new core_1.ActionContextKey('@comunica/bus-query-source-identify:hypermediaSourcesAggregatedStores'),\n    /**\n     * If links may be traversed from this source.\n     * This means that sources annotated with this flag are considered incomplete until all links have been traversed.\n     */\n    traverse: new core_1.ActionContextKey('@comunica/bus-query-source-identify:traverse'),\n};\nexports.KeysRdfUpdateQuads = {\n    /**\n     * A data destination.\n     */\n    destination: new core_1.ActionContextKey('@comunica/bus-rdf-update-quads:destination'),\n};\nexports.KeysMergeBindingsContext = {\n    /**\n     * The data sources required to produce the binding\n     */\n    sourcesBinding: new core_1.ActionContextKey('@comunica/bus-merge-bindings-context:sourcesBinding'),\n};\nexports.KeysRdfJoin = {\n    /**\n     * The last physical join actor that was executed.\n     */\n    lastPhysicalJoin: new core_1.ActionContextKey('@comunica/bus-rdf-join:lastPhysicalJoin'),\n};\nexports.KeysStatistics = {\n    /**\n     * All discovered links during query execution. Not all of them will necessarily be dereferenced.\n     */\n    discoveredLinks: new core_1.ActionContextKey('@comunica/statistic:discoveredLinks'),\n    /**\n     * Information about what links are dereferenced and when\n     */\n    dereferencedLinks: new core_1.ActionContextKey('@comunica/statistic:dereferencedLinks'),\n    /**\n     * Intermediate results produced during query execution\n     */\n    intermediateResults: new core_1.ActionContextKey('@comunica/statistic:intermediateResults'),\n};\n//# sourceMappingURL=Keys.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Keys\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryEngineBase = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * Base implementation of a Comunica query engine.\n */\nclass QueryEngineBase {\n    constructor(actorInitQuery) {\n        this.actorInitQuery = actorInitQuery;\n    }\n    async queryBindings(query, context) {\n        return this.queryOfType(query, context, 'bindings');\n    }\n    async queryQuads(query, context) {\n        return this.queryOfType(query, context, 'quads');\n    }\n    async queryBoolean(query, context) {\n        return this.queryOfType(query, context, 'boolean');\n    }\n    async queryVoid(query, context) {\n        return this.queryOfType(query, context, 'void');\n    }\n    async queryOfType(query, context, expectedType) {\n        const result = await this.query(query, context);\n        if (result.resultType === expectedType) {\n            return await result.execute();\n        }\n        throw new Error(`Query result type '${expectedType}' was expected, while '${result.resultType}' was found.`);\n    }\n    /**\n     * Evaluate the given query\n     * @param query A query string or algebra.\n     * @param context An optional query context.\n     * @return {Promise<QueryType>} A promise that resolves to the query output.\n     */\n    async query(query, context) {\n        const output = await this.queryOrExplain(query, context);\n        if ('explain' in output) {\n            throw new Error(`Tried to explain a query when in query-only mode`);\n        }\n        return output;\n    }\n    /**\n     * Explain the given query\n     * @param query A query string or algebra.\n     * @param context An optional query context.\n     * @param explainMode The explain mode.\n     * @return {Promise<QueryType | IQueryExplained>} A promise that resolves to\n     *                                                               the query output or explanation.\n     */\n    async explain(query, context, explainMode) {\n        context.explain = explainMode;\n        const output = await this.queryOrExplain(query, context);\n        return output;\n    }\n    /**\n     * Evaluate or explain the given query\n     * @param query A query string or algebra.\n     * @param context An optional query context.\n     * @return {Promise<QueryType | IQueryExplained>} A promise that resolves to\n     *                                                               the query output or explanation.\n     */\n    async queryOrExplain(query, context) {\n        const actionContext = core_1.ActionContext.ensureActionContext(context);\n        // Invalidate caches if cache argument is set to false\n        if (actionContext.get(context_entries_1.KeysInitQuery.invalidateCache)) {\n            await this.invalidateHttpCache();\n        }\n        // Invoke query process\n        const { result } = await this.actorInitQuery.mediatorQueryProcess.mediate({ query, context: actionContext });\n        if ('explain' in result) {\n            return result;\n        }\n        return QueryEngineBase.internalToFinalResult(result);\n    }\n    /**\n     * @param context An optional context.\n     * @return {Promise<{[p: string]: number}>} All available SPARQL (weighted) result media types.\n     */\n    async getResultMediaTypes(context) {\n        context = core_1.ActionContext.ensureActionContext(context);\n        return (await this.actorInitQuery.mediatorQueryResultSerializeMediaTypeCombiner\n            .mediate({ context, mediaTypes: true })).mediaTypes;\n    }\n    /**\n     * @param context An optional context.\n     * @return {Promise<{[p: string]: number}>} All available SPARQL result media type formats.\n     */\n    async getResultMediaTypeFormats(context) {\n        context = core_1.ActionContext.ensureActionContext(context);\n        return (await this.actorInitQuery.mediatorQueryResultSerializeMediaTypeFormatCombiner\n            .mediate({ context, mediaTypeFormats: true })).mediaTypeFormats;\n    }\n    /**\n     * Convert a query result to a string stream based on a certain media type.\n     * @param {IQueryOperationResult} queryResult A query result.\n     * @param {string} mediaType A media type.\n     * @param {ActionContext} context An optional context.\n     * @return {Promise<IActorQueryResultSerializeOutput>} A text stream.\n     */\n    async resultToString(queryResult, mediaType, context) {\n        context = core_1.ActionContext.ensureActionContext(context);\n        if (!mediaType) {\n            switch (queryResult.resultType) {\n                case 'bindings':\n                    mediaType = 'application/json';\n                    break;\n                case 'quads':\n                    mediaType = 'application/trig';\n                    break;\n                default:\n                    mediaType = 'simple';\n                    break;\n            }\n        }\n        const handle = { ...await QueryEngineBase.finalToInternalResult(queryResult), context };\n        return (await this.actorInitQuery.mediatorQueryResultSerialize\n            .mediate({ context, handle, handleMediaType: mediaType })).handle;\n    }\n    /**\n     * Invalidate all internal caches related to the given page URL.\n     * If no page URL is given, then all pages will be invalidated.\n     * @param {string} url The page URL to invalidate.\n     * @param context An optional ActionContext to pass to the actors.\n     * @return {Promise<any>} A promise resolving when the caches have been invalidated.\n     */\n    invalidateHttpCache(url, context) {\n        context = core_1.ActionContext.ensureActionContext(context);\n        return this.actorInitQuery.mediatorHttpInvalidate.mediate({ url, context });\n    }\n    /**\n     * Convert an internal query result to a final one.\n     * @param internalResult An intermediary query result.\n     */\n    static internalToFinalResult(internalResult) {\n        switch (internalResult.type) {\n            case 'bindings':\n                return {\n                    resultType: 'bindings',\n                    execute: async () => internalResult.bindingsStream,\n                    metadata: async () => {\n                        const meta = await internalResult.metadata();\n                        meta.variables = meta.variables.map((variable) => variable.variable);\n                        return meta;\n                    },\n                    context: internalResult.context,\n                };\n            case 'quads':\n                return {\n                    resultType: 'quads',\n                    execute: async () => internalResult.quadStream,\n                    metadata: async () => await internalResult.metadata(),\n                    context: internalResult.context,\n                };\n            case 'boolean':\n                return {\n                    resultType: 'boolean',\n                    execute: async () => internalResult.execute(),\n                    context: internalResult.context,\n                };\n            case 'void':\n                return {\n                    resultType: 'void',\n                    execute: async () => internalResult.execute(),\n                    context: internalResult.context,\n                };\n        }\n    }\n    /**\n     * Convert a final query result to an internal one.\n     * @param finalResult A final query result.\n     */\n    static async finalToInternalResult(finalResult) {\n        switch (finalResult.resultType) {\n            case 'bindings':\n                return {\n                    type: 'bindings',\n                    bindingsStream: await finalResult.execute(),\n                    metadata: async () => {\n                        const meta = await finalResult.metadata();\n                        meta.variables = meta.variables.map((variable) => ({ variable, canBeUndef: false }));\n                        return meta;\n                    },\n                };\n            case 'quads':\n                return {\n                    type: 'quads',\n                    quadStream: await finalResult.execute(),\n                    metadata: async () => await finalResult.metadata(),\n                };\n            case 'boolean':\n                return {\n                    type: 'boolean',\n                    execute: () => finalResult.execute(),\n                };\n            case 'void':\n                return {\n                    type: 'void',\n                    execute: () => finalResult.execute(),\n                };\n        }\n    }\n}\nexports.QueryEngineBase = QueryEngineBase;\n//# sourceMappingURL=QueryEngineBase.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryEngineBase = void 0;\n__exportStar(require(\"./ActorInitQueryBase\"), exports);\n__exportStar(require(\"./ActorInitQuery-browser\"), exports);\nvar QueryEngineBase_1 = require(\"./QueryEngineBase\");\nObject.defineProperty(exports, \"QueryEngineBase\", { enumerable: true, get: function () { return QueryEngineBase_1.QueryEngineBase; } });\n//# sourceMappingURL=index-browser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=Bindings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ComunicaDataFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IActionContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IAggregatedStore.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ICliArgsHandler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IDataDestination.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IDataset.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IJoinEntry.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IMetadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IPhysicalQueryPlanLogger.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IProxyHandler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IQueryContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IQueryEngine.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IQueryOperationResult.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// ----- Examples of FragmentSelectorShapes -----\n// const AF = new Factory();\n// const DF = new DataFactory();\n// const shapeTpf: FragmentSelectorShape = {\n//   type: 'operation',\n//   operation: { pattern: AF.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o')) },\n//   variablesOptional: [\n//     DF.variable('s'),\n//     DF.variable('p'),\n//     DF.variable('o'),\n//   ],\n// };\n//\n// const shapeQpf: FragmentSelectorShape = {\n//   type: 'operation',\n//   operation: { pattern: AF.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o'), DF.variable('g')) },\n//   variablesOptional: [\n//     DF.variable('s'),\n//     DF.variable('p'),\n//     DF.variable('o'),\n//     DF.variable('g'),\n//   ],\n// };\n//\n// const shapeBrTpf: FragmentSelectorShape = {\n//   type: 'operation',\n//   operation: { pattern: AF.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o')) },\n//   variablesOptional: [\n//     DF.variable('s'),\n//     DF.variable('p'),\n//     DF.variable('o'),\n//   ],\n//   addBindings: true,\n// };\n//\n// const shapeSparqlEp: FragmentSelectorShape = { // Same as SaGe\n//   type: 'disjunction',\n//   children: [\n//     {\n//       type: 'operation',\n//       operation: { type: Algebra.types.PROJECT },\n//     },\n//     {\n//       type: 'operation',\n//       operation: { type: Algebra.types.CONSTRUCT },\n//     },\n//     {\n//       type: 'operation',\n//       operation: { type: Algebra.types.DESCRIBE },\n//     },\n//     {\n//       type: 'operation',\n//       operation: { type: Algebra.types.ASK },\n//     },\n//     {\n//       type: 'operation',\n//       operation: { type: Algebra.types.COMPOSITE_UPDATE },\n//     },\n//   ],\n// };\n//\n// // Example of request:\n// //   Find ?s matching \"?s dbo:country dbr:norway. ?s dbo:award ?o2. ?s dbo:birthDate ?o3.\"\n// const shapeSpf: FragmentSelectorShape = {\n//   type: 'operation',\n//   operation: { type: Algebra.types.BGP },\n//   scopedVariables: [\n//     DF.variable('s'),\n//   ],\n//   children: [\n//     {\n//       type: 'arity',\n//       min: 1,\n//       max: Number.POSITIVE_INFINITY,\n//       child: {\n//         type: 'operation',\n//         operation: { pattern: AF.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o')) },\n//         variablesOptional: [\n//           DF.variable('p'),\n//           DF.variable('o'),\n//         ],\n//       },\n//     },\n//   ],\n//   addBindings: true,\n// };\n//\n// // Example of requests:\n// //   - brTPF\n// //   - Find all ?s and ?o matching \"?s db:country ?o\"\n// const shapeSmartKg: FragmentSelectorShape = {\n//   type: 'disjunction',\n//   children: [\n//     {\n//       type: 'operation',\n//       operation: { pattern: AF.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o')) },\n//       variablesOptional: [\n//         DF.variable('s'),\n//         DF.variable('p'),\n//         DF.variable('o'),\n//       ],\n//       addBindings: true,\n//     },\n//     {\n//       type: 'operation',\n//       operation: { type: Algebra.types.BGP },\n//       children: [\n//         {\n//           type: 'arity',\n//           min: 1,\n//           max: Number.POSITIVE_INFINITY,\n//           child: {\n//             type: 'operation',\n//             operation: { pattern: AF.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o')) },\n//             variablesRequired: [\n//               DF.variable('p'),\n//             ],\n//           },\n//         },\n//       ],\n//     },\n//   ],\n// };\n//# sourceMappingURL=IQuerySource.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IStatisticBase.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IDiscoverEventData.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IPartialResult.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ILink.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Logger = void 0;\n/**\n * A logger accepts messages from different levels\n * and emits them in a certain way.\n */\nclass Logger {\n    /**\n     * Convert a string-based logging level to a numerical logging level.\n     * @param level A string-based logging level\n     * @return The numerical logging level, or undefined.\n     */\n    static getLevelOrdinal(level) {\n        return Logger.LEVELS[level];\n    }\n}\nexports.Logger = Logger;\n/**\n * All available logging levels.\n * @type {{trace: number; debug: number; info: number; warn: number; error: number; fatal: number}}\n */\nLogger.LEVELS = {\n    trace: 0,\n    debug: 1,\n    info: 2,\n    warn: 3,\n    error: 4,\n    fatal: 5,\n};\n//# sourceMappingURL=Logger.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionType = void 0;\nvar ExpressionType;\n(function (ExpressionType) {\n    ExpressionType[\"Aggregate\"] = \"aggregate\";\n    ExpressionType[\"Existence\"] = \"existence\";\n    ExpressionType[\"Operator\"] = \"operator\";\n    ExpressionType[\"Term\"] = \"term\";\n    ExpressionType[\"Variable\"] = \"variable\";\n})(ExpressionType || (exports.ExpressionType = ExpressionType = {}));\n//# sourceMappingURL=ExpressionEvaluator.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Bindings\"), exports);\n__exportStar(require(\"./ComunicaDataFactory\"), exports);\n__exportStar(require(\"./IActionContext\"), exports);\n__exportStar(require(\"./IAggregatedStore\"), exports);\n__exportStar(require(\"./ICliArgsHandler\"), exports);\n__exportStar(require(\"./IDataDestination\"), exports);\n__exportStar(require(\"./IDataset\"), exports);\n__exportStar(require(\"./IJoinEntry\"), exports);\n__exportStar(require(\"./IMetadata\"), exports);\n__exportStar(require(\"./IPhysicalQueryPlanLogger\"), exports);\n__exportStar(require(\"./IProxyHandler\"), exports);\n__exportStar(require(\"./IQueryContext\"), exports);\n__exportStar(require(\"./IQueryEngine\"), exports);\n__exportStar(require(\"./IQueryOperationResult\"), exports);\n__exportStar(require(\"./IQuerySource\"), exports);\n__exportStar(require(\"./statistics/IStatisticBase\"), exports);\n__exportStar(require(\"./statistics/IDiscoverEventData\"), exports);\n__exportStar(require(\"./statistics/IPartialResult\"), exports);\n__exportStar(require(\"./ILink\"), exports);\n__exportStar(require(\"./Logger\"), exports);\n__exportStar(require(\"./ExpressionEvaluator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggerVoid = void 0;\nconst types_1 = require(\"@comunica/types\");\n/**\n * A logger that voids everything.\n */\nclass LoggerVoid extends types_1.Logger {\n    debug() {\n        // Void\n    }\n    error() {\n        // Void\n    }\n    fatal() {\n        // Void\n    }\n    info() {\n        // Void\n    }\n    trace() {\n        // Void\n    }\n    warn() {\n        // Void\n    }\n}\nexports.LoggerVoid = LoggerVoid;\n//# sourceMappingURL=LoggerVoid.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./LoggerVoid\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediatorFunctionFactory = exports.ActorFunctionFactory = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for function factory events.\n *\n * Actor types:\n * * Input:  IActionFunctions: A request to receive a function implementation for a given function name\n * and potentially the function arguments.\n * * Test:   <none>\n * * Output: IActorFunctionsOutput: A function implementation.\n *\n * @see IActionFunctionFactory\n * @see IActorFunctionFactoryOutput\n */\nclass ActorFunctionFactory extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     * \\ @defaultNested {<default_bus> a <cbff:components/BusFunctionFactory.jsonld#BusFunctionFactory>} bus\n     * \\ @defaultNested {Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorFunctionFactory = ActorFunctionFactory;\nclass MediatorFunctionFactory extends core_1.Mediator {\n}\nexports.MediatorFunctionFactory = MediatorFunctionFactory;\n//# sourceMappingURL=ActorFunctionFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryDedicated = void 0;\nconst core_1 = require(\"@comunica/core\");\nconst ActorFunctionFactory_1 = require(\"./ActorFunctionFactory\");\n/**\n * A base implementation for function factory actors for a dedicated operator.\n */\nclass ActorFunctionFactoryDedicated extends ActorFunctionFactory_1.ActorFunctionFactory {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        // Name must match, if this is a term function, all is fine, if not, look whether term-function is not requested.\n        if (this.functionNames.includes(action.functionName) && (this.termFunction || !action.requireTermExpression)) {\n            return (0, core_1.passTestVoid)();\n        }\n        return (0, core_1.failTest)(`Actor ${this.name} can not provide implementation for \"${action.functionName}\", only for ${this.termFunction ? '' : 'non-termExpression '}${this.functionNames.join(' and ')}.`);\n    }\n}\nexports.ActorFunctionFactoryDedicated = ActorFunctionFactoryDedicated;\n//# sourceMappingURL=ActorFunctionFactoryDedicated.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BusFunctionFactory = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * Bus inspired by BusIndexed but specific for function factory.\n *\n * The implementation differs. In BusIndexed, each actor is indexed only once.\n * Here, a single actor can be indexed multiple times (max 2).\n */\nclass BusFunctionFactory extends core_1.BusIndexed {\n    constructor(args) {\n        super({\n            ...args,\n            actorIdentifierFields: ['functionNames'],\n            actionIdentifierFields: ['functionName'],\n        });\n    }\n}\nexports.BusFunctionFactory = BusFunctionFactory;\n//# sourceMappingURL=BusFunctionFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNode = void 0;\n/**\n * A term that represents an RDF blank node with a label.\n */\nclass BlankNode {\n    constructor(value) {\n        this.termType = 'BlankNode';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'BlankNode' && other.value === this.value;\n    }\n}\nexports.BlankNode = BlankNode;\n//# sourceMappingURL=BlankNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultGraph = void 0;\n/**\n * A singleton term instance that represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass DefaultGraph {\n    constructor() {\n        this.termType = 'DefaultGraph';\n        this.value = '';\n        // Private constructor\n    }\n    equals(other) {\n        return !!other && other.termType === 'DefaultGraph';\n    }\n}\nexports.DefaultGraph = DefaultGraph;\nDefaultGraph.INSTANCE = new DefaultGraph();\n//# sourceMappingURL=DefaultGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NamedNode = void 0;\n/**\n * A term that contains an IRI.\n */\nclass NamedNode {\n    constructor(value) {\n        this.termType = 'NamedNode';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'NamedNode' && other.value === this.value;\n    }\n}\nexports.NamedNode = NamedNode;\n//# sourceMappingURL=NamedNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Literal = void 0;\nconst NamedNode_1 = require(\"./NamedNode\");\n/**\n * A term that represents an RDF literal, containing a string with an optional language tag or datatype.\n */\nclass Literal {\n    constructor(value, languageOrDatatype) {\n        this.termType = 'Literal';\n        this.value = value;\n        if (typeof languageOrDatatype === 'string') {\n            this.language = languageOrDatatype;\n            this.datatype = Literal.RDF_LANGUAGE_STRING;\n        }\n        else if (languageOrDatatype) {\n            this.language = '';\n            this.datatype = languageOrDatatype;\n        }\n        else {\n            this.language = '';\n            this.datatype = Literal.XSD_STRING;\n        }\n    }\n    equals(other) {\n        return !!other && other.termType === 'Literal' && other.value === this.value &&\n            other.language === this.language && this.datatype.equals(other.datatype);\n    }\n}\nexports.Literal = Literal;\nLiteral.RDF_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString');\nLiteral.XSD_STRING = new NamedNode_1.NamedNode('http://www.w3.org/2001/XMLSchema#string');\n//# sourceMappingURL=Literal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Quad = void 0;\n/**\n * An instance of DefaultGraph represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass Quad {\n    constructor(subject, predicate, object, graph) {\n        this.termType = 'Quad';\n        this.value = '';\n        this.subject = subject;\n        this.predicate = predicate;\n        this.object = object;\n        this.graph = graph;\n    }\n    equals(other) {\n        // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n        return !!other && (other.termType === 'Quad' || !other.termType) &&\n            this.subject.equals(other.subject) &&\n            this.predicate.equals(other.predicate) &&\n            this.object.equals(other.object) &&\n            this.graph.equals(other.graph);\n    }\n}\nexports.Quad = Quad;\n//# sourceMappingURL=Quad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\n/**\n * A term that represents a variable.\n */\nclass Variable {\n    constructor(value) {\n        this.termType = 'Variable';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'Variable' && other.value === this.value;\n    }\n}\nexports.Variable = Variable;\n//# sourceMappingURL=Variable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataFactory = void 0;\nconst BlankNode_1 = require(\"./BlankNode\");\nconst DefaultGraph_1 = require(\"./DefaultGraph\");\nconst Literal_1 = require(\"./Literal\");\nconst NamedNode_1 = require(\"./NamedNode\");\nconst Quad_1 = require(\"./Quad\");\nconst Variable_1 = require(\"./Variable\");\nlet dataFactoryCounter = 0;\n/**\n * A factory for instantiating RDF terms and quads.\n */\nclass DataFactory {\n    constructor(options) {\n        this.blankNodeCounter = 0;\n        options = options || {};\n        this.blankNodePrefix = options.blankNodePrefix || `df_${dataFactoryCounter++}_`;\n    }\n    /**\n     * @param value The IRI for the named node.\n     * @return A new instance of NamedNode.\n     * @see NamedNode\n     */\n    namedNode(value) {\n        return new NamedNode_1.NamedNode(value);\n    }\n    /**\n     * @param value The optional blank node identifier.\n     * @return A new instance of BlankNode.\n     *         If the `value` parameter is undefined a new identifier\n     *         for the blank node is generated for each call.\n     * @see BlankNode\n     */\n    blankNode(value) {\n        return new BlankNode_1.BlankNode(value || `${this.blankNodePrefix}${this.blankNodeCounter++}`);\n    }\n    /**\n     * @param value              The literal value.\n     * @param languageOrDatatype The optional language or datatype.\n     *                           If `languageOrDatatype` is a NamedNode,\n     *                           then it is used for the value of `NamedNode.datatype`.\n     *                           Otherwise `languageOrDatatype` is used for the value\n     *                           of `NamedNode.language`.\n     * @return A new instance of Literal.\n     * @see Literal\n     */\n    literal(value, languageOrDatatype) {\n        return new Literal_1.Literal(value, languageOrDatatype);\n    }\n    /**\n     * This method is optional.\n     * @param value The variable name\n     * @return A new instance of Variable.\n     * @see Variable\n     */\n    variable(value) {\n        return new Variable_1.Variable(value);\n    }\n    /**\n     * @return An instance of DefaultGraph.\n     */\n    defaultGraph() {\n        return DefaultGraph_1.DefaultGraph.INSTANCE;\n    }\n    /**\n     * @param subject   The quad subject term.\n     * @param predicate The quad predicate term.\n     * @param object    The quad object term.\n     * @param graph     The quad graph term.\n     * @return A new instance of Quad.\n     * @see Quad\n     */\n    quad(subject, predicate, object, graph) {\n        return new Quad_1.Quad(subject, predicate, object, graph || this.defaultGraph());\n    }\n    /**\n     * Create a deep copy of the given term using this data factory.\n     * @param original An RDF term.\n     * @return A deep copy of the given term.\n     */\n    fromTerm(original) {\n        // TODO: remove nasty any casts when this TS bug has been fixed:\n        //  https://github.com/microsoft/TypeScript/issues/26933\n        switch (original.termType) {\n            case 'NamedNode':\n                return this.namedNode(original.value);\n            case 'BlankNode':\n                return this.blankNode(original.value);\n            case 'Literal':\n                if (original.language) {\n                    return this.literal(original.value, original.language);\n                }\n                if (!original.datatype.equals(Literal_1.Literal.XSD_STRING)) {\n                    return this.literal(original.value, this.fromTerm(original.datatype));\n                }\n                return this.literal(original.value);\n            case 'Variable':\n                return this.variable(original.value);\n            case 'DefaultGraph':\n                return this.defaultGraph();\n            case 'Quad':\n                return this.quad(this.fromTerm(original.subject), this.fromTerm(original.predicate), this.fromTerm(original.object), this.fromTerm(original.graph));\n        }\n    }\n    /**\n     * Create a deep copy of the given quad using this data factory.\n     * @param original An RDF quad.\n     * @return A deep copy of the given quad.\n     */\n    fromQuad(original) {\n        return this.fromTerm(original);\n    }\n    /**\n     * Reset the internal blank node counter.\n     */\n    resetBlankNodeCounter() {\n        this.blankNodeCounter = 0;\n    }\n}\nexports.DataFactory = DataFactory;\n//# sourceMappingURL=DataFactory.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/BlankNode\"), exports);\n__exportStar(require(\"./lib/DataFactory\"), exports);\n__exportStar(require(\"./lib/DefaultGraph\"), exports);\n__exportStar(require(\"./lib/Literal\"), exports);\n__exportStar(require(\"./lib/NamedNode\"), exports);\n__exportStar(require(\"./lib/Quad\"), exports);\n__exportStar(require(\"./lib/Variable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringQuadToQuad = exports.quadToStringQuad = exports.stringToTerm = exports.getLiteralLanguage = exports.getLiteralType = exports.getLiteralValue = exports.termToString = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst FACTORY = new rdf_data_factory_1.DataFactory();\n/**\n * Utility methods for converting between string-based RDF representations and RDFJS objects.\n *\n * RDF Terms are represented as follows:\n * * Blank nodes: '_:myBlankNode'\n * * Variables:   '?myVariable'\n * * Literals:    '\"myString\"', '\"myLanguageString\"@en-us', '\"3\"^^xsd:number'\n * * URIs:        'http://example.org'\n *\n * Quads/triples are represented as hashes with 'subject', 'predicate', 'object' and 'graph' (optional)\n * as keys, and string-based RDF terms as values.\n */\n/**\n * Convert an RDFJS term to a string-based representation.\n * @param {RDF.Term} term An RDFJS term.\n * @return {string} A string-based term representation.\n */\nfunction termToString(term) {\n    // TODO: remove nasty any casts when this TS bug has been fixed: https://github.com/microsoft/TypeScript/issues/26933\n    if (!term) {\n        return undefined;\n    }\n    switch (term.termType) {\n        case 'NamedNode': return term.value;\n        case 'BlankNode': return ('_:' + term.value);\n        case 'Literal':\n            const literalValue = term;\n            return ('\"' + literalValue.value + '\"' +\n                (literalValue.datatype &&\n                    literalValue.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string' &&\n                    literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' ?\n                    '^^' + literalValue.datatype.value : '') +\n                (literalValue.language ? '@' + literalValue.language : ''));\n        case 'Quad': return `<<${termToString(term.subject)} ${termToString(term.predicate)} ${termToString(term.object)}${term.graph.termType === 'DefaultGraph' ? '' : ' ' + termToString(term.graph)}>>`;\n        case 'Variable': return ('?' + term.value);\n        case 'DefaultGraph': return term.value;\n    }\n}\nexports.termToString = termToString;\n/**\n * Get the string value of a literal.\n * @param {string} literalValue An RDF literal enclosed by '\"'.\n * @return {string} The literal value inside the '\"'.\n */\nfunction getLiteralValue(literalValue) {\n    const match = /^\"([^]*)\"/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    return match[1];\n}\nexports.getLiteralValue = getLiteralValue;\n/**\n * Get the datatype of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The datatype of the literal.\n */\nfunction getLiteralType(literalValue) {\n    const match = /^\"[^]*\"(?:\\^\\^([^\"]+)|(@)[^@\"]+)?$/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    return match[1] || (match[2]\n        ? 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' : 'http://www.w3.org/2001/XMLSchema#string');\n}\nexports.getLiteralType = getLiteralType;\n/**\n * Get the language of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The language of the literal.\n */\nfunction getLiteralLanguage(literalValue) {\n    const match = /^\"[^]*\"(?:@([^@\"]+)|\\^\\^[^\"]+)?$/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    return match[1] ? match[1].toLowerCase() : '';\n}\nexports.getLiteralLanguage = getLiteralLanguage;\n/**\n * Transform a string-based RDF term to an RDFJS term.\n * @param {string} value A string-based RDF-term.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {RDF.Term} An RDF-JS term.\n */\nfunction stringToTerm(value, dataFactory) {\n    dataFactory = dataFactory || FACTORY;\n    if (!value || !value.length) {\n        return dataFactory.defaultGraph();\n    }\n    switch (value[0]) {\n        case '_': return dataFactory.blankNode(value.substr(2));\n        case '?':\n            if (!dataFactory.variable) {\n                throw new Error(`Missing 'variable()' method on the given DataFactory`);\n            }\n            return dataFactory.variable(value.substr(1));\n        case '\"':\n            const language = getLiteralLanguage(value);\n            const type = dataFactory.namedNode(getLiteralType(value));\n            return dataFactory.literal(getLiteralValue(value), language || type);\n        case '<':\n        default:\n            if (value[0] === '<' && value.length > 4 && value[1] === '<' && value[value.length - 1] === '>' && value[value.length - 2] === '>') {\n                // Iterate character-by-character to detect spaces that are *not* wrapped in <<>>\n                const terms = value.slice(2, -2).trim();\n                let stringTerms = [];\n                let ignoreTags = 0;\n                let lastIndex = 0;\n                let inQuote = false;\n                for (let i = 0; i < terms.length; i++) {\n                    const char = terms[i];\n                    if (char === '<')\n                        ignoreTags++;\n                    if (char === '>') {\n                        if (ignoreTags === 0) {\n                            throw new Error('Found closing tag without opening tag in ' + value);\n                        }\n                        else {\n                            ignoreTags--;\n                        }\n                    }\n                    if (char === '\"') {\n                        let escaped = false;\n                        let j = i;\n                        while (j-- > 0 && terms[j] === '\\\\') {\n                            escaped = !escaped;\n                        }\n                        if (!escaped) {\n                            // We have reached an unescaped quote\n                            inQuote = !inQuote;\n                        }\n                    }\n                    if (char === ' ' && !inQuote && ignoreTags === 0) {\n                        stringTerms.push(terms.slice(lastIndex, i));\n                        while (terms[i + 1] === ' ') {\n                            i += 1;\n                        }\n                        lastIndex = i + 1;\n                    }\n                }\n                if (ignoreTags !== 0) {\n                    throw new Error('Found opening tag without closing tag in ' + value);\n                }\n                stringTerms.push(terms.slice(lastIndex, terms.length));\n                // We require 3 or 4 components\n                if (stringTerms.length !== 3 && stringTerms.length !== 4) {\n                    throw new Error('Nested quad syntax error ' + value);\n                }\n                stringTerms = stringTerms.map(term => term.startsWith('<') && !term.includes(' ') ? term.slice(1, -1) : term);\n                return dataFactory.quad(stringToTerm(stringTerms[0]), stringToTerm(stringTerms[1]), stringToTerm(stringTerms[2]), stringTerms[3] ? stringToTerm(stringTerms[3]) : undefined);\n            }\n            return dataFactory.namedNode(value);\n    }\n}\nexports.stringToTerm = stringToTerm;\n/**\n * Convert an RDFJS quad to a string-based quad representation.\n * @param {Quad} q An RDFJS quad.\n * @return {IStringQuad} A hash with string-based quad terms.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction quadToStringQuad(q) {\n    // tslint:disable:object-literal-sort-keys\n    return {\n        subject: termToString(q.subject),\n        predicate: termToString(q.predicate),\n        object: termToString(q.object),\n        graph: termToString(q.graph),\n    };\n    // tslint:enable:object-literal-sort-keys\n}\nexports.quadToStringQuad = quadToStringQuad;\n/**\n * Convert a string-based quad representation to an RDFJS quad.\n * @param {IStringQuad} stringQuad A hash with string-based quad terms.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {Q} An RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction stringQuadToQuad(stringQuad, dataFactory) {\n    dataFactory = dataFactory || FACTORY;\n    return dataFactory.quad(stringToTerm(stringQuad.subject, dataFactory), stringToTerm(stringQuad.predicate, dataFactory), stringToTerm(stringQuad.object, dataFactory), stringToTerm(stringQuad.graph, dataFactory));\n}\nexports.stringQuadToQuad = stringQuadToQuad;\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.termToString = exports.stringToTerm = exports.stringQuadToQuad = exports.quadToStringQuad = exports.getLiteralValue = exports.getLiteralType = exports.getLiteralLanguage = void 0;\nconst TermUtil_1 = require(\"./lib/TermUtil\");\nObject.defineProperty(exports, \"getLiteralLanguage\", { enumerable: true, get: function () { return TermUtil_1.getLiteralLanguage; } });\nObject.defineProperty(exports, \"getLiteralType\", { enumerable: true, get: function () { return TermUtil_1.getLiteralType; } });\nObject.defineProperty(exports, \"getLiteralValue\", { enumerable: true, get: function () { return TermUtil_1.getLiteralValue; } });\nObject.defineProperty(exports, \"quadToStringQuad\", { enumerable: true, get: function () { return TermUtil_1.quadToStringQuad; } });\nObject.defineProperty(exports, \"stringQuadToQuad\", { enumerable: true, get: function () { return TermUtil_1.stringQuadToQuad; } });\nObject.defineProperty(exports, \"stringToTerm\", { enumerable: true, get: function () { return TermUtil_1.stringToTerm; } });\nObject.defineProperty(exports, \"termToString\", { enumerable: true, get: function () { return TermUtil_1.termToString; } });\n//# sourceMappingURL=index.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n  var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';\n\n\nmodule.exports = function equal(a, b) {\n  if (a === b) return true;\n\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n\n    var length, i, keys;\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (!equal(a[i], b[i])) return false;\n      return true;\n    }\n\n\n    if ((a instanceof Map) && (b instanceof Map)) {\n      if (a.size !== b.size) return false;\n      for (i of a.entries())\n        if (!b.has(i[0])) return false;\n      for (i of a.entries())\n        if (!equal(i[1], b.get(i[0]))) return false;\n      return true;\n    }\n\n    if ((a instanceof Set) && (b instanceof Set)) {\n      if (a.size !== b.size) return false;\n      for (i of a.entries())\n        if (!b.has(i[0])) return false;\n      return true;\n    }\n\n    if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;)\n        if (a[i] !== b[i]) return false;\n      return true;\n    }\n\n\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n\n    for (i = length; i-- !== 0;)\n      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n    for (i = length; i-- !== 0;) {\n      var key = keys[i];\n\n      if (!equal(a[key], b[key])) return false;\n    }\n\n    return true;\n  }\n\n  // true if both NaN, false otherwise\n  return a!==a && b!==b;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expressionTypes = exports.types = void 0;\nvar types;\n(function (types) {\n    types[\"ALT\"] = \"alt\";\n    types[\"ASK\"] = \"ask\";\n    types[\"BGP\"] = \"bgp\";\n    types[\"CONSTRUCT\"] = \"construct\";\n    types[\"DESCRIBE\"] = \"describe\";\n    types[\"DISTINCT\"] = \"distinct\";\n    types[\"EXPRESSION\"] = \"expression\";\n    types[\"EXTEND\"] = \"extend\";\n    types[\"FILTER\"] = \"filter\";\n    types[\"FROM\"] = \"from\";\n    types[\"GRAPH\"] = \"graph\";\n    types[\"GROUP\"] = \"group\";\n    types[\"INV\"] = \"inv\";\n    types[\"JOIN\"] = \"join\";\n    types[\"LEFT_JOIN\"] = \"leftjoin\";\n    types[\"LINK\"] = \"link\";\n    types[\"MINUS\"] = \"minus\";\n    types[\"NOP\"] = \"nop\";\n    types[\"NPS\"] = \"nps\";\n    types[\"ONE_OR_MORE_PATH\"] = \"OneOrMorePath\";\n    types[\"ORDER_BY\"] = \"orderby\";\n    types[\"PATH\"] = \"path\";\n    types[\"PATTERN\"] = \"pattern\";\n    types[\"PROJECT\"] = \"project\";\n    types[\"REDUCED\"] = \"reduced\";\n    types[\"SEQ\"] = \"seq\";\n    types[\"SERVICE\"] = \"service\";\n    types[\"SLICE\"] = \"slice\";\n    types[\"UNION\"] = \"union\";\n    types[\"VALUES\"] = \"values\";\n    types[\"ZERO_OR_MORE_PATH\"] = \"ZeroOrMorePath\";\n    types[\"ZERO_OR_ONE_PATH\"] = \"ZeroOrOnePath\";\n    types[\"COMPOSITE_UPDATE\"] = \"compositeupdate\";\n    types[\"DELETE_INSERT\"] = \"deleteinsert\";\n    types[\"LOAD\"] = \"load\";\n    types[\"CLEAR\"] = \"clear\";\n    types[\"CREATE\"] = \"create\";\n    types[\"DROP\"] = \"drop\";\n    types[\"ADD\"] = \"add\";\n    types[\"MOVE\"] = \"move\";\n    types[\"COPY\"] = \"copy\";\n})(types = exports.types || (exports.types = {}));\nvar expressionTypes;\n(function (expressionTypes) {\n    expressionTypes[\"AGGREGATE\"] = \"aggregate\";\n    expressionTypes[\"EXISTENCE\"] = \"existence\";\n    expressionTypes[\"NAMED\"] = \"named\";\n    expressionTypes[\"OPERATOR\"] = \"operator\";\n    expressionTypes[\"TERM\"] = \"term\";\n    expressionTypes[\"WILDCARD\"] = \"wildcard\";\n})(expressionTypes = exports.expressionTypes || (exports.expressionTypes = {}));\n//# sourceMappingURL=algebra.js.map","\n// Wildcard constructor\nclass Wildcard {\n  constructor() {\n    return WILDCARD || this;\n  }\n\n  equals(other) {\n    return other && (this.termType === other.termType);\n  }\n}\n\nObject.defineProperty(Wildcard.prototype, 'value', {\n  enumerable: true,\n  value: '*',\n});\n\nObject.defineProperty(Wildcard.prototype, 'termType', {\n  enumerable: true,\n  value: 'Wildcard',\n});\n\n\n// Wildcard singleton\nvar WILDCARD = new Wildcard();\n\nmodule.exports.Wildcard = Wildcard;\n","/* parser generated by jison 0.4.18 */\n/*\n  Returns a Parser object of the following structure:\n\n  Parser: {\n    yy: {}\n  }\n\n  Parser.prototype: {\n    yy: {},\n    trace: function(),\n    symbols_: {associative list: name ==> number},\n    terminals_: {associative list: number ==> name},\n    productions_: [...],\n    performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n    table: [...],\n    defaultActions: {...},\n    parseError: function(str, hash),\n    parse: function(input),\n\n    lexer: {\n        EOF: 1,\n        parseError: function(str, hash),\n        setInput: function(input),\n        input: function(),\n        unput: function(str),\n        more: function(),\n        less: function(n),\n        pastInput: function(),\n        upcomingInput: function(),\n        showPosition: function(),\n        test_match: function(regex_match_array, rule_index),\n        next: function(),\n        lex: function(),\n        begin: function(condition),\n        popState: function(),\n        _currentRules: function(),\n        topState: function(),\n        pushState: function(condition),\n\n        options: {\n            ranges: boolean           (optional: true ==> token location info will include a .range[] member)\n            flex: boolean             (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n            backtrack_lexer: boolean  (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n        },\n\n        performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n        rules: [...],\n        conditions: {associative list: name ==> set},\n    }\n  }\n\n\n  token location info (@$, _$, etc.): {\n    first_line: n,\n    last_line: n,\n    first_column: n,\n    last_column: n,\n    range: [start_number, end_number]       (where the numbers are indexes into the input string, regular zero-based)\n  }\n\n\n  the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n    text:        (matched text)\n    token:       (the produced terminal token, if any)\n    line:        (yylineno)\n  }\n  while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n    loc:         (yylloc)\n    expected:    (string describing the set of expected tokens)\n    recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n  }\n*/\nvar SparqlParser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,12,13,15,16,24,32,36,41,45,100,110,113,115,116,123,126,131,197,224,229,308,329,330,331,332,333],$V1=[2,247],$V2=[100,110,113,115,116,123,126,131,329,330,331,332,333],$V3=[2,409],$V4=[1,18],$V5=[1,27],$V6=[13,16,45,197,224,229,308],$V7=[28,29,53],$V8=[28,53],$V9=[1,42],$Va=[1,45],$Vb=[1,41],$Vc=[1,44],$Vd=[123,126],$Ve=[1,67],$Vf=[39,45,87],$Vg=[13,16,45,197,224,308],$Vh=[1,87],$Vi=[2,281],$Vj=[1,86],$Vk=[13,16,45,82,87,89,231,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312],$Vl=[6,28,29,53,63,70,73,81,83,85],$Vm=[6,13,16,28,29,53,63,70,73,81,83,85,87,308],$Vn=[6,13,16,28,29,45,53,63,70,73,81,82,83,85,87,89,197,231,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,314],$Vo=[6,13,16,28,29,31,39,45,47,48,53,63,70,73,81,82,83,85,87,89,109,112,121,123,126,128,159,160,161,163,164,174,193,197,224,229,231,232,242,246,250,263,265,272,290,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,314,317,318,335,337,338,340,341,342,343,344,345,346],$Vp=[13,16,308],$Vq=[112,132,327,334],$Vr=[13,16,112,132,308],$Vs=[1,111],$Vt=[1,117],$Vu=[112,132,327,328,334],$Vv=[13,16,112,132,308,328],$Vw=[28,29,45,53,87],$Vx=[1,138],$Vy=[1,151],$Vz=[1,128],$VA=[1,127],$VB=[1,129],$VC=[1,140],$VD=[1,141],$VE=[1,142],$VF=[1,143],$VG=[1,144],$VH=[1,145],$VI=[1,147],$VJ=[1,148],$VK=[2,457],$VL=[1,158],$VM=[1,159],$VN=[1,160],$VO=[1,152],$VP=[1,153],$VQ=[1,156],$VR=[1,171],$VS=[1,172],$VT=[1,173],$VU=[1,174],$VV=[1,175],$VW=[1,176],$VX=[1,167],$VY=[1,168],$VZ=[1,169],$V_=[1,170],$V$=[1,157],$V01=[1,166],$V11=[1,161],$V21=[1,162],$V31=[1,163],$V41=[1,164],$V51=[1,165],$V61=[6,13,16,29,31,45,82,85,87,89,112,159,160,161,163,164,231,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,335],$V71=[1,195],$V81=[6,31,73,81,83,85],$V91=[2,285],$Va1=[1,199],$Vb1=[1,201],$Vc1=[6,31,70,73,81,83,85],$Vd1=[2,283],$Ve1=[1,207],$Vf1=[1,218],$Vg1=[1,223],$Vh1=[1,219],$Vi1=[1,225],$Vj1=[1,226],$Vk1=[1,224],$Vl1=[6,63,70,73,81,83,85],$Vm1=[1,236],$Vn1=[2,334],$Vo1=[1,243],$Vp1=[1,241],$Vq1=[6,193],$Vr1=[2,349],$Vs1=[2,339],$Vt1=[28,128],$Vu1=[47,48,193,272],$Vv1=[47,48,193,242,272],$Vw1=[47,48,193,242,246,272],$Vx1=[47,48,193,242,246,250,263,265,272,290,297,298,299,300,301,302,341,342,343,344,345,346],$Vy1=[39,47,48,193,242,246,250,263,265,272,290,297,298,299,300,301,302,338,341,342,343,344,345,346],$Vz1=[1,271],$VA1=[1,270],$VB1=[6,13,16,29,31,39,45,47,48,70,73,76,78,81,82,83,85,87,89,112,159,160,161,163,164,193,231,242,246,250,263,265,268,269,270,271,272,273,274,276,277,279,280,283,285,290,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,335,338,341,342,343,344,345,346,347,348,349,350,351],$VC1=[1,281],$VD1=[1,280],$VE1=[13,16,29,31,39,45,47,48,82,85,87,89,112,159,160,161,163,164,174,193,197,224,229,231,232,242,246,250,263,265,272,290,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,314,317,318,335,338,341,342,343,344,345,346],$VF1=[45,89],$VG1=[13,16,29,31,39,45,47,48,82,85,87,89,112,159,160,161,163,164,174,193,197,224,229,231,232,242,246,250,263,265,272,290,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,314,317,318,335,338,341,342,343,344,345,346],$VH1=[13,16,31,82,174,294,295,296,297,298,299,300,301,302,303,304,305,306,308,312],$VI1=[31,89],$VJ1=[48,87],$VK1=[6,13,16,45,48,82,87,89,231,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,337,338],$VL1=[6,13,16,39,45,48,82,87,89,231,263,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,337,338,340],$VM1=[1,313],$VN1=[6,85],$VO1=[6,31,81,83,85],$VP1=[2,361],$VQ1=[2,353],$VR1=[1,343],$VS1=[31,112,335],$VT1=[13,16,29,31,45,48,82,85,87,89,112,159,160,161,163,164,193,197,224,229,231,232,272,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,317,318,335],$VU1=[13,16,29,31,45,48,82,85,87,89,112,159,160,161,163,164,193,197,224,229,231,232,272,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,314,317,318,335],$VV1=[6,109,193],$VW1=[31,112],$VX1=[13,16,45,82,87,224,263,265,268,269,270,271,273,274,276,277,279,280,283,285,294,295,296,297,298,299,300,301,302,303,304,305,306,308,312,346,347,348,349,350,351],$VY1=[1,390],$VZ1=[1,391],$V_1=[13,16,87,197,308,314],$V$1=[13,16,39,45,82,87,224,263,265,268,269,270,271,273,274,276,277,279,280,283,285,294,295,296,297,298,299,300,301,302,303,304,305,306,308,312,346,347,348,349,350,351],$V02=[1,417],$V12=[1,418],$V22=[13,16,48,197,229,308],$V32=[6,31,85],$V42=[6,13,16,31,45,73,81,83,85,268,269,270,271,273,274,276,277,279,280,283,285,308,346,347,348,349,350,351],$V52=[6,13,16,29,31,45,73,76,78,81,82,83,85,87,89,112,159,160,161,163,164,231,268,269,270,271,273,274,276,277,279,280,283,285,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,335,346,347,348,349,350,351],$V62=[29,31,85,112,159,160,161,163,164],$V72=[1,443],$V82=[1,444],$V92=[1,449],$Va2=[31,112,193,232,318,335],$Vb2=[13,16,45,48,82,87,89,231,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312],$Vc2=[13,16,31,45,48,82,87,89,112,193,231,232,272,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,317,318,335],$Vd2=[13,16,29,31,45,48,82,85,87,89,112,159,160,161,163,164,193,231,232,272,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,317,318,335],$Ve2=[13,16,31,48,82,174,294,295,296,297,298,299,300,301,302,303,304,305,306,308,312],$Vf2=[31,45],$Vg2=[1,507],$Vh2=[1,508],$Vi2=[6,13,16,29,31,39,45,47,48,63,70,73,76,78,81,82,83,85,87,89,112,159,160,161,163,164,193,231,242,246,250,263,265,268,269,270,271,272,273,274,276,277,279,280,283,285,290,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,335,336,338,341,342,343,344,345,346,347,348,349,350,351],$Vj2=[29,31,85,112,159,160,161,163,164,335],$Vk2=[6,13,16,31,45,70,73,81,83,85,87,268,269,270,271,273,274,276,277,279,280,283,285,308,346,347,348,349,350,351],$Vl2=[13,16,31,45,48,82,87,89,112,193,197,231,232,272,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,317,318,335],$Vm2=[2,352],$Vn2=[13,16,197,308,314],$Vo2=[1,565],$Vp2=[6,13,16,31,45,76,78,81,83,85,87,268,269,270,271,273,274,276,277,279,280,283,285,308,346,347,348,349,350,351],$Vq2=[13,16,29,31,45,82,85,87,89,112,159,160,161,163,164,231,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312],$Vr2=[13,16,29,31,45,82,85,87,89,112,159,160,161,163,164,231,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,335],$Vs2=[13,16,87,308],$Vt2=[2,364],$Vu2=[29,31,85,112,159,160,161,163,164,193,232,318,335],$Vv2=[31,112,193,232,272,318,335],$Vw2=[2,359],$Vx2=[13,16,48,82,174,294,295,296,297,298,299,300,301,302,303,304,305,306,308,312],$Vy2=[29,31,85,112,159,160,161,163,164,193,232,272,318,335],$Vz2=[13,16,31,45,82,87,89,112,231,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312],$VA2=[2,347];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"QueryOrUpdate\":3,\"Prologue\":4,\"QueryOrUpdate_group0\":5,\"EOF\":6,\"Query\":7,\"Qry\":8,\"Query_option0\":9,\"Prologue_repetition0\":10,\"BaseDecl\":11,\"BASE\":12,\"IRIREF\":13,\"PrefixDecl\":14,\"PREFIX\":15,\"PNAME_NS\":16,\"SelectClauseWildcard\":17,\"Qry_repetition0\":18,\"WhereClause\":19,\"SolutionModifierNoGroup\":20,\"SelectClauseVars\":21,\"Qry_repetition1\":22,\"SolutionModifier\":23,\"CONSTRUCT\":24,\"ConstructTemplate\":25,\"Qry_repetition2\":26,\"Qry_repetition3\":27,\"WHERE\":28,\"{\":29,\"Qry_option0\":30,\"}\":31,\"DESCRIBE\":32,\"Qry_group0\":33,\"Qry_repetition4\":34,\"Qry_option1\":35,\"ASK\":36,\"Qry_repetition5\":37,\"SelectClauseBase\":38,\"*\":39,\"SelectClauseVars_repetition_plus0\":40,\"SELECT\":41,\"SelectClauseBase_option0\":42,\"SelectClauseItem\":43,\"Var\":44,\"(\":45,\"Expression\":46,\"AS\":47,\")\":48,\"SubSelect\":49,\"SubSelect_option0\":50,\"SubSelect_option1\":51,\"DatasetClause\":52,\"FROM\":53,\"DatasetClause_option0\":54,\"iri\":55,\"WhereClause_option0\":56,\"GroupGraphPattern\":57,\"SolutionModifier_option0\":58,\"SolutionModifierNoGroup_option0\":59,\"SolutionModifierNoGroup_option1\":60,\"SolutionModifierNoGroup_option2\":61,\"GroupClause\":62,\"GROUP\":63,\"BY\":64,\"GroupClause_repetition_plus0\":65,\"GroupCondition\":66,\"BuiltInCall\":67,\"FunctionCall\":68,\"HavingClause\":69,\"HAVING\":70,\"HavingClause_repetition_plus0\":71,\"OrderClause\":72,\"ORDER\":73,\"OrderClause_repetition_plus0\":74,\"OrderCondition\":75,\"ASC\":76,\"BrackettedExpression\":77,\"DESC\":78,\"Constraint\":79,\"LimitOffsetClauses\":80,\"LIMIT\":81,\"INTEGER\":82,\"OFFSET\":83,\"ValuesClause\":84,\"VALUES\":85,\"InlineData\":86,\"VAR\":87,\"InlineData_repetition0\":88,\"NIL\":89,\"InlineData_repetition1\":90,\"InlineData_repetition_plus2\":91,\"InlineData_repetition3\":92,\"DataBlock\":93,\"DataBlockValueList\":94,\"DataBlockValueList_repetition_plus0\":95,\"Update\":96,\"Update_repetition0\":97,\"Update1\":98,\"Update_option0\":99,\"LOAD\":100,\"Update1_option0\":101,\"Update1_option1\":102,\"Update1_group0\":103,\"Update1_option2\":104,\"GraphRefAll\":105,\"Update1_group1\":106,\"Update1_option3\":107,\"GraphOrDefault\":108,\"TO\":109,\"CREATE\":110,\"Update1_option4\":111,\"GRAPH\":112,\"INSERTDATA\":113,\"QuadPattern\":114,\"DELETEDATA\":115,\"DELETEWHERE\":116,\"Update1_option5\":117,\"InsertDeleteClause\":118,\"Update1_repetition0\":119,\"IntoGraphClause\":120,\"INTO\":121,\"GraphRef\":122,\"DELETE\":123,\"InsertDeleteClause_option0\":124,\"InsertClause\":125,\"INSERT\":126,\"UsingClause\":127,\"USING\":128,\"UsingClause_option0\":129,\"WithClause\":130,\"WITH\":131,\"DEFAULT\":132,\"GraphOrDefault_option0\":133,\"GraphRefAll_group0\":134,\"Quads\":135,\"Quads_option0\":136,\"Quads_repetition0\":137,\"QuadsNotTriples\":138,\"VarOrIri\":139,\"QuadsNotTriples_option0\":140,\"QuadsNotTriples_option1\":141,\"QuadsNotTriples_option2\":142,\"TriplesTemplate\":143,\"TriplesTemplate_repetition0\":144,\"TriplesSameSubject\":145,\"TriplesTemplate_option0\":146,\"GroupGraphPatternSub\":147,\"GroupGraphPatternSub_option0\":148,\"GroupGraphPatternSub_repetition0\":149,\"GroupGraphPatternSubTail\":150,\"GraphPatternNotTriples\":151,\"GroupGraphPatternSubTail_option0\":152,\"GroupGraphPatternSubTail_option1\":153,\"TriplesBlock\":154,\"TriplesBlock_repetition0\":155,\"TriplesSameSubjectPath\":156,\"TriplesBlock_option0\":157,\"GroupOrUnionGraphPattern\":158,\"OPTIONAL\":159,\"MINUS\":160,\"SERVICE\":161,\"GraphPatternNotTriples_option0\":162,\"FILTER\":163,\"BIND\":164,\"InlineDataOneVar\":165,\"InlineDataFull\":166,\"InlineDataOneVar_repetition0\":167,\"InlineDataFull_repetition0\":168,\"InlineDataFull_repetition_plus1\":169,\"InlineDataFull_repetition2\":170,\"DataBlockValue\":171,\"Literal\":172,\"QuotedTriple\":173,\"UNDEF\":174,\"GroupOrUnionGraphPattern_repetition0\":175,\"ArgList\":176,\"ArgList_option0\":177,\"ArgList_repetition0\":178,\"ExpressionList\":179,\"ExpressionList_repetition0\":180,\"ConstructTemplate_option0\":181,\"ConstructTriples\":182,\"ConstructTriples_repetition0\":183,\"ConstructTriples_option0\":184,\"VarOrTermOrQuotedTP\":185,\"PropertyListNotEmpty\":186,\"TriplesNode\":187,\"PropertyList\":188,\"PropertyList_option0\":189,\"VerbObjectList\":190,\"PropertyListNotEmpty_repetition0\":191,\"SemiOptionalVerbObjectList\":192,\";\":193,\"SemiOptionalVerbObjectList_option0\":194,\"Verb\":195,\"ObjectList\":196,\"a\":197,\"ObjectList_repetition0\":198,\"Object\":199,\"GraphNode\":200,\"Object_option0\":201,\"PropertyListPathNotEmpty\":202,\"TriplesNodePath\":203,\"TriplesSameSubjectPath_option0\":204,\"O\":205,\"PropertyListPathNotEmpty_repetition0\":206,\"PropertyListPathNotEmptyTail\":207,\"O_group0\":208,\"ObjectListPath\":209,\"ObjectListPath_repetition0\":210,\"ObjectPath\":211,\"GraphNodePath\":212,\"ObjectPath_option0\":213,\"Path\":214,\"Path_repetition0\":215,\"PathSequence\":216,\"PathSequence_repetition0\":217,\"PathEltOrInverse\":218,\"PathElt\":219,\"PathPrimary\":220,\"PathElt_option0\":221,\"PathEltOrInverse_option0\":222,\"IriOrA\":223,\"!\":224,\"PathNegatedPropertySet\":225,\"PathOneInPropertySet\":226,\"PathNegatedPropertySet_repetition0\":227,\"PathNegatedPropertySet_option0\":228,\"^\":229,\"TriplesNode_repetition_plus0\":230,\"[\":231,\"]\":232,\"TriplesNodePath_repetition_plus0\":233,\"VarOrTermOrQuotedTPExpr\":234,\"VarOrTerm\":235,\"GraphTerm\":236,\"BlankNode\":237,\"ConditionalOrExpression\":238,\"ConditionalAndExpression\":239,\"ConditionalOrExpression_repetition0\":240,\"ConditionalOrExpressionTail\":241,\"||\":242,\"RelationalExpression\":243,\"ConditionalAndExpression_repetition0\":244,\"ConditionalAndExpressionTail\":245,\"&&\":246,\"NumericExpression\":247,\"RelationalExpression_group0\":248,\"RelationalExpression_option0\":249,\"IN\":250,\"MultiplicativeExpression\":251,\"NumericExpression_repetition0\":252,\"AdditiveExpressionTail\":253,\"AdditiveExpressionTail_group0\":254,\"NumericLiteralPositive\":255,\"AdditiveExpressionTail_repetition0\":256,\"NumericLiteralNegative\":257,\"AdditiveExpressionTail_repetition1\":258,\"UnaryExpression\":259,\"MultiplicativeExpression_repetition0\":260,\"MultiplicativeExpressionTail\":261,\"MultiplicativeExpressionTail_group0\":262,\"+\":263,\"PrimaryExpression\":264,\"-\":265,\"ExprQuotedTP\":266,\"Aggregate\":267,\"FUNC_ARITY0\":268,\"FUNC_ARITY1\":269,\"FUNC_ARITY1_SPARQL_STAR\":270,\"FUNC_ARITY2\":271,\",\":272,\"FUNC_ARITY3\":273,\"FUNC_ARITY3_SPARQL_STAR\":274,\"BuiltInCall_group0\":275,\"BOUND\":276,\"BNODE\":277,\"BuiltInCall_option0\":278,\"EXISTS\":279,\"COUNT\":280,\"Aggregate_option0\":281,\"Aggregate_group0\":282,\"FUNC_AGGREGATE\":283,\"Aggregate_option1\":284,\"GROUP_CONCAT\":285,\"Aggregate_option2\":286,\"Aggregate_option3\":287,\"GroupConcatSeparator\":288,\"SEPARATOR\":289,\"=\":290,\"String\":291,\"LANGTAG\":292,\"^^\":293,\"DECIMAL\":294,\"DOUBLE\":295,\"BOOLEAN\":296,\"INTEGER_POSITIVE\":297,\"DECIMAL_POSITIVE\":298,\"DOUBLE_POSITIVE\":299,\"INTEGER_NEGATIVE\":300,\"DECIMAL_NEGATIVE\":301,\"DOUBLE_NEGATIVE\":302,\"STRING_LITERAL1\":303,\"STRING_LITERAL2\":304,\"STRING_LITERAL_LONG1\":305,\"STRING_LITERAL_LONG2\":306,\"PrefixedName\":307,\"PNAME_LN\":308,\"BLANK_NODE_LABEL\":309,\"ANON\":310,\"QuotedTP\":311,\"<<\":312,\"qtSubjectOrObject\":313,\">>\":314,\"DataValueTerm\":315,\"AnnotationPattern\":316,\"{|\":317,\"|}\":318,\"AnnotationPatternPath\":319,\"ExprVarOrTerm\":320,\"QueryOrUpdate_group0_option0\":321,\"Prologue_repetition0_group0\":322,\"Qry_group0_repetition_plus0\":323,\"SelectClauseBase_option0_group0\":324,\"DISTINCT\":325,\"REDUCED\":326,\"NAMED\":327,\"SILENT\":328,\"CLEAR\":329,\"DROP\":330,\"ADD\":331,\"MOVE\":332,\"COPY\":333,\"ALL\":334,\".\":335,\"UNION\":336,\"|\":337,\"/\":338,\"PathElt_option0_group0\":339,\"?\":340,\"!=\":341,\"<\":342,\">\":343,\"<=\":344,\">=\":345,\"NOT\":346,\"CONCAT\":347,\"COALESCE\":348,\"SUBSTR\":349,\"REGEX\":350,\"REPLACE\":351,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",6:\"EOF\",12:\"BASE\",13:\"IRIREF\",15:\"PREFIX\",16:\"PNAME_NS\",24:\"CONSTRUCT\",28:\"WHERE\",29:\"{\",31:\"}\",32:\"DESCRIBE\",36:\"ASK\",39:\"*\",41:\"SELECT\",45:\"(\",47:\"AS\",48:\")\",53:\"FROM\",63:\"GROUP\",64:\"BY\",70:\"HAVING\",73:\"ORDER\",76:\"ASC\",78:\"DESC\",81:\"LIMIT\",82:\"INTEGER\",83:\"OFFSET\",85:\"VALUES\",87:\"VAR\",89:\"NIL\",100:\"LOAD\",109:\"TO\",110:\"CREATE\",112:\"GRAPH\",113:\"INSERTDATA\",115:\"DELETEDATA\",116:\"DELETEWHERE\",121:\"INTO\",123:\"DELETE\",126:\"INSERT\",128:\"USING\",131:\"WITH\",132:\"DEFAULT\",159:\"OPTIONAL\",160:\"MINUS\",161:\"SERVICE\",163:\"FILTER\",164:\"BIND\",174:\"UNDEF\",193:\";\",197:\"a\",224:\"!\",229:\"^\",231:\"[\",232:\"]\",242:\"||\",246:\"&&\",250:\"IN\",263:\"+\",265:\"-\",268:\"FUNC_ARITY0\",269:\"FUNC_ARITY1\",270:\"FUNC_ARITY1_SPARQL_STAR\",271:\"FUNC_ARITY2\",272:\",\",273:\"FUNC_ARITY3\",274:\"FUNC_ARITY3_SPARQL_STAR\",276:\"BOUND\",277:\"BNODE\",279:\"EXISTS\",280:\"COUNT\",283:\"FUNC_AGGREGATE\",285:\"GROUP_CONCAT\",289:\"SEPARATOR\",290:\"=\",292:\"LANGTAG\",293:\"^^\",294:\"DECIMAL\",295:\"DOUBLE\",296:\"BOOLEAN\",297:\"INTEGER_POSITIVE\",298:\"DECIMAL_POSITIVE\",299:\"DOUBLE_POSITIVE\",300:\"INTEGER_NEGATIVE\",301:\"DECIMAL_NEGATIVE\",302:\"DOUBLE_NEGATIVE\",303:\"STRING_LITERAL1\",304:\"STRING_LITERAL2\",305:\"STRING_LITERAL_LONG1\",306:\"STRING_LITERAL_LONG2\",308:\"PNAME_LN\",309:\"BLANK_NODE_LABEL\",310:\"ANON\",312:\"<<\",314:\">>\",317:\"{|\",318:\"|}\",325:\"DISTINCT\",326:\"REDUCED\",327:\"NAMED\",328:\"SILENT\",329:\"CLEAR\",330:\"DROP\",331:\"ADD\",332:\"MOVE\",333:\"COPY\",334:\"ALL\",335:\".\",336:\"UNION\",337:\"|\",338:\"/\",340:\"?\",341:\"!=\",342:\"<\",343:\">\",344:\"<=\",345:\">=\",346:\"NOT\",347:\"CONCAT\",348:\"COALESCE\",349:\"SUBSTR\",350:\"REGEX\",351:\"REPLACE\"},\nproductions_: [0,[3,3],[7,2],[4,1],[11,2],[14,3],[8,4],[8,4],[8,5],[8,7],[8,5],[8,4],[17,2],[21,2],[38,2],[43,1],[43,5],[49,4],[49,4],[52,3],[19,2],[23,2],[20,3],[62,3],[66,1],[66,1],[66,3],[66,5],[66,1],[69,2],[72,3],[75,2],[75,2],[75,1],[75,1],[80,2],[80,2],[80,4],[80,4],[84,2],[86,4],[86,4],[86,6],[86,2],[94,3],[96,3],[98,4],[98,3],[98,5],[98,4],[98,2],[98,2],[98,2],[98,5],[120,2],[118,3],[118,1],[125,2],[127,3],[130,2],[108,1],[108,2],[122,2],[105,1],[105,1],[114,3],[135,2],[138,7],[143,3],[57,3],[57,3],[147,2],[150,3],[154,3],[151,1],[151,2],[151,2],[151,3],[151,4],[151,2],[151,6],[151,1],[93,1],[93,1],[165,4],[166,4],[166,6],[171,1],[171,1],[171,1],[171,1],[158,2],[79,1],[79,1],[79,1],[68,2],[176,1],[176,5],[179,1],[179,4],[25,3],[182,3],[145,2],[145,2],[188,1],[186,2],[192,2],[190,2],[195,1],[195,1],[196,2],[199,2],[156,2],[156,2],[202,2],[207,1],[207,2],[205,2],[209,2],[211,2],[214,2],[216,2],[219,2],[218,2],[220,1],[220,2],[220,3],[225,1],[225,1],[225,4],[226,1],[226,2],[187,3],[187,3],[203,3],[203,3],[200,1],[200,1],[212,1],[212,1],[234,1],[235,1],[235,1],[139,1],[139,1],[44,1],[236,1],[236,1],[236,1],[236,1],[46,1],[238,2],[241,2],[239,2],[245,2],[243,1],[243,3],[243,4],[247,2],[253,2],[253,2],[253,2],[251,2],[261,2],[259,2],[259,2],[259,2],[259,1],[264,1],[264,1],[264,1],[264,1],[264,1],[264,1],[264,1],[77,3],[67,1],[67,2],[67,4],[67,4],[67,6],[67,8],[67,8],[67,2],[67,4],[67,2],[67,4],[67,3],[267,5],[267,5],[267,6],[288,4],[172,1],[172,2],[172,3],[172,1],[172,1],[172,1],[172,1],[172,1],[172,1],[255,1],[255,1],[255,1],[257,1],[257,1],[257,1],[291,1],[291,1],[291,1],[291,1],[55,1],[55,1],[307,1],[307,1],[237,1],[237,1],[311,5],[173,5],[313,1],[313,1],[313,1],[313,1],[313,1],[315,1],[315,1],[315,1],[185,1],[185,1],[185,1],[316,3],[319,3],[266,5],[320,1],[320,1],[320,1],[223,1],[223,1],[321,0],[321,1],[5,1],[5,1],[5,1],[9,0],[9,1],[322,1],[322,1],[10,0],[10,2],[18,0],[18,2],[22,0],[22,2],[26,0],[26,2],[27,0],[27,2],[30,0],[30,1],[323,1],[323,2],[33,1],[33,1],[34,0],[34,2],[35,0],[35,1],[37,0],[37,2],[40,1],[40,2],[324,1],[324,1],[42,0],[42,1],[50,0],[50,1],[51,0],[51,1],[54,0],[54,1],[56,0],[56,1],[58,0],[58,1],[59,0],[59,1],[60,0],[60,1],[61,0],[61,1],[65,1],[65,2],[71,1],[71,2],[74,1],[74,2],[88,0],[88,2],[90,0],[90,2],[91,1],[91,2],[92,0],[92,2],[95,1],[95,2],[97,0],[97,4],[99,0],[99,2],[101,0],[101,1],[102,0],[102,1],[103,1],[103,1],[104,0],[104,1],[106,1],[106,1],[106,1],[107,0],[107,1],[111,0],[111,1],[117,0],[117,1],[119,0],[119,2],[124,0],[124,1],[129,0],[129,1],[133,0],[133,1],[134,1],[134,1],[134,1],[136,0],[136,1],[137,0],[137,2],[140,0],[140,1],[141,0],[141,1],[142,0],[142,1],[144,0],[144,3],[146,0],[146,1],[148,0],[148,1],[149,0],[149,2],[152,0],[152,1],[153,0],[153,1],[155,0],[155,3],[157,0],[157,1],[162,0],[162,1],[167,0],[167,2],[168,0],[168,2],[169,1],[169,2],[170,0],[170,2],[175,0],[175,3],[177,0],[177,1],[178,0],[178,3],[180,0],[180,3],[181,0],[181,1],[183,0],[183,3],[184,0],[184,1],[189,0],[189,1],[191,0],[191,2],[194,0],[194,1],[198,0],[198,3],[201,0],[201,1],[204,0],[204,1],[206,0],[206,2],[208,1],[208,1],[210,0],[210,3],[213,0],[213,1],[215,0],[215,3],[217,0],[217,3],[339,1],[339,1],[339,1],[221,0],[221,1],[222,0],[222,1],[227,0],[227,3],[228,0],[228,1],[230,1],[230,2],[233,1],[233,2],[240,0],[240,2],[244,0],[244,2],[248,1],[248,1],[248,1],[248,1],[248,1],[248,1],[249,0],[249,1],[252,0],[252,2],[254,1],[254,1],[256,0],[256,2],[258,0],[258,2],[260,0],[260,2],[262,1],[262,1],[275,1],[275,1],[275,1],[275,1],[275,1],[278,0],[278,1],[281,0],[281,1],[282,1],[282,1],[284,0],[284,1],[286,0],[286,1],[287,0],[287,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\n\n      // Set parser options\n      $$[$0-1] = $$[$0-1] || {};\n      if (Parser.base)\n        $$[$0-1].base = Parser.base;\n      Parser.base = '';\n      $$[$0-1].prefixes = Parser.prefixes;\n      Parser.prefixes = null;\n\n      if (Parser.pathOnly) {\n        if ($$[$0-1].type === 'path' || 'termType' in $$[$0-1]) {\n          return $$[$0-1]\n        }\n        throw new Error('Received full SPARQL query in path only mode');\n      } else if ($$[$0-1].type === 'path' || 'termType' in $$[$0-1]) {\n        throw new Error('Received only path in full SPARQL mode');\n      }\n\n      // Ensure that blank nodes are not used across INSERT DATA clauses\n      if ($$[$0-1].type === 'update') {\n        const insertBnodesAll = {};\n        for (const update of $$[$0-1].updates) {\n          if (update.updateType === 'insert') {\n            // Collect bnodes for current insert clause\n            const insertBnodes = {};\n            for (const operation of update.insert) {\n              if (operation.type === 'bgp' || operation.type === 'graph') {\n                for (const triple of operation.triples) {\n                  if (triple.subject.termType === 'BlankNode')\n                    insertBnodes[triple.subject.value] = true;\n                  if (triple.predicate.termType === 'BlankNode')\n                    insertBnodes[triple.predicate.value] = true;\n                  if (triple.object.termType === 'BlankNode')\n                    insertBnodes[triple.object.value] = true;\n                }\n              }\n            }\n\n            // Check if the inserting bnodes don't clash with bnodes from a previous insert clause\n            for (const bnode of Object.keys(insertBnodes)) {\n              if (insertBnodesAll[bnode]) {\n                throw new Error('Detected reuse blank node across different INSERT DATA clauses');\n              }\n              insertBnodesAll[bnode] = true;\n            }\n          }\n        }\n      }\n      return $$[$0-1];\n    \nbreak;\ncase 2:\nthis.$ = { ...$$[$0-1], ...$$[$0], type: 'query' };\nbreak;\ncase 4:\n\n      Parser.base = resolveIRI($$[$0])\n    \nbreak;\ncase 5:\n\n      if (!Parser.prefixes) Parser.prefixes = {};\n      $$[$0-1] = $$[$0-1].substr(0, $$[$0-1].length - 1);\n      $$[$0] = resolveIRI($$[$0]);\n      Parser.prefixes[$$[$0-1]] = $$[$0];\n    \nbreak;\ncase 6:\nthis.$ = { ...$$[$0-3], ...groupDatasets($$[$0-2]), ...$$[$0-1], ...$$[$0] };\nbreak;\ncase 7:\n\n      // Check for projection of ungrouped variable\n      if (!Parser.skipValidation) {\n        const counts = flatten($$[$0-3].variables.map(vars => getAggregatesOfExpression(vars.expression)))\n          .some(agg => agg.aggregation === \"count\" && !(agg.expression instanceof Wildcard));\n        if (counts || $$[$0].group) {\n          for (const selectVar of $$[$0-3].variables) {\n            if (selectVar.termType === \"Variable\") {\n              if (!$$[$0].group || !$$[$0].group.map(groupVar => getExpressionId(groupVar)).includes(getExpressionId(selectVar))) {\n                throw Error(\"Projection of ungrouped variable (?\" + getExpressionId(selectVar) + \")\");\n              }\n            } else if (getAggregatesOfExpression(selectVar.expression).length === 0) {\n              const usedVars = getVariablesFromExpression(selectVar.expression);\n              for (const usedVar of usedVars) {\n                if (!$$[$0].group || !$$[$0].group.map || !$$[$0].group.map(groupVar => getExpressionId(groupVar)).includes(getExpressionId(usedVar))) {\n                  throw Error(\"Use of ungrouped variable in projection of operation (?\" + getExpressionId(usedVar) + \")\");\n                }\n              }\n            }\n          }\n        }\n      }\n      // Check if id of each AS-selected column is not yet bound by subquery\n      const subqueries = $$[$0-1].where.filter(w => w.type === \"query\");\n      if (subqueries.length > 0) {\n        const selectedVarIds = $$[$0-3].variables.filter(v => v.variable && v.variable.value).map(v => v.variable.value);\n        const subqueryIds = flatten(subqueries.map(sub => sub.variables)).map(v => v.value || v.variable.value);\n        for (const selectedVarId of selectedVarIds) {\n          if (subqueryIds.indexOf(selectedVarId) >= 0) {\n            throw Error(\"Target id of 'AS' (?\" + selectedVarId + \") already used in subquery\");\n          }\n        }\n      }\n      this.$ = extend($$[$0-3], groupDatasets($$[$0-2]), $$[$0-1], $$[$0])\n    \nbreak;\ncase 8:\nthis.$ = extend({ queryType: 'CONSTRUCT', template: $$[$0-3] }, groupDatasets($$[$0-2]), $$[$0-1], $$[$0]);\nbreak;\ncase 9:\nthis.$ = extend({ queryType: 'CONSTRUCT', template: $$[$0-2] = ($$[$0-2] ? $$[$0-2].triples : []) }, groupDatasets($$[$0-5]), { where: [ { type: 'bgp', triples: appendAllTo([], $$[$0-2]) } ] }, $$[$0]);\nbreak;\ncase 10:\nthis.$ = extend({ queryType: 'DESCRIBE', variables: $$[$0-3] === '*' ? [new Wildcard()] : $$[$0-3] }, groupDatasets($$[$0-2]), $$[$0-1], $$[$0]);\nbreak;\ncase 11:\nthis.$ = extend({ queryType: 'ASK' }, groupDatasets($$[$0-2]), $$[$0-1], $$[$0]);\nbreak;\ncase 12:\nthis.$ = extend($$[$0-1], {variables: [new Wildcard()]});\nbreak;\ncase 13:\n\n      // Check if id of each selected column is different\n      const selectedVarIds = $$[$0].map(v => v.value || v.variable.value);\n      const duplicates = getDuplicatesInArray(selectedVarIds);\n      if (duplicates.length > 0) {\n        throw Error(\"Two or more of the resulting columns have the same name (?\" + duplicates[0] + \")\");\n      }\n\n      this.$ = extend($$[$0-1], { variables: $$[$0] })\n    \nbreak;\ncase 14:\nthis.$ = extend({ queryType: 'SELECT'}, $$[$0] && ($$[$0-1] = lowercase($$[$0]), $$[$0] = {}, $$[$0][$$[$0-1]] = true, $$[$0]));\nbreak;\ncase 16: case 27:\nthis.$ = expression($$[$0-3], { variable: $$[$0-1] });\nbreak;\ncase 17: case 18:\nthis.$ = extend($$[$0-3], $$[$0-2], $$[$0-1], $$[$0], { type: 'query' });\nbreak;\ncase 19: case 58:\nthis.$ = { iri: $$[$0], named: !!$$[$0-1] };\nbreak;\ncase 20:\nthis.$ = { where: $$[$0].patterns };\nbreak;\ncase 21:\nthis.$ = extend($$[$0-1], $$[$0]);\nbreak;\ncase 22:\nthis.$ = extend($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 23:\nthis.$ = { group: $$[$0] };\nbreak;\ncase 24: case 25: case 28: case 31: case 33: case 34:\nthis.$ = expression($$[$0]);\nbreak;\ncase 26:\nthis.$ = expression($$[$0-1]);\nbreak;\ncase 29:\nthis.$ = { having: $$[$0] };\nbreak;\ncase 30:\nthis.$ = { order: $$[$0] };\nbreak;\ncase 32:\nthis.$ = expression($$[$0], { descending: true });\nbreak;\ncase 35:\nthis.$ = { limit: toInt($$[$0]) };\nbreak;\ncase 36:\nthis.$ = { offset: toInt($$[$0]) };\nbreak;\ncase 37:\nthis.$ = { limit: toInt($$[$0-2]), offset: toInt($$[$0]) };\nbreak;\ncase 38:\nthis.$ = { limit: toInt($$[$0]), offset: toInt($$[$0-2]) };\nbreak;\ncase 39: case 43:\nthis.$ = { type: 'values', values: $$[$0] };\nbreak;\ncase 40: case 84:\nthis.$ = $$[$0-1].map(v => ({ [$$[$0-3]]: v }));\nbreak;\ncase 41: case 85:\nthis.$ = $$[$0-1].map(() => ({}));\nbreak;\ncase 42: case 86:\n\n      var length = $$[$0-4].length;\n      $$[$0-4] = $$[$0-4].map(toVar);\n      this.$ = $$[$0-1].map(function (values) {\n        if (values.length !== length)\n          throw Error('Inconsistent VALUES length');\n        var valuesObject = {};\n        for(var i = 0; i<length; i++)\n          valuesObject['?' + $$[$0-4][i].value] = values[i];\n        return valuesObject;\n      });\n    \nbreak;\ncase 44: case 65: case 100: case 126: case 175:\nthis.$ = $$[$0-1];\nbreak;\ncase 45:\nthis.$ = { type: 'update', updates: appendTo($$[$0-2], $$[$0-1]) };\nbreak;\ncase 46:\nthis.$ = extend({ type: 'load', silent: !!$$[$0-2], source: $$[$0-1] }, $$[$0] && { destination: $$[$0] });\nbreak;\ncase 47:\nthis.$ = { type: lowercase($$[$0-2]), silent: !!$$[$0-1], graph: $$[$0] };\nbreak;\ncase 48:\nthis.$ = { type: lowercase($$[$0-4]), silent: !!$$[$0-3], source: $$[$0-2], destination: $$[$0] };\nbreak;\ncase 49:\nthis.$ = { type: 'create', silent: !!$$[$0-2], graph: { type: 'graph', name: $$[$0] } };\nbreak;\ncase 50:\nthis.$ = { updateType: 'insert',      insert: ensureNoVariables($$[$0])                 };\nbreak;\ncase 51:\nthis.$ = { updateType: 'delete',      delete: ensureNoBnodes(ensureNoVariables($$[$0])) };\nbreak;\ncase 52:\nthis.$ = { updateType: 'deletewhere', delete: ensureNoBnodes($$[$0])                    };\nbreak;\ncase 53:\nthis.$ = { updateType: 'insertdelete', ...$$[$0-4], ...$$[$0-3], ...groupDatasets($$[$0-2], 'using'), where: $$[$0].patterns };\nbreak;\ncase 54: case 57: case 62: case 167: case 191: case 236:\nthis.$ = $$[$0];\nbreak;\ncase 55:\nthis.$ = { delete: ensureNoBnodes($$[$0-1]), insert: $$[$0] || [] };\nbreak;\ncase 56:\nthis.$ = { delete: [], insert: $$[$0] };\nbreak;\ncase 59:\nthis.$ = { graph: $$[$0] };\nbreak;\ncase 60:\nthis.$ = { type: 'graph', default: true };\nbreak;\ncase 61: case 63:\nthis.$ = { type: 'graph', name: $$[$0] };\nbreak;\ncase 64:\nthis.$ = { [lowercase($$[$0])]: true };\nbreak;\ncase 66:\nthis.$ = $$[$0-1] ? unionAll($$[$0], [$$[$0-1]]) : unionAll($$[$0]);\nbreak;\ncase 67:\n\n      var graph = extend($$[$0-3] || { triples: [] }, { type: 'graph', name: $$[$0-5] });\n      this.$ = $$[$0] ? [graph, $$[$0]] : [graph];\n    \nbreak;\ncase 68: case 73:\nthis.$ = { type: 'bgp', triples: unionAll($$[$0-2], [$$[$0-1]]) };\nbreak;\ncase 69:\nthis.$ = { type: 'group', patterns: [ $$[$0-1] ] };\nbreak;\ncase 70:\n\n      // For every binding\n      for (const binding of $$[$0-1].filter(el => el.type === \"bind\")) {\n        const index = $$[$0-1].indexOf(binding);\n        const boundVars = new Set();\n        //Collect all bounded variables before the binding\n        for (const el of $$[$0-1].slice(0, index)) {\n          if (el.type === \"group\" || el.type === \"bgp\") {\n            getBoundVarsFromGroupGraphPattern(el).forEach(boundVar => boundVars.add(boundVar));\n          }\n        }\n        // If binding with a non-free variable, throw error\n        if (boundVars.has(binding.variable.value)) {\n          throw Error(\"Variable used to bind is already bound (?\" + binding.variable.value + \")\");\n        }\n      }\n      this.$ = { type: 'group', patterns: $$[$0-1] }\n    \nbreak;\ncase 71:\nthis.$ = $$[$0-1] ? unionAll([$$[$0-1]], $$[$0]) : unionAll($$[$0]);\nbreak;\ncase 72:\nthis.$ = $$[$0] ? [$$[$0-2], $$[$0]] : $$[$0-2];\nbreak;\ncase 75:\nthis.$ = extend($$[$0], { type: 'optional' });\nbreak;\ncase 76:\nthis.$ = extend($$[$0], { type: 'minus' });\nbreak;\ncase 77:\nthis.$ = extend($$[$0], { type: 'graph', name: $$[$0-1] });\nbreak;\ncase 78:\nthis.$ = extend($$[$0], { type: 'service', name: $$[$0-1], silent: !!$$[$0-2] });\nbreak;\ncase 79:\nthis.$ = { type: 'filter', expression: $$[$0] };\nbreak;\ncase 80:\nthis.$ = { type: 'bind', variable: $$[$0-1], expression: $$[$0-3] };\nbreak;\ncase 89:\nthis.$ = ensureSparqlStar($$[$0]);\nbreak;\ncase 90:\nthis.$ = undefined;\nbreak;\ncase 91:\nthis.$ = $$[$0-1].length ? { type: 'union', patterns: unionAll($$[$0-1].map(degroupSingle), [degroupSingle($$[$0])]) } : $$[$0];\nbreak;\ncase 95:\nthis.$ = { ...$$[$0], function: $$[$0-1] };\nbreak;\ncase 96:\nthis.$ = { type: 'functionCall', args: [] };\nbreak;\ncase 97:\nthis.$ = { type: 'functionCall', args: appendTo($$[$0-2], $$[$0-1]), distinct: !!$$[$0-3] };\nbreak;\ncase 98: case 115: case 128: case 247: case 249: case 251: case 253: case 255: case 263: case 267: case 297: case 299: case 303: case 307: case 328: case 341: case 349: case 355: case 361: case 367: case 369: case 373: case 375: case 379: case 381: case 385: case 391: case 395: case 401: case 405: case 409: case 411: case 420: case 428: case 430: case 440: case 444: case 446: case 448:\nthis.$ = [];\nbreak;\ncase 99:\nthis.$ = appendTo($$[$0-2], $$[$0-1]);\nbreak;\ncase 101:\nthis.$ = unionAll($$[$0-2], [$$[$0-1]]);\nbreak;\ncase 102: case 112:\nthis.$ = applyAnnotations($$[$0].map(t => extend(triple($$[$0-1]), t)));\nbreak;\ncase 103:\nthis.$ = applyAnnotations(appendAllTo($$[$0].map(t => extend(triple($$[$0-1].entity), t)), $$[$0-1].triples)) /* the subject is a blank node, possibly with more triples */;\nbreak;\ncase 105:\nthis.$ = unionAll([$$[$0-1]], $$[$0]);\nbreak;\ncase 106:\nthis.$ = unionAll($$[$0]);\nbreak;\ncase 107:\nthis.$ = objectListToTriples($$[$0-1], $$[$0]);\nbreak;\ncase 109: case 237:\nthis.$ = Parser.factory.namedNode(RDF_TYPE);\nbreak;\ncase 110: case 118:\nthis.$ = appendTo($$[$0-1], $$[$0]);\nbreak;\ncase 111:\nthis.$ = $$[$0] ? { annotation: $$[$0], object: $$[$0-1] } : $$[$0-1];\nbreak;\ncase 113:\nthis.$ = !$$[$0] ? $$[$0-1].triples : applyAnnotations(appendAllTo($$[$0].map(t => extend(triple($$[$0-1].entity), t)), $$[$0-1].triples)) /* the subject is a blank node, possibly with more triples */;\nbreak;\ncase 114:\nthis.$ = objectListToTriples(...$$[$0-1], $$[$0]);\nbreak;\ncase 116:\nthis.$ = objectListToTriples(...$$[$0]);\nbreak;\ncase 117: case 159: case 163:\nthis.$ = [$$[$0-1], $$[$0]];\nbreak;\ncase 119:\nthis.$ = $$[$0] ? { object: $$[$0-1], annotation: $$[$0] } : $$[$0-1];;\nbreak;\ncase 120:\nthis.$ = $$[$0-1].length ? path('|',appendTo($$[$0-1], $$[$0])) : $$[$0];\nbreak;\ncase 121:\nthis.$ = $$[$0-1].length ? path('/', appendTo($$[$0-1], $$[$0])) : $$[$0];\nbreak;\ncase 122:\nthis.$ = $$[$0] ? path($$[$0], [$$[$0-1]]) : $$[$0-1];\nbreak;\ncase 123:\nthis.$ = $$[$0-1] ? path($$[$0-1], [$$[$0]]) : $$[$0];;\nbreak;\ncase 125: case 131:\nthis.$ = path($$[$0-1], [$$[$0]]);\nbreak;\ncase 129:\nthis.$ = path('|', appendTo($$[$0-2], $$[$0-1]));\nbreak;\ncase 132: case 134:\nthis.$ = createList($$[$0-1]);\nbreak;\ncase 133: case 135:\nthis.$ = createAnonymousObject($$[$0-1]);\nbreak;\ncase 140:\nthis.$ = { entity: $$[$0], triples: [] };\nbreak;\ncase 145:\nthis.$ = toVar($$[$0]);\nbreak;\ncase 149:\nthis.$ = Parser.factory.namedNode(RDF_NIL);\nbreak;\ncase 151: case 153: case 158: case 162:\nthis.$ = createOperationTree($$[$0-1], $$[$0]);\nbreak;\ncase 152:\nthis.$ = ['||', $$[$0]];\nbreak;\ncase 154:\nthis.$ = ['&&', $$[$0]];\nbreak;\ncase 156:\nthis.$ = operation($$[$0-1], [$$[$0-2], $$[$0]]);\nbreak;\ncase 157:\nthis.$ = operation($$[$0-2] ? 'notin' : 'in', [$$[$0-3], $$[$0]]);\nbreak;\ncase 160:\nthis.$ = ['+', createOperationTree($$[$0-1], $$[$0])];\nbreak;\ncase 161:\n\n      var negatedLiteral = createTypedLiteral($$[$0-1].value.replace('-', ''), $$[$0-1].datatype);\n      this.$ = ['-', createOperationTree(negatedLiteral, $$[$0])];\n    \nbreak;\ncase 164:\nthis.$ = operation('UPLUS', [$$[$0]]);\nbreak;\ncase 165:\nthis.$ = operation($$[$0-1], [$$[$0]]);\nbreak;\ncase 166:\nthis.$ = operation('UMINUS', [$$[$0]]);\nbreak;\ncase 177:\nthis.$ = operation(lowercase($$[$0-1]));\nbreak;\ncase 178:\nthis.$ = operation(lowercase($$[$0-3]), [$$[$0-1]]);\nbreak;\ncase 179:\nthis.$ = ensureSparqlStar(operation(lowercase($$[$0-3]), [$$[$0-1]]));\nbreak;\ncase 180:\nthis.$ = operation(lowercase($$[$0-5]), [$$[$0-3], $$[$0-1]]);\nbreak;\ncase 181:\nthis.$ = operation(lowercase($$[$0-7]), [$$[$0-5], $$[$0-3], $$[$0-1]]);\nbreak;\ncase 182:\nthis.$ = ensureSparqlStar(operation(lowercase($$[$0-7]), [$$[$0-5], $$[$0-3], $$[$0-1]]));\nbreak;\ncase 183:\nthis.$ = operation(lowercase($$[$0-1]), $$[$0]);\nbreak;\ncase 184:\nthis.$ = operation('bound', [toVar($$[$0-1])]);\nbreak;\ncase 185:\nthis.$ = operation($$[$0-1], []);\nbreak;\ncase 186:\nthis.$ = operation($$[$0-3], [$$[$0-1]]);\nbreak;\ncase 187:\nthis.$ = operation($$[$0-2] ? 'notexists' :'exists', [degroupSingle($$[$0])]);\nbreak;\ncase 188: case 189:\nthis.$ = expression($$[$0-1], { type: 'aggregate', aggregation: lowercase($$[$0-4]), distinct: !!$$[$0-2] });\nbreak;\ncase 190:\nthis.$ = expression($$[$0-2], { type: 'aggregate', aggregation: lowercase($$[$0-5]), distinct: !!$$[$0-3], separator: typeof $$[$0-1] === 'string' ? $$[$0-1] : ' ' });\nbreak;\ncase 192:\nthis.$ = createTypedLiteral($$[$0]);\nbreak;\ncase 193:\nthis.$ = createLangLiteral($$[$0-1], lowercase($$[$0].substr(1)));\nbreak;\ncase 194:\nthis.$ = createTypedLiteral($$[$0-2], $$[$0]);\nbreak;\ncase 195: case 204:\nthis.$ = createTypedLiteral($$[$0], XSD_INTEGER);\nbreak;\ncase 196: case 205:\nthis.$ = createTypedLiteral($$[$0], XSD_DECIMAL);\nbreak;\ncase 197: case 206:\nthis.$ = createTypedLiteral(lowercase($$[$0]), XSD_DOUBLE);\nbreak;\ncase 200:\nthis.$ = createTypedLiteral($$[$0].toLowerCase(), XSD_BOOLEAN);\nbreak;\ncase 201:\nthis.$ = createTypedLiteral($$[$0].substr(1), XSD_INTEGER);\nbreak;\ncase 202:\nthis.$ = createTypedLiteral($$[$0].substr(1), XSD_DECIMAL);\nbreak;\ncase 203:\nthis.$ = createTypedLiteral($$[$0].substr(1).toLowerCase(), XSD_DOUBLE);\nbreak;\ncase 207: case 208:\nthis.$ = unescapeString($$[$0], 1);\nbreak;\ncase 209: case 210:\nthis.$ = unescapeString($$[$0], 3);\nbreak;\ncase 211:\nthis.$ = Parser.factory.namedNode(resolveIRI($$[$0]));\nbreak;\ncase 213:\n\n      var namePos = $$[$0].indexOf(':'),\n          prefix = $$[$0].substr(0, namePos),\n          expansion = Parser.prefixes[prefix];\n      if (!expansion) throw new Error('Unknown prefix: ' + prefix);\n      var uriString = resolveIRI(expansion + $$[$0].substr(namePos + 1));\n      this.$ = Parser.factory.namedNode(uriString);\n    \nbreak;\ncase 214:\n\n      $$[$0] = $$[$0].substr(0, $$[$0].length - 1);\n      if (!($$[$0] in Parser.prefixes)) throw new Error('Unknown prefix: ' + $$[$0]);\n      var uriString = resolveIRI(Parser.prefixes[$$[$0]]);\n      this.$ = Parser.factory.namedNode(uriString);\n    \nbreak;\ncase 215:\nthis.$ = blank($$[$0].replace(/^(_:)/,''));;\nbreak;\ncase 216:\nthis.$ = blank();\nbreak;\ncase 217: case 218: case 232:\nthis.$ = ensureSparqlStar(nestedTriple($$[$0-3], $$[$0-2], $$[$0-1]));\nbreak;\ncase 230: case 231:\nthis.$ = ensureSparqlStar($$[$0-1]);\nbreak;\ncase 248: case 250: case 252: case 254: case 256: case 260: case 264: case 268: case 270: case 292: case 294: case 296: case 298: case 300: case 302: case 304: case 306: case 329: case 342: case 356: case 368: case 370: case 372: case 374: case 392: case 402: case 425: case 427: case 429: case 431: case 441: case 445: case 447: case 449:\n$$[$0-1].push($$[$0]);\nbreak;\ncase 259: case 269: case 291: case 293: case 295: case 301: case 305: case 371: case 424: case 426:\nthis.$ = [$$[$0]];\nbreak;\ncase 308:\n$$[$0-3].push($$[$0-2]);\nbreak;\ncase 350: case 362: case 376: case 380: case 382: case 386: case 396: case 406: case 410: case 412: case 421:\n$$[$0-2].push($$[$0-1]);\nbreak;\n}\n},\ntable: [o($V0,$V1,{3:1,4:2,10:3}),{1:[3]},o($V2,[2,307],{5:4,7:5,321:6,214:7,8:8,96:9,215:10,17:11,21:12,97:16,38:17,6:[2,238],13:$V3,16:$V3,45:$V3,197:$V3,224:$V3,229:$V3,308:$V3,24:[1,13],32:[1,14],36:[1,15],41:$V4}),o([6,13,16,24,32,36,41,45,100,110,113,115,116,123,126,131,197,224,229,308,329,330,331,332,333],[2,3],{322:19,11:20,14:21,12:[1,22],15:[1,23]}),{6:[1,24]},{6:[2,240]},{6:[2,241]},{6:[2,242]},{6:[2,243],9:25,84:26,85:$V5},{6:[2,239]},o($V6,[2,411],{216:28,217:29}),o($V7,[2,249],{18:30}),o($V7,[2,251],{22:31}),o($V8,[2,255],{25:32,27:33,29:[1,34]}),{13:$V9,16:$Va,33:35,39:[1,37],44:39,55:40,87:$Vb,139:38,307:43,308:$Vc,323:36},o($V7,[2,267],{37:46}),o($Vd,[2,326],{98:47,103:49,106:50,117:55,130:61,100:[1,48],110:[1,51],113:[1,52],115:[1,53],116:[1,54],131:[1,62],329:[1,56],330:[1,57],331:[1,58],332:[1,59],333:[1,60]}),{39:[1,63],40:64,43:65,44:66,45:$Ve,87:$Vb},o($Vf,[2,273],{42:68,324:69,325:[1,70],326:[1,71]}),o($V0,[2,248]),o($V0,[2,245]),o($V0,[2,246]),{13:[1,72]},{16:[1,73]},{1:[2,1]},{6:[2,2]},{6:[2,244]},{45:[1,77],85:[1,78],86:74,87:[1,75],89:[1,76]},o([6,13,16,45,48,82,87,89,231,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312],[2,120],{337:[1,79]}),o($Vg,[2,418],{218:80,222:81,229:[1,82]}),{19:83,28:$Vh,29:$Vi,52:84,53:$Vj,56:85},{19:88,28:$Vh,29:$Vi,52:89,53:$Vj,56:85},o($V7,[2,253],{26:90}),{28:[1,91],52:92,53:$Vj},o($Vk,[2,385],{181:93,182:94,183:95,31:[2,383]}),o($Vl,[2,263],{34:96}),o($Vl,[2,261],{44:39,55:40,307:43,139:97,13:$V9,16:$Va,87:$Vb,308:$Vc}),o($Vl,[2,262]),o($Vm,[2,259]),o($Vn,[2,143]),o($Vn,[2,144]),o([6,13,16,28,29,31,39,45,47,48,53,63,70,73,76,78,81,82,83,85,87,89,112,159,160,161,163,164,193,197,224,229,231,232,242,246,250,263,265,268,269,270,271,272,273,274,276,277,279,280,283,285,290,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,314,317,318,335,338,341,342,343,344,345,346,347,348,349,350,351],[2,145]),o($Vo,[2,211]),o($Vo,[2,212]),o($Vo,[2,213]),o($Vo,[2,214]),{19:98,28:$Vh,29:$Vi,52:99,53:$Vj,56:85},{6:[2,309],99:100,193:[1,101]},o($Vp,[2,311],{101:102,328:[1,103]}),o($Vq,[2,317],{104:104,328:[1,105]}),o($Vr,[2,322],{107:106,328:[1,107]}),{111:108,112:[2,324],328:[1,109]},{29:$Vs,114:110},{29:$Vs,114:112},{29:$Vs,114:113},{118:114,123:[1,115],125:116,126:$Vt},o($Vu,[2,315]),o($Vu,[2,316]),o($Vv,[2,319]),o($Vv,[2,320]),o($Vv,[2,321]),o($Vd,[2,327]),{13:$V9,16:$Va,55:118,307:43,308:$Vc},o($V7,[2,12]),o($V7,[2,13],{44:66,43:119,45:$Ve,87:$Vb}),o($Vw,[2,269]),o($Vw,[2,15]),{13:$V9,16:$Va,44:136,45:$Vx,46:120,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($Vf,[2,14]),o($Vf,[2,274]),o($Vf,[2,271]),o($Vf,[2,272]),o($V0,[2,4]),{13:[1,177]},o($V61,[2,39]),{29:[1,178]},{29:[1,179]},{87:[1,181],91:180},{45:[1,187],87:[1,185],89:[1,186],93:182,165:183,166:184},o($V6,[2,410]),o([6,13,16,45,48,82,87,89,231,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,337],[2,121],{338:[1,188]}),{13:$V9,16:$Va,45:[1,193],55:194,197:$V71,219:189,220:190,223:191,224:[1,192],307:43,308:$Vc},o($Vg,[2,419]),o($V81,$V91,{20:196,59:197,69:198,70:$Va1}),o($V7,[2,250]),{29:$Vb1,57:200},o($Vp,[2,279],{54:202,327:[1,203]}),{29:[2,282]},o($Vc1,$Vd1,{23:204,58:205,62:206,63:$Ve1}),o($V7,[2,252]),{19:208,28:$Vh,29:$Vi,52:209,53:$Vj,56:85},{29:[1,210]},o($V8,[2,256]),{31:[1,211]},{31:[2,384]},{13:$V9,16:$Va,44:215,45:$Vf1,55:220,82:$Vy,87:$Vb,89:$Vg1,145:212,172:221,185:213,187:214,231:$Vh1,236:216,237:222,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:217,312:$Vk1},o($Vl1,[2,265],{56:85,35:227,52:228,19:229,28:$Vh,29:$Vi,53:$Vj}),o($Vm,[2,260]),o($Vc1,$Vd1,{58:205,62:206,23:230,63:$Ve1}),o($V7,[2,268]),{6:[2,45]},o($V0,$V1,{10:3,4:231}),{13:$V9,16:$Va,55:232,307:43,308:$Vc},o($Vp,[2,312]),{105:233,112:$Vm1,122:234,132:[1,237],134:235,327:[1,238],334:[1,239]},o($Vq,[2,318]),o($Vp,$Vn1,{108:240,133:242,112:$Vo1,132:$Vp1}),o($Vr,[2,323]),{112:[1,244]},{112:[2,325]},o($Vq1,[2,50]),o($Vk,$Vr1,{135:245,136:246,143:247,144:248,31:$Vs1,112:$Vs1}),o($Vq1,[2,51]),o($Vq1,[2,52]),o($Vt1,[2,328],{119:249}),{29:$Vs,114:250},o($Vt1,[2,56]),{29:$Vs,114:251},o($Vd,[2,59]),o($Vw,[2,270]),{47:[1,252]},o($Vu1,[2,150]),o($Vv1,[2,428],{240:253}),o($Vw1,[2,430],{244:254}),o($Vw1,[2,155],{248:255,249:256,250:[2,438],290:[1,257],341:[1,258],342:[1,259],343:[1,260],344:[1,261],345:[1,262],346:[1,263]}),o($Vx1,[2,440],{252:264}),o($Vy1,[2,448],{260:265}),{13:$V9,16:$Va,44:136,45:$Vx,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,255:154,257:155,264:266,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{13:$V9,16:$Va,44:136,45:$Vx,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,255:154,257:155,264:267,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{13:$V9,16:$Va,44:136,45:$Vx,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,255:154,257:155,264:268,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($Vy1,[2,167]),o($Vy1,[2,168]),o($Vy1,[2,169]),o($Vy1,[2,170],{176:269,45:$Vz1,89:$VA1}),o($Vy1,[2,171]),o($Vy1,[2,172]),o($Vy1,[2,173]),o($Vy1,[2,174]),{13:$V9,16:$Va,44:136,45:$Vx,46:272,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($VB1,[2,176]),{89:[1,273]},{45:[1,274]},{45:[1,275]},{45:[1,276]},{45:[1,277]},{45:[1,278]},{45:$VC1,89:$VD1,179:279},{45:[1,282]},{45:[1,284],89:[1,283]},{279:[1,285]},o($VE1,[2,192],{292:[1,286],293:[1,287]}),o($VE1,[2,195]),o($VE1,[2,196]),o($VE1,[2,197]),o($VE1,[2,198]),o($VE1,[2,199]),o($VE1,[2,200]),{13:$V9,16:$Va,44:39,55:40,82:$Vy,87:$Vb,139:289,172:291,255:154,257:155,266:290,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,320:288},{45:[1,292]},{45:[1,293]},{45:[1,294]},o($VF1,[2,452]),o($VF1,[2,453]),o($VF1,[2,454]),o($VF1,[2,455]),o($VF1,[2,456]),{279:[2,458]},o($VG1,[2,207]),o($VG1,[2,208]),o($VG1,[2,209]),o($VG1,[2,210]),o($VE1,[2,201]),o($VE1,[2,202]),o($VE1,[2,203]),o($VE1,[2,204]),o($VE1,[2,205]),o($VE1,[2,206]),o($V0,[2,5]),o($VH1,[2,297],{88:295}),o($VI1,[2,299],{90:296}),{48:[1,297],87:[1,298]},o($VJ1,[2,301]),o($V61,[2,43]),o($V61,[2,82]),o($V61,[2,83]),{29:[1,299]},{29:[1,300]},{87:[1,302],169:301},o($V6,[2,412]),o($VK1,[2,123]),o($VK1,[2,416],{221:303,339:304,39:[1,306],263:[1,307],340:[1,305]}),o($VL1,[2,124]),{13:$V9,16:$Va,45:[1,311],55:194,89:[1,310],197:$V71,223:312,225:308,226:309,229:$VM1,307:43,308:$Vc},o($V6,$V3,{215:10,214:314}),o($VL1,[2,236]),o($VL1,[2,237]),o($VN1,[2,6]),o($VO1,[2,287],{60:315,72:316,73:[1,317]}),o($V81,[2,286]),{13:$V9,16:$Va,45:$Vx,55:323,67:321,68:322,71:318,77:320,79:319,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,307:43,308:$Vc,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o([6,31,63,70,73,81,83,85],[2,20]),o($Vk,$VP1,{38:17,49:324,147:325,17:326,21:327,148:328,154:329,155:330,29:$VQ1,31:$VQ1,85:$VQ1,112:$VQ1,159:$VQ1,160:$VQ1,161:$VQ1,163:$VQ1,164:$VQ1,41:$V4}),{13:$V9,16:$Va,55:331,307:43,308:$Vc},o($Vp,[2,280]),o($VN1,[2,7]),o($V81,$V91,{59:197,69:198,20:332,70:$Va1}),o($Vc1,[2,284]),{64:[1,333]},o($Vc1,$Vd1,{58:205,62:206,23:334,63:$Ve1}),o($V7,[2,254]),o($Vk,$Vr1,{144:248,30:335,143:336,31:[2,257]}),o($V7,[2,100]),{31:[2,387],184:337,335:[1,338]},{13:$V9,16:$Va,44:39,55:40,87:$Vb,139:342,186:339,190:340,195:341,197:$VR1,307:43,308:$Vc},o($VS1,[2,389],{44:39,55:40,307:43,190:340,195:341,139:342,188:344,189:345,186:346,13:$V9,16:$Va,87:$Vb,197:$VR1,308:$Vc}),o($VT1,[2,227]),o($VT1,[2,228]),o($VT1,[2,229]),{13:$V9,16:$Va,44:215,45:$Vf1,55:220,82:$Vy,87:$Vb,89:$Vg1,172:221,185:351,187:350,200:348,230:347,231:$Vh1,234:349,236:216,237:222,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:217,312:$Vk1},{13:$V9,16:$Va,44:39,55:40,87:$Vb,139:342,186:352,190:340,195:341,197:$VR1,307:43,308:$Vc},o($VT1,[2,146]),o($VT1,[2,147]),o($VT1,[2,148]),o($VT1,[2,149]),{13:$V9,16:$Va,44:354,55:355,82:$Vy,87:$Vb,172:357,237:356,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:358,312:$Vk1,313:353},o($VU1,[2,215]),o($VU1,[2,216]),o($Vc1,$Vd1,{58:205,62:206,23:359,63:$Ve1}),o($Vl,[2,264]),o($Vl1,[2,266]),o($VN1,[2,11]),o($V2,[2,308],{6:[2,310]}),o($Vq1,[2,313],{102:360,120:361,121:[1,362]}),o($Vq1,[2,47]),o($Vq1,[2,63]),o($Vq1,[2,64]),{13:$V9,16:$Va,55:363,307:43,308:$Vc},o($Vq1,[2,336]),o($Vq1,[2,337]),o($Vq1,[2,338]),{109:[1,364]},o($VV1,[2,60]),{13:$V9,16:$Va,55:365,307:43,308:$Vc},o($Vp,[2,335]),{13:$V9,16:$Va,55:366,307:43,308:$Vc},{31:[1,367]},o($VW1,[2,341],{137:368}),o($VW1,[2,340]),{13:$V9,16:$Va,44:215,45:$Vf1,55:220,82:$Vy,87:$Vb,89:$Vg1,145:369,172:221,185:213,187:214,231:$Vh1,236:216,237:222,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:217,312:$Vk1},{28:[1,370],127:371,128:[1,372]},o($Vt1,[2,330],{124:373,125:374,126:$Vt}),o($Vt1,[2,57]),{44:375,87:$Vb},o($Vu1,[2,151],{241:376,242:[1,377]}),o($Vv1,[2,153],{245:378,246:[1,379]}),{13:$V9,16:$Va,44:136,45:$Vx,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,247:380,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{250:[1,381]},o($VX1,[2,432]),o($VX1,[2,433]),o($VX1,[2,434]),o($VX1,[2,435]),o($VX1,[2,436]),o($VX1,[2,437]),{250:[2,439]},o([47,48,193,242,246,250,272,290,341,342,343,344,345,346],[2,158],{253:382,254:383,255:384,257:385,263:[1,386],265:[1,387],297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW}),o($Vx1,[2,162],{261:388,262:389,39:$VY1,338:$VZ1}),o($Vy1,[2,164]),o($Vy1,[2,165]),o($Vy1,[2,166]),o($VB1,[2,95]),o($VB1,[2,96]),o($VX1,[2,377],{177:392,325:[1,393]}),{48:[1,394]},o($VB1,[2,177]),{13:$V9,16:$Va,44:136,45:$Vx,46:395,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{13:$V9,16:$Va,44:136,45:$Vx,46:396,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{13:$V9,16:$Va,44:136,45:$Vx,46:397,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{13:$V9,16:$Va,44:136,45:$Vx,46:398,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{13:$V9,16:$Va,44:136,45:$Vx,46:399,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($VB1,[2,183]),o($VB1,[2,98]),o($VX1,[2,381],{180:400}),{87:[1,401]},o($VB1,[2,185]),{13:$V9,16:$Va,44:136,45:$Vx,46:402,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{29:$Vb1,57:403},o($VE1,[2,193]),{13:$V9,16:$Va,55:404,307:43,308:$Vc},{13:$V9,16:$Va,44:39,55:40,87:$Vb,139:342,195:405,197:$VR1,307:43,308:$Vc},o($V_1,[2,233]),o($V_1,[2,234]),o($V_1,[2,235]),o($V$1,[2,459],{281:406,325:[1,407]}),o($VX1,[2,463],{284:408,325:[1,409]}),o($VX1,[2,465],{286:410,325:[1,411]}),{13:$V9,16:$Va,31:[1,412],55:414,82:$Vy,171:413,172:415,173:416,174:$V02,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V12},{31:[1,419],89:[1,420]},{29:[1,421]},o($VJ1,[2,302]),o($VH1,[2,367],{167:422}),o($VI1,[2,369],{168:423}),{48:[1,424],87:[1,425]},o($VJ1,[2,371]),o($VK1,[2,122]),o($VK1,[2,417]),o($VK1,[2,413]),o($VK1,[2,414]),o($VK1,[2,415]),o($VL1,[2,125]),o($VL1,[2,127]),o($VL1,[2,128]),o($V22,[2,420],{227:426}),o($VL1,[2,130]),{13:$V9,16:$Va,55:194,197:$V71,223:427,307:43,308:$Vc},{48:[1,428]},o($V32,[2,289],{61:429,80:430,81:[1,431],83:[1,432]}),o($VO1,[2,288]),{64:[1,433]},o($V81,[2,29],{307:43,267:139,275:146,278:149,77:320,67:321,68:322,55:323,79:434,13:$V9,16:$Va,45:$Vx,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,276:$VI,277:$VJ,279:$VK,280:$VL,283:$VM,285:$VN,308:$Vc,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51}),o($V42,[2,293]),o($V52,[2,92]),o($V52,[2,93]),o($V52,[2,94]),{45:$Vz1,89:$VA1,176:269},{31:[1,435]},{31:[1,436]},{19:437,28:$Vh,29:$Vi,56:85},{19:438,28:$Vh,29:$Vi,56:85},o($V62,[2,355],{149:439}),o($V62,[2,354]),{13:$V9,16:$Va,44:215,45:$V72,55:220,82:$Vy,87:$Vb,89:$Vg1,156:440,172:221,185:441,203:442,231:$V82,236:216,237:222,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:217,312:$Vk1},o($Vl,[2,19]),o($V32,[2,21]),{13:$V9,16:$Va,44:450,45:$V92,55:323,65:445,66:446,67:447,68:448,87:$Vb,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,307:43,308:$Vc,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($VN1,[2,8]),{31:[1,451]},{31:[2,258]},{31:[2,101]},o($Vk,[2,386],{31:[2,388]}),o($VS1,[2,102]),o($Va2,[2,391],{191:452}),o($Vk,[2,395],{196:453,198:454}),o($Vk,[2,108]),o($Vk,[2,109]),o($VS1,[2,103]),o($VS1,[2,104]),o($VS1,[2,390]),{13:$V9,16:$Va,44:215,45:$Vf1,48:[1,455],55:220,82:$Vy,87:$Vb,89:$Vg1,172:221,185:351,187:350,200:456,231:$Vh1,234:349,236:216,237:222,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:217,312:$Vk1},o($Vb2,[2,424]),o($Vc2,[2,136]),o($Vc2,[2,137]),o($Vd2,[2,140]),{232:[1,457]},{13:$V9,16:$Va,44:39,55:40,87:$Vb,139:342,195:458,197:$VR1,307:43,308:$Vc},o($V_1,[2,219]),o($V_1,[2,220]),o($V_1,[2,221]),o($V_1,[2,222]),o($V_1,[2,223]),o($VN1,[2,10]),o($Vq1,[2,46]),o($Vq1,[2,314]),{112:$Vm1,122:459},o($Vq1,[2,62]),o($Vp,$Vn1,{133:242,108:460,112:$Vo1,132:$Vp1}),o($VV1,[2,61]),o($Vq1,[2,49]),o([6,28,126,128,193],[2,65]),{31:[2,66],112:[1,462],138:461},o($VW1,[2,351],{146:463,335:[1,464]}),{29:$Vb1,57:465},o($Vt1,[2,329]),o($Vp,[2,332],{129:466,327:[1,467]}),o($Vt1,[2,55]),o($Vt1,[2,331]),{48:[1,468]},o($Vv1,[2,429]),{13:$V9,16:$Va,44:136,45:$Vx,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,239:469,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($Vw1,[2,431]),{13:$V9,16:$Va,44:136,45:$Vx,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,243:470,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($Vw1,[2,156]),{45:$VC1,89:$VD1,179:471},o($Vx1,[2,441]),{13:$V9,16:$Va,44:136,45:$Vx,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,251:472,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($Vy1,[2,444],{256:473}),o($Vy1,[2,446],{258:474}),o($VX1,[2,442]),o($VX1,[2,443]),o($Vy1,[2,449]),{13:$V9,16:$Va,44:136,45:$Vx,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,255:154,257:155,259:475,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($VX1,[2,450]),o($VX1,[2,451]),o($VX1,[2,379],{178:476}),o($VX1,[2,378]),o([6,13,16,29,31,39,45,47,48,73,76,78,81,82,83,85,87,89,112,159,160,161,163,164,193,231,242,246,250,263,265,268,269,270,271,272,273,274,276,277,279,280,283,285,290,294,295,296,297,298,299,300,301,302,303,304,305,306,308,309,310,312,335,338,341,342,343,344,345,346,347,348,349,350,351],[2,175]),{48:[1,477]},{48:[1,478]},{272:[1,479]},{272:[1,480]},{272:[1,481]},{13:$V9,16:$Va,44:136,45:$Vx,46:482,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{48:[1,483]},{48:[1,484]},o($VB1,[2,187]),o($VE1,[2,194]),{13:$V9,16:$Va,44:39,55:40,82:$Vy,87:$Vb,139:289,172:291,255:154,257:155,266:290,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,320:485},{13:$V9,16:$Va,39:[1,487],44:136,45:$Vx,46:488,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,282:486,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($V$1,[2,460]),{13:$V9,16:$Va,44:136,45:$Vx,46:489,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($VX1,[2,464]),{13:$V9,16:$Va,44:136,45:$Vx,46:490,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($VX1,[2,466]),o($V61,[2,40]),o($VH1,[2,298]),o($Ve2,[2,87]),o($Ve2,[2,88]),o($Ve2,[2,89]),o($Ve2,[2,90]),{13:$V9,16:$Va,55:492,82:$Vy,172:493,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,311:494,312:$Vk1,315:491},o($V61,[2,41]),o($VI1,[2,300]),o($Vf2,[2,303],{92:495}),{13:$V9,16:$Va,31:[1,496],55:414,82:$Vy,171:497,172:415,173:416,174:$V02,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V12},{31:[1,498],89:[1,499]},{29:[1,500]},o($VJ1,[2,372]),{13:$V9,16:$Va,48:[2,422],55:194,197:$V71,223:312,226:502,228:501,229:$VM1,307:43,308:$Vc},o($VL1,[2,131]),o($VL1,[2,126]),o($V32,[2,22]),o($V32,[2,290]),{82:[1,503]},{82:[1,504]},{13:$V9,16:$Va,44:510,45:$Vx,55:323,67:321,68:322,74:505,75:506,76:$Vg2,77:320,78:$Vh2,79:509,87:$Vb,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,307:43,308:$Vc,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($V42,[2,294]),o($Vi2,[2,69]),o($Vi2,[2,70]),o($V81,$V91,{59:197,69:198,20:511,70:$Va1}),o($Vc1,$Vd1,{58:205,62:206,23:512,63:$Ve1}),{29:[2,375],31:[2,71],84:522,85:$V5,112:[1,518],150:513,151:514,158:515,159:[1,516],160:[1,517],161:[1,519],163:[1,520],164:[1,521],175:523},o($V62,[2,363],{157:524,335:[1,525]}),o($V6,$V3,{215:10,202:526,205:527,208:528,214:529,44:530,87:$Vb}),o($Vj2,[2,399],{215:10,205:527,208:528,214:529,44:530,204:531,202:532,13:$V3,16:$V3,45:$V3,197:$V3,224:$V3,229:$V3,308:$V3,87:$Vb}),{13:$V9,16:$Va,44:215,45:$V72,55:220,82:$Vy,87:$Vb,89:$Vg1,172:221,185:351,203:536,212:534,231:$V82,233:533,234:535,236:216,237:222,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:217,312:$Vk1},o($V6,$V3,{215:10,205:527,208:528,214:529,44:530,202:537,87:$Vb}),o($Vc1,[2,23],{307:43,267:139,275:146,278:149,55:323,67:447,68:448,44:450,66:538,13:$V9,16:$Va,45:$V92,87:$Vb,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,276:$VI,277:$VJ,279:$VK,280:$VL,283:$VM,285:$VN,308:$Vc,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51}),o($Vk2,[2,291]),o($Vk2,[2,24]),o($Vk2,[2,25]),{13:$V9,16:$Va,44:136,45:$Vx,46:539,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($Vk2,[2,28]),o($Vc1,$Vd1,{58:205,62:206,23:540,63:$Ve1}),o([31,112,232,318,335],[2,105],{192:541,193:[1,542]}),o($Va2,[2,107]),{13:$V9,16:$Va,44:215,45:$Vf1,55:220,82:$Vy,87:$Vb,89:$Vg1,172:221,185:351,187:350,199:543,200:544,231:$Vh1,234:349,236:216,237:222,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:217,312:$Vk1},o($Vl2,[2,132]),o($Vb2,[2,425]),o($Vl2,[2,133]),{13:$V9,16:$Va,44:354,55:355,82:$Vy,87:$Vb,172:357,237:356,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:358,312:$Vk1,313:545},o($Vq1,[2,54]),o($Vq1,[2,48]),o($VW1,[2,342]),{13:$V9,16:$Va,44:39,55:40,87:$Vb,139:546,307:43,308:$Vc},o($VW1,[2,68]),o($Vk,[2,350],{31:$Vm2,112:$Vm2}),o($Vq1,[2,53]),{13:$V9,16:$Va,55:547,307:43,308:$Vc},o($Vp,[2,333]),o($Vw,[2,16]),o($Vv1,[2,152]),o($Vw1,[2,154]),o($Vw1,[2,157]),o($Vx1,[2,159]),o($Vx1,[2,160],{262:389,261:548,39:$VY1,338:$VZ1}),o($Vx1,[2,161],{262:389,261:549,39:$VY1,338:$VZ1}),o($Vy1,[2,163]),{13:$V9,16:$Va,44:136,45:$Vx,46:550,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($VB1,[2,178]),o($VB1,[2,179]),{13:$V9,16:$Va,44:136,45:$Vx,46:551,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{13:$V9,16:$Va,44:136,45:$Vx,46:552,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{13:$V9,16:$Va,44:136,45:$Vx,46:553,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{48:[1,554],272:[1,555]},o($VB1,[2,184]),o($VB1,[2,186]),{314:[1,556]},{48:[1,557]},{48:[2,461]},{48:[2,462]},{48:[1,558]},{48:[2,467],193:[1,561],287:559,288:560},{13:$V9,16:$Va,55:194,197:$V71,223:562,307:43,308:$Vc},o($Vn2,[2,224]),o($Vn2,[2,225]),o($Vn2,[2,226]),{31:[1,563],45:$Vo2,94:564},o($V61,[2,84]),o($VH1,[2,368]),o($V61,[2,85]),o($VI1,[2,370]),o($Vf2,[2,373],{170:566}),{48:[1,567]},{48:[2,423],337:[1,568]},o($V32,[2,35],{83:[1,569]}),o($V32,[2,36],{81:[1,570]}),o($VO1,[2,30],{307:43,267:139,275:146,278:149,77:320,67:321,68:322,55:323,79:509,44:510,75:571,13:$V9,16:$Va,45:$Vx,76:$Vg2,78:$Vh2,87:$Vb,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,276:$VI,277:$VJ,279:$VK,280:$VL,283:$VM,285:$VN,308:$Vc,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51}),o($Vp2,[2,295]),{45:$Vx,77:572},{45:$Vx,77:573},o($Vp2,[2,33]),o($Vp2,[2,34]),{31:[2,275],50:574,84:575,85:$V5},{31:[2,277],51:576,84:577,85:$V5},o($V62,[2,356]),o($Vq2,[2,357],{152:578,335:[1,579]}),o($Vr2,[2,74]),{29:$Vb1,57:580},{29:$Vb1,57:581},{13:$V9,16:$Va,44:39,55:40,87:$Vb,139:582,307:43,308:$Vc},o($Vs2,[2,365],{162:583,328:[1,584]}),{13:$V9,16:$Va,45:$Vx,55:323,67:321,68:322,77:320,79:585,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,307:43,308:$Vc,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{45:[1,586]},o($Vr2,[2,81]),{29:$Vb1,57:587},o($V62,[2,73]),o($Vk,[2,362],{29:$Vt2,31:$Vt2,85:$Vt2,112:$Vt2,159:$Vt2,160:$Vt2,161:$Vt2,163:$Vt2,164:$Vt2}),o($Vj2,[2,112]),o($Vu2,[2,401],{206:588}),o($Vk,[2,405],{209:589,210:590}),o($Vk,[2,403]),o($Vk,[2,404]),o($Vj2,[2,113]),o($Vj2,[2,400]),{13:$V9,16:$Va,44:215,45:$V72,48:[1,591],55:220,82:$Vy,87:$Vb,89:$Vg1,172:221,185:351,203:536,212:592,231:$V82,234:535,236:216,237:222,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:217,312:$Vk1},o($Vb2,[2,426]),o($Vd2,[2,138]),o($Vd2,[2,139]),{232:[1,593]},o($Vk2,[2,292]),{47:[1,595],48:[1,594]},o($VN1,[2,9]),o($Va2,[2,392]),o($Va2,[2,393],{44:39,55:40,307:43,195:341,139:342,194:596,190:597,13:$V9,16:$Va,87:$Vb,197:$VR1,308:$Vc}),o($Va2,[2,110],{272:[1,598]}),o($Vv2,[2,397],{201:599,316:600,317:[1,601]}),{314:[1,602]},{29:[1,603]},o($Vt1,[2,58]),o($Vy1,[2,445]),o($Vy1,[2,447]),{48:[1,604],272:[1,605]},{48:[1,606]},{272:[1,607]},{272:[1,608]},o($VB1,[2,99]),o($VX1,[2,382]),o([13,16,39,47,48,87,193,197,242,246,250,263,265,272,290,297,298,299,300,301,302,308,314,338,341,342,343,344,345,346],[2,232]),o($VB1,[2,188]),o($VB1,[2,189]),{48:[1,609]},{48:[2,468]},{289:[1,610]},{13:$V9,16:$Va,55:492,82:$Vy,172:493,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,311:494,312:$Vk1,315:611},o($V61,[2,42]),o($Vf2,[2,304]),{13:$V9,16:$Va,55:414,82:$Vy,95:612,171:613,172:415,173:416,174:$V02,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V12},{31:[1,614],45:$Vo2,94:615},o($VL1,[2,129]),o($V22,[2,421]),{82:[1,616]},{82:[1,617]},o($Vp2,[2,296]),o($Vp2,[2,31]),o($Vp2,[2,32]),{31:[2,17]},{31:[2,276]},{31:[2,18]},{31:[2,278]},o($Vk,$VP1,{155:330,153:618,154:619,29:$Vw2,31:$Vw2,85:$Vw2,112:$Vw2,159:$Vw2,160:$Vw2,161:$Vw2,163:$Vw2,164:$Vw2}),o($Vq2,[2,358]),o($Vr2,[2,75]),o($Vr2,[2,76]),{29:$Vb1,57:620},{13:$V9,16:$Va,44:39,55:40,87:$Vb,139:621,307:43,308:$Vc},o($Vs2,[2,366]),o($Vr2,[2,79]),{13:$V9,16:$Va,44:136,45:$Vx,46:622,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($Vr2,[2,91],{336:[1,623]}),o([29,31,85,112,159,160,161,163,164,232,318,335],[2,114],{207:624,193:[1,625]}),o($Vu2,[2,117]),{13:$V9,16:$Va,44:215,45:$V72,55:220,82:$Vy,87:$Vb,89:$Vg1,172:221,185:351,203:536,211:626,212:627,231:$V82,234:535,236:216,237:222,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,309:$Vi1,310:$Vj1,311:217,312:$Vk1},o($VT1,[2,134]),o($Vb2,[2,427]),o($VT1,[2,135]),o($Vk2,[2,26]),{44:628,87:$Vb},o($Va2,[2,106]),o($Va2,[2,394]),o($Vk,[2,396]),o($Vv2,[2,111]),o($Vv2,[2,398]),{13:$V9,16:$Va,44:39,55:40,87:$Vb,139:342,186:629,190:340,195:341,197:$VR1,307:43,308:$Vc},o($VU1,[2,217]),o($Vk,$Vr1,{144:248,140:630,143:631,31:[2,343]}),o($VB1,[2,97]),o($VX1,[2,380]),o($VB1,[2,180]),{13:$V9,16:$Va,44:136,45:$Vx,46:632,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},{13:$V9,16:$Va,44:136,45:$Vx,46:633,55:133,67:132,68:134,77:131,82:$Vy,87:$Vb,172:135,224:$Vz,238:121,239:122,243:123,247:124,251:125,255:154,257:155,259:126,263:$VA,264:130,265:$VB,266:137,267:139,268:$VC,269:$VD,270:$VE,271:$VF,273:$VG,274:$VH,275:146,276:$VI,277:$VJ,278:149,279:$VK,280:$VL,283:$VM,285:$VN,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V$,346:$V01,347:$V11,348:$V21,349:$V31,350:$V41,351:$V51},o($VB1,[2,190]),{290:[1,634]},{314:[1,635]},{13:$V9,16:$Va,48:[1,636],55:414,82:$Vy,171:637,172:415,173:416,174:$V02,255:154,257:155,291:150,294:$VO,295:$VP,296:$VQ,297:$VR,298:$VS,299:$VT,300:$VU,301:$VV,302:$VW,303:$VX,304:$VY,305:$VZ,306:$V_,307:43,308:$Vc,312:$V12},o($Vx2,[2,305]),o($V61,[2,86]),o($Vf2,[2,374]),o($V32,[2,37]),o($V32,[2,38]),o($V62,[2,72]),o($V62,[2,360]),o($Vr2,[2,77]),{29:$Vb1,57:638},{47:[1,639]},{29:[2,376]},o($Vu2,[2,402]),o($Vu2,[2,115],{215:10,208:528,214:529,44:530,205:640,13:$V3,16:$V3,45:$V3,197:$V3,224:$V3,229:$V3,308:$V3,87:$Vb}),o($Vu2,[2,118],{272:[1,641]}),o($Vy2,[2,407],{213:642,319:643,317:[1,644]}),{48:[1,645]},{318:[1,646]},{31:[1,647]},{31:[2,344]},{48:[1,648]},{48:[1,649]},{291:650,303:$VX,304:$VY,305:$VZ,306:$V_},o($Ve2,[2,218]),o($Vf2,[2,44]),o($Vx2,[2,306]),o($Vr2,[2,78]),{44:651,87:$Vb},o($Vu2,[2,116]),o($Vk,[2,406]),o($Vy2,[2,119]),o($Vy2,[2,408]),o($V6,$V3,{215:10,205:527,208:528,214:529,44:530,202:652,87:$Vb}),o($Vk2,[2,27]),o($Vv2,[2,230]),o($Vz2,[2,345],{141:653,335:[1,654]}),o($VB1,[2,181]),o($VB1,[2,182]),{48:[2,191]},{48:[1,655]},{318:[1,656]},o($Vk,$Vr1,{144:248,142:657,143:658,31:$VA2,112:$VA2}),o($Vz2,[2,346]),o($Vr2,[2,80]),o($Vy2,[2,231]),o($VW1,[2,67]),o($VW1,[2,348])],\ndefaultActions: {5:[2,240],6:[2,241],7:[2,242],9:[2,239],24:[2,1],25:[2,2],26:[2,244],87:[2,282],94:[2,384],100:[2,45],109:[2,325],166:[2,458],263:[2,439],336:[2,258],337:[2,101],487:[2,461],488:[2,462],560:[2,468],574:[2,17],575:[2,276],576:[2,18],577:[2,278],623:[2,376],631:[2,344],650:[2,191]},\nparseError: function parseError (str, hash) {\n    if (hash.recoverable) {\n        this.trace(str);\n    } else {\n        var error = new Error(str);\n        error.hash = hash;\n        throw error;\n    }\n},\nparse: function parse(input) {\n    var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n    var args = lstack.slice.call(arguments, 1);\n    var lexer = Object.create(this.lexer);\n    var sharedState = { yy: {} };\n    for (var k in this.yy) {\n        if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n            sharedState.yy[k] = this.yy[k];\n        }\n    }\n    lexer.setInput(input, sharedState.yy);\n    sharedState.yy.lexer = lexer;\n    sharedState.yy.parser = this;\n    if (typeof lexer.yylloc == 'undefined') {\n        lexer.yylloc = {};\n    }\n    var yyloc = lexer.yylloc;\n    lstack.push(yyloc);\n    var ranges = lexer.options && lexer.options.ranges;\n    if (typeof sharedState.yy.parseError === 'function') {\n        this.parseError = sharedState.yy.parseError;\n    } else {\n        this.parseError = Object.getPrototypeOf(this).parseError;\n    }\n    function popStack(n) {\n        stack.length = stack.length - 2 * n;\n        vstack.length = vstack.length - n;\n        lstack.length = lstack.length - n;\n    }\n    _token_stack:\n        var lex = function () {\n            var token;\n            token = lexer.lex() || EOF;\n            if (typeof token !== 'number') {\n                token = self.symbols_[token] || token;\n            }\n            return token;\n        };\n    var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n    while (true) {\n        state = stack[stack.length - 1];\n        if (this.defaultActions[state]) {\n            action = this.defaultActions[state];\n        } else {\n            if (symbol === null || typeof symbol == 'undefined') {\n                symbol = lex();\n            }\n            action = table[state] && table[state][symbol];\n        }\n                    if (typeof action === 'undefined' || !action.length || !action[0]) {\n                var errStr = '';\n                expected = [];\n                for (p in table[state]) {\n                    if (this.terminals_[p] && p > TERROR) {\n                        expected.push('\\'' + this.terminals_[p] + '\\'');\n                    }\n                }\n                if (lexer.showPosition) {\n                    errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n                } else {\n                    errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n                }\n                this.parseError(errStr, {\n                    text: lexer.match,\n                    token: this.terminals_[symbol] || symbol,\n                    line: lexer.yylineno,\n                    loc: yyloc,\n                    expected: expected\n                });\n            }\n        if (action[0] instanceof Array && action.length > 1) {\n            throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n        }\n        switch (action[0]) {\n        case 1:\n            stack.push(symbol);\n            vstack.push(lexer.yytext);\n            lstack.push(lexer.yylloc);\n            stack.push(action[1]);\n            symbol = null;\n            if (!preErrorSymbol) {\n                yyleng = lexer.yyleng;\n                yytext = lexer.yytext;\n                yylineno = lexer.yylineno;\n                yyloc = lexer.yylloc;\n                if (recovering > 0) {\n                    recovering--;\n                }\n            } else {\n                symbol = preErrorSymbol;\n                preErrorSymbol = null;\n            }\n            break;\n        case 2:\n            len = this.productions_[action[1]][1];\n            yyval.$ = vstack[vstack.length - len];\n            yyval._$ = {\n                first_line: lstack[lstack.length - (len || 1)].first_line,\n                last_line: lstack[lstack.length - 1].last_line,\n                first_column: lstack[lstack.length - (len || 1)].first_column,\n                last_column: lstack[lstack.length - 1].last_column\n            };\n            if (ranges) {\n                yyval._$.range = [\n                    lstack[lstack.length - (len || 1)].range[0],\n                    lstack[lstack.length - 1].range[1]\n                ];\n            }\n            r = this.performAction.apply(yyval, [\n                yytext,\n                yyleng,\n                yylineno,\n                sharedState.yy,\n                action[1],\n                vstack,\n                lstack\n            ].concat(args));\n            if (typeof r !== 'undefined') {\n                return r;\n            }\n            if (len) {\n                stack = stack.slice(0, -1 * len * 2);\n                vstack = vstack.slice(0, -1 * len);\n                lstack = lstack.slice(0, -1 * len);\n            }\n            stack.push(this.productions_[action[1]][0]);\n            vstack.push(yyval.$);\n            lstack.push(yyval._$);\n            newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n            stack.push(newState);\n            break;\n        case 3:\n            return true;\n        }\n    }\n    return true;\n}};\n\n  /*\n    SPARQL parser in the Jison parser generator format.\n  */\n\n  var Wildcard = require('./Wildcard').Wildcard;\n\n  // Common namespaces and entities\n  var RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n      RDF_TYPE  = RDF + 'type',\n      RDF_FIRST = RDF + 'first',\n      RDF_REST  = RDF + 'rest',\n      RDF_NIL   = RDF + 'nil',\n      XSD = 'http://www.w3.org/2001/XMLSchema#',\n      XSD_INTEGER  = XSD + 'integer',\n      XSD_DECIMAL  = XSD + 'decimal',\n      XSD_DOUBLE   = XSD + 'double',\n      XSD_BOOLEAN  = XSD + 'boolean';\n\n  var base = '', basePath = '', baseRoot = '';\n\n  // Returns a lowercase version of the given string\n  function lowercase(string) {\n    return string.toLowerCase();\n  }\n\n  // Appends the item to the array and returns the array\n  function appendTo(array, item) {\n    return array.push(item), array;\n  }\n\n  // Appends the items to the array and returns the array\n  function appendAllTo(array, items) {\n    return array.push.apply(array, items), array;\n  }\n\n  // Extends a base object with properties of other objects\n  function extend(base) {\n    if (!base) base = {};\n    for (var i = 1, l = arguments.length, arg; i < l && (arg = arguments[i] || {}); i++)\n      for (var name in arg)\n        base[name] = arg[name];\n    return base;\n  }\n\n  // Creates an array that contains all items of the given arrays\n  function unionAll() {\n    var union = [];\n    for (var i = 0, l = arguments.length; i < l; i++)\n      union = union.concat.apply(union, arguments[i]);\n    return union;\n  }\n\n  // Resolves an IRI against a base path\n  function resolveIRI(iri) {\n    // Strip off possible angular brackets\n    if (iri[0] === '<')\n      iri = iri.substring(1, iri.length - 1);\n    // Return absolute IRIs unmodified\n    if (/^[a-z][a-z0-9.+-]*:/i.test(iri))\n      return iri;\n    if (!Parser.base)\n      throw new Error('Cannot resolve relative IRI ' + iri + ' because no base IRI was set.');\n    if (base !== Parser.base) {\n      base = Parser.base;\n      basePath = base.replace(/[^\\/:]*$/, '');\n      baseRoot = base.match(/^(?:[a-z]+:\\/*)?[^\\/]*/)[0];\n    }\n    switch (iri[0]) {\n    // An empty relative IRI indicates the base IRI\n    case undefined:\n      return base;\n    // Resolve relative fragment IRIs against the base IRI\n    case '#':\n      return base + iri;\n    // Resolve relative query string IRIs by replacing the query string\n    case '?':\n      return base.replace(/(?:\\?.*)?$/, iri);\n    // Resolve root relative IRIs at the root of the base IRI\n    case '/':\n      return baseRoot + iri;\n    // Resolve all other IRIs at the base IRI's path\n    default:\n      return basePath + iri;\n    }\n  }\n\n  // If the item is a variable, ensures it starts with a question mark\n  function toVar(variable) {\n    if (variable) {\n      var first = variable[0];\n      if (first === '?' || first === '$') return Parser.factory.variable(variable.substr(1));\n    }\n    return variable;\n  }\n\n  // Creates an operation with the given name and arguments\n  function operation(operatorName, args) {\n    return { type: 'operation', operator: operatorName, args: args || [] };\n  }\n\n  // Creates an expression with the given type and attributes\n  function expression(expr, attr) {\n    var expression = { expression: expr === '*'? new Wildcard() : expr };\n    if (attr)\n      for (var a in attr)\n        expression[a] = attr[a];\n    return expression;\n  }\n\n  // Creates a path with the given type and items\n  function path(type, items) {\n    return { type: 'path', pathType: type, items: items };\n  }\n\n  // Transforms a list of operations types and arguments into a tree of operations\n  function createOperationTree(initialExpression, operationList) {\n    for (var i = 0, l = operationList.length, item; i < l && (item = operationList[i]); i++)\n      initialExpression = operation(item[0], [initialExpression, item[1]]);\n    return initialExpression;\n  }\n\n  // Group datasets by default and named\n  function groupDatasets(fromClauses, groupName) {\n    var defaults = [], named = [], l = fromClauses.length, fromClause, group = {};\n    if (!l)\n      return null;\n    for (var i = 0; i < l && (fromClause = fromClauses[i]); i++)\n      (fromClause.named ? named : defaults).push(fromClause.iri);\n    group[groupName || 'from'] = { default: defaults, named: named };\n    return group;\n  }\n\n  // Converts the string to a number\n  function toInt(string) {\n    return parseInt(string, 10);\n  }\n\n  // Transforms a possibly single group into its patterns\n  function degroupSingle(group) {\n    return group.type === 'group' && group.patterns.length === 1 ? group.patterns[0] : group;\n  }\n\n  // Creates a literal with the given value and type\n  function createTypedLiteral(value, type) {\n    if (type && type.termType !== 'NamedNode'){\n      type = Parser.factory.namedNode(type);\n    }\n    return Parser.factory.literal(value, type);\n  }\n\n  // Creates a literal with the given value and language\n  function createLangLiteral(value, lang) {\n    return Parser.factory.literal(value, lang);\n  }\n\n  function nestedTriple(subject, predicate, object) {\n\n    // TODO: Remove this when it is caught by the grammar\n    if (!('termType' in predicate)) {\n      throw new Error('Nested triples cannot contain paths');\n    }\n\n    return Parser.factory.quad(subject, predicate, object);\n  }\n\n  // Creates a triple with the given subject, predicate, and object\n  function triple(subject, predicate, object, annotations) {\n    var triple = {};\n    if (subject     != null) triple.subject     = subject;\n    if (predicate   != null) triple.predicate   = predicate;\n    if (object      != null) triple.object      = object;\n    if (annotations != null) triple.annotations = annotations;\n    return triple;\n  }\n\n  // Creates a new blank node\n  function blank(name) {\n    if (typeof name === 'string') {  // Only use name if a name is given\n      if (name.startsWith('e_')) return Parser.factory.blankNode(name);\n      return Parser.factory.blankNode('e_' + name);\n    }\n    return Parser.factory.blankNode('g_' + blankId++);\n  };\n  var blankId = 0;\n  Parser._resetBlanks = function () { blankId = 0; }\n\n  // Regular expression and replacement strings to escape strings\n  var escapeSequence = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{8})|\\\\(.)/g,\n      escapeReplacements = { '\\\\': '\\\\', \"'\": \"'\", '\"': '\"',\n                             't': '\\t', 'b': '\\b', 'n': '\\n', 'r': '\\r', 'f': '\\f' },\n      partialSurrogatesWithoutEndpoint = /[\\uD800-\\uDBFF]([^\\uDC00-\\uDFFF]|$)/,\n      fromCharCode = String.fromCharCode;\n\n  // Translates escape codes in the string into their textual equivalent\n  function unescapeString(string, trimLength) {\n    string = string.substring(trimLength, string.length - trimLength);\n    try {\n      string = string.replace(escapeSequence, function (sequence, unicode4, unicode8, escapedChar) {\n        var charCode;\n        if (unicode4) {\n          charCode = parseInt(unicode4, 16);\n          if (isNaN(charCode)) throw new Error(); // can never happen (regex), but helps performance\n          return fromCharCode(charCode);\n        }\n        else if (unicode8) {\n          charCode = parseInt(unicode8, 16);\n          if (isNaN(charCode)) throw new Error(); // can never happen (regex), but helps performance\n          if (charCode < 0xFFFF) return fromCharCode(charCode);\n          return fromCharCode(0xD800 + ((charCode -= 0x10000) >> 10), 0xDC00 + (charCode & 0x3FF));\n        }\n        else {\n          var replacement = escapeReplacements[escapedChar];\n          if (!replacement) throw new Error();\n          return replacement;\n        }\n      });\n    }\n    catch (error) { return ''; }\n\n    // Test for invalid unicode surrogate pairs\n    if (partialSurrogatesWithoutEndpoint.exec(string)) {\n      throw new Error('Invalid unicode codepoint of surrogate pair without corresponding codepoint in ' + string);\n    }\n\n    return string;\n  }\n\n  // Creates a list, collecting its (possibly blank) items and triples associated with those items\n  function createList(objects) {\n    var list = blank(), head = list, listItems = [], listTriples, triples = [];\n    objects.forEach(function (o) { listItems.push(o.entity); appendAllTo(triples, o.triples); });\n\n    // Build an RDF list out of the items\n    for (var i = 0, j = 0, l = listItems.length, listTriples = Array(l * 2); i < l;)\n      listTriples[j++] = triple(head, Parser.factory.namedNode(RDF_FIRST), listItems[i]),\n      listTriples[j++] = triple(head, Parser.factory.namedNode(RDF_REST),  head = ++i < l ? blank() : Parser.factory.namedNode(RDF_NIL));\n\n    // Return the list's identifier, its triples, and the triples associated with its items\n    return { entity: list, triples: appendAllTo(listTriples, triples) };\n  }\n\n  // Creates a blank node identifier, collecting triples with that blank node as subject\n  function createAnonymousObject(propertyList) {\n    var entity = blank();\n    return {\n      entity: entity,\n      triples: propertyList.map(function (t) { return extend(triple(entity), t); })\n    };\n  }\n\n  // Collects all (possibly blank) objects, and triples that have them as subject\n  function objectListToTriples(predicate, objectList, otherTriples) {\n    var objects = [], triples = [];\n    objectList.forEach(function (l) {\n      let annotation = null;\n      if (l.annotation) {\n        annotation = l.annotation\n        l = l.object;\n      }\n      objects.push(triple(null, predicate, l.entity, annotation));\n      appendAllTo(triples, l.triples);\n    });\n    return unionAll(objects, otherTriples || [], triples);\n  }\n\n  // Simplifies groups by merging adjacent BGPs\n  function mergeAdjacentBGPs(groups) {\n    var merged = [], currentBgp;\n    for (var i = 0, group; group = groups[i]; i++) {\n      switch (group.type) {\n        // Add a BGP's triples to the current BGP\n        case 'bgp':\n          if (group.triples.length) {\n            if (!currentBgp)\n              appendTo(merged, currentBgp = group);\n            else\n              appendAllTo(currentBgp.triples, group.triples);\n          }\n          break;\n        // All other groups break up a BGP\n        default:\n          // Only add the group if its pattern is non-empty\n          if (!group.patterns || group.patterns.length > 0) {\n            appendTo(merged, group);\n            currentBgp = null;\n          }\n      }\n    }\n    return merged;\n  }\n\n  // Return the id of an expression\n  function getExpressionId(expression) {\n    return expression.variable ? expression.variable.value : expression.value || expression.expression.value;\n  }\n\n  // Get all \"aggregate\"'s from an expression\n  function getAggregatesOfExpression(expression) {\n    if (!expression) {\n      return [];\n    }\n    if (expression.type === 'aggregate') {\n      return [expression];\n    } else if (expression.type === \"operation\") {\n      const aggregates = [];\n      for (const arg of expression.args) {\n        aggregates.push(...getAggregatesOfExpression(arg));\n      }\n      return aggregates;\n    }\n    return [];\n  }\n\n  // Get all variables used in an expression\n  function getVariablesFromExpression(expression) {\n    const variables = new Set();\n    const visitExpression = function (expr) {\n      if (!expr) { return; }\n      if (expr.termType === \"Variable\") {\n        variables.add(expr);\n      } else if (expr.type === \"operation\") {\n        expr.args.forEach(visitExpression);\n      }\n    };\n    visitExpression(expression);\n    return variables;\n  }\n\n  // Helper function to flatten arrays\n  function flatten(input, depth = 1, stack = []) {\n    for (const item of input) {\n        if (depth > 0 && item instanceof Array) {\n          flatten(item, depth - 1, stack);\n        } else {\n          stack.push(item);\n        }\n    }\n    return stack;\n  }\n\n  function isVariable(term) {\n    return term.termType === 'Variable';\n  }\n\n  function getBoundVarsFromGroupGraphPattern(pattern) {\n    if (pattern.triples) {\n      const boundVars = [];\n      for (const triple of pattern.triples) {\n        if (isVariable(triple.subject)) boundVars.push(triple.subject.value);\n        if (isVariable(triple.predicate)) boundVars.push(triple.predicate.value);\n        if (isVariable(triple.object)) boundVars.push(triple.object.value);\n      }\n      return boundVars;\n    } else if (pattern.patterns) {\n      const boundVars = [];\n      for (const pat of pattern.patterns) {\n        boundVars.push(...getBoundVarsFromGroupGraphPattern(pat));\n      }\n      return boundVars;\n    }\n    return [];\n  }\n\n  // Helper function to find duplicates in array\n  function getDuplicatesInArray(array) {\n    const sortedArray = array.slice().sort();\n    const duplicates = [];\n    for (let i = 0; i < sortedArray.length - 1; i++) {\n      if (sortedArray[i + 1] == sortedArray[i]) {\n        duplicates.push(sortedArray[i]);\n      }\n    }\n    return duplicates;\n  }\n\n  function ensureSparqlStar(value) {\n    if (!Parser.sparqlStar) {\n      throw new Error('SPARQL-star support is not enabled');\n    }\n    return value;\n  }\n\n  function _applyAnnotations(subject, annotations, arr) {\n    for (const annotation of annotations) {\n      const t = triple(\n        // If the annotation already has a subject then just push the\n        // annotation to the upper scope as it is a blank node introduced\n        // from a pattern like :s :p :o {| :p1 [ :p2 :o2; :p3 :o3 ] |}\n        'subject' in annotation ? annotation.subject : subject,\n        annotation.predicate,\n        annotation.object\n      )\n\n      arr.push(t);\n\n      if (annotation.annotations) {\n        _applyAnnotations(nestedTriple(\n        subject,\n        annotation.predicate,\n        annotation.object\n      ), annotation.annotations, arr)\n      }\n    }\n  }\n\n  function applyAnnotations(triples) {\n    if (Parser.sparqlStar) {\n      const newTriples = [];\n\n      triples.forEach(t => {\n        const s = triple(t.subject, t.predicate, t.object);\n\n        newTriples.push(s);\n\n        if (t.annotations) {\n          _applyAnnotations(nestedTriple(t.subject, t.predicate, t.object), t.annotations, newTriples);\n        }\n      });\n\n      return newTriples;\n    }\n    return triples;\n  }\n\n  function ensureSparqlStarNestedQuads(value) {\n    if (!Parser.sparqlStarNestedQuads) {\n      throw new Error('Lenient SPARQL-star support with nested quads is not enabled');\n    }\n    return value;\n  }\n\n  function ensureNoVariables(operations) {\n    for (const operation of operations) {\n      if (operation.type === 'graph' && operation.name.termType === 'Variable') {\n        throw new Error('Detected illegal variable in GRAPH');\n      }\n      if (operation.type === 'bgp' || operation.type === 'graph') {\n        for (const triple of operation.triples) {\n          if (triple.subject.termType === 'Variable' ||\n              triple.predicate.termType === 'Variable' ||\n              triple.object.termType === 'Variable') {\n            throw new Error('Detected illegal variable in BGP');\n          }\n        }\n      }\n    }\n    return operations;\n  }\n\n  function ensureNoBnodes(operations) {\n    for (const operation of operations) {\n      if (operation.type === 'bgp') {\n        for (const triple of operation.triples) {\n          if (triple.subject.termType === 'BlankNode' ||\n              triple.predicate.termType === 'BlankNode' ||\n              triple.object.termType === 'BlankNode') {\n            throw new Error('Detected illegal blank node in BGP');\n          }\n        }\n      }\n    }\n    return operations;\n  }\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n        if (this.yy.parser) {\n            this.yy.parser.parseError(str, hash);\n        } else {\n            throw new Error(str);\n        }\n    },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n        this.yy = yy || this.yy || {};\n        this._input = input;\n        this._more = this._backtrack = this.done = false;\n        this.yylineno = this.yyleng = 0;\n        this.yytext = this.matched = this.match = '';\n        this.conditionStack = ['INITIAL'];\n        this.yylloc = {\n            first_line: 1,\n            first_column: 0,\n            last_line: 1,\n            last_column: 0\n        };\n        if (this.options.ranges) {\n            this.yylloc.range = [0,0];\n        }\n        this.offset = 0;\n        return this;\n    },\n\n// consumes and returns one char from the input\ninput:function () {\n        var ch = this._input[0];\n        this.yytext += ch;\n        this.yyleng++;\n        this.offset++;\n        this.match += ch;\n        this.matched += ch;\n        var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n        if (lines) {\n            this.yylineno++;\n            this.yylloc.last_line++;\n        } else {\n            this.yylloc.last_column++;\n        }\n        if (this.options.ranges) {\n            this.yylloc.range[1]++;\n        }\n\n        this._input = this._input.slice(1);\n        return ch;\n    },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n        var len = ch.length;\n        var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n        this._input = ch + this._input;\n        this.yytext = this.yytext.substr(0, this.yytext.length - len);\n        //this.yyleng -= len;\n        this.offset -= len;\n        var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n        this.match = this.match.substr(0, this.match.length - 1);\n        this.matched = this.matched.substr(0, this.matched.length - 1);\n\n        if (lines.length - 1) {\n            this.yylineno -= lines.length - 1;\n        }\n        var r = this.yylloc.range;\n\n        this.yylloc = {\n            first_line: this.yylloc.first_line,\n            last_line: this.yylineno + 1,\n            first_column: this.yylloc.first_column,\n            last_column: lines ?\n                (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n                 + oldLines[oldLines.length - lines.length].length - lines[0].length :\n              this.yylloc.first_column - len\n        };\n\n        if (this.options.ranges) {\n            this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n        }\n        this.yyleng = this.yytext.length;\n        return this;\n    },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n        this._more = true;\n        return this;\n    },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n        if (this.options.backtrack_lexer) {\n            this._backtrack = true;\n        } else {\n            return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n                text: \"\",\n                token: null,\n                line: this.yylineno\n            });\n\n        }\n        return this;\n    },\n\n// retain first n characters of the match\nless:function (n) {\n        this.unput(this.match.slice(n));\n    },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n        var past = this.matched.substr(0, this.matched.length - this.match.length);\n        return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n    },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n        var next = this.match;\n        if (next.length < 20) {\n            next += this._input.substr(0, 20-next.length);\n        }\n        return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n    },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n        var pre = this.pastInput();\n        var c = new Array(pre.length + 1).join(\"-\");\n        return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n    },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n        var token,\n            lines,\n            backup;\n\n        if (this.options.backtrack_lexer) {\n            // save context\n            backup = {\n                yylineno: this.yylineno,\n                yylloc: {\n                    first_line: this.yylloc.first_line,\n                    last_line: this.last_line,\n                    first_column: this.yylloc.first_column,\n                    last_column: this.yylloc.last_column\n                },\n                yytext: this.yytext,\n                match: this.match,\n                matches: this.matches,\n                matched: this.matched,\n                yyleng: this.yyleng,\n                offset: this.offset,\n                _more: this._more,\n                _input: this._input,\n                yy: this.yy,\n                conditionStack: this.conditionStack.slice(0),\n                done: this.done\n            };\n            if (this.options.ranges) {\n                backup.yylloc.range = this.yylloc.range.slice(0);\n            }\n        }\n\n        lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n        if (lines) {\n            this.yylineno += lines.length;\n        }\n        this.yylloc = {\n            first_line: this.yylloc.last_line,\n            last_line: this.yylineno + 1,\n            first_column: this.yylloc.last_column,\n            last_column: lines ?\n                         lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n                         this.yylloc.last_column + match[0].length\n        };\n        this.yytext += match[0];\n        this.match += match[0];\n        this.matches = match;\n        this.yyleng = this.yytext.length;\n        if (this.options.ranges) {\n            this.yylloc.range = [this.offset, this.offset += this.yyleng];\n        }\n        this._more = false;\n        this._backtrack = false;\n        this._input = this._input.slice(match[0].length);\n        this.matched += match[0];\n        token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n        if (this.done && this._input) {\n            this.done = false;\n        }\n        if (token) {\n            return token;\n        } else if (this._backtrack) {\n            // recover context\n            for (var k in backup) {\n                this[k] = backup[k];\n            }\n            return false; // rule action called reject() implying the next rule should be tested instead.\n        }\n        return false;\n    },\n\n// return next match in input\nnext:function () {\n        if (this.done) {\n            return this.EOF;\n        }\n        if (!this._input) {\n            this.done = true;\n        }\n\n        var token,\n            match,\n            tempMatch,\n            index;\n        if (!this._more) {\n            this.yytext = '';\n            this.match = '';\n        }\n        var rules = this._currentRules();\n        for (var i = 0; i < rules.length; i++) {\n            tempMatch = this._input.match(this.rules[rules[i]]);\n            if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n                match = tempMatch;\n                index = i;\n                if (this.options.backtrack_lexer) {\n                    token = this.test_match(tempMatch, rules[i]);\n                    if (token !== false) {\n                        return token;\n                    } else if (this._backtrack) {\n                        match = false;\n                        continue; // rule action called reject() implying a rule MISmatch.\n                    } else {\n                        // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n                        return false;\n                    }\n                } else if (!this.options.flex) {\n                    break;\n                }\n            }\n        }\n        if (match) {\n            token = this.test_match(match, rules[index]);\n            if (token !== false) {\n                return token;\n            }\n            // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n            return false;\n        }\n        if (this._input === \"\") {\n            return this.EOF;\n        } else {\n            return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n                text: \"\",\n                token: null,\n                line: this.yylineno\n            });\n        }\n    },\n\n// return next match that has a token\nlex:function lex () {\n        var r = this.next();\n        if (r) {\n            return r;\n        } else {\n            return this.lex();\n        }\n    },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n        this.conditionStack.push(condition);\n    },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n        var n = this.conditionStack.length - 1;\n        if (n > 0) {\n            return this.conditionStack.pop();\n        } else {\n            return this.conditionStack[0];\n        }\n    },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n        if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n            return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n        } else {\n            return this.conditions[\"INITIAL\"].rules;\n        }\n    },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n        n = this.conditionStack.length - 1 - Math.abs(n || 0);\n        if (n >= 0) {\n            return this.conditionStack[n];\n        } else {\n            return \"INITIAL\";\n        }\n    },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n        this.begin(condition);\n    },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n        return this.conditionStack.length;\n    },\noptions: {\"flex\":true,\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:/* ignore */\nbreak;\ncase 1:return 12\nbreak;\ncase 2:return 15\nbreak;\ncase 3:return 41\nbreak;\ncase 4:return 325\nbreak;\ncase 5:return 326\nbreak;\ncase 6:return 45\nbreak;\ncase 7:return 47\nbreak;\ncase 8:return 48\nbreak;\ncase 9:return 39\nbreak;\ncase 10:return 24\nbreak;\ncase 11:return 28\nbreak;\ncase 12:return 29\nbreak;\ncase 13:return 31\nbreak;\ncase 14:return 32\nbreak;\ncase 15:return 36\nbreak;\ncase 16:return 53\nbreak;\ncase 17:return 327\nbreak;\ncase 18:return 63\nbreak;\ncase 19:return 64\nbreak;\ncase 20:return 70\nbreak;\ncase 21:return 73\nbreak;\ncase 22:return 76\nbreak;\ncase 23:return 78\nbreak;\ncase 24:return 81\nbreak;\ncase 25:return 83\nbreak;\ncase 26:return 85\nbreak;\ncase 27:return 193\nbreak;\ncase 28:return 100\nbreak;\ncase 29:return 328\nbreak;\ncase 30:return 121\nbreak;\ncase 31:return 329\nbreak;\ncase 32:return 330\nbreak;\ncase 33:return 110\nbreak;\ncase 34:return 331\nbreak;\ncase 35:return 109\nbreak;\ncase 36:return 332\nbreak;\ncase 37:return 333\nbreak;\ncase 38:return 113\nbreak;\ncase 39:return 115\nbreak;\ncase 40:return 116\nbreak;\ncase 41:return 131\nbreak;\ncase 42:return 123\nbreak;\ncase 43:return 126\nbreak;\ncase 44:return 128\nbreak;\ncase 45:return 132\nbreak;\ncase 46:return 112\nbreak;\ncase 47:return 334\nbreak;\ncase 48:return 335\nbreak;\ncase 49:return 159\nbreak;\ncase 50:return 161\nbreak;\ncase 51:return 164\nbreak;\ncase 52:return 174\nbreak;\ncase 53:return 160\nbreak;\ncase 54:return 336\nbreak;\ncase 55:return 163\nbreak;\ncase 56:return 312\nbreak;\ncase 57:return 314\nbreak;\ncase 58:return 317\nbreak;\ncase 59:return 318\nbreak;\ncase 60:return 272\nbreak;\ncase 61:return 197\nbreak;\ncase 62:return 337\nbreak;\ncase 63:return 338\nbreak;\ncase 64:return 229\nbreak;\ncase 65:return 340\nbreak;\ncase 66:return 263\nbreak;\ncase 67:return 224\nbreak;\ncase 68:return 231\nbreak;\ncase 69:return 232\nbreak;\ncase 70:return 242\nbreak;\ncase 71:return 246\nbreak;\ncase 72:return 290\nbreak;\ncase 73:return 341\nbreak;\ncase 74:return 342\nbreak;\ncase 75:return 343\nbreak;\ncase 76:return 344\nbreak;\ncase 77:return 345\nbreak;\ncase 78:return 250\nbreak;\ncase 79:return 346\nbreak;\ncase 80:return 265\nbreak;\ncase 81:return 276\nbreak;\ncase 82:return 277\nbreak;\ncase 83:return 268\nbreak;\ncase 84:return 269\nbreak;\ncase 85:return 270\nbreak;\ncase 86:return 271\nbreak;\ncase 87:return 347\nbreak;\ncase 88:return 348\nbreak;\ncase 89:return 273\nbreak;\ncase 90:return 274\nbreak;\ncase 91:return 350\nbreak;\ncase 92:return 349\nbreak;\ncase 93:return 351\nbreak;\ncase 94:return 279\nbreak;\ncase 95:return 280\nbreak;\ncase 96:return 283\nbreak;\ncase 97:return 285\nbreak;\ncase 98:return 289\nbreak;\ncase 99:return 293\nbreak;\ncase 100:return 296\nbreak;\ncase 101:return 13\nbreak;\ncase 102:return 16\nbreak;\ncase 103:return 308\nbreak;\ncase 104:return 309\nbreak;\ncase 105:return 87\nbreak;\ncase 106:return 292\nbreak;\ncase 107:return 82\nbreak;\ncase 108:return 294\nbreak;\ncase 109:return 295\nbreak;\ncase 110:return 297\nbreak;\ncase 111:return 298\nbreak;\ncase 112:return 299\nbreak;\ncase 113:return 300\nbreak;\ncase 114:return 301\nbreak;\ncase 115:return 302\nbreak;\ncase 116:return 'EXPONENT'\nbreak;\ncase 117:return 303\nbreak;\ncase 118:return 304\nbreak;\ncase 119:return 305\nbreak;\ncase 120:return 306\nbreak;\ncase 121:return 89\nbreak;\ncase 122:return 310\nbreak;\ncase 123:return 6\nbreak;\ncase 124:return 'INVALID'\nbreak;\ncase 125:console.log(yy_.yytext);\nbreak;\n}\n},\nrules: [/^(?:\\s+|(#[^\\n\\r]*))/i,/^(?:BASE)/i,/^(?:PREFIX)/i,/^(?:SELECT)/i,/^(?:DISTINCT)/i,/^(?:REDUCED)/i,/^(?:\\()/i,/^(?:AS)/i,/^(?:\\))/i,/^(?:\\*)/i,/^(?:CONSTRUCT)/i,/^(?:WHERE)/i,/^(?:\\{)/i,/^(?:\\})/i,/^(?:DESCRIBE)/i,/^(?:ASK)/i,/^(?:FROM)/i,/^(?:NAMED)/i,/^(?:GROUP)/i,/^(?:BY)/i,/^(?:HAVING)/i,/^(?:ORDER)/i,/^(?:ASC)/i,/^(?:DESC)/i,/^(?:LIMIT)/i,/^(?:OFFSET)/i,/^(?:VALUES)/i,/^(?:;)/i,/^(?:LOAD)/i,/^(?:SILENT)/i,/^(?:INTO)/i,/^(?:CLEAR)/i,/^(?:DROP)/i,/^(?:CREATE)/i,/^(?:ADD)/i,/^(?:TO)/i,/^(?:MOVE)/i,/^(?:COPY)/i,/^(?:INSERT((\\s+|(#[^\\n\\r]*)\\n\\r?)+)DATA)/i,/^(?:DELETE((\\s+|(#[^\\n\\r]*)\\n\\r?)+)DATA)/i,/^(?:DELETE((\\s+|(#[^\\n\\r]*)\\n\\r?)+)WHERE)/i,/^(?:WITH)/i,/^(?:DELETE)/i,/^(?:INSERT)/i,/^(?:USING)/i,/^(?:DEFAULT)/i,/^(?:GRAPH)/i,/^(?:ALL)/i,/^(?:\\.)/i,/^(?:OPTIONAL)/i,/^(?:SERVICE)/i,/^(?:BIND)/i,/^(?:UNDEF)/i,/^(?:MINUS)/i,/^(?:UNION)/i,/^(?:FILTER)/i,/^(?:<<)/i,/^(?:>>)/i,/^(?:\\{\\|)/i,/^(?:\\|\\})/i,/^(?:,)/i,/^(?:a)/i,/^(?:\\|)/i,/^(?:\\/)/i,/^(?:\\^)/i,/^(?:\\?)/i,/^(?:\\+)/i,/^(?:!)/i,/^(?:\\[)/i,/^(?:\\])/i,/^(?:\\|\\|)/i,/^(?:&&)/i,/^(?:=)/i,/^(?:!=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:IN)/i,/^(?:NOT)/i,/^(?:-)/i,/^(?:BOUND)/i,/^(?:BNODE)/i,/^(?:(RAND|NOW|UUID|STRUUID))/i,/^(?:(LANG|DATATYPE|IRI|URI|ABS|CEIL|FLOOR|ROUND|STRLEN|STR|UCASE|LCASE|ENCODE_FOR_URI|YEAR|MONTH|DAY|HOURS|MINUTES|SECONDS|TIMEZONE|TZ|MD5|SHA1|SHA256|SHA384|SHA512|isIRI|isURI|isBLANK|isLITERAL|isNUMERIC))/i,/^(?:(SUBJECT|PREDICATE|OBJECT|isTRIPLE))/i,/^(?:(LANGMATCHES|CONTAINS|STRSTARTS|STRENDS|STRBEFORE|STRAFTER|STRLANG|STRDT|sameTerm))/i,/^(?:CONCAT)/i,/^(?:COALESCE)/i,/^(?:IF)/i,/^(?:TRIPLE)/i,/^(?:REGEX)/i,/^(?:SUBSTR)/i,/^(?:REPLACE)/i,/^(?:EXISTS)/i,/^(?:COUNT)/i,/^(?:SUM|MIN|MAX|AVG|SAMPLE)/i,/^(?:GROUP_CONCAT)/i,/^(?:SEPARATOR)/i,/^(?:\\^\\^)/i,/^(?:true|false)/i,/^(?:(<(?:[^<>\\\"\\{\\}\\|\\^`\\\\\\u0000-\\u0020])*>))/i,/^(?:((([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])(?:(?:(((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|-|[0-9]|\\u00B7|[\\u0300-\\u036F\\u203F-\\u2040])|\\.)*(((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|-|[0-9]|\\u00B7|[\\u0300-\\u036F\\u203F-\\u2040]))?)?:))/i,/^(?:(((([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])(?:(?:(((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|-|[0-9]|\\u00B7|[\\u0300-\\u036F\\u203F-\\u2040])|\\.)*(((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|-|[0-9]|\\u00B7|[\\u0300-\\u036F\\u203F-\\u2040]))?)?:)((?:((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|:|[0-9]|((%([0-9A-Fa-f])([0-9A-Fa-f]))|(\\\\(_|~|\\.|-|!|\\$|&|'|\\(|\\)|\\*|\\+|,|;|=|\\/|\\?|#|@|%))))(?:(?:(((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|-|[0-9]|\\u00B7|[\\u0300-\\u036F\\u203F-\\u2040])|\\.|:|((%([0-9A-Fa-f])([0-9A-Fa-f]))|(\\\\(_|~|\\.|-|!|\\$|&|'|\\(|\\)|\\*|\\+|,|;|=|\\/|\\?|#|@|%))))*(?:(((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|-|[0-9]|\\u00B7|[\\u0300-\\u036F\\u203F-\\u2040])|:|((%([0-9A-Fa-f])([0-9A-Fa-f]))|(\\\\(_|~|\\.|-|!|\\$|&|'|\\(|\\)|\\*|\\+|,|;|=|\\/|\\?|#|@|%)))))?)))/i,/^(?:(_:(?:((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|[0-9])(?:(?:(((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|-|[0-9]|\\u00B7|[\\u0300-\\u036F\\u203F-\\u2040])|\\.)*(((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|-|[0-9]|\\u00B7|[\\u0300-\\u036F\\u203F-\\u2040]))?))/i,/^(?:([\\?\\$]((?:((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|[0-9])(?:((?:([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])|_))|[0-9]|\\u00B7|[\\u0300-\\u036F\\u203F-\\u2040])*)))/i,/^(?:(@[a-zA-Z]+(?:-[a-zA-Z0-9]+)*))/i,/^(?:([0-9]+))/i,/^(?:([0-9]*\\.[0-9]+))/i,/^(?:([0-9]+\\.[0-9]*([eE][+-]?[0-9]+)|\\.([0-9])+([eE][+-]?[0-9]+)|([0-9])+([eE][+-]?[0-9]+)))/i,/^(?:(\\+([0-9]+)))/i,/^(?:(\\+([0-9]*\\.[0-9]+)))/i,/^(?:(\\+([0-9]+\\.[0-9]*([eE][+-]?[0-9]+)|\\.([0-9])+([eE][+-]?[0-9]+)|([0-9])+([eE][+-]?[0-9]+))))/i,/^(?:(-([0-9]+)))/i,/^(?:(-([0-9]*\\.[0-9]+)))/i,/^(?:(-([0-9]+\\.[0-9]*([eE][+-]?[0-9]+)|\\.([0-9])+([eE][+-]?[0-9]+)|([0-9])+([eE][+-]?[0-9]+))))/i,/^(?:([eE][+-]?[0-9]+))/i,/^(?:('(?:(?:[^\\u0027\\u005C\\u000A\\u000D])|(\\\\[tbnrf\\\\\\\"']|\\\\u([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])|\\\\U([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])))*'))/i,/^(?:(\"(?:(?:[^\\u0022\\u005C\\u000A\\u000D])|(\\\\[tbnrf\\\\\\\"']|\\\\u([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])|\\\\U([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])))*\"))/i,/^(?:('''(?:(?:'|'')?(?:[^'\\\\]|(\\\\[tbnrf\\\\\\\"']|\\\\u([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])|\\\\U([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f]))))*'''))/i,/^(?:(\"\"\"(?:(?:\"|\"\")?(?:[^\\\"\\\\]|(\\\\[tbnrf\\\\\\\"']|\\\\u([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])|\\\\U([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f])([0-9A-Fa-f]))))*\"\"\"))/i,/^(?:(\\((\\u0020|\\u0009|\\u000D|\\u000A)*\\)))/i,/^(?:(\\[(\\u0020|\\u0009|\\u000D|\\u000A)*\\]))/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n  this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();module.exports=SparqlParser\n","var XSD_INTEGER = 'http://www.w3.org/2001/XMLSchema#integer';\nvar XSD_STRING = 'http://www.w3.org/2001/XMLSchema#string';\n\nfunction Generator(options) {\n  this._options = options = options || {};\n\n  var prefixes = options.prefixes || {};\n  this._prefixByIri = {};\n  var prefixIris = [];\n  for (var prefix in prefixes) {\n    var iri = prefixes[prefix];\n    if (isString(iri)) {\n      this._prefixByIri[iri] = prefix;\n      prefixIris.push(iri);\n    }\n  }\n  var iriList = prefixIris.join('|').replace(/[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n  this._prefixRegex = new RegExp('^(' + iriList + ')([a-zA-Z][\\\\-_a-zA-Z0-9]*)$');\n  this._usedPrefixes = {};\n  this._sparqlStar = options.sparqlStar;\n  this._indent =  isString(options.indent)  ? options.indent  : '  ';\n  this._newline = isString(options.newline) ? options.newline : '\\n';\n  this._explicitDatatype = Boolean(options.explicitDatatype);\n}\n\n// Converts the parsed query object into a SPARQL query\nGenerator.prototype.toQuery = function (q) {\n  var query = '';\n\n  if (q.queryType)\n    query += q.queryType.toUpperCase() + ' ';\n  if (q.reduced)\n    query += 'REDUCED ';\n  if (q.distinct)\n    query += 'DISTINCT ';\n\n  if (q.variables){\n    query += mapJoin(q.variables, undefined, function (variable) {\n      // String variable\n      if (/^[?$]/.test(variable))\n        return variable;\n      // Entity object\n      else if (isTerm(variable))\n        return this.toEntity(variable);\n      // Expression object\n      else\n        return '(' + this.toExpression(variable.expression) +\n          ' AS ' + variableToString(variable.variable) + ')';\n    }, this) + ' ';\n  }\n  else if (q.template)\n    query += this.group(q.template, true) + this._newline;\n\n  if (q.from)\n    query += this.graphs('FROM ', q.from.default) + this.graphs('FROM NAMED ', q.from.named);\n  if (q.where)\n    query += 'WHERE ' + this.group(q.where, true) + this._newline;\n\n  if (q.updates)\n    query += mapJoin(q.updates, ';' + this._newline, this.toUpdate, this);\n\n  if (q.group)\n    query += 'GROUP BY ' + mapJoin(q.group, undefined, function (it) {\n      var result = isTerm(it.expression)\n        ? this.toEntity(it.expression)\n        : '(' + this.toExpression(it.expression) + ')';\n      return it.variable ? '(' + result + ' AS ' + variableToString(it.variable) + ')' : result;\n    }, this) + this._newline;\n  if (q.having)\n    query += 'HAVING (' + mapJoin(q.having, undefined, this.toExpression, this) + ')' + this._newline;\n  if (q.order)\n    query += 'ORDER BY ' + mapJoin(q.order, undefined, function (it) {\n      var expr = '(' + this.toExpression(it.expression) + ')';\n      return !it.descending ? expr : 'DESC ' + expr;\n    }, this) + this._newline;\n\n  if (q.offset)\n    query += 'OFFSET ' + q.offset + this._newline;\n  if (q.limit)\n    query += 'LIMIT ' + q.limit + this._newline;\n\n  if (q.values)\n    query += this.values(q);\n\n  // stringify prefixes at the end to mark used ones\n  query = this.baseAndPrefixes(q) + query;\n  return query.trim();\n};\n\nGenerator.prototype.baseAndPrefixes = function (q) {\n  var base = q.base ? ('BASE <' + q.base + '>' + this._newline) : '';\n  var prefixes = '';\n  for (var key in q.prefixes) {\n    if (this._options.allPrefixes || this._usedPrefixes[key])\n      prefixes += 'PREFIX ' + key + ': <' + q.prefixes[key] + '>' + this._newline;\n  }\n  return base + prefixes;\n};\n\n// Converts the parsed SPARQL pattern into a SPARQL pattern\nGenerator.prototype.toPattern = function (pattern) {\n  var type = pattern.type || (pattern instanceof Array) && 'array' ||\n             (pattern.subject && pattern.predicate && pattern.object ? 'triple' : '');\n  if (!(type in this))\n    throw new Error('Unknown entry type: ' + type);\n  return this[type](pattern);\n};\n\nGenerator.prototype.triple = function (t) {\n  return this.toEntity(t.subject) + ' ' + this.toEntity(t.predicate) + ' ' + this.toEntity(t.object) + '.';\n};\n\nGenerator.prototype.array = function (items) {\n  return mapJoin(items, this._newline, this.toPattern, this);\n};\n\nGenerator.prototype.bgp = function (bgp) {\n  return this.encodeTriples(bgp.triples);\n};\n\nGenerator.prototype.encodeTriples = function (triples) {\n  if (!triples.length)\n    return '';\n\n  var parts = [], subject = undefined, predicate = undefined;\n  for (var i = 0; i < triples.length; i++) {\n    var triple = triples[i];\n    // Triple with different subject\n    if (!equalTerms(triple.subject, subject)) {\n      // Terminate previous triple\n      if (subject)\n        parts.push('.' + this._newline);\n      subject = triple.subject;\n      predicate = triple.predicate;\n      parts.push(this.toEntity(subject), ' ', this.toEntity(predicate));\n    }\n    // Triple with same subject but different predicate\n    else if (!equalTerms(triple.predicate, predicate)) {\n      predicate = triple.predicate;\n      parts.push(';' + this._newline, this._indent, this.toEntity(predicate));\n    }\n    // Triple with same subject and predicate\n    else {\n      parts.push(',');\n    }\n    parts.push(' ', this.toEntity(triple.object));\n  }\n  parts.push('.');\n\n  return parts.join('');\n}\n\nGenerator.prototype.graph = function (graph) {\n  return 'GRAPH ' + this.toEntity(graph.name) + ' ' + this.group(graph);\n};\n\nGenerator.prototype.graphs = function (keyword, graphs) {\n  return !graphs || graphs.length === 0 ? '' :\n    mapJoin(graphs, '', function (g) { return keyword + this.toEntity(g) + this._newline; }, this)\n}\n\nGenerator.prototype.group = function (group, inline) {\n  group = inline !== true ? this.array(group.patterns || group.triples)\n                          : this.toPattern(group.type !== 'group' ? group : group.patterns);\n  return group.indexOf(this._newline) === -1 ? '{ ' + group + ' }' : '{' + this._newline + this.indent(group) + this._newline + '}';\n};\n\nGenerator.prototype.query = function (query) {\n  return this.toQuery(query);\n};\n\nGenerator.prototype.filter = function (filter) {\n  return 'FILTER(' + this.toExpression(filter.expression) + ')';\n};\n\nGenerator.prototype.bind = function (bind) {\n  return 'BIND(' + this.toExpression(bind.expression) + ' AS ' + variableToString(bind.variable) + ')';\n};\n\nGenerator.prototype.optional = function (optional) {\n  return 'OPTIONAL ' + this.group(optional);\n};\n\nGenerator.prototype.union = function (union) {\n  return mapJoin(union.patterns, this._newline + 'UNION' + this._newline, function (p) { return this.group(p, true); }, this);\n};\n\nGenerator.prototype.minus = function (minus) {\n  return 'MINUS ' + this.group(minus);\n};\n\nGenerator.prototype.values = function (valuesList) {\n  // Gather unique keys\n  var keys = Object.keys(valuesList.values.reduce(function (keyHash, values) {\n    for (var key in values) keyHash[key] = true;\n    return keyHash;\n  }, {}));\n  // Check whether simple syntax can be used\n  var lparen, rparen;\n  if (keys.length === 1) {\n    lparen = rparen = '';\n  } else {\n    lparen = '(';\n    rparen = ')';\n  }\n  // Create value rows\n  return 'VALUES ' + lparen + keys.join(' ') + rparen + ' {' + this._newline +\n    mapJoin(valuesList.values, this._newline, function (values) {\n      return '  ' + lparen + mapJoin(keys, undefined, function (key) {\n        return values[key] ? this.toEntity(values[key]) : 'UNDEF';\n      }, this) + rparen;\n    }, this) + this._newline + '}';\n};\n\nGenerator.prototype.service = function (service) {\n  return 'SERVICE ' + (service.silent ? 'SILENT ' : '') + this.toEntity(service.name) + ' ' +\n         this.group(service);\n};\n\n// Converts the parsed expression object into a SPARQL expression\nGenerator.prototype.toExpression = function (expr) {\n  if (isTerm(expr)) {\n    return this.toEntity(expr);\n  }\n  switch (expr.type.toLowerCase()) {\n    case 'aggregate':\n      return expr.aggregation.toUpperCase() +\n             '(' + (expr.distinct ? 'DISTINCT ' : '') + this.toExpression(expr.expression) +\n             (typeof expr.separator === 'string' ? '; SEPARATOR = ' + '\"' + expr.separator.replace(escape, escapeReplacer) + '\"' : '') + ')';\n    case 'functioncall':\n      return this.toEntity(expr.function) + '(' + mapJoin(expr.args, ', ', this.toExpression, this) + ')';\n    case 'operation':\n      var operator = expr.operator.toUpperCase(), args = expr.args || [];\n      switch (expr.operator.toLowerCase()) {\n      // Infix operators\n      case '<':\n      case '>':\n      case '>=':\n      case '<=':\n      case '&&':\n      case '||':\n      case '=':\n      case '!=':\n      case '+':\n      case '-':\n      case '*':\n      case '/':\n          return (isTerm(args[0]) ? this.toEntity(args[0]) : '(' + this.toExpression(args[0]) + ')') +\n                 ' ' + operator + ' ' +\n                 (isTerm(args[1]) ? this.toEntity(args[1]) : '(' + this.toExpression(args[1]) + ')');\n      // Unary operators\n      case '!':\n        return '!(' + this.toExpression(args[0]) + ')';\n      case 'uplus':\n        return '+(' + this.toExpression(args[0]) + ')';\n      case 'uminus':\n        return '-(' + this.toExpression(args[0]) + ')';\n      // IN and NOT IN\n      case 'notin':\n        operator = 'NOT IN';\n      case 'in':\n        return this.toExpression(args[0]) + ' ' + operator +\n               '(' + (isString(args[1]) ? args[1] : mapJoin(args[1], ', ', this.toExpression, this)) + ')';\n      // EXISTS and NOT EXISTS\n      case 'notexists':\n        operator = 'NOT EXISTS';\n      case 'exists':\n        return operator + ' ' + this.group(args[0], true);\n      // Other expressions\n      default:\n        return operator + '(' + mapJoin(args, ', ', this.toExpression, this) + ')';\n      }\n    default:\n      throw new Error('Unknown expression type: ' + expr.type);\n  }\n};\n\n// Converts the parsed entity (or property path) into a SPARQL entity\nGenerator.prototype.toEntity = function (value) {\n  if (isTerm(value)) {\n    switch (value.termType) {\n    // variable, * selector, or blank node\n    case 'Wildcard':\n      return '*';\n    case 'Variable':\n      return variableToString(value);\n    case 'BlankNode':\n      return '_:' + value.value;\n    // literal\n    case 'Literal':\n      var lexical = value.value || '', language = value.language || '', datatype = value.datatype;\n      value = '\"' + lexical.replace(escape, escapeReplacer) + '\"';\n      if (language){\n        value += '@' + language;\n      } else if (datatype) {\n        // Abbreviate literals when possible\n        if (!this._explicitDatatype) {\n          switch (datatype.value) {\n          case XSD_STRING:\n            return value;\n          case XSD_INTEGER:\n            if (/^\\d+$/.test(lexical))\n              // Add space to avoid confusion with decimals in broken parsers\n              return lexical + ' ';\n          }\n        }\n        value += '^^' + this.encodeIRI(datatype.value);\n      }\n      return value;\n    case 'Quad':\n      if (!this._sparqlStar)\n          throw new Error('SPARQL* support is not enabled');\n\n      if (value.graph && value.graph.termType !== \"DefaultGraph\") {\n        return '<< GRAPH ' +\n          this.toEntity(value.graph) +\n          ' { ' +\n          this.toEntity(value.subject) + ' ' +\n          this.toEntity(value.predicate) + ' ' +\n          this.toEntity(value.object) +\n          ' } ' +\n          ' >>'\n      }\n      else {\n        return (\n          '<< ' +\n          this.toEntity(value.subject) + ' ' +\n          this.toEntity(value.predicate) + ' ' +\n          this.toEntity(value.object) +\n          ' >>'\n        );\n      }\n    // IRI\n    default:\n      return this.encodeIRI(value.value);\n    }\n  }\n  // property path\n  else {\n    var items = value.items.map(this.toEntity, this), path = value.pathType;\n    switch (path) {\n    // prefix operator\n    case '^':\n    case '!':\n      return path + items[0];\n    // postfix operator\n    case '*':\n    case '+':\n    case '?':\n      return '(' + items[0] + path + ')';\n    // infix operator\n    default:\n      return '(' + items.join(path) + ')';\n    }\n  }\n};\nvar escape = /[\"\\\\\\t\\n\\r\\b\\f]/g,\n    escapeReplacer = function (c) { return escapeReplacements[c]; },\n    escapeReplacements = { '\\\\': '\\\\\\\\', '\"': '\\\\\"', '\\t': '\\\\t',\n                           '\\n': '\\\\n', '\\r': '\\\\r', '\\b': '\\\\b', '\\f': '\\\\f' };\n\n// Represent the IRI, as a prefixed name when possible\nGenerator.prototype.encodeIRI = function (iri) {\n  var prefixMatch = this._prefixRegex.exec(iri);\n  if (prefixMatch) {\n    var prefix = this._prefixByIri[prefixMatch[1]];\n    this._usedPrefixes[prefix] = true;\n    return prefix + ':' + prefixMatch[2];\n  }\n  return '<' + iri + '>';\n};\n\n// Converts the parsed update object into a SPARQL update clause\nGenerator.prototype.toUpdate = function (update) {\n  switch (update.type || update.updateType) {\n  case 'load':\n    return 'LOAD' + (update.source ? ' ' + this.toEntity(update.source) : '') +\n           (update.destination ? ' INTO GRAPH ' + this.toEntity(update.destination) : '');\n  case 'insert':\n    return 'INSERT DATA '  + this.group(update.insert, true);\n  case 'delete':\n    return 'DELETE DATA '  + this.group(update.delete, true);\n  case 'deletewhere':\n    return 'DELETE WHERE ' + this.group(update.delete, true);\n  case 'insertdelete':\n    return (update.graph ? 'WITH ' + this.toEntity(update.graph) + this._newline : '') +\n           (update.delete.length ? 'DELETE ' + this.group(update.delete, true) + this._newline : '') +\n           (update.insert.length ? 'INSERT ' + this.group(update.insert, true) + this._newline : '') +\n           (update.using ? this.graphs('USING ', update.using.default) : '') +\n           (update.using ? this.graphs('USING NAMED ', update.using.named) : '') +\n           'WHERE ' + this.group(update.where, true);\n  case 'add':\n  case 'copy':\n  case 'move':\n    return update.type.toUpperCase()+ ' ' +  (update.silent ? 'SILENT ' : '') + (update.source.default ? 'DEFAULT' : this.toEntity(update.source.name)) +\n           ' TO ' + this.toEntity(update.destination.name);\n  case 'create':\n  case 'clear':\n  case 'drop':\n    return update.type.toUpperCase() + (update.silent ? ' SILENT ' : ' ') + (\n      update.graph.default ? 'DEFAULT' :\n      update.graph.named ? 'NAMED' :\n      update.graph.all ? 'ALL' :\n      ('GRAPH ' + this.toEntity(update.graph.name))\n    );\n  default:\n    throw new Error('Unknown update query type: ' + update.type);\n  }\n};\n\n// Indents each line of the string\nGenerator.prototype.indent = function(text) { return text.replace(/^/gm, this._indent); }\n\nfunction variableToString(variable){\n  return '?' + variable.value;\n}\n\n// Checks whether the object is a string\nfunction isString(object) { return typeof object === 'string'; }\n\n// Checks whether the object is a Term\nfunction isTerm(object) {\n  return typeof object.termType === 'string';\n}\n\n// Checks whether term1 and term2 are equivalent without `.equals()` prototype method\nfunction equalTerms(term1, term2) {\n  if (!term1 || !isTerm(term1)) { return false; }\n  if (!term2 || !isTerm(term2)) { return false; }\n  if (term1.termType !== term2.termType) { return false; }\n  switch (term1.termType) {\n    case 'Literal':\n      return term1.value === term2.value\n          && term1.language === term2.language\n          && equalTerms(term1.datatype, term2.datatype);\n    case 'Quad':\n      return equalTerms(term1.subject, term2.subject)\n          && equalTerms(term1.predicate, term2.predicate)\n          && equalTerms(term1.object, term2.object)\n          && equalTerms(term1.graph, term2.graph);\n    default:\n      return term1.value === term2.value;\n  }\n}\n\n// Maps the array with the given function, and joins the results using the separator\nfunction mapJoin(array, sep, func, self) {\n  return array.map(func, self).join(isString(sep) ? sep : ' ');\n}\n\n/**\n * @param options {\n *   allPrefixes: boolean,\n *   indentation: string,\n *   newline: string\n * }\n */\nfunction _Generator(options = {}) {\n  return {\n    stringify: function (query) {\n      var currentOptions = Object.create(options);\n      currentOptions.prefixes = query.prefixes;\n      return new Generator(currentOptions).toQuery(query);\n    },\n    createGenerator: function() { return new Generator(options); }\n  };\n};\nmodule.exports = {\n  Generator: _Generator,\n};\n","const { Parser } = require('./lib/SparqlParser');\nconst { Generator } = require('./lib/SparqlGenerator');\nconst { Wildcard } = require('./lib/Wildcard');\nconst { DataFactory } = require('rdf-data-factory');\n\n/**\n * Creates a SPARQL parser with the given pre-defined prefixes and base IRI\n * @param options {\n *   prefixes?: { [prefix: string]: string },\n *   baseIRI?: string,\n *   factory?: import('rdf-js').DataFactory,\n *   sparqlStar?: boolean,\n *   skipValidation?: boolean,\n *   skipUngroupedVariableCheck?: boolean\n * }\n */\nfunction _Parser({\n    prefixes,\n    baseIRI,\n    factory,\n    pathOnly,\n    sparqlStar,\n    skipValidation,\n    skipUngroupedVariableCheck,\n} = {}) {\n  // Create a copy of the prefixes\n  const prefixesCopy = {};\n  for (const prefix in prefixes ?? {})\n    prefixesCopy[prefix] = prefixes[prefix];\n\n  // Create a new parser with the given prefixes\n  // (Workaround for https://github.com/zaach/jison/issues/241)\n  const parser = new Parser();\n  parser.parse = function () {\n    Parser.base = baseIRI || '';\n    Parser.prefixes = Object.create(prefixesCopy);\n    Parser.factory = factory || new DataFactory();\n    Parser.sparqlStar = Boolean(sparqlStar);\n    Parser.pathOnly = Boolean(pathOnly);\n    // We keep skipUngroupedVariableCheck for compatibility reasons.\n    Parser.skipValidation = Boolean(skipValidation) || Boolean(skipUngroupedVariableCheck)\n    return Parser.prototype.parse.apply(parser, arguments);\n  };\n  parser._resetBlanks = Parser._resetBlanks;\n  return parser;\n}\n\nmodule.exports = {\n  Parser: _Parser,\n  Generator,\n  Wildcard,\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst A = __importStar(require(\"./algebra\"));\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst sparqljs_1 = require(\"sparqljs\");\nclass Factory {\n    constructor(dataFactory) {\n        this.dataFactory = dataFactory || new rdf_data_factory_1.DataFactory();\n        this.stringType = this.createTerm('http://www.w3.org/2001/XMLSchema#string');\n    }\n    createAlt(input, flatten = true) { return this.flattenMulti({ type: A.types.ALT, input }, flatten); }\n    createAsk(input) { return { type: A.types.ASK, input }; }\n    createBoundAggregate(variable, aggregate, expression, distinct, separator) {\n        const result = this.createAggregateExpression(aggregate, expression, distinct, separator);\n        result.variable = variable;\n        return result;\n    }\n    createBgp(patterns) { return { type: A.types.BGP, patterns }; }\n    createConstruct(input, template) { return { type: A.types.CONSTRUCT, input, template }; }\n    createDescribe(input, terms) { return { type: A.types.DESCRIBE, input, terms }; }\n    createDistinct(input) { return { type: A.types.DISTINCT, input }; }\n    createExtend(input, variable, expression) { return { type: A.types.EXTEND, input, variable, expression }; }\n    createFrom(input, def, named) { return { type: A.types.FROM, input, default: def, named }; }\n    createFilter(input, expression) { return { type: A.types.FILTER, input, expression }; }\n    createGraph(input, name) { return { type: A.types.GRAPH, input, name }; }\n    createGroup(input, variables, aggregates) { return { type: A.types.GROUP, input, variables, aggregates }; }\n    createInv(path) { return { type: A.types.INV, path }; }\n    createJoin(input, flatten = true) { return this.flattenMulti({ type: A.types.JOIN, input }, flatten); }\n    createLeftJoin(left, right, expression) {\n        if (expression)\n            return { type: A.types.LEFT_JOIN, input: [left, right], expression };\n        return { type: A.types.LEFT_JOIN, input: [left, right] };\n    }\n    createLink(iri) { return { type: A.types.LINK, iri }; }\n    createMinus(left, right) { return { type: A.types.MINUS, input: [left, right] }; }\n    createNop() { return { type: A.types.NOP }; }\n    createNps(iris) { return { type: A.types.NPS, iris }; }\n    createOneOrMorePath(path) { return { type: A.types.ONE_OR_MORE_PATH, path }; }\n    createOrderBy(input, expressions) { return { type: A.types.ORDER_BY, input, expressions }; }\n    createPath(subject, predicate, object, graph) {\n        if (graph)\n            return { type: A.types.PATH, subject, predicate, object, graph };\n        return { type: A.types.PATH, subject, predicate, object, graph: this.dataFactory.defaultGraph() };\n    }\n    createPattern(subject, predicate, object, graph) {\n        const pattern = this.dataFactory.quad(subject, predicate, object, graph);\n        pattern.type = A.types.PATTERN;\n        return pattern;\n    }\n    createProject(input, variables) { return { type: A.types.PROJECT, input, variables }; }\n    createReduced(input) { return { type: A.types.REDUCED, input }; }\n    createSeq(input, flatten = true) { return this.flattenMulti({ type: A.types.SEQ, input }, flatten); }\n    createService(input, name, silent) { return { type: A.types.SERVICE, input, name, silent: Boolean(silent) }; }\n    createSlice(input, start, length) {\n        start = start || 0;\n        if (length !== undefined)\n            return { type: A.types.SLICE, input, start, length };\n        return { type: A.types.SLICE, input, start };\n    }\n    createUnion(input, flatten = true) { return this.flattenMulti({ type: A.types.UNION, input }, flatten); }\n    createValues(variables, bindings) { return { type: A.types.VALUES, variables, bindings }; }\n    createZeroOrMorePath(path) { return { type: A.types.ZERO_OR_MORE_PATH, path }; }\n    createZeroOrOnePath(path) { return { type: A.types.ZERO_OR_ONE_PATH, path }; }\n    createAggregateExpression(aggregator, expression, distinct, separator) {\n        if (separator)\n            return { type: A.types.EXPRESSION, expressionType: A.expressionTypes.AGGREGATE, aggregator: aggregator, expression, separator, distinct };\n        return { type: A.types.EXPRESSION, expressionType: A.expressionTypes.AGGREGATE, aggregator: aggregator, expression, distinct };\n    }\n    createExistenceExpression(not, input) { return { type: A.types.EXPRESSION, expressionType: A.expressionTypes.EXISTENCE, not, input }; }\n    createNamedExpression(name, args) { return { type: A.types.EXPRESSION, expressionType: A.expressionTypes.NAMED, name, args }; }\n    createOperatorExpression(operator, args) { return { type: A.types.EXPRESSION, expressionType: A.expressionTypes.OPERATOR, operator, args }; }\n    createTermExpression(term) { return { type: A.types.EXPRESSION, expressionType: A.expressionTypes.TERM, term }; }\n    createWildcardExpression() { return { type: A.types.EXPRESSION, expressionType: A.expressionTypes.WILDCARD, wildcard: new sparqljs_1.Wildcard() }; }\n    createTerm(str) {\n        if (str[0] === '$') {\n            str = str.replace('$', '?');\n        }\n        return (0, rdf_string_1.stringToTerm)(str, this.dataFactory);\n    }\n    // Update functions\n    createCompositeUpdate(updates) { return { type: A.types.COMPOSITE_UPDATE, updates }; }\n    createDeleteInsert(deleteQuads, insertQuads, where) {\n        const result = { type: A.types.DELETE_INSERT };\n        if (deleteQuads)\n            result.delete = deleteQuads;\n        if (insertQuads)\n            result.insert = insertQuads;\n        if (where)\n            result.where = where;\n        return result;\n    }\n    createLoad(source, destination, silent) {\n        const result = { type: A.types.LOAD, source };\n        if (destination)\n            result.destination = destination;\n        return this.addSilent(result, Boolean(silent));\n    }\n    createClear(source, silent) {\n        return this.addSilent({ type: A.types.CLEAR, source }, Boolean(silent));\n    }\n    createCreate(source, silent) {\n        return this.addSilent({ type: A.types.CREATE, source }, Boolean(silent));\n    }\n    createDrop(source, silent) {\n        return this.addSilent({ type: A.types.DROP, source }, Boolean(silent));\n    }\n    createAdd(source, destination, silent) {\n        return this.addSilent({ type: A.types.ADD, source, destination }, Boolean(silent));\n    }\n    createMove(source, destination, silent) {\n        return this.addSilent({ type: A.types.MOVE, source, destination }, Boolean(silent));\n    }\n    createCopy(source, destination, silent) {\n        return this.addSilent({ type: A.types.COPY, source, destination }, Boolean(silent));\n    }\n    addSilent(input, silent) {\n        if (silent)\n            input.silent = silent;\n        return input;\n    }\n    flattenMulti(input, flatten) {\n        if (!flatten) {\n            return input;\n        }\n        const type = input.type;\n        const children = input.input;\n        let newChildren = [];\n        for (const child of children) {\n            if (child.type === type) {\n                newChildren.push(...child.input);\n            }\n            else {\n                newChildren.push(child);\n            }\n        }\n        input.input = newChildren;\n        return input;\n    }\n}\nexports.default = Factory;\n//# sourceMappingURL=factory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.matchPatternMappings = exports.matchPatternComplete = exports.matchPattern = exports.matchTerm = exports.getValueNestedPath = exports.someTermsNested = exports.someTerms = exports.everyTermsNested = exports.everyTerms = exports.reduceTermsNested = exports.reduceTerms = exports.mapTermsNested = exports.mapTerms = exports.filterQuadTermNamesNested = exports.filterQuadTermNames = exports.filterTermsNested = exports.filterTerms = exports.forEachTermsNested = exports.forEachTerms = exports.collectNamedTerms = exports.getNamedTerms = exports.getTermsNested = exports.getTerms = exports.TRIPLE_TERM_NAMES = exports.QUAD_TERM_NAMES = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst DF = new rdf_data_factory_1.DataFactory();\n/**\n * All available quad term names.\n * @type {[string , string , string , string]}\n */\nexports.QUAD_TERM_NAMES = ['subject', 'predicate', 'object', 'graph'];\n/**\n * All available triple term names.\n * @type {[string , string , string]}\n */\nexports.TRIPLE_TERM_NAMES = ['subject', 'predicate', 'object'];\n/**\n * Get all terms in the given quad.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {boolean} ignoreDefaultGraph If true and the quad has the default graph as graph,\n *                                     this term will not be returned in the array.\n *                                     (default: false)\n * @return {Term[]} The available terms in the quad.\n */\nfunction getTerms(quad, ignoreDefaultGraph) {\n    if (ignoreDefaultGraph && quad.graph.termType === 'DefaultGraph') {\n        return [quad.subject, quad.predicate, quad.object];\n    }\n    return [quad.subject, quad.predicate, quad.object, quad.graph];\n}\nexports.getTerms = getTerms;\n/**\n * Get all terms in the given quad, including nested quads.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {boolean} ignoreDefaultGraph If true and the quad has the default graph as graph,\n *                                     this term will not be returned in the array.\n *                                     (default: false)\n * @return {Term[]} The available terms in the nested quad, excluding quad terms.\n */\nfunction getTermsNested(quad, ignoreDefaultGraph) {\n    const terms = [];\n    for (const term of getTerms(quad, ignoreDefaultGraph)) {\n        if (term.termType === 'Quad') {\n            getTermsNested(term, ignoreDefaultGraph).forEach(subTerm => terms.push(subTerm));\n        }\n        else {\n            terms.push(term);\n        }\n    }\n    return terms;\n}\nexports.getTermsNested = getTermsNested;\n/**\n * Convert the given quad to an array of named terms.\n * This is the reverse operation of {@link collectNamedTerms}.\n * @param {BaseQuad} quad An RDFJS quad.\n * @return {INamedTerm[]} An array of named terms.\n */\nfunction getNamedTerms(quad) {\n    return [\n        { key: 'subject', value: quad.subject },\n        { key: 'predicate', value: quad.predicate },\n        { key: 'object', value: quad.object },\n        { key: 'graph', value: quad.graph },\n    ];\n}\nexports.getNamedTerms = getNamedTerms;\n/**\n * Convert an array of named terms to an RDFJS quad.\n * This is the reverse operation of {@link getNamedTerms}.\n * @param {INamedTerm[]} namedTerms An array of named terms.\n * @param {(termName: QuadTermName) => Term} defaultCb An optional callback for when\n *                                                     certain terms are not available in the array.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @return {Q} The resulting RDFJS quad.\n * @template Q The type of quad to output, defaults to RDF.Quad.\n */\nfunction collectNamedTerms(namedTerms, defaultCb, dataFactory) {\n    const elements = {};\n    namedTerms.forEach((namedTerm) => elements[namedTerm.key] = namedTerm.value);\n    if (defaultCb) {\n        elements.subject = elements.subject || defaultCb('subject');\n        elements.predicate = elements.predicate || defaultCb('predicate');\n        elements.object = elements.object || defaultCb('object');\n        elements.graph = elements.graph || defaultCb('graph');\n    }\n    return (dataFactory || DF).quad(elements.subject, elements.predicate, elements.object, elements.graph);\n}\nexports.collectNamedTerms = collectNamedTerms;\n/**\n * Iterates over each term.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} cb A callback function.\n */\nfunction forEachTerms(quad, cb) {\n    cb(quad.subject, 'subject');\n    cb(quad.predicate, 'predicate');\n    cb(quad.object, 'object');\n    cb(quad.graph, 'graph');\n}\nexports.forEachTerms = forEachTerms;\n/**\n * Iterates over each leaf term, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} cb A callback function.\n * @param QuadTermName[] keys The current key path.\n */\nfunction forEachTermsNested(quad, cb, keys = []) {\n    if (quad.subject.termType === 'Quad') {\n        forEachTermsNested(quad.subject, cb, [...keys, 'subject']);\n    }\n    else {\n        cb(quad.subject, [...keys, 'subject']);\n    }\n    if (quad.predicate.termType === 'Quad') {\n        forEachTermsNested(quad.predicate, cb, [...keys, 'predicate']);\n    }\n    else {\n        cb(quad.predicate, [...keys, 'predicate']);\n    }\n    if (quad.object.termType === 'Quad') {\n        forEachTermsNested(quad.object, cb, [...keys, 'object']);\n    }\n    else {\n        cb(quad.object, [...keys, 'object']);\n    }\n    if (quad.graph.termType === 'Quad') {\n        forEachTermsNested(quad.graph, cb, [...keys, 'graph']);\n    }\n    else {\n        cb(quad.graph, [...keys, 'graph']);\n    }\n}\nexports.forEachTermsNested = forEachTermsNested;\n/**\n * Get all terms in the given quad that return true on the given filter function.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName) => boolean} filter A filter callback.\n * @return {Term[]} The list of matching terms.\n */\nfunction filterTerms(quad, filter) {\n    const terms = [];\n    if (filter(quad.subject, 'subject')) {\n        terms.push(quad.subject);\n    }\n    if (filter(quad.predicate, 'predicate')) {\n        terms.push(quad.predicate);\n    }\n    if (filter(quad.object, 'object')) {\n        terms.push(quad.object);\n    }\n    if (filter(quad.graph, 'graph')) {\n        terms.push(quad.graph);\n    }\n    return terms;\n}\nexports.filterTerms = filterTerms;\n/**\n * Get all terms in the given quad that return true on the given filter function, while recursing into quoted triples.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName) => boolean} filter A filter callback.\n * @param QuadTermName[] keys The current key path.\n * @return {Term[]} The list of matching terms.\n */\nfunction filterTermsNested(quad, filter, keys = []) {\n    let terms = [];\n    if (quad.subject.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.subject, filter, [...keys, 'subject'])];\n    }\n    else {\n        if (filter(quad.subject, [...keys, 'subject'])) {\n            terms.push(quad.subject);\n        }\n    }\n    if (quad.predicate.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.predicate, filter, [...keys, 'predicate'])];\n    }\n    else {\n        if (filter(quad.predicate, [...keys, 'predicate'])) {\n            terms.push(quad.predicate);\n        }\n    }\n    if (quad.object.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.object, filter, [...keys, 'object'])];\n    }\n    else {\n        if (filter(quad.object, [...keys, 'object'])) {\n            terms.push(quad.object);\n        }\n    }\n    if (quad.graph.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.graph, filter, [...keys, 'graph'])];\n    }\n    else {\n        if (filter(quad.graph, [...keys, 'graph'])) {\n            terms.push(quad.graph);\n        }\n    }\n    return terms;\n}\nexports.filterTermsNested = filterTermsNested;\n/**\n * Get all quad term names in the given quad that return true on the given filter function.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName, all: INamedTerm[]) => boolean} filter A filter callback.\n * @return {QuadTermName[]} The list of matching quad term names.\n */\nfunction filterQuadTermNames(quad, filter) {\n    const names = [];\n    if (filter(quad.subject, 'subject')) {\n        names.push('subject');\n    }\n    if (filter(quad.predicate, 'predicate')) {\n        names.push('predicate');\n    }\n    if (filter(quad.object, 'object')) {\n        names.push('object');\n    }\n    if (filter(quad.graph, 'graph')) {\n        names.push('graph');\n    }\n    return names;\n}\nexports.filterQuadTermNames = filterQuadTermNames;\n/**\n * Get all quad term names in the given quad that return true on the given filter function, while recursing into quoted triples.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName, all: INamedTerm[]) => boolean} filter A filter callback.\n * @param QuadTermName[] keys The current key path.\n * @return {QuadTermName[]} The list of matching quad term names.\n */\nfunction filterQuadTermNamesNested(quad, filter, keys = []) {\n    let names = [];\n    const keysS = [...keys, 'subject'];\n    if (quad.subject.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.subject, filter, keysS)];\n    }\n    else {\n        if (filter(quad.subject, keysS)) {\n            names.push(keysS);\n        }\n    }\n    const keysP = [...keys, 'predicate'];\n    if (quad.predicate.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.predicate, filter, keysP)];\n    }\n    else {\n        if (filter(quad.predicate, keysP)) {\n            names.push(keysP);\n        }\n    }\n    const keysO = [...keys, 'object'];\n    if (quad.object.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.object, filter, keysO)];\n    }\n    else {\n        if (filter(quad.object, keysO)) {\n            names.push(keysO);\n        }\n    }\n    const keysG = [...keys, 'graph'];\n    if (quad.graph.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.graph, filter, keysG)];\n    }\n    else {\n        if (filter(quad.graph, keysG)) {\n            names.push(keysG);\n        }\n    }\n    return names;\n}\nexports.filterQuadTermNamesNested = filterQuadTermNamesNested;\n/**\n * Map all terms of a quad.\n * @param {Quad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName) => Term} mapper A mapper function.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @return {Quad} A new RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction mapTerms(quad, mapper, dataFactory) {\n    return (dataFactory || DF).quad(mapper(quad.subject, 'subject'), mapper(quad.predicate, 'predicate'), mapper(quad.object, 'object'), mapper(quad.graph, 'graph'));\n}\nexports.mapTerms = mapTerms;\n/**\n * Map all terms of a quad, while recursing into quoted triples.\n * @param {Quad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName) => Term} mapper A mapper function.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @param QuadTermName[] keys The current key path.\n * @return {Quad} A new RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction mapTermsNested(quad, mapper, dataFactory, keys = []) {\n    return (dataFactory || DF).quad(quad.subject.termType === 'Quad' ?\n        mapTermsNested(quad.subject, mapper, dataFactory, [...keys, 'subject']) :\n        mapper(quad.subject, [...keys, 'subject']), quad.predicate.termType === 'Quad' ?\n        mapTermsNested(quad.predicate, mapper, dataFactory, [...keys, 'predicate']) :\n        mapper(quad.predicate, [...keys, 'predicate']), quad.object.termType === 'Quad' ?\n        mapTermsNested(quad.object, mapper, dataFactory, [...keys, 'object']) :\n        mapper(quad.object, [...keys, 'object']), quad.graph.termType === 'Quad' ?\n        mapTermsNested(quad.graph, mapper, dataFactory, [...keys, 'graph']) :\n        mapper(quad.graph, [...keys, 'graph']));\n}\nexports.mapTermsNested = mapTermsNested;\n/**\n * Reduce all terms of a quad.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(previousValue: U, currentValue: Term, key: QuadTermName) => U} reducer A reduce function.\n * @param {U} initialValue The initial value.\n * @return {U} The final value.\n */\nfunction reduceTerms(quad, reducer, initialValue) {\n    let value = initialValue;\n    value = reducer(value, quad.subject, 'subject');\n    value = reducer(value, quad.predicate, 'predicate');\n    value = reducer(value, quad.object, 'object');\n    return reducer(value, quad.graph, 'graph');\n}\nexports.reduceTerms = reduceTerms;\n/**\n * Reduce all terms of a quad, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(previousValue: U, currentValue: Term, key: QuadTermName) => U} reducer A reduce function.\n * @param {U} initialValue The initial value.\n * @param QuadTermName[] keys The current key path.\n * @return {U} The final value.\n */\nfunction reduceTermsNested(quad, reducer, initialValue, keys = []) {\n    let value = initialValue;\n    if (quad.subject.termType === 'Quad') {\n        value = reduceTermsNested(quad.subject, reducer, value, [...keys, 'subject']);\n    }\n    else {\n        value = reducer(value, quad.subject, [...keys, 'subject']);\n    }\n    if (quad.predicate.termType === 'Quad') {\n        value = reduceTermsNested(quad.predicate, reducer, value, [...keys, 'predicate']);\n    }\n    else {\n        value = reducer(value, quad.predicate, [...keys, 'predicate']);\n    }\n    if (quad.object.termType === 'Quad') {\n        value = reduceTermsNested(quad.object, reducer, value, [...keys, 'object']);\n    }\n    else {\n        value = reducer(value, quad.object, [...keys, 'object']);\n    }\n    if (quad.graph.termType === 'Quad') {\n        value = reduceTermsNested(quad.graph, reducer, value, [...keys, 'graph']);\n    }\n    else {\n        value = reducer(value, quad.graph, [...keys, 'graph']);\n    }\n    return value;\n}\nexports.reduceTermsNested = reduceTermsNested;\n/**\n * Determines whether all terms satisfy the specified test.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @return {boolean} If all terms satisfy the specified test.\n */\nfunction everyTerms(quad, checker) {\n    return checker(quad.subject, 'subject')\n        && checker(quad.predicate, 'predicate')\n        && checker(quad.object, 'object')\n        && checker(quad.graph, 'graph');\n}\nexports.everyTerms = everyTerms;\n/**\n * Determines whether all terms satisfy the specified test, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @param QuadTermName[] keys The current key path.\n * @return {boolean} If all terms satisfy the specified test.\n */\nfunction everyTermsNested(quad, checker, keys = []) {\n    return (quad.subject.termType === 'Quad' ?\n        everyTermsNested(quad.subject, checker, [...keys, 'subject']) :\n        checker(quad.subject, [...keys, 'subject']))\n        && (quad.predicate.termType === 'Quad' ?\n            everyTermsNested(quad.predicate, checker, [...keys, 'predicate']) :\n            checker(quad.predicate, [...keys, 'predicate']))\n        && (quad.object.termType === 'Quad' ?\n            everyTermsNested(quad.object, checker, [...keys, 'object']) :\n            checker(quad.object, [...keys, 'object']))\n        && (quad.graph.termType === 'Quad' ?\n            everyTermsNested(quad.graph, checker, [...keys, 'graph']) :\n            checker(quad.graph, [...keys, 'graph']));\n}\nexports.everyTermsNested = everyTermsNested;\n/**\n * Determines whether at least one term satisfies the specified test.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @return {boolean} If at least one term satisfies the specified test.\n */\nfunction someTerms(quad, checker) {\n    return checker(quad.subject, 'subject')\n        || checker(quad.predicate, 'predicate')\n        || checker(quad.object, 'object')\n        || checker(quad.graph, 'graph');\n}\nexports.someTerms = someTerms;\n/**\n * Determines whether at least one term satisfies the specified test, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @param QuadTermName[] keys The current key path.\n * @return {boolean} If at least one term satisfies the specified test.\n */\nfunction someTermsNested(quad, checker, keys = []) {\n    return (quad.subject.termType === 'Quad' ?\n        someTermsNested(quad.subject, checker, [...keys, 'subject']) :\n        checker(quad.subject, [...keys, 'subject']))\n        || (quad.predicate.termType === 'Quad' ?\n            someTermsNested(quad.predicate, checker, [...keys, 'predicate']) :\n            checker(quad.predicate, [...keys, 'predicate']))\n        || (quad.object.termType === 'Quad' ?\n            someTermsNested(quad.object, checker, [...keys, 'object']) :\n            checker(quad.object, [...keys, 'object']))\n        || (quad.graph.termType === 'Quad' ?\n            someTermsNested(quad.graph, checker, [...keys, 'graph']) :\n            checker(quad.graph, [...keys, 'graph']));\n}\nexports.someTermsNested = someTermsNested;\n/**\n * Get the nested value inside a quoted triple by the given path of quad keys.\n * @param term A term, that can be a quoted triple.\n * @param keys A path of quad term names.\n */\nfunction getValueNestedPath(term, keys) {\n    if (keys.length === 0) {\n        return term;\n    }\n    if (term.termType === 'Quad') {\n        return getValueNestedPath(term[keys[0]], keys.slice(1));\n    }\n    throw new Error(`Tried to get ${keys[0]} from term of type ${term.termType}`);\n}\nexports.getValueNestedPath = getValueNestedPath;\n/**\n * Check if the given terms match.\n *\n * At least one of the following must be true:\n * * Term B is undefined.\n * * Term B is a variable.\n * * Term A and B are quads, and return true for `matchPatternComplete`.\n * * Quad term and term are equal (`termB.equals(termA)` return true)\n *\n * @param termA A term.\n * @param termB An optional term.\n */\nfunction matchTerm(termA, termB) {\n    return !termB\n        || termB.termType === 'Variable'\n        || (termB.termType === 'Quad' && termA.termType === 'Quad' && matchPatternComplete(termA, termB))\n        || termB.equals(termA);\n}\nexports.matchTerm = matchTerm;\n/**\n * Check if the given quad matches with the given quad terms.\n *\n * Each term must match at least one of the following:\n * * Term is undefined.\n * * Term is a variable.\n * * Quad term and term are both quads, and return true for `matchPatternComplete`.\n * * Quad term and term are equal (`quadTerm.equals(term)` return true)\n *\n * @param {BaseQuad} quad A quad to match with (can not contain variables).\n * @param {Term} subject An optional subject.\n * @param {Term} predicate An optional predicate.\n * @param {Term} object An optional object.\n * @param {Term} graph An optional graph.\n * @return {boolean} If the quad matches with the quad terms.\n */\nfunction matchPattern(quad, subject, predicate, object, graph) {\n    return matchTerm(quad.subject, subject)\n        && matchTerm(quad.predicate, predicate)\n        && matchTerm(quad.object, object)\n        && matchTerm(quad.graph, graph);\n}\nexports.matchPattern = matchPattern;\n/**\n * Check if the first quad matches with all terms from the second quad.\n *\n * Each term must match at least one of the following:\n * * Quad2 term is a variable.\n * * Quad1 term and Quad2 term are equal (`term1.equals(term2)` return true)\n *\n * @param {BaseQuad} quad A quad (can not contain variables).\n * @param {BaseQuad} pattern A quad pattern (can contain variables).\n * @return {boolean} If the quad terms match.\n */\nfunction matchPatternComplete(quad, pattern) {\n    return matchPattern(quad, pattern.subject, pattern.predicate, pattern.object, pattern.graph);\n}\nexports.matchPatternComplete = matchPatternComplete;\nfunction matchPatternMappings(quad, pattern, opt = {}) {\n    const map = {};\n    function match(_pattern, _quad) {\n        return everyTerms(_pattern, (t1, key) => {\n            var _a, _b;\n            const t2 = _quad[key];\n            switch (t1.termType) {\n                case 'Variable':\n                    return (opt.skipVarMapping && t2.termType === 'Variable')\n                        || ((_b = (_a = map[t1.value]) === null || _a === void 0 ? void 0 : _a.equals(t2)) !== null && _b !== void 0 ? _b : (map[t1.value] = t2, true));\n                case 'Quad':\n                    return t2.termType === 'Quad' && match(t1, t2);\n                default:\n                    return t1.equals(t2);\n            }\n        });\n    }\n    return match(pattern, quad) && (opt.returnMappings ? map : true);\n}\nexports.matchPatternMappings = matchPatternMappings;\n//# sourceMappingURL=QuadTermUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getQuads = exports.getDefaultGraphs = exports.getVariables = exports.getLiterals = exports.getBlankNodes = exports.getNamedNodes = exports.getTermsOfType = exports.uniqTerms = exports.TERM_TYPES = void 0;\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * All known term types.\n * @see RDF.Term\n * @type {[string , string , string , string , string, string]}\n */\nexports.TERM_TYPES = ['NamedNode', 'BlankNode', 'Literal', 'Variable', 'DefaultGraph', 'Quad'];\n/*\n * Utility methods for handling RDFJS terms.\n */\n/**\n * Create an array of unique terms from the given array.\n * @param {T[]} terms An array of RDFJS terms.\n * @return {T[]} A new array of unique RDFJS terms.\n */\nfunction uniqTerms(terms) {\n    const hash = {};\n    return terms.filter(term => {\n        const termString = (0, rdf_string_1.termToString)(term);\n        return !(termString in hash) && (hash[termString] = true);\n    });\n}\nexports.uniqTerms = uniqTerms;\n/**\n * Find all terms of the given type in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @param {\"NamedNode\" | \"BlankNode\" | \"Literal\" | \"Variable\" | \"DefaultGraph\" | \"Quad\"} termType A term type.\n * @return {Term[]} A new array with elements from the given array only containing elements of the given type.\n */\nfunction getTermsOfType(terms, termType) {\n    return terms.filter((term) => term.termType === termType);\n}\nexports.getTermsOfType = getTermsOfType;\n/**\n * Find all named nodes in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {NamedNode[]} A new array with elements from the given array only containing named nodes.\n */\nfunction getNamedNodes(terms) {\n    return getTermsOfType(terms, 'NamedNode');\n}\nexports.getNamedNodes = getNamedNodes;\n/**\n * Find all blank nodes in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {BlankNode[]} A new array with elements from the given array only containing blank nodes.\n */\nfunction getBlankNodes(terms) {\n    return getTermsOfType(terms, 'BlankNode');\n}\nexports.getBlankNodes = getBlankNodes;\n/**\n * Find all literals in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {Literal[]} A new array with elements from the given array only containing literals.\n */\nfunction getLiterals(terms) {\n    return getTermsOfType(terms, 'Literal');\n}\nexports.getLiterals = getLiterals;\n/**\n * Find all variables in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {Variable[]} A new array with elements from the given array only containing variables.\n */\nfunction getVariables(terms) {\n    return getTermsOfType(terms, 'Variable');\n}\nexports.getVariables = getVariables;\n/**\n * Find all default graphs in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {DefaultGraph[]} A new array with elements from the given array only containing default graphs.\n */\nfunction getDefaultGraphs(terms) {\n    return getTermsOfType(terms, 'DefaultGraph');\n}\nexports.getDefaultGraphs = getDefaultGraphs;\n/**\n * Find all quads in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {BaseQuad[]} A new array with elements from the given array only containing quads.\n */\nfunction getQuads(terms) {\n    return getTermsOfType(terms, 'Quad');\n}\nexports.getQuads = getQuads;\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/QuadTermUtil\"), exports);\n__exportStar(require(\"./lib/TermUtil\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst algebra_1 = require(\"./algebra\");\nconst factory_1 = __importDefault(require(\"./factory\"));\nconst rdf_terms_1 = require(\"rdf-terms\");\nclass Util {\n    /**\n     * Flattens an array of arrays to an array.\n     * @param arr - Array of arrays\n     */\n    static flatten(arr) {\n        return Array.prototype.concat(...arr).filter(x => x);\n    }\n    /**\n     * Outputs a JSON object corresponding to the input algebra-like.\n     */\n    static objectify(algebra) {\n        if (algebra.termType) {\n            if (algebra.termType === 'Quad') {\n                return {\n                    type: 'pattern',\n                    termType: 'Quad',\n                    subject: Util.objectify(algebra.subject),\n                    predicate: Util.objectify(algebra.predicate),\n                    object: Util.objectify(algebra.object),\n                    graph: Util.objectify(algebra.graph),\n                };\n            }\n            else {\n                let result = { termType: algebra.termType, value: algebra.value };\n                if (algebra.language)\n                    result.language = algebra.language;\n                if (algebra.datatype)\n                    result.datatype = Util.objectify(algebra.datatype);\n                return result;\n            }\n        }\n        if (Array.isArray(algebra))\n            return algebra.map(e => Util.objectify(e));\n        if (algebra === Object(algebra)) {\n            let result = {};\n            for (let key of Object.keys(algebra))\n                result[key] = Util.objectify(algebra[key]);\n            return result;\n        }\n        return algebra;\n    }\n    /**\n     * Detects all in-scope variables.\n     * In practice this means iterating through the entire algebra tree, finding all variables,\n     * and stopping when a project function is found.\n     * @param {Operation} op - Input algebra tree.\n     * @returns {Variable[]} - List of unique in-scope variables.\n     */\n    static inScopeVariables(op) {\n        const variables = [];\n        function addVariable(v) {\n            if (!variables.find(v2 => v.value === v2.value))\n                variables.push(v);\n        }\n        function recurseTerm(quad) {\n            if (quad.subject.termType === 'Variable')\n                addVariable(quad.subject);\n            if (quad.predicate.termType === 'Variable')\n                addVariable(quad.predicate);\n            if (quad.object.termType === 'Variable')\n                addVariable(quad.object);\n            if (quad.graph.termType === 'Variable')\n                addVariable(quad.graph);\n            if (quad.subject.termType === 'Quad')\n                recurseTerm(quad.subject);\n            if (quad.predicate.termType === 'Quad')\n                recurseTerm(quad.predicate);\n            if (quad.object.termType === 'Quad')\n                recurseTerm(quad.object);\n            if (quad.graph.termType === 'Quad')\n                recurseTerm(quad.graph);\n        }\n        // https://www.w3.org/TR/sparql11-query/#variableScope\n        Util.recurseOperation(op, {\n            [algebra_1.types.EXPRESSION]: (op) => {\n                if (op.expressionType === algebra_1.expressionTypes.AGGREGATE && op.variable) {\n                    addVariable(op.variable);\n                }\n                return true;\n            },\n            [algebra_1.types.EXTEND]: (op) => {\n                addVariable(op.variable);\n                return true;\n            },\n            [algebra_1.types.GRAPH]: (op) => {\n                if (op.name.termType === 'Variable')\n                    addVariable(op.name);\n                return true;\n            },\n            [algebra_1.types.GROUP]: (op) => {\n                op.variables.forEach(addVariable);\n                return true;\n            },\n            [algebra_1.types.PATH]: (op) => {\n                if (op.subject.termType === 'Variable')\n                    addVariable(op.subject);\n                if (op.object.termType === 'Variable')\n                    addVariable(op.object);\n                if (op.graph.termType === 'Variable')\n                    addVariable(op.graph);\n                if (op.subject.termType === 'Quad')\n                    recurseTerm(op.subject);\n                if (op.object.termType === 'Quad')\n                    recurseTerm(op.object);\n                if (op.graph.termType === 'Quad')\n                    recurseTerm(op.graph);\n                return true;\n            },\n            [algebra_1.types.PATTERN]: (op) => {\n                recurseTerm(op);\n                return true;\n            },\n            [algebra_1.types.PROJECT]: (op) => {\n                op.variables.forEach(addVariable);\n                return false;\n            },\n            [algebra_1.types.SERVICE]: (op) => {\n                if (op.name.termType === 'Variable')\n                    addVariable(op.name);\n                return true;\n            },\n            [algebra_1.types.VALUES]: (op) => {\n                op.variables.forEach(addVariable);\n                return true;\n            },\n        });\n        return variables;\n    }\n    /**\n     * Recurses through the given algebra tree\n     * A map of callback functions can be provided for individual Operation types to gather data.\n     * The return value of those callbacks should indicate whether recursion should be applied or not.\n     * Making modifications will change the original input object.\n     * @param {Operation} op - The Operation to recurse on.\n     * @param { [type: string]: (op: Operation) => boolean } callbacks - A map of required callback Operations.\n     */\n    static recurseOperation(op, callbacks) {\n        let result = op;\n        let doRecursion = true;\n        const callback = callbacks[op.type];\n        if (callback)\n            // Not sure how to get typing correct for op here\n            doRecursion = callback(op);\n        if (!doRecursion)\n            return;\n        let recurseOp = (op) => Util.recurseOperation(op, callbacks);\n        switch (result.type) {\n            case algebra_1.types.ALT:\n                result.input.map(recurseOp);\n                break;\n            case algebra_1.types.ASK:\n                recurseOp(result.input);\n                break;\n            case algebra_1.types.BGP:\n                result.patterns.forEach(recurseOp);\n                break;\n            case algebra_1.types.CONSTRUCT:\n                recurseOp(result.input);\n                result.template.map(recurseOp);\n                break;\n            case algebra_1.types.DESCRIBE:\n                recurseOp(result.input);\n                break;\n            case algebra_1.types.DISTINCT:\n                recurseOp(result.input);\n                break;\n            case algebra_1.types.EXPRESSION:\n                if (result.expressionType === algebra_1.expressionTypes.EXISTENCE) {\n                    recurseOp(result.input);\n                }\n                break;\n            case algebra_1.types.EXTEND:\n                recurseOp(result.input);\n                recurseOp(result.expression);\n                break;\n            case algebra_1.types.FILTER:\n                recurseOp(result.input);\n                recurseOp(result.expression);\n                break;\n            case algebra_1.types.FROM:\n                recurseOp(result.input);\n                break;\n            case algebra_1.types.GRAPH:\n                recurseOp(result.input);\n                break;\n            case algebra_1.types.GROUP:\n                recurseOp(result.input);\n                result.aggregates.forEach(recurseOp);\n                break;\n            case algebra_1.types.INV:\n                recurseOp(result.path);\n                break;\n            case algebra_1.types.JOIN:\n                result.input.map(recurseOp);\n                break;\n            case algebra_1.types.LEFT_JOIN:\n                result.input.map(recurseOp);\n                if (result.expression)\n                    recurseOp(result.expression);\n                break;\n            case algebra_1.types.LINK:\n                break;\n            case algebra_1.types.MINUS:\n                result.input.map(recurseOp);\n                break;\n            case algebra_1.types.NOP:\n                break;\n            case algebra_1.types.NPS:\n                break;\n            case algebra_1.types.ONE_OR_MORE_PATH:\n                recurseOp(result.path);\n                break;\n            case algebra_1.types.ORDER_BY:\n                recurseOp(result.input);\n                result.expressions.forEach(recurseOp);\n                break;\n            case algebra_1.types.PATH:\n                recurseOp(result.predicate);\n                break;\n            case algebra_1.types.PATTERN:\n                break;\n            case algebra_1.types.PROJECT:\n                recurseOp(result.input);\n                break;\n            case algebra_1.types.REDUCED:\n                recurseOp(result.input);\n                break;\n            case algebra_1.types.SEQ:\n                result.input.map(recurseOp);\n                break;\n            case algebra_1.types.SERVICE:\n                recurseOp(result.input);\n                break;\n            case algebra_1.types.SLICE:\n                recurseOp(result.input);\n                break;\n            case algebra_1.types.UNION:\n                result.input.map(recurseOp);\n                break;\n            case algebra_1.types.VALUES:\n                break;\n            case algebra_1.types.ZERO_OR_MORE_PATH:\n                recurseOp(result.path);\n                break;\n            case algebra_1.types.ZERO_OR_ONE_PATH:\n                recurseOp(result.path);\n                break;\n            // UPDATE operations\n            case algebra_1.types.COMPOSITE_UPDATE:\n                result.updates.forEach(update => recurseOp(update));\n                break;\n            case algebra_1.types.DELETE_INSERT:\n                if (result.delete)\n                    result.delete.forEach(pattern => recurseOp(pattern));\n                if (result.insert)\n                    result.insert.forEach(pattern => recurseOp(pattern));\n                if (result.where)\n                    recurseOp(result.where);\n                break;\n            // all of these only have graph IDs as values\n            case algebra_1.types.LOAD: break;\n            case algebra_1.types.CLEAR: break;\n            case algebra_1.types.CREATE: break;\n            case algebra_1.types.DROP: break;\n            case algebra_1.types.ADD: break;\n            case algebra_1.types.MOVE: break;\n            case algebra_1.types.COPY: break;\n            default: throw new Error(`Unknown Operation type ${result.type}`);\n        }\n    }\n    /**\n     * Creates a deep copy of the given Operation.\n     * Creates shallow copies of the non-Operation values.\n     * A map of callback functions can be provided for individual Operation types\n     * to specifically modify the given objects before triggering recursion.\n     * The return value of those callbacks should indicate whether recursion should be applied to this returned object or not.\n     * @param {Operation} op - The Operation to recurse on.\n     * @param callbacks - A map of required callback Operations.\n     * @param {Factory} factory - Factory used to create new Operations. Will use default factory if none is provided.\n     * @returns {Operation} - The copied result.\n     */\n    static mapOperation(op, callbacks, factory) {\n        let result = op;\n        let doRecursion = true;\n        let copyMetadata = true;\n        factory = factory || new factory_1.default();\n        const callback = callbacks[op.type];\n        if (callback) {\n            // Not sure how to get typing correct for op here\n            const recurseResult = callback(op, factory);\n            result = recurseResult.result;\n            doRecursion = recurseResult.recurse;\n            copyMetadata = recurseResult.copyMetadata !== false;\n        }\n        let toCopyMetadata;\n        if (copyMetadata && (result.metadata || op.metadata)) {\n            toCopyMetadata = { ...result.metadata, ...op.metadata };\n        }\n        if (!doRecursion) {\n            // Inherit metadata\n            if (toCopyMetadata) {\n                result.metadata = toCopyMetadata;\n            }\n            return result;\n        }\n        let mapOp = (op) => Util.mapOperation(op, callbacks, factory);\n        // Several casts here might be wrong though depending on the callbacks output\n        switch (result.type) {\n            case algebra_1.types.ALT:\n                result = factory.createAlt(result.input.map(mapOp));\n                break;\n            case algebra_1.types.ASK:\n                result = factory.createAsk(mapOp(result.input));\n                break;\n            case algebra_1.types.BGP:\n                result = factory.createBgp(result.patterns.map(mapOp));\n                break;\n            case algebra_1.types.CONSTRUCT:\n                result = factory.createConstruct(mapOp(result.input), result.template.map(mapOp));\n                break;\n            case algebra_1.types.DESCRIBE:\n                result = factory.createDescribe(mapOp(result.input), result.terms);\n                break;\n            case algebra_1.types.DISTINCT:\n                result = factory.createDistinct(mapOp(result.input));\n                break;\n            case algebra_1.types.EXPRESSION:\n                result = Util.mapExpression(result, callbacks, factory);\n                break;\n            case algebra_1.types.EXTEND:\n                result = factory.createExtend(mapOp(result.input), result.variable, mapOp(result.expression));\n                break;\n            case algebra_1.types.FILTER:\n                result = factory.createFilter(mapOp(result.input), mapOp(result.expression));\n                break;\n            case algebra_1.types.FROM:\n                result = factory.createFrom(mapOp(result.input), [...result.default], [...result.named]);\n                break;\n            case algebra_1.types.GRAPH:\n                result = factory.createGraph(mapOp(result.input), result.name);\n                break;\n            case algebra_1.types.GROUP:\n                result = factory.createGroup(mapOp(result.input), [].concat(result.variables), result.aggregates.map(mapOp));\n                break;\n            case algebra_1.types.INV:\n                result = factory.createInv(mapOp(result.path));\n                break;\n            case algebra_1.types.JOIN:\n                result = factory.createJoin(result.input.map(mapOp));\n                break;\n            case algebra_1.types.LEFT_JOIN:\n                result = factory.createLeftJoin(mapOp(result.input[0]), mapOp(result.input[1]), result.expression ? mapOp(result.expression) : undefined);\n                break;\n            case algebra_1.types.LINK:\n                result = factory.createLink(result.iri);\n                break;\n            case algebra_1.types.MINUS:\n                result = factory.createMinus(mapOp(result.input[0]), mapOp(result.input[1]));\n                break;\n            case algebra_1.types.NOP:\n                result = factory.createNop();\n                break;\n            case algebra_1.types.NPS:\n                result = factory.createNps([].concat(result.iris));\n                break;\n            case algebra_1.types.ONE_OR_MORE_PATH:\n                result = factory.createOneOrMorePath(mapOp(result.path));\n                break;\n            case algebra_1.types.ORDER_BY:\n                result = factory.createOrderBy(mapOp(result.input), result.expressions.map(mapOp));\n                break;\n            case algebra_1.types.PATH:\n                result = factory.createPath(result.subject, mapOp(result.predicate), result.object, result.graph);\n                break;\n            case algebra_1.types.PATTERN:\n                result = factory.createPattern(result.subject, result.predicate, result.object, result.graph);\n                break;\n            case algebra_1.types.PROJECT:\n                result = factory.createProject(mapOp(result.input), [...result.variables]);\n                break;\n            case algebra_1.types.REDUCED:\n                result = factory.createReduced(mapOp(result.input));\n                break;\n            case algebra_1.types.SEQ:\n                result = factory.createSeq(result.input.map(mapOp));\n                break;\n            case algebra_1.types.SERVICE:\n                result = factory.createService(mapOp(result.input), result.name, result.silent);\n                break;\n            case algebra_1.types.SLICE:\n                result = factory.createSlice(mapOp(result.input), result.start, result.length);\n                break;\n            case algebra_1.types.UNION:\n                result = factory.createUnion(result.input.map(mapOp));\n                break;\n            case algebra_1.types.VALUES:\n                result = factory.createValues([].concat(result.variables), result.bindings.map(b => Object.assign({}, b)));\n                break;\n            case algebra_1.types.ZERO_OR_MORE_PATH:\n                result = factory.createZeroOrMorePath(mapOp(result.path));\n                break;\n            case algebra_1.types.ZERO_OR_ONE_PATH:\n                result = factory.createZeroOrOnePath(mapOp(result.path));\n                break;\n            // UPDATE operations\n            case algebra_1.types.COMPOSITE_UPDATE:\n                result = factory.createCompositeUpdate(result.updates.map(mapOp));\n                break;\n            case algebra_1.types.DELETE_INSERT:\n                result = factory.createDeleteInsert(result.delete ? result.delete.map(mapOp) : undefined, result.insert ? result.insert.map(mapOp) : undefined, result.where ? mapOp(result.where) : undefined);\n                break;\n            case algebra_1.types.LOAD:\n                result = factory.createLoad(result.source, result.destination, result.silent);\n                break;\n            case algebra_1.types.CLEAR:\n                result = factory.createClear(result.source, result.silent);\n                break;\n            case algebra_1.types.CREATE:\n                result = factory.createCreate(result.source, result.silent);\n                break;\n            case algebra_1.types.DROP:\n                result = factory.createDrop(result.source, result.silent);\n                break;\n            case algebra_1.types.ADD:\n                result = factory.createAdd(result.source, result.destination);\n                break;\n            case algebra_1.types.MOVE:\n                result = factory.createMove(result.source, result.destination);\n                break;\n            case algebra_1.types.COPY:\n                result = factory.createCopy(result.source, result.destination);\n                break;\n            default: throw new Error(`Unknown Operation type ${result.type}`);\n        }\n        // Inherit metadata\n        if (toCopyMetadata) {\n            result.metadata = toCopyMetadata;\n        }\n        return result;\n    }\n    /**\n     * Similar to the {@link mapOperation} function but specifically for expressions.\n     * Both functions call each other while copying.\n     * Should not be called directly since it does not execute the callbacks, these happen in {@link mapOperation}.\n     * @param {Expression} expr - The Operation to recurse on.\n     * @param callbacks - A map of required callback Operations.\n     * @param {Factory} factory - Factory used to create new Operations. Will use default factory if none is provided.\n     * @returns {Operation} - The copied result.\n     */\n    static mapExpression(expr, callbacks, factory) {\n        let result = expr;\n        let doRecursion = true;\n        factory = factory || new factory_1.default();\n        const callback = callbacks[expr.expressionType];\n        if (callback)\n            ({ result, recurse: doRecursion } = callback(expr, factory));\n        if (!doRecursion)\n            return result;\n        let mapOp = (op) => Util.mapOperation(op, callbacks, factory);\n        switch (expr.expressionType) {\n            case algebra_1.expressionTypes.AGGREGATE:\n                if (expr.variable) {\n                    return factory.createBoundAggregate(expr.variable, expr.aggregator, mapOp(expr.expression), expr.distinct, expr.separator);\n                }\n                return factory.createAggregateExpression(expr.aggregator, mapOp(expr.expression), expr.distinct, expr.separator);\n            case algebra_1.expressionTypes.EXISTENCE:\n                return factory.createExistenceExpression(expr.not, mapOp(expr.input));\n            case algebra_1.expressionTypes.NAMED:\n                return factory.createNamedExpression(expr.name, expr.args.map(mapOp));\n            case algebra_1.expressionTypes.OPERATOR:\n                return factory.createOperatorExpression(expr.operator, expr.args.map(mapOp));\n            case algebra_1.expressionTypes.TERM:\n                return factory.createTermExpression(expr.term);\n            case algebra_1.expressionTypes.WILDCARD:\n                return factory.createWildcardExpression();\n            default: throw new Error(`Unknown Expression type ${expr.expressionType}`);\n        }\n    }\n    /**\n     * Creates a deep clone of the operation.\n     * This is syntactic sugar for calling {@link mapOperation} without callbacks.\n     * @param {Operation} op - The operation to copy.\n     * @returns {Operation} - The deep copy.\n     */\n    static cloneOperation(op) {\n        return Util.mapOperation(op, {});\n    }\n    /**\n     * Creates a deep clone of the expression.\n     * This is syntactic sugar for calling {@link mapExpression} without callbacks.\n     * @param {Expression} expr - The operation to copy.\n     * @returns {Expression} - The deep copy.\n     */\n    static cloneExpression(expr) {\n        return Util.mapExpression(expr, {});\n    }\n    static createUniqueVariable(label, variables, dataFactory) {\n        let counter = 0;\n        let labelLoop = label;\n        while (variables[labelLoop]) {\n            labelLoop = `${label}${counter++}`;\n        }\n        return dataFactory.variable(labelLoop);\n    }\n    // separate terms from wildcard since we handle them differently\n    static isSimpleTerm(term) {\n        return term.termType !== undefined && term.termType !== 'Quad' && term.termType !== 'Wildcard';\n    }\n    static isQuad(term) {\n        return term.termType === 'Quad';\n    }\n    static hasQuadVariables(quad) {\n        return (0, rdf_terms_1.someTermsNested)(quad, term => term.termType === 'Variable');\n    }\n    static isWildcard(term) {\n        return term.termType === 'Wildcard';\n    }\n}\nexports.default = Util;\n//# sourceMappingURL=util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst equal = require(\"fast-deep-equal/es6\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst Algebra = __importStar(require(\"./algebra\"));\nconst factory_1 = __importDefault(require(\"./factory\"));\nconst util_1 = __importDefault(require(\"./util\"));\nconst Parser = require('sparqljs').Parser;\nconst types = Algebra.types;\nlet variables = new Set();\nlet varCount = 0;\nlet useQuads = false;\nlet factory;\n/**\n * Translates the given SPARQL query to SPARQL Algebra.\n * @param sparql - Either a SPARQL string or an object generated by sparql.js\n * @param options - Optional options object. Current options:\n *                    * dataFactory: The Datafactory used to generate terms. Default @rdfjs/data-model.\n *                    * quads: Boolean indicating whether triples should be converted to Quads (consumes GRAPH statements). Default false.\n *                    * prefixes: Pre-defined prefixes for the given query. Default empty.\n *                    * baseIRI: Base IRI that should be used for the query. Default undefined (throws error if required).\n * @returns {Operation}\n */\nfunction translate(sparql, options) {\n    options = options || {};\n    factory = new factory_1.default(options.dataFactory);\n    let query;\n    if (isString(sparql)) {\n        let parser = new Parser(options);\n        // resets the identifier counter used for blank nodes\n        // provides nicer and more consistent output if there are multiple calls\n        parser._resetBlanks();\n        query = parser.parse(sparql);\n    }\n    else {\n        query = sparql;\n    }\n    return translateQuery(query, options.quads, options.blankToVariable);\n}\nexports.default = translate;\nfunction translateQuery(sparql, quads, blankToVariable) {\n    // this set is filled in during the inScopeVariables call\n    variables = new Set();\n    varCount = 0;\n    useQuads = Boolean(quads);\n    // Assume this is an empty query\n    if (!sparql.type)\n        return factory.createNop();\n    if (sparql.type !== 'query' && sparql.type !== 'update')\n        throw new Error('Translate only works on complete query or update objects.');\n    let res;\n    // find ALL variables here to fill `variables` array\n    findAllVariables(sparql);\n    if (sparql.type === 'query') {\n        // group and where are identical, having only 1 makes parsing easier, can be undefined in DESCRIBE\n        const group = { type: 'group', patterns: sparql.where || [] };\n        res = translateGraphPattern(group);\n        res = translateAggregates(sparql, res);\n    }\n    else if (sparql.type === 'update') {\n        res = translateUpdate(sparql);\n    }\n    if (blankToVariable) {\n        res = translateBlankNodesToVariables(res);\n    }\n    return res;\n}\nfunction isString(str) {\n    return typeof str === 'string';\n}\nfunction isTerm(term) {\n    return Boolean(term === null || term === void 0 ? void 0 : term.termType);\n}\n// This is not completely correct but this way we also catch SPARQL.js triples\nfunction isTriple(triple) {\n    return triple.subject && triple.predicate && triple.object;\n}\nfunction isVariable(term) {\n    return (term === null || term === void 0 ? void 0 : term.termType) === 'Variable';\n}\n// Will be used to make sure new variables don't overlap\nfunction findAllVariables(thingy) {\n    if (isTerm(thingy)) {\n        if (isVariable(thingy)) {\n            // Variables don't store the `?`\n            variables.add(`?${thingy.value}`);\n        }\n    }\n    else if (Array.isArray(thingy)) {\n        for (const entry of thingy)\n            findAllVariables(entry);\n    }\n    else if (thingy && typeof thingy === 'object') {\n        for (let key of Object.keys(thingy)) {\n            // Some variables are hidden in keys (specifically for VALUES)\n            if (key.startsWith('?')) {\n                variables.add(key);\n            }\n            else if (key.startsWith('$')) {\n                variables.add(`?${key.slice(1)}`);\n            }\n            findAllVariables(thingy[key]);\n        }\n    }\n}\n// 18.2.1\nfunction inScopeVariables(thingy) {\n    let inScope = {};\n    if (isTriple(thingy)) {\n        // Note that this could both be an actual Quad or a SPARQL.js triple (without graph)\n        const result = [\n            inScopeVariables(thingy.subject),\n            inScopeVariables(thingy.predicate),\n            inScopeVariables(thingy.object),\n            thingy.graph ? inScopeVariables(thingy.graph) : {}\n        ];\n        Object.assign(inScope, ...result);\n    }\n    else if (isTerm(thingy)) {\n        if (isVariable(thingy))\n            inScope[thingy.value] = thingy;\n    }\n    else if (thingy.type === 'bgp') {\n        // Slightly cheating but this is a subset of what we support so is fine\n        const quads = thingy.triples;\n        Object.assign(inScope, ...quads.map(inScopeVariables));\n    }\n    else if (thingy.type === 'path') {\n        // A path predicate should not have variables but just iterating so we could theoretically support this\n        Object.assign(inScope, ...thingy.items.map(inScopeVariables));\n    }\n    else if (thingy.type === 'group' || thingy.type === 'union' || thingy.type === 'optional') {\n        Object.assign(inScope, ...thingy.patterns.map(inScopeVariables));\n    }\n    else if (thingy.type === 'service' || thingy.type === 'graph') {\n        Object.assign(inScope, inScopeVariables(thingy.name));\n        Object.assign(inScope, ...thingy.patterns.map(inScopeVariables));\n    }\n    else if (thingy.type === 'bind') {\n        Object.assign(inScope, inScopeVariables(thingy.variable));\n    }\n    else if (thingy.type === 'values') {\n        if (thingy.values.length > 0) {\n            const vars = Object.keys(thingy.values[0]).map(v => factory.createTerm(v));\n            Object.assign(inScope, ...vars.map(inScopeVariables));\n        }\n    }\n    else if (thingy.type === 'query') {\n        if (thingy.queryType === 'SELECT' || thingy.queryType === 'DESCRIBE') {\n            if (thingy.where && thingy.variables.some(util_1.default.isWildcard))\n                Object.assign(inScope, ...thingy.where.map(inScopeVariables));\n            for (const v of thingy.variables) {\n                if (isVariable(v))\n                    Object.assign(inScope, inScopeVariables(v));\n                else if (v.variable)\n                    Object.assign(inScope, inScopeVariables(v.variable));\n            }\n            if (thingy.queryType === 'SELECT') {\n                if (thingy.group) {\n                    // Grouping can be a VariableExpression, typings are wrong\n                    for (const g of thingy.group) {\n                        if (g.variable)\n                            Object.assign(inScope, inScopeVariables(g.variable));\n                    }\n                }\n                if (thingy.values) {\n                    const values = { type: 'values', values: thingy.values };\n                    Object.assign(inScope, inScopeVariables(values));\n                }\n            }\n        }\n    }\n    return inScope;\n}\nfunction translateGraphPattern(thingy) {\n    // 18.2.2.1\n    // already done by sparql parser\n    // 18.2.2.3\n    // 18.2.2.4\n    // 18.2.2.5\n    // In Sparql.js, a group with a single BGP in it is a single object.\n    if (thingy.type === 'bgp') {\n        return translateBgp(thingy);\n    }\n    // 18.2.2.6 - GroupOrUnionGraphPattern\n    if (thingy.type === 'union')\n        return factory.createUnion(thingy.patterns.map((p) => {\n            // sparqljs doesn't always indicate the children are groups\n            if (p.type !== 'group')\n                p = { type: 'group', patterns: [p] };\n            return translateGraphPattern(p);\n        }));\n    // 18.2.2.6 - GraphGraphPattern\n    if (thingy.type === 'graph') {\n        // Sparql.js combines the group graph pattern and the graph itself in the same object.\n        // We split here so the group graph pattern can be interpreted correctly.\n        const group = { type: 'group', patterns: thingy.patterns };\n        let result = translateGraphPattern(group);\n        // Output depends on if we use quads or not\n        if (useQuads)\n            result = recurseGraph(result, thingy.name);\n        else\n            result = factory.createGraph(result, thingy.name);\n        return result;\n    }\n    // 18.2.2.6 - InlineData\n    if (thingy.type === 'values')\n        return translateInlineData(thingy);\n    // 18.2.2.6 - SubSelect\n    if (thingy.type === 'query')\n        return translateQuery(thingy, useQuads, false);\n    if (thingy.type === 'group') {\n        // 18.2.2.2\n        let filters = [];\n        let nonfilters = [];\n        for (let pattern of thingy.patterns)\n            (pattern.type === 'filter' ? filters : nonfilters).push(pattern);\n        // 18.2.2.6 - GroupGraphPattern\n        let result = nonfilters.reduce(accumulateGroupGraphPattern, factory.createBgp([]));\n        // 18.2.2.7\n        let expressions = filters.map(filter => translateExpression(filter.expression));\n        if (expressions.length > 0)\n            result = factory.createFilter(result, expressions.reduce((acc, exp) => factory.createOperatorExpression('&&', [acc, exp])));\n        return result;\n    }\n    throw new Error(`Unexpected type: ${thingy.type}`);\n}\nfunction translateExpression(exp) {\n    if (util_1.default.isSimpleTerm(exp))\n        return factory.createTermExpression(exp);\n    if (util_1.default.isQuad(exp)) {\n        if (util_1.default.hasQuadVariables(exp))\n            return factory.createOperatorExpression('triple', [\n                translateExpression(exp.subject),\n                translateExpression(exp.predicate),\n                translateExpression(exp.object),\n            ]);\n        else\n            return factory.createTermExpression(exp);\n    }\n    if (util_1.default.isWildcard(exp))\n        return factory.createWildcardExpression();\n    if ('aggregation' in exp)\n        return factory.createAggregateExpression(exp.aggregation, translateExpression(exp.expression), Boolean(exp.distinct), exp.separator);\n    if ('function' in exp)\n        // Outdated typings\n        return factory.createNamedExpression(exp.function, exp.args.map(translateExpression));\n    if ('operator' in exp) {\n        if (exp.operator === 'exists' || exp.operator === 'notexists')\n            return factory.createExistenceExpression(exp.operator === 'notexists', translateGraphPattern(exp.args[0]));\n        if (exp.operator === 'in' || exp.operator === 'notin')\n            exp.args = [exp.args[0]].concat(exp.args[1]); // sparql.js uses 2 arguments with the second one being a list\n        return factory.createOperatorExpression(exp.operator, exp.args.map(translateExpression));\n    }\n    throw new Error(`Unknown expression: ${JSON.stringify(exp)}`);\n}\nfunction translateBgp(thingy) {\n    let patterns = [];\n    let joins = [];\n    for (let t of thingy.triples) {\n        if ('pathType' in t.predicate) {\n            // translatePath returns a mix of Quads and Paths\n            let path = translatePath(t);\n            for (let p of path) {\n                if (p.type === types.PATH) {\n                    if (patterns.length > 0)\n                        joins.push(factory.createBgp(patterns));\n                    patterns = [];\n                    joins.push(p);\n                }\n                else\n                    patterns.push(p);\n            }\n        }\n        else\n            patterns.push(translateQuad(t));\n    }\n    if (patterns.length > 0)\n        joins.push(factory.createBgp(patterns));\n    if (joins.length === 1)\n        return joins[0];\n    return factory.createJoin(joins);\n}\nfunction translatePath(triple) {\n    let sub = triple.subject;\n    let pred = translatePathPredicate(triple.predicate);\n    let obj = triple.object;\n    return simplifyPath(sub, pred, obj);\n}\nfunction translatePathPredicate(predicate) {\n    if (util_1.default.isSimpleTerm(predicate)) {\n        if (predicate.termType === 'NamedNode')\n            return factory.createLink(predicate);\n        else\n            throw new Error(`Path predicate should be a NamedNode, got ${JSON.stringify(predicate)}`);\n    }\n    if (predicate.pathType === '^')\n        return factory.createInv(translatePathPredicate(predicate.items[0]));\n    if (predicate.pathType === '!') {\n        // negation is either over a single predicate or a list of disjuncted properties\n        let normals = [];\n        let inverted = [];\n        let items;\n        if ('pathType' in predicate.items[0] && predicate.items[0].pathType === '|')\n            items = predicate.items[0].items; // the | element\n        else\n            items = predicate.items;\n        for (let item of items) {\n            if (util_1.default.isSimpleTerm(item))\n                normals.push(item);\n            else if (item.pathType === '^')\n                inverted.push(item.items[0]);\n            else\n                throw new Error(`Unexpected item: ${JSON.stringify(item)}`);\n        }\n        // NPS elements do not have the LINK function\n        let normalElement = factory.createNps(normals);\n        let invertedElement = factory.createInv(factory.createNps(inverted));\n        if (inverted.length === 0)\n            return normalElement;\n        if (normals.length === 0)\n            return invertedElement;\n        return factory.createAlt([normalElement, invertedElement,]);\n    }\n    if (predicate.pathType === '/')\n        return factory.createSeq(predicate.items.map(translatePathPredicate));\n    if (predicate.pathType === '|')\n        return factory.createAlt(predicate.items.map(translatePathPredicate));\n    if (predicate.pathType === '*')\n        return factory.createZeroOrMorePath(translatePathPredicate(predicate.items[0]));\n    if (predicate.pathType === '+')\n        return factory.createOneOrMorePath(translatePathPredicate(predicate.items[0]));\n    if (predicate.pathType === '?')\n        return factory.createZeroOrOnePath(translatePathPredicate(predicate.items[0]));\n    throw new Error(`Unable to translate path expression ${JSON.stringify(predicate)}`);\n}\nfunction simplifyPath(subject, predicate, object) {\n    if (predicate.type === types.LINK)\n        return [factory.createPattern(subject, predicate.iri, object)];\n    if (predicate.type === types.INV)\n        return simplifyPath(object, predicate.path, subject);\n    if (predicate.type === types.SEQ) {\n        let joiner = subject;\n        return util_1.default.flatten(predicate.input.map((subOp, i) => {\n            const nextJoiner = i === predicate.input.length - 1 ? object : generateFreshVar();\n            const simplifiedPath = simplifyPath(joiner, subOp, nextJoiner);\n            if (nextJoiner.termType === 'Variable') {\n                joiner = nextJoiner;\n            }\n            return simplifiedPath;\n        }));\n    }\n    return [factory.createPath(subject, predicate, object)];\n}\nfunction generateFreshVar() {\n    let v = `?var${varCount++}`;\n    if (variables.has(v))\n        return generateFreshVar();\n    variables.add(v);\n    return factory.createTerm(v);\n}\nfunction translateQuad(quad) {\n    if ('pathType' in quad.predicate) {\n        throw new Error('Trying to translate property path to quad.');\n    }\n    // Graphs are needed here\n    // TODO: investigate if typings are wrong or if we internally add graphs to these\n    return factory.createPattern(quad.subject, quad.predicate, quad.object, quad.graph);\n}\nlet typeVals = Object.values(types);\nfunction recurseGraph(thingy, graph, replacement) {\n    if (thingy.type === types.GRAPH) {\n        if (replacement) {\n            // At this point we would lose track of the replacement which would result in incorrect results\n            // This would indicate the library is not being used as intended though\n            throw new Error('Recursing through nested GRAPH statements with a replacement is impossible.');\n        }\n        // In case there were nested GRAPH statements that were not recursed yet for some reason\n        thingy = recurseGraph(thingy.input, thingy.name);\n    }\n    else if (thingy.type === types.SERVICE) {\n        // Service blocks are not affected by enclosing GRAPH statements, so nothing is modified in this block.\n        // See https://github.com/joachimvh/SPARQLAlgebra.js/pull/104#issuecomment-1838016303\n    }\n    else if (thingy.type === types.BGP)\n        thingy.patterns = thingy.patterns.map(quad => {\n            if (replacement) {\n                if (quad.subject.equals(graph))\n                    quad.subject = replacement;\n                if (quad.predicate.equals(graph))\n                    quad.predicate = replacement;\n                if (quad.object.equals(graph))\n                    quad.object = replacement;\n            }\n            if (quad.graph.termType === 'DefaultGraph')\n                quad.graph = graph;\n            return quad;\n        });\n    else if (thingy.type === types.PATH) {\n        if (replacement) {\n            if (thingy.subject.equals(graph))\n                thingy.subject = replacement;\n            if (thingy.object.equals(graph))\n                thingy.object = replacement;\n        }\n        if (thingy.graph.termType === 'DefaultGraph')\n            thingy.graph = graph;\n    }\n    // need to replace variables in subqueries should the graph also be a variable of the same name\n    // unless the subquery projects that variable\n    else if (thingy.type === types.PROJECT && !replacement) {\n        if (!thingy.variables.some(v => v.equals(graph)))\n            replacement = generateFreshVar();\n        thingy.input = recurseGraph(thingy.input, graph, replacement);\n    }\n    // this can happen if the query extends an expression to the name of the graph\n    // since the extend happens here there should be no further occurrences of this name\n    // if there are it's the same situation as above\n    else if (thingy.type === types.EXTEND && !replacement) {\n        if (thingy.variable.equals(graph))\n            replacement = generateFreshVar();\n        thingy.input = recurseGraph(thingy.input, graph, replacement);\n    }\n    else {\n        for (let key of Object.keys(thingy)) {\n            if (Array.isArray(thingy[key]))\n                thingy[key] = thingy[key].map((x) => recurseGraph(x, graph, replacement));\n            else if (typeVals.indexOf(thingy[key].type) >= 0) // can't do instanceof on an interface\n                thingy[key] = recurseGraph(thingy[key], graph, replacement);\n            else if (replacement && isVariable(thingy[key]) && thingy[key].equals(graph))\n                thingy[key] = replacement;\n        }\n    }\n    return thingy;\n}\nfunction accumulateGroupGraphPattern(G, E) {\n    if (E.type === 'optional') {\n        // optional input needs to be interpreted as a group\n        const A = translateGraphPattern({ type: 'group', patterns: E.patterns });\n        if (A.type === types.FILTER) {\n            G = factory.createLeftJoin(G, A.input, A.expression);\n        }\n        else\n            G = factory.createLeftJoin(G, A);\n    }\n    else if (E.type === 'minus') {\n        // minus input needs to be interpreted as a group\n        const A = translateGraphPattern({ type: 'group', patterns: E.patterns });\n        G = factory.createMinus(G, A);\n    }\n    else if (E.type === 'bind')\n        G = factory.createExtend(G, E.variable, translateExpression(E.expression));\n    else if (E.type === 'service') {\n        // transform to group so childnodes get parsed correctly\n        const group = { type: 'group', patterns: E.patterns };\n        const A = factory.createService(translateGraphPattern(group), E.name, E.silent);\n        G = simplifiedJoin(G, A);\n    }\n    else {\n        const A = translateGraphPattern(E);\n        G = simplifiedJoin(G, A);\n    }\n    return G;\n}\nfunction simplifiedJoin(G, A) {\n    // Note: this is more simplification than requested in 18.2.2.8, but no reason not to do it.\n    if (G.type === types.BGP && A.type === types.BGP)\n        G = factory.createBgp([...G.patterns, ...A.patterns]);\n    // 18.2.2.8 (simplification)\n    else if (G.type === types.BGP && G.patterns.length === 0)\n        G = A;\n    else if (A.type === types.BGP && A.patterns.length === 0) { } // do nothing\n    else\n        G = factory.createJoin([G, A]);\n    return G;\n}\nfunction translateInlineData(values) {\n    let variables = (values.values.length === 0 ? [] : Object.keys(values.values[0])).map(factory.createTerm.bind(factory));\n    let bindings = values.values.map((binding) => {\n        let keys = Object.keys(binding);\n        keys = keys.filter(k => binding[k] !== undefined);\n        let map = {};\n        for (let key of keys)\n            map[key] = binding[key];\n        return map;\n    });\n    return factory.createValues(variables, bindings);\n}\n// --------------------------------------- AGGREGATES\nfunction translateAggregates(query, res) {\n    // Typings for ConstructQuery are wrong and missing several fields so we will cast quite often to SelectQuery to have partial typings\n    const select = query;\n    // 18.2.4.1\n    const E = [];\n    const A = {};\n    select.variables = select.variables && select.variables.map(val => mapAggregate(val, A));\n    select.having = select.having && select.having.map(val => mapAggregate(val, A));\n    select.order = select.order && select.order.map(val => mapAggregate(val, A));\n    // if there are any aggregates or if we have a groupBy (both result in a GROUP)\n    if (select.group || Object.keys(A).length > 0) {\n        const aggregates = Object.keys(A).map(v => translateBoundAggregate(A[v], factory.createTerm(v)));\n        const vars = [];\n        if (select.group) {\n            for (const e of select.group) {\n                if (util_1.default.isSimpleTerm(e.expression)) {\n                    vars.push(e.expression); // this will always be a var, otherwise sparql would be invalid\n                }\n                else {\n                    // Incorrect typings, e can have a variable, see for example group-variable test in sparql.js\n                    const v = 'variable' in e ? e.variable : generateFreshVar();\n                    res = factory.createExtend(res, v, translateExpression(e.expression));\n                    vars.push(v);\n                }\n            }\n        }\n        res = factory.createGroup(res, vars, aggregates);\n    }\n    // 18.2.4.2\n    if (select.having)\n        for (let filter of select.having)\n            res = factory.createFilter(res, translateExpression(filter));\n    // 18.2.4.3\n    if (query.values)\n        res = factory.createJoin([res, translateInlineData(query)]);\n    // 18.2.4.4\n    let PV = [];\n    if (query.queryType === 'SELECT' || query.queryType === 'DESCRIBE') {\n        // Sort variables for consistent output\n        if (query.variables.some((e) => e && util_1.default.isWildcard(e)))\n            PV = Object.values(inScopeVariables(query))\n                .sort((left, right) => left.value.localeCompare(right.value));\n        else {\n            // Wildcard has been filtered out above\n            for (let v of query.variables) {\n                // can have non-variables with DESCRIBE\n                if (isVariable(v) || !('variable' in v))\n                    PV.push(v);\n                else if (v.variable) // ... AS ?x\n                 {\n                    PV.push(v.variable);\n                    E.push(v);\n                }\n            }\n        }\n    }\n    // TODO: Jena simplifies by having a list of extends\n    for (let v of E)\n        res = factory.createExtend(res, v.variable, translateExpression(v.expression));\n    // 18.2.5\n    // not using toList and toMultiset\n    // 18.2.5.1\n    if (select.order)\n        res = factory.createOrderBy(res, select.order.map((exp) => {\n            let result = translateExpression(exp.expression);\n            if (exp.descending)\n                result = factory.createOperatorExpression('desc', [result]);\n            return result;\n        }));\n    // 18.2.5.2\n    // construct does not need a project (select, ask and describe do)\n    if (query.queryType === 'SELECT')\n        // Named nodes are only possible in a DESCRIBE so this cast is safe\n        res = factory.createProject(res, PV);\n    // 18.2.5.3\n    if (select.distinct)\n        res = factory.createDistinct(res);\n    // 18.2.5.4\n    if (select.reduced)\n        res = factory.createReduced(res);\n    // NEW: support for ask/construct/describe queries\n    if (query.queryType === 'CONSTRUCT')\n        res = factory.createConstruct(res, (query.template || []).map(translateQuad));\n    else if (query.queryType === 'ASK')\n        res = factory.createAsk(res);\n    else if (query.queryType === 'DESCRIBE')\n        res = factory.createDescribe(res, PV);\n    // Slicing needs to happen after construct/describe\n    // 18.2.5.5\n    if (select.offset || select.limit)\n        res = factory.createSlice(res, select.offset || 0, select.limit);\n    if (select.from)\n        res = factory.createFrom(res, select.from.default, select.from.named);\n    return res;\n}\n// rewrites some of the input sparql object to make use of aggregate variables\nfunction mapAggregate(thingy, aggregates) {\n    if ('type' in thingy && thingy.type === 'aggregate') {\n        let found = false;\n        let v;\n        for (let key of Object.keys(aggregates)) {\n            if (equal(aggregates[key], thingy)) {\n                v = factory.createTerm(key);\n                found = true;\n                break;\n            }\n        }\n        if (!found) {\n            v = generateFreshVar();\n            aggregates[(0, rdf_string_1.termToString)(v)] = thingy;\n        }\n        return v;\n    }\n    // non-aggregate expression\n    if ('expression' in thingy && thingy.expression)\n        return { ...thingy, expression: mapAggregate(thingy.expression, aggregates) };\n    if ('args' in thingy && thingy.args)\n        return { ...thingy, args: thingy.args.map(subthingy => mapAggregate(subthingy, aggregates)) };\n    // Normal variable/wildcard\n    return thingy;\n}\nfunction translateBoundAggregate(thingy, v) {\n    if (thingy.type !== 'aggregate' || !thingy.aggregation)\n        throw new Error(`Unexpected input: ${JSON.stringify(thingy)}`);\n    const A = translateExpression(thingy);\n    A.variable = v;\n    return A;\n}\nfunction translateUpdate(thingy) {\n    if (thingy.updates.length === 1)\n        return translateSingleUpdate(thingy.updates[0]);\n    return factory.createCompositeUpdate(thingy.updates.map(translateSingleUpdate));\n}\nfunction translateSingleUpdate(thingy) {\n    if ('type' in thingy) {\n        if (thingy.type === 'load')\n            return translateUpdateGraphLoad(thingy);\n        if (thingy.type === 'clear' || thingy.type === 'create' || thingy.type === 'drop')\n            return translateUpdateGraph(thingy);\n        if (thingy.type === 'add' || thingy.type === 'copy' || thingy.type === 'move')\n            return translateUpdateGraphShortcut(thingy);\n    }\n    else if (thingy.updateType === 'insertdelete' || thingy.updateType === 'deletewhere' || thingy.updateType === 'delete' || thingy.updateType === 'insert')\n        return translateInsertDelete(thingy);\n    throw new Error(`Unknown update type ${JSON.stringify(thingy)}`);\n}\nfunction translateInsertDelete(thingy) {\n    if (!useQuads)\n        throw new Error('INSERT/DELETE operations are only supported with quads option enabled');\n    let deleteTriples = [];\n    let insertTriples = [];\n    let where;\n    if (thingy.delete)\n        deleteTriples = util_1.default.flatten(thingy.delete.map(input => translateUpdateTriplesBlock(input, thingy.graph)));\n    if (thingy.insert)\n        insertTriples = util_1.default.flatten(thingy.insert.map(input => translateUpdateTriplesBlock(input, thingy.graph)));\n    if (thingy.where && thingy.where.length > 0) {\n        where = translateGraphPattern({ type: 'group', patterns: thingy.where });\n        // Wrong typings, see test \"using\" in Sparql.js\n        const use = thingy.using;\n        if (use)\n            where = factory.createFrom(where, use.default, use.named);\n        else if (thingy.graph)\n            // This is equivalent\n            where = recurseGraph(where, thingy.graph);\n    }\n    else if (thingy.updateType === 'deletewhere' && deleteTriples.length > 0) {\n        where = factory.createBgp(deleteTriples);\n    }\n    return factory.createDeleteInsert(deleteTriples.length > 0 ? deleteTriples : undefined, insertTriples.length > 0 ? insertTriples : undefined, where);\n}\n// UPDATE parsing will always return quads and have no GRAPH elements\nfunction translateUpdateTriplesBlock(thingy, graph) {\n    let currentGraph = graph;\n    if (thingy.type === 'graph')\n        currentGraph = thingy.name;\n    let currentTriples = thingy.triples;\n    if (currentGraph)\n        currentTriples = currentTriples.map(triple => Object.assign(triple, { graph: currentGraph }));\n    return currentTriples.map(translateQuad);\n}\nfunction translateUpdateGraph(thingy) {\n    let source;\n    if (util_1.default.isSimpleTerm(thingy.graph))\n        source = thingy.graph;\n    else if (thingy.graph.all)\n        source = 'ALL';\n    else if (thingy.graph.default)\n        source = 'DEFAULT';\n    else if (thingy.graph.named)\n        source = 'NAMED';\n    else\n        source = thingy.graph.name;\n    switch (thingy.type) {\n        case 'clear': return factory.createClear(source, thingy.silent);\n        case 'create': return factory.createCreate(source, thingy.silent);\n        case 'drop': return factory.createDrop(source, thingy.silent);\n    }\n}\nfunction translateUpdateGraphLoad(thingy) {\n    return factory.createLoad(thingy.source, thingy.destination, thingy.silent);\n}\nfunction translateUpdateGraphShortcut(thingy) {\n    const source = thingy.source.default ? 'DEFAULT' : thingy.source.name;\n    const destination = thingy.destination.default ? 'DEFAULT' : thingy.destination.name;\n    switch (thingy.type) {\n        case 'copy': return factory.createCopy(source, destination, thingy.silent);\n        case 'move': return factory.createMove(source, destination, thingy.silent);\n        case 'add': return factory.createAdd(source, destination, thingy.silent);\n    }\n}\nfunction translateBlankNodesToVariables(res) {\n    const blankToVariableMapping = {};\n    const variablesRaw = Array.from(variables).reduce((acc, variable) => {\n        acc[variable] = true;\n        return acc;\n    }, {});\n    return util_1.default.mapOperation(res, {\n        [Algebra.types.DELETE_INSERT]: (op) => {\n            // Make sure blank nodes remain in the INSERT block, but do update the WHERE block\n            return {\n                result: factory.createDeleteInsert(op.delete, op.insert, op.where && translateBlankNodesToVariables(op.where)),\n                recurse: false,\n            };\n        },\n        [Algebra.types.PATH]: (op, factory) => {\n            return {\n                result: factory.createPath(blankToVariable(op.subject), op.predicate, blankToVariable(op.object), blankToVariable(op.graph)),\n                recurse: false,\n            };\n        },\n        [Algebra.types.PATTERN]: (op, factory) => {\n            return {\n                result: factory.createPattern(blankToVariable(op.subject), blankToVariable(op.predicate), blankToVariable(op.object), blankToVariable(op.graph)),\n                recurse: false,\n            };\n        },\n        [Algebra.types.CONSTRUCT]: (op) => {\n            // Blank nodes in CONSTRUCT templates must be maintained\n            return {\n                result: factory.createConstruct(translateBlankNodesToVariables(op.input), op.template),\n                recurse: false,\n            };\n        },\n    });\n    function blankToVariable(term) {\n        if (term.termType === 'BlankNode') {\n            let variable = blankToVariableMapping[term.value];\n            if (!variable) {\n                variable = util_1.default.createUniqueVariable(term.value, variablesRaw, factory.dataFactory);\n                variablesRaw[variable.value] = true;\n                blankToVariableMapping[term.value] = variable;\n            }\n            return variable;\n        }\n        return term;\n    }\n}\n//# sourceMappingURL=sparqlAlgebra.js.map","module.exports = assert;\n\nfunction assert(val, msg) {\n  if (!val)\n    throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n  if (l != r)\n    throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n          value: ctor,\n          enumerable: false,\n          writable: true,\n          configurable: true\n        }\n      })\n    }\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      var TempCtor = function () {}\n      TempCtor.prototype = superCtor.prototype\n      ctor.prototype = new TempCtor()\n      ctor.prototype.constructor = ctor\n    }\n  }\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n  if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n    return false;\n  }\n  if (i < 0 || i + 1 >= msg.length) {\n    return false;\n  }\n  return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n  if (Array.isArray(msg))\n    return msg.slice();\n  if (!msg)\n    return [];\n  var res = [];\n  if (typeof msg === 'string') {\n    if (!enc) {\n      // Inspired by stringToUtf8ByteArray() in closure-library by Google\n      // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n      // Apache License 2.0\n      // https://github.com/google/closure-library/blob/master/LICENSE\n      var p = 0;\n      for (var i = 0; i < msg.length; i++) {\n        var c = msg.charCodeAt(i);\n        if (c < 128) {\n          res[p++] = c;\n        } else if (c < 2048) {\n          res[p++] = (c >> 6) | 192;\n          res[p++] = (c & 63) | 128;\n        } else if (isSurrogatePair(msg, i)) {\n          c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n          res[p++] = (c >> 18) | 240;\n          res[p++] = ((c >> 12) & 63) | 128;\n          res[p++] = ((c >> 6) & 63) | 128;\n          res[p++] = (c & 63) | 128;\n        } else {\n          res[p++] = (c >> 12) | 224;\n          res[p++] = ((c >> 6) & 63) | 128;\n          res[p++] = (c & 63) | 128;\n        }\n      }\n    } else if (enc === 'hex') {\n      msg = msg.replace(/[^a-z0-9]+/ig, '');\n      if (msg.length % 2 !== 0)\n        msg = '0' + msg;\n      for (i = 0; i < msg.length; i += 2)\n        res.push(parseInt(msg[i] + msg[i + 1], 16));\n    }\n  } else {\n    for (i = 0; i < msg.length; i++)\n      res[i] = msg[i] | 0;\n  }\n  return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n  var res = '';\n  for (var i = 0; i < msg.length; i++)\n    res += zero2(msg[i].toString(16));\n  return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n  var res = (w >>> 24) |\n            ((w >>> 8) & 0xff00) |\n            ((w << 8) & 0xff0000) |\n            ((w & 0xff) << 24);\n  return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n  var res = '';\n  for (var i = 0; i < msg.length; i++) {\n    var w = msg[i];\n    if (endian === 'little')\n      w = htonl(w);\n    res += zero8(w.toString(16));\n  }\n  return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n  if (word.length === 1)\n    return '0' + word;\n  else\n    return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n  if (word.length === 7)\n    return '0' + word;\n  else if (word.length === 6)\n    return '00' + word;\n  else if (word.length === 5)\n    return '000' + word;\n  else if (word.length === 4)\n    return '0000' + word;\n  else if (word.length === 3)\n    return '00000' + word;\n  else if (word.length === 2)\n    return '000000' + word;\n  else if (word.length === 1)\n    return '0000000' + word;\n  else\n    return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n  var len = end - start;\n  assert(len % 4 === 0);\n  var res = new Array(len / 4);\n  for (var i = 0, k = start; i < res.length; i++, k += 4) {\n    var w;\n    if (endian === 'big')\n      w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n    else\n      w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n    res[i] = w >>> 0;\n  }\n  return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n  var res = new Array(msg.length * 4);\n  for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n    var m = msg[i];\n    if (endian === 'big') {\n      res[k] = m >>> 24;\n      res[k + 1] = (m >>> 16) & 0xff;\n      res[k + 2] = (m >>> 8) & 0xff;\n      res[k + 3] = m & 0xff;\n    } else {\n      res[k + 3] = m >>> 24;\n      res[k + 2] = (m >>> 16) & 0xff;\n      res[k + 1] = (m >>> 8) & 0xff;\n      res[k] = m & 0xff;\n    }\n  }\n  return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n  return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n  return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n  return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n  return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n  return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n  return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n  var bh = buf[pos];\n  var bl = buf[pos + 1];\n\n  var lo = (al + bl) >>> 0;\n  var hi = (lo < al ? 1 : 0) + ah + bh;\n  buf[pos] = hi >>> 0;\n  buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n  var lo = (al + bl) >>> 0;\n  var hi = (lo < al ? 1 : 0) + ah + bh;\n  return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n  var lo = al + bl;\n  return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n  var carry = 0;\n  var lo = al;\n  lo = (lo + bl) >>> 0;\n  carry += lo < al ? 1 : 0;\n  lo = (lo + cl) >>> 0;\n  carry += lo < cl ? 1 : 0;\n  lo = (lo + dl) >>> 0;\n  carry += lo < dl ? 1 : 0;\n\n  var hi = ah + bh + ch + dh + carry;\n  return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n  var lo = al + bl + cl + dl;\n  return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n  var carry = 0;\n  var lo = al;\n  lo = (lo + bl) >>> 0;\n  carry += lo < al ? 1 : 0;\n  lo = (lo + cl) >>> 0;\n  carry += lo < cl ? 1 : 0;\n  lo = (lo + dl) >>> 0;\n  carry += lo < dl ? 1 : 0;\n  lo = (lo + el) >>> 0;\n  carry += lo < el ? 1 : 0;\n\n  var hi = ah + bh + ch + dh + eh + carry;\n  return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n  var lo = al + bl + cl + dl + el;\n\n  return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n  var r = (al << (32 - num)) | (ah >>> num);\n  return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n  var r = (ah << (32 - num)) | (al >>> num);\n  return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n  return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n  var r = (ah << (32 - num)) | (al >>> num);\n  return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n  this.pending = null;\n  this.pendingTotal = 0;\n  this.blockSize = this.constructor.blockSize;\n  this.outSize = this.constructor.outSize;\n  this.hmacStrength = this.constructor.hmacStrength;\n  this.padLength = this.constructor.padLength / 8;\n  this.endian = 'big';\n\n  this._delta8 = this.blockSize / 8;\n  this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n  // Convert message to array, pad it, and join into 32bit blocks\n  msg = utils.toArray(msg, enc);\n  if (!this.pending)\n    this.pending = msg;\n  else\n    this.pending = this.pending.concat(msg);\n  this.pendingTotal += msg.length;\n\n  // Enough data, try updating\n  if (this.pending.length >= this._delta8) {\n    msg = this.pending;\n\n    // Process pending data in blocks\n    var r = msg.length % this._delta8;\n    this.pending = msg.slice(msg.length - r, msg.length);\n    if (this.pending.length === 0)\n      this.pending = null;\n\n    msg = utils.join32(msg, 0, msg.length - r, this.endian);\n    for (var i = 0; i < msg.length; i += this._delta32)\n      this._update(msg, i, i + this._delta32);\n  }\n\n  return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n  this.update(this._pad());\n  assert(this.pending === null);\n\n  return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n  var len = this.pendingTotal;\n  var bytes = this._delta8;\n  var k = bytes - ((len + this.padLength) % bytes);\n  var res = new Array(k + this.padLength);\n  res[0] = 0x80;\n  for (var i = 1; i < k; i++)\n    res[i] = 0;\n\n  // Append length\n  len <<= 3;\n  if (this.endian === 'big') {\n    for (var t = 8; t < this.padLength; t++)\n      res[i++] = 0;\n\n    res[i++] = 0;\n    res[i++] = 0;\n    res[i++] = 0;\n    res[i++] = 0;\n    res[i++] = (len >>> 24) & 0xff;\n    res[i++] = (len >>> 16) & 0xff;\n    res[i++] = (len >>> 8) & 0xff;\n    res[i++] = len & 0xff;\n  } else {\n    res[i++] = len & 0xff;\n    res[i++] = (len >>> 8) & 0xff;\n    res[i++] = (len >>> 16) & 0xff;\n    res[i++] = (len >>> 24) & 0xff;\n    res[i++] = 0;\n    res[i++] = 0;\n    res[i++] = 0;\n    res[i++] = 0;\n\n    for (t = 8; t < this.padLength; t++)\n      res[i++] = 0;\n  }\n\n  return res;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n  if (s === 0)\n    return ch32(x, y, z);\n  if (s === 1 || s === 3)\n    return p32(x, y, z);\n  if (s === 2)\n    return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n  return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n  return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n  return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n  return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n  return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n  return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n  return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n  0x5A827999, 0x6ED9EBA1,\n  0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n  if (!(this instanceof SHA1))\n    return new SHA1();\n\n  BlockHash.call(this);\n  this.h = [\n    0x67452301, 0xefcdab89, 0x98badcfe,\n    0x10325476, 0xc3d2e1f0 ];\n  this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n  var W = this.W;\n\n  for (var i = 0; i < 16; i++)\n    W[i] = msg[start + i];\n\n  for(; i < W.length; i++)\n    W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n  var a = this.h[0];\n  var b = this.h[1];\n  var c = this.h[2];\n  var d = this.h[3];\n  var e = this.h[4];\n\n  for (i = 0; i < W.length; i++) {\n    var s = ~~(i / 20);\n    var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n    e = d;\n    d = c;\n    c = rotl32(b, 30);\n    b = a;\n    a = t;\n  }\n\n  this.h[0] = sum32(this.h[0], a);\n  this.h[1] = sum32(this.h[1], b);\n  this.h[2] = sum32(this.h[2], c);\n  this.h[3] = sum32(this.h[3], d);\n  this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n  if (enc === 'hex')\n    return utils.toHex32(this.h, 'big');\n  else\n    return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n  0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n  0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n  0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n  0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n  0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n  0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n  0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n  0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n  0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n  0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n  0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n  0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n  0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n  0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n  0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n  0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n  if (!(this instanceof SHA256))\n    return new SHA256();\n\n  BlockHash.call(this);\n  this.h = [\n    0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n    0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n  ];\n  this.k = sha256_K;\n  this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n  var W = this.W;\n\n  for (var i = 0; i < 16; i++)\n    W[i] = msg[start + i];\n  for (; i < W.length; i++)\n    W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n  var a = this.h[0];\n  var b = this.h[1];\n  var c = this.h[2];\n  var d = this.h[3];\n  var e = this.h[4];\n  var f = this.h[5];\n  var g = this.h[6];\n  var h = this.h[7];\n\n  assert(this.k.length === W.length);\n  for (i = 0; i < W.length; i++) {\n    var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n    var T2 = sum32(s0_256(a), maj32(a, b, c));\n    h = g;\n    g = f;\n    f = e;\n    e = sum32(d, T1);\n    d = c;\n    c = b;\n    b = a;\n    a = sum32(T1, T2);\n  }\n\n  this.h[0] = sum32(this.h[0], a);\n  this.h[1] = sum32(this.h[1], b);\n  this.h[2] = sum32(this.h[2], c);\n  this.h[3] = sum32(this.h[3], d);\n  this.h[4] = sum32(this.h[4], e);\n  this.h[5] = sum32(this.h[5], f);\n  this.h[6] = sum32(this.h[6], g);\n  this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n  if (enc === 'hex')\n    return utils.toHex32(this.h, 'big');\n  else\n    return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n  if (!(this instanceof SHA224))\n    return new SHA224();\n\n  SHA256.call(this);\n  this.h = [\n    0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n    0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n  // Just truncate output\n  if (enc === 'hex')\n    return utils.toHex32(this.h.slice(0, 7), 'big');\n  else\n    return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n  0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n  0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n  0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n  0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n  0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n  0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n  0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n  0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n  0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n  0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n  0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n  0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n  0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n  0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n  0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n  0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n  0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n  0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n  0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n  0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n  0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n  0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n  0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n  0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n  0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n  0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n  0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n  0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n  0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n  0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n  0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n  0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n  0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n  0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n  0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n  0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n  0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n  0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n  0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n  0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n  if (!(this instanceof SHA512))\n    return new SHA512();\n\n  BlockHash.call(this);\n  this.h = [\n    0x6a09e667, 0xf3bcc908,\n    0xbb67ae85, 0x84caa73b,\n    0x3c6ef372, 0xfe94f82b,\n    0xa54ff53a, 0x5f1d36f1,\n    0x510e527f, 0xade682d1,\n    0x9b05688c, 0x2b3e6c1f,\n    0x1f83d9ab, 0xfb41bd6b,\n    0x5be0cd19, 0x137e2179 ];\n  this.k = sha512_K;\n  this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n  var W = this.W;\n\n  // 32 x 32bit words\n  for (var i = 0; i < 32; i++)\n    W[i] = msg[start + i];\n  for (; i < W.length; i += 2) {\n    var c0_hi = g1_512_hi(W[i - 4], W[i - 3]);  // i - 2\n    var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n    var c1_hi = W[i - 14];  // i - 7\n    var c1_lo = W[i - 13];\n    var c2_hi = g0_512_hi(W[i - 30], W[i - 29]);  // i - 15\n    var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n    var c3_hi = W[i - 32];  // i - 16\n    var c3_lo = W[i - 31];\n\n    W[i] = sum64_4_hi(\n      c0_hi, c0_lo,\n      c1_hi, c1_lo,\n      c2_hi, c2_lo,\n      c3_hi, c3_lo);\n    W[i + 1] = sum64_4_lo(\n      c0_hi, c0_lo,\n      c1_hi, c1_lo,\n      c2_hi, c2_lo,\n      c3_hi, c3_lo);\n  }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n  this._prepareBlock(msg, start);\n\n  var W = this.W;\n\n  var ah = this.h[0];\n  var al = this.h[1];\n  var bh = this.h[2];\n  var bl = this.h[3];\n  var ch = this.h[4];\n  var cl = this.h[5];\n  var dh = this.h[6];\n  var dl = this.h[7];\n  var eh = this.h[8];\n  var el = this.h[9];\n  var fh = this.h[10];\n  var fl = this.h[11];\n  var gh = this.h[12];\n  var gl = this.h[13];\n  var hh = this.h[14];\n  var hl = this.h[15];\n\n  assert(this.k.length === W.length);\n  for (var i = 0; i < W.length; i += 2) {\n    var c0_hi = hh;\n    var c0_lo = hl;\n    var c1_hi = s1_512_hi(eh, el);\n    var c1_lo = s1_512_lo(eh, el);\n    var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n    var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n    var c3_hi = this.k[i];\n    var c3_lo = this.k[i + 1];\n    var c4_hi = W[i];\n    var c4_lo = W[i + 1];\n\n    var T1_hi = sum64_5_hi(\n      c0_hi, c0_lo,\n      c1_hi, c1_lo,\n      c2_hi, c2_lo,\n      c3_hi, c3_lo,\n      c4_hi, c4_lo);\n    var T1_lo = sum64_5_lo(\n      c0_hi, c0_lo,\n      c1_hi, c1_lo,\n      c2_hi, c2_lo,\n      c3_hi, c3_lo,\n      c4_hi, c4_lo);\n\n    c0_hi = s0_512_hi(ah, al);\n    c0_lo = s0_512_lo(ah, al);\n    c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n    c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n    var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n    var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n    hh = gh;\n    hl = gl;\n\n    gh = fh;\n    gl = fl;\n\n    fh = eh;\n    fl = el;\n\n    eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n    el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n    dh = ch;\n    dl = cl;\n\n    ch = bh;\n    cl = bl;\n\n    bh = ah;\n    bl = al;\n\n    ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n    al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n  }\n\n  sum64(this.h, 0, ah, al);\n  sum64(this.h, 2, bh, bl);\n  sum64(this.h, 4, ch, cl);\n  sum64(this.h, 6, dh, dl);\n  sum64(this.h, 8, eh, el);\n  sum64(this.h, 10, fh, fl);\n  sum64(this.h, 12, gh, gl);\n  sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n  if (enc === 'hex')\n    return utils.toHex32(this.h, 'big');\n  else\n    return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n  var r = (xh & yh) ^ ((~xh) & zh);\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n  var r = (xl & yl) ^ ((~xl) & zl);\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n  var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n  var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n  var c0_hi = rotr64_hi(xh, xl, 28);\n  var c1_hi = rotr64_hi(xl, xh, 2);  // 34\n  var c2_hi = rotr64_hi(xl, xh, 7);  // 39\n\n  var r = c0_hi ^ c1_hi ^ c2_hi;\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n  var c0_lo = rotr64_lo(xh, xl, 28);\n  var c1_lo = rotr64_lo(xl, xh, 2);  // 34\n  var c2_lo = rotr64_lo(xl, xh, 7);  // 39\n\n  var r = c0_lo ^ c1_lo ^ c2_lo;\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n  var c0_hi = rotr64_hi(xh, xl, 14);\n  var c1_hi = rotr64_hi(xh, xl, 18);\n  var c2_hi = rotr64_hi(xl, xh, 9);  // 41\n\n  var r = c0_hi ^ c1_hi ^ c2_hi;\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n  var c0_lo = rotr64_lo(xh, xl, 14);\n  var c1_lo = rotr64_lo(xh, xl, 18);\n  var c2_lo = rotr64_lo(xl, xh, 9);  // 41\n\n  var r = c0_lo ^ c1_lo ^ c2_lo;\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n  var c0_hi = rotr64_hi(xh, xl, 1);\n  var c1_hi = rotr64_hi(xh, xl, 8);\n  var c2_hi = shr64_hi(xh, xl, 7);\n\n  var r = c0_hi ^ c1_hi ^ c2_hi;\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n  var c0_lo = rotr64_lo(xh, xl, 1);\n  var c1_lo = rotr64_lo(xh, xl, 8);\n  var c2_lo = shr64_lo(xh, xl, 7);\n\n  var r = c0_lo ^ c1_lo ^ c2_lo;\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n  var c0_hi = rotr64_hi(xh, xl, 19);\n  var c1_hi = rotr64_hi(xl, xh, 29);  // 61\n  var c2_hi = shr64_hi(xh, xl, 6);\n\n  var r = c0_hi ^ c1_hi ^ c2_hi;\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n  var c0_lo = rotr64_lo(xh, xl, 19);\n  var c1_lo = rotr64_lo(xl, xh, 29);  // 61\n  var c2_lo = shr64_lo(xh, xl, 6);\n\n  var r = c0_lo ^ c1_lo ^ c2_lo;\n  if (r < 0)\n    r += 0x100000000;\n  return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n  if (!(this instanceof SHA384))\n    return new SHA384();\n\n  SHA512.call(this);\n  this.h = [\n    0xcbbb9d5d, 0xc1059ed8,\n    0x629a292a, 0x367cd507,\n    0x9159015a, 0x3070dd17,\n    0x152fecd8, 0xf70e5939,\n    0x67332667, 0xffc00b31,\n    0x8eb44a87, 0x68581511,\n    0xdb0c2e0d, 0x64f98fa7,\n    0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n  if (enc === 'hex')\n    return utils.toHex32(this.h.slice(0, 12), 'big');\n  else\n    return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n  if (!(this instanceof RIPEMD160))\n    return new RIPEMD160();\n\n  BlockHash.call(this);\n\n  this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n  this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n  var A = this.h[0];\n  var B = this.h[1];\n  var C = this.h[2];\n  var D = this.h[3];\n  var E = this.h[4];\n  var Ah = A;\n  var Bh = B;\n  var Ch = C;\n  var Dh = D;\n  var Eh = E;\n  for (var j = 0; j < 80; j++) {\n    var T = sum32(\n      rotl32(\n        sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n        s[j]),\n      E);\n    A = E;\n    E = D;\n    D = rotl32(C, 10);\n    C = B;\n    B = T;\n    T = sum32(\n      rotl32(\n        sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n        sh[j]),\n      Eh);\n    Ah = Eh;\n    Eh = Dh;\n    Dh = rotl32(Ch, 10);\n    Ch = Bh;\n    Bh = T;\n  }\n  T = sum32_3(this.h[1], C, Dh);\n  this.h[1] = sum32_3(this.h[2], D, Eh);\n  this.h[2] = sum32_3(this.h[3], E, Ah);\n  this.h[3] = sum32_3(this.h[4], A, Bh);\n  this.h[4] = sum32_3(this.h[0], B, Ch);\n  this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n  if (enc === 'hex')\n    return utils.toHex32(this.h, 'little');\n  else\n    return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n  if (j <= 15)\n    return x ^ y ^ z;\n  else if (j <= 31)\n    return (x & y) | ((~x) & z);\n  else if (j <= 47)\n    return (x | (~y)) ^ z;\n  else if (j <= 63)\n    return (x & z) | (y & (~z));\n  else\n    return x ^ (y | (~z));\n}\n\nfunction K(j) {\n  if (j <= 15)\n    return 0x00000000;\n  else if (j <= 31)\n    return 0x5a827999;\n  else if (j <= 47)\n    return 0x6ed9eba1;\n  else if (j <= 63)\n    return 0x8f1bbcdc;\n  else\n    return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n  if (j <= 15)\n    return 0x50a28be6;\n  else if (j <= 31)\n    return 0x5c4dd124;\n  else if (j <= 47)\n    return 0x6d703ef3;\n  else if (j <= 63)\n    return 0x7a6d76e9;\n  else\n    return 0x00000000;\n}\n\nvar r = [\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n  7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n  3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n  1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n  4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n  5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n  6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n  15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n  8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n  12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n  11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n  7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n  11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n  11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n  9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n  8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n  9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n  9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n  15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n  8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n  if (!(this instanceof Hmac))\n    return new Hmac(hash, key, enc);\n  this.Hash = hash;\n  this.blockSize = hash.blockSize / 8;\n  this.outSize = hash.outSize / 8;\n  this.inner = null;\n  this.outer = null;\n\n  this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n  // Shorten key, if needed\n  if (key.length > this.blockSize)\n    key = new this.Hash().update(key).digest();\n  assert(key.length <= this.blockSize);\n\n  // Add padding to key\n  for (var i = key.length; i < this.blockSize; i++)\n    key.push(0);\n\n  for (i = 0; i < key.length; i++)\n    key[i] ^= 0x36;\n  this.inner = new this.Hash().update(key);\n\n  // 0x36 ^ 0x5c = 0x6a\n  for (i = 0; i < key.length; i++)\n    key[i] ^= 0x6a;\n  this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n  this.inner.update(msg, enc);\n  return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n  this.outer.update(this.inner.digest());\n  return this.outer.digest(enc);\n};\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTermGrounded = exports.termToSignature = exports.quadToSignature = exports.sha1hex = exports.hashTerm = exports.hashTerms = exports.getGraphBlankNodes = exports.uniqGraph = exports.deindexGraph = exports.indexGraph = exports.getQuadsWithoutBlankNodes = exports.getQuadsWithBlankNodes = exports.hasValue = exports.hashValues = exports.getBijectionInner = exports.getBijection = exports.isomorphic = void 0;\nconst hash_js_1 = require(\"hash.js\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst rdf_terms_1 = require(\"rdf-terms\");\n/**\n * Determines if the two given graphs are isomorphic.\n *\n * @param {Quad[]} graphA An array of quads, order is not important.\n * @param {Quad[]} graphB An array of quads, order is not important.\n * @return {boolean} If the two given graphs are isomorphic.\n */\nfunction isomorphic(graphA, graphB) {\n    return !!getBijection(graphA, graphB);\n}\nexports.isomorphic = isomorphic;\n/**\n * Calculate a hash of graphA blank nodes to graphB blank nodes.\n * This represents a bijection from graphA's blank nodes to graphB's blank nodes.\n *\n * @param {Quad[]} graphA An array of quads, order is not important.\n * @param {Quad[]} graphB An array of quads, order is not important.\n * @return {IBijection} A hash representing a bijection, or null if none could be found.\n */\nfunction getBijection(graphA, graphB) {\n    // Check if all (non-blanknode-containing) quads in the two graphs are equal.\n    // We do this by creating a hash-based index for both graphs.\n    const nonBlankIndexA = indexGraph(getQuadsWithoutBlankNodes(graphA));\n    const nonBlankIndexB = indexGraph(getQuadsWithoutBlankNodes(graphB));\n    if (Object.keys(nonBlankIndexA).length !== Object.keys(nonBlankIndexB).length) {\n        return null;\n    }\n    for (const key in nonBlankIndexA) {\n        if (nonBlankIndexA[key] !== nonBlankIndexB[key]) {\n            return null;\n        }\n    }\n    // Pre-process data that needs to be present in each iteration of getBijectionInner.\n    const blankQuadsA = uniqGraph(getQuadsWithBlankNodes(graphA));\n    const blankQuadsB = uniqGraph(getQuadsWithBlankNodes(graphB));\n    const blankNodesA = getGraphBlankNodes(graphA);\n    const blankNodesB = getGraphBlankNodes(graphB);\n    return getBijectionInner(blankQuadsA, blankQuadsB, blankNodesA, blankNodesB);\n}\nexports.getBijection = getBijection;\nfunction getBijectionInner(blankQuadsA, blankQuadsB, blankNodesA, blankNodesB, groundedHashesA, groundedHashesB) {\n    if (!groundedHashesA) {\n        groundedHashesA = {};\n    }\n    if (!groundedHashesB) {\n        groundedHashesB = {};\n    }\n    // Hash every term based on the signature of the quads if appears in.\n    const [hashesA, ungroundedHashesA] = hashTerms(blankQuadsA, blankNodesA, groundedHashesA);\n    const [hashesB, ungroundedHashesB] = hashTerms(blankQuadsB, blankNodesB, groundedHashesB);\n    // Break quickly if a graph contains a grounded node that is not contained in the other graph.\n    if (Object.keys(hashesA).length !== Object.keys(hashesB).length) {\n        return null;\n    }\n    for (const hashKeyA in hashesA) {\n        if (!hasValue(hashesB, hashesA[hashKeyA])) {\n            return null;\n        }\n    }\n    // Map the blank nodes from graph A to the blank nodes of graph B using the created hashes.\n    // Grounded hashes will also be equal, but not needed here, we will need them in the next recursion\n    // (as we only recurse on grounded nodes).\n    let bijection = {};\n    for (const blankNodeA of blankNodesA) {\n        const blankNodeAString = rdf_string_1.termToString(blankNodeA);\n        const blankNodeAHash = ungroundedHashesA[blankNodeAString];\n        for (const blankNodeBString in ungroundedHashesB) {\n            if (ungroundedHashesB[blankNodeBString] === blankNodeAHash) {\n                bijection[blankNodeAString] = blankNodeBString;\n                delete ungroundedHashesB[blankNodeBString];\n                break;\n            }\n        }\n    }\n    // Check if all nodes from graph A and B are present in the bijection,\n    // if not, speculatively mark pairs with matching ungrounded hashes as bijected, and recurse.\n    if (!arraysEqual(Object.keys(bijection).sort(), blankNodesA.map(rdf_string_1.termToString).sort())\n        || !arraysEqual(hashValues(bijection).sort(), blankNodesB.map(rdf_string_1.termToString).sort())) {\n        // I have not yet been able to find any pathological cases where this code is reached.\n        // This may be removable, but let's wait until someone proves that.\n        bijection = null;\n        for (const blankNodeA of blankNodesA) {\n            // Only replace ungrounded node hashes\n            const blankNodeAString = rdf_string_1.termToString(blankNodeA);\n            if (!hashesA[blankNodeAString]) {\n                for (const blankNodeB of blankNodesB) {\n                    // Only replace ungrounded node hashes\n                    const blankNodeBString = rdf_string_1.termToString(blankNodeB);\n                    if (!hashesB[blankNodeBString]) {\n                        if (ungroundedHashesA[blankNodeAString] === ungroundedHashesB[blankNodeBString]) {\n                            const hash = sha1hex(blankNodeAString);\n                            bijection = getBijectionInner(blankQuadsA, blankQuadsB, blankNodesA, blankNodesB, Object.assign(Object.assign({}, hashesA), { [blankNodeAString]: hash }), Object.assign(Object.assign({}, hashesB), { [blankNodeBString]: hash }));\n                        }\n                    }\n                }\n            }\n        }\n    }\n    return bijection;\n}\nexports.getBijectionInner = getBijectionInner;\nfunction arraysEqual(array1, array2) {\n    if (array1.length !== array2.length) {\n        return false;\n    }\n    for (let i = array1.length; i--;) {\n        if (array1[i] !== array2[i]) {\n            return false;\n        }\n    }\n    return true;\n}\n/**\n * Get all values from the given hash\n * @param hash A hash.\n * @return {any[]} The array of values.\n */\nfunction hashValues(hash) {\n    const arr = [];\n    for (const e in hash) {\n        arr.push(hash[e]);\n    }\n    return arr;\n}\nexports.hashValues = hashValues;\n/**\n * Check if the given hash contains the given value.\n * @param hash A hash.\n * @param {string} value A value.\n * @return {boolean} If it contains the value.\n */\nfunction hasValue(hash, value) {\n    for (const hashValue in hash) {\n        if (hash[hashValue] === value) {\n            return true;\n        }\n    }\n    return false;\n}\nexports.hasValue = hasValue;\n/**\n * Get all quads with blank nodes.\n * @param {Quad[]} graph An array of quads.\n * @return {Quad[]} An array of quads with blank nodes\n */\nfunction getQuadsWithBlankNodes(graph) {\n    return graph.filter((quad) => rdf_terms_1.someTerms(quad, (value) => {\n        return value.termType === 'BlankNode'\n            || (value.termType === 'Quad' && rdf_terms_1.getTermsNested(value).some(term => term.termType === 'BlankNode'));\n    }));\n}\nexports.getQuadsWithBlankNodes = getQuadsWithBlankNodes;\n/**\n * Get all quads without blank nodes.\n * @param {Quad[]} graph An array of quads.\n * @return {Quad[]} An array of quads without blank nodes\n */\nfunction getQuadsWithoutBlankNodes(graph) {\n    return graph.filter((quad) => rdf_terms_1.everyTerms(quad, (value) => {\n        return value.termType !== 'BlankNode'\n            && !(value.termType === 'Quad' && rdf_terms_1.getTermsNested(value).some(term => term.termType === 'BlankNode'));\n    }));\n}\nexports.getQuadsWithoutBlankNodes = getQuadsWithoutBlankNodes;\n/**\n * Create a hash-based index of the given graph.\n * @param {Quad[]} graph An array of quads, the order does not matter.\n * @return {{[p: string]: boolean}} A hash-based datastructure representing the graph.\n */\nfunction indexGraph(graph) {\n    const index = {};\n    for (const quad of graph) {\n        index[JSON.stringify(rdf_string_1.quadToStringQuad(quad))] = true;\n    }\n    return index;\n}\nexports.indexGraph = indexGraph;\n/**\n * Create a graph from the given hash-based index.\n * @param {{[p: string]: boolean}} indexedGraph A hash-based datastructure representing the graph.\n * @return {Quad[]} An array of quads, the order does not matter.\n */\nfunction deindexGraph(indexedGraph) {\n    return Object.keys(indexedGraph).map((str) => rdf_string_1.stringQuadToQuad(JSON.parse(str)));\n}\nexports.deindexGraph = deindexGraph;\n/**\n * Unique-ify the given RDF graph based on strict equality.\n * The output graph will consist of new quad and term instances.\n * @param {Quad[]} graph An input graph.\n * @return {Quad[]} The input graph without duplicates.\n */\nfunction uniqGraph(graph) {\n    return deindexGraph(indexGraph(graph));\n}\nexports.uniqGraph = uniqGraph;\n/**\n * Find all blank nodes in the given graph.\n * @param {Quad[]} graph An array of quads.\n * @return {BlankNode[]} A list of (unique) blank nodes.\n */\nfunction getGraphBlankNodes(graph) {\n    return rdf_terms_1.uniqTerms(graph.map((quad) => rdf_terms_1.getBlankNodes(rdf_terms_1.getTermsNested(quad)))\n        .reduce((acc, val) => acc.concat(val), []));\n}\nexports.getGraphBlankNodes = getGraphBlankNodes;\n/**\n * Create term hashes for the given set of quads and blank node terms.\n *\n * @param {Quad[]} quads A set of quads.\n * @param {Term[]} terms Blank node terms.\n * @param {ITermHash} groundedHashes Grounded term hashes that are used to create more specific signatures\n *                                   of other terms, because they are based on non-blank nodes and grounded blank nodes.\n * @return {[ITermHash]} A tuple of grounded and ungrounded hashes.\n */\nfunction hashTerms(quads, terms, groundedHashes) {\n    const hashes = Object.assign({}, groundedHashes);\n    const ungroundedHashes = {};\n    let hashNeeded = true;\n    // Iteratively mark nodes as grounded.\n    // If a node is marked as grounded, then the next iteration can lead to new grounded states\n    while (hashNeeded) {\n        const initialGroundedNodesCount = Object.keys(hashes).length;\n        for (const term of terms) {\n            const termString = rdf_string_1.termToString(term);\n            if (!hashes[termString]) {\n                const [grounded, hash] = hashTerm(term, quads, hashes);\n                if (grounded) {\n                    hashes[termString] = hash;\n                }\n                ungroundedHashes[termString] = hash;\n            }\n        }\n        // All terms that have a unique hash at this point can be marked as grounded\n        const uniques = {};\n        for (const termKey in ungroundedHashes) {\n            const hash = ungroundedHashes[termKey];\n            if (uniques[hash] === undefined) {\n                uniques[hash] = termKey;\n            }\n            else {\n                uniques[hash] = false;\n            }\n        }\n        for (const hash in uniques) {\n            const value = uniques[hash];\n            if (value) {\n                hashes[value] = hash;\n            }\n        }\n        // Check if the loop needs to terminate\n        hashNeeded = initialGroundedNodesCount !== Object.keys(hashes).length;\n    }\n    return [hashes, ungroundedHashes];\n}\nexports.hashTerms = hashTerms;\n/**\n * Generate a hash for the given term based on the signature of the quads it appears in.\n *\n * Signatures are made up of grounded terms in quads that are associated with a term,\n * i.e., everything except for ungrounded blank nodes.\n * The hash is created by hashing a sorted list of each quad's signature,\n * where each quad signature is a concatenation of the signature of all grounded terms.\n *\n * Terms are considered grounded if they are a member in the given hash AND if they are not the given term.\n *\n * @param {Term} term The term to get the hash around.\n * @param {Quad[]} quads The quads to include in the hashing.\n * @param {ITermHash} hashes A grounded term hash object.\n * @return {[boolean , string]} A tuple indicating if the given term is grounded in all the given quads, and the hash.\n */\nfunction hashTerm(term, quads, hashes) {\n    const quadSignatures = [];\n    let grounded = true;\n    for (const quad of quads) {\n        const terms = rdf_terms_1.getTermsNested(quad);\n        if (terms.some((quadTerm) => quadTerm.equals(term))) {\n            quadSignatures.push(quadToSignature(quad, hashes, term));\n            for (const quadTerm of terms) {\n                if (!isTermGrounded(quadTerm, hashes) && !quadTerm.equals(term)) {\n                    grounded = false;\n                }\n            }\n        }\n    }\n    const hash = sha1hex(quadSignatures.sort().join(''));\n    return [grounded, hash];\n}\nexports.hashTerm = hashTerm;\n/**\n * Create a hash using sha1 as a hex digest.\n * @param {string | Buffer | NodeJS.TypedArray | DataView} data Something to hash.\n * @return {string} A hash string.\n */\nfunction sha1hex(data) {\n    return hash_js_1.sha1().update(data).digest('hex');\n}\nexports.sha1hex = sha1hex;\n/**\n * Convert the given quad to a string signature so that it can be used in the hash structure.\n * @param {Quad} quad A quad.\n * @param {ITermHash} hashes A grounded term hash object.\n * @param {Term} term A target term to compare with.\n * @return {string} A string signature.\n */\nfunction quadToSignature(quad, hashes, term) {\n    return rdf_terms_1.getTerms(quad).map((quadTerm) => termToSignature(quadTerm, hashes, term)).join('|');\n}\nexports.quadToSignature = quadToSignature;\n/**\n * Convert the given term to a string signature so that it can be used in the hash structure.\n * @param {Term} term A term.\n * @param {ITermHash} hashes A grounded term hash object.\n * @param {Term} target A target term to compare with.\n * @return {string} A string signature.\n */\nfunction termToSignature(term, hashes, target) {\n    if (term.equals(target)) {\n        return '@self';\n    }\n    else if (term.termType === 'BlankNode') {\n        return hashes[rdf_string_1.termToString(term)] || '@blank';\n    }\n    else if (term.termType === 'Quad') {\n        return `<${quadToSignature(term, hashes, target)}>`;\n    }\n    else {\n        return rdf_string_1.termToString(term);\n    }\n}\nexports.termToSignature = termToSignature;\n/**\n * Check if a term is grounded.\n *\n * A term is grounded if it is not a blank node\n * or if it included in the given hash of grounded nodes.\n *\n * @param {Term} term A term.\n * @param {ITermHash} hashes A grounded term hash object.\n * @return {boolean} If the given term is grounded.\n */\nfunction isTermGrounded(term, hashes) {\n    return (term.termType !== 'BlankNode'\n        && !(term.termType === 'Quad' && rdf_terms_1.getTermsNested(term).some(subTerm => !isTermGrounded(subTerm, hashes)))) || !!hashes[rdf_string_1.termToString(term)];\n}\nexports.isTermGrounded = isTermGrounded;\n//# sourceMappingURL=RdfIsomorphic.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/RdfIsomorphic\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toSparqlJs = exports.toSparql = void 0;\nconst rdf_isomorphic_1 = require(\"rdf-isomorphic\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst sparqljs_1 = require(\"sparqljs\");\nconst Algebra = __importStar(require(\"./algebra\"));\nconst factory_1 = __importDefault(require(\"./factory\"));\nconst util_1 = __importDefault(require(\"./util\"));\nconst types = Algebra.types;\nconst eTypes = Algebra.expressionTypes;\nlet context;\nconst factory = new factory_1.default();\nfunction toSparql(op, options = {}) {\n    let generator = new sparqljs_1.Generator(options);\n    return generator.stringify(toSparqlJs(op));\n}\nexports.toSparql = toSparql;\nfunction toSparqlJs(op) {\n    resetContext();\n    op = removeQuads(op);\n    let result = translateOperation(op);\n    if (result.type === 'group')\n        return result.patterns[0];\n    return result;\n}\nexports.toSparqlJs = toSparqlJs;\nfunction resetContext() {\n    context = { project: false, extend: [], group: [], aggregates: [], order: [] };\n}\nfunction translateOperation(op) {\n    // this allows us to differentiate between BIND and SELECT when translating EXTEND\n    // GRAPH was added because the way graphs get added back here is not the same as how they get added in the future\n    // ^ seems fine but might have to be changed if problems get detected in the future\n    if (op.type !== types.EXTEND && op.type !== types.ORDER_BY && op.type !== types.GRAPH)\n        context.project = false;\n    switch (op.type) {\n        case types.EXPRESSION: return translateExpression(op);\n        case types.ASK: return translateProject(op, types.ASK);\n        case types.BGP: return translateBgp(op);\n        case types.CONSTRUCT: return translateConstruct(op);\n        case types.DESCRIBE: return translateProject(op, types.DESCRIBE);\n        case types.DISTINCT: return translateDistinct(op);\n        case types.EXTEND: return translateExtend(op);\n        case types.FROM: return translateFrom(op);\n        case types.FILTER: return translateFilter(op);\n        case types.GRAPH: return translateGraph(op);\n        case types.GROUP: return translateGroup(op);\n        case types.JOIN: return translateJoin(op);\n        case types.LEFT_JOIN: return translateLeftJoin(op);\n        case types.MINUS: return translateMinus(op);\n        case types.NOP: return {};\n        case types.ORDER_BY: return translateOrderBy(op);\n        case types.PATH: return translatePath(op);\n        case types.PATTERN: return translatePattern(op);\n        case types.PROJECT: return translateProject(op, types.PROJECT);\n        case types.REDUCED: return translateReduced(op);\n        case types.SERVICE: return translateService(op);\n        case types.SLICE: return translateSlice(op);\n        case types.UNION: return translateUnion(op);\n        case types.VALUES: return translateValues(op);\n        // UPDATE operations\n        case types.COMPOSITE_UPDATE: return translateCompositeUpdate(op);\n        case types.DELETE_INSERT: return translateDeleteInsert(op);\n        case types.LOAD: return translateLoad(op);\n        case types.CLEAR: return translateClear(op);\n        case types.CREATE: return translateCreate(op);\n        case types.DROP: return translateDrop(op);\n        case types.ADD: return translateAdd(op);\n        case types.MOVE: return translateMove(op);\n        case types.COPY: return translateCopy(op);\n    }\n    throw new Error(`Unknown Operation type ${op.type}`);\n}\nfunction translateExpression(expr) {\n    switch (expr.expressionType) {\n        case eTypes.AGGREGATE: return translateAggregateExpression(expr);\n        case eTypes.EXISTENCE: return translateExistenceExpression(expr);\n        case eTypes.NAMED: return translateNamedExpression(expr);\n        case eTypes.OPERATOR: return translateOperatorExpression(expr);\n        case eTypes.TERM: return translateTermExpression(expr);\n        case eTypes.WILDCARD: return translateWildcardExpression(expr);\n    }\n    throw new Error(`Unknown Expression Operation type ${expr.expressionType}`);\n}\nfunction translatePathComponent(path) {\n    switch (path.type) {\n        case types.ALT: return translateAlt(path);\n        case types.INV: return translateInv(path);\n        case types.LINK: return translateLink(path);\n        case types.NPS: return translateNps(path);\n        case types.ONE_OR_MORE_PATH: return translateOneOrMorePath(path);\n        case types.SEQ: return translateSeq(path);\n        case types.ZERO_OR_MORE_PATH: return translateZeroOrMorePath(path);\n        case types.ZERO_OR_ONE_PATH: return translateZeroOrOnePath(path);\n    }\n    throw new Error(`Unknown Path type ${path.type}`);\n}\nfunction translateTerm(term) {\n    return (0, rdf_string_1.termToString)(term);\n}\n// ------------------------- EXPRESSIONS -------------------------\nfunction translateAggregateExpression(expr) {\n    const result = {\n        expression: translateExpression(expr.expression),\n        type: 'aggregate',\n        aggregation: expr.aggregator,\n        distinct: expr.distinct\n    };\n    if (expr.separator)\n        result.separator = expr.separator;\n    return result;\n}\nfunction translateExistenceExpression(expr) {\n    return {\n        type: 'operation',\n        operator: expr.not ? 'notexists' : 'exists',\n        args: [{\n                type: 'group',\n                patterns: util_1.default.flatten([translateOperation(expr.input)])\n            }]\n    };\n}\nfunction translateNamedExpression(expr) {\n    return {\n        type: 'functionCall',\n        // Wrong typings\n        function: expr.name,\n        args: expr.args.map(translateExpression)\n    };\n}\nfunction translateOperatorExpression(expr) {\n    if (expr.operator === 'desc') {\n        const result = { expression: translateExpression(expr.args[0]) };\n        result.descending = true;\n        return result;\n    }\n    const result = {\n        type: 'operation',\n        operator: expr.operator,\n        args: expr.args.map(translateExpression)\n    };\n    if (result.operator === 'in' || result.operator === 'notin')\n        result.args = [result.args[0]].concat([result.args.slice(1)]);\n    return result;\n}\nfunction translateTermExpression(expr) {\n    return expr.term;\n}\nfunction translateWildcardExpression(expr) {\n    return expr.wildcard;\n}\nfunction arrayToPattern(input) {\n    if (!Array.isArray(input))\n        return input;\n    if (input.length === 1)\n        return input[0];\n    return {\n        type: 'group',\n        patterns: input,\n    };\n}\n// ------------------------- OPERATIONS -------------------------\n// these get translated in the project function\nfunction translateBoundAggregate(op) {\n    return op;\n}\nfunction translateBgp(op) {\n    let patterns = op.patterns.map(translatePattern);\n    if (patterns.length === 0)\n        return null;\n    return {\n        type: 'bgp',\n        triples: patterns\n    };\n}\nfunction translateConstruct(op) {\n    return {\n        type: 'query',\n        prefixes: {},\n        queryType: 'CONSTRUCT',\n        template: op.template.map(translatePattern),\n        where: util_1.default.flatten([\n            translateOperation(op.input)\n        ])\n    };\n}\nfunction translateDistinct(op) {\n    let result = translateOperation(op.input);\n    // project is nested in group object\n    result.patterns[0].distinct = true;\n    return result;\n}\nfunction translateExtend(op) {\n    if (context.project) {\n        context.extend.push(op);\n        return translateOperation(op.input);\n    }\n    return util_1.default.flatten([\n        translateOperation(op.input),\n        {\n            type: 'bind',\n            variable: op.variable,\n            expression: translateExpression(op.expression)\n        }\n    ]);\n}\nfunction translateFrom(op) {\n    const result = translateOperation(op.input);\n    // Can't type as CONSTRUCT queries do not have `from` field in their type\n    let obj = result;\n    // project is nested in group object\n    if (result.type === 'group') {\n        obj = result.patterns[0];\n    }\n    obj.from = {\n        default: op.default,\n        named: op.named\n    };\n    return result;\n}\nfunction translateFilter(op) {\n    return {\n        type: 'group',\n        patterns: util_1.default.flatten([\n            translateOperation(op.input),\n            { type: 'filter', expression: translateExpression(op.expression) }\n        ])\n    };\n}\nfunction translateGraph(op) {\n    return {\n        type: 'graph',\n        patterns: util_1.default.flatten([translateOperation(op.input)]),\n        name: op.name\n    };\n}\nfunction translateGroup(op) {\n    const input = translateOperation(op.input);\n    const aggs = op.aggregates.map(translateBoundAggregate);\n    context.aggregates.push(...aggs);\n    // TODO: apply possible extends\n    context.group.push(...op.variables);\n    return input;\n}\nfunction translateJoin(op) {\n    const arr = util_1.default.flatten(op.input.map(translateOperation));\n    // Merge bgps\n    // This is possible if one side was a path and the other a bgp for example\n    return arr.reduce((result, val) => {\n        if (val.type !== 'bgp' || result.length == 0 || result[result.length - 1].type !== 'bgp') {\n            result.push(val);\n        }\n        else {\n            result[result.length - 1].triples.push(...val.triples);\n        }\n        return result;\n    }, []);\n}\nfunction translateLeftJoin(op) {\n    const leftjoin = {\n        type: 'optional',\n        patterns: [\n            translateOperation(op.input[1])\n        ]\n    };\n    if (op.expression) {\n        leftjoin.patterns.push({\n            type: 'filter',\n            expression: translateExpression(op.expression)\n        });\n    }\n    leftjoin.patterns = util_1.default.flatten(leftjoin.patterns);\n    return util_1.default.flatten([\n        translateOperation(op.input[0]),\n        leftjoin\n    ]);\n}\nfunction translateMinus(op) {\n    let patterns = translateOperation(op.input[1]);\n    if (patterns.type === 'group')\n        patterns = patterns.patterns;\n    if (!Array.isArray(patterns))\n        patterns = [patterns];\n    return util_1.default.flatten([\n        translateOperation(op.input[0]),\n        {\n            type: 'minus',\n            patterns: patterns\n        }\n    ]);\n}\nfunction translateOrderBy(op) {\n    context.order.push(...op.expressions);\n    return translateOperation(op.input);\n}\nfunction translatePath(op) {\n    return {\n        type: 'bgp',\n        triples: [{\n                subject: op.subject,\n                predicate: translatePathComponent(op.predicate),\n                object: op.object\n            }]\n    };\n}\nfunction translatePattern(op) {\n    return {\n        subject: op.subject,\n        predicate: op.predicate,\n        object: op.object\n    };\n}\nfunction replaceAggregatorVariables(s, map) {\n    let st = util_1.default.isSimpleTerm(s) ? translateTerm(s) : s;\n    if (typeof st === 'string') {\n        if (map[st])\n            return map[st];\n    }\n    else if (Array.isArray(s)) {\n        s = s.map(e => replaceAggregatorVariables(e, map));\n    }\n    else {\n        for (let key of Object.keys(s))\n            s[key] = replaceAggregatorVariables(s[key], map);\n    }\n    return s;\n}\nfunction translateProject(op, type) {\n    const result = {\n        type: 'query',\n        prefixes: {}\n    };\n    // Makes typing easier in some places\n    const select = result;\n    let variables;\n    if (type === types.PROJECT) {\n        result.queryType = 'SELECT';\n        variables = op.variables;\n    }\n    else if (type === types.ASK) {\n        result.queryType = 'ASK';\n    }\n    else if (type === types.DESCRIBE) {\n        result.queryType = 'DESCRIBE';\n        variables = op.terms;\n    }\n    // backup values in case of nested queries\n    // everything in extend, group, etc. is irrelevant for this project call\n    const extend = context.extend;\n    const group = context.group;\n    const aggregates = context.aggregates;\n    const order = context.order;\n    resetContext();\n    context.project = true;\n    let input = util_1.default.flatten([translateOperation(op.input)]);\n    if (input.length === 1 && input[0].type === 'group')\n        input = input[0].patterns;\n    result.where = input;\n    let aggregators = {};\n    // these can not reference each other\n    for (let agg of context.aggregates)\n        aggregators[translateTerm(agg.variable)] = translateExpression(agg);\n    // do these in reverse order since variables in one extend might apply to an expression in an other extend\n    let extensions = {};\n    for (let i = context.extend.length - 1; i >= 0; --i) {\n        let e = context.extend[i];\n        extensions[translateTerm(e.variable)] = replaceAggregatorVariables(translateExpression(e.expression), aggregators);\n    }\n    if (context.group.length > 0)\n        select.group = context.group.map(variable => {\n            let v = translateTerm(variable);\n            if (extensions[v]) {\n                let result = extensions[v];\n                delete extensions[v]; // make sure there is only 1 'AS' statement\n                return {\n                    variable,\n                    expression: result\n                };\n            }\n            return { expression: variable };\n        });\n    // descending expressions will already be in the correct format due to the structure of those\n    if (context.order.length > 0)\n        select.order = context.order.map(translateOperation).map(o => o.descending ? o : ({ expression: o }));\n    // this needs to happen after the group because it might depend on variables generated there\n    if (variables) {\n        select.variables = variables.map((term) => {\n            let v = translateTerm(term);\n            if (extensions[v]) {\n                let result = extensions[v];\n                delete extensions[v]; // remove used extensions so only unused ones remain\n                return {\n                    variable: term,\n                    expression: result,\n                };\n            }\n            return term;\n        });\n        // if the * didn't match any variables this would be empty\n        if (select.variables.length === 0)\n            select.variables = [new sparqljs_1.Wildcard()];\n    }\n    // It is possible that at this point some extensions have not yet been resolved.\n    // These would be bind operations that are not used in a GROUP BY or SELECT body.\n    // We still need to add them though, as they could be relevant to the other extensions.\n    const extensionEntries = Object.entries(extensions);\n    if (extensionEntries.length > 0) {\n        select.where = select.where || [];\n        for (const [key, value] of extensionEntries) {\n            select.where.push({\n                type: 'bind',\n                variable: (0, rdf_string_1.stringToTerm)(key),\n                expression: value\n            });\n        }\n    }\n    // convert filter to 'having' if it contains an aggregator variable\n    // could always convert, but is nicer to use filter when possible\n    if (result.where.length > 0 && result.where[result.where.length - 1].type === 'filter') {\n        const filter = result.where[result.where.length - 1];\n        if (objectContainsValues(filter, Object.keys(aggregators))) {\n            select.having = util_1.default.flatten([replaceAggregatorVariables(filter.expression, aggregators)]);\n            result.where.splice(-1);\n        }\n    }\n    context.extend = extend;\n    context.group = group;\n    context.aggregates = aggregates;\n    context.order = order;\n    // subqueries need to be in a group, this will be removed again later for the root query\n    return { type: 'group', patterns: [select] };\n}\nfunction objectContainsValues(o, vals) {\n    if (util_1.default.isSimpleTerm(o))\n        return vals.indexOf(translateTerm(o)) >= 0;\n    if (Array.isArray(o))\n        return o.some(e => objectContainsValues(e, vals));\n    if (o === Object(o))\n        return Object.keys(o).some(key => objectContainsValues(o[key], vals));\n    return vals.indexOf(o) >= 0;\n}\nfunction translateReduced(op) {\n    let result = translateOperation(op.input);\n    // project is nested in group object\n    result.patterns[0].reduced = true;\n    return result;\n}\nfunction translateService(op) {\n    let patterns = translateOperation(op.input);\n    if (patterns.type === 'group')\n        patterns = patterns.patterns;\n    if (!Array.isArray(patterns))\n        patterns = [patterns];\n    return {\n        type: 'service',\n        // Typings are wrong, name can also be a variable\n        name: op.name,\n        silent: op.silent,\n        patterns\n    };\n}\nfunction translateSlice(op) {\n    let result = translateOperation(op.input);\n    // results can be nested in a group object\n    let obj = result;\n    if (result.type && result.type === 'group')\n        obj = result.patterns[0];\n    if (op.start !== 0)\n        obj.offset = op.start;\n    if (op.length !== undefined)\n        obj.limit = op.length;\n    return result;\n}\nfunction translateUnion(op) {\n    return {\n        type: 'union',\n        patterns: op.input.map(translateOperation).map(arrayToPattern),\n    };\n}\nfunction translateValues(op) {\n    // TODO: check if handled correctly when outside of select block\n    return {\n        type: 'values',\n        values: op.bindings.map(binding => {\n            let result = {};\n            for (let v of op.variables) {\n                let s = `?${v.value}`;\n                if (binding[s])\n                    result[s] = binding[s];\n                else\n                    result[s] = undefined;\n            }\n            return result;\n        })\n    };\n}\n// PATH COMPONENTS\nfunction translateAlt(path) {\n    const mapped = path.input.map(translatePathComponent);\n    if (mapped.every(entry => 'pathType' in entry && entry.pathType === '!')) {\n        return {\n            type: 'path',\n            pathType: '!',\n            items: [{\n                    type: 'path',\n                    pathType: '|',\n                    items: util_1.default.flatten(mapped.map(entry => entry.items))\n                }]\n        };\n    }\n    return {\n        type: 'path',\n        pathType: '|',\n        items: mapped\n    };\n}\nfunction translateInv(path) {\n    if (path.path.type === types.NPS) {\n        const inv = path.path.iris.map((iri) => {\n            return {\n                type: 'path',\n                pathType: '^',\n                items: [iri]\n            };\n        });\n        if (inv.length <= 1)\n            return {\n                type: 'path',\n                pathType: '!',\n                items: inv\n            };\n        return {\n            type: 'path',\n            pathType: '!',\n            items: [{\n                    type: 'path',\n                    pathType: '|',\n                    items: inv\n                }]\n        };\n    }\n    return {\n        type: 'path',\n        pathType: '^',\n        items: [translatePathComponent(path.path)]\n    };\n}\nfunction translateLink(path) {\n    return path.iri;\n}\nfunction translateNps(path) {\n    if (path.iris.length <= 1)\n        return {\n            type: 'path',\n            pathType: '!',\n            items: path.iris\n        };\n    return {\n        type: 'path',\n        pathType: '!',\n        items: [{\n                type: 'path',\n                pathType: '|',\n                items: path.iris\n            }]\n    };\n}\nfunction translateOneOrMorePath(path) {\n    return {\n        type: 'path',\n        pathType: '+',\n        items: [translatePathComponent(path.path)]\n    };\n}\nfunction translateSeq(path) {\n    return {\n        type: 'path',\n        pathType: '/',\n        items: path.input.map(translatePathComponent)\n    };\n}\nfunction translateZeroOrMorePath(path) {\n    return {\n        type: 'path',\n        pathType: '*',\n        items: [translatePathComponent(path.path)]\n    };\n}\nfunction translateZeroOrOnePath(path) {\n    // Typings are missing '?' operator\n    return {\n        type: 'path',\n        // Typings are missing this path\n        pathType: '?',\n        items: [translatePathComponent(path.path)]\n    };\n}\n// UPDATE OPERATIONS\nfunction translateCompositeUpdate(op) {\n    const updates = op.updates.map(update => {\n        const result = translateOperation(update);\n        return result.updates[0];\n    });\n    return { prefixes: {}, type: 'update', updates };\n}\nfunction translateDeleteInsert(op) {\n    var _a;\n    let where = op.where;\n    let use = undefined;\n    if (where && where.type === types.FROM) {\n        let from = where;\n        where = from.input;\n        use = { default: from.default, named: from.named };\n    }\n    const updates = [{\n            updateType: 'insertdelete',\n            delete: convertUpdatePatterns(op.delete || []),\n            insert: convertUpdatePatterns(op.insert || []),\n        }];\n    // Typings don't support 'using' yet\n    if (use)\n        updates[0].using = use;\n    // corresponds to empty array in SPARQL.js\n    if (!where || (where.type === types.BGP && where.patterns.length === 0))\n        updates[0].where = [];\n    else {\n        const graphs = [];\n        let result = translateOperation(removeQuadsRecursive(where, graphs));\n        if (result.type === 'group')\n            updates[0].where = result.patterns;\n        else\n            updates[0].where = [result];\n        // graph might not be applied yet since there was no project\n        // this can only happen if there was a single graph\n        if (graphs.length > 0) {\n            if (graphs.length !== 1)\n                throw new Error('This is unexpected and might indicate an error in graph handling for updates.');\n            // ignore if default graph\n            if (((_a = graphs[0]) === null || _a === void 0 ? void 0 : _a.value) !== '')\n                updates[0].where = [{ type: 'graph', patterns: updates[0].where, name: graphs[0] }];\n        }\n    }\n    // not really necessary but can give cleaner looking queries\n    if (!op.delete && !op.where) {\n        updates[0].updateType = 'insert';\n        delete updates[0].delete;\n        delete updates[0].where;\n    }\n    else if (!op.insert && !op.where) {\n        delete updates[0].insert;\n        delete updates[0].where;\n        if (op.delete.some(pattern => pattern.subject.termType === 'Variable' ||\n            pattern.predicate.termType === 'Variable' ||\n            pattern.object.termType === 'Variable'))\n            updates[0].updateType = 'deletewhere';\n        else\n            updates[0].updateType = 'delete';\n    }\n    else if (!op.insert && op.where && op.where.type === 'bgp') {\n        if ((0, rdf_isomorphic_1.isomorphic)(op.delete, op.where.patterns)) {\n            delete updates[0].where;\n            updates[0].updateType = 'deletewhere';\n        }\n    }\n    return { prefixes: {}, type: 'update', updates };\n}\nfunction translateLoad(op) {\n    // Typings are wrong, destiniation is optional\n    const updates = [{ type: 'load', silent: Boolean(op.silent), source: op.source }];\n    if (op.destination)\n        updates[0].destination = op.destination;\n    return { prefixes: {}, type: 'update', updates };\n}\nfunction translateClear(op) {\n    return translateClearCreateDrop(op, 'clear');\n}\nfunction translateCreate(op) {\n    return translateClearCreateDrop(op, 'create');\n}\nfunction translateDrop(op) {\n    return translateClearCreateDrop(op, 'drop');\n}\nfunction translateClearCreateDrop(op, type) {\n    const updates = [{ type, silent: Boolean(op.silent) }];\n    // Typings are wrong, type is not required, see for example \"clear-drop\" test\n    if (op.source === 'DEFAULT')\n        updates[0].graph = { default: true };\n    else if (op.source === 'NAMED')\n        updates[0].graph = { named: true };\n    else if (op.source === 'ALL')\n        updates[0].graph = { all: true };\n    else\n        updates[0].graph = { type: 'graph', name: op.source };\n    return { prefixes: {}, type: 'update', updates };\n}\nfunction translateAdd(op) {\n    return translateUpdateGraphShortcut(op, 'add');\n}\nfunction translateMove(op) {\n    return translateUpdateGraphShortcut(op, 'move');\n}\nfunction translateCopy(op) {\n    return translateUpdateGraphShortcut(op, 'copy');\n}\nfunction translateUpdateGraphShortcut(op, type) {\n    const updates = [{ type, silent: Boolean(op.silent) }];\n    updates[0].source = op.source === 'DEFAULT' ? { type: 'graph', default: true } : { type: 'graph', name: op.source };\n    updates[0].destination = op.destination === 'DEFAULT' ? { type: 'graph', default: true } : { type: 'graph', name: op.destination };\n    return { prefixes: {}, type: 'update', updates };\n}\n// similar to removeQuads but more simplified for UPDATEs\nfunction convertUpdatePatterns(patterns) {\n    if (!patterns)\n        return [];\n    const graphs = {};\n    patterns.forEach(pattern => {\n        const graph = pattern.graph.value;\n        if (!graphs[graph])\n            graphs[graph] = [];\n        graphs[graph].push(pattern);\n    });\n    return Object.keys(graphs).map(graph => {\n        if (graph === '')\n            return { type: 'bgp', triples: graphs[graph].map(translatePattern) };\n        return { type: 'graph', triples: graphs[graph].map(translatePattern), name: graphs[graph][0].graph };\n    });\n}\nfunction removeQuads(op) {\n    return removeQuadsRecursive(op, []);\n}\n// remove quads\nfunction removeQuadsRecursive(op, graphs) {\n    if (Array.isArray(op))\n        return op.map(sub => removeQuadsRecursive(sub, graphs));\n    if (!op.type)\n        return op;\n    // UPDATE operations with Patterns handle graphs a bit differently\n    if (op.type === types.DELETE_INSERT)\n        return op;\n    if ((op.type === types.PATTERN || op.type === types.PATH) && op.graph) {\n        graphs.push(op.graph);\n        // Remove non-default graphs\n        if (op.graph.name !== '')\n            return op.type === types.PATTERN ?\n                factory.createPattern(op.subject, op.predicate, op.object) :\n                factory.createPath(op.subject, op.predicate, op.object);\n        return op;\n    }\n    const result = {};\n    const keyGraphs = {}; // unique graph per key\n    const globalNames = {}; // track all the unique graph names for the entire Operation\n    for (let key of Object.keys(op)) {\n        const newGraphs = [];\n        result[key] = removeQuadsRecursive(op[key], newGraphs);\n        if (newGraphs.length > 0) {\n            keyGraphs[key] = newGraphs;\n            for (const graph of newGraphs) {\n                globalNames[graph.value] = graph;\n            }\n        }\n    }\n    const graphNameSet = Object.keys(globalNames);\n    if (graphNameSet.length > 0) {\n        // We also need to create graph statement if we are at the edge of certain operations\n        if (graphNameSet.length === 1 && ![types.PROJECT, types.SERVICE].includes(op.type))\n            graphs.push(globalNames[graphNameSet[0]]);\n        else if (op.type === types.BGP) {\n            // This is the specific case that got changed because of using quads.\n            return splitBgpToGraphs(op, keyGraphs.patterns);\n        }\n        else {\n            // multiple graphs (or project), need to create graph objects for them\n            for (let key of Object.keys(keyGraphs)) {\n                const value = result[key];\n                if (Array.isArray(value))\n                    result[key] = value.map((child, idx) => keyGraphs[key][0].value === '' ? child : factory.createGraph(child, keyGraphs[key][idx]));\n                else if (keyGraphs[key][0].value !== '')\n                    result[key] = factory.createGraph(value, keyGraphs[key][0]);\n            }\n        }\n    }\n    return result;\n}\n// `graphs` should be an array of length identical to `op.patterns`, containing the corresponding graph for each triple.\nfunction splitBgpToGraphs(op, graphs) {\n    var _a;\n    // Split patterns per graph\n    const graphPatterns = {};\n    for (let i = 0; i < op.patterns.length; ++i) {\n        const pattern = op.patterns[i];\n        const graphName = graphs[i].value;\n        graphPatterns[graphName] = (_a = graphPatterns[graphName]) !== null && _a !== void 0 ? _a : { patterns: [], graph: graphs[i] };\n        graphPatterns[graphName].patterns.push(pattern);\n    }\n    // Create graph objects for every cluster\n    let children = [];\n    for (const [graphName, { patterns, graph }] of Object.entries(graphPatterns)) {\n        const bgp = factory.createBgp(patterns);\n        children.push(graphName === '' ? bgp : factory.createGraph(bgp, graph));\n    }\n    // Join the graph objects\n    let join = children[0];\n    for (let i = 1; i < children.length; ++i)\n        join = factory.createJoin([join, children[i]]);\n    return join;\n}\n//# sourceMappingURL=sparql.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = exports.toSparqlJs = exports.toSparql = exports.Factory = exports.Algebra = exports.translate = void 0;\nconst sparqlAlgebra_1 = __importDefault(require(\"./lib/sparqlAlgebra\"));\nexports.translate = sparqlAlgebra_1.default;\nconst Algebra = __importStar(require(\"./lib/algebra\"));\nexports.Algebra = Algebra;\nconst factory_1 = __importDefault(require(\"./lib/factory\"));\nexports.Factory = factory_1.default;\nconst sparql_1 = require(\"./lib/sparql\");\nObject.defineProperty(exports, \"toSparql\", { enumerable: true, get: function () { return sparql_1.toSparql; } });\nObject.defineProperty(exports, \"toSparqlJs\", { enumerable: true, get: function () { return sparql_1.toSparqlJs; } });\nconst util_1 = __importDefault(require(\"./lib/util\"));\nexports.Util = util_1.default;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.asTermType = void 0;\nfunction asTermType(type) {\n    if (type === 'namedNode' || type === 'literal' || type === 'blankNode' || type === 'quad') {\n        return type;\n    }\n    return undefined;\n}\nexports.asTermType = asTermType;\n//# sourceMappingURL=Expressions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\nconst types_1 = require(\"@comunica/types\");\nclass Variable {\n    constructor(name) {\n        this.expressionType = types_1.ExpressionType.Variable;\n        this.name = name;\n    }\n}\nexports.Variable = Variable;\n//# sourceMappingURL=Variable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SparqlOperator = exports.TypeURL = exports.typedLiteral = exports.TypeAlias = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nvar TypeAlias;\n(function (TypeAlias) {\n    // Numeric is everything defined in https://www.w3.org/TR/sparql11-query/#operandDataTypes\n    TypeAlias[\"SPARQL_NUMERIC\"] = \"SPARQL_NUMERIC\";\n    /**\n     * Stringly is everything defined in https://www.w3.org/TR/sparql11-query/#func-strings\n     * In other words it is a simple literal, a plain literal with language tag, or a literal with datatype xsd:string\n     * In other words, since utils-expression-evaluator transforms a simple literal to xsd_string.\n     * It is RDF_LANG_STRING or XSD_STRING.\n     * Reasons for this are mentioned here: w3c/sparql-12#112\n     */\n    TypeAlias[\"SPARQL_STRINGLY\"] = \"SPARQL_STRINGLY\";\n})(TypeAlias || (exports.TypeAlias = TypeAlias = {}));\nconst DF = new rdf_data_factory_1.DataFactory();\nfunction typedLiteral(value, type) {\n    return DF.literal(value, DF.namedNode(type));\n}\nexports.typedLiteral = typedLiteral;\nvar TypeURL;\n(function (TypeURL) {\n    TypeURL[\"XSD_ANY_URI\"] = \"http://www.w3.org/2001/XMLSchema#anyURI\";\n    TypeURL[\"XSD_STRING\"] = \"http://www.w3.org/2001/XMLSchema#string\";\n    TypeURL[\"RDF_LANG_STRING\"] = \"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString\";\n    TypeURL[\"XSD_BOOLEAN\"] = \"http://www.w3.org/2001/XMLSchema#boolean\";\n    TypeURL[\"XSD_DATE_TIME\"] = \"http://www.w3.org/2001/XMLSchema#dateTime\";\n    TypeURL[\"XSD_DATE_TIME_STAMP\"] = \"http://www.w3.org/2001/XMLSchema#dateTimeStamp\";\n    TypeURL[\"XSD_DATE\"] = \"http://www.w3.org/2001/XMLSchema#date\";\n    TypeURL[\"XSD_G_MONTH\"] = \"http://www.w3.org/2001/XMLSchema#gMonth\";\n    TypeURL[\"XSD_G_MONTHDAY\"] = \"http://www.w3.org/2001/XMLSchema#gMonthDay\";\n    TypeURL[\"XSD_G_YEAR\"] = \"http://www.w3.org/2001/XMLSchema#gYear\";\n    TypeURL[\"XSD_G_YEAR_MONTH\"] = \"http://www.w3.org/2001/XMLSchema#gYearMonth\";\n    TypeURL[\"XSD_TIME\"] = \"http://www.w3.org/2001/XMLSchema#time\";\n    TypeURL[\"XSD_G_DAY\"] = \"http://www.w3.org/2001/XMLSchema#gDay\";\n    // Numeric types\n    TypeURL[\"XSD_DECIMAL\"] = \"http://www.w3.org/2001/XMLSchema#decimal\";\n    TypeURL[\"XSD_FLOAT\"] = \"http://www.w3.org/2001/XMLSchema#float\";\n    TypeURL[\"XSD_DOUBLE\"] = \"http://www.w3.org/2001/XMLSchema#double\";\n    // Derived numeric types\n    TypeURL[\"XSD_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#integer\";\n    TypeURL[\"XSD_NON_POSITIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#nonPositiveInteger\";\n    TypeURL[\"XSD_NEGATIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#negativeInteger\";\n    TypeURL[\"XSD_LONG\"] = \"http://www.w3.org/2001/XMLSchema#long\";\n    TypeURL[\"XSD_INT\"] = \"http://www.w3.org/2001/XMLSchema#int\";\n    TypeURL[\"XSD_SHORT\"] = \"http://www.w3.org/2001/XMLSchema#short\";\n    TypeURL[\"XSD_BYTE\"] = \"http://www.w3.org/2001/XMLSchema#byte\";\n    TypeURL[\"XSD_NON_NEGATIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#nonNegativeInteger\";\n    TypeURL[\"XSD_POSITIVE_INTEGER\"] = \"http://www.w3.org/2001/XMLSchema#positiveInteger\";\n    TypeURL[\"XSD_UNSIGNED_LONG\"] = \"http://www.w3.org/2001/XMLSchema#unsignedLong\";\n    TypeURL[\"XSD_UNSIGNED_INT\"] = \"http://www.w3.org/2001/XMLSchema#unsignedInt\";\n    TypeURL[\"XSD_UNSIGNED_SHORT\"] = \"http://www.w3.org/2001/XMLSchema#unsignedShort\";\n    TypeURL[\"XSD_UNSIGNED_BYTE\"] = \"http://www.w3.org/2001/XMLSchema#unsignedByte\";\n    // Derived String Type\n    TypeURL[\"XSD_NORMALIZED_STRING\"] = \"http://www.w3.org/2001/XMLSchema#normalizedString\";\n    TypeURL[\"XSD_TOKEN\"] = \"http://www.w3.org/2001/XMLSchema#token\";\n    TypeURL[\"XSD_LANGUAGE\"] = \"http://www.w3.org/2001/XMLSchema#language\";\n    TypeURL[\"XSD_NM_TOKEN\"] = \"http://www.w3.org/2001/XMLSchema#NMTOKEN\";\n    TypeURL[\"XSD_NAME\"] = \"http://www.w3.org/2001/XMLSchema#name\";\n    TypeURL[\"XSD_NC_NAME\"] = \"http://www.w3.org/2001/XMLSchema#NCName\";\n    TypeURL[\"XSD_ENTITY\"] = \"http://www.w3.org/2001/XMLSchema#ENTITY\";\n    TypeURL[\"XSD_ID\"] = \"http://www.w3.org/2001/XMLSchema#ID\";\n    TypeURL[\"XSD_ID_REF\"] = \"http://www.w3.org/2001/XMLSchema#IDREF\";\n    // Other types\n    TypeURL[\"XSD_DURATION\"] = \"http://www.w3.org/2001/XMLSchema#duration\";\n    TypeURL[\"XSD_YEAR_MONTH_DURATION\"] = \"http://www.w3.org/2001/XMLSchema#yearMonthDuration\";\n    TypeURL[\"XSD_DAY_TIME_DURATION\"] = \"http://www.w3.org/2001/XMLSchema#dayTimeDuration\";\n})(TypeURL || (exports.TypeURL = TypeURL = {}));\n// TODO: Remove unneeded double typing\nvar SparqlOperator;\n(function (SparqlOperator) {\n    // Operator mapping\n    // https://www.w3.org/TR/sparql11-query/#OperatorMapping\n    SparqlOperator[\"NOT\"] = \"!\";\n    SparqlOperator[\"UMINUS\"] = \"uminus\";\n    SparqlOperator[\"UPLUS\"] = \"uplus\";\n    SparqlOperator[\"LOGICAL_OR\"] = \"||\";\n    SparqlOperator[\"LOGICAL_AND\"] = \"&&\";\n    SparqlOperator[\"EQUAL\"] = \"=\";\n    SparqlOperator[\"NOT_EQUAL\"] = \"!=\";\n    SparqlOperator[\"LT\"] = \"<\";\n    SparqlOperator[\"GT\"] = \">\";\n    SparqlOperator[\"LTE\"] = \"<=\";\n    SparqlOperator[\"GTE\"] = \">=\";\n    SparqlOperator[\"SAME_TERM\"] = \"sameterm\";\n    SparqlOperator[\"IN\"] = \"in\";\n    SparqlOperator[\"NOT_IN\"] = \"notin\";\n    SparqlOperator[\"MULTIPLICATION\"] = \"*\";\n    SparqlOperator[\"DIVISION\"] = \"/\";\n    SparqlOperator[\"ADDITION\"] = \"+\";\n    SparqlOperator[\"SUBTRACTION\"] = \"-\";\n    // Functional Forms\n    // https://www.w3.org/TR/sparql11-query/#func-forms\n    // See SpecialOperators\n    // Functions on RDF Terms\n    // https://www.w3.org/TR/sparql11-query/#func-rdfTerms\n    SparqlOperator[\"IS_IRI\"] = \"isiri\";\n    SparqlOperator[\"IS_URI\"] = \"isuri\";\n    SparqlOperator[\"IS_BLANK\"] = \"isblank\";\n    SparqlOperator[\"IS_LITERAL\"] = \"isliteral\";\n    SparqlOperator[\"IS_NUMERIC\"] = \"isnumeric\";\n    SparqlOperator[\"STR\"] = \"str\";\n    SparqlOperator[\"LANG\"] = \"lang\";\n    SparqlOperator[\"DATATYPE\"] = \"datatype\";\n    SparqlOperator[\"IRI\"] = \"iri\";\n    SparqlOperator[\"URI\"] = \"uri\";\n    SparqlOperator[\"BNODE\"] = \"bnode\";\n    SparqlOperator[\"STRDT\"] = \"strdt\";\n    SparqlOperator[\"STRLANG\"] = \"strlang\";\n    SparqlOperator[\"UUID\"] = \"uuid\";\n    SparqlOperator[\"STRUUID\"] = \"struuid\";\n    // Functions on strings\n    // https://www.w3.org/TR/sparql11-query/#func-strings\n    SparqlOperator[\"STRLEN\"] = \"strlen\";\n    SparqlOperator[\"SUBSTR\"] = \"substr\";\n    SparqlOperator[\"UCASE\"] = \"ucase\";\n    SparqlOperator[\"LCASE\"] = \"lcase\";\n    SparqlOperator[\"STRSTARTS\"] = \"strstarts\";\n    SparqlOperator[\"STRENDS\"] = \"strends\";\n    SparqlOperator[\"CONTAINS\"] = \"contains\";\n    SparqlOperator[\"STRBEFORE\"] = \"strbefore\";\n    SparqlOperator[\"STRAFTER\"] = \"strafter\";\n    SparqlOperator[\"ENCODE_FOR_URI\"] = \"encode_for_uri\";\n    SparqlOperator[\"CONCAT\"] = \"concat\";\n    SparqlOperator[\"LANG_MATCHES\"] = \"langmatches\";\n    SparqlOperator[\"REGEX\"] = \"regex\";\n    SparqlOperator[\"REPLACE\"] = \"replace\";\n    // Functions on numerics\n    // https://www.w3.org/TR/sparql11-query/#func-numerics\n    SparqlOperator[\"ABS\"] = \"abs\";\n    SparqlOperator[\"ROUND\"] = \"round\";\n    SparqlOperator[\"CEIL\"] = \"ceil\";\n    SparqlOperator[\"FLOOR\"] = \"floor\";\n    SparqlOperator[\"RAND\"] = \"rand\";\n    // Functions on Dates and Times\n    // https://www.w3.org/TR/sparql11-query/#func-date-time\n    SparqlOperator[\"NOW\"] = \"now\";\n    SparqlOperator[\"YEAR\"] = \"year\";\n    SparqlOperator[\"MONTH\"] = \"month\";\n    SparqlOperator[\"DAY\"] = \"day\";\n    SparqlOperator[\"HOURS\"] = \"hours\";\n    SparqlOperator[\"MINUTES\"] = \"minutes\";\n    SparqlOperator[\"SECONDS\"] = \"seconds\";\n    SparqlOperator[\"TIMEZONE\"] = \"timezone\";\n    SparqlOperator[\"TZ\"] = \"tz\";\n    // Hash functions\n    // https://www.w3.org/TR/sparql11-query/#func-hash\n    SparqlOperator[\"MD5\"] = \"md5\";\n    SparqlOperator[\"SHA1\"] = \"sha1\";\n    SparqlOperator[\"SHA256\"] = \"sha256\";\n    SparqlOperator[\"SHA384\"] = \"sha384\";\n    SparqlOperator[\"SHA512\"] = \"sha512\";\n    // XPath Constructor functions\n    // https://www.w3.org/TR/sparql11-query/#FunctionMapping\n    // See Named Operators\n    // Functions for quoted triples\n    // https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#triple-function\n    SparqlOperator[\"TRIPLE\"] = \"triple\";\n    SparqlOperator[\"SUBJECT\"] = \"subject\";\n    SparqlOperator[\"PREDICATE\"] = \"predicate\";\n    SparqlOperator[\"OBJECT\"] = \"object\";\n    SparqlOperator[\"IS_TRIPLE\"] = \"istriple\";\n    // Functional Forms\n    // https://www.w3.org/TR/sparql11-query/#func-forms\n    SparqlOperator[\"BOUND\"] = \"bound\";\n    SparqlOperator[\"IF\"] = \"if\";\n    SparqlOperator[\"COALESCE\"] = \"coalesce\";\n})(SparqlOperator || (exports.SparqlOperator = SparqlOperator = {}));\n//# sourceMappingURL=Consts.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoAggregator = exports.ExtensionFunctionError = exports.InvalidExpression = exports.InvalidArity = exports.UnexpectedError = exports.ParseError = exports.EmptyAggregateError = exports.IncompatibleLanguageOperation = exports.InvalidTimezoneCall = exports.CastError = exports.InvalidArgumentTypes = exports.InError = exports.CoalesceError = exports.RDFEqualTypeError = exports.EBVCoercionError = exports.UnboundVariableError = exports.InvalidLexicalForm = exports.isExpressionError = exports.ExpressionError = void 0;\n/**\n * This class of error will be thrown when an expression errors.\n * Various reasons this could happen are:\n *   - invalid types for the given operator\n *   - unbound variables\n *   - invalid lexical forms\n *   - ...\n *\n * The distinction is made so that one can catch this specific type\n * and handle it accordingly to the SPARQL spec (relevant for e.g. FILTER, EXTEND),\n * while others (programming errors) can be re-thrown.\n *\n * @see isExpressionError\n */\nclass ExpressionError extends Error {\n}\nexports.ExpressionError = ExpressionError;\n/**\n * Checks whether a given error is an {@link ExpressionError}.\n * Also useful for mocking in tests for covering all branches.\n *\n * @see ExpressionError\n */\nfunction isExpressionError(error) {\n    return error instanceof ExpressionError;\n}\nexports.isExpressionError = isExpressionError;\n/**\n * A literal has an invalid lexical form for the datatype it is accompanied by.\n * This error is only thrown when the term is as function argument that requires\n * a valid lexical form.\n */\nclass InvalidLexicalForm extends ExpressionError {\n    constructor(arg) {\n        super(`Invalid lexical form '${pp(arg)}'`);\n        this.arg = arg;\n    }\n}\nexports.InvalidLexicalForm = InvalidLexicalForm;\n/**\n * A variable in the expression was not bound.\n */\nclass UnboundVariableError extends ExpressionError {\n    constructor(variable, bindings) {\n        super(`Unbound variable '${pp(variable)}'`);\n        this.variable = variable;\n        this.bindings = bindings;\n    }\n}\nexports.UnboundVariableError = UnboundVariableError;\n/**\n * An invalid term was being coerced to an Effective Boolean Value.\n *\n * See the {@link https://www.w3.org/TR/sparql11-query/#ebv | SPARQL docs}\n * on EBVs.\n */\nclass EBVCoercionError extends ExpressionError {\n    constructor(arg) {\n        super(`Cannot coerce term to EBV '${pp(arg)}'`);\n        this.arg = arg;\n    }\n}\nexports.EBVCoercionError = EBVCoercionError;\n/**\n * An equality test was done on literals with unsupported datatypes.\n *\n * See {@link https://www.w3.org/TR/sparql11-query/#func-RDFterm-equal | term equality spec}.\n */\nclass RDFEqualTypeError extends ExpressionError {\n    constructor(args) {\n        super('Equality test for literals with unsupported datatypes');\n        this.args = args;\n    }\n}\nexports.RDFEqualTypeError = RDFEqualTypeError;\n/**\n * All the expressions in a COALESCE call threw errors.\n */\nclass CoalesceError extends ExpressionError {\n    constructor(errors) {\n        super('All COALESCE arguments threw errors');\n        this.errors = errors;\n    }\n}\nexports.CoalesceError = CoalesceError;\n/**\n * No arguments to an IN call where equal, and at least one threw an error.\n */\nclass InError extends ExpressionError {\n    constructor(errors) {\n        super(`Some argument to IN errorred and none where equal. ${errors.map(err => `(${err.toString()}) `).join('and ')}`);\n        this.errors = errors;\n    }\n}\nexports.InError = InError;\n/**\n * Literals were passed to an operator that doesn't support their datatypes.\n */\nclass InvalidArgumentTypes extends ExpressionError {\n    constructor(args, op) {\n        super(`Argument types not valid for operator: '${pp(op)}' with '${pp(args)}`);\n        this.args = args;\n        this.op = op;\n    }\n}\nexports.InvalidArgumentTypes = InvalidArgumentTypes;\n/**\n * An invalid typecast happened.\n */\nclass CastError extends ExpressionError {\n    constructor(arg, cast) {\n        super(`Invalid cast: '${pp(arg)}' to '${pp(cast)}'`);\n        this.arg = arg;\n    }\n}\nexports.CastError = CastError;\nclass InvalidTimezoneCall extends ExpressionError {\n    constructor(dateString) {\n        super(`TIMEZONE call on ${dateString} which has no timezone`);\n        this.dateString = dateString;\n    }\n}\nexports.InvalidTimezoneCall = InvalidTimezoneCall;\nclass IncompatibleLanguageOperation extends ExpressionError {\n    constructor(arg1, arg2) {\n        super(`Operation on incompatible language literals '${pp(arg1)}' and '${pp(arg2)}'`);\n        this.arg1 = arg1;\n        this.arg2 = arg2;\n    }\n}\nexports.IncompatibleLanguageOperation = IncompatibleLanguageOperation;\nclass EmptyAggregateError extends ExpressionError {\n    constructor() {\n        super('Empty aggregate expression');\n    }\n}\nexports.EmptyAggregateError = EmptyAggregateError;\nclass ParseError extends ExpressionError {\n    constructor(str, type) {\n        super(`Failed to parse \"${str}\" as ${type}.`);\n    }\n}\nexports.ParseError = ParseError;\n// Non Expression Errors ------------------------------------------------------\n/**\n * An error that arises when we detect a 'should-be-impossible' state.\n * Given that this error is thrown, it clearly wasn't impossible, and some\n * mistake has been made.\n */\nclass UnexpectedError extends Error {\n    constructor(message, payload) {\n        super(`Programmer Error '${message}'`);\n        this.payload = payload;\n    }\n}\nexports.UnexpectedError = UnexpectedError;\nclass InvalidArity extends Error {\n    constructor(args, op) {\n        super(`The number of args does not match the arity of the operator '${pp(op)}'.`);\n        this.args = args;\n        this.op = op;\n    }\n}\nexports.InvalidArity = InvalidArity;\nclass InvalidExpression extends Error {\n    constructor(expr) {\n        super(`Invalid SPARQL Expression '${pp(expr)}'`);\n    }\n}\nexports.InvalidExpression = InvalidExpression;\nclass ExtensionFunctionError extends Error {\n    constructor(name, functionError) {\n        if (functionError instanceof Error) {\n            super(`Error thrown in ${name}: ${functionError.message}${functionError.stack ? `\\n${functionError.stack}` : ''}`);\n        }\n        else {\n            super(`Error thrown in ${name}`);\n        }\n    }\n}\nexports.ExtensionFunctionError = ExtensionFunctionError;\nclass NoAggregator extends Error {\n    constructor(name) {\n        super(`Aggregate expression ${pp(name)} found, but no aggregate hook provided.`);\n    }\n}\nexports.NoAggregator = NoAggregator;\nfunction pp(object) {\n    return JSON.stringify(object);\n}\n//# sourceMappingURL=Errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.serializeDuration = exports.serializeTime = exports.serializeDate = exports.serializeDateTime = void 0;\nfunction numSerializer(num, min = 2) {\n    return num.toLocaleString(undefined, { minimumIntegerDigits: min, useGrouping: false });\n}\nfunction serializeDateTime(date) {\n    // https://www.w3.org/TR/xmlschema-2/#dateTime\n    // Extraction is needed because the date serializer can not add timezone y\n    return `${serializeDate({ year: date.year, month: date.month, day: date.day })}T${serializeTime(date)}`;\n}\nexports.serializeDateTime = serializeDateTime;\nfunction serializeTimeZone(tz) {\n    // https://www.w3.org/TR/xmlschema-2/#dateTime-timezones\n    if (tz.zoneHours === undefined || tz.zoneMinutes === undefined) {\n        return '';\n    }\n    if (tz.zoneHours === 0 && tz.zoneMinutes === 0) {\n        return 'Z';\n    }\n    // SerializeTimeZone({ zoneHours: 5, zoneMinutes: 4 }) returns +05:04\n    return `${tz.zoneHours >= 0 ? `+${numSerializer(tz.zoneHours)}` : numSerializer(tz.zoneHours)}:${numSerializer(Math.abs(tz.zoneMinutes))}`;\n}\nfunction serializeDate(date) {\n    // https://www.w3.org/TR/xmlschema-2/#date-lexical-representation\n    return `${numSerializer(date.year, 4)}-${numSerializer(date.month)}-${numSerializer(date.day)}${serializeTimeZone(date)}`;\n}\nexports.serializeDate = serializeDate;\nfunction serializeTime(time) {\n    // https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\n    return `${numSerializer(time.hours)}:${numSerializer(time.minutes)}:${numSerializer(time.seconds)}${serializeTimeZone(time)}`;\n}\nexports.serializeTime = serializeTime;\nfunction serializeDuration(dur, zeroString = 'PT0S') {\n    // https://www.w3.org/TR/xmlschema-2/#duration-lexical-repr\n    if (!Object.values(dur).some(val => (val || 0) !== 0)) {\n        return zeroString;\n    }\n    const sign = Object.values(dur).some(val => (val || 0) < 0) ? '-' : '';\n    const year = dur.year ? `${Math.abs(dur.year)}Y` : '';\n    const month = dur.month ? `${Math.abs(dur.month)}M` : '';\n    const day = dur.day ? `${Math.abs(dur.day)}D` : '';\n    const dayNotation = `${sign}P${year}${month}${day}`;\n    // eslint-disable-next-line ts/prefer-nullish-coalescing\n    if (!(dur.hours || dur.minutes || dur.seconds)) {\n        return dayNotation;\n    }\n    const hour = dur.hours ? `${Math.abs(dur.hours)}H` : '';\n    const minute = dur.minutes ? `${Math.abs(dur.minutes)}M` : '';\n    const second = dur.seconds ? `${Math.abs(dur.seconds)}S` : '';\n    return `${dayNotation}T${hour}${minute}${second}`;\n}\nexports.serializeDuration = serializeDuration;\n//# sourceMappingURL=Serialization.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OverloadTree = void 0;\nconst expressions_1 = require(\"../expressions\");\nconst TypeHandling_1 = require(\"../util/TypeHandling\");\n/**\n * Maps argument types on their specific implementation in a tree like structure.\n * When adding any functionality to this class, make sure you add it to SpecialFunctions as well.\n */\nclass OverloadTree {\n    constructor(identifier, depth) {\n        this.identifier = identifier;\n        this.implementation = undefined;\n        this.generalOverloads = Object.create(null);\n        this.literalOverLoads = [];\n        this.depth = depth ?? 0;\n        this.promotionCount = undefined;\n    }\n    getSubtree(overrideType) {\n        const generalType = (0, TypeHandling_1.asGeneralType)(overrideType);\n        if (generalType) {\n            return this.generalOverloads[generalType];\n        }\n        for (const [type, overloadTree] of this.literalOverLoads) {\n            if (overrideType === type) {\n                return overloadTree;\n            }\n        }\n        return undefined;\n    }\n    /**\n     * Get the implementation for the types that exactly match @param args .\n     */\n    getImplementationExact(args) {\n        // eslint-disable-next-line ts/no-this-alias\n        let node = this;\n        for (const expression of args) {\n            node = node.getSubtree(expression);\n            if (!node) {\n                return undefined;\n            }\n        }\n        return node.implementation;\n    }\n    /**\n     * Searches in a depth first way for the best matching overload. considering this a the tree's root.\n     * @param args the arguments to the function.\n     * @param superTypeProvider\n     * @param functionArgumentsCache\n     */\n    search(args, superTypeProvider, functionArgumentsCache) {\n        let cacheIter = functionArgumentsCache[this.identifier];\n        let searchIndex = 0;\n        while (searchIndex < args.length && cacheIter?.cache) {\n            const term = args[searchIndex];\n            const literalExpression = (0, expressions_1.isLiteralTermExpression)(term);\n            cacheIter = cacheIter.cache[literalExpression ? literalExpression.dataType : term.termType];\n            searchIndex++;\n        }\n        if (searchIndex === args.length && cacheIter?.func) {\n            return cacheIter.func;\n        }\n        // SearchStack is a stack of all node's that need to be checked for implementation.\n        // It provides an easy way to keep order in our search.\n        const searchStack = [];\n        const startIndex = 0;\n        if (args.length === 0) {\n            return this.implementation;\n        }\n        // GetSubTreeWithArg return a SearchStack containing the node's that should be contacted next.\n        // We also log the index since there is no other way to remember this index.\n        // the provided stack should be pushed on top of our search stack since it also has it's order.\n        searchStack.push(...this.getSubTreeWithArg(args[startIndex], superTypeProvider).map(node => ({ node, index: startIndex + 1 })));\n        while (searchStack.length > 0) {\n            const { index, node } = searchStack.pop();\n            // We check the implementation because it would be possible a path is created but not implemented.\n            // ex: f(double, double, double) and f(term, term). and calling f(double, double).\n            if (index === args.length && node.implementation) {\n                this.addToCache(functionArgumentsCache, args, node.implementation);\n                return node.implementation;\n            }\n            searchStack.push(...node.getSubTreeWithArg(args[index], superTypeProvider).map(item => ({ node: item, index: index + 1 })));\n        }\n        // Calling a function with one argument but finding no implementation should return no implementation.\n        // Not even the one with no arguments.\n        return undefined;\n    }\n    addToCache(functionArgumentsCache, args, func) {\n        function getDefault(lruCache, key) {\n            if (!(key in lruCache)) {\n                lruCache[key] = {};\n            }\n            return lruCache[key];\n        }\n        let cache = getDefault(functionArgumentsCache, this.identifier);\n        for (const term of args) {\n            const literalExpression = (0, expressions_1.isLiteralTermExpression)(term);\n            const key = literalExpression ? literalExpression.dataType : term.termType;\n            cache.cache = cache.cache ?? {};\n            cache = getDefault(cache.cache, key);\n        }\n        cache.func = func;\n    }\n    /**\n     * Adds an overload to the tree structure considering this as the tree's root.\n     * @param argumentTypes a list of argumentTypes that would need to be provided in\n     * the same order to get the implementation.\n     * @param func the implementation for this overload.\n     */\n    addOverload(argumentTypes, func) {\n        this._addOverload([...argumentTypes], func, 0);\n    }\n    _addOverload(argumentTypes, func, promotionCount) {\n        const [argumentType, ..._argumentTypes] = argumentTypes;\n        if (!argumentType) {\n            if (this.promotionCount === undefined || promotionCount <= this.promotionCount) {\n                this.promotionCount = promotionCount;\n                this.implementation = func;\n            }\n            return;\n        }\n        let nextTree = this.getSubtree(argumentType);\n        if (!nextTree) {\n            const newNode = new OverloadTree(this.identifier, this.depth + 1);\n            const generalType = (0, TypeHandling_1.asGeneralType)(argumentType);\n            if (generalType) {\n                this.generalOverloads[generalType] = newNode;\n            }\n            const overrideType = (0, TypeHandling_1.asOverrideType)(argumentType);\n            if (overrideType) {\n                this.literalOverLoads.push([overrideType, newNode]);\n            }\n            nextTree = newNode;\n        }\n        nextTree._addOverload(_argumentTypes, func, promotionCount);\n        if (TypeHandling_1.typePromotion[argumentType]) {\n            for (const ret of TypeHandling_1.typePromotion[argumentType]) {\n                this.addPromotedOverload(ret.typeToPromote, func, ret.conversionFunction, _argumentTypes, promotionCount);\n            }\n        }\n    }\n    addPromotedOverload(typeToPromote, func, conversionFunction, argumentTypes, promotionCount) {\n        let nextTree = this.getSubtree(typeToPromote);\n        if (!nextTree) {\n            const newNode = new OverloadTree(this.identifier, this.depth + 1);\n            this.literalOverLoads.push([typeToPromote, newNode]);\n            nextTree = newNode;\n        }\n        nextTree._addOverload(argumentTypes, funcConf => args => func(funcConf)([\n            ...args.slice(0, this.depth),\n            conversionFunction(args[this.depth]),\n            ...args.slice(this.depth + 1, args.length),\n        ]), promotionCount + 1);\n    }\n    /**\n     * @param arg term to try and match to possible overloads of this node.\n     * @param openWorldType interface allowing to discover relations between types.\n     * @returns SearchStack a stack with top element the next node that should be asked for implementation or overload.\n     */\n    getSubTreeWithArg(arg, openWorldType) {\n        const res = [];\n        const literalExpression = (0, expressions_1.isLiteralTermExpression)(arg);\n        // These types refer to Type exported by lib/util/Consts.ts\n        if (this.generalOverloads.term) {\n            res.push(this.generalOverloads.term);\n        }\n        // TermTypes are defined in E.TermType.\n        if (this.generalOverloads[arg.termType]) {\n            res.push(this.generalOverloads[arg.termType]);\n        }\n        if (literalExpression) {\n            // Defending implementation. Mainly the scary sort.\n            // This function has cost O(n) + O(m * log(m)) with n = amount of overloads and m = amount of matched overloads\n            // We map over each of the overloads, filter only the once that can be used (this is normally 1 or 2).\n            // The sort function on an array with 1 or 2 arguments will be negligible.\n            const concreteType = (0, TypeHandling_1.asKnownLiteralType)(literalExpression.dataType);\n            let subExtensionTable;\n            if (concreteType) {\n                // Concrete dataType is known by utils-expression-evaluator.\n                subExtensionTable = TypeHandling_1.superTypeDictTable[concreteType];\n            }\n            else {\n                // Datatype is a custom datatype\n                subExtensionTable = (0, TypeHandling_1.getSuperTypes)(literalExpression.dataType, openWorldType);\n            }\n            const matches = this.literalOverLoads.filter(([matchType, _]) => matchType in subExtensionTable)\n                .map(([matchType, tree]) => [subExtensionTable[matchType], tree]);\n            // eslint-disable-next-line unused-imports/no-unused-vars\n            matches.sort(([prioA, matchTypeA], [prioB, matchTypeB]) => prioA - prioB);\n            res.push(...matches.map(([_, sortedType]) => sortedType));\n        }\n        return res;\n    }\n}\nexports.OverloadTree = OverloadTree;\n//# sourceMappingURL=OverloadTree.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.expressionToVar = exports.dateTime = exports.langString = exports.string = exports.double = exports.float = exports.decimal = exports.integer = exports.bool = exports.Builder = exports.declare = void 0;\n/**\n * These helpers provide a (albeit inflexible) DSL for writing function\n * definitions for the SPARQL functions.\n */\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst E = require(\"../expressions\");\nconst expressions_1 = require(\"../expressions\");\nconst C = require(\"../util/Consts\");\nconst Consts_1 = require(\"../util/Consts\");\nconst Err = require(\"../util/Errors\");\nconst OverloadTree_1 = require(\"./OverloadTree\");\nfunction declare(identifier) {\n    return new Builder(identifier);\n}\nexports.declare = declare;\nclass Builder {\n    constructor(identifier) {\n        this.overloadTree = new OverloadTree_1.OverloadTree(identifier);\n        this.collected = false;\n    }\n    collect() {\n        if (this.collected) {\n            // Only 1 time allowed because we can't copy a tree. (And we don't need this).\n            throw new Error('Builders can only be collected once!');\n        }\n        this.collected = true;\n        return this.overloadTree;\n    }\n    static wrapInvalidLexicalProtected(func) {\n        return (expressionEvaluator) => (args) => {\n            for (const [index, arg] of args.entries()) {\n                if (arg instanceof expressions_1.NonLexicalLiteral) {\n                    throw new Err.InvalidLexicalForm(args[index].toRDF(expressionEvaluator.context.getSafe(context_entries_1.KeysInitQuery.dataFactory)));\n                }\n            }\n            return func(expressionEvaluator)(args);\n        };\n    }\n    set(argTypes, func, addInvalidHandling = true) {\n        this.overloadTree.addOverload(argTypes, addInvalidHandling ? Builder.wrapInvalidLexicalProtected(func) : func);\n        return this;\n    }\n    copy({ from, to }) {\n        const impl = this.overloadTree.getImplementationExact(from);\n        if (!impl) {\n            throw new Err.UnexpectedError('Tried to copy implementation, but types not found', { from, to });\n        }\n        return this.set(to, impl);\n    }\n    onUnary(type, op, addInvalidHandling = true) {\n        return this.set([type], expressionEvaluator => ([val]) => op(expressionEvaluator)(val), addInvalidHandling);\n    }\n    onUnaryTyped(type, op, addInvalidHandling = true) {\n        return this.set([type], expressionEvaluator => ([val]) => op(expressionEvaluator)(val.typedValue), addInvalidHandling);\n    }\n    onBinary(types, op, addInvalidHandling = true) {\n        return this.set(types, expressionEvaluator => ([left, right]) => op(expressionEvaluator)(left, right), addInvalidHandling);\n    }\n    onBinaryTyped(types, op, addInvalidHandling = true) {\n        return this.set(types, expressionEvaluator => ([left, right]) => op(expressionEvaluator)(left.typedValue, right.typedValue), addInvalidHandling);\n    }\n    onTernaryTyped(types, op, addInvalidHandling = true) {\n        return this.set(types, expressionEvaluator => ([a1, a2, a3]) => op(expressionEvaluator)(a1.typedValue, a2.typedValue, a3.typedValue), addInvalidHandling);\n    }\n    onTernary(types, op, addInvalidHandling = true) {\n        return this.set(types, expressionEvaluator => ([a1, a2, a3]) => op(expressionEvaluator)(a1, a2, a3), addInvalidHandling);\n    }\n    onQuaternaryTyped(types, op, addInvalidHandling = true) {\n        return this.set(types, expressionEvaluator => ([a1, a2, a3, a4]) => op(expressionEvaluator)(a1.typedValue, a2.typedValue, a3.typedValue, a4.typedValue), addInvalidHandling);\n    }\n    onTerm1(op, addInvalidHandling = false) {\n        return this.set(['term'], expressionEvaluator => ([term]) => op(expressionEvaluator)(term), addInvalidHandling);\n    }\n    onTerm3(op) {\n        return this.set(['term', 'term', 'term'], expressionEvaluator => ([t1, t2, t3]) => op(expressionEvaluator)(t1, t2, t3));\n    }\n    onQuad1(op) {\n        return this.set(['quad'], expressionEvaluator => ([term]) => op(expressionEvaluator)(term));\n    }\n    onLiteral1(op, addInvalidHandling = true) {\n        return this.set(['literal'], expressionEvaluator => ([term]) => op(expressionEvaluator)(term), addInvalidHandling);\n    }\n    onBoolean1(op, addInvalidHandling = true) {\n        return this.set([C.TypeURL.XSD_BOOLEAN], expressionEvaluator => ([lit]) => op(expressionEvaluator)(lit), addInvalidHandling);\n    }\n    onBoolean1Typed(op, addInvalidHandling = true) {\n        return this.set([C.TypeURL.XSD_BOOLEAN], expressionEvaluator => ([lit]) => op(expressionEvaluator)(lit.typedValue), addInvalidHandling);\n    }\n    onString1(op, addInvalidHandling = true) {\n        return this.set([C.TypeURL.XSD_STRING], expressionEvaluator => ([lit]) => op(expressionEvaluator)(lit), addInvalidHandling);\n    }\n    onString1Typed(op, addInvalidHandling = true) {\n        return this.set([C.TypeURL.XSD_STRING], expressionEvaluator => ([lit]) => op(expressionEvaluator)(lit.typedValue), addInvalidHandling);\n    }\n    onLangString1(op, addInvalidHandling = true) {\n        return this.set([C.TypeURL.RDF_LANG_STRING], expressionEvaluator => ([lit]) => op(expressionEvaluator)(lit), addInvalidHandling);\n    }\n    onStringly1(op, addInvalidHandling = true) {\n        return this.set([C.TypeAlias.SPARQL_STRINGLY], expressionEvaluator => ([lit]) => op(expressionEvaluator)(lit), addInvalidHandling);\n    }\n    onStringly1Typed(op, addInvalidHandling = true) {\n        return this.set([C.TypeAlias.SPARQL_STRINGLY], expressionEvaluator => ([lit]) => op(expressionEvaluator)(lit.typedValue), addInvalidHandling);\n    }\n    onNumeric1(op, addInvalidHandling = true) {\n        return this.set([C.TypeAlias.SPARQL_NUMERIC], expressionEvaluator => ([val]) => op(expressionEvaluator)(val), addInvalidHandling);\n    }\n    onDateTime1(op, addInvalidHandling = true) {\n        return this\n            .set([C.TypeURL.XSD_DATE_TIME], expressionEvaluator => ([val]) => op(expressionEvaluator)(val), addInvalidHandling);\n    }\n    /**\n     * We return the base types and not the provided types because we don't want to create invalid terms.\n     * Providing negative number to a function unary - for example should not\n     * return a term of type negative number having a positive value.\n     * @param op the numeric operator performed\n     * @param addInvalidHandling whether to add invalid handling,\n     *   whether to add @param op in @see wrapInvalidLexicalProtected\n     */\n    numericConverter(op, addInvalidHandling = true) {\n        const evalHelper = (expressionEvaluator) => (arg) => op(expressionEvaluator)(arg.typedValue);\n        return this.onUnary(Consts_1.TypeURL.XSD_INTEGER, expressionEvaluator => arg => integer(evalHelper(expressionEvaluator)(arg)), addInvalidHandling)\n            .onUnary(Consts_1.TypeURL.XSD_DECIMAL, expressionEvaluator => arg => decimal(evalHelper(expressionEvaluator)(arg)), addInvalidHandling)\n            .onUnary(Consts_1.TypeURL.XSD_FLOAT, expressionEvaluator => arg => float(evalHelper(expressionEvaluator)(arg)), addInvalidHandling)\n            .onUnary(Consts_1.TypeURL.XSD_DOUBLE, expressionEvaluator => arg => double(evalHelper(expressionEvaluator)(arg)), addInvalidHandling);\n    }\n    /**\n     * !!! Be aware when using this function, it will create different overloads with different return types !!!\n     * Arithmetic operators take 2 numeric arguments, and return a single numerical\n     * value. The type of the return value is heavily dependent on the types of the\n     * input arguments. In JS everything is a double, but in SPARQL it is not.\n     *\n     * The different arguments are handled by type promotion and subtype substitution.\n     * The way numeric function arguments work is described here:\n     * https://www.w3.org/TR/xpath20/#mapping\n     * Above url is referenced in the sparql spec: https://www.w3.org/TR/sparql11-query/#OperatorMapping\n     */\n    arithmetic(op, addInvalidHandling = true) {\n        const evalHelper = (expressionEvaluator) => (left, right) => op(expressionEvaluator)(left.typedValue, right.typedValue);\n        return this.onBinary([Consts_1.TypeURL.XSD_INTEGER, Consts_1.TypeURL.XSD_INTEGER], expressionEvaluator => (left, right) => integer(evalHelper(expressionEvaluator)(left, right)), addInvalidHandling)\n            .onBinary([Consts_1.TypeURL.XSD_DECIMAL, Consts_1.TypeURL.XSD_DECIMAL], expressionEvaluator => (left, right) => decimal(evalHelper(expressionEvaluator)(left, right)), addInvalidHandling)\n            .onBinary([Consts_1.TypeURL.XSD_FLOAT, Consts_1.TypeURL.XSD_FLOAT], expressionEvaluator => (left, right) => float(evalHelper(expressionEvaluator)(left, right)), addInvalidHandling)\n            .onBinary([Consts_1.TypeURL.XSD_DOUBLE, Consts_1.TypeURL.XSD_DOUBLE], expressionEvaluator => (left, right) => double(evalHelper(expressionEvaluator)(left, right)), addInvalidHandling);\n    }\n    numberTest(test) {\n        return this.numeric(expressionEvaluator => ([left, right]) => {\n            const result = test(expressionEvaluator)(left.typedValue, right.typedValue);\n            return bool(result);\n        });\n    }\n    stringTest(test, addInvalidHandling = true) {\n        return this\n            .set([C.TypeURL.XSD_STRING, C.TypeURL.XSD_STRING], expressionEvaluator => ([left, right]) => {\n            const result = test(expressionEvaluator)(left.typedValue, right.typedValue);\n            return bool(result);\n        }, addInvalidHandling);\n    }\n    booleanTest(test, addInvalidHandling = true) {\n        return this\n            .set([C.TypeURL.XSD_BOOLEAN, C.TypeURL.XSD_BOOLEAN], expressionEvaluator => ([left, right]) => {\n            const result = test(expressionEvaluator)(left.typedValue, right.typedValue);\n            return bool(result);\n        }, addInvalidHandling);\n    }\n    dateTimeTest(test, addInvalidHandling = true) {\n        return this\n            .set([C.TypeURL.XSD_DATE_TIME, C.TypeURL.XSD_DATE_TIME], expressionEvaluator => ([left, right]) => {\n            const result = test(expressionEvaluator)(left.typedValue, right.typedValue);\n            return bool(result);\n        }, addInvalidHandling);\n    }\n    numeric(op) {\n        return this.set([C.TypeAlias.SPARQL_NUMERIC, C.TypeAlias.SPARQL_NUMERIC], op);\n    }\n}\nexports.Builder = Builder;\n// ----------------------------------------------------------------------------\n// Literal Construction helpers\n// ----------------------------------------------------------------------------\nfunction bool(val) {\n    return new E.BooleanLiteral(val);\n}\nexports.bool = bool;\nfunction integer(num) {\n    return new E.IntegerLiteral(num);\n}\nexports.integer = integer;\nfunction decimal(num) {\n    return new E.DecimalLiteral(num);\n}\nexports.decimal = decimal;\nfunction float(num) {\n    return new E.FloatLiteral(num);\n}\nexports.float = float;\nfunction double(num) {\n    return new E.DoubleLiteral(num);\n}\nexports.double = double;\nfunction string(str) {\n    return new E.StringLiteral(str);\n}\nexports.string = string;\nfunction langString(str, lang) {\n    return new E.LangStringLiteral(str, lang);\n}\nexports.langString = langString;\nfunction dateTime(date, str) {\n    return new E.DateTimeLiteral(date, str);\n}\nexports.dateTime = dateTime;\nfunction expressionToVar(dataFactory, variableExpression) {\n    return dataFactory.variable(variableExpression.name.slice(1));\n}\nexports.expressionToVar = expressionToVar;\n//# sourceMappingURL=Helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.typePromotion = exports.isSubTypeOf = exports.getSuperTypeDict = exports.isInternalSubType = exports.asGeneralType = exports.asOverrideType = exports.asKnownLiteralType = exports.asTypeAlias = exports.typeAliasCheck = exports.extensionTableInit = exports.getSuperTypes = exports.superTypeDictTable = exports.extensionTableInput = void 0;\nconst expressions_1 = require(\"../expressions\");\nconst Helpers_1 = require(\"../functions/Helpers\");\nconst Consts_1 = require(\"./Consts\");\n/**\n * Types that are not mentioned just map to 'term'.\n * When editing this, make sure type promotion and substitution don't start interfering.\n * e.g. when saying something like string -> stringly -> anyUri -> term.\n * This would make substitution on types that promote to each other possible. We and the specs don't want that!\n * A DAG will be created based on this. Make sure it doesn't have any cycles!\n */\nexports.extensionTableInput = {\n    // Datetime types\n    [Consts_1.TypeURL.XSD_DATE_TIME_STAMP]: Consts_1.TypeURL.XSD_DATE_TIME,\n    // Duration types\n    [Consts_1.TypeURL.XSD_DAY_TIME_DURATION]: Consts_1.TypeURL.XSD_DURATION,\n    [Consts_1.TypeURL.XSD_YEAR_MONTH_DURATION]: Consts_1.TypeURL.XSD_DURATION,\n    // Stringly types\n    [Consts_1.TypeURL.RDF_LANG_STRING]: Consts_1.TypeAlias.SPARQL_STRINGLY,\n    [Consts_1.TypeURL.XSD_STRING]: Consts_1.TypeAlias.SPARQL_STRINGLY,\n    // String types\n    [Consts_1.TypeURL.XSD_NORMALIZED_STRING]: Consts_1.TypeURL.XSD_STRING,\n    [Consts_1.TypeURL.XSD_TOKEN]: Consts_1.TypeURL.XSD_NORMALIZED_STRING,\n    [Consts_1.TypeURL.XSD_LANGUAGE]: Consts_1.TypeURL.XSD_TOKEN,\n    [Consts_1.TypeURL.XSD_NM_TOKEN]: Consts_1.TypeURL.XSD_TOKEN,\n    [Consts_1.TypeURL.XSD_NAME]: Consts_1.TypeURL.XSD_TOKEN,\n    [Consts_1.TypeURL.XSD_NC_NAME]: Consts_1.TypeURL.XSD_NAME,\n    [Consts_1.TypeURL.XSD_ENTITY]: Consts_1.TypeURL.XSD_NC_NAME,\n    [Consts_1.TypeURL.XSD_ID]: Consts_1.TypeURL.XSD_NC_NAME,\n    [Consts_1.TypeURL.XSD_ID_REF]: Consts_1.TypeURL.XSD_NC_NAME,\n    // Numeric types\n    // https://www.w3.org/TR/sparql11-query/#operandDataTypes\n    // > numeric denotes typed literals with datatypes xsd:integer, xsd:decimal, xsd:float, and xsd:double\n    [Consts_1.TypeURL.XSD_DOUBLE]: Consts_1.TypeAlias.SPARQL_NUMERIC,\n    [Consts_1.TypeURL.XSD_FLOAT]: Consts_1.TypeAlias.SPARQL_NUMERIC,\n    [Consts_1.TypeURL.XSD_DECIMAL]: Consts_1.TypeAlias.SPARQL_NUMERIC,\n    // Decimal types\n    [Consts_1.TypeURL.XSD_INTEGER]: Consts_1.TypeURL.XSD_DECIMAL,\n    [Consts_1.TypeURL.XSD_NON_POSITIVE_INTEGER]: Consts_1.TypeURL.XSD_INTEGER,\n    [Consts_1.TypeURL.XSD_NEGATIVE_INTEGER]: Consts_1.TypeURL.XSD_NON_POSITIVE_INTEGER,\n    [Consts_1.TypeURL.XSD_LONG]: Consts_1.TypeURL.XSD_INTEGER,\n    [Consts_1.TypeURL.XSD_INT]: Consts_1.TypeURL.XSD_LONG,\n    [Consts_1.TypeURL.XSD_SHORT]: Consts_1.TypeURL.XSD_INT,\n    [Consts_1.TypeURL.XSD_BYTE]: Consts_1.TypeURL.XSD_SHORT,\n    [Consts_1.TypeURL.XSD_NON_NEGATIVE_INTEGER]: Consts_1.TypeURL.XSD_INTEGER,\n    [Consts_1.TypeURL.XSD_POSITIVE_INTEGER]: Consts_1.TypeURL.XSD_NON_NEGATIVE_INTEGER,\n    [Consts_1.TypeURL.XSD_UNSIGNED_LONG]: Consts_1.TypeURL.XSD_NON_NEGATIVE_INTEGER,\n    [Consts_1.TypeURL.XSD_UNSIGNED_INT]: Consts_1.TypeURL.XSD_UNSIGNED_LONG,\n    [Consts_1.TypeURL.XSD_UNSIGNED_SHORT]: Consts_1.TypeURL.XSD_UNSIGNED_INT,\n    [Consts_1.TypeURL.XSD_UNSIGNED_BYTE]: Consts_1.TypeURL.XSD_UNSIGNED_SHORT,\n    [Consts_1.TypeURL.XSD_DATE_TIME]: 'term',\n    [Consts_1.TypeURL.XSD_BOOLEAN]: 'term',\n    [Consts_1.TypeURL.XSD_DATE]: 'term',\n    [Consts_1.TypeURL.XSD_G_MONTH]: 'term',\n    [Consts_1.TypeURL.XSD_G_MONTHDAY]: 'term',\n    [Consts_1.TypeURL.XSD_G_YEAR]: 'term',\n    [Consts_1.TypeURL.XSD_G_YEAR_MONTH]: 'term',\n    [Consts_1.TypeURL.XSD_TIME]: 'term',\n    [Consts_1.TypeURL.XSD_G_DAY]: 'term',\n    [Consts_1.TypeURL.XSD_DURATION]: 'term',\n    [Consts_1.TypeAlias.SPARQL_NUMERIC]: 'term',\n    [Consts_1.TypeAlias.SPARQL_STRINGLY]: 'term',\n    [Consts_1.TypeURL.XSD_ANY_URI]: 'term',\n};\nexports.superTypeDictTable = Object.create(null);\n/**\n * This will return the super types of a type and cache them.\n * @param type IRI we will decide the super types of.\n * @param openWorldType the enabler that provides a way to find super types.\n */\nfunction getSuperTypes(type, openWorldType) {\n    const cached = openWorldType.cache.get(type);\n    if (cached) {\n        return cached;\n    }\n    const value = openWorldType.discoverer(type);\n    if (value === 'term') {\n        const res = Object.create(null);\n        res.__depth = 0;\n        res[type] = 0;\n        openWorldType.cache.set(type, res);\n        return res;\n    }\n    let subExtension;\n    const knownValue = asKnownLiteralType(value);\n    if (knownValue) {\n        subExtension = { ...exports.superTypeDictTable[knownValue] };\n    }\n    else {\n        subExtension = { ...getSuperTypes(value, openWorldType) };\n    }\n    subExtension.__depth++;\n    subExtension[type] = subExtension.__depth;\n    openWorldType.cache.set(type, subExtension);\n    return subExtension;\n}\nexports.getSuperTypes = getSuperTypes;\n// No circular structure allowed! & No other keys allowed!\nfunction extensionTableInit() {\n    for (const [_key, value] of Object.entries(exports.extensionTableInput)) {\n        const key = _key;\n        if (exports.superTypeDictTable[key]) {\n            continue;\n        }\n        extensionTableBuilderInitKey(key, value, exports.superTypeDictTable);\n    }\n}\nexports.extensionTableInit = extensionTableInit;\nextensionTableInit();\nfunction extensionTableBuilderInitKey(key, value, res) {\n    if (value === 'term' || value === undefined) {\n        const baseRes = Object.create(null);\n        baseRes.__depth = 0;\n        baseRes[key] = 0;\n        res[key] = baseRes;\n        return;\n    }\n    if (!res[value]) {\n        extensionTableBuilderInitKey(value, exports.extensionTableInput[value], res);\n    }\n    res[key] = { ...res[value], [key]: res[value].__depth + 1, __depth: res[value].__depth + 1 };\n}\nexports.typeAliasCheck = Object.create(null);\nfunction initTypeAliasCheck() {\n    for (const val of Object.values(Consts_1.TypeAlias)) {\n        exports.typeAliasCheck[val] = true;\n    }\n}\ninitTypeAliasCheck();\nfunction asTypeAlias(type) {\n    if (type in exports.typeAliasCheck) {\n        return type;\n    }\n    return undefined;\n}\nexports.asTypeAlias = asTypeAlias;\nfunction asKnownLiteralType(type) {\n    if (type in exports.superTypeDictTable) {\n        return type;\n    }\n    return undefined;\n}\nexports.asKnownLiteralType = asKnownLiteralType;\nfunction asOverrideType(type) {\n    if (asKnownLiteralType(type) ?? type === 'term') {\n        return type;\n    }\n    return undefined;\n}\nexports.asOverrideType = asOverrideType;\nfunction asGeneralType(type) {\n    if (type === 'term' || (0, expressions_1.asTermType)(type)) {\n        return type;\n    }\n    return undefined;\n}\nexports.asGeneralType = asGeneralType;\n/**\n * Internal type of @see isSubTypeOf This only takes knownTypes but doesn't need an enabler\n */\nfunction isInternalSubType(baseType, argumentType) {\n    return baseType !== 'term' &&\n        (exports.superTypeDictTable[baseType] && exports.superTypeDictTable[baseType][argumentType] !== undefined);\n}\nexports.isInternalSubType = isInternalSubType;\n/**\n * This function can be used to check the base type is a restriction on a type in the dict.\n * If we want to check if type x is a restriction on string we do this by calling:\n * 'http://www.w3.org/2001/XMLSchema#string' in getSuperTypeDict(X, superTypeProvider)\n * @param baseType\n * @param superTypeProvider\n */\nfunction getSuperTypeDict(baseType, superTypeProvider) {\n    const concreteType = asKnownLiteralType(baseType);\n    if (concreteType) {\n        // Concrete dataType is known by utils-expression-evaluator.\n        return exports.superTypeDictTable[concreteType];\n    }\n    // Datatype is a custom datatype\n    return getSuperTypes(baseType, superTypeProvider);\n}\nexports.getSuperTypeDict = getSuperTypeDict;\n/**\n * This function needs to be O(1)! The execution time of this function is vital!\n * We define typeA isSubtypeOf typeA as true.\n * If you find yourself using this function a lot (e.g. in a case) please use getSuperTypeDict instead.\n * @param baseType type you want to provide.\n * @param argumentType type you want to provide @param baseType to.\n * @param superTypeProvider the enabler to discover super types of unknown types.\n */\nfunction isSubTypeOf(baseType, argumentType, superTypeProvider) {\n    if (baseType === 'term') {\n        return false;\n    }\n    return getSuperTypeDict(baseType, superTypeProvider)[argumentType] !== undefined;\n}\nexports.isSubTypeOf = isSubTypeOf;\n// Defined by https://www.w3.org/TR/xpath-31/#promotion .\n// e.g. When a function takes a string, it can also accept a XSD_ANY_URI if it's cast first.\nexports.typePromotion = {\n    [Consts_1.TypeURL.XSD_STRING]: [\n        { typeToPromote: Consts_1.TypeURL.XSD_ANY_URI, conversionFunction: arg => (0, Helpers_1.string)(arg.str()) },\n    ],\n    [Consts_1.TypeURL.XSD_DOUBLE]: [\n        { typeToPromote: Consts_1.TypeURL.XSD_FLOAT, conversionFunction: arg => (0, Helpers_1.double)(arg.typedValue) },\n        // TODO: in case of decimal a round needs to happen.\n        { typeToPromote: Consts_1.TypeURL.XSD_DECIMAL, conversionFunction: arg => (0, Helpers_1.double)(arg.typedValue) },\n    ],\n    [Consts_1.TypeURL.XSD_FLOAT]: [\n        // TODO: in case of decimal a round needs to happen.\n        { typeToPromote: Consts_1.TypeURL.XSD_DECIMAL, conversionFunction: arg => (0, Helpers_1.float)(arg.typedValue) },\n    ],\n};\n//# sourceMappingURL=TypeHandling.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isNonLexicalLiteral = exports.NonLexicalLiteral = exports.YearMonthDurationLiteral = exports.DayTimeDurationLiteral = exports.DurationLiteral = exports.DateLiteral = exports.TimeLiteral = exports.DateTimeLiteral = exports.StringLiteral = exports.LangStringLiteral = exports.BooleanLiteral = exports.DoubleLiteral = exports.FloatLiteral = exports.DecimalLiteral = exports.IntegerLiteral = exports.NumericLiteral = exports.Literal = exports.isLiteralTermExpression = exports.DefaultGraph = exports.Quad = exports.BlankNode = exports.NamedNode = exports.Term = void 0;\nconst types_1 = require(\"@comunica/types\");\nconst C = require(\"../util/Consts\");\nconst Consts_1 = require(\"../util/Consts\");\nconst Err = require(\"../util/Errors\");\nconst Serialization_1 = require(\"../util/Serialization\");\nconst TypeHandling_1 = require(\"../util/TypeHandling\");\nclass Term {\n    constructor() {\n        this.expressionType = types_1.ExpressionType.Term;\n    }\n    str() {\n        throw new Err.InvalidArgumentTypes([this], C.SparqlOperator.STR);\n    }\n    coerceEBV() {\n        throw new Err.EBVCoercionError(this);\n    }\n}\nexports.Term = Term;\n// NamedNodes -----------------------------------------------------------------\nclass NamedNode extends Term {\n    constructor(value) {\n        super();\n        this.value = value;\n        this.termType = 'namedNode';\n    }\n    toRDF(dataFactory) {\n        return dataFactory.namedNode(this.value);\n    }\n    str() {\n        return this.value;\n    }\n}\nexports.NamedNode = NamedNode;\n// BlankNodes -----------------------------------------------------------------\nclass BlankNode extends Term {\n    constructor(value) {\n        super();\n        this.termType = 'blankNode';\n        this.value = value;\n    }\n    toRDF(dataFactory) {\n        return typeof this.value === 'string' ? dataFactory.blankNode(this.value) : this.value;\n    }\n}\nexports.BlankNode = BlankNode;\n// Quads -----------------------------------------------------------------\nclass Quad extends Term {\n    constructor(subject, predicate, object, graph) {\n        super();\n        this.subject = subject;\n        this.predicate = predicate;\n        this.object = object;\n        this.graph = graph;\n        this.termType = 'quad';\n    }\n    toRDF(dataFactory) {\n        return dataFactory.quad(this.subject.toRDF(dataFactory), this.predicate.toRDF(dataFactory), this.object.toRDF(dataFactory), this.graph.toRDF(dataFactory));\n    }\n    str() {\n        return `Quad: [${this.subject.str()}, ${this.predicate.str()}, ${this.object.str()}, ${this.graph.str()}]`;\n    }\n}\nexports.Quad = Quad;\nclass DefaultGraph extends Term {\n    constructor() {\n        super();\n        this.termType = 'defaultGraph';\n    }\n    toRDF(dataFactory) {\n        return dataFactory.defaultGraph();\n    }\n    str() {\n        return 'DefaultGraph';\n    }\n}\nexports.DefaultGraph = DefaultGraph;\n// Literals-- -----------------------------------------------------------------\nfunction isLiteralTermExpression(expr) {\n    if (expr.termType === 'literal') {\n        return expr;\n    }\n    return undefined;\n}\nexports.isLiteralTermExpression = isLiteralTermExpression;\nclass Literal extends Term {\n    /**\n     * @param typedValue internal representation of this literal's value\n     * @param dataType a string representing the datatype. Can be of type @see LiteralTypes or any URI\n     * @param strValue the string value of this literal. In other words, the string representing the RDF.literal value.\n     * @param language the language, mainly for language enabled strings like RDF_LANG_STRING\n     */\n    constructor(typedValue, dataType, strValue, language) {\n        super();\n        this.typedValue = typedValue;\n        this.dataType = dataType;\n        this.strValue = strValue;\n        this.language = language;\n        this.termType = 'literal';\n    }\n    toRDF(dataFactory) {\n        return dataFactory.literal(this.strValue ?? this.str(), this.language ?? dataFactory.namedNode(this.dataType));\n    }\n    str() {\n        return this.strValue ?? this.typedValue.toString();\n    }\n}\nexports.Literal = Literal;\nclass NumericLiteral extends Literal {\n    constructor(typedValue, dataType, strValue, language) {\n        super(typedValue, dataType, strValue, language);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n        this.language = language;\n    }\n    coerceEBV() {\n        return Boolean(this.typedValue);\n    }\n    toRDF(dataFactory) {\n        const term = super.toRDF(dataFactory);\n        if (!Number.isFinite(this.typedValue)) {\n            term.value = term.value.replace('Infinity', 'INF');\n        }\n        return term;\n    }\n    str() {\n        return this.strValue ??\n            this.specificFormatter(this.typedValue);\n    }\n}\nexports.NumericLiteral = NumericLiteral;\nclass IntegerLiteral extends NumericLiteral {\n    constructor(typedValue, dataType, strValue, language) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_INTEGER, strValue, language);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n        this.language = language;\n    }\n    specificFormatter(val) {\n        return val.toFixed(0);\n    }\n}\nexports.IntegerLiteral = IntegerLiteral;\nclass DecimalLiteral extends NumericLiteral {\n    constructor(typedValue, dataType, strValue, language) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_DECIMAL, strValue, language);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n        this.language = language;\n    }\n    specificFormatter(val) {\n        return val.toString();\n    }\n}\nexports.DecimalLiteral = DecimalLiteral;\nclass FloatLiteral extends NumericLiteral {\n    constructor(typedValue, dataType, strValue, language) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_FLOAT, strValue, language);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n        this.language = language;\n    }\n    specificFormatter(val) {\n        return val.toString();\n    }\n}\nexports.FloatLiteral = FloatLiteral;\nclass DoubleLiteral extends NumericLiteral {\n    constructor(typedValue, dataType, strValue, language) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_DOUBLE, strValue, language);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n        this.language = language;\n    }\n    specificFormatter(val) {\n        if (!Number.isFinite(val)) {\n            if (val > 0) {\n                return 'INF';\n            }\n            if (val < 0) {\n                return '-INF';\n            }\n            return 'NaN';\n        }\n        const jsExponential = val.toExponential();\n        const [jsMantisse, jsExponent] = jsExponential.split('e');\n        // Leading + must be removed for integer\n        // https://www.w3.org/TR/xmlschema-2/#integer\n        const exponent = jsExponent.replace(/\\+/u, '');\n        // SPARQL test suite prefers trailing zero's\n        const mantisse = jsMantisse.includes('.') ?\n            jsMantisse :\n            `${jsMantisse}.0`;\n        return `${mantisse}E${exponent}`;\n    }\n}\nexports.DoubleLiteral = DoubleLiteral;\nclass BooleanLiteral extends Literal {\n    constructor(typedValue, strValue, dataType) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_BOOLEAN, strValue);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n    }\n    coerceEBV() {\n        return this.typedValue;\n    }\n}\nexports.BooleanLiteral = BooleanLiteral;\nclass LangStringLiteral extends Literal {\n    constructor(typedValue, language, dataType) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.RDF_LANG_STRING, typedValue, language);\n        this.typedValue = typedValue;\n        this.language = language;\n    }\n    coerceEBV() {\n        return this.str().length > 0;\n    }\n}\nexports.LangStringLiteral = LangStringLiteral;\n// https://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#dfn-plain-literal\n// https://www.w3.org/TR/sparql11-query/#defn_SimpleLiteral\n// https://www.w3.org/TR/sparql11-query/#func-strings\n// This does not include language tagged literals\nclass StringLiteral extends Literal {\n    /**\n     * @param typedValue\n     * @param dataType Should be type that implements XSD_STRING\n     */\n    constructor(typedValue, dataType) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_STRING, typedValue);\n        this.typedValue = typedValue;\n    }\n    coerceEBV() {\n        return this.str().length > 0;\n    }\n}\nexports.StringLiteral = StringLiteral;\nclass DateTimeLiteral extends Literal {\n    constructor(typedValue, strValue, dataType) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_DATE_TIME, strValue);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n    }\n    str() {\n        return (0, Serialization_1.serializeDateTime)(this.typedValue);\n    }\n}\nexports.DateTimeLiteral = DateTimeLiteral;\nclass TimeLiteral extends Literal {\n    constructor(typedValue, strValue, dataType) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_TIME, strValue);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n    }\n    str() {\n        return (0, Serialization_1.serializeTime)(this.typedValue);\n    }\n}\nexports.TimeLiteral = TimeLiteral;\nclass DateLiteral extends Literal {\n    constructor(typedValue, strValue, dataType) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_DATE, strValue);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n    }\n    str() {\n        return (0, Serialization_1.serializeDate)(this.typedValue);\n    }\n}\nexports.DateLiteral = DateLiteral;\nclass DurationLiteral extends Literal {\n    constructor(typedValue, strValue, dataType) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_DURATION, strValue);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n    }\n    str() {\n        return (0, Serialization_1.serializeDuration)(this.typedValue);\n    }\n}\nexports.DurationLiteral = DurationLiteral;\nclass DayTimeDurationLiteral extends DurationLiteral {\n    constructor(typedValue, strValue, dataType) {\n        super(typedValue, strValue, dataType ?? Consts_1.TypeURL.XSD_DAY_TIME_DURATION);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n    }\n}\nexports.DayTimeDurationLiteral = DayTimeDurationLiteral;\nclass YearMonthDurationLiteral extends Literal {\n    constructor(typedValue, strValue, dataType) {\n        super(typedValue, dataType ?? Consts_1.TypeURL.XSD_YEAR_MONTH_DURATION, strValue);\n        this.typedValue = typedValue;\n        this.strValue = strValue;\n    }\n    str() {\n        return (0, Serialization_1.serializeDuration)(this.typedValue, 'P0M');\n    }\n}\nexports.YearMonthDurationLiteral = YearMonthDurationLiteral;\n/**\n * This class is used when a literal is parsed, and it's value is\n * an invalid lexical form for it's datatype. The spec defines value with\n * invalid lexical form are still valid terms, and as such we can not error\n * immediately. This class makes sure that the typedValue will remain undefined,\n * and the category 'nonlexical'. This way, only when operators apply to the\n * 'nonlexical' category, they will keep working, otherwise they will throw a\n * type error.\n * This seems to match the spec, except maybe for functions that accept\n * non-lexical values for their datatype.\n *\n * See:\n *  - https://www.w3.org/TR/xquery/#dt-type-error\n *  - https://www.w3.org/TR/rdf-concepts/#section-Literal-Value\n *  - https://www.w3.org/TR/xquery/#dt-ebv\n *  - ... some other more precise thing i can't find...\n */\nclass NonLexicalLiteral extends Literal {\n    constructor(typedValue, dataType, openWorldType, strValue, language) {\n        super({ toString: () => 'undefined' }, dataType, strValue, language);\n        this.openWorldType = openWorldType;\n    }\n    coerceEBV() {\n        const isNumericOrBool = (0, TypeHandling_1.isSubTypeOf)(this.dataType, Consts_1.TypeURL.XSD_BOOLEAN, this.openWorldType) ||\n            (0, TypeHandling_1.isSubTypeOf)(this.dataType, Consts_1.TypeAlias.SPARQL_NUMERIC, this.openWorldType);\n        if (isNumericOrBool) {\n            return false;\n        }\n        throw new Err.EBVCoercionError(this);\n    }\n    toRDF(dataFactory) {\n        return dataFactory.literal(this.str(), this.language ?? dataFactory.namedNode(this.dataType));\n    }\n    str() {\n        return this.strValue ?? '';\n    }\n}\nexports.NonLexicalLiteral = NonLexicalLiteral;\nfunction isNonLexicalLiteral(lit) {\n    if (lit instanceof NonLexicalLiteral) {\n        return lit;\n    }\n    return undefined;\n}\nexports.isNonLexicalLiteral = isNonLexicalLiteral;\n//# sourceMappingURL=Term.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Operator = void 0;\nconst types_1 = require(\"@comunica/types\");\nclass Operator {\n    constructor(name, args, apply) {\n        this.name = name;\n        this.args = args;\n        this.apply = apply;\n        this.expressionType = types_1.ExpressionType.Operator;\n    }\n}\nexports.Operator = Operator;\n//# sourceMappingURL=Operator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Aggregate = void 0;\nconst types_1 = require(\"@comunica/types\");\nclass Aggregate {\n    constructor(name, expression) {\n        this.name = name;\n        this.expression = expression;\n        this.expressionType = types_1.ExpressionType.Aggregate;\n    }\n}\nexports.Aggregate = Aggregate;\n//# sourceMappingURL=Aggregate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Existence = void 0;\nconst types_1 = require(\"@comunica/types\");\nclass Existence {\n    constructor(expression) {\n        this.expression = expression;\n        this.expressionType = types_1.ExpressionType.Existence;\n    }\n}\nexports.Existence = Existence;\n//# sourceMappingURL=Existence.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Expressions\"), exports);\n__exportStar(require(\"./Variable\"), exports);\n__exportStar(require(\"./Term\"), exports);\n__exportStar(require(\"./Operator\"), exports);\n__exportStar(require(\"./Aggregate\"), exports);\n__exportStar(require(\"./Existence\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extractTimeZone = exports.extractRawTimeZone = exports.dayTimeDurationsToSeconds = exports.yearMonthDurationsToMonths = exports.trimToDayTimeDuration = exports.trimToYearMonthDuration = exports.toUTCDate = exports.toJSDate = exports.negateDuration = exports.toDateTimeRepresentation = exports.defaultedDateTimeRepresentation = exports.simplifyDurationRepresentation = exports.defaultedDurationRepresentation = exports.defaultedYearMonthDurationRepresentation = exports.defaultedDayTimeDurationRepresentation = void 0;\n// Important is to notice JS and XSD datatypes have different defaulted values\n// | Field | Default in JS | Default in XSD_DayTime | Default in XSD_Duration |\n// | Month | 0             | 1                      | 0                       |\n// | Day   | 1             | 1                      | 0                       |\nfunction defaultedDayTimeDurationRepresentation(rep) {\n    return {\n        day: rep.day ?? 0,\n        hours: rep.hours ?? 0,\n        minutes: rep.minutes ?? 0,\n        seconds: rep.seconds ?? 0,\n    };\n}\nexports.defaultedDayTimeDurationRepresentation = defaultedDayTimeDurationRepresentation;\nfunction defaultedYearMonthDurationRepresentation(rep) {\n    return {\n        year: rep.year ?? 0,\n        month: rep.month ?? 0,\n    };\n}\nexports.defaultedYearMonthDurationRepresentation = defaultedYearMonthDurationRepresentation;\nfunction defaultedDurationRepresentation(rep) {\n    return {\n        ...defaultedDayTimeDurationRepresentation(rep),\n        ...defaultedYearMonthDurationRepresentation(rep),\n    };\n}\nexports.defaultedDurationRepresentation = defaultedDurationRepresentation;\nfunction simplifyDurationRepresentation(rep) {\n    const temp = defaultedDurationRepresentation(rep);\n    const res = {};\n    // Simplify year part\n    const years = temp.year + Math.trunc(temp.month / 12);\n    if (years) {\n        res.year = years;\n        temp.month %= 12;\n    }\n    if (temp.month) {\n        res.month = temp.month;\n    }\n    // Simplify day part\n    const days = temp.day + Math.trunc(temp.hours / 24) +\n        Math.trunc(temp.minutes / (24 * 60)) + Math.trunc(temp.seconds / (24 * 60 * 60));\n    if (days) {\n        res.day = days;\n        temp.hours %= 24;\n        temp.minutes %= 24 * 60;\n        temp.seconds %= 24 * 60 * 60;\n    }\n    const hours = temp.hours + Math.trunc(temp.minutes / 60) +\n        Math.trunc(temp.seconds / (60 * 60));\n    if (hours) {\n        res.hours = hours;\n        temp.minutes %= 60;\n        temp.seconds %= 60 * 60;\n    }\n    const minutes = temp.minutes + Math.trunc(temp.seconds / 60);\n    if (minutes) {\n        res.minutes = minutes;\n        temp.seconds %= 60;\n    }\n    if (temp.seconds) {\n        res.seconds = temp.seconds;\n    }\n    return res;\n}\nexports.simplifyDurationRepresentation = simplifyDurationRepresentation;\nfunction defaultedDateTimeRepresentation(rep) {\n    return {\n        ...rep,\n        day: rep.day ?? 1,\n        hours: rep.hours ?? 0,\n        month: rep.month ?? 1,\n        year: rep.year ?? 0,\n        seconds: rep.seconds ?? 0,\n        minutes: rep.minutes ?? 0,\n    };\n}\nexports.defaultedDateTimeRepresentation = defaultedDateTimeRepresentation;\nfunction toDateTimeRepresentation({ date, timeZone }) {\n    return {\n        year: date.getFullYear(),\n        month: date.getMonth() + 1,\n        day: date.getDate(),\n        hours: date.getHours(),\n        minutes: date.getMinutes(),\n        seconds: date.getSeconds(),\n        zoneHours: timeZone.zoneHours,\n        zoneMinutes: timeZone.zoneMinutes,\n    };\n}\nexports.toDateTimeRepresentation = toDateTimeRepresentation;\nfunction negateDuration(dur) {\n    return {\n        year: dur.year === undefined ? undefined : -1 * dur.year,\n        month: dur.month === undefined ? undefined : -1 * dur.month,\n        day: dur.day === undefined ? undefined : -1 * dur.day,\n        hours: dur.hours === undefined ? undefined : -1 * dur.hours,\n        minutes: dur.minutes === undefined ? undefined : -1 * dur.minutes,\n        seconds: dur.seconds === undefined ? undefined : -1 * dur.seconds,\n    };\n}\nexports.negateDuration = negateDuration;\nfunction toJSDate(date) {\n    // The given hours will be assumed to be local time.\n    const res = new Date(date.year, date.month - 1, date.day, date.hours, date.minutes, Math.trunc(date.seconds), (date.seconds % 1) * 1_000);\n    if (date.year >= 0 && date.year < 100) {\n        // Special rule of date has gone int action:\n        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date#individual_date_and_time_component_values\n        const jumpDeltaOfDate = 1_900;\n        res.setFullYear(res.getFullYear() - jumpDeltaOfDate);\n    }\n    return res;\n}\nexports.toJSDate = toJSDate;\nfunction toUTCDate(date, defaultTimezone) {\n    const localTime = toJSDate(defaultedDateTimeRepresentation(date));\n    // This date has been constructed in machine local time, now we alter it to become UTC and convert to correct timezone\n    // Correction needed from local machine timezone to UTC\n    const minutesCorrectionLocal = localTime.getTimezoneOffset();\n    // Correction needed from UTC to provided timeZone\n    const hourCorrectionUTC = date.zoneHours ?? defaultTimezone.zoneHours;\n    const minutesCorrectionUTC = date.zoneMinutes ?? defaultTimezone.zoneMinutes;\n    return new Date(localTime.getTime() - (minutesCorrectionLocal + hourCorrectionUTC * 60 + minutesCorrectionUTC) * 60 * 1_000);\n}\nexports.toUTCDate = toUTCDate;\nfunction trimToYearMonthDuration(dur) {\n    return {\n        year: dur.year,\n        month: dur.month,\n    };\n}\nexports.trimToYearMonthDuration = trimToYearMonthDuration;\nfunction trimToDayTimeDuration(dur) {\n    return {\n        day: dur.day,\n        hours: dur.hours,\n        minutes: dur.minutes,\n        seconds: dur.seconds,\n    };\n}\nexports.trimToDayTimeDuration = trimToDayTimeDuration;\nfunction yearMonthDurationsToMonths(dur) {\n    return dur.year * 12 + dur.month;\n}\nexports.yearMonthDurationsToMonths = yearMonthDurationsToMonths;\nfunction dayTimeDurationsToSeconds(dur) {\n    return (((dur.day * 24) + dur.hours) * 60 + dur.minutes) * 60 + dur.seconds;\n}\nexports.dayTimeDurationsToSeconds = dayTimeDurationsToSeconds;\nfunction extractRawTimeZone(zoneContained) {\n    const extraction = /(Z|([+-]\\d\\d:\\d\\d))?$/u.exec(zoneContained);\n    // It is safe to cast here because the empty string can always match.\n    return extraction[0];\n}\nexports.extractRawTimeZone = extractRawTimeZone;\nfunction extractTimeZone(date) {\n    return {\n        zoneHours: date.getTimezoneOffset() / 60,\n        zoneMinutes: date.getTimezoneOffset() % 60,\n    };\n}\nexports.extractTimeZone = extractTimeZone;\n//# sourceMappingURL=DateTimeHelpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.elapsedDuration = exports.addDurationToDateTime = exports.maximumDayInMonthFor = void 0;\nconst DateTimeHelpers_1 = require(\"./DateTimeHelpers\");\nfunction fDiv(arg, high, low = 0) {\n    // Adds the 4 spec functions into one since they are highly related,\n    // and fQuotient and modulo are almost always called in pairs.\n    const first = arg - low;\n    const second = high - low;\n    const intDiv = Math.floor(first / second);\n    return { intDiv, remainder: arg - intDiv * second };\n}\nfunction maximumDayInMonthFor(yearValue, monthValue) {\n    const { intDiv: additionalYears, remainder: month } = fDiv(monthValue, 13, 1);\n    const year = yearValue + additionalYears;\n    if ([1, 3, 5, 7, 8, 10, 12].includes(month)) {\n        return 31;\n    }\n    if ([4, 6, 9, 11].includes(month)) {\n        return 30;\n    }\n    if (month === 2 && (fDiv(year, 400).remainder === 0 ||\n        (fDiv(year, 100).remainder !== 0 && fDiv(year, 4).remainder === 0))) {\n        return 29;\n    }\n    return 28;\n}\nexports.maximumDayInMonthFor = maximumDayInMonthFor;\n// https://www.w3.org/TR/xmlschema-2/#adding-durations-to-dateTimes\nfunction addDurationToDateTime(date, duration) {\n    // Used to cary over optional fields like timezone\n    const newDate = { ...date };\n    // Month\n    let tempDiv = fDiv(date.month + duration.month, 13, 1);\n    newDate.month = tempDiv.remainder;\n    // Year\n    newDate.year = date.year + duration.year + tempDiv.intDiv;\n    // Seconds\n    tempDiv = fDiv(date.seconds + duration.seconds, 60);\n    newDate.seconds = tempDiv.remainder;\n    // Minutes\n    tempDiv = fDiv(date.minutes + duration.minutes + tempDiv.intDiv, 60);\n    newDate.minutes = tempDiv.remainder;\n    // Hours\n    tempDiv = fDiv(date.hours + duration.hours + tempDiv.intDiv, 24);\n    newDate.hours = tempDiv.remainder;\n    // We skip a part of the spec code since: Defined spec code can not happen since it would be an invalid literal\n    newDate.day = date.day + duration.day + tempDiv.intDiv;\n    while (true) {\n        let carry;\n        if (newDate.day < 1) {\n            newDate.day += maximumDayInMonthFor(newDate.year, newDate.month - 1);\n            carry = -1;\n        }\n        else if (newDate.day > maximumDayInMonthFor(newDate.year, newDate.month)) {\n            newDate.day -= maximumDayInMonthFor(newDate.year, newDate.month);\n            carry = 1;\n        }\n        else {\n            break;\n        }\n        tempDiv = fDiv(newDate.month + carry, 13, 1);\n        newDate.month = tempDiv.remainder;\n        newDate.year += tempDiv.intDiv;\n    }\n    return newDate;\n}\nexports.addDurationToDateTime = addDurationToDateTime;\nfunction elapsedDuration(first, second, defaultTimeZone) {\n    const d1 = (0, DateTimeHelpers_1.toUTCDate)(first, defaultTimeZone);\n    const d2 = (0, DateTimeHelpers_1.toUTCDate)(second, defaultTimeZone);\n    const diff = d1.getTime() - d2.getTime();\n    return {\n        day: Math.floor(diff / (1_000 * 60 * 60 * 24)),\n        hours: Math.floor((diff % (1_000 * 60 * 60 * 24)) / (1_000 * 60 * 60)),\n        minutes: Math.floor(diff % (1_000 * 60 * 60) / (1_000 * 60)),\n        seconds: diff % (1_000 * 60),\n    };\n}\nexports.elapsedDuration = elapsedDuration;\n//# sourceMappingURL=SpecAlgos.js.map","\"use strict\";\n// TODO: Find a library for this, because this is basically an xsd datatypes parser\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseDayTimeDuration = exports.parseYearMonthDuration = exports.parseDuration = exports.parseTime = exports.parseDate = exports.parseDateTime = exports.parseXSDDecimal = exports.parseXSDFloat = void 0;\nconst DateTimeHelpers_1 = require(\"./DateTimeHelpers\");\nconst Errors_1 = require(\"./Errors\");\nconst SpecAlgos_1 = require(\"./SpecAlgos\");\n/**\n * TODO: Fix decently\n * Parses float datatypes (double, float).\n *\n * All invalid lexical values return undefined.\n *\n * @param value the string to interpret as a number\n */\nfunction parseXSDFloat(value) {\n    const numb = Number(value);\n    if (Number.isNaN(numb)) {\n        if (value === 'NaN') {\n            return Number.NaN;\n        }\n        if (value === 'INF' || value === '+INF') {\n            return Number.POSITIVE_INFINITY;\n        }\n        if (value === '-INF') {\n            return Number.NEGATIVE_INFINITY;\n        }\n        return undefined;\n    }\n    return numb;\n}\nexports.parseXSDFloat = parseXSDFloat;\n/**\n * Parses decimal datatypes (decimal, int, byte, nonPositiveInteger, etc...).\n *\n * All other values, including NaN, INF, and floating point numbers all\n * return undefined;\n *\n * @param value the string to interpret as a number\n */\nfunction parseXSDDecimal(value) {\n    const numb = Number(value);\n    return Number.isNaN(numb) ? undefined : numb;\n}\nexports.parseXSDDecimal = parseXSDDecimal;\nfunction parseDateTime(dateTimeStr) {\n    // https://www.w3.org/TR/xmlschema-2/#dateTime\n    const [date, time] = dateTimeStr.split('T');\n    if (time === undefined) {\n        throw new Errors_1.ParseError(dateTimeStr, 'dateTime');\n    }\n    return { ...parseDate(date), ...__parseTime(time) };\n}\nexports.parseDateTime = parseDateTime;\nfunction parseTimeZone(timeZoneStr) {\n    // https://www.w3.org/TR/xmlschema-2/#dateTime-timezones\n    if (timeZoneStr === '') {\n        return { zoneHours: undefined, zoneMinutes: undefined };\n    }\n    if (timeZoneStr === 'Z') {\n        return { zoneHours: 0, zoneMinutes: 0 };\n    }\n    const timeZoneStrings = timeZoneStr.replaceAll(/^([+|-])(\\d\\d):(\\d\\d)$/gu, '$11!$2!$3').split('!');\n    const timeZone = timeZoneStrings.map(Number);\n    return {\n        zoneHours: timeZone[0] * timeZone[1],\n        zoneMinutes: timeZone[0] * timeZone[2],\n    };\n}\nfunction parseDate(dateStr) {\n    // https://www.w3.org/TR/xmlschema-2/#date-lexical-representation\n    const formatted = dateStr.replaceAll(/^(-)?([123456789]*\\d{4})-(\\d\\d)-(\\d\\d)(Z|([+-]\\d\\d:\\d\\d))?$/gu, '$11!$2!$3!$4!$5');\n    if (formatted === dateStr) {\n        throw new Errors_1.ParseError(dateStr, 'date');\n    }\n    const dateStrings = formatted.split('!');\n    const date = dateStrings.slice(0, -1).map(Number);\n    const res = {\n        year: date[0] * date[1],\n        month: date[2],\n        day: date[3],\n        ...parseTimeZone(dateStrings[4]),\n    };\n    if (!(res.month >= 1 && res.month <= 12) || !(res.day >= 1 && res.day <= (0, SpecAlgos_1.maximumDayInMonthFor)(res.year, res.month))) {\n        throw new Errors_1.ParseError(dateStr, 'date');\n    }\n    return res;\n}\nexports.parseDate = parseDate;\nfunction __parseTime(timeStr) {\n    // https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\n    const formatted = timeStr.replaceAll(/^(\\d\\d):(\\d\\d):(\\d\\d(\\.\\d+)?)(Z|([+-]\\d\\d:\\d\\d))?$/gu, '$1!$2!$3!$5');\n    if (formatted === timeStr) {\n        throw new Errors_1.ParseError(timeStr, 'time');\n    }\n    const timeStrings = formatted.split('!');\n    const time = timeStrings.slice(0, -1).map(Number);\n    const res = {\n        hours: time[0],\n        minutes: time[1],\n        seconds: time[2],\n        ...parseTimeZone(timeStrings[3]),\n    };\n    if (res.seconds >= 60 || res.minutes >= 60 || res.hours > 24 ||\n        (res.hours === 24 && (res.minutes !== 0 || res.seconds !== 0))) {\n        throw new Errors_1.ParseError(timeStr, 'time');\n    }\n    return res;\n}\n// We make a separation in internal and external since dateTime will have hour-date rollover,\n// but time just does modulo the time.\nfunction parseTime(timeStr) {\n    // https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\n    const res = __parseTime(timeStr);\n    res.hours %= 24;\n    return res;\n}\nexports.parseTime = parseTime;\nfunction parseDuration(durationStr) {\n    // https://www.w3.org/TR/xmlschema-2/#duration-lexical-repr\n    const [dayNotation, timeNotation] = durationStr.split('T');\n    // Handle date part\n    const formattedDayDur = dayNotation.replaceAll(/^(-)?P(\\d+Y)?(\\d+M)?(\\d+D)?$/gu, '$11S!$2!$3!$4');\n    if (formattedDayDur === dayNotation) {\n        throw new Errors_1.ParseError(durationStr, 'duration');\n    }\n    const durationStrings = formattedDayDur.split('!');\n    if (timeNotation !== undefined) {\n        const formattedTimeDur = timeNotation.replaceAll(/^(\\d+H)?(\\d+M)?(\\d+(\\.\\d+)?S)?$/gu, '$1!$2!$3');\n        if (timeNotation === '' || timeNotation === formattedTimeDur) {\n            throw new Errors_1.ParseError(durationStr, 'duration');\n        }\n        durationStrings.push(...formattedTimeDur.split('!'));\n    }\n    const duration = durationStrings.map(str => str.slice(0, -1));\n    if (!duration.slice(1).some(Boolean)) {\n        throw new Errors_1.ParseError(durationStr, 'duration');\n    }\n    const sign = Number(duration[0]);\n    return (0, DateTimeHelpers_1.simplifyDurationRepresentation)({\n        year: duration[1] ? sign * Number(duration[1]) : undefined,\n        month: duration[2] ? sign * Number(duration[2]) : undefined,\n        day: duration[3] ? sign * Number(duration[3]) : undefined,\n        hours: duration[4] ? sign * Number(duration[4]) : undefined,\n        minutes: duration[5] ? sign * Number(duration[5]) : undefined,\n        seconds: duration[6] ? sign * Number(duration[6]) : undefined,\n    });\n}\nexports.parseDuration = parseDuration;\nfunction parseYearMonthDuration(durationStr) {\n    const res = parseDuration(durationStr);\n    if (['hours', 'minutes', 'seconds', 'day'].some(key => Boolean(res[key]))) {\n        throw new Errors_1.ParseError(durationStr, 'yearMonthDuration');\n    }\n    return res;\n}\nexports.parseYearMonthDuration = parseYearMonthDuration;\nfunction parseDayTimeDuration(durationStr) {\n    const res = parseDuration(durationStr);\n    if (['year', 'month'].some(key => Boolean(res[key]))) {\n        throw new Errors_1.ParseError(durationStr, 'dayTimeDuration');\n    }\n    return res;\n}\nexports.parseDayTimeDuration = parseDayTimeDuration;\n//# sourceMappingURL=Parsing.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermTransformer = void 0;\nconst RDFString = require(\"rdf-string\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst E = require(\"../expressions\");\nconst Consts_1 = require(\"../util/Consts\");\nconst Err = require(\"../util/Errors\");\nconst Errors_1 = require(\"../util/Errors\");\nconst Parsing_1 = require(\"../util/Parsing\");\nconst P = require(\"../util/Parsing\");\nconst TypeHandling_1 = require(\"../util/TypeHandling\");\nclass TermTransformer {\n    constructor(superTypeProvider) {\n        this.superTypeProvider = superTypeProvider;\n    }\n    /**\n     * Transforms an RDF term to the internal representation of a term,\n     * assuming it is not a variable, which would be an expression (internally).\n     *\n     * @param term RDF term to transform into internal representation of a term\n     */\n    transformRDFTermUnsafe(term) {\n        return this.transformTerm({\n            term,\n            type: sparqlalgebrajs_1.Algebra.types.EXPRESSION,\n            expressionType: sparqlalgebrajs_1.Algebra.expressionTypes.TERM,\n        });\n    }\n    transformTerm(term) {\n        if (!term.term) {\n            throw new Err.InvalidExpression(term);\n        }\n        switch (term.term.termType) {\n            case 'Variable':\n                return new E.Variable(RDFString.termToString(term.term));\n            case 'Literal':\n                return this.transformLiteral(term.term);\n            case 'NamedNode':\n                return new E.NamedNode(term.term.value);\n            case 'BlankNode':\n                return new E.BlankNode(term.term.value);\n            case 'Quad':\n                return new E.Quad(this.transformRDFTermUnsafe(term.term.subject), this.transformRDFTermUnsafe(term.term.predicate), this.transformRDFTermUnsafe(term.term.object), this.transformRDFTermUnsafe(term.term.graph));\n            case 'DefaultGraph':\n                return new E.DefaultGraph();\n        }\n    }\n    /**\n     * @param lit the rdf literal we want to transform to an internal Literal expression.\n     */\n    transformLiteral(lit) {\n        // Both here and within the switch we transform to LangStringLiteral or StringLiteral.\n        // We do this when we detect a simple literal being used.\n        // Original issue regarding this behaviour: https://github.com/w3c/sparql-12/issues/112\n        if (!lit.datatype || [null, undefined, ''].includes(lit.datatype.value)) {\n            return lit.language ?\n                new E.LangStringLiteral(lit.value, lit.language) :\n                new E.StringLiteral(lit.value);\n        }\n        const dataType = lit.datatype.value;\n        const superTypeDict = (0, TypeHandling_1.getSuperTypeDict)(dataType, this.superTypeProvider);\n        // The order of checking matters! Check most specific types first!\n        try {\n            if (Consts_1.TypeURL.XSD_STRING in superTypeDict) {\n                return new E.StringLiteral(lit.value, dataType);\n            }\n            if (Consts_1.TypeURL.RDF_LANG_STRING in superTypeDict) {\n                return new E.LangStringLiteral(lit.value, lit.language);\n            }\n            if (Consts_1.TypeURL.XSD_YEAR_MONTH_DURATION in superTypeDict) {\n                return new E.YearMonthDurationLiteral((0, Parsing_1.parseYearMonthDuration)(lit.value), lit.value, dataType);\n            }\n            if (Consts_1.TypeURL.XSD_DAY_TIME_DURATION in superTypeDict) {\n                return new E.DayTimeDurationLiteral((0, Parsing_1.parseDayTimeDuration)(lit.value), lit.value, dataType);\n            }\n            if (Consts_1.TypeURL.XSD_DURATION in superTypeDict) {\n                return new E.DurationLiteral((0, Parsing_1.parseDuration)(lit.value), lit.value, dataType);\n            }\n            if (Consts_1.TypeURL.XSD_DATE_TIME in superTypeDict) {\n                const dateVal = new Date(lit.value);\n                if (Number.isNaN(dateVal.getTime())) {\n                    return new E.NonLexicalLiteral(undefined, dataType, this.superTypeProvider, lit.value);\n                }\n                return new E.DateTimeLiteral((0, Parsing_1.parseDateTime)(lit.value), lit.value, dataType);\n            }\n            if (Consts_1.TypeURL.XSD_DATE in superTypeDict) {\n                return new E.DateLiteral((0, Parsing_1.parseDate)(lit.value), lit.value, dataType);\n            }\n            if (Consts_1.TypeURL.XSD_TIME in superTypeDict) {\n                return new E.TimeLiteral((0, Parsing_1.parseTime)(lit.value), lit.value, dataType);\n            }\n            if (Consts_1.TypeURL.XSD_BOOLEAN in superTypeDict) {\n                if (lit.value !== 'true' && lit.value !== 'false' && lit.value !== '1' && lit.value !== '0') {\n                    return new E.NonLexicalLiteral(undefined, dataType, this.superTypeProvider, lit.value);\n                }\n                return new E.BooleanLiteral(lit.value === 'true' || lit.value === '1', lit.value);\n            }\n            if (Consts_1.TypeURL.XSD_DECIMAL in superTypeDict) {\n                const intVal = P.parseXSDDecimal(lit.value);\n                if (intVal === undefined) {\n                    return new E.NonLexicalLiteral(undefined, dataType, this.superTypeProvider, lit.value);\n                }\n                if (Consts_1.TypeURL.XSD_INTEGER in superTypeDict) {\n                    return new E.IntegerLiteral(intVal, dataType, lit.value);\n                }\n                // If type is not an integer it's just a decimal.\n                return new E.DecimalLiteral(intVal, dataType, lit.value);\n            }\n            const isFloat = Consts_1.TypeURL.XSD_FLOAT in superTypeDict;\n            const isDouble = Consts_1.TypeURL.XSD_DOUBLE in superTypeDict;\n            if (isFloat || isDouble) {\n                const doubleVal = P.parseXSDFloat(lit.value);\n                if (doubleVal === undefined) {\n                    return new E.NonLexicalLiteral(undefined, dataType, this.superTypeProvider, lit.value);\n                }\n                if (isFloat) {\n                    return new E.FloatLiteral(doubleVal, dataType, lit.value);\n                }\n                return new E.DoubleLiteral(doubleVal, dataType, lit.value);\n            }\n            return new E.Literal(lit.value, dataType, lit.value);\n        }\n        catch (error) {\n            if ((0, Errors_1.isExpressionError)(error)) {\n                return new E.NonLexicalLiteral(undefined, dataType, this.superTypeProvider, lit.value);\n            }\n            throw error;\n        }\n    }\n}\nexports.TermTransformer = TermTransformer;\n//# sourceMappingURL=TermTransformer.js.map","\"use strict\";\n/**\n * @module LRUCache\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LRUCache = void 0;\nconst perf = typeof performance === 'object' &&\n    performance &&\n    typeof performance.now === 'function'\n    ? performance\n    : Date;\nconst warned = new Set();\n/* c8 ignore start */\nconst PROCESS = (typeof process === 'object' && !!process ? process : {});\n/* c8 ignore start */\nconst emitWarning = (msg, type, code, fn) => {\n    typeof PROCESS.emitWarning === 'function'\n        ? PROCESS.emitWarning(msg, type, code, fn)\n        : console.error(`[${code}] ${type}: ${msg}`);\n};\nlet AC = globalThis.AbortController;\nlet AS = globalThis.AbortSignal;\n/* c8 ignore start */\nif (typeof AC === 'undefined') {\n    //@ts-ignore\n    AS = class AbortSignal {\n        onabort;\n        _onabort = [];\n        reason;\n        aborted = false;\n        addEventListener(_, fn) {\n            this._onabort.push(fn);\n        }\n    };\n    //@ts-ignore\n    AC = class AbortController {\n        constructor() {\n            warnACPolyfill();\n        }\n        signal = new AS();\n        abort(reason) {\n            if (this.signal.aborted)\n                return;\n            //@ts-ignore\n            this.signal.reason = reason;\n            //@ts-ignore\n            this.signal.aborted = true;\n            //@ts-ignore\n            for (const fn of this.signal._onabort) {\n                fn(reason);\n            }\n            this.signal.onabort?.(reason);\n        }\n    };\n    let printACPolyfillWarning = PROCESS.env?.LRU_CACHE_IGNORE_AC_WARNING !== '1';\n    const warnACPolyfill = () => {\n        if (!printACPolyfillWarning)\n            return;\n        printACPolyfillWarning = false;\n        emitWarning('AbortController is not defined. If using lru-cache in ' +\n            'node 14, load an AbortController polyfill from the ' +\n            '`node-abort-controller` package. A minimal polyfill is ' +\n            'provided for use by LRUCache.fetch(), but it should not be ' +\n            'relied upon in other contexts (eg, passing it to other APIs that ' +\n            'use AbortController/AbortSignal might have undesirable effects). ' +\n            'You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.', 'NO_ABORT_CONTROLLER', 'ENOTSUP', warnACPolyfill);\n    };\n}\n/* c8 ignore stop */\nconst shouldWarn = (code) => !warned.has(code);\nconst TYPE = Symbol('type');\nconst isPosInt = (n) => n && n === Math.floor(n) && n > 0 && isFinite(n);\n/* c8 ignore start */\n// This is a little bit ridiculous, tbh.\n// The maximum array length is 2^32-1 or thereabouts on most JS impls.\n// And well before that point, you're caching the entire world, I mean,\n// that's ~32GB of just integers for the next/prev links, plus whatever\n// else to hold that many keys and values.  Just filling the memory with\n// zeroes at init time is brutal when you get that big.\n// But why not be complete?\n// Maybe in the future, these limits will have expanded.\nconst getUintArray = (max) => !isPosInt(max)\n    ? null\n    : max <= Math.pow(2, 8)\n        ? Uint8Array\n        : max <= Math.pow(2, 16)\n            ? Uint16Array\n            : max <= Math.pow(2, 32)\n                ? Uint32Array\n                : max <= Number.MAX_SAFE_INTEGER\n                    ? ZeroArray\n                    : null;\n/* c8 ignore stop */\nclass ZeroArray extends Array {\n    constructor(size) {\n        super(size);\n        this.fill(0);\n    }\n}\nclass Stack {\n    heap;\n    length;\n    // private constructor\n    static #constructing = false;\n    static create(max) {\n        const HeapCls = getUintArray(max);\n        if (!HeapCls)\n            return [];\n        Stack.#constructing = true;\n        const s = new Stack(max, HeapCls);\n        Stack.#constructing = false;\n        return s;\n    }\n    constructor(max, HeapCls) {\n        /* c8 ignore start */\n        if (!Stack.#constructing) {\n            throw new TypeError('instantiate Stack using Stack.create(n)');\n        }\n        /* c8 ignore stop */\n        this.heap = new HeapCls(max);\n        this.length = 0;\n    }\n    push(n) {\n        this.heap[this.length++] = n;\n    }\n    pop() {\n        return this.heap[--this.length];\n    }\n}\n/**\n * Default export, the thing you're using this module to get.\n *\n * The `K` and `V` types define the key and value types, respectively. The\n * optional `FC` type defines the type of the `context` object passed to\n * `cache.fetch()` and `cache.memo()`.\n *\n * Keys and values **must not** be `null` or `undefined`.\n *\n * All properties from the options object (with the exception of `max`,\n * `maxSize`, `fetchMethod`, `memoMethod`, `dispose` and `disposeAfter`) are\n * added as normal public members. (The listed options are read-only getters.)\n *\n * Changing any of these will alter the defaults for subsequent method calls.\n */\nclass LRUCache {\n    // options that cannot be changed without disaster\n    #max;\n    #maxSize;\n    #dispose;\n    #disposeAfter;\n    #fetchMethod;\n    #memoMethod;\n    /**\n     * {@link LRUCache.OptionsBase.ttl}\n     */\n    ttl;\n    /**\n     * {@link LRUCache.OptionsBase.ttlResolution}\n     */\n    ttlResolution;\n    /**\n     * {@link LRUCache.OptionsBase.ttlAutopurge}\n     */\n    ttlAutopurge;\n    /**\n     * {@link LRUCache.OptionsBase.updateAgeOnGet}\n     */\n    updateAgeOnGet;\n    /**\n     * {@link LRUCache.OptionsBase.updateAgeOnHas}\n     */\n    updateAgeOnHas;\n    /**\n     * {@link LRUCache.OptionsBase.allowStale}\n     */\n    allowStale;\n    /**\n     * {@link LRUCache.OptionsBase.noDisposeOnSet}\n     */\n    noDisposeOnSet;\n    /**\n     * {@link LRUCache.OptionsBase.noUpdateTTL}\n     */\n    noUpdateTTL;\n    /**\n     * {@link LRUCache.OptionsBase.maxEntrySize}\n     */\n    maxEntrySize;\n    /**\n     * {@link LRUCache.OptionsBase.sizeCalculation}\n     */\n    sizeCalculation;\n    /**\n     * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}\n     */\n    noDeleteOnFetchRejection;\n    /**\n     * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}\n     */\n    noDeleteOnStaleGet;\n    /**\n     * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}\n     */\n    allowStaleOnFetchAbort;\n    /**\n     * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}\n     */\n    allowStaleOnFetchRejection;\n    /**\n     * {@link LRUCache.OptionsBase.ignoreFetchAbort}\n     */\n    ignoreFetchAbort;\n    // computed properties\n    #size;\n    #calculatedSize;\n    #keyMap;\n    #keyList;\n    #valList;\n    #next;\n    #prev;\n    #head;\n    #tail;\n    #free;\n    #disposed;\n    #sizes;\n    #starts;\n    #ttls;\n    #hasDispose;\n    #hasFetchMethod;\n    #hasDisposeAfter;\n    /**\n     * Do not call this method unless you need to inspect the\n     * inner workings of the cache.  If anything returned by this\n     * object is modified in any way, strange breakage may occur.\n     *\n     * These fields are private for a reason!\n     *\n     * @internal\n     */\n    static unsafeExposeInternals(c) {\n        return {\n            // properties\n            starts: c.#starts,\n            ttls: c.#ttls,\n            sizes: c.#sizes,\n            keyMap: c.#keyMap,\n            keyList: c.#keyList,\n            valList: c.#valList,\n            next: c.#next,\n            prev: c.#prev,\n            get head() {\n                return c.#head;\n            },\n            get tail() {\n                return c.#tail;\n            },\n            free: c.#free,\n            // methods\n            isBackgroundFetch: (p) => c.#isBackgroundFetch(p),\n            backgroundFetch: (k, index, options, context) => c.#backgroundFetch(k, index, options, context),\n            moveToTail: (index) => c.#moveToTail(index),\n            indexes: (options) => c.#indexes(options),\n            rindexes: (options) => c.#rindexes(options),\n            isStale: (index) => c.#isStale(index),\n        };\n    }\n    // Protected read-only members\n    /**\n     * {@link LRUCache.OptionsBase.max} (read-only)\n     */\n    get max() {\n        return this.#max;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.maxSize} (read-only)\n     */\n    get maxSize() {\n        return this.#maxSize;\n    }\n    /**\n     * The total computed size of items in the cache (read-only)\n     */\n    get calculatedSize() {\n        return this.#calculatedSize;\n    }\n    /**\n     * The number of items stored in the cache (read-only)\n     */\n    get size() {\n        return this.#size;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.fetchMethod} (read-only)\n     */\n    get fetchMethod() {\n        return this.#fetchMethod;\n    }\n    get memoMethod() {\n        return this.#memoMethod;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.dispose} (read-only)\n     */\n    get dispose() {\n        return this.#dispose;\n    }\n    /**\n     * {@link LRUCache.OptionsBase.disposeAfter} (read-only)\n     */\n    get disposeAfter() {\n        return this.#disposeAfter;\n    }\n    constructor(options) {\n        const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort, } = options;\n        if (max !== 0 && !isPosInt(max)) {\n            throw new TypeError('max option must be a nonnegative integer');\n        }\n        const UintArray = max ? getUintArray(max) : Array;\n        if (!UintArray) {\n            throw new Error('invalid max value: ' + max);\n        }\n        this.#max = max;\n        this.#maxSize = maxSize;\n        this.maxEntrySize = maxEntrySize || this.#maxSize;\n        this.sizeCalculation = sizeCalculation;\n        if (this.sizeCalculation) {\n            if (!this.#maxSize && !this.maxEntrySize) {\n                throw new TypeError('cannot set sizeCalculation without setting maxSize or maxEntrySize');\n            }\n            if (typeof this.sizeCalculation !== 'function') {\n                throw new TypeError('sizeCalculation set to non-function');\n            }\n        }\n        if (memoMethod !== undefined &&\n            typeof memoMethod !== 'function') {\n            throw new TypeError('memoMethod must be a function if defined');\n        }\n        this.#memoMethod = memoMethod;\n        if (fetchMethod !== undefined &&\n            typeof fetchMethod !== 'function') {\n            throw new TypeError('fetchMethod must be a function if specified');\n        }\n        this.#fetchMethod = fetchMethod;\n        this.#hasFetchMethod = !!fetchMethod;\n        this.#keyMap = new Map();\n        this.#keyList = new Array(max).fill(undefined);\n        this.#valList = new Array(max).fill(undefined);\n        this.#next = new UintArray(max);\n        this.#prev = new UintArray(max);\n        this.#head = 0;\n        this.#tail = 0;\n        this.#free = Stack.create(max);\n        this.#size = 0;\n        this.#calculatedSize = 0;\n        if (typeof dispose === 'function') {\n            this.#dispose = dispose;\n        }\n        if (typeof disposeAfter === 'function') {\n            this.#disposeAfter = disposeAfter;\n            this.#disposed = [];\n        }\n        else {\n            this.#disposeAfter = undefined;\n            this.#disposed = undefined;\n        }\n        this.#hasDispose = !!this.#dispose;\n        this.#hasDisposeAfter = !!this.#disposeAfter;\n        this.noDisposeOnSet = !!noDisposeOnSet;\n        this.noUpdateTTL = !!noUpdateTTL;\n        this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;\n        this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;\n        this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;\n        this.ignoreFetchAbort = !!ignoreFetchAbort;\n        // NB: maxEntrySize is set to maxSize if it's set\n        if (this.maxEntrySize !== 0) {\n            if (this.#maxSize !== 0) {\n                if (!isPosInt(this.#maxSize)) {\n                    throw new TypeError('maxSize must be a positive integer if specified');\n                }\n            }\n            if (!isPosInt(this.maxEntrySize)) {\n                throw new TypeError('maxEntrySize must be a positive integer if specified');\n            }\n            this.#initializeSizeTracking();\n        }\n        this.allowStale = !!allowStale;\n        this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;\n        this.updateAgeOnGet = !!updateAgeOnGet;\n        this.updateAgeOnHas = !!updateAgeOnHas;\n        this.ttlResolution =\n            isPosInt(ttlResolution) || ttlResolution === 0\n                ? ttlResolution\n                : 1;\n        this.ttlAutopurge = !!ttlAutopurge;\n        this.ttl = ttl || 0;\n        if (this.ttl) {\n            if (!isPosInt(this.ttl)) {\n                throw new TypeError('ttl must be a positive integer if specified');\n            }\n            this.#initializeTTLTracking();\n        }\n        // do not allow completely unbounded caches\n        if (this.#max === 0 && this.ttl === 0 && this.#maxSize === 0) {\n            throw new TypeError('At least one of max, maxSize, or ttl is required');\n        }\n        if (!this.ttlAutopurge && !this.#max && !this.#maxSize) {\n            const code = 'LRU_CACHE_UNBOUNDED';\n            if (shouldWarn(code)) {\n                warned.add(code);\n                const msg = 'TTL caching without ttlAutopurge, max, or maxSize can ' +\n                    'result in unbounded memory consumption.';\n                emitWarning(msg, 'UnboundedCacheWarning', code, LRUCache);\n            }\n        }\n    }\n    /**\n     * Return the number of ms left in the item's TTL. If item is not in cache,\n     * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.\n     */\n    getRemainingTTL(key) {\n        return this.#keyMap.has(key) ? Infinity : 0;\n    }\n    #initializeTTLTracking() {\n        const ttls = new ZeroArray(this.#max);\n        const starts = new ZeroArray(this.#max);\n        this.#ttls = ttls;\n        this.#starts = starts;\n        this.#setItemTTL = (index, ttl, start = perf.now()) => {\n            starts[index] = ttl !== 0 ? start : 0;\n            ttls[index] = ttl;\n            if (ttl !== 0 && this.ttlAutopurge) {\n                const t = setTimeout(() => {\n                    if (this.#isStale(index)) {\n                        this.#delete(this.#keyList[index], 'expire');\n                    }\n                }, ttl + 1);\n                // unref() not supported on all platforms\n                /* c8 ignore start */\n                if (t.unref) {\n                    t.unref();\n                }\n                /* c8 ignore stop */\n            }\n        };\n        this.#updateItemAge = index => {\n            starts[index] = ttls[index] !== 0 ? perf.now() : 0;\n        };\n        this.#statusTTL = (status, index) => {\n            if (ttls[index]) {\n                const ttl = ttls[index];\n                const start = starts[index];\n                /* c8 ignore next */\n                if (!ttl || !start)\n                    return;\n                status.ttl = ttl;\n                status.start = start;\n                status.now = cachedNow || getNow();\n                const age = status.now - start;\n                status.remainingTTL = ttl - age;\n            }\n        };\n        // debounce calls to perf.now() to 1s so we're not hitting\n        // that costly call repeatedly.\n        let cachedNow = 0;\n        const getNow = () => {\n            const n = perf.now();\n            if (this.ttlResolution > 0) {\n                cachedNow = n;\n                const t = setTimeout(() => (cachedNow = 0), this.ttlResolution);\n                // not available on all platforms\n                /* c8 ignore start */\n                if (t.unref) {\n                    t.unref();\n                }\n                /* c8 ignore stop */\n            }\n            return n;\n        };\n        this.getRemainingTTL = key => {\n            const index = this.#keyMap.get(key);\n            if (index === undefined) {\n                return 0;\n            }\n            const ttl = ttls[index];\n            const start = starts[index];\n            if (!ttl || !start) {\n                return Infinity;\n            }\n            const age = (cachedNow || getNow()) - start;\n            return ttl - age;\n        };\n        this.#isStale = index => {\n            const s = starts[index];\n            const t = ttls[index];\n            return !!t && !!s && (cachedNow || getNow()) - s > t;\n        };\n    }\n    // conditionally set private methods related to TTL\n    #updateItemAge = () => { };\n    #statusTTL = () => { };\n    #setItemTTL = () => { };\n    /* c8 ignore stop */\n    #isStale = () => false;\n    #initializeSizeTracking() {\n        const sizes = new ZeroArray(this.#max);\n        this.#calculatedSize = 0;\n        this.#sizes = sizes;\n        this.#removeItemSize = index => {\n            this.#calculatedSize -= sizes[index];\n            sizes[index] = 0;\n        };\n        this.#requireSize = (k, v, size, sizeCalculation) => {\n            // provisionally accept background fetches.\n            // actual value size will be checked when they return.\n            if (this.#isBackgroundFetch(v)) {\n                return 0;\n            }\n            if (!isPosInt(size)) {\n                if (sizeCalculation) {\n                    if (typeof sizeCalculation !== 'function') {\n                        throw new TypeError('sizeCalculation must be a function');\n                    }\n                    size = sizeCalculation(v, k);\n                    if (!isPosInt(size)) {\n                        throw new TypeError('sizeCalculation return invalid (expect positive integer)');\n                    }\n                }\n                else {\n                    throw new TypeError('invalid size value (must be positive integer). ' +\n                        'When maxSize or maxEntrySize is used, sizeCalculation ' +\n                        'or size must be set.');\n                }\n            }\n            return size;\n        };\n        this.#addItemSize = (index, size, status) => {\n            sizes[index] = size;\n            if (this.#maxSize) {\n                const maxSize = this.#maxSize - sizes[index];\n                while (this.#calculatedSize > maxSize) {\n                    this.#evict(true);\n                }\n            }\n            this.#calculatedSize += sizes[index];\n            if (status) {\n                status.entrySize = size;\n                status.totalCalculatedSize = this.#calculatedSize;\n            }\n        };\n    }\n    #removeItemSize = _i => { };\n    #addItemSize = (_i, _s, _st) => { };\n    #requireSize = (_k, _v, size, sizeCalculation) => {\n        if (size || sizeCalculation) {\n            throw new TypeError('cannot set size without setting maxSize or maxEntrySize on cache');\n        }\n        return 0;\n    };\n    *#indexes({ allowStale = this.allowStale } = {}) {\n        if (this.#size) {\n            for (let i = this.#tail; true;) {\n                if (!this.#isValidIndex(i)) {\n                    break;\n                }\n                if (allowStale || !this.#isStale(i)) {\n                    yield i;\n                }\n                if (i === this.#head) {\n                    break;\n                }\n                else {\n                    i = this.#prev[i];\n                }\n            }\n        }\n    }\n    *#rindexes({ allowStale = this.allowStale } = {}) {\n        if (this.#size) {\n            for (let i = this.#head; true;) {\n                if (!this.#isValidIndex(i)) {\n                    break;\n                }\n                if (allowStale || !this.#isStale(i)) {\n                    yield i;\n                }\n                if (i === this.#tail) {\n                    break;\n                }\n                else {\n                    i = this.#next[i];\n                }\n            }\n        }\n    }\n    #isValidIndex(index) {\n        return (index !== undefined &&\n            this.#keyMap.get(this.#keyList[index]) === index);\n    }\n    /**\n     * Return a generator yielding `[key, value]` pairs,\n     * in order from most recently used to least recently used.\n     */\n    *entries() {\n        for (const i of this.#indexes()) {\n            if (this.#valList[i] !== undefined &&\n                this.#keyList[i] !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield [this.#keyList[i], this.#valList[i]];\n            }\n        }\n    }\n    /**\n     * Inverse order version of {@link LRUCache.entries}\n     *\n     * Return a generator yielding `[key, value]` pairs,\n     * in order from least recently used to most recently used.\n     */\n    *rentries() {\n        for (const i of this.#rindexes()) {\n            if (this.#valList[i] !== undefined &&\n                this.#keyList[i] !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield [this.#keyList[i], this.#valList[i]];\n            }\n        }\n    }\n    /**\n     * Return a generator yielding the keys in the cache,\n     * in order from most recently used to least recently used.\n     */\n    *keys() {\n        for (const i of this.#indexes()) {\n            const k = this.#keyList[i];\n            if (k !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield k;\n            }\n        }\n    }\n    /**\n     * Inverse order version of {@link LRUCache.keys}\n     *\n     * Return a generator yielding the keys in the cache,\n     * in order from least recently used to most recently used.\n     */\n    *rkeys() {\n        for (const i of this.#rindexes()) {\n            const k = this.#keyList[i];\n            if (k !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield k;\n            }\n        }\n    }\n    /**\n     * Return a generator yielding the values in the cache,\n     * in order from most recently used to least recently used.\n     */\n    *values() {\n        for (const i of this.#indexes()) {\n            const v = this.#valList[i];\n            if (v !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield this.#valList[i];\n            }\n        }\n    }\n    /**\n     * Inverse order version of {@link LRUCache.values}\n     *\n     * Return a generator yielding the values in the cache,\n     * in order from least recently used to most recently used.\n     */\n    *rvalues() {\n        for (const i of this.#rindexes()) {\n            const v = this.#valList[i];\n            if (v !== undefined &&\n                !this.#isBackgroundFetch(this.#valList[i])) {\n                yield this.#valList[i];\n            }\n        }\n    }\n    /**\n     * Iterating over the cache itself yields the same results as\n     * {@link LRUCache.entries}\n     */\n    [Symbol.iterator]() {\n        return this.entries();\n    }\n    /**\n     * A String value that is used in the creation of the default string\n     * description of an object. Called by the built-in method\n     * `Object.prototype.toString`.\n     */\n    [Symbol.toStringTag] = 'LRUCache';\n    /**\n     * Find a value for which the supplied fn method returns a truthy value,\n     * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.\n     */\n    find(fn, getOptions = {}) {\n        for (const i of this.#indexes()) {\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined)\n                continue;\n            if (fn(value, this.#keyList[i], this)) {\n                return this.get(this.#keyList[i], getOptions);\n            }\n        }\n    }\n    /**\n     * Call the supplied function on each item in the cache, in order from most\n     * recently used to least recently used.\n     *\n     * `fn` is called as `fn(value, key, cache)`.\n     *\n     * If `thisp` is provided, function will be called in the `this`-context of\n     * the provided object, or the cache if no `thisp` object is provided.\n     *\n     * Does not update age or recenty of use, or iterate over stale values.\n     */\n    forEach(fn, thisp = this) {\n        for (const i of this.#indexes()) {\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined)\n                continue;\n            fn.call(thisp, value, this.#keyList[i], this);\n        }\n    }\n    /**\n     * The same as {@link LRUCache.forEach} but items are iterated over in\n     * reverse order.  (ie, less recently used items are iterated over first.)\n     */\n    rforEach(fn, thisp = this) {\n        for (const i of this.#rindexes()) {\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined)\n                continue;\n            fn.call(thisp, value, this.#keyList[i], this);\n        }\n    }\n    /**\n     * Delete any stale entries. Returns true if anything was removed,\n     * false otherwise.\n     */\n    purgeStale() {\n        let deleted = false;\n        for (const i of this.#rindexes({ allowStale: true })) {\n            if (this.#isStale(i)) {\n                this.#delete(this.#keyList[i], 'expire');\n                deleted = true;\n            }\n        }\n        return deleted;\n    }\n    /**\n     * Get the extended info about a given entry, to get its value, size, and\n     * TTL info simultaneously. Returns `undefined` if the key is not present.\n     *\n     * Unlike {@link LRUCache#dump}, which is designed to be portable and survive\n     * serialization, the `start` value is always the current timestamp, and the\n     * `ttl` is a calculated remaining time to live (negative if expired).\n     *\n     * Always returns stale values, if their info is found in the cache, so be\n     * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})\n     * if relevant.\n     */\n    info(key) {\n        const i = this.#keyMap.get(key);\n        if (i === undefined)\n            return undefined;\n        const v = this.#valList[i];\n        const value = this.#isBackgroundFetch(v)\n            ? v.__staleWhileFetching\n            : v;\n        if (value === undefined)\n            return undefined;\n        const entry = { value };\n        if (this.#ttls && this.#starts) {\n            const ttl = this.#ttls[i];\n            const start = this.#starts[i];\n            if (ttl && start) {\n                const remain = ttl - (perf.now() - start);\n                entry.ttl = remain;\n                entry.start = Date.now();\n            }\n        }\n        if (this.#sizes) {\n            entry.size = this.#sizes[i];\n        }\n        return entry;\n    }\n    /**\n     * Return an array of [key, {@link LRUCache.Entry}] tuples which can be\n     * passed to {@link LRLUCache#load}.\n     *\n     * The `start` fields are calculated relative to a portable `Date.now()`\n     * timestamp, even if `performance.now()` is available.\n     *\n     * Stale entries are always included in the `dump`, even if\n     * {@link LRUCache.OptionsBase.allowStale} is false.\n     *\n     * Note: this returns an actual array, not a generator, so it can be more\n     * easily passed around.\n     */\n    dump() {\n        const arr = [];\n        for (const i of this.#indexes({ allowStale: true })) {\n            const key = this.#keyList[i];\n            const v = this.#valList[i];\n            const value = this.#isBackgroundFetch(v)\n                ? v.__staleWhileFetching\n                : v;\n            if (value === undefined || key === undefined)\n                continue;\n            const entry = { value };\n            if (this.#ttls && this.#starts) {\n                entry.ttl = this.#ttls[i];\n                // always dump the start relative to a portable timestamp\n                // it's ok for this to be a bit slow, it's a rare operation.\n                const age = perf.now() - this.#starts[i];\n                entry.start = Math.floor(Date.now() - age);\n            }\n            if (this.#sizes) {\n                entry.size = this.#sizes[i];\n            }\n            arr.unshift([key, entry]);\n        }\n        return arr;\n    }\n    /**\n     * Reset the cache and load in the items in entries in the order listed.\n     *\n     * The shape of the resulting cache may be different if the same options are\n     * not used in both caches.\n     *\n     * The `start` fields are assumed to be calculated relative to a portable\n     * `Date.now()` timestamp, even if `performance.now()` is available.\n     */\n    load(arr) {\n        this.clear();\n        for (const [key, entry] of arr) {\n            if (entry.start) {\n                // entry.start is a portable timestamp, but we may be using\n                // node's performance.now(), so calculate the offset, so that\n                // we get the intended remaining TTL, no matter how long it's\n                // been on ice.\n                //\n                // it's ok for this to be a bit slow, it's a rare operation.\n                const age = Date.now() - entry.start;\n                entry.start = perf.now() - age;\n            }\n            this.set(key, entry.value, entry);\n        }\n    }\n    /**\n     * Add a value to the cache.\n     *\n     * Note: if `undefined` is specified as a value, this is an alias for\n     * {@link LRUCache#delete}\n     *\n     * Fields on the {@link LRUCache.SetOptions} options param will override\n     * their corresponding values in the constructor options for the scope\n     * of this single `set()` operation.\n     *\n     * If `start` is provided, then that will set the effective start\n     * time for the TTL calculation. Note that this must be a previous\n     * value of `performance.now()` if supported, or a previous value of\n     * `Date.now()` if not.\n     *\n     * Options object may also include `size`, which will prevent\n     * calling the `sizeCalculation` function and just use the specified\n     * number if it is a positive integer, and `noDisposeOnSet` which\n     * will prevent calling a `dispose` function in the case of\n     * overwrites.\n     *\n     * If the `size` (or return value of `sizeCalculation`) for a given\n     * entry is greater than `maxEntrySize`, then the item will not be\n     * added to the cache.\n     *\n     * Will update the recency of the entry.\n     *\n     * If the value is `undefined`, then this is an alias for\n     * `cache.delete(key)`. `undefined` is never stored in the cache.\n     */\n    set(k, v, setOptions = {}) {\n        if (v === undefined) {\n            this.delete(k);\n            return this;\n        }\n        const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status, } = setOptions;\n        let { noUpdateTTL = this.noUpdateTTL } = setOptions;\n        const size = this.#requireSize(k, v, setOptions.size || 0, sizeCalculation);\n        // if the item doesn't fit, don't do anything\n        // NB: maxEntrySize set to maxSize by default\n        if (this.maxEntrySize && size > this.maxEntrySize) {\n            if (status) {\n                status.set = 'miss';\n                status.maxEntrySizeExceeded = true;\n            }\n            // have to delete, in case something is there already.\n            this.#delete(k, 'set');\n            return this;\n        }\n        let index = this.#size === 0 ? undefined : this.#keyMap.get(k);\n        if (index === undefined) {\n            // addition\n            index = (this.#size === 0\n                ? this.#tail\n                : this.#free.length !== 0\n                    ? this.#free.pop()\n                    : this.#size === this.#max\n                        ? this.#evict(false)\n                        : this.#size);\n            this.#keyList[index] = k;\n            this.#valList[index] = v;\n            this.#keyMap.set(k, index);\n            this.#next[this.#tail] = index;\n            this.#prev[index] = this.#tail;\n            this.#tail = index;\n            this.#size++;\n            this.#addItemSize(index, size, status);\n            if (status)\n                status.set = 'add';\n            noUpdateTTL = false;\n        }\n        else {\n            // update\n            this.#moveToTail(index);\n            const oldVal = this.#valList[index];\n            if (v !== oldVal) {\n                if (this.#hasFetchMethod && this.#isBackgroundFetch(oldVal)) {\n                    oldVal.__abortController.abort(new Error('replaced'));\n                    const { __staleWhileFetching: s } = oldVal;\n                    if (s !== undefined && !noDisposeOnSet) {\n                        if (this.#hasDispose) {\n                            this.#dispose?.(s, k, 'set');\n                        }\n                        if (this.#hasDisposeAfter) {\n                            this.#disposed?.push([s, k, 'set']);\n                        }\n                    }\n                }\n                else if (!noDisposeOnSet) {\n                    if (this.#hasDispose) {\n                        this.#dispose?.(oldVal, k, 'set');\n                    }\n                    if (this.#hasDisposeAfter) {\n                        this.#disposed?.push([oldVal, k, 'set']);\n                    }\n                }\n                this.#removeItemSize(index);\n                this.#addItemSize(index, size, status);\n                this.#valList[index] = v;\n                if (status) {\n                    status.set = 'replace';\n                    const oldValue = oldVal && this.#isBackgroundFetch(oldVal)\n                        ? oldVal.__staleWhileFetching\n                        : oldVal;\n                    if (oldValue !== undefined)\n                        status.oldValue = oldValue;\n                }\n            }\n            else if (status) {\n                status.set = 'update';\n            }\n        }\n        if (ttl !== 0 && !this.#ttls) {\n            this.#initializeTTLTracking();\n        }\n        if (this.#ttls) {\n            if (!noUpdateTTL) {\n                this.#setItemTTL(index, ttl, start);\n            }\n            if (status)\n                this.#statusTTL(status, index);\n        }\n        if (!noDisposeOnSet && this.#hasDisposeAfter && this.#disposed) {\n            const dt = this.#disposed;\n            let task;\n            while ((task = dt?.shift())) {\n                this.#disposeAfter?.(...task);\n            }\n        }\n        return this;\n    }\n    /**\n     * Evict the least recently used item, returning its value or\n     * `undefined` if cache is empty.\n     */\n    pop() {\n        try {\n            while (this.#size) {\n                const val = this.#valList[this.#head];\n                this.#evict(true);\n                if (this.#isBackgroundFetch(val)) {\n                    if (val.__staleWhileFetching) {\n                        return val.__staleWhileFetching;\n                    }\n                }\n                else if (val !== undefined) {\n                    return val;\n                }\n            }\n        }\n        finally {\n            if (this.#hasDisposeAfter && this.#disposed) {\n                const dt = this.#disposed;\n                let task;\n                while ((task = dt?.shift())) {\n                    this.#disposeAfter?.(...task);\n                }\n            }\n        }\n    }\n    #evict(free) {\n        const head = this.#head;\n        const k = this.#keyList[head];\n        const v = this.#valList[head];\n        if (this.#hasFetchMethod && this.#isBackgroundFetch(v)) {\n            v.__abortController.abort(new Error('evicted'));\n        }\n        else if (this.#hasDispose || this.#hasDisposeAfter) {\n            if (this.#hasDispose) {\n                this.#dispose?.(v, k, 'evict');\n            }\n            if (this.#hasDisposeAfter) {\n                this.#disposed?.push([v, k, 'evict']);\n            }\n        }\n        this.#removeItemSize(head);\n        // if we aren't about to use the index, then null these out\n        if (free) {\n            this.#keyList[head] = undefined;\n            this.#valList[head] = undefined;\n            this.#free.push(head);\n        }\n        if (this.#size === 1) {\n            this.#head = this.#tail = 0;\n            this.#free.length = 0;\n        }\n        else {\n            this.#head = this.#next[head];\n        }\n        this.#keyMap.delete(k);\n        this.#size--;\n        return head;\n    }\n    /**\n     * Check if a key is in the cache, without updating the recency of use.\n     * Will return false if the item is stale, even though it is technically\n     * in the cache.\n     *\n     * Check if a key is in the cache, without updating the recency of\n     * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set\n     * to `true` in either the options or the constructor.\n     *\n     * Will return `false` if the item is stale, even though it is technically in\n     * the cache. The difference can be determined (if it matters) by using a\n     * `status` argument, and inspecting the `has` field.\n     *\n     * Will not update item age unless\n     * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.\n     */\n    has(k, hasOptions = {}) {\n        const { updateAgeOnHas = this.updateAgeOnHas, status } = hasOptions;\n        const index = this.#keyMap.get(k);\n        if (index !== undefined) {\n            const v = this.#valList[index];\n            if (this.#isBackgroundFetch(v) &&\n                v.__staleWhileFetching === undefined) {\n                return false;\n            }\n            if (!this.#isStale(index)) {\n                if (updateAgeOnHas) {\n                    this.#updateItemAge(index);\n                }\n                if (status) {\n                    status.has = 'hit';\n                    this.#statusTTL(status, index);\n                }\n                return true;\n            }\n            else if (status) {\n                status.has = 'stale';\n                this.#statusTTL(status, index);\n            }\n        }\n        else if (status) {\n            status.has = 'miss';\n        }\n        return false;\n    }\n    /**\n     * Like {@link LRUCache#get} but doesn't update recency or delete stale\n     * items.\n     *\n     * Returns `undefined` if the item is stale, unless\n     * {@link LRUCache.OptionsBase.allowStale} is set.\n     */\n    peek(k, peekOptions = {}) {\n        const { allowStale = this.allowStale } = peekOptions;\n        const index = this.#keyMap.get(k);\n        if (index === undefined ||\n            (!allowStale && this.#isStale(index))) {\n            return;\n        }\n        const v = this.#valList[index];\n        // either stale and allowed, or forcing a refresh of non-stale value\n        return this.#isBackgroundFetch(v) ? v.__staleWhileFetching : v;\n    }\n    #backgroundFetch(k, index, options, context) {\n        const v = index === undefined ? undefined : this.#valList[index];\n        if (this.#isBackgroundFetch(v)) {\n            return v;\n        }\n        const ac = new AC();\n        const { signal } = options;\n        // when/if our AC signals, then stop listening to theirs.\n        signal?.addEventListener('abort', () => ac.abort(signal.reason), {\n            signal: ac.signal,\n        });\n        const fetchOpts = {\n            signal: ac.signal,\n            options,\n            context,\n        };\n        const cb = (v, updateCache = false) => {\n            const { aborted } = ac.signal;\n            const ignoreAbort = options.ignoreFetchAbort && v !== undefined;\n            if (options.status) {\n                if (aborted && !updateCache) {\n                    options.status.fetchAborted = true;\n                    options.status.fetchError = ac.signal.reason;\n                    if (ignoreAbort)\n                        options.status.fetchAbortIgnored = true;\n                }\n                else {\n                    options.status.fetchResolved = true;\n                }\n            }\n            if (aborted && !ignoreAbort && !updateCache) {\n                return fetchFail(ac.signal.reason);\n            }\n            // either we didn't abort, and are still here, or we did, and ignored\n            const bf = p;\n            if (this.#valList[index] === p) {\n                if (v === undefined) {\n                    if (bf.__staleWhileFetching) {\n                        this.#valList[index] = bf.__staleWhileFetching;\n                    }\n                    else {\n                        this.#delete(k, 'fetch');\n                    }\n                }\n                else {\n                    if (options.status)\n                        options.status.fetchUpdated = true;\n                    this.set(k, v, fetchOpts.options);\n                }\n            }\n            return v;\n        };\n        const eb = (er) => {\n            if (options.status) {\n                options.status.fetchRejected = true;\n                options.status.fetchError = er;\n            }\n            return fetchFail(er);\n        };\n        const fetchFail = (er) => {\n            const { aborted } = ac.signal;\n            const allowStaleAborted = aborted && options.allowStaleOnFetchAbort;\n            const allowStale = allowStaleAborted || options.allowStaleOnFetchRejection;\n            const noDelete = allowStale || options.noDeleteOnFetchRejection;\n            const bf = p;\n            if (this.#valList[index] === p) {\n                // if we allow stale on fetch rejections, then we need to ensure that\n                // the stale value is not removed from the cache when the fetch fails.\n                const del = !noDelete || bf.__staleWhileFetching === undefined;\n                if (del) {\n                    this.#delete(k, 'fetch');\n                }\n                else if (!allowStaleAborted) {\n                    // still replace the *promise* with the stale value,\n                    // since we are done with the promise at this point.\n                    // leave it untouched if we're still waiting for an\n                    // aborted background fetch that hasn't yet returned.\n                    this.#valList[index] = bf.__staleWhileFetching;\n                }\n            }\n            if (allowStale) {\n                if (options.status && bf.__staleWhileFetching !== undefined) {\n                    options.status.returnedStale = true;\n                }\n                return bf.__staleWhileFetching;\n            }\n            else if (bf.__returned === bf) {\n                throw er;\n            }\n        };\n        const pcall = (res, rej) => {\n            const fmp = this.#fetchMethod?.(k, v, fetchOpts);\n            if (fmp && fmp instanceof Promise) {\n                fmp.then(v => res(v === undefined ? undefined : v), rej);\n            }\n            // ignored, we go until we finish, regardless.\n            // defer check until we are actually aborting,\n            // so fetchMethod can override.\n            ac.signal.addEventListener('abort', () => {\n                if (!options.ignoreFetchAbort ||\n                    options.allowStaleOnFetchAbort) {\n                    res(undefined);\n                    // when it eventually resolves, update the cache.\n                    if (options.allowStaleOnFetchAbort) {\n                        res = v => cb(v, true);\n                    }\n                }\n            });\n        };\n        if (options.status)\n            options.status.fetchDispatched = true;\n        const p = new Promise(pcall).then(cb, eb);\n        const bf = Object.assign(p, {\n            __abortController: ac,\n            __staleWhileFetching: v,\n            __returned: undefined,\n        });\n        if (index === undefined) {\n            // internal, don't expose status.\n            this.set(k, bf, { ...fetchOpts.options, status: undefined });\n            index = this.#keyMap.get(k);\n        }\n        else {\n            this.#valList[index] = bf;\n        }\n        return bf;\n    }\n    #isBackgroundFetch(p) {\n        if (!this.#hasFetchMethod)\n            return false;\n        const b = p;\n        return (!!b &&\n            b instanceof Promise &&\n            b.hasOwnProperty('__staleWhileFetching') &&\n            b.__abortController instanceof AC);\n    }\n    async fetch(k, fetchOptions = {}) {\n        const { \n        // get options\n        allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, \n        // set options\n        ttl = this.ttl, noDisposeOnSet = this.noDisposeOnSet, size = 0, sizeCalculation = this.sizeCalculation, noUpdateTTL = this.noUpdateTTL, \n        // fetch exclusive options\n        noDeleteOnFetchRejection = this.noDeleteOnFetchRejection, allowStaleOnFetchRejection = this.allowStaleOnFetchRejection, ignoreFetchAbort = this.ignoreFetchAbort, allowStaleOnFetchAbort = this.allowStaleOnFetchAbort, context, forceRefresh = false, status, signal, } = fetchOptions;\n        if (!this.#hasFetchMethod) {\n            if (status)\n                status.fetch = 'get';\n            return this.get(k, {\n                allowStale,\n                updateAgeOnGet,\n                noDeleteOnStaleGet,\n                status,\n            });\n        }\n        const options = {\n            allowStale,\n            updateAgeOnGet,\n            noDeleteOnStaleGet,\n            ttl,\n            noDisposeOnSet,\n            size,\n            sizeCalculation,\n            noUpdateTTL,\n            noDeleteOnFetchRejection,\n            allowStaleOnFetchRejection,\n            allowStaleOnFetchAbort,\n            ignoreFetchAbort,\n            status,\n            signal,\n        };\n        let index = this.#keyMap.get(k);\n        if (index === undefined) {\n            if (status)\n                status.fetch = 'miss';\n            const p = this.#backgroundFetch(k, index, options, context);\n            return (p.__returned = p);\n        }\n        else {\n            // in cache, maybe already fetching\n            const v = this.#valList[index];\n            if (this.#isBackgroundFetch(v)) {\n                const stale = allowStale && v.__staleWhileFetching !== undefined;\n                if (status) {\n                    status.fetch = 'inflight';\n                    if (stale)\n                        status.returnedStale = true;\n                }\n                return stale ? v.__staleWhileFetching : (v.__returned = v);\n            }\n            // if we force a refresh, that means do NOT serve the cached value,\n            // unless we are already in the process of refreshing the cache.\n            const isStale = this.#isStale(index);\n            if (!forceRefresh && !isStale) {\n                if (status)\n                    status.fetch = 'hit';\n                this.#moveToTail(index);\n                if (updateAgeOnGet) {\n                    this.#updateItemAge(index);\n                }\n                if (status)\n                    this.#statusTTL(status, index);\n                return v;\n            }\n            // ok, it is stale or a forced refresh, and not already fetching.\n            // refresh the cache.\n            const p = this.#backgroundFetch(k, index, options, context);\n            const hasStale = p.__staleWhileFetching !== undefined;\n            const staleVal = hasStale && allowStale;\n            if (status) {\n                status.fetch = isStale ? 'stale' : 'refresh';\n                if (staleVal && isStale)\n                    status.returnedStale = true;\n            }\n            return staleVal ? p.__staleWhileFetching : (p.__returned = p);\n        }\n    }\n    async forceFetch(k, fetchOptions = {}) {\n        const v = await this.fetch(k, fetchOptions);\n        if (v === undefined)\n            throw new Error('fetch() returned undefined');\n        return v;\n    }\n    memo(k, memoOptions = {}) {\n        const memoMethod = this.#memoMethod;\n        if (!memoMethod) {\n            throw new Error('no memoMethod provided to constructor');\n        }\n        const { context, forceRefresh, ...options } = memoOptions;\n        const v = this.get(k, options);\n        if (!forceRefresh && v !== undefined)\n            return v;\n        const vv = memoMethod(k, v, {\n            options,\n            context,\n        });\n        this.set(k, vv, options);\n        return vv;\n    }\n    /**\n     * Return a value from the cache. Will update the recency of the cache\n     * entry found.\n     *\n     * If the key is not found, get() will return `undefined`.\n     */\n    get(k, getOptions = {}) {\n        const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status, } = getOptions;\n        const index = this.#keyMap.get(k);\n        if (index !== undefined) {\n            const value = this.#valList[index];\n            const fetching = this.#isBackgroundFetch(value);\n            if (status)\n                this.#statusTTL(status, index);\n            if (this.#isStale(index)) {\n                if (status)\n                    status.get = 'stale';\n                // delete only if not an in-flight background fetch\n                if (!fetching) {\n                    if (!noDeleteOnStaleGet) {\n                        this.#delete(k, 'expire');\n                    }\n                    if (status && allowStale)\n                        status.returnedStale = true;\n                    return allowStale ? value : undefined;\n                }\n                else {\n                    if (status &&\n                        allowStale &&\n                        value.__staleWhileFetching !== undefined) {\n                        status.returnedStale = true;\n                    }\n                    return allowStale ? value.__staleWhileFetching : undefined;\n                }\n            }\n            else {\n                if (status)\n                    status.get = 'hit';\n                // if we're currently fetching it, we don't actually have it yet\n                // it's not stale, which means this isn't a staleWhileRefetching.\n                // If it's not stale, and fetching, AND has a __staleWhileFetching\n                // value, then that means the user fetched with {forceRefresh:true},\n                // so it's safe to return that value.\n                if (fetching) {\n                    return value.__staleWhileFetching;\n                }\n                this.#moveToTail(index);\n                if (updateAgeOnGet) {\n                    this.#updateItemAge(index);\n                }\n                return value;\n            }\n        }\n        else if (status) {\n            status.get = 'miss';\n        }\n    }\n    #connect(p, n) {\n        this.#prev[n] = p;\n        this.#next[p] = n;\n    }\n    #moveToTail(index) {\n        // if tail already, nothing to do\n        // if head, move head to next[index]\n        // else\n        //   move next[prev[index]] to next[index] (head has no prev)\n        //   move prev[next[index]] to prev[index]\n        // prev[index] = tail\n        // next[tail] = index\n        // tail = index\n        if (index !== this.#tail) {\n            if (index === this.#head) {\n                this.#head = this.#next[index];\n            }\n            else {\n                this.#connect(this.#prev[index], this.#next[index]);\n            }\n            this.#connect(this.#tail, index);\n            this.#tail = index;\n        }\n    }\n    /**\n     * Deletes a key out of the cache.\n     *\n     * Returns true if the key was deleted, false otherwise.\n     */\n    delete(k) {\n        return this.#delete(k, 'delete');\n    }\n    #delete(k, reason) {\n        let deleted = false;\n        if (this.#size !== 0) {\n            const index = this.#keyMap.get(k);\n            if (index !== undefined) {\n                deleted = true;\n                if (this.#size === 1) {\n                    this.#clear(reason);\n                }\n                else {\n                    this.#removeItemSize(index);\n                    const v = this.#valList[index];\n                    if (this.#isBackgroundFetch(v)) {\n                        v.__abortController.abort(new Error('deleted'));\n                    }\n                    else if (this.#hasDispose || this.#hasDisposeAfter) {\n                        if (this.#hasDispose) {\n                            this.#dispose?.(v, k, reason);\n                        }\n                        if (this.#hasDisposeAfter) {\n                            this.#disposed?.push([v, k, reason]);\n                        }\n                    }\n                    this.#keyMap.delete(k);\n                    this.#keyList[index] = undefined;\n                    this.#valList[index] = undefined;\n                    if (index === this.#tail) {\n                        this.#tail = this.#prev[index];\n                    }\n                    else if (index === this.#head) {\n                        this.#head = this.#next[index];\n                    }\n                    else {\n                        const pi = this.#prev[index];\n                        this.#next[pi] = this.#next[index];\n                        const ni = this.#next[index];\n                        this.#prev[ni] = this.#prev[index];\n                    }\n                    this.#size--;\n                    this.#free.push(index);\n                }\n            }\n        }\n        if (this.#hasDisposeAfter && this.#disposed?.length) {\n            const dt = this.#disposed;\n            let task;\n            while ((task = dt?.shift())) {\n                this.#disposeAfter?.(...task);\n            }\n        }\n        return deleted;\n    }\n    /**\n     * Clear the cache entirely, throwing away all values.\n     */\n    clear() {\n        return this.#clear('delete');\n    }\n    #clear(reason) {\n        for (const index of this.#rindexes({ allowStale: true })) {\n            const v = this.#valList[index];\n            if (this.#isBackgroundFetch(v)) {\n                v.__abortController.abort(new Error('deleted'));\n            }\n            else {\n                const k = this.#keyList[index];\n                if (this.#hasDispose) {\n                    this.#dispose?.(v, k, reason);\n                }\n                if (this.#hasDisposeAfter) {\n                    this.#disposed?.push([v, k, reason]);\n                }\n            }\n        }\n        this.#keyMap.clear();\n        this.#valList.fill(undefined);\n        this.#keyList.fill(undefined);\n        if (this.#ttls && this.#starts) {\n            this.#ttls.fill(0);\n            this.#starts.fill(0);\n        }\n        if (this.#sizes) {\n            this.#sizes.fill(0);\n        }\n        this.#head = 0;\n        this.#tail = 0;\n        this.#free.length = 0;\n        this.#calculatedSize = 0;\n        this.#size = 0;\n        if (this.#hasDisposeAfter && this.#disposed) {\n            const dt = this.#disposed;\n            let task;\n            while ((task = dt?.shift())) {\n                this.#disposeAfter?.(...task);\n            }\n        }\n    }\n}\nexports.LRUCache = LRUCache;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepareEvaluatorActionContext = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst lru_cache_1 = require(\"lru-cache\");\nconst DateTimeHelpers_1 = require(\"./DateTimeHelpers\");\nfunction prepareEvaluatorActionContext(orgContext) {\n    let context = orgContext;\n    // Handle two variants of providing extension functions\n    if (context.has(context_entries_1.KeysInitQuery.extensionFunctionCreator) && context.has(context_entries_1.KeysInitQuery.extensionFunctions)) {\n        throw new Error('Illegal simultaneous usage of extensionFunctionCreator and extensionFunctions in context');\n    }\n    if (context.has(context_entries_1.KeysInitQuery.extensionFunctionCreator)) {\n        context = context.set(context_entries_1.KeysExpressionEvaluator.extensionFunctionCreator, context.get(context_entries_1.KeysInitQuery.extensionFunctionCreator));\n    }\n    else if (context.has(context_entries_1.KeysInitQuery.extensionFunctions)) {\n        const extensionFunctions = context.getSafe(context_entries_1.KeysInitQuery.extensionFunctions);\n        context = context.set(context_entries_1.KeysExpressionEvaluator.extensionFunctionCreator, async (functionNamedNode) => extensionFunctions[functionNamedNode.value]);\n    }\n    else {\n        // eslint-disable-next-line unicorn/no-useless-undefined\n        context = context.setDefault(context_entries_1.KeysExpressionEvaluator.extensionFunctionCreator, async () => undefined);\n    }\n    context = context.setDefault(context_entries_1.KeysExpressionEvaluator.defaultTimeZone, (0, DateTimeHelpers_1.extractTimeZone)(context.getSafe(context_entries_1.KeysInitQuery.queryTimestamp)));\n    context = context.setDefault(context_entries_1.KeysExpressionEvaluator.superTypeProvider, {\n        cache: new lru_cache_1.LRUCache({ max: 1_000 }),\n        discoverer: () => 'term',\n    });\n    return context;\n}\nexports.prepareEvaluatorActionContext = prepareEvaluatorActionContext;\n//# sourceMappingURL=Context.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LangStringLiteral = exports.TimeLiteral = exports.DurationLiteral = exports.DateLiteral = exports.DayTimeDurationLiteral = exports.DateTimeLiteral = exports.yearMonthDurationsToMonths = exports.toUTCDate = exports.toDateTimeRepresentation = exports.negateDuration = exports.extractRawTimeZone = exports.defaultedYearMonthDurationRepresentation = exports.defaultedDurationRepresentation = exports.defaultedDayTimeDurationRepresentation = exports.defaultedDateTimeRepresentation = exports.dayTimeDurationsToSeconds = exports.isSubTypeOf = exports.SparqlOperator = exports.TypeAlias = exports.TypeURL = exports.typedLiteral = exports.InvalidArity = exports.InvalidLexicalForm = exports.ExtensionFunctionError = exports.CastError = exports.UnboundVariableError = exports.NoAggregator = exports.InError = exports.CoalesceError = exports.InvalidArgumentTypes = exports.InvalidTimezoneCall = exports.IncompatibleLanguageOperation = exports.RDFEqualTypeError = exports.EmptyAggregateError = exports.isExpressionError = exports.ExpressionError = exports.Builder = exports.expressionToVar = exports.float = exports.decimal = exports.langString = exports.dateTime = exports.integer = exports.double = exports.string = exports.bool = exports.declare = exports.prepareEvaluatorActionContext = exports.OverloadTree = exports.TermTransformer = void 0;\nexports.trimToDayTimeDuration = exports.trimToYearMonthDuration = exports.parseDate = exports.parseXSDFloat = exports.parseXSDDecimal = exports.parseYearMonthDuration = exports.parseTime = exports.parseDuration = exports.parseDayTimeDuration = exports.parseDateTime = exports.elapsedDuration = exports.addDurationToDateTime = exports.isNonLexicalLiteral = exports.StringLiteral = exports.NonLexicalLiteral = exports.FloatLiteral = exports.IntegerLiteral = exports.Literal = exports.Existence = exports.Aggregate = exports.DoubleLiteral = exports.DefaultGraph = exports.DecimalLiteral = exports.BlankNode = exports.BooleanLiteral = exports.NumericLiteral = exports.Variable = exports.NamedNode = exports.Operator = exports.Quad = exports.YearMonthDurationLiteral = exports.Term = void 0;\nvar TermTransformer_1 = require(\"./transformers/TermTransformer\");\nObject.defineProperty(exports, \"TermTransformer\", { enumerable: true, get: function () { return TermTransformer_1.TermTransformer; } });\nvar OverloadTree_1 = require(\"./functions/OverloadTree\");\nObject.defineProperty(exports, \"OverloadTree\", { enumerable: true, get: function () { return OverloadTree_1.OverloadTree; } });\nvar Context_1 = require(\"./util/Context\");\nObject.defineProperty(exports, \"prepareEvaluatorActionContext\", { enumerable: true, get: function () { return Context_1.prepareEvaluatorActionContext; } });\nvar Helpers_1 = require(\"./functions/Helpers\");\nObject.defineProperty(exports, \"declare\", { enumerable: true, get: function () { return Helpers_1.declare; } });\nObject.defineProperty(exports, \"bool\", { enumerable: true, get: function () { return Helpers_1.bool; } });\nObject.defineProperty(exports, \"string\", { enumerable: true, get: function () { return Helpers_1.string; } });\nObject.defineProperty(exports, \"double\", { enumerable: true, get: function () { return Helpers_1.double; } });\nObject.defineProperty(exports, \"integer\", { enumerable: true, get: function () { return Helpers_1.integer; } });\nObject.defineProperty(exports, \"dateTime\", { enumerable: true, get: function () { return Helpers_1.dateTime; } });\nObject.defineProperty(exports, \"langString\", { enumerable: true, get: function () { return Helpers_1.langString; } });\nObject.defineProperty(exports, \"decimal\", { enumerable: true, get: function () { return Helpers_1.decimal; } });\nObject.defineProperty(exports, \"float\", { enumerable: true, get: function () { return Helpers_1.float; } });\nObject.defineProperty(exports, \"expressionToVar\", { enumerable: true, get: function () { return Helpers_1.expressionToVar; } });\nObject.defineProperty(exports, \"Builder\", { enumerable: true, get: function () { return Helpers_1.Builder; } });\nvar Errors_1 = require(\"./util/Errors\");\nObject.defineProperty(exports, \"ExpressionError\", { enumerable: true, get: function () { return Errors_1.ExpressionError; } });\nObject.defineProperty(exports, \"isExpressionError\", { enumerable: true, get: function () { return Errors_1.isExpressionError; } });\nObject.defineProperty(exports, \"EmptyAggregateError\", { enumerable: true, get: function () { return Errors_1.EmptyAggregateError; } });\nObject.defineProperty(exports, \"RDFEqualTypeError\", { enumerable: true, get: function () { return Errors_1.RDFEqualTypeError; } });\nObject.defineProperty(exports, \"IncompatibleLanguageOperation\", { enumerable: true, get: function () { return Errors_1.IncompatibleLanguageOperation; } });\nObject.defineProperty(exports, \"InvalidTimezoneCall\", { enumerable: true, get: function () { return Errors_1.InvalidTimezoneCall; } });\nObject.defineProperty(exports, \"InvalidArgumentTypes\", { enumerable: true, get: function () { return Errors_1.InvalidArgumentTypes; } });\nObject.defineProperty(exports, \"CoalesceError\", { enumerable: true, get: function () { return Errors_1.CoalesceError; } });\nObject.defineProperty(exports, \"InError\", { enumerable: true, get: function () { return Errors_1.InError; } });\nObject.defineProperty(exports, \"NoAggregator\", { enumerable: true, get: function () { return Errors_1.NoAggregator; } });\nObject.defineProperty(exports, \"UnboundVariableError\", { enumerable: true, get: function () { return Errors_1.UnboundVariableError; } });\nObject.defineProperty(exports, \"CastError\", { enumerable: true, get: function () { return Errors_1.CastError; } });\nObject.defineProperty(exports, \"ExtensionFunctionError\", { enumerable: true, get: function () { return Errors_1.ExtensionFunctionError; } });\nObject.defineProperty(exports, \"InvalidLexicalForm\", { enumerable: true, get: function () { return Errors_1.InvalidLexicalForm; } });\nObject.defineProperty(exports, \"InvalidArity\", { enumerable: true, get: function () { return Errors_1.InvalidArity; } });\nvar Consts_1 = require(\"./util/Consts\");\nObject.defineProperty(exports, \"typedLiteral\", { enumerable: true, get: function () { return Consts_1.typedLiteral; } });\nObject.defineProperty(exports, \"TypeURL\", { enumerable: true, get: function () { return Consts_1.TypeURL; } });\nObject.defineProperty(exports, \"TypeAlias\", { enumerable: true, get: function () { return Consts_1.TypeAlias; } });\nObject.defineProperty(exports, \"SparqlOperator\", { enumerable: true, get: function () { return Consts_1.SparqlOperator; } });\nvar TypeHandling_1 = require(\"./util/TypeHandling\");\nObject.defineProperty(exports, \"isSubTypeOf\", { enumerable: true, get: function () { return TypeHandling_1.isSubTypeOf; } });\nvar DateTimeHelpers_1 = require(\"./util/DateTimeHelpers\");\nObject.defineProperty(exports, \"dayTimeDurationsToSeconds\", { enumerable: true, get: function () { return DateTimeHelpers_1.dayTimeDurationsToSeconds; } });\nObject.defineProperty(exports, \"defaultedDateTimeRepresentation\", { enumerable: true, get: function () { return DateTimeHelpers_1.defaultedDateTimeRepresentation; } });\nObject.defineProperty(exports, \"defaultedDayTimeDurationRepresentation\", { enumerable: true, get: function () { return DateTimeHelpers_1.defaultedDayTimeDurationRepresentation; } });\nObject.defineProperty(exports, \"defaultedDurationRepresentation\", { enumerable: true, get: function () { return DateTimeHelpers_1.defaultedDurationRepresentation; } });\nObject.defineProperty(exports, \"defaultedYearMonthDurationRepresentation\", { enumerable: true, get: function () { return DateTimeHelpers_1.defaultedYearMonthDurationRepresentation; } });\nObject.defineProperty(exports, \"extractRawTimeZone\", { enumerable: true, get: function () { return DateTimeHelpers_1.extractRawTimeZone; } });\nObject.defineProperty(exports, \"negateDuration\", { enumerable: true, get: function () { return DateTimeHelpers_1.negateDuration; } });\nObject.defineProperty(exports, \"toDateTimeRepresentation\", { enumerable: true, get: function () { return DateTimeHelpers_1.toDateTimeRepresentation; } });\nObject.defineProperty(exports, \"toUTCDate\", { enumerable: true, get: function () { return DateTimeHelpers_1.toUTCDate; } });\nObject.defineProperty(exports, \"yearMonthDurationsToMonths\", { enumerable: true, get: function () { return DateTimeHelpers_1.yearMonthDurationsToMonths; } });\nvar expressions_1 = require(\"./expressions\");\nObject.defineProperty(exports, \"DateTimeLiteral\", { enumerable: true, get: function () { return expressions_1.DateTimeLiteral; } });\nObject.defineProperty(exports, \"DayTimeDurationLiteral\", { enumerable: true, get: function () { return expressions_1.DayTimeDurationLiteral; } });\nObject.defineProperty(exports, \"DateLiteral\", { enumerable: true, get: function () { return expressions_1.DateLiteral; } });\nObject.defineProperty(exports, \"DurationLiteral\", { enumerable: true, get: function () { return expressions_1.DurationLiteral; } });\nObject.defineProperty(exports, \"TimeLiteral\", { enumerable: true, get: function () { return expressions_1.TimeLiteral; } });\nObject.defineProperty(exports, \"LangStringLiteral\", { enumerable: true, get: function () { return expressions_1.LangStringLiteral; } });\nObject.defineProperty(exports, \"Term\", { enumerable: true, get: function () { return expressions_1.Term; } });\nObject.defineProperty(exports, \"YearMonthDurationLiteral\", { enumerable: true, get: function () { return expressions_1.YearMonthDurationLiteral; } });\nObject.defineProperty(exports, \"Quad\", { enumerable: true, get: function () { return expressions_1.Quad; } });\nObject.defineProperty(exports, \"Operator\", { enumerable: true, get: function () { return expressions_1.Operator; } });\nObject.defineProperty(exports, \"NamedNode\", { enumerable: true, get: function () { return expressions_1.NamedNode; } });\nObject.defineProperty(exports, \"Variable\", { enumerable: true, get: function () { return expressions_1.Variable; } });\nObject.defineProperty(exports, \"NumericLiteral\", { enumerable: true, get: function () { return expressions_1.NumericLiteral; } });\nObject.defineProperty(exports, \"BooleanLiteral\", { enumerable: true, get: function () { return expressions_1.BooleanLiteral; } });\nObject.defineProperty(exports, \"BlankNode\", { enumerable: true, get: function () { return expressions_1.BlankNode; } });\nObject.defineProperty(exports, \"DecimalLiteral\", { enumerable: true, get: function () { return expressions_1.DecimalLiteral; } });\nObject.defineProperty(exports, \"DefaultGraph\", { enumerable: true, get: function () { return expressions_1.DefaultGraph; } });\nObject.defineProperty(exports, \"DoubleLiteral\", { enumerable: true, get: function () { return expressions_1.DoubleLiteral; } });\nObject.defineProperty(exports, \"Aggregate\", { enumerable: true, get: function () { return expressions_1.Aggregate; } });\nObject.defineProperty(exports, \"Existence\", { enumerable: true, get: function () { return expressions_1.Existence; } });\nObject.defineProperty(exports, \"Literal\", { enumerable: true, get: function () { return expressions_1.Literal; } });\nObject.defineProperty(exports, \"IntegerLiteral\", { enumerable: true, get: function () { return expressions_1.IntegerLiteral; } });\nObject.defineProperty(exports, \"FloatLiteral\", { enumerable: true, get: function () { return expressions_1.FloatLiteral; } });\nObject.defineProperty(exports, \"NonLexicalLiteral\", { enumerable: true, get: function () { return expressions_1.NonLexicalLiteral; } });\nObject.defineProperty(exports, \"StringLiteral\", { enumerable: true, get: function () { return expressions_1.StringLiteral; } });\nObject.defineProperty(exports, \"isNonLexicalLiteral\", { enumerable: true, get: function () { return expressions_1.isNonLexicalLiteral; } });\nvar SpecAlgos_1 = require(\"./util/SpecAlgos\");\nObject.defineProperty(exports, \"addDurationToDateTime\", { enumerable: true, get: function () { return SpecAlgos_1.addDurationToDateTime; } });\nObject.defineProperty(exports, \"elapsedDuration\", { enumerable: true, get: function () { return SpecAlgos_1.elapsedDuration; } });\nvar Parsing_1 = require(\"./util/Parsing\");\nObject.defineProperty(exports, \"parseDateTime\", { enumerable: true, get: function () { return Parsing_1.parseDateTime; } });\nObject.defineProperty(exports, \"parseDayTimeDuration\", { enumerable: true, get: function () { return Parsing_1.parseDayTimeDuration; } });\nObject.defineProperty(exports, \"parseDuration\", { enumerable: true, get: function () { return Parsing_1.parseDuration; } });\nObject.defineProperty(exports, \"parseTime\", { enumerable: true, get: function () { return Parsing_1.parseTime; } });\nObject.defineProperty(exports, \"parseYearMonthDuration\", { enumerable: true, get: function () { return Parsing_1.parseYearMonthDuration; } });\nObject.defineProperty(exports, \"parseXSDDecimal\", { enumerable: true, get: function () { return Parsing_1.parseXSDDecimal; } });\nObject.defineProperty(exports, \"parseXSDFloat\", { enumerable: true, get: function () { return Parsing_1.parseXSDFloat; } });\nObject.defineProperty(exports, \"parseDate\", { enumerable: true, get: function () { return Parsing_1.parseDate; } });\nvar DateTimeHelpers_2 = require(\"./util/DateTimeHelpers\");\nObject.defineProperty(exports, \"trimToYearMonthDuration\", { enumerable: true, get: function () { return DateTimeHelpers_2.trimToYearMonthDuration; } });\nObject.defineProperty(exports, \"trimToDayTimeDuration\", { enumerable: true, get: function () { return DateTimeHelpers_2.trimToDayTimeDuration; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionBase = exports.ExpressionFunctionBase = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass ExpressionFunctionBase {\n    constructor({ arity, operator, apply }) {\n        this.arity = arity;\n        this.operator = operator;\n        this.apply = apply;\n    }\n    checkArity(args) {\n        if (Array.isArray(this.arity)) {\n            return this.arity.includes(args.length);\n        }\n        if (this.arity === Number.POSITIVE_INFINITY) {\n            // Infinity is used to represent var-args, so it's always correct.\n            return true;\n        }\n        return args.length === this.arity;\n    }\n}\nexports.ExpressionFunctionBase = ExpressionFunctionBase;\n/**\n * Varying kinds of functions take arguments of different types on which the\n * specific behaviour is dependant. Although their behaviour is often varying,\n * it is always relatively simple, and better suited for synced behaviour.\n * The types of their arguments are always terms, but might differ in\n * their term-type (eg: iri, literal),\n * their specific literal type (eg: string, integer),\n * their arity (see BNODE),\n * or even their specific numeric type (eg: integer, float).\n *\n * Examples include:\n *  - Arithmetic operations such as: *, -, /, +\n *  - Bool operators such as: =, !=, <=, <, ...\n *  - Functions such as: str, IRI\n *\n * See also: https://www.w3.org/TR/definitionTypesparql11-query/#func-rdfTerms\n * and https://www.w3.org/TR/sparql11-query/#OperatorMapping\n */\nclass TermFunctionBase extends ExpressionFunctionBase {\n    constructor({ arity, operator, overloads }) {\n        super({\n            arity,\n            operator,\n            apply: async ({ args, exprEval, mapping }) => this.applyOnTerms(await Promise.all(args.map(arg => exprEval.evaluatorExpressionEvaluation(arg, mapping))), exprEval),\n        });\n        this.supportsTermExpressions = true;\n        this.overloads = overloads;\n    }\n    applyOnTerms(args, exprEval) {\n        const concreteFunction = this.overloads.search(args, exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.superTypeProvider), exprEval.context.getSafe(context_entries_1.KeysInitQuery.functionArgumentsCache)) ?? this.handleInvalidTypes(args);\n        return concreteFunction(exprEval)(args);\n    }\n    handleInvalidTypes(args) {\n        throw new utils_expression_evaluator_1.InvalidArgumentTypes(args, this.operator);\n    }\n}\nexports.TermFunctionBase = TermFunctionBase;\n//# sourceMappingURL=Core.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactory\"), exports);\n__exportStar(require(\"./ActorFunctionFactoryDedicated\"), exports);\n__exportStar(require(\"./BusFunctionFactory\"), exports);\n__exportStar(require(\"./implementation/Core\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperation = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for query-operation events.\n *\n * Actor types:\n * * Input:  IActionQueryOperation:      A SPARQL Algebra operation.\n * * Test:   <none>\n * * Output: IActorQueryOperationOutput: A bindings stream.\n *\n * @see IActionQueryOperation\n * @see IQueryOperationResult\n */\nclass ActorQueryOperation extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cbqo:components/BusQueryOperation.jsonld#BusQueryOperation>} bus\n     *   \\ @defaultNested {Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorQueryOperation = ActorQueryOperation;\n//# sourceMappingURL=ActorQueryOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MetadataValidationState = void 0;\n/**\n * Reusable implementation for metadata validation states.\n */\nclass MetadataValidationState {\n    constructor() {\n        this.invalidateListeners = [];\n        this.valid = true;\n    }\n    addInvalidateListener(listener) {\n        this.invalidateListeners.push(listener);\n    }\n    invalidate() {\n        if (this.valid) {\n            this.valid = false;\n            for (const invalidateListener of this.invalidateListeners) {\n                invalidateListener();\n            }\n        }\n    }\n}\nexports.MetadataValidationState = MetadataValidationState;\n//# sourceMappingURL=MetadataValidationState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cachifyMetadata = exports.validateMetadataBindings = exports.validateMetadataQuads = exports.getMetadataBindings = exports.getMetadataQuads = void 0;\n/**\n * Return a cached callback to the metadata from the given quad stream as a promise.\n * @param data A quad stream.\n */\nfunction getMetadataQuads(data) {\n    return cachifyMetadata(() => new Promise((resolve, reject) => {\n        data.getProperty('metadata', (metadata) => resolve(metadata));\n        data.on('error', reject);\n    }).then(metadataRaw => validateMetadataQuads(metadataRaw)));\n}\nexports.getMetadataQuads = getMetadataQuads;\n/**\n * Return a cached callback to the metadata from the given bindings stream as a promise.\n * @param data A bindings stream.\n */\nfunction getMetadataBindings(data) {\n    return cachifyMetadata(() => new Promise((resolve, reject) => {\n        data.getProperty('metadata', (metadata) => resolve(metadata));\n        data.on('error', reject);\n    }).then(metadataRaw => validateMetadataBindings(metadataRaw)));\n}\nexports.getMetadataBindings = getMetadataBindings;\n/**\n * Ensure that the given raw metadata object contains all required metadata entries.\n * @param metadataRaw A raw metadata object.\n */\nfunction validateMetadataQuads(metadataRaw) {\n    for (const key of ['cardinality']) {\n        if (!(key in metadataRaw)) {\n            throw new Error(`Invalid metadata: missing ${key} in ${JSON.stringify(metadataRaw)}`);\n        }\n    }\n    return metadataRaw;\n}\nexports.validateMetadataQuads = validateMetadataQuads;\n/**\n * Ensure that the given raw metadata object contains all required metadata entries.\n * @param metadataRaw A raw metadata object.\n */\nfunction validateMetadataBindings(metadataRaw) {\n    for (const key of ['cardinality', 'variables']) {\n        if (!(key in metadataRaw)) {\n            throw new Error(`Invalid metadata: missing ${key} in ${JSON.stringify(metadataRaw)}`);\n        }\n    }\n    return metadataRaw;\n}\nexports.validateMetadataBindings = validateMetadataBindings;\n/**\n * Convert a metadata callback to a lazy callback where the response value is cached.\n * @param {() => Promise<IMetadata>} metadata A metadata callback\n * @return {() => Promise<{[p: string]: any}>} The callback where the response will be cached.\n */\nfunction cachifyMetadata(metadata) {\n    let lastReturn;\n    return () => {\n        if (!lastReturn) {\n            lastReturn = metadata();\n            lastReturn\n                .then(lastReturnValue => lastReturnValue.state.addInvalidateListener(() => {\n                lastReturn = undefined;\n            }))\n                .catch(() => {\n                // Ignore error\n            });\n        }\n        return lastReturn;\n    };\n}\nexports.cachifyMetadata = cachifyMetadata;\n//# sourceMappingURL=Utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MetadataValidationState\"), exports);\n__exportStar(require(\"./Utils\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationTyped = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst ActorQueryOperation_1 = require(\"./ActorQueryOperation\");\n/**\n * A base implementation for query operation actors for a specific operation type.\n */\nclass ActorQueryOperationTyped extends ActorQueryOperation_1.ActorQueryOperation {\n    constructor(args, operationName) {\n        super({ ...args, operationName });\n        if (!this.operationName) {\n            throw new Error('A valid \"operationName\" argument must be provided.');\n        }\n    }\n    async test(action) {\n        if (!action.operation) {\n            return (0, core_1.failTest)('Missing field \\'operation\\' in a query operation action.');\n        }\n        if (action.operation.type !== this.operationName) {\n            return (0, core_1.failTest)(`Actor ${this.name} only supports ${this.operationName} operations, but got ${action.operation.type}`);\n        }\n        const operation = action.operation;\n        return this.testOperation(operation, action.context);\n    }\n    async run(action, sideData) {\n        // Log to physical plan\n        const physicalQueryPlanLogger = action.context\n            .get(context_entries_1.KeysInitQuery.physicalQueryPlanLogger);\n        if (physicalQueryPlanLogger) {\n            physicalQueryPlanLogger.logOperation(action.operation.type, undefined, action.operation, action.context.get(context_entries_1.KeysInitQuery.physicalQueryPlanNode), this.name, {});\n            action.context = action.context.set(context_entries_1.KeysInitQuery.physicalQueryPlanNode, action.operation);\n        }\n        const operation = action.operation;\n        const subContext = action.context.set(context_entries_1.KeysQueryOperation.operation, operation);\n        const output = await this.runOperation(operation, subContext, sideData);\n        if ('metadata' in output) {\n            output.metadata = (0, utils_metadata_1.cachifyMetadata)(output.metadata);\n        }\n        return output;\n    }\n}\nexports.ActorQueryOperationTyped = ActorQueryOperationTyped;\n//# sourceMappingURL=ActorQueryOperationTyped.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationTypedMediated = void 0;\nconst ActorQueryOperationTyped_1 = require(\"./ActorQueryOperationTyped\");\n/**\n * A base implementation for query operation actors for a specific operation type that have a query operation mediator.\n */\nclass ActorQueryOperationTypedMediated extends ActorQueryOperationTyped_1.ActorQueryOperationTyped {\n    constructor(args, operationName) {\n        super(args, operationName);\n    }\n}\nexports.ActorQueryOperationTypedMediated = ActorQueryOperationTypedMediated;\n//# sourceMappingURL=ActorQueryOperationTypedMediated.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BusQueryOperation = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * Indexed bus for query operations.\n */\nclass BusQueryOperation extends core_1.BusIndexed {\n    constructor(args) {\n        super({\n            ...args,\n            actorIdentifierFields: ['operationName'],\n            actionIdentifierFields: ['operation', 'type'],\n        });\n    }\n}\nexports.BusQueryOperation = BusQueryOperation;\n//# sourceMappingURL=BusQueryOperation.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperation\"), exports);\n__exportStar(require(\"./ActorQueryOperationTyped\"), exports);\n__exportStar(require(\"./ActorQueryOperationTypedMediated\"), exports);\n__exportStar(require(\"./BusQueryOperation\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorContextPreprocess = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for context-preprocess events.\n *\n * Actor types:\n * * Input:  IAction:      A context that will be processed.\n * * Test:   <none>\n * * Output: IActorContextPreprocessOutput: The resulting context.\n *\n * @see IActionContextPreprocess\n * @see IActorContextPreprocessOutput\n */\nclass ActorContextPreprocess extends core_1.Actor {\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Context preprocessing failed} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorContextPreprocess = ActorContextPreprocess;\n//# sourceMappingURL=ActorContextPreprocess.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorContextPreprocess\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorContextPreprocessConvertShortcuts = void 0;\nconst bus_context_preprocess_1 = require(\"@comunica/bus-context-preprocess\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Convert Shortcuts Context Preprocess Actor.\n */\nclass ActorContextPreprocessConvertShortcuts extends bus_context_preprocess_1.ActorContextPreprocess {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        return {\n            context: ActorContextPreprocessConvertShortcuts.expandShortcuts(action.context, this.contextKeyShortcuts),\n        };\n    }\n    static expandShortcuts(context, contextKeyShortcuts) {\n        for (const key of context.keys()) {\n            if (contextKeyShortcuts[key.name]) {\n                context = context\n                    .set(new core_1.ActionContextKey(contextKeyShortcuts[key.name]), context.get(key))\n                    .delete(key);\n            }\n        }\n        return context;\n    }\n}\nexports.ActorContextPreprocessConvertShortcuts = ActorContextPreprocessConvertShortcuts;\n//# sourceMappingURL=ActorContextPreprocessConvertShortcuts.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorContextPreprocessConvertShortcuts\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorContextPreprocessSetDefaults = void 0;\nconst bus_context_preprocess_1 = require(\"@comunica/bus-context-preprocess\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\n/**\n * A comunica Set Defaults Context Preprocess Actor.\n */\nclass ActorContextPreprocessSetDefaults extends bus_context_preprocess_1.ActorContextPreprocess {\n    constructor(args) {\n        super(args);\n        this.defaultFunctionArgumentsCache = {};\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        let context = action.context;\n        if (action.initialize) {\n            // Set default values\n            context = context\n                .setDefault(context_entries_1.KeysInitQuery.queryTimestamp, new Date())\n                .setDefault(context_entries_1.KeysInitQuery.queryTimestampHighResolution, performance.now())\n                .setDefault(context_entries_1.KeysQuerySourceIdentify.sourceIds, new Map())\n                .setDefault(context_entries_1.KeysCore.log, this.logger)\n                .setDefault(context_entries_1.KeysInitQuery.functionArgumentsCache, this.defaultFunctionArgumentsCache)\n                .setDefault(context_entries_1.KeysQuerySourceIdentify.hypermediaSourcesAggregatedStores, new Map())\n                .setDefault(context_entries_1.KeysInitQuery.dataFactory, new rdf_data_factory_1.DataFactory());\n            // Handle default query format\n            let queryFormat = { language: 'sparql', version: '1.1' };\n            if (context.has(context_entries_1.KeysInitQuery.queryFormat)) {\n                queryFormat = context.get(context_entries_1.KeysInitQuery.queryFormat);\n                if (queryFormat.language === 'graphql') {\n                    context = context.setDefault(context_entries_1.KeysInitQuery.graphqlSingularizeVariables, {});\n                }\n            }\n            else {\n                context = context.set(context_entries_1.KeysInitQuery.queryFormat, queryFormat);\n            }\n        }\n        return { context };\n    }\n}\nexports.ActorContextPreprocessSetDefaults = ActorContextPreprocessSetDefaults;\n//# sourceMappingURL=ActorContextPreprocessSetDefaults.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorContextPreprocessSetDefaults\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorContextPreprocessSourceToDestination = void 0;\nconst bus_context_preprocess_1 = require(\"@comunica/bus-context-preprocess\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Source To Destination Context Preprocess Actor.\n */\nclass ActorContextPreprocessSourceToDestination extends bus_context_preprocess_1.ActorContextPreprocess {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        if (action.context.get(context_entries_1.KeysInitQuery.querySourcesUnidentified) &&\n            !action.context.get(context_entries_1.KeysRdfUpdateQuads.destination)) {\n            const sources = action.context.get(context_entries_1.KeysInitQuery.querySourcesUnidentified);\n            if (sources.length === 1) {\n                return { context: action.context.set(context_entries_1.KeysRdfUpdateQuads.destination, sources[0]) };\n            }\n        }\n        return action;\n    }\n}\nexports.ActorContextPreprocessSourceToDestination = ActorContextPreprocessSourceToDestination;\n//# sourceMappingURL=ActorContextPreprocessSourceToDestination.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorContextPreprocessSourceToDestination\"), exports);\n//# sourceMappingURL=index.js.map","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n  ? R.apply\n  : function ReflectApply(target, receiver, args) {\n    return Function.prototype.apply.call(target, receiver, args);\n  }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n  ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target)\n      .concat(Object.getOwnPropertySymbols(target));\n  };\n} else {\n  ReflectOwnKeys = function ReflectOwnKeys(target) {\n    return Object.getOwnPropertyNames(target);\n  };\n}\n\nfunction ProcessEmitWarning(warning) {\n  if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n  return value !== value;\n}\n\nfunction EventEmitter() {\n  EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n  if (typeof listener !== 'function') {\n    throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n  }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n  enumerable: true,\n  get: function() {\n    return defaultMaxListeners;\n  },\n  set: function(arg) {\n    if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n      throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n    }\n    defaultMaxListeners = arg;\n  }\n});\n\nEventEmitter.init = function() {\n\n  if (this._events === undefined ||\n      this._events === Object.getPrototypeOf(this)._events) {\n    this._events = Object.create(null);\n    this._eventsCount = 0;\n  }\n\n  this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n    throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n  }\n  this._maxListeners = n;\n  return this;\n};\n\nfunction _getMaxListeners(that) {\n  if (that._maxListeners === undefined)\n    return EventEmitter.defaultMaxListeners;\n  return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n  return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n  var args = [];\n  for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n  var doError = (type === 'error');\n\n  var events = this._events;\n  if (events !== undefined)\n    doError = (doError && events.error === undefined);\n  else if (!doError)\n    return false;\n\n  // If there is no 'error' event listener then throw.\n  if (doError) {\n    var er;\n    if (args.length > 0)\n      er = args[0];\n    if (er instanceof Error) {\n      // Note: The comments on the `throw` lines are intentional, they show\n      // up in Node's output if this results in an unhandled exception.\n      throw er; // Unhandled 'error' event\n    }\n    // At least give some kind of context to the user\n    var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n    err.context = er;\n    throw err; // Unhandled 'error' event\n  }\n\n  var handler = events[type];\n\n  if (handler === undefined)\n    return false;\n\n  if (typeof handler === 'function') {\n    ReflectApply(handler, this, args);\n  } else {\n    var len = handler.length;\n    var listeners = arrayClone(handler, len);\n    for (var i = 0; i < len; ++i)\n      ReflectApply(listeners[i], this, args);\n  }\n\n  return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n  var m;\n  var events;\n  var existing;\n\n  checkListener(listener);\n\n  events = target._events;\n  if (events === undefined) {\n    events = target._events = Object.create(null);\n    target._eventsCount = 0;\n  } else {\n    // To avoid recursion in the case that type === \"newListener\"! Before\n    // adding it to the listeners, first emit \"newListener\".\n    if (events.newListener !== undefined) {\n      target.emit('newListener', type,\n                  listener.listener ? listener.listener : listener);\n\n      // Re-assign `events` because a newListener handler could have caused the\n      // this._events to be assigned to a new object\n      events = target._events;\n    }\n    existing = events[type];\n  }\n\n  if (existing === undefined) {\n    // Optimize the case of one listener. Don't need the extra array object.\n    existing = events[type] = listener;\n    ++target._eventsCount;\n  } else {\n    if (typeof existing === 'function') {\n      // Adding the second element, need to change to array.\n      existing = events[type] =\n        prepend ? [listener, existing] : [existing, listener];\n      // If we've already got an array, just append.\n    } else if (prepend) {\n      existing.unshift(listener);\n    } else {\n      existing.push(listener);\n    }\n\n    // Check for listener leak\n    m = _getMaxListeners(target);\n    if (m > 0 && existing.length > m && !existing.warned) {\n      existing.warned = true;\n      // No error code for this since it is a Warning\n      // eslint-disable-next-line no-restricted-syntax\n      var w = new Error('Possible EventEmitter memory leak detected. ' +\n                          existing.length + ' ' + String(type) + ' listeners ' +\n                          'added. Use emitter.setMaxListeners() to ' +\n                          'increase limit');\n      w.name = 'MaxListenersExceededWarning';\n      w.emitter = target;\n      w.type = type;\n      w.count = existing.length;\n      ProcessEmitWarning(w);\n    }\n  }\n\n  return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n  return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n    function prependListener(type, listener) {\n      return _addListener(this, type, listener, true);\n    };\n\nfunction onceWrapper() {\n  if (!this.fired) {\n    this.target.removeListener(this.type, this.wrapFn);\n    this.fired = true;\n    if (arguments.length === 0)\n      return this.listener.call(this.target);\n    return this.listener.apply(this.target, arguments);\n  }\n}\n\nfunction _onceWrap(target, type, listener) {\n  var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n  var wrapped = onceWrapper.bind(state);\n  wrapped.listener = listener;\n  state.wrapFn = wrapped;\n  return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n  checkListener(listener);\n  this.on(type, _onceWrap(this, type, listener));\n  return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n    function prependOnceListener(type, listener) {\n      checkListener(listener);\n      this.prependListener(type, _onceWrap(this, type, listener));\n      return this;\n    };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n    function removeListener(type, listener) {\n      var list, events, position, i, originalListener;\n\n      checkListener(listener);\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      list = events[type];\n      if (list === undefined)\n        return this;\n\n      if (list === listener || list.listener === listener) {\n        if (--this._eventsCount === 0)\n          this._events = Object.create(null);\n        else {\n          delete events[type];\n          if (events.removeListener)\n            this.emit('removeListener', type, list.listener || listener);\n        }\n      } else if (typeof list !== 'function') {\n        position = -1;\n\n        for (i = list.length - 1; i >= 0; i--) {\n          if (list[i] === listener || list[i].listener === listener) {\n            originalListener = list[i].listener;\n            position = i;\n            break;\n          }\n        }\n\n        if (position < 0)\n          return this;\n\n        if (position === 0)\n          list.shift();\n        else {\n          spliceOne(list, position);\n        }\n\n        if (list.length === 1)\n          events[type] = list[0];\n\n        if (events.removeListener !== undefined)\n          this.emit('removeListener', type, originalListener || listener);\n      }\n\n      return this;\n    };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n    function removeAllListeners(type) {\n      var listeners, events, i;\n\n      events = this._events;\n      if (events === undefined)\n        return this;\n\n      // not listening for removeListener, no need to emit\n      if (events.removeListener === undefined) {\n        if (arguments.length === 0) {\n          this._events = Object.create(null);\n          this._eventsCount = 0;\n        } else if (events[type] !== undefined) {\n          if (--this._eventsCount === 0)\n            this._events = Object.create(null);\n          else\n            delete events[type];\n        }\n        return this;\n      }\n\n      // emit removeListener for all listeners on all events\n      if (arguments.length === 0) {\n        var keys = Object.keys(events);\n        var key;\n        for (i = 0; i < keys.length; ++i) {\n          key = keys[i];\n          if (key === 'removeListener') continue;\n          this.removeAllListeners(key);\n        }\n        this.removeAllListeners('removeListener');\n        this._events = Object.create(null);\n        this._eventsCount = 0;\n        return this;\n      }\n\n      listeners = events[type];\n\n      if (typeof listeners === 'function') {\n        this.removeListener(type, listeners);\n      } else if (listeners !== undefined) {\n        // LIFO order\n        for (i = listeners.length - 1; i >= 0; i--) {\n          this.removeListener(type, listeners[i]);\n        }\n      }\n\n      return this;\n    };\n\nfunction _listeners(target, type, unwrap) {\n  var events = target._events;\n\n  if (events === undefined)\n    return [];\n\n  var evlistener = events[type];\n  if (evlistener === undefined)\n    return [];\n\n  if (typeof evlistener === 'function')\n    return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n  return unwrap ?\n    unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n  return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n  return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n  if (typeof emitter.listenerCount === 'function') {\n    return emitter.listenerCount(type);\n  } else {\n    return listenerCount.call(emitter, type);\n  }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n  var events = this._events;\n\n  if (events !== undefined) {\n    var evlistener = events[type];\n\n    if (typeof evlistener === 'function') {\n      return 1;\n    } else if (evlistener !== undefined) {\n      return evlistener.length;\n    }\n  }\n\n  return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n  var copy = new Array(n);\n  for (var i = 0; i < n; ++i)\n    copy[i] = arr[i];\n  return copy;\n}\n\nfunction spliceOne(list, index) {\n  for (; index + 1 < list.length; index++)\n    list[index] = list[index + 1];\n  list.pop();\n}\n\nfunction unwrapListeners(arr) {\n  var ret = new Array(arr.length);\n  for (var i = 0; i < ret.length; ++i) {\n    ret[i] = arr[i].listener || arr[i];\n  }\n  return ret;\n}\n\nfunction once(emitter, name) {\n  return new Promise(function (resolve, reject) {\n    function errorListener(err) {\n      emitter.removeListener(name, resolver);\n      reject(err);\n    }\n\n    function resolver() {\n      if (typeof emitter.removeListener === 'function') {\n        emitter.removeListener('error', errorListener);\n      }\n      resolve([].slice.call(arguments));\n    };\n\n    eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n    if (name !== 'error') {\n      addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n    }\n  });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n  if (typeof emitter.on === 'function') {\n    eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n  }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n  if (typeof emitter.on === 'function') {\n    if (flags.once) {\n      emitter.once(name, listener);\n    } else {\n      emitter.on(name, listener);\n    }\n  } else if (typeof emitter.addEventListener === 'function') {\n    // EventTarget does not have `error` event semantics like Node\n    // EventEmitters, we do not listen for `error` events here.\n    emitter.addEventListener(name, function wrapListener(arg) {\n      // IE does not have builtin `{ once: true }` support so we\n      // have to do it manually.\n      if (flags.once) {\n        emitter.removeEventListener(name, wrapListener);\n      }\n      listener(arg);\n    });\n  } else {\n    throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n  }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkedList = void 0;\n/**\n * A list with O(1) push and shift operations.\n */\nclass LinkedList {\n    constructor() {\n        this._length = 0;\n        this._head = null;\n        this._tail = null;\n    }\n    get length() { return this._length; }\n    get first() { var _a; return (_a = this._head) === null || _a === void 0 ? void 0 : _a.value; }\n    get last() { var _a; return (_a = this._tail) === null || _a === void 0 ? void 0 : _a.value; }\n    get empty() { return this._head === null; }\n    push(value) {\n        const node = { value, next: null };\n        if (this._tail === null)\n            this._head = this._tail = node;\n        else\n            this._tail.next = this._tail = node;\n        this._length++;\n    }\n    shift() {\n        if (this._head === null)\n            return undefined;\n        const { value, next } = this._head;\n        this._head = next;\n        if (next === null)\n            this._tail = null;\n        this._length--;\n        return value;\n    }\n    clear() {\n        this._length = 0;\n        this._head = this._tail = null;\n    }\n}\nexports.LinkedList = LinkedList;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createTaskScheduler = void 0;\nconst resolved = Promise.resolve(undefined);\n// Returns a function that asynchronously schedules a task\nfunction createTaskScheduler() {\n    // Use or create a microtask scheduler\n    const scheduleMicrotask = typeof queueMicrotask === 'function' ?\n        queueMicrotask : (task) => resolved.then(task);\n    // Use or create a macrotask scheduler\n    const scheduleMacrotask = typeof setImmediate === 'function' ?\n        setImmediate : (task) => setTimeout(task, 0);\n    // Interrupt with a macrotask every once in a while to avoid freezing\n    let i = 0;\n    let queue = null;\n    return (task) => {\n        // Tasks are currently being queued to avoid freezing\n        if (queue !== null)\n            queue.push(task);\n        // Tasks are being scheduled normally as microtasks\n        else if (++i < 100)\n            scheduleMicrotask(task);\n        // A macrotask interruption is needed\n        else {\n            // Hold all tasks in a queue, and reschedule them after a macrotask\n            queue = [task];\n            scheduleMacrotask(() => {\n                // Work through the queue\n                for (const queued of queue)\n                    scheduleMicrotask(queued);\n                queue = null;\n                // Reset the interruption schedule\n                i = 0;\n            });\n        }\n    };\n}\nexports.createTaskScheduler = createTaskScheduler;\n","\"use strict\";\n/**\n * An asynchronous iterator library for advanced object pipelines\n * @module asynciterator\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isIterator = exports.isIterable = exports.isSourceExpression = exports.isPromise = exports.isEventEmitter = exports.isFunction = exports.range = exports.union = exports.fromIterable = exports.fromIterator = exports.fromArray = exports.single = exports.empty = exports.wrap = exports.WrappingIterator = exports.ClonedIterator = exports.UnionIterator = exports.MultiTransformIterator = exports.SimpleTransformIterator = exports.TransformIterator = exports.BufferedIterator = exports.MappingIterator = exports.DESTINATION = exports.identity = exports.IntegerIterator = exports.ArrayIterator = exports.SingletonIterator = exports.EmptyIterator = exports.AsyncIterator = exports.DESTROYED = exports.ENDED = exports.CLOSED = exports.CLOSING = exports.OPEN = exports.INIT = exports.setTaskScheduler = exports.getTaskScheduler = exports.scheduleTask = exports.LinkedList = void 0;\nconst events_1 = require(\"events\");\nconst linkedlist_1 = require(\"./linkedlist.js\");\nObject.defineProperty(exports, \"LinkedList\", { enumerable: true, get: function () { return linkedlist_1.LinkedList; } });\nconst taskscheduler_1 = require(\"./taskscheduler.js\");\nlet taskScheduler = taskscheduler_1.createTaskScheduler();\n/** Schedules the given task for asynchronous execution. */\nfunction scheduleTask(task) {\n    taskScheduler(task);\n}\nexports.scheduleTask = scheduleTask;\n/** Returns the asynchronous task scheduler. */\nfunction getTaskScheduler() {\n    return taskScheduler;\n}\nexports.getTaskScheduler = getTaskScheduler;\n/** Sets the asynchronous task scheduler. */\nfunction setTaskScheduler(scheduler) {\n    taskScheduler = scheduler;\n}\nexports.setTaskScheduler = setTaskScheduler;\n/**\n  ID of the INIT state.\n  An iterator is initializing if it is preparing main item generation.\n  It can already produce items.\n  @type integer\n*/\nexports.INIT = 1 << 0;\n/**\n  ID of the OPEN state.\n  An iterator is open if it can generate new items.\n  @type integer\n*/\nexports.OPEN = 1 << 1;\n/**\n  ID of the CLOSING state.\n  An iterator is closing if item generation is pending but will not be scheduled again.\n  @type integer\n*/\nexports.CLOSING = 1 << 2;\n/**\n  ID of the CLOSED state.\n  An iterator is closed if it no longer actively generates new items.\n  Items might still be available.\n  @type integer\n*/\nexports.CLOSED = 1 << 3;\n/**\n  ID of the ENDED state.\n  An iterator has ended if no further items will become available.\n  The 'end' event is guaranteed to have been called when in this state.\n  @type integer\n*/\nexports.ENDED = 1 << 4;\n/**\n  ID of the DESTROYED state.\n  An iterator has been destroyed\n  after calling {@link module:asynciterator.AsyncIterator#destroy}.\n  The 'end' event has not been called, as pending elements were voided.\n  @type integer\n*/\nexports.DESTROYED = 1 << 5;\n/**\n  An asynchronous iterator provides pull-based access to a stream of objects.\n  @extends module:asynciterator.EventEmitter\n*/\nclass AsyncIterator extends events_1.EventEmitter {\n    /** Creates a new `AsyncIterator`. */\n    constructor(initialState = exports.OPEN) {\n        super();\n        this._readable = false;\n        this._state = initialState;\n        this.on('newListener', waitForDataListener);\n    }\n    /**\n      Changes the iterator to the given state if possible and necessary,\n      possibly emitting events to signal that change.\n      @protected\n      @param {integer} newState The ID of the new state\n      @param {boolean} [eventAsync=false] Whether resulting events should be emitted asynchronously\n      @returns {boolean} Whether the state was changed\n      @emits module:asynciterator.AsyncIterator.end\n    */\n    _changeState(newState, eventAsync = false) {\n        // Validate the state change\n        const valid = newState > this._state && this._state < exports.ENDED;\n        if (valid) {\n            this._state = newState;\n            // Emit the `end` event when changing to ENDED\n            if (newState === exports.ENDED) {\n                if (!eventAsync)\n                    this.emit('end');\n                else\n                    taskScheduler(() => this.emit('end'));\n            }\n        }\n        return valid;\n    }\n    /**\n      Tries to read the next item from the iterator.\n      This is the main method for reading the iterator in _on-demand mode_,\n      where new items are only created when needed by consumers.\n      If no items are currently available, this methods returns `null`.\n      The {@link module:asynciterator.event:readable} event\n      will then signal when new items might be ready.\n      To read all items from the iterator,\n      switch to _flow mode_ by subscribing\n      to the {@link module:asynciterator.event:data} event.\n      When in flow mode, do not use the `read` method.\n      @returns {object?} The next item, or `null` if none is available\n    */\n    read() {\n        return null;\n    }\n    /**\n      The iterator emits a `readable` event when it might have new items available\n      after having had no items available right before this event.\n      If the iterator is not in flow mode, items can be retrieved\n      by calling {@link module:asynciterator.AsyncIterator#read}.\n      @event module:asynciterator.readable\n    */\n    /**\n      The iterator emits a `data` event with a new item as soon as it becomes available.\n      When one or more listeners are attached to the `data` event,\n      the iterator switches to _flow mode_,\n      generating and emitting new items as fast as possible.\n      This drains the source and might create backpressure on the consumers,\n      so only subscribe to this event if this behavior is intended.\n      In flow mode, don't use {@link module:asynciterator.AsyncIterator#read}.\n      To switch back to _on-demand mode_, remove all listeners from the `data` event.\n      You can then obtain items through `read` again.\n      @event module:asynciterator.data\n      @param {object} item The new item\n    */\n    /**\n      Invokes the callback for each remaining item in the iterator.\n      Switches the iterator to flow mode.\n      @param {Function} callback A function that will be called with each item\n      @param {object?} self The `this` pointer for the callback\n    */\n    forEach(callback, self) {\n        this.on('data', bind(callback, self));\n    }\n    /**\n      Stops the iterator from generating new items.\n      Already generated items or terminating items can still be emitted.\n      After this, the iterator will end asynchronously.\n      @emits module:asynciterator.AsyncIterator.end\n    */\n    close() {\n        if (this._changeState(exports.CLOSED))\n            this._endAsync();\n    }\n    /**\n      Destroy the iterator and stop it from generating new items.\n      This will not do anything if the iterator was already ended or destroyed.\n      All internal resources will be released an no new items will be emitted,\n      even not already generated items.\n      Implementors should not override this method,\n      but instead implement {@link module:asynciterator.AsyncIterator#_destroy}.\n      @param {Error} [cause] An optional error to emit.\n      @emits module:asynciterator.AsyncIterator.end\n      @emits module:asynciterator.AsyncIterator.error Only if an error is passed.\n    */\n    destroy(cause) {\n        if (!this.done) {\n            this._destroy(cause, error => {\n                cause = cause || error;\n                if (cause)\n                    this.emit('error', cause);\n                this._end(true);\n            });\n        }\n    }\n    /**\n      Called by {@link module:asynciterator.AsyncIterator#destroy}.\n      Implementers can override this, but this should not be called directly.\n      @param {?Error} cause The reason why the iterator is destroyed.\n      @param {Function} callback A callback function with an optional error argument.\n    */\n    _destroy(cause, callback) {\n        callback();\n    }\n    /**\n      Ends the iterator and cleans up.\n      Should never be called before {@link module:asynciterator.AsyncIterator#close};\n      typically, `close` is responsible for calling `_end`.\n      @param {boolean} [destroy] If the iterator should be forcefully destroyed.\n      @protected\n      @emits module:asynciterator.AsyncIterator.end\n    */\n    _end(destroy = false) {\n        if (this._changeState(destroy ? exports.DESTROYED : exports.ENDED)) {\n            this._readable = false;\n            this.removeAllListeners('readable');\n            this.removeAllListeners('data');\n            this.removeAllListeners('end');\n        }\n    }\n    /**\n      Asynchronously calls `_end`.\n      @protected\n    */\n    _endAsync() {\n        taskScheduler(() => this._end());\n    }\n    /**\n      The `end` event is emitted after the last item of the iterator has been read.\n      @event module:asynciterator.end\n    */\n    /**\n      Gets or sets whether this iterator might have items available for read.\n      A value of `false` means there are _definitely_ no items available;\n      a value of `true` means items _might_ be available.\n      @type boolean\n      @emits module:asynciterator.AsyncIterator.readable\n    */\n    get readable() {\n        return this._readable;\n    }\n    set readable(readable) {\n        readable = Boolean(readable) && !this.done;\n        // Set the readable value only if it has changed\n        if (this._readable !== readable) {\n            this._readable = readable;\n            // If the iterator became readable, emit the `readable` event\n            if (readable)\n                taskScheduler(() => this.emit('readable'));\n        }\n    }\n    /**\n      Gets whether the iterator has stopped generating new items.\n      @type boolean\n      @readonly\n    */\n    get closed() {\n        return this._state >= exports.CLOSING;\n    }\n    /**\n      Gets whether the iterator has finished emitting items.\n      @type boolean\n      @readonly\n    */\n    get ended() {\n        return this._state === exports.ENDED;\n    }\n    /**\n      Gets whether the iterator has been destroyed.\n      @type boolean\n      @readonly\n    */\n    get destroyed() {\n        return this._state === exports.DESTROYED;\n    }\n    /**\n      Gets whether the iterator will not emit anymore items,\n      either due to being closed or due to being destroyed.\n      @type boolean\n      @readonly\n    */\n    get done() {\n        return this._state >= exports.ENDED;\n    }\n    /* Generates a textual representation of the iterator. */\n    toString() {\n        const details = this._toStringDetails();\n        return `[${this.constructor.name}${details ? ` ${details}` : ''}]`;\n    }\n    /**\n      Generates details for a textual representation of the iterator.\n      @protected\n    */\n    _toStringDetails() {\n        return '';\n    }\n    /**\n      Consume all remaining items of the iterator into an array that will be returned asynchronously.\n      @param {object} [options] Settings for array creation\n      @param {integer} [options.limit] The maximum number of items to place in the array.\n     */\n    toArray(options) {\n        const items = [];\n        const limit = typeof (options === null || options === void 0 ? void 0 : options.limit) === 'number' ? options.limit : Infinity;\n        return this.ended || limit <= 0 ? Promise.resolve(items) : new Promise((resolve, reject) => {\n            // Collect and return all items up to the limit\n            const resolveItems = () => resolve(items);\n            const pushItem = (item) => {\n                items.push(item);\n                if (items.length >= limit) {\n                    this.removeListener('error', reject);\n                    this.removeListener('data', pushItem);\n                    this.removeListener('end', resolveItems);\n                    resolve(items);\n                }\n            };\n            // Start item collection\n            this.on('error', reject);\n            this.on('data', pushItem);\n            this.on('end', resolveItems);\n        });\n    }\n    /**\n      Retrieves the property with the given name from the iterator.\n      If no callback is passed, it returns the value of the property\n      or `undefined` if the property is not set.\n      If a callback is passed, it returns `undefined`\n      and calls the callback with the property the moment it is set.\n      @param {string} propertyName The name of the property to retrieve\n      @param {Function?} [callback] A one-argument callback to receive the property value\n      @returns {object?} The value of the property (if set and no callback is given)\n    */\n    getProperty(propertyName, callback) {\n        const properties = this._properties;\n        // If no callback was passed, return the property value\n        if (!callback)\n            return properties && properties[propertyName];\n        // If the value has been set, send it through the callback\n        if (properties && (propertyName in properties)) {\n            taskScheduler(() => callback(properties[propertyName]));\n        }\n        // If the value was not set, store the callback for when the value will be set\n        else {\n            let propertyCallbacks;\n            if (!(propertyCallbacks = this._propertyCallbacks))\n                this._propertyCallbacks = propertyCallbacks = Object.create(null);\n            if (propertyName in propertyCallbacks)\n                propertyCallbacks[propertyName].push(callback);\n            else\n                propertyCallbacks[propertyName] = [callback];\n        }\n        return undefined;\n    }\n    /**\n      Sets the property with the given name to the value.\n      @param {string} propertyName The name of the property to set\n      @param {object?} value The new value of the property\n    */\n    setProperty(propertyName, value) {\n        const properties = this._properties || (this._properties = Object.create(null));\n        properties[propertyName] = value;\n        // Execute getter callbacks that were waiting for this property to be set\n        const propertyCallbacks = this._propertyCallbacks || {};\n        const callbacks = propertyCallbacks[propertyName];\n        if (callbacks) {\n            delete propertyCallbacks[propertyName];\n            taskScheduler(() => {\n                for (const callback of callbacks)\n                    callback(value);\n            });\n            // Remove _propertyCallbacks if no pending callbacks are left\n            for (propertyName in propertyCallbacks)\n                return;\n            delete this._propertyCallbacks;\n        }\n    }\n    /**\n      Retrieves all properties of the iterator.\n      @returns {object} An object with property names as keys.\n    */\n    getProperties() {\n        const properties = this._properties;\n        const copy = {};\n        for (const name in properties)\n            copy[name] = properties[name];\n        return copy;\n    }\n    /**\n      Sets all of the given properties.\n      @param {object} properties Key/value pairs of properties to set\n    */\n    setProperties(properties) {\n        for (const propertyName in properties)\n            this.setProperty(propertyName, properties[propertyName]);\n    }\n    /**\n      Copies the given properties from the source iterator.\n      @param {module:asynciterator.AsyncIterator} source The iterator to copy from\n      @param {Array} propertyNames List of property names to copy\n    */\n    copyProperties(source, propertyNames) {\n        for (const propertyName of propertyNames) {\n            source.getProperty(propertyName, value => this.setProperty(propertyName, value));\n        }\n    }\n    /**\n      Transforms items from this iterator.\n      After this operation, only read the returned iterator instead of the current one.\n      @param {object|Function} [options] Settings of the iterator, or the transformation function\n      @param {integer} [options.maxbufferSize=4] The maximum number of items to keep in the buffer\n      @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n      @param {integer} [options.offset] The number of items to skip\n      @param {integer} [options.limit] The maximum number of items\n      @param {Function} [options.filter] A function to synchronously filter items from the source\n      @param {Function} [options.map] A function to synchronously transform items from the source\n      @param {Function} [options.transform] A function to asynchronously transform items from the source\n      @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its mapping yields `null` or its transformation yields no items\n      @param {Array|module:asynciterator.AsyncIterator} [options.prepend] Items to insert before the source items\n      @param {Array|module:asynciterator.AsyncIterator} [options.append]  Items to insert after the source items\n      @returns {module:asynciterator.AsyncIterator} A new iterator that maps the items from this iterator\n    */\n    transform(options) {\n        return new SimpleTransformIterator(this, options);\n    }\n    /**\n      Maps items from this iterator using the given function.\n      After this operation, only read the returned iterator instead of the current one.\n      @param {Function} map A mapping function to call on this iterator's (remaining) items\n      @param {object?} self The `this` pointer for the mapping function\n      @returns {module:asynciterator.AsyncIterator} A new iterator that maps the items from this iterator\n    */\n    map(map, self) {\n        return new MappingIterator(this, bind(map, self));\n    }\n    filter(filter, self) {\n        return this.map(function (item) {\n            return filter.call(self || this, item) ? item : null;\n        });\n    }\n    /**\n     * Returns a new iterator containing all of the unique items in the original iterator.\n     * @param by - The derived value by which to determine uniqueness (e.g., stringification).\n                   Defaults to the identity function.\n     * @returns An iterator with duplicates filtered out.\n     */\n    uniq(by = identity) {\n        const uniques = new Set();\n        return this.filter(function (item) {\n            const hashed = by.call(this, item);\n            if (!uniques.has(hashed)) {\n                uniques.add(hashed);\n                return true;\n            }\n            return false;\n        });\n    }\n    /**\n      Prepends the items after those of the current iterator.\n      After this operation, only read the returned iterator instead of the current one.\n      @param {Array|module:asynciterator.AsyncIterator} items Items to insert before this iterator's (remaining) items\n      @returns {module:asynciterator.AsyncIterator} A new iterator that prepends items to this iterator\n    */\n    prepend(items) {\n        return this.transform({ prepend: items });\n    }\n    /**\n      Appends the items after those of the current iterator.\n      After this operation, only read the returned iterator instead of the current one.\n      @param {Array|module:asynciterator.AsyncIterator} items Items to insert after this iterator's (remaining) items\n      @returns {module:asynciterator.AsyncIterator} A new iterator that appends items to this iterator\n    */\n    append(items) {\n        return this.transform({ append: items });\n    }\n    /**\n      Surrounds items of the current iterator with the given items.\n      After this operation, only read the returned iterator instead of the current one.\n      @param {Array|module:asynciterator.AsyncIterator} prepend Items to insert before this iterator's (remaining) items\n      @param {Array|module:asynciterator.AsyncIterator} append Items to insert after this iterator's (remaining) items\n      @returns {module:asynciterator.AsyncIterator} A new iterator that appends and prepends items to this iterator\n    */\n    surround(prepend, append) {\n        return this.transform({ prepend, append });\n    }\n    /**\n      Skips the given number of items from the current iterator.\n      The current iterator may not be read anymore until the returned iterator ends.\n      @param {integer} offset The number of items to skip\n      @returns {module:asynciterator.AsyncIterator} A new iterator that skips the given number of items\n    */\n    skip(offset) {\n        return this.map(item => offset-- > 0 ? null : item);\n    }\n    /**\n      Limits the current iterator to the given number of items.\n      The current iterator may not be read anymore until the returned iterator ends.\n      @param {integer} limit The maximum number of items\n      @returns {module:asynciterator.AsyncIterator} A new iterator with at most the given number of items\n    */\n    take(limit) {\n        return this.transform({ limit });\n    }\n    /**\n      Limits the current iterator to the given range.\n      The current iterator may not be read anymore until the returned iterator ends.\n      @param {integer} start Index of the first item to return\n      @param {integer} end Index of the last item to return\n      @returns {module:asynciterator.AsyncIterator} A new iterator with items in the given range\n    */\n    range(start, end) {\n        return this.transform({ offset: start, limit: Math.max(end - start + 1, 0) });\n    }\n    /**\n      Creates a copy of the current iterator,\n      containing all items emitted from this point onward.\n      Further copies can be created; they will all start from this same point.\n      After this operation, only read the returned copies instead of the original iterator.\n      @returns {module:asynciterator.AsyncIterator} A new iterator that contains all future items of this iterator\n    */\n    clone() {\n        return new ClonedIterator(this);\n    }\n    /**\n     * An AsyncIterator is async iterable.\n     * This allows iterators to be used via the for-await syntax.\n     *\n     * In cases where the returned EcmaScript AsyncIterator will not be fully consumed,\n     * it is recommended to manually listen for error events on the main AsyncIterator\n     * to avoid uncaught error messages.\n     *\n     * @returns {ESAsyncIterator<T>} An EcmaScript AsyncIterator\n     */\n    [Symbol.asyncIterator]() {\n        const it = this;\n        let currentResolve = null;\n        let currentReject = null;\n        let pendingError = null;\n        it.addListener('readable', tryResolve);\n        it.addListener('end', tryResolve);\n        it.addListener('error', tryReject);\n        // Tries to emit an item or signal the end of the iterator\n        function tryResolve() {\n            if (currentResolve !== null) {\n                if (pendingError !== null) {\n                    tryReject(pendingError);\n                }\n                else if (it.done) {\n                    currentResolve({ done: true, value: undefined });\n                    currentResolve = currentReject = null;\n                    removeListeners();\n                }\n                else {\n                    const value = it.read();\n                    if (value !== null) {\n                        currentResolve({ done: false, value });\n                        currentResolve = currentReject = null;\n                    }\n                }\n            }\n        }\n        // Tries to emit an error\n        function tryReject(error) {\n            if (currentReject !== null) {\n                currentReject(error);\n                currentResolve = currentReject = pendingError = null;\n                removeListeners();\n            }\n            else if (pendingError === null) {\n                pendingError = error;\n            }\n        }\n        // Cleans up all attached listeners\n        function removeListeners() {\n            it.removeListener('readable', tryResolve);\n            it.removeListener('end', tryResolve);\n            it.removeListener('error', tryReject);\n        }\n        // An EcmaScript AsyncIterator exposes the next() function that can be invoked repeatedly\n        return {\n            next() {\n                return new Promise((resolve, reject) => {\n                    currentResolve = resolve;\n                    currentReject = reject;\n                    tryResolve();\n                });\n            },\n        };\n    }\n}\nexports.AsyncIterator = AsyncIterator;\n// Starts emitting `data` events when `data` listeners are added\nfunction waitForDataListener(eventName) {\n    if (eventName === 'data') {\n        this.removeListener('newListener', waitForDataListener);\n        addSingleListener(this, 'readable', emitData);\n        if (this.readable)\n            taskScheduler(() => emitData.call(this));\n    }\n}\n// Emits new items though `data` events as long as there are `data` listeners\nfunction emitData() {\n    // While there are `data` listeners and items, emit them\n    let item;\n    while (this.listenerCount('data') !== 0 && (item = this.read()) !== null)\n        this.emit('data', item);\n    // Stop draining the source if there are no more `data` listeners\n    if (this.listenerCount('data') === 0 && !this.done) {\n        this.removeListener('readable', emitData);\n        addSingleListener(this, 'newListener', waitForDataListener);\n    }\n}\n// Adds the listener to the event, if it has not been added previously.\nfunction addSingleListener(source, eventName, listener) {\n    if (!source.listeners(eventName).includes(listener))\n        source.on(eventName, listener);\n}\n/**\n  An iterator that doesn't emit any items.\n  @extends module:asynciterator.AsyncIterator\n*/\nclass EmptyIterator extends AsyncIterator {\n    /** Creates a new `EmptyIterator`. */\n    constructor() {\n        super();\n        this._changeState(exports.ENDED, true);\n    }\n}\nexports.EmptyIterator = EmptyIterator;\n/**\n  An iterator that emits a single item.\n  @extends module:asynciterator.AsyncIterator\n*/\nclass SingletonIterator extends AsyncIterator {\n    /**\n      Creates a new `SingletonIterator`.\n      @param {object} item The item that will be emitted.\n    */\n    constructor(item) {\n        super();\n        this._item = item;\n        if (item === null)\n            this.close();\n        else\n            this.readable = true;\n    }\n    /* Reads the item from the iterator. */\n    read() {\n        const item = this._item;\n        this._item = null;\n        this.close();\n        return item;\n    }\n    /* Generates details for a textual representation of the iterator. */\n    _toStringDetails() {\n        return this._item === null ? '' : `(${this._item})`;\n    }\n}\nexports.SingletonIterator = SingletonIterator;\n/**\n  An iterator that emits the items of a given array.\n  @extends module:asynciterator.AsyncIterator\n*/\nclass ArrayIterator extends AsyncIterator {\n    /**\n      Creates a new `ArrayIterator`.\n      @param {Array} items The items that will be emitted.\n      @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n      @param {boolean} [options.preserve=true] If false, the passed array can be safely modified\n    */\n    constructor(items = [], { autoStart = true, preserve = true } = {}) {\n        super();\n        const buffer = preserve || !Array.isArray(items) ? [...items] : items;\n        this._index = 0;\n        this._sourceStarted = autoStart !== false;\n        this._truncateThreshold = preserve ? -1 : 64;\n        if (this._sourceStarted && buffer.length === 0)\n            this.close();\n        else\n            this._buffer = buffer;\n        this.readable = true;\n    }\n    /* Reads an item from the iterator. */\n    read() {\n        if (!this._sourceStarted)\n            this._sourceStarted = true;\n        let item = null;\n        if (this._buffer) {\n            // Emit the current item\n            if (this._index < this._buffer.length)\n                item = this._buffer[this._index++];\n            // Close when all elements have been returned\n            if (this._index === this._buffer.length) {\n                delete this._buffer;\n                this.close();\n            }\n            // Do need keep old items around indefinitely\n            else if (this._index === this._truncateThreshold) {\n                this._buffer.splice(0, this._truncateThreshold);\n                this._index = 0;\n            }\n        }\n        return item;\n    }\n    /* Generates details for a textual representation of the iterator. */\n    _toStringDetails() {\n        return `(${this._buffer ? this._buffer.length - this._index : 0})`;\n    }\n    /* Called by {@link module:asynciterator.AsyncIterator#destroy} */\n    _destroy(cause, callback) {\n        delete this._buffer;\n        callback();\n    }\n    /**\n     Consume all remaining items of the iterator into an array that will be returned asynchronously.\n     @param {object} [options] Settings for array creation\n     @param {integer} [options.limit] The maximum number of items to place in the array.\n     */\n    toArray(options = {}) {\n        if (!this._buffer)\n            return Promise.resolve([]);\n        // Determine start and end index\n        const { length } = this._buffer;\n        const start = this._index;\n        const end = typeof options.limit !== 'number' ? length : start + options.limit;\n        // Slice the items off the buffer\n        const items = this._buffer.slice(start, end);\n        this._index = end;\n        // Close this iterator when we're past the end\n        if (end >= length)\n            this.close();\n        return Promise.resolve(items);\n    }\n}\nexports.ArrayIterator = ArrayIterator;\n/**\n  An iterator that enumerates integers in a certain range.\n  @extends module:asynciterator.AsyncIterator\n*/\nclass IntegerIterator extends AsyncIterator {\n    /**\n      Creates a new `IntegerIterator`.\n      @param {object} [options] Settings of the iterator\n      @param {integer} [options.start=0] The first number to emit\n      @param {integer} [options.end=Infinity] The last number to emit\n      @param {integer} [options.step=1] The increment between two numbers\n    */\n    constructor({ start = 0, step = 1, end } = {}) {\n        super();\n        // Determine the first number\n        if (Number.isFinite(start))\n            start = Math.trunc(start);\n        this._next = start;\n        // Determine step size\n        if (Number.isFinite(step))\n            step = Math.trunc(step);\n        this._step = step;\n        // Determine the last number\n        const ascending = step >= 0;\n        const direction = ascending ? Infinity : -Infinity;\n        if (Number.isFinite(end))\n            end = Math.trunc(end);\n        else if (end !== -direction)\n            end = direction;\n        this._last = end;\n        // Start iteration if there is at least one item; close otherwise\n        if (!Number.isFinite(start) || (ascending ? start > end : start < end))\n            this.close();\n        else\n            this.readable = true;\n    }\n    /* Reads an item from the iterator. */\n    read() {\n        if (this.closed)\n            return null;\n        const current = this._next, step = this._step, last = this._last, next = this._next += step;\n        if (step >= 0 ? next > last : next < last)\n            this.close();\n        return current;\n    }\n    /* Generates details for a textual representation of the iterator. */\n    _toStringDetails() {\n        return `(${this._next}...${this._last})`;\n    }\n}\nexports.IntegerIterator = IntegerIterator;\n/** Function that maps an element to itself. */\nfunction identity(item) {\n    return item;\n}\nexports.identity = identity;\n/** Key indicating the current consumer of a source. */\nexports.DESTINATION = Symbol('destination');\n/**\n An iterator that synchronously transforms every item from its source\n by applying a mapping function.\n @extends module:asynciterator.AsyncIterator\n*/\nclass MappingIterator extends AsyncIterator {\n    /**\n     * Applies the given mapping to the source iterator.\n     */\n    constructor(source, map = identity, options = {}) {\n        super();\n        this._map = map;\n        this._source = ensureSourceAvailable(source);\n        this._destroySource = options.destroySource !== false;\n        // Close if the source is already empty\n        if (source.done) {\n            this.close();\n        }\n        // Otherwise, wire up the source for reading\n        else {\n            this._source[exports.DESTINATION] = this;\n            this._source.on('end', destinationClose);\n            this._source.on('error', destinationEmitError);\n            this._source.on('readable', destinationSetReadable);\n            this.readable = this._source.readable;\n        }\n    }\n    /* Tries to read the next item from the iterator. */\n    read() {\n        if (!this.done) {\n            // Try to read an item that maps to a non-null value\n            if (this._source.readable) {\n                let item, mapped;\n                while ((item = this._source.read()) !== null) {\n                    if ((mapped = this._map(item)) !== null)\n                        return mapped;\n                }\n            }\n            this.readable = false;\n            // Close this iterator if the source is empty\n            if (this._source.done)\n                this.close();\n        }\n        return null;\n    }\n    /* Cleans up the source iterator and ends. */\n    _end(destroy) {\n        this._source.removeListener('end', destinationClose);\n        this._source.removeListener('error', destinationEmitError);\n        this._source.removeListener('readable', destinationSetReadable);\n        delete this._source[exports.DESTINATION];\n        if (this._destroySource)\n            this._source.destroy();\n        super._end(destroy);\n    }\n}\nexports.MappingIterator = MappingIterator;\n// Validates an AsyncIterator for use as a source within another AsyncIterator\nfunction ensureSourceAvailable(source, allowDestination = false) {\n    if (!source || !isFunction(source.read) || !isFunction(source.on))\n        throw new TypeError(`Invalid source: ${source}`);\n    if (!allowDestination && source[exports.DESTINATION])\n        throw new Error('The source already has a destination');\n    return source;\n}\n/**\n  An iterator that maintains an internal buffer of items.\n  This class serves as a base class for other iterators\n  with a typically complex item generation process.\n  @extends module:asynciterator.AsyncIterator\n*/\nclass BufferedIterator extends AsyncIterator {\n    /**\n      Creates a new `BufferedIterator`.\n      @param {object} [options] Settings of the iterator\n      @param {integer} [options.maxBufferSize=4] The number of items to preload in the internal buffer\n      @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n    */\n    constructor({ maxBufferSize = 4, autoStart = true } = {}) {\n        super(exports.INIT);\n        this._buffer = new linkedlist_1.LinkedList();\n        this._maxBufferSize = 4;\n        this._reading = true;\n        this._pushedCount = 0;\n        this.maxBufferSize = maxBufferSize;\n        taskScheduler(() => this._init(autoStart));\n        this._sourceStarted = autoStart !== false;\n    }\n    /**\n      The maximum number of items to preload in the internal buffer.\n      A `BufferedIterator` tries to fill its buffer as far as possible.\n      Set to `Infinity` to fully drain the source.\n      @type number\n    */\n    get maxBufferSize() {\n        return this._maxBufferSize;\n    }\n    set maxBufferSize(maxBufferSize) {\n        // Allow only positive integers and infinity\n        if (maxBufferSize !== Infinity) {\n            maxBufferSize = !Number.isFinite(maxBufferSize) ? 4 :\n                Math.max(Math.trunc(maxBufferSize), 1);\n        }\n        // Only set the maximum buffer size if it changes\n        if (this._maxBufferSize !== maxBufferSize) {\n            this._maxBufferSize = maxBufferSize;\n            // Ensure sufficient elements are buffered\n            if (this._state === exports.OPEN)\n                this._fillBuffer();\n        }\n    }\n    /**\n      Initializing the iterator by calling {@link BufferedIterator#_begin}\n      and changing state from INIT to OPEN.\n      @protected\n      @param {boolean} autoStart Whether reading of items should immediately start after OPEN.\n    */\n    _init(autoStart) {\n        // Perform initialization tasks\n        let doneCalled = false;\n        this._reading = true;\n        this._begin(() => {\n            if (doneCalled)\n                throw new Error('done callback called multiple times');\n            doneCalled = true;\n            // Open the iterator and start buffering\n            this._reading = false;\n            this._changeState(exports.OPEN);\n            if (autoStart)\n                this._fillBufferAsync();\n            // If reading should not start automatically, the iterator doesn't become readable.\n            // Therefore, mark the iterator as (potentially) readable so consumers know it might be read.\n            else\n                this.readable = true;\n        });\n    }\n    /**\n      Writes beginning items and opens iterator resources.\n      Should never be called before {@link BufferedIterator#_init};\n      typically, `_init` is responsible for calling `_begin`.\n      @protected\n      @param {function} done To be called when initialization is complete\n    */\n    _begin(done) {\n        done();\n    }\n    /**\n      Tries to read the next item from the iterator.\n      If the buffer is empty,\n      this method calls {@link BufferedIterator#_read} to fetch items.\n      @returns {object?} The next item, or `null` if none is available\n    */\n    read() {\n        if (this.done)\n            return null;\n        // An explicit read kickstarts the source\n        if (!this._sourceStarted)\n            this._sourceStarted = true;\n        // Try to retrieve an item from the buffer\n        const buffer = this._buffer;\n        let item;\n        if (buffer.empty) {\n            item = null;\n            this.readable = false;\n        }\n        else {\n            item = buffer.shift();\n        }\n        // If the buffer is becoming empty, either fill it or end the iterator\n        if (!this._reading && buffer.length < this._maxBufferSize) {\n            // If the iterator is not closed and thus may still generate new items, fill the buffer\n            if (!this.closed)\n                this._fillBufferAsync();\n            // No new items will be generated, so if none are buffered, the iterator ends here\n            else if (buffer.empty)\n                this._endAsync();\n        }\n        return item;\n    }\n    /**\n      Tries to generate the given number of items.\n      Implementers should add `count` items through {@link BufferedIterator#_push}.\n      @protected\n      @param {integer} count The number of items to generate\n      @param {function} done To be called when reading is complete\n    */\n    _read(count, done) {\n        done();\n    }\n    /**\n      Adds an item to the internal buffer.\n      @protected\n      @param {object} item The item to add\n      @emits module:asynciterator.AsyncIterator.readable\n    */\n    _push(item) {\n        if (!this.done) {\n            this._pushedCount++;\n            this._buffer.push(item);\n            this.readable = true;\n        }\n    }\n    /**\n      Fills the internal buffer until `this._maxBufferSize` items are present.\n      This method calls {@link BufferedIterator#_read} to fetch items.\n      @protected\n      @emits module:asynciterator.AsyncIterator.readable\n    */\n    _fillBuffer() {\n        let neededItems;\n        // Avoid recursive reads\n        if (this._reading) {\n            // Do nothing\n        }\n        // If iterator closing started in the meantime, don't generate new items anymore\n        else if (this.closed) {\n            this._completeClose();\n        }\n        // Otherwise, try to fill empty spaces in the buffer by generating new items\n        else if ((neededItems = Math.min(this._maxBufferSize - this._buffer.length, 128)) > 0) {\n            // Acquire reading lock and start reading, counting pushed items\n            this._pushedCount = 0;\n            this._reading = true;\n            this._read(neededItems, () => {\n                // Verify the callback is only called once\n                if (!neededItems)\n                    throw new Error('done callback called multiple times');\n                neededItems = 0;\n                // Release reading lock\n                this._reading = false;\n                // If the iterator was closed while reading, complete closing\n                if (this.closed) {\n                    this._completeClose();\n                }\n                // If the iterator pushed one or more items,\n                // it might currently be able to generate additional items\n                // (even though all pushed items might already have been read)\n                else if (this._pushedCount) {\n                    this.readable = true;\n                    // If the buffer is insufficiently full, continue filling\n                    if (this._buffer.length < this._maxBufferSize / 2)\n                        this._fillBufferAsync();\n                }\n            });\n        }\n    }\n    /**\n      Schedules `_fillBuffer` asynchronously.\n    */\n    _fillBufferAsync() {\n        // Acquire reading lock to avoid recursive reads\n        if (!this._reading) {\n            this._reading = true;\n            taskScheduler(() => {\n                // Release reading lock so _fillBuffer` can take it\n                this._reading = false;\n                this._fillBuffer();\n            });\n        }\n    }\n    /**\n      Stops the iterator from generating new items\n      after a possible pending read operation has finished.\n      Already generated, pending, or terminating items can still be emitted.\n      After this, the iterator will end asynchronously.\n      @emits module:asynciterator.AsyncIterator.end\n    */\n    close() {\n        // If the iterator is not currently reading, we can close immediately\n        if (!this._reading)\n            this._completeClose();\n        // Closing cannot complete when reading, so temporarily assume CLOSING state\n        // `_fillBuffer` becomes responsible for calling `_completeClose`\n        else\n            this._changeState(exports.CLOSING);\n    }\n    /**\n      Stops the iterator from generating new items,\n      switching from `CLOSING` state into `CLOSED` state.\n      @protected\n      @emits module:asynciterator.AsyncIterator.end\n    */\n    _completeClose() {\n        if (this._changeState(exports.CLOSED)) {\n            // Write possible terminating items\n            this._reading = true;\n            this._flush(() => {\n                if (!this._reading)\n                    throw new Error('done callback called multiple times');\n                this._reading = false;\n                // If no items are left, end the iterator\n                // Otherwise, `read` becomes responsible for ending the iterator\n                if (this._buffer.empty)\n                    this._endAsync();\n            });\n        }\n    }\n    /* Called by {@link module:asynciterator.AsyncIterator#destroy} */\n    _destroy(cause, callback) {\n        this._buffer.clear();\n        callback();\n    }\n    /**\n      Writes terminating items and closes iterator resources.\n      Should never be called before {@link BufferedIterator#close};\n      typically, `close` is responsible for calling `_flush`.\n      @protected\n      @param {function} done To be called when termination is complete\n    */\n    _flush(done) {\n        done();\n    }\n    /**\n      Generates details for a textual representation of the iterator.\n      @protected\n     */\n    _toStringDetails() {\n        const buffer = this._buffer;\n        return `{${buffer.empty ? '' : `next: ${buffer.first}, `}buffer: ${buffer.length}}`;\n    }\n}\nexports.BufferedIterator = BufferedIterator;\n/**\n  An iterator that generates items based on a source iterator.\n  This class serves as a base class for other iterators.\n  @extends module:asynciterator.BufferedIterator\n*/\nclass TransformIterator extends BufferedIterator {\n    /**\n      Creates a new `TransformIterator`.\n      @param {module:asynciterator.AsyncIterator|Readable} [source] The source this iterator generates items from\n      @param {object} [options] Settings of the iterator\n      @param {integer} [options.maxBufferSize=4] The maximum number of items to keep in the buffer\n      @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n      @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its transformation yields no items\n      @param {boolean} [options.destroySource=true] Whether the source should be destroyed when this transformed iterator is closed or destroyed\n      @param {module:asynciterator.AsyncIterator} [options.source] The source this iterator generates items from\n    */\n    constructor(source, options = source || {}) {\n        super(options);\n        this._boundPush = (item) => this._push(item);\n        // Shift parameters if needed\n        if (!isSourceExpression(source))\n            source = options.source;\n        // The passed source is an AsyncIterator or readable stream\n        if (isEventEmitter(source)) {\n            this.source = source;\n        }\n        // The passed value is a promise or source creation function\n        else if (source) {\n            this._createSource = isPromise(source) ? () => source : source;\n            if (this._sourceStarted)\n                this._loadSourceAsync();\n        }\n        // Set other options\n        this._optional = Boolean(options.optional);\n        this._destroySource = options.destroySource !== false;\n    }\n    /**\n      The source this iterator generates items from.\n      @type module:asynciterator.AsyncIterator\n    */\n    get source() {\n        if (isFunction(this._createSource))\n            this._loadSourceAsync();\n        return this._source;\n    }\n    set source(value) {\n        // Validate and set source\n        const source = this._source = this._validateSource(value);\n        source[exports.DESTINATION] = this;\n        // Do not read the source if this iterator already ended\n        if (this.done) {\n            if (this._destroySource)\n                source.destroy();\n        }\n        // Close this iterator if the source already ended\n        else if (source.done) {\n            this.close();\n        }\n        // Otherwise, react to source events\n        else {\n            source.on('end', destinationCloseWhenDone);\n            source.on('readable', destinationFillBuffer);\n            source.on('error', destinationEmitError);\n        }\n    }\n    /**\n      Initializes a source that was set through a promise\n      @protected\n    */\n    _loadSourceAsync() {\n        if (isFunction(this._createSource)) {\n            // Assign the source after resolving\n            Promise.resolve(this._createSource()).then(source => {\n                delete this._createSource;\n                this.source = source;\n                this._fillBuffer();\n            }, error => this.emit('error', error));\n            // Signal that source creation is pending\n            this._createSource = null;\n        }\n    }\n    /**\n      Validates whether the given iterator can be used as a source.\n      @protected\n      @param {object} source The source to validate\n      @param {boolean} allowDestination Whether the source can already have a destination\n    */\n    _validateSource(source, allowDestination = false) {\n        if (this._source || typeof this._createSource !== 'undefined')\n            throw new Error('The source cannot be changed after it has been set');\n        return ensureSourceAvailable(source, allowDestination);\n    }\n    /**\n      Tries to read transformed items.\n    */\n    _read(count, done) {\n        const next = () => {\n            // Continue transforming until at least `count` items have been pushed\n            if (this._pushedCount < count && !this.closed)\n                taskScheduler(() => this._readAndTransform(next, done));\n            else\n                done();\n        };\n        this._readAndTransform(next, done);\n    }\n    /**\n      Reads a transforms an item\n    */\n    _readAndTransform(next, done) {\n        // If the source exists and still can read items,\n        // try to read and transform the next item.\n        let item;\n        const source = this.source;\n        if (!source || source.done || (item = source.read()) === null)\n            done();\n        else if (!this._optional)\n            this._transform(item, next, this._boundPush);\n        else\n            this._optionalTransform(item, next);\n    }\n    /**\n      Tries to transform the item;\n      if the transformation yields no items, pushes the original item.\n    */\n    _optionalTransform(item, done) {\n        const pushedCount = this._pushedCount;\n        this._transform(item, () => {\n            if (pushedCount === this._pushedCount)\n                this._push(item);\n            done();\n        }, this._boundPush);\n    }\n    /**\n      Generates items based on the item from the source.\n      Implementers should add items through {@link BufferedIterator#_push}.\n      The default implementation pushes the source item as-is.\n      @protected\n      @param {object} item The last read item from the source\n      @param {function} done To be called when reading is complete\n      @param {function} push A callback to push zero or more transformation results.\n    */\n    _transform(item, done, push) {\n        push(item);\n        done();\n    }\n    /**\n      Closes the iterator when pending items are transformed.\n      @protected\n    */\n    _closeWhenDone() {\n        this.close();\n    }\n    /* Cleans up the source iterator and ends. */\n    _end(destroy) {\n        const source = this._source;\n        if (source) {\n            source.removeListener('end', destinationCloseWhenDone);\n            source.removeListener('error', destinationEmitError);\n            source.removeListener('readable', destinationFillBuffer);\n            delete source[exports.DESTINATION];\n            if (this._destroySource)\n                source.destroy();\n        }\n        super._end(destroy);\n    }\n}\nexports.TransformIterator = TransformIterator;\nfunction destinationSetReadable() {\n    this[exports.DESTINATION].readable = true;\n}\nfunction destinationEmitError(error) {\n    this[exports.DESTINATION].emit('error', error);\n}\nfunction destinationClose() {\n    this[exports.DESTINATION].close();\n}\nfunction destinationCloseWhenDone() {\n    this[exports.DESTINATION]._closeWhenDone();\n}\nfunction destinationFillBuffer() {\n    if (this[exports.DESTINATION]._sourceStarted !== false)\n        this[exports.DESTINATION]._fillBuffer();\n}\n/**\n  An iterator that generates items based on a source iterator\n  and simple transformation steps passed as arguments.\n  @extends module:asynciterator.TransformIterator\n*/\nclass SimpleTransformIterator extends TransformIterator {\n    /**\n      Creates a new `SimpleTransformIterator`.\n      @param {module:asynciterator.AsyncIterator|Readable} [source] The source this iterator generates items from\n      @param {object|Function} [options] Settings of the iterator, or the transformation function\n      @param {integer} [options.maxbufferSize=4] The maximum number of items to keep in the buffer\n      @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n      @param {module:asynciterator.AsyncIterator} [options.source] The source this iterator generates items from\n      @param {integer} [options.offset] The number of items to skip\n      @param {integer} [options.limit] The maximum number of items\n      @param {Function} [options.filter] A function to synchronously filter items from the source\n      @param {Function} [options.map] A function to synchronously transform items from the source\n      @param {Function} [options.transform] A function to asynchronously transform items from the source\n      @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its mapping yields `null` or its transformation yields no items\n      @param {Array|module:asynciterator.AsyncIterator} [options.prepend] Items to insert before the source items\n      @param {Array|module:asynciterator.AsyncIterator} [options.append]  Items to insert after the source items\n    */\n    constructor(source, options) {\n        super(source, options);\n        this._offset = 0;\n        this._limit = Infinity;\n        this._filter = (item) => true;\n        // Set transformation steps from the options\n        options = options || (!isSourceExpression(source) ? source : null);\n        if (options) {\n            const transform = isFunction(options) ? options : options.transform;\n            const { limit, offset, filter, map, prepend, append } = options;\n            // Don't emit any items when bounds are unreachable\n            if (offset === Infinity || limit === -Infinity) {\n                this._limit = 0;\n            }\n            else {\n                if (Number.isFinite(offset))\n                    this._offset = Math.max(Math.trunc(offset), 0);\n                if (Number.isFinite(limit))\n                    this._limit = Math.max(Math.trunc(limit), 0);\n                if (isFunction(filter))\n                    this._filter = filter;\n                if (isFunction(map))\n                    this._map = map;\n                this._transform = isFunction(transform) ? transform : null;\n            }\n            if (prepend)\n                this._prepender = isEventEmitter(prepend) ? prepend : fromArray(prepend);\n            if (append)\n                this._appender = isEventEmitter(append) ? append : fromArray(append);\n        }\n    }\n    /* Tries to read and transform items */\n    _read(count, done) {\n        const next = () => this._readAndTransformSimple(count, nextAsync, done);\n        this._readAndTransformSimple(count, nextAsync, done);\n        function nextAsync() {\n            taskScheduler(next);\n        }\n    }\n    /* Reads and transform items */\n    _readAndTransformSimple(count, next, done) {\n        // Verify we have a readable source\n        let item;\n        const { source } = this;\n        if (!source || source.done) {\n            done();\n            return;\n        }\n        // Verify we are still below the limit\n        if (this._limit === 0)\n            this.close();\n        // Try to read the next item until at least `count` items have been pushed\n        while (!this.closed && this._pushedCount < count && (item = source.read()) !== null) {\n            // Verify the item passes the filter and we've reached the offset\n            if (!this._filter(item) || this._offset !== 0 && this._offset--)\n                continue;\n            // Synchronously map the item\n            const mappedItem = typeof this._map === 'undefined' ? item : this._map(item);\n            // Skip `null` items, pushing the original item if the mapping was optional\n            if (mappedItem === null) {\n                if (this._optional)\n                    this._push(item);\n            }\n            // Skip the asynchronous phase if no transformation was specified\n            else if (!isFunction(this._transform)) {\n                this._push(mappedItem);\n            }\n            // Asynchronously transform the item, and wait for `next` to call back\n            else {\n                if (!this._optional)\n                    this._transform(mappedItem, next, this._boundPush);\n                else\n                    this._optionalTransform(mappedItem, next);\n                return;\n            }\n            // Stop when we've reached the limit\n            if (--this._limit === 0)\n                this.close();\n        }\n        done();\n    }\n    // Prepends items to the iterator\n    _begin(done) {\n        this._insert(this._prepender, done);\n        delete this._prepender;\n    }\n    // Appends items to the iterator\n    _flush(done) {\n        this._insert(this._appender, done);\n        delete this._appender;\n    }\n    // Inserts items in the iterator\n    _insert(inserter, done) {\n        const push = (item) => this._push(item);\n        if (!inserter || inserter.done) {\n            done();\n        }\n        else {\n            inserter.on('data', push);\n            inserter.on('end', end);\n        }\n        function end() {\n            inserter.removeListener('data', push);\n            inserter.removeListener('end', end);\n            done();\n        }\n    }\n}\nexports.SimpleTransformIterator = SimpleTransformIterator;\n/**\n  An iterator that generates items by transforming each item of a source\n  with a different iterator.\n  @extends module:asynciterator.TransformIterator\n*/\nclass MultiTransformIterator extends TransformIterator {\n    /**\n     Creates a new `MultiTransformIterator`.\n     @param {module:asynciterator.AsyncIterator|Readable} [source] The source this iterator generates items from\n     @param {object|Function} [options] Settings of the iterator, or the transformation function\n     @param {integer} [options.maxbufferSize=4] The maximum number of items to keep in the buffer\n     @param {boolean} [options.autoStart=true] Whether buffering starts directly after construction\n     @param {module:asynciterator.AsyncIterator} [options.source] The source this iterator generates items from\n     @param {integer} [options.offset] The number of items to skip\n     @param {integer} [options.limit] The maximum number of items\n     @param {Function} [options.filter] A function to synchronously filter items from the source\n     @param {Function} [options.map] A function to synchronously transform items from the source\n     @param {Function} [options.transform] A function to asynchronously transform items from the source\n     @param {boolean} [options.optional=false] If transforming is optional, the original item is pushed when its mapping yields `null` or its transformation yields no items\n     @param {Function} [options.multiTransform] A function to asynchronously transform items to iterators from the source\n     @param {Array|module:asynciterator.AsyncIterator} [options.prepend] Items to insert before the source items\n     @param {Array|module:asynciterator.AsyncIterator} [options.append]  Items to insert after the source items\n     */\n    constructor(source, options) {\n        super(source, options);\n        this._transformerQueue = [];\n        // Set transformation steps from the options\n        if (options) {\n            const multiTransform = isFunction(options) ? options : options.multiTransform;\n            if (multiTransform)\n                this._createTransformer = multiTransform;\n        }\n    }\n    /* Tries to read and transform items */\n    _read(count, done) {\n        // Remove transformers that have ended\n        const transformerQueue = this._transformerQueue, optional = this._optional;\n        let head, item;\n        while ((head = transformerQueue[0]) && head.transformer.done) {\n            // If transforming is optional, push the original item if none was pushed\n            if (optional && head.item !== null) {\n                count--;\n                this._push(head.item);\n            }\n            // Remove listeners from the transformer\n            transformerQueue.shift();\n            const { transformer } = head;\n            transformer.removeListener('end', destinationFillBuffer);\n            transformer.removeListener('readable', destinationFillBuffer);\n            transformer.removeListener('error', destinationEmitError);\n        }\n        // Create new transformers if there are less than the maximum buffer size\n        const { source } = this;\n        while (source && !source.done && transformerQueue.length < this.maxBufferSize) {\n            // Read an item to create the next transformer\n            item = source.read();\n            if (item === null)\n                break;\n            // Create the transformer and listen to its events\n            const transformer = (this._createTransformer(item) ||\n                new EmptyIterator());\n            transformer[exports.DESTINATION] = this;\n            transformer.on('end', destinationFillBuffer);\n            transformer.on('readable', destinationFillBuffer);\n            transformer.on('error', destinationEmitError);\n            transformerQueue.push({ transformer, item });\n        }\n        // Try to read `count` items from the transformer\n        head = transformerQueue[0];\n        if (head) {\n            const { transformer } = head;\n            while (count-- > 0 && (item = transformer.read()) !== null) {\n                this._push(item);\n                // If a transformed item was pushed, no need to push the original anymore\n                if (optional)\n                    head.item = null;\n            }\n        }\n        // End the iterator if the source has ended\n        else if (source && source.done) {\n            this.close();\n        }\n        done();\n    }\n    /**\n      Creates a transformer for the given item.\n      @param {object} item The last read item from the source\n      @returns {module:asynciterator.AsyncIterator} An iterator that transforms the given item\n    */\n    _createTransformer(item) {\n        return new SingletonIterator(item);\n    }\n    /* Closes the iterator when pending items are transformed. */\n    _closeWhenDone() {\n        // Only close if all transformers are read\n        if (!this._transformerQueue.length)\n            this.close();\n    }\n    _end(destroy) {\n        super._end(destroy);\n        // Also destroy the open transformers left in the queue\n        if (this._destroySource) {\n            for (const item of this._transformerQueue)\n                item.transformer.destroy();\n        }\n    }\n}\nexports.MultiTransformIterator = MultiTransformIterator;\n/**\n  An iterator that generates items by reading from multiple other iterators.\n  @extends module:asynciterator.BufferedIterator\n*/\nclass UnionIterator extends BufferedIterator {\n    /**\n      Creates a new `UnionIterator`.\n      @param {module:asynciterator.AsyncIterator|Array} [sources] The sources to read from\n      @param {object} [options] Settings of the iterator\n      @param {boolean} [options.destroySource=true] Whether the sources should be destroyed when transformed iterator is closed or destroyed\n    */\n    constructor(sources, options = {}) {\n        super(options);\n        this._sources = [];\n        this._currentSource = -1;\n        const autoStart = options.autoStart !== false;\n        // Sources have been passed as an iterator\n        if (isEventEmitter(sources)) {\n            sources.on('error', error => this.emit('error', error));\n            this._pending = { loading: false, sources: sources };\n            if (autoStart)\n                this._loadSources();\n        }\n        // Sources have been passed as a non-empty array\n        else if (Array.isArray(sources) && sources.length > 0) {\n            for (const source of sources)\n                this._addSource(source);\n        }\n        // Sources are an empty list\n        else if (autoStart) {\n            this.close();\n        }\n        // Set other options\n        this._destroySources = options.destroySources !== false;\n    }\n    // Loads pending sources into the sources list\n    _loadSources() {\n        // Obtain sources iterator\n        const sources = this._pending.sources;\n        this._pending.loading = true;\n        // Close immediately if done\n        if (sources.done) {\n            delete this._pending;\n            this.close();\n        }\n        // Otherwise, set up source reading\n        else {\n            sources.on('data', source => {\n                this._addSource(source);\n                this._fillBufferAsync();\n            });\n            sources.on('end', () => {\n                delete this._pending;\n                this._fillBuffer();\n            });\n        }\n    }\n    // Adds the given source to the internal sources array\n    _addSource(source) {\n        if (isPromise(source))\n            source = wrap(source);\n        if (!source.done) {\n            this._sources.push(source);\n            source[exports.DESTINATION] = this;\n            source.on('error', destinationEmitError);\n            source.on('readable', destinationFillBuffer);\n            source.on('end', destinationRemoveEmptySources);\n        }\n    }\n    // Removes sources that will no longer emit items\n    _removeEmptySources() {\n        this._sources = this._sources.filter((source, index) => {\n            // Adjust the index of the current source if needed\n            if (source.done && index <= this._currentSource)\n                this._currentSource--;\n            return !source.done;\n        });\n        this._fillBuffer();\n    }\n    // Reads items from the next sources\n    _read(count, done) {\n        var _a;\n        // Start source loading if needed\n        if (((_a = this._pending) === null || _a === void 0 ? void 0 : _a.loading) === false)\n            this._loadSources();\n        // Try to read `count` items\n        let lastCount = 0, item;\n        while (lastCount !== (lastCount = count)) {\n            // Try every source at least once\n            for (let i = 0; i < this._sources.length && count > 0; i++) {\n                // Pick the next source\n                this._currentSource = (this._currentSource + 1) % this._sources.length;\n                const source = this._sources[this._currentSource];\n                // Attempt to read an item from that source\n                if ((item = source.read()) !== null) {\n                    count--;\n                    this._push(item);\n                }\n            }\n        }\n        // Close this iterator if all of its sources have been read\n        if (!this._pending && this._sources.length === 0)\n            this.close();\n        done();\n    }\n    _end(destroy = false) {\n        super._end(destroy);\n        // Destroy all sources that are still readable\n        if (this._destroySources) {\n            for (const source of this._sources)\n                source.destroy();\n            // Also close the sources stream if applicable\n            if (this._pending) {\n                this._pending.sources.destroy();\n                delete this._pending;\n            }\n        }\n    }\n}\nexports.UnionIterator = UnionIterator;\nfunction destinationRemoveEmptySources() {\n    this[exports.DESTINATION]._removeEmptySources();\n}\n/**\n  An iterator that copies items from another iterator.\n  @extends module:asynciterator.TransformIterator\n*/\nclass ClonedIterator extends TransformIterator {\n    /**\n      Creates a new `ClonedIterator`.\n      @param {module:asynciterator.AsyncIterator|Readable} [source] The source this iterator copies items from\n    */\n    constructor(source) {\n        super(source, { autoStart: false });\n        this._readPosition = 0;\n        this._reading = false;\n        // As cloned iterators are not auto-started, they must always be marked as readable.\n        if (source)\n            this.readable = true;\n    }\n    _init() {\n        // skip buffered iterator initialization, since we read from history\n    }\n    close() {\n        // skip buffered iterator cleanup\n        AsyncIterator.prototype.close.call(this);\n    }\n    // The source this iterator copies items from\n    get source() {\n        return super.source;\n    }\n    set source(value) {\n        // Validate and set the source\n        const source = this._source = this._validateSource(value);\n        // Create a history reader for the source if none already existed\n        const history = (source && source[exports.DESTINATION]) ||\n            (source[exports.DESTINATION] = new HistoryReader(source));\n        // Do not read the source if this iterator already ended\n        if (this.done) {\n            if (this._destroySource)\n                source.destroy();\n        }\n        // Close this clone if history is empty and the source has ended\n        else if (history.endsAt(0)) {\n            this.close();\n        }\n        else {\n            // Subscribe to history events\n            history.register(this);\n            // If there are already items in history, this clone is readable\n            // If the source has a lazy start, always mark this iterator as readable without eagerly triggering a read.\n            if (source._sourceStarted === false || history.readAt(0) !== null)\n                this.readable = true;\n        }\n        // Hook pending property callbacks to the source\n        const propertyCallbacks = this._propertyCallbacks;\n        for (const propertyName in propertyCallbacks) {\n            const callbacks = propertyCallbacks[propertyName];\n            for (const callback of callbacks)\n                this._getSourceProperty(propertyName, callback);\n        }\n    }\n    /**\n      Validates whether the given iterator can be used as a source.\n      @protected\n      @param {object} source The source to validate\n      @param {boolean} allowDestination Whether the source can already have a destination\n    */\n    _validateSource(source, allowDestination = false) {\n        const history = (source && source[exports.DESTINATION]);\n        return super._validateSource(source, !history || history instanceof HistoryReader);\n    }\n    // Retrieves the property with the given name from the clone or its source.\n    getProperty(propertyName, callback) {\n        const { source } = this, properties = this._properties, hasProperty = properties && (propertyName in properties);\n        // If no callback was passed, return the property value\n        if (!callback) {\n            return hasProperty ? properties && properties[propertyName] :\n                source && source.getProperty(propertyName);\n        }\n        // Try to look up the property in this clone\n        super.getProperty(propertyName, callback);\n        // If the property is not set on this clone, it might become set on the source first\n        if (source && !hasProperty)\n            this._getSourceProperty(propertyName, callback);\n        return undefined;\n    }\n    // Retrieves the property with the given name from the source\n    _getSourceProperty(propertyName, callback) {\n        this.source.getProperty(propertyName, value => {\n            // Only send the source's property if it was not set on the clone in the meantime\n            if (!this._properties || !(propertyName in this._properties))\n                callback(value);\n        });\n    }\n    // Retrieves all properties of the iterator and its source.\n    getProperties() {\n        const base = this.source ? this.source.getProperties() : {}, properties = this._properties;\n        for (const name in properties)\n            base[name] = properties[name];\n        return base;\n    }\n    /* Generates details for a textual representation of the iterator. */\n    _toStringDetails() {\n        return `{source: ${this.source ? this.source.toString() : 'none'}}`;\n    }\n    /* Tries to read an item */\n    read() {\n        // An explicit read kickstarts the source\n        if (!this._sourceStarted)\n            this._sourceStarted = true;\n        const source = this.source;\n        let item = null;\n        if (!this.done && source) {\n            // Try to read an item at the current point in history\n            const history = source[exports.DESTINATION];\n            if ((item = history.readAt(this._readPosition)) !== null)\n                this._readPosition++;\n            else\n                this.readable = false;\n            // Close the iterator if we are at the end of the source\n            if (history.endsAt(this._readPosition))\n                this.close();\n        }\n        return item;\n    }\n    /* End the iterator and cleans up. */\n    _end(destroy) {\n        // Unregister from a possible history reader\n        const source = this.source;\n        const history = source === null || source === void 0 ? void 0 : source[exports.DESTINATION];\n        if (history)\n            history.unregister(this);\n        // Don't call TransformIterator#_end,\n        // as it would make the source inaccessible for other clones\n        BufferedIterator.prototype._end.call(this, destroy);\n    }\n}\nexports.ClonedIterator = ClonedIterator;\n// Stores the history of a source, so it can be cloned\nclass HistoryReader {\n    constructor(source) {\n        this._history = [];\n        this._trackers = new Set();\n        this._source = source;\n        // If the source is still live, set up clone tracking;\n        // otherwise, the clones just read from the finished history\n        if (!source.done) {\n            // When the source becomes readable, makes all clones readable\n            const setReadable = () => {\n                for (const tracker of this._trackers)\n                    tracker.readable = true;\n            };\n            // When the source errors, re-emits the error\n            const emitError = (error) => {\n                for (const tracker of this._trackers)\n                    tracker.emit('error', error);\n            };\n            // When the source ends, closes all clones that are fully read\n            const end = () => {\n                // Close the clone if all items had been emitted\n                for (const tracker of this._trackers) {\n                    if (tracker._sourceStarted !== false &&\n                        tracker._readPosition === this._history.length)\n                        tracker.close();\n                }\n                this._trackers.clear();\n                // Remove source listeners, since no further events will be emitted\n                source.removeListener('end', end);\n                source.removeListener('error', emitError);\n                source.removeListener('readable', setReadable);\n            };\n            // Listen to source events to trigger events in subscribed clones\n            source.on('end', end);\n            source.on('error', emitError);\n            source.on('readable', setReadable);\n        }\n    }\n    // Registers a clone for history updates\n    register(clone) {\n        // Tracking is only needed if the source is still live\n        if (!this._source.done)\n            this._trackers.add(clone);\n    }\n    // Unregisters a clone for history updates\n    unregister(clone) {\n        this._trackers.delete(clone);\n    }\n    // Tries to read the item at the given history position\n    readAt(pos) {\n        let item = null;\n        // Retrieve an item from history when available\n        if (pos < this._history.length)\n            item = this._history[pos];\n        // Read a new item from the source when possible\n        else if (!this._source.done && (item = this._source.read()) !== null)\n            this._history[pos] = item;\n        return item;\n    }\n    // Determines whether the given position is the end of the source\n    endsAt(pos) {\n        return this._source.done && this._history.length === pos;\n    }\n}\n/**\n * An iterator that takes a variety of iterable objects as a source.\n */\nclass WrappingIterator extends AsyncIterator {\n    constructor(source, opts) {\n        super();\n        this._source = null;\n        this._destroySource = (opts === null || opts === void 0 ? void 0 : opts.destroySource) !== false;\n        // If promise, set up a temporary source and replace when ready\n        if (isPromise(source)) {\n            this._source = new AsyncIterator();\n            source.then(value => {\n                this._source = null;\n                this.source = value;\n            }).catch(error => this.emit('error', error));\n        }\n        // Otherwise, set the source synchronously\n        else if (source) {\n            this.source = source;\n        }\n    }\n    set source(value) {\n        let source = value;\n        if (this._source !== null)\n            throw new Error('The source cannot be changed after it has been set');\n        // Process an iterable source\n        if (isIterable(source))\n            source = source[Symbol.iterator]();\n        // Process an iterator source\n        if (isIterator(source)) {\n            let iterator = source;\n            source = new events_1.EventEmitter();\n            source.read = () => {\n                if (iterator !== null) {\n                    // Skip any null values inside of the iterator\n                    let next;\n                    while (!(next = iterator.next()).done) {\n                        if (next.value !== null)\n                            return next.value;\n                    }\n                    // No remaining values, so stop iterating\n                    iterator = null;\n                    this.close();\n                }\n                return null;\n            };\n        }\n        // Process any other readable source\n        else {\n            source = ensureSourceAvailable(source);\n        }\n        // Do not change sources if the iterator is already done\n        if (this.done) {\n            if (this._destroySource && isFunction(source.destroy))\n                source.destroy();\n            return;\n        }\n        // Set up event handling\n        source[exports.DESTINATION] = this;\n        source.on('end', destinationClose);\n        source.on('error', destinationEmitError);\n        source.on('readable', destinationSetReadable);\n        // Enable reading from source\n        this._source = source;\n        this.readable = source.readable !== false;\n    }\n    read() {\n        if (this._source !== null && this._source.readable !== false) {\n            const item = this._source.read();\n            if (item !== null)\n                return item;\n            this.readable = false;\n        }\n        return null;\n    }\n    _end(destroy = false) {\n        if (this._source !== null) {\n            this._source.removeListener('end', destinationClose);\n            this._source.removeListener('error', destinationEmitError);\n            this._source.removeListener('readable', destinationSetReadable);\n            delete this._source[exports.DESTINATION];\n            if (this._destroySource && isFunction(this._source.destroy))\n                this._source.destroy();\n            this._source = null;\n        }\n        super._end(destroy);\n    }\n}\nexports.WrappingIterator = WrappingIterator;\n/**\n  Creates an iterator that wraps around a given iterator or readable stream.\n  Use this to convert an iterator-like object into a full-featured AsyncIterator.\n  After this operation, only read the returned iterator instead of the given one.\n  @function\n  @param [source] The source this iterator generates items from\n  @param {object} [options] Settings of the iterator\n  @returns {module:asynciterator.AsyncIterator} A new iterator with the items from the given iterator\n*/\nfunction wrap(source, options) {\n    // For backward compatibility, always use TransformIterator when options are specified\n    if (options && ('autoStart' in options || 'optional' in options || 'source' in options || 'maxBufferSize' in options)) {\n        if (source && !isEventEmitter(source))\n            source = new WrappingIterator(source);\n        return new TransformIterator(source, options);\n    }\n    // Empty iterator if no source specified\n    if (!source)\n        return empty();\n    // Unwrap promised sources\n    if (isPromise(source))\n        return new WrappingIterator(source, options);\n    // Directly return any AsyncIterator\n    if (source instanceof AsyncIterator)\n        return source;\n    // Other iterable objects\n    if (Array.isArray(source))\n        return fromArray(source);\n    if (isIterable(source) || isIterator(source) || isEventEmitter(source))\n        return new WrappingIterator(source, options);\n    // Other types are unsupported\n    throw new TypeError(`Invalid source: ${source}`);\n}\nexports.wrap = wrap;\n/**\n  Creates an empty iterator.\n */\nfunction empty() {\n    return new EmptyIterator();\n}\nexports.empty = empty;\n/**\n  Creates an iterator with a single item.\n  @param {object} item the item\n */\nfunction single(item) {\n    return new SingletonIterator(item);\n}\nexports.single = single;\n/**\n  Creates an iterator for the given array.\n  @param {Array} items the items\n */\nfunction fromArray(items) {\n    return new ArrayIterator(items);\n}\nexports.fromArray = fromArray;\n/**\n Creates an iterator for the given Iterator.\n @param {Iterable} source the iterator\n */\nfunction fromIterator(source) {\n    return new WrappingIterator(source);\n}\nexports.fromIterator = fromIterator;\n/**\n Creates an iterator for the given Iterable.\n @param {Iterable} source the iterable\n */\nfunction fromIterable(source) {\n    return new WrappingIterator(source);\n}\nexports.fromIterable = fromIterable;\n/**\n  Creates an iterator containing all items from the given iterators.\n  @param {Array} items the items\n */\nfunction union(sources) {\n    return new UnionIterator(sources);\n}\nexports.union = union;\n/**\n  Creates an iterator of integers for the given numeric range.\n  @param {Array} items the items\n */\nfunction range(start, end, step) {\n    return new IntegerIterator({ start, end, step });\n}\nexports.range = range;\n// Returns a function that calls `fn` with `self` as `this` pointer. */\nfunction bind(fn, self) {\n    return self ? fn.bind(self) : fn;\n}\n// Determines whether the given object is a function\nfunction isFunction(object) {\n    return typeof object === 'function';\n}\nexports.isFunction = isFunction;\n// Determines whether the given object is an EventEmitter\nfunction isEventEmitter(object) {\n    return isFunction(object === null || object === void 0 ? void 0 : object.on);\n}\nexports.isEventEmitter = isEventEmitter;\n// Determines whether the given object is a promise\nfunction isPromise(object) {\n    return isFunction(object === null || object === void 0 ? void 0 : object.then);\n}\nexports.isPromise = isPromise;\n// Determines whether the given object is a source expression\nfunction isSourceExpression(object) {\n    return object && (isEventEmitter(object) || isPromise(object) || isFunction(object));\n}\nexports.isSourceExpression = isSourceExpression;\n// Determines whether the given object supports the iterable protocol\nfunction isIterable(object) {\n    return object && (Symbol.iterator in object);\n}\nexports.isIterable = isIterable;\n// Determines whether the given object supports the iterator protocol\nfunction isIterator(object) {\n    return isFunction(object === null || object === void 0 ? void 0 : object.next);\n}\nexports.isIterator = isIterator;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNodeScoped = void 0;\n/**\n * A blank node that is scoped to a certain source.\n */\nclass BlankNodeScoped {\n    constructor(value, skolemized) {\n        this.termType = 'BlankNode';\n        this.value = value;\n        this.skolemized = skolemized;\n    }\n    equals(other) {\n        // eslint-disable-next-line no-implicit-coercion\n        return !!other && other.termType === 'BlankNode' && other.value === this.value;\n    }\n}\nexports.BlankNodeScoped = BlankNodeScoped;\n//# sourceMappingURL=BlankNodeScoped.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNodeBindingsScoped = void 0;\n/**\n * A blank node that is scoped to a set of bindings.\n */\nclass BlankNodeBindingsScoped {\n    constructor(value) {\n        this.termType = 'BlankNode';\n        this.singleBindingsScope = true;\n        this.value = value;\n    }\n    equals(other) {\n        // eslint-disable-next-line no-implicit-coercion\n        return !!other && other.termType === 'BlankNode' && other.value === this.value;\n    }\n}\nexports.BlankNodeBindingsScoped = BlankNodeBindingsScoped;\n//# sourceMappingURL=BlankNodeBindingsScoped.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./BlankNodeScoped\"), exports);\n__exportStar(require(\"./BlankNodeBindingsScoped\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deskolemizeOperation = exports.deskolemizeQuad = exports.deskolemizeTermNestedThrowing = exports.deskolemizeTerm = exports.skolemizeBindingsStream = exports.skolemizeQuadStream = exports.skolemizeBindings = exports.skolemizeQuad = exports.skolemizeTerm = exports.getSourceId = exports.SKOLEM_PREFIX = void 0;\nconst utils_data_factory_1 = require(\"@comunica/utils-data-factory\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nexports.SKOLEM_PREFIX = 'urn:comunica_skolem:source_';\n/**\n * Get the unique, deterministic id for the given source.\n * @param sourceIds ID's of datasources, see KeysRdfResolveQuadPattern.sourceIds.\n * @param source A data source.\n * @return The id of the given source.\n */\nfunction getSourceId(sourceIds, source) {\n    let sourceId = sourceIds.get(source.referenceValue);\n    if (sourceId === undefined) {\n        sourceId = `${sourceIds.size}`;\n        sourceIds.set(source.referenceValue, sourceId);\n    }\n    return sourceId;\n}\nexports.getSourceId = getSourceId;\n/**\n * If the given term is a blank node, return a deterministic named node for it\n * based on the source id and the blank node value.\n * @param dataFactory The data factory.\n * @param term Any RDF term.\n * @param sourceId A source identifier.\n * @return If the given term was a blank node, this will return a skolemized named node, otherwise the original term.\n */\nfunction skolemizeTerm(dataFactory, term, sourceId) {\n    if (term.termType === 'BlankNode') {\n        return new utils_data_factory_1.BlankNodeScoped(`bc_${sourceId}_${term.value}`, dataFactory.namedNode(`${exports.SKOLEM_PREFIX}${sourceId}:${term.value}`));\n    }\n    return term;\n}\nexports.skolemizeTerm = skolemizeTerm;\n/**\n * Skolemize all terms in the given quad.\n * @param dataFactory The data factory.\n * @param quad An RDF quad.\n * @param sourceId A source identifier.\n * @return The skolemized quad.\n */\nfunction skolemizeQuad(dataFactory, quad, sourceId) {\n    return (0, rdf_terms_1.mapTermsNested)(quad, term => skolemizeTerm(dataFactory, term, sourceId));\n}\nexports.skolemizeQuad = skolemizeQuad;\n/**\n * Skolemize all terms in the given bindings.\n * @param dataFactory The data factory.\n * @param bindings An RDF bindings object.\n * @param sourceId A source identifier.\n * @return The skolemized bindings.\n */\nfunction skolemizeBindings(dataFactory, bindings, sourceId) {\n    return bindings.map((term) => {\n        if (term.termType === 'Quad') {\n            return skolemizeQuad(dataFactory, term, sourceId);\n        }\n        return skolemizeTerm(dataFactory, term, sourceId);\n    });\n}\nexports.skolemizeBindings = skolemizeBindings;\n/**\n * Skolemize all terms in the given quad stream.\n * @param dataFactory The data factory.\n * @param iterator An RDF quad stream.\n * @param sourceId A source identifier.\n * @return The skolemized quad stream.\n */\nfunction skolemizeQuadStream(dataFactory, iterator, sourceId) {\n    const ret = iterator.map(quad => skolemizeQuad(dataFactory, quad, sourceId));\n    function inheritMetadata() {\n        iterator.getProperty('metadata', (metadata) => {\n            ret.setProperty('metadata', metadata);\n            metadata.state.addInvalidateListener(inheritMetadata);\n        });\n    }\n    inheritMetadata();\n    return ret;\n}\nexports.skolemizeQuadStream = skolemizeQuadStream;\n/**\n * Skolemize all terms in the given bindings stream.\n * @param dataFactory The data factory.\n * @param iterator An RDF bindings stream.\n * @param sourceId A source identifier.\n * @return The skolemized bindings stream.\n */\nfunction skolemizeBindingsStream(dataFactory, iterator, sourceId) {\n    const ret = iterator.map(bindings => skolemizeBindings(dataFactory, bindings, sourceId));\n    function inheritMetadata() {\n        iterator.getProperty('metadata', (metadata) => {\n            ret.setProperty('metadata', metadata);\n            metadata.state.addInvalidateListener(inheritMetadata);\n        });\n    }\n    inheritMetadata();\n    return ret;\n}\nexports.skolemizeBindingsStream = skolemizeBindingsStream;\n/**\n * If a given term was a skolemized named node for the given source id,\n * deskolemize it again to a blank node.\n * If the given term was a skolemized named node for another source, return false.\n * If the given term was not a skolemized named node, return the original term.\n * @param dataFactory The data factory.\n * @param term Any RDF term.\n * @param sourceId A source identifier.\n */\nfunction deskolemizeTerm(dataFactory, term, sourceId) {\n    if (term.termType === 'BlankNode' && 'skolemized' in term) {\n        term = term.skolemized;\n    }\n    if (term.termType === 'NamedNode' && term.value.startsWith(exports.SKOLEM_PREFIX)) {\n        const colonSeparator = term.value.indexOf(':', exports.SKOLEM_PREFIX.length);\n        const termSourceId = term.value.slice(exports.SKOLEM_PREFIX.length, colonSeparator);\n        // We had a skolemized term\n        if (termSourceId === sourceId) {\n            // It came from the correct source\n            const termLabel = term.value.slice(colonSeparator + 1, term.value.length);\n            return dataFactory.blankNode(termLabel);\n        }\n        // It came from a different source\n        return null;\n    }\n    return term;\n}\nexports.deskolemizeTerm = deskolemizeTerm;\nfunction deskolemizeTermNestedThrowing(dataFactory, term, sourceId) {\n    if (term.termType === 'Quad') {\n        return (0, rdf_terms_1.mapTermsNested)(term, (subTerm) => {\n            const deskolemized = deskolemizeTerm(dataFactory, subTerm, sourceId);\n            if (!deskolemized) {\n                throw new Error(`Skolemized term is not in scope for this source`);\n            }\n            return deskolemized;\n        });\n    }\n    const ret = deskolemizeTerm(dataFactory, term, sourceId);\n    if (ret === null) {\n        throw new Error(`Skolemized term is not in scope for this source`);\n    }\n    return ret;\n}\nexports.deskolemizeTermNestedThrowing = deskolemizeTermNestedThrowing;\n/**\n * Deskolemize all terms in the given quad.\n * @param dataFactory The data factory.\n * @param quad An RDF quad.\n * @param sourceId A source identifier.\n * @return The deskolemized quad.\n */\nfunction deskolemizeQuad(dataFactory, quad, sourceId) {\n    return (0, rdf_terms_1.mapTermsNested)(quad, (term) => {\n        const newTerm = deskolemizeTerm(dataFactory, term, sourceId);\n        // If the term was skolemized in a different source then don't deskolemize it\n        return newTerm ?? term;\n    });\n}\nexports.deskolemizeQuad = deskolemizeQuad;\n/**\n * Deskolemize all terms in the given quad.\n * Will return undefined if there is at least one blank node not in scope for this sourceId.\n * @param dataFactory The data factory.\n * @param operation An algebra operation.\n * @param sourceId A source identifier.\n */\nfunction deskolemizeOperation(dataFactory, operation, sourceId) {\n    const algebraFactory = new sparqlalgebrajs_1.Factory();\n    try {\n        return sparqlalgebrajs_1.Util.mapOperation(operation, {\n            [sparqlalgebrajs_1.Algebra.types.PATTERN](op, factory) {\n                return {\n                    result: Object.assign(factory.createPattern(deskolemizeTermNestedThrowing(dataFactory, op.subject, sourceId), deskolemizeTermNestedThrowing(dataFactory, op.predicate, sourceId), deskolemizeTermNestedThrowing(dataFactory, op.object, sourceId), deskolemizeTermNestedThrowing(dataFactory, op.graph, sourceId)), { metadata: op.metadata }),\n                    recurse: false,\n                };\n            },\n            [sparqlalgebrajs_1.Algebra.types.PATH](op, factory) {\n                return {\n                    result: Object.assign(factory.createPath(deskolemizeTermNestedThrowing(dataFactory, op.subject, sourceId), op.predicate, deskolemizeTermNestedThrowing(dataFactory, op.object, sourceId), deskolemizeTermNestedThrowing(dataFactory, op.graph, sourceId)), { metadata: op.metadata }),\n                    recurse: false,\n                };\n            },\n        }, algebraFactory);\n    }\n    catch {\n        // Return undefined for skolemized terms not in scope for this source\n    }\n}\nexports.deskolemizeOperation = deskolemizeOperation;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuerySourceSkolemized = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst utils_1 = require(\"./utils\");\n/**\n * A IQuerySource wrapper that skolemizes outgoing quads and bindings.\n */\nclass QuerySourceSkolemized {\n    constructor(innerSource, sourceId) {\n        this.innerSource = innerSource;\n        this.sourceId = sourceId;\n    }\n    async getSelectorShape(context) {\n        return this.innerSource.getSelectorShape(context);\n    }\n    queryBindings(operation, context, options) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const operationMapped = (0, utils_1.deskolemizeOperation)(dataFactory, operation, this.sourceId);\n        if (!operationMapped) {\n            const it = new asynciterator_1.ArrayIterator([], { autoStart: false });\n            it.setProperty('metadata', {\n                state: new utils_metadata_1.MetadataValidationState(),\n                cardinality: { type: 'exact', value: 0 },\n                variables: [],\n            });\n            return it;\n        }\n        return (0, utils_1.skolemizeBindingsStream)(dataFactory, this.innerSource.queryBindings(operationMapped, context, options), this.sourceId);\n    }\n    queryBoolean(operation, context) {\n        return this.innerSource.queryBoolean(operation, context);\n    }\n    queryQuads(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const operationMapped = (0, utils_1.deskolemizeOperation)(dataFactory, operation, this.sourceId);\n        if (!operationMapped) {\n            const it = new asynciterator_1.ArrayIterator([], { autoStart: false });\n            it.setProperty('metadata', {\n                state: new utils_metadata_1.MetadataValidationState(),\n                cardinality: { type: 'exact', value: 0 },\n            });\n            return it;\n        }\n        return (0, utils_1.skolemizeQuadStream)(dataFactory, this.innerSource.queryQuads(operationMapped, context), this.sourceId);\n    }\n    queryVoid(operation, context) {\n        return this.innerSource.queryVoid(operation, context);\n    }\n    get referenceValue() {\n        return this.innerSource.referenceValue;\n    }\n    toString() {\n        return `${this.innerSource.toString()}(SkolemID:${this.sourceId})`;\n    }\n}\nexports.QuerySourceSkolemized = QuerySourceSkolemized;\n//# sourceMappingURL=QuerySourceSkolemized.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorContextPreprocessQuerySourceSkolemize = void 0;\nconst bus_context_preprocess_1 = require(\"@comunica/bus-context-preprocess\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst QuerySourceSkolemized_1 = require(\"./QuerySourceSkolemized\");\nconst utils_1 = require(\"./utils\");\n/**\n * A comunica Query Source Skolemize Context Preprocess Actor.\n */\nclass ActorContextPreprocessQuerySourceSkolemize extends bus_context_preprocess_1.ActorContextPreprocess {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        let context = action.context;\n        // Wrap sources in skolemized sources\n        if (context.has(context_entries_1.KeysQueryOperation.querySources)) {\n            // Determine map of source id's\n            if (!context.has(context_entries_1.KeysQuerySourceIdentify.sourceIds)) {\n                context = context.set(context_entries_1.KeysQuerySourceIdentify.sourceIds, new Map());\n            }\n            const sourceIds = context.getSafe(context_entries_1.KeysQuerySourceIdentify.sourceIds);\n            let sources = context.getSafe(context_entries_1.KeysQueryOperation.querySources);\n            sources = sources.map(sourceWrapper => ({\n                source: new QuerySourceSkolemized_1.QuerySourceSkolemized(sourceWrapper.source, (0, utils_1.getSourceId)(sourceIds, sourceWrapper.source)),\n                context: sourceWrapper.context,\n            }));\n            context = context.set(context_entries_1.KeysQueryOperation.querySources, sources);\n        }\n        return { context };\n    }\n}\nexports.ActorContextPreprocessQuerySourceSkolemize = ActorContextPreprocessQuerySourceSkolemize;\n//# sourceMappingURL=ActorContextPreprocessQuerySourceSkolemize.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorContextPreprocessQuerySourceSkolemize\"), exports);\n__exportStar(require(\"./QuerySourceSkolemized\"), exports);\n__exportStar(require(\"./utils\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediatorCombinePipeline = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica mediator that goes over all actors in sequence and forwards I/O.\n * This required the action input and the actor output to be of the same type.\n */\nclass MediatorCombinePipeline extends core_1.Mediator {\n    constructor(args) {\n        super(args);\n    }\n    async mediate(action) {\n        let testResults;\n        try {\n            testResults = this.publish(action);\n        }\n        catch {\n            // If no actors are available, just return the input as output\n            return action;\n        }\n        if (this.filterFailures) {\n            const _testResults = [];\n            for (const result of testResults) {\n                const reply = await result.reply;\n                if (reply.isPassed()) {\n                    _testResults.push(result);\n                }\n            }\n            testResults = _testResults;\n        }\n        // Delegate test errors.\n        const sideDatas = [];\n        testResults = await Promise.all(testResults\n            .map(async ({ actor, reply }, i) => {\n            try {\n                const awaitedReply = await reply;\n                const value = awaitedReply.getOrThrow();\n                sideDatas[i] = awaitedReply.getSideData();\n                return { actor, reply: value };\n            }\n            catch (error) {\n                throw new Error(this.constructFailureMessage(action, [error.message]));\n            }\n        }));\n        // Order the test results if ordering is enabled\n        if (this.order) {\n            // A function used to extract an ordering value from a test result\n            const getOrder = (elem) => {\n                // If there is a field key use it, otherwise use the input\n                // element for ordering\n                const value = this.field ? elem[this.field] : elem;\n                // Check the ordering value is a number\n                if (typeof value !== 'number') {\n                    throw new TypeError('Cannot order elements that are not numbers.');\n                }\n                return value;\n            };\n            testResults = testResults.sort((actor1, actor2) => (this.order === 'increasing' ? 1 : -1) *\n                (getOrder(actor1.reply) - getOrder(actor2.reply)));\n        }\n        // Pass action to first actor,\n        // and each actor output as input to the following actor.\n        let handle = action;\n        let i = 0;\n        for (const { actor } of testResults) {\n            handle = { ...handle, ...await actor.runObservable(handle, sideDatas[i++]) };\n        }\n        // Return the final actor output\n        return handle;\n    }\n    mediateWith() {\n        throw new Error('Method not supported.');\n    }\n}\nexports.MediatorCombinePipeline = MediatorCombinePipeline;\n//# sourceMappingURL=MediatorCombinePipeline.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MediatorCombinePipeline\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHashBindings = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for hash-bindings events.\n *\n * Actor types:\n * * Input:  IActionHashBindings:      Metadata for selecting a hash function.\n * * Test:   IActorTest:\n * * Output: IActorHashBindingsOutput: The resulting hash function.\n *\n * @see IActionHashBindings\n * @see IActorHashBindingsTest\n * @see IActorHashBindingsOutput\n */\nclass ActorHashBindings extends core_1.Actor {\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Failed to obtaining hash functions for bindings} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorHashBindings = ActorHashBindings;\n//# sourceMappingURL=ActorHashBindings.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHashBindings\"), exports);\n//# sourceMappingURL=index.js.map","/**\n * @preserve\n * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)\n *\n * @author <a href=\"mailto:jensyt@gmail.com\">Jens Taylor</a>\n * @see http://github.com/homebrewing/brauhaus-diff\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/murmurhash-js\n * @author <a href=\"mailto:aappleby@gmail.com\">Austin Appleby</a>\n * @see http://sites.google.com/site/murmurhash/\n */\n(function(){\n    var cache;\n\n    // Call this function without `new` to use the cached object (good for\n    // single-threaded environments), or with `new` to create a new object.\n    //\n    // @param {string} key A UTF-16 or ASCII string\n    // @param {number} seed An optional positive integer\n    // @return {object} A MurmurHash3 object for incremental hashing\n    function MurmurHash3(key, seed) {\n        var m = this instanceof MurmurHash3 ? this : cache;\n        m.reset(seed)\n        if (typeof key === 'string' && key.length > 0) {\n            m.hash(key);\n        }\n\n        if (m !== this) {\n            return m;\n        }\n    };\n\n    // Incrementally add a string to this hash\n    //\n    // @param {string} key A UTF-16 or ASCII string\n    // @return {object} this\n    MurmurHash3.prototype.hash = function(key) {\n        var h1, k1, i, top, len;\n\n        len = key.length;\n        this.len += len;\n\n        k1 = this.k1;\n        i = 0;\n        switch (this.rem) {\n            case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0;\n            case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0;\n            case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0;\n            case 3:\n                k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0;\n                k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0;\n        }\n\n        this.rem = (len + this.rem) & 3; // & 3 is same as % 4\n        len -= this.rem;\n        if (len > 0) {\n            h1 = this.h1;\n            while (1) {\n                k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n                k1 = (k1 << 15) | (k1 >>> 17);\n                k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n\n                h1 ^= k1;\n                h1 = (h1 << 13) | (h1 >>> 19);\n                h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff;\n\n                if (i >= len) {\n                    break;\n                }\n\n                k1 = ((key.charCodeAt(i++) & 0xffff)) ^\n                     ((key.charCodeAt(i++) & 0xffff) << 8) ^\n                     ((key.charCodeAt(i++) & 0xffff) << 16);\n                top = key.charCodeAt(i++);\n                k1 ^= ((top & 0xff) << 24) ^\n                      ((top & 0xff00) >> 8);\n            }\n\n            k1 = 0;\n            switch (this.rem) {\n                case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16;\n                case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8;\n                case 1: k1 ^= (key.charCodeAt(i) & 0xffff);\n            }\n\n            this.h1 = h1;\n        }\n\n        this.k1 = k1;\n        return this;\n    };\n\n    // Get the result of this hash\n    //\n    // @return {number} The 32-bit hash\n    MurmurHash3.prototype.result = function() {\n        var k1, h1;\n        \n        k1 = this.k1;\n        h1 = this.h1;\n\n        if (k1 > 0) {\n            k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n            k1 = (k1 << 15) | (k1 >>> 17);\n            k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n            h1 ^= k1;\n        }\n\n        h1 ^= this.len;\n\n        h1 ^= h1 >>> 16;\n        h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff;\n        h1 ^= h1 >>> 13;\n        h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff;\n        h1 ^= h1 >>> 16;\n\n        return h1 >>> 0;\n    };\n\n    // Reset the hash object for reuse\n    //\n    // @param {number} seed An optional positive integer\n    MurmurHash3.prototype.reset = function(seed) {\n        this.h1 = typeof seed === 'number' ? seed : 0;\n        this.rem = this.k1 = this.len = 0;\n        return this;\n    };\n\n    // A cached object to use. This can be safely used if you're in a single-\n    // threaded environment, otherwise you need to create new hashes to use.\n    cache = new MurmurHash3();\n\n    if (typeof(module) != 'undefined') {\n        module.exports = MurmurHash3;\n    } else {\n        this.MurmurHash3 = MurmurHash3;\n    }\n}());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHashBindingsMurmur = void 0;\nconst bus_hash_bindings_1 = require(\"@comunica/bus-hash-bindings\");\nconst core_1 = require(\"@comunica/core\");\n// eslint-disable-next-line ts/no-require-imports,ts/no-var-requires\nconst MurmurHash3 = require('imurmurhash');\n/**\n * A comunica Murmur Hash Bindings Actor.\n */\nclass ActorHashBindingsMurmur extends bus_hash_bindings_1.ActorHashBindings {\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(_action) {\n        return {\n            hashFunction: (bindings, variables) => {\n                let hash = MurmurHash3();\n                for (const variable of variables) {\n                    hash = hash.hash(bindings.get(variable)?.value ?? 'UNDEF');\n                }\n                return hash.result();\n            },\n        };\n    }\n}\nexports.ActorHashBindingsMurmur = ActorHashBindingsMurmur;\n//# sourceMappingURL=ActorHashBindingsMurmur.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHashBindingsMurmur\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediatorRace = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A mediator that picks the first actor that resolves its test.\n */\nclass MediatorRace extends core_1.Mediator {\n    constructor(args) {\n        super(args);\n    }\n    mediateWith(action, testResults) {\n        return new Promise((resolve, reject) => {\n            const errors = [];\n            for (const testResult of testResults) {\n                testResult.reply.then((reply) => {\n                    if (reply.isPassed()) {\n                        resolve((0, core_1.passTestWithSideData)(testResult.actor, reply.getSideData()));\n                    }\n                    else {\n                        errors.push(reply.getFailMessage());\n                        if (errors.length === testResults.length) {\n                            resolve((0, core_1.failTest)(this.constructFailureMessage(action, errors)));\n                        }\n                    }\n                }).catch((error) => {\n                    reject(error);\n                });\n            }\n        });\n    }\n}\nexports.MediatorRace = MediatorRace;\n//# sourceMappingURL=MediatorRace.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MediatorRace\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHashQuads = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for hash-quads events.\n *\n * Actor types:\n * * Input:  IActionHashQuads:      Metadata for selecting a hash function.\n * * Test:   <none>\n * * Output: IActorHashQuadsOutput: The resulting hash function.\n *\n * @see IActionHashQuads\n * @see IActorHashQuadsOutput\n */\nclass ActorHashQuads extends core_1.Actor {\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Failed to obtaining hash functions for quads} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorHashQuads = ActorHashQuads;\n//# sourceMappingURL=ActorHashQuads.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHashQuads\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHashQuadsMurmur = void 0;\nconst bus_hash_quads_1 = require(\"@comunica/bus-hash-quads\");\nconst core_1 = require(\"@comunica/core\");\n// eslint-disable-next-line ts/no-require-imports,ts/no-var-requires\nconst MurmurHash3 = require('imurmurhash');\n/**\n * A comunica Murmur Hash Quads Actor.\n */\nclass ActorHashQuadsMurmur extends bus_hash_quads_1.ActorHashQuads {\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(_action) {\n        return {\n            hashFunction: (quad) => {\n                const hash = MurmurHash3(quad.subject.value);\n                hash.hash(quad.predicate.value);\n                hash.hash(quad.object.value);\n                hash.hash(quad.graph.value);\n                return hash.result();\n            },\n        };\n    }\n}\nexports.ActorHashQuadsMurmur = ActorHashQuadsMurmur;\n//# sourceMappingURL=ActorHashQuadsMurmur.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHashQuadsMurmur\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperation = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for optimize-query-operation events.\n *\n * Actor types:\n * * Input:  IActionOptimizeQueryOperation:      An incoming SPARQL operation.\n * * Test:   <none>\n * * Output: IActorOptimizeQueryOperationOutput: A (possibly optimized) outgoing SPARQL operation.\n *\n * @see IActionOptimizeQueryOperation\n * @see IActorOptimizeQueryOperationOutput\n */\nclass ActorOptimizeQueryOperation extends core_1.Actor {\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Query optimization failed: none of the configured actors were able to optimize} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorOptimizeQueryOperation = ActorOptimizeQueryOperation;\n//# sourceMappingURL=ActorOptimizeQueryOperation.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperation\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationRewriteCopy = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Rewrite Copy Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationRewriteCopy extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const operation = sparqlalgebrajs_1.Util.mapOperation(action.operation, {\n            [sparqlalgebrajs_1.Algebra.types.COPY](operationOriginal, factory) {\n                // No-op if source === destination\n                let result;\n                if ((typeof operationOriginal.destination === 'string' && typeof operationOriginal.source === 'string' &&\n                    operationOriginal.destination === operationOriginal.source) ||\n                    (typeof operationOriginal.destination !== 'string' && typeof operationOriginal.source !== 'string' &&\n                        operationOriginal.destination.equals(operationOriginal.source))) {\n                    result = factory.createCompositeUpdate([]);\n                }\n                else {\n                    // COPY is equivalent to drop destination, and add\n                    result = factory.createCompositeUpdate([\n                        factory.createDrop(operationOriginal.destination, true),\n                        factory.createAdd(operationOriginal.source, operationOriginal.destination, operationOriginal.silent),\n                    ]);\n                }\n                return {\n                    result,\n                    recurse: false,\n                };\n            },\n        }, algebraFactory);\n        return { operation, context: action.context };\n    }\n}\nexports.ActorOptimizeQueryOperationRewriteCopy = ActorOptimizeQueryOperationRewriteCopy;\n//# sourceMappingURL=ActorOptimizeQueryOperationRewriteCopy.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationRewriteCopy\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationRewriteMove = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Rewrite Move Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationRewriteMove extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const operation = sparqlalgebrajs_1.Util.mapOperation(action.operation, {\n            [sparqlalgebrajs_1.Algebra.types.MOVE](operationOriginal, factory) {\n                // No-op if source === destination\n                let result;\n                if ((typeof operationOriginal.destination === 'string' && typeof operationOriginal.source === 'string' &&\n                    operationOriginal.destination === operationOriginal.source) ||\n                    (typeof operationOriginal.destination !== 'string' && typeof operationOriginal.source !== 'string' &&\n                        operationOriginal.destination.equals(operationOriginal.source))) {\n                    result = factory.createCompositeUpdate([]);\n                }\n                else {\n                    // MOVE is equivalent to drop destination, add, and drop source\n                    const updates = [\n                        factory.createDrop(operationOriginal.destination, true),\n                        factory.createAdd(operationOriginal.source, operationOriginal.destination, operationOriginal.silent),\n                        factory.createDrop(operationOriginal.source),\n                    ];\n                    result = factory.createCompositeUpdate(updates);\n                }\n                return {\n                    result,\n                    recurse: false,\n                };\n            },\n        }, algebraFactory);\n        return { operation, context: action.context };\n    }\n}\nexports.ActorOptimizeQueryOperationRewriteMove = ActorOptimizeQueryOperationRewriteMove;\n//# sourceMappingURL=ActorOptimizeQueryOperationRewriteMove.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationRewriteMove\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationRewriteAdd = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst DF = new rdf_data_factory_1.DataFactory();\n/**\n * A comunica Rewrite Add Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationRewriteAdd extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const operation = sparqlalgebrajs_1.Util.mapOperation(action.operation, {\n            [sparqlalgebrajs_1.Algebra.types.ADD](operationOriginal, factory) {\n                // CONSTRUCT all quads from the source, and INSERT them into the destination\n                const destination = operationOriginal.destination === 'DEFAULT' ?\n                    DF.defaultGraph() :\n                    operationOriginal.destination;\n                const source = operationOriginal.source === 'DEFAULT' ? DF.defaultGraph() : operationOriginal.source;\n                const result = factory.createDeleteInsert(undefined, [\n                    factory.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o'), destination),\n                ], factory.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o'), source));\n                return {\n                    result,\n                    recurse: false,\n                };\n            },\n        }, algebraFactory);\n        return { operation, context: action.context };\n    }\n}\nexports.ActorOptimizeQueryOperationRewriteAdd = ActorOptimizeQueryOperationRewriteAdd;\n//# sourceMappingURL=ActorOptimizeQueryOperationRewriteAdd.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationRewriteAdd\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.estimateNpsCardinality = exports.estimateJoinCardinality = exports.estimateUnionCardinality = exports.estimateSliceCardinality = exports.estimateMinusCardinality = exports.estimateCardinality = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n// These are only used internally for estimates\nconst DF = new rdf_data_factory_1.DataFactory();\nconst AF = new sparqlalgebrajs_1.Factory(DF);\n/**\n * Estimate the cardinality of the provided operation using the specified dataset metadata.\n * This is the primary function that should be called to perform cardinality estimation.\n */\nfunction estimateCardinality(operation, dataset) {\n    const estimate = dataset.getCardinality(operation);\n    if (estimate) {\n        return estimate;\n    }\n    switch (operation.type) {\n        case sparqlalgebrajs_1.Algebra.types.ASK:\n            return { type: 'exact', value: 1, dataset: dataset.uri };\n        case sparqlalgebrajs_1.Algebra.types.LOAD:\n        case sparqlalgebrajs_1.Algebra.types.DELETE_INSERT:\n        case sparqlalgebrajs_1.Algebra.types.ADD:\n        case sparqlalgebrajs_1.Algebra.types.COMPOSITE_UPDATE:\n        case sparqlalgebrajs_1.Algebra.types.CLEAR:\n        case sparqlalgebrajs_1.Algebra.types.NOP:\n        case sparqlalgebrajs_1.Algebra.types.DROP:\n        case sparqlalgebrajs_1.Algebra.types.CREATE:\n        case sparqlalgebrajs_1.Algebra.types.MOVE:\n        case sparqlalgebrajs_1.Algebra.types.COPY:\n            return { type: 'exact', value: 0, dataset: dataset.uri };\n        case sparqlalgebrajs_1.Algebra.types.PROJECT:\n        case sparqlalgebrajs_1.Algebra.types.FILTER:\n        case sparqlalgebrajs_1.Algebra.types.ORDER_BY:\n        case sparqlalgebrajs_1.Algebra.types.GROUP:\n        case sparqlalgebrajs_1.Algebra.types.CONSTRUCT:\n        case sparqlalgebrajs_1.Algebra.types.DISTINCT:\n        case sparqlalgebrajs_1.Algebra.types.REDUCED:\n        case sparqlalgebrajs_1.Algebra.types.EXTEND:\n        case sparqlalgebrajs_1.Algebra.types.FROM:\n        case sparqlalgebrajs_1.Algebra.types.GRAPH:\n            return estimateCardinality(operation.input, dataset);\n        case sparqlalgebrajs_1.Algebra.types.ZERO_OR_ONE_PATH:\n        case sparqlalgebrajs_1.Algebra.types.ZERO_OR_MORE_PATH:\n        case sparqlalgebrajs_1.Algebra.types.ONE_OR_MORE_PATH:\n        case sparqlalgebrajs_1.Algebra.types.INV:\n            return estimateCardinality(operation.path, dataset);\n        case sparqlalgebrajs_1.Algebra.types.PATH:\n            return estimateCardinality(operation.predicate, dataset);\n        case sparqlalgebrajs_1.Algebra.types.NPS:\n            return estimateNpsCardinality(operation, dataset);\n        case sparqlalgebrajs_1.Algebra.types.LINK:\n            return estimateCardinality(AF.createPattern(DF.variable('s'), operation.iri, DF.variable('o')), dataset);\n        case sparqlalgebrajs_1.Algebra.types.UNION:\n        case sparqlalgebrajs_1.Algebra.types.SEQ:\n        case sparqlalgebrajs_1.Algebra.types.ALT:\n            return estimateUnionCardinality(operation.input, dataset);\n        case sparqlalgebrajs_1.Algebra.types.BGP:\n            return estimateJoinCardinality(operation.patterns, dataset);\n        case sparqlalgebrajs_1.Algebra.types.JOIN:\n        case sparqlalgebrajs_1.Algebra.types.LEFT_JOIN:\n            return estimateJoinCardinality(operation.input, dataset);\n        case sparqlalgebrajs_1.Algebra.types.SLICE:\n            return estimateSliceCardinality(operation, dataset);\n        case sparqlalgebrajs_1.Algebra.types.MINUS:\n            return estimateMinusCardinality(operation, dataset);\n        case sparqlalgebrajs_1.Algebra.types.VALUES:\n            return { type: 'exact', value: operation.bindings.length, dataset: dataset.uri };\n        case sparqlalgebrajs_1.Algebra.types.SERVICE:\n        case sparqlalgebrajs_1.Algebra.types.DESCRIBE:\n        case sparqlalgebrajs_1.Algebra.types.EXPRESSION:\n        case sparqlalgebrajs_1.Algebra.types.PATTERN:\n            return { type: 'estimate', value: Number.POSITIVE_INFINITY, dataset: dataset.uri };\n    }\n}\nexports.estimateCardinality = estimateCardinality;\n/**\n * Estimate the cardinality of a minus, by taking into account the input cardinalities.\n */\nfunction estimateMinusCardinality(minus, dataset) {\n    const estimateFirst = estimateCardinality(minus.input[0], dataset);\n    const estimateSecond = estimateCardinality(minus.input[1], dataset);\n    return {\n        type: 'estimate',\n        value: Math.max(estimateFirst.value - estimateSecond.value, 0),\n        dataset: dataset.uri,\n    };\n}\nexports.estimateMinusCardinality = estimateMinusCardinality;\n/**\n * Estimate the cardinality of a slice operation, taking into account the input cardinality and the slice range.\n */\nfunction estimateSliceCardinality(slice, dataset) {\n    const estimate = estimateCardinality(slice.input, dataset);\n    if (estimate.value > 0) {\n        estimate.value = Math.max(estimate.value - slice.start, 0);\n        if (slice.length !== undefined) {\n            estimate.value = Math.min(estimate.value, slice.length);\n        }\n    }\n    return estimate;\n}\nexports.estimateSliceCardinality = estimateSliceCardinality;\n/**\n * Estimate the cardinality of a union, using a sum of the individual input cardinalities.\n */\nfunction estimateUnionCardinality(input, dataset) {\n    const estimate = { type: 'exact', value: 0, dataset: dataset.uri };\n    for (const operation of input) {\n        const cardinality = estimateCardinality(operation, dataset);\n        if (cardinality.type === 'estimate' && estimate.type === 'exact') {\n            estimate.type = cardinality.type;\n        }\n        if (cardinality.value > 0) {\n            estimate.value += cardinality.value;\n        }\n    }\n    return estimate;\n}\nexports.estimateUnionCardinality = estimateUnionCardinality;\n/**\n * Estimate the cardinality of a join. This estimation is done by:\n *  1. Grouping operations together based on variables.\n *  2. Selecting the minimum op cardinality in each group as the cardinality of that group.\n *  3. Multiplying cardinalities of these (detached) groups.\n *\n * This should provide a good balance between selective groups of operations,\n * as well as cartesian joins between groups that do not overlap.\n */\nfunction estimateJoinCardinality(operations, dataset) {\n    const operationGroups = [];\n    for (const operation of operations) {\n        const vars = sparqlalgebrajs_1.Util.inScopeVariables(operation).map(v => v.value);\n        const group = operationGroups.find(g => vars.some(v => g.vars.has(v)));\n        if (group) {\n            group.ops.push(operation);\n            for (const v of vars) {\n                group.vars.add(v);\n            }\n        }\n        else {\n            operationGroups.push({ ops: [operation], vars: new Set(vars) });\n        }\n    }\n    const cardinality = {\n        type: 'estimate',\n        value: operationGroups\n            .map(g => Math.min(...g.ops.map(o => estimateCardinality(o, dataset).value)))\n            .reduce((acc, cur) => acc * cur, 1),\n        dataset: dataset.uri,\n    };\n    return cardinality;\n}\nexports.estimateJoinCardinality = estimateJoinCardinality;\n/**\n * Estimate the cardinality of a negated property set, by subtracting the non-inversed\n * estimate from the total number of triples.\n */\nfunction estimateNpsCardinality(nps, dataset) {\n    const seq = AF.createSeq([...nps.iris].reverse().map(iri => AF.createLink(iri)));\n    const seqCardinality = estimateCardinality(seq, dataset);\n    const pattern = AF.createPattern(DF.variable('s'), DF.variable('p'), DF.variable('o'));\n    const patternCardinality = estimateCardinality(pattern, dataset);\n    return {\n        type: 'estimate',\n        value: Math.max(0, patternCardinality.value - seqCardinality.value),\n        dataset: dataset.uri,\n    };\n}\nexports.estimateNpsCardinality = estimateNpsCardinality;\n//# sourceMappingURL=CardinalityEstimators.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.doesShapeAcceptOperation = void 0;\n/**\n * Check if the given shape accepts the given query operation.\n * @param shape A shape to test the query operation against.\n * @param operation A query operation to test.\n * @param options Additional options to consider.\n * @param options.joinBindings If additional bindings will be pushed down to the source for joining.\n * @param options.filterBindings If additional bindings will be pushed down to the source for filtering.\n */\nfunction doesShapeAcceptOperation(shape, operation, options) {\n    return doesShapeAcceptOperationRecurseShape(shape, shape, operation, options);\n}\nexports.doesShapeAcceptOperation = doesShapeAcceptOperation;\nfunction doesShapeAcceptOperationRecurseShape(shapeTop, shapeActive, operation, options) {\n    // Recurse into the shape\n    if (shapeActive.type === 'conjunction') {\n        return shapeActive.children\n            .every(child => doesShapeAcceptOperationRecurseShape(shapeTop, child, operation, options));\n    }\n    if (shapeActive.type === 'disjunction') {\n        return shapeActive.children\n            .some(child => doesShapeAcceptOperationRecurseShape(shapeTop, child, operation, options));\n    }\n    if (shapeActive.type === 'arity') {\n        return doesShapeAcceptOperationRecurseShape(shapeTop, shapeActive.child, operation, options);\n    }\n    // Validate options\n    if ((options?.joinBindings && !shapeActive.joinBindings) ??\n        (options?.filterBindings && !shapeActive.filterBindings)) {\n        return false;\n    }\n    // Check if the shape's operation matches with the given operation\n    const shapeOperation = shapeActive.operation;\n    switch (shapeOperation.operationType) {\n        case 'type': {\n            if (!doesShapeAcceptOperationRecurseOperation(shapeTop, shapeActive, operation, options)) {\n                return false;\n            }\n            return shapeOperation.type === operation.type;\n        }\n        case 'pattern': {\n            if (!doesShapeAcceptOperationRecurseOperation(shapeTop, shapeActive, operation, options)) {\n                return false;\n            }\n            return shapeOperation.pattern.type === operation.type;\n        }\n        case 'wildcard': {\n            return true;\n        }\n    }\n}\nfunction doesShapeAcceptOperationRecurseOperation(shapeTop, shapeActive, operation, options) {\n    // Recurse into the operation, and restart from the top-level shape\n    if (operation.input) {\n        const inputs = Array.isArray(operation.input) ? operation.input : [operation.input];\n        if (!inputs.every(input => doesShapeAcceptOperationRecurseShape(shapeTop, shapeTop, input, options))) {\n            return false;\n        }\n    }\n    if (operation.patterns && !operation.patterns\n        .every((input) => doesShapeAcceptOperationRecurseShape(shapeTop, shapeTop, input, options))) {\n        return false;\n    }\n    return true;\n}\n//# sourceMappingURL=FragmentSelectorShapes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeOperationSource = exports.assignOperationSource = exports.getOperationSource = exports.testReadOnly = exports.validateQueryOutput = exports.getSafeVoid = exports.getSafeBoolean = exports.getSafeQuads = exports.getSafeBindings = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * Safely cast a query operation output to a bindings output.\n * This will throw a runtime error if the output is of the incorrect type.\n * @param {IQueryOperationResult} output A query operation output.\n * @return {IQueryOperationResultBindings} A bindings query operation output.\n */\nfunction getSafeBindings(output) {\n    validateQueryOutput(output, 'bindings');\n    return output;\n}\nexports.getSafeBindings = getSafeBindings;\n/**\n * Safely cast a query operation output to a quads output.\n * This will throw a runtime error if the output is of the incorrect type.\n * @param {IQueryOperationResult} output A query operation output.\n * @return {IQueryOperationResultQuads} A quads query operation output.\n */\nfunction getSafeQuads(output) {\n    validateQueryOutput(output, 'quads');\n    return output;\n}\nexports.getSafeQuads = getSafeQuads;\n/**\n * Safely cast a query operation output to a boolean output.\n * This will throw a runtime error if the output is of the incorrect type.\n * @param {IQueryOperationResult} output A query operation output.\n * @return {IQueryOperationResultBoolean} A boolean query operation output.\n */\nfunction getSafeBoolean(output) {\n    validateQueryOutput(output, 'boolean');\n    return output;\n}\nexports.getSafeBoolean = getSafeBoolean;\n/**\n * Safely cast a query operation output to a void output.\n * This will throw a runtime error if the output is of the incorrect type.\n * @param {IQueryOperationResult} output A query operation output.\n * @return {IQueryOperationResultVoid} A void query operation output.\n */\nfunction getSafeVoid(output) {\n    validateQueryOutput(output, 'void');\n    return output;\n}\nexports.getSafeVoid = getSafeVoid;\n/**\n * Throw an error if the output type does not match the expected type.\n * @param {IQueryOperationResult} output A query operation output.\n * @param {string} expectedType The expected output type.\n */\nfunction validateQueryOutput(output, expectedType) {\n    if (output.type !== expectedType) {\n        throw new Error(`Invalid query output type: Expected '${expectedType}' but got '${output.type}'`);\n    }\n}\nexports.validateQueryOutput = validateQueryOutput;\n/**\n * Test if the context contains the readOnly flag.\n * @param context An action context.\n */\nfunction testReadOnly(context) {\n    if (context.get(context_entries_1.KeysQueryOperation.readOnly)) {\n        return (0, core_1.failTest)(`Attempted a write operation in read-only mode`);\n    }\n    return (0, core_1.passTestVoid)();\n}\nexports.testReadOnly = testReadOnly;\n/**\n * Obtain the query source attached to the given operation.\n * @param operation An algebra operation.\n */\nfunction getOperationSource(operation) {\n    return operation.metadata?.scopedSource;\n}\nexports.getOperationSource = getOperationSource;\n/**\n * Assign a source wrapper to the given operation.\n * The operation is copied and returned.\n * @param operation An operation.\n * @param source A source wrapper.\n */\nfunction assignOperationSource(operation, source) {\n    operation = { ...operation };\n    operation.metadata = operation.metadata ? { ...operation.metadata } : {};\n    operation.metadata.scopedSource = source;\n    return operation;\n}\nexports.assignOperationSource = assignOperationSource;\n/**\n * Remove the source wrapper from the given operation.\n * The operation is mutated.\n * @param operation An operation.\n */\nfunction removeOperationSource(operation) {\n    delete operation.metadata?.scopedSource;\n    if (operation.metadata && Object.keys(operation.metadata).length === 0) {\n        delete operation.metadata;\n    }\n}\nexports.removeOperationSource = removeOperationSource;\n//# sourceMappingURL=Utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.materializeOperation = exports.materializeTerm = void 0;\nconst rdf_string_1 = require(\"rdf-string\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * Materialize a term with the given binding.\n *\n * If the given term is a variable,\n * and that variable exist in the given bindings object,\n * the value of that binding is returned.\n * In all other cases, the term itself is returned.\n *\n * @param {RDF.Term} term A term.\n * @param {Bindings} bindings A bindings object.\n * @return {RDF.Term} The materialized term.\n */\nfunction materializeTerm(term, bindings) {\n    if (term.termType === 'Variable') {\n        const value = bindings.get(term);\n        if (value) {\n            return value;\n        }\n    }\n    if (term.termType === 'Quad' && (0, rdf_terms_1.someTermsNested)(term, value => value.termType === 'Variable')) {\n        return (0, rdf_terms_1.mapTermsNested)(term, subTerm => materializeTerm(subTerm, bindings));\n    }\n    return term;\n}\nexports.materializeTerm = materializeTerm;\n/**\n * Materialize the given operation (recursively) with the given bindings.\n * Essentially, the variables in the given operation\n * which don't appear in the projection operation will be replaced\n * by the terms bound to the variables in the given bindings.\n * @param {Algebra.Operation} operation SPARQL algebra operation.\n * And the variables that appear in the projection operation\n * will be added to a new values operation.\n * @param {Bindings} bindings A bindings object.\n * @param algebraFactory The algebra factory.\n * @param bindingsFactory The bindings factory.\n * @param options Options for materializations.\n * @param options.strictTargetVariables If target variable bindings (such as on SELECT or BIND) should not be allowed.\n * @param options.bindFilter If filter expressions should be materialized.\n * @param options.originalBindings The bindings object as it was at the top level call of materializeOperation.\n * @return Algebra.Operation A new operation materialized with the given bindings.\n */\nfunction materializeOperation(operation, bindings, algebraFactory, bindingsFactory, options = {}) {\n    options = {\n        strictTargetVariables: 'strictTargetVariables' in options ? options.strictTargetVariables : false,\n        bindFilter: 'bindFilter' in options ? options.bindFilter : true,\n        originalBindings: 'originalBindings' in options ? options.originalBindings : bindings,\n    };\n    return sparqlalgebrajs_1.Util.mapOperation(operation, {\n        path(op, factory) {\n            // Materialize variables in a path expression.\n            // The predicate expression will be recursed.\n            return {\n                recurse: false,\n                result: Object.assign(factory.createPath(materializeTerm(op.subject, bindings), op.predicate, materializeTerm(op.object, bindings), materializeTerm(op.graph, bindings)), { metadata: op.metadata }),\n            };\n        },\n        pattern(op, factory) {\n            // Materialize variables in the quad pattern.\n            return {\n                recurse: false,\n                result: Object.assign(factory.createPattern(materializeTerm(op.subject, bindings), materializeTerm(op.predicate, bindings), materializeTerm(op.object, bindings), materializeTerm(op.graph, bindings)), { metadata: op.metadata }),\n            };\n        },\n        join(op, factory) {\n            // Materialize join operation, and ensure metadata is taken into account.\n            // Join entries with metadata should not be flattened.\n            return {\n                recurse: false,\n                result: factory.createJoin(op.input.map(input => materializeOperation(input, bindings, algebraFactory, bindingsFactory, options)), op.input.every(input => !input.metadata)),\n            };\n        },\n        extend(op) {\n            // Materialize an extend operation.\n            // If strictTargetVariables is true, we throw if the extension target variable is attempted to be bound.\n            // Otherwise, we remove the extend operation.\n            if (bindings.has(op.variable)) {\n                if (options.strictTargetVariables) {\n                    throw new Error(`Tried to bind variable ${(0, rdf_string_1.termToString)(op.variable)} in a BIND operator.`);\n                }\n                else {\n                    return {\n                        recurse: true,\n                        result: materializeOperation(op.input, bindings, algebraFactory, bindingsFactory, options),\n                    };\n                }\n            }\n            return {\n                recurse: true,\n                result: op,\n            };\n        },\n        group(op, factory) {\n            // Materialize a group operation.\n            // If strictTargetVariables is true, we throw if the group target variable is attempted to be bound.\n            // Otherwise, we just filter out the bound variables.\n            if (options.strictTargetVariables) {\n                for (const variable of op.variables) {\n                    if (bindings.has(variable)) {\n                        throw new Error(`Tried to bind variable ${(0, rdf_string_1.termToString)(variable)} in a GROUP BY operator.`);\n                    }\n                }\n                return {\n                    recurse: true,\n                    result: op,\n                };\n            }\n            const variables = op.variables.filter(variable => !bindings.has(variable));\n            return {\n                recurse: true,\n                result: factory.createGroup(op.input, variables, op.aggregates),\n            };\n        },\n        filter(op, factory) {\n            const originalBindings = options.originalBindings;\n            if (op.expression.expressionType !== 'operator' || originalBindings.size === 0) {\n                return {\n                    recurse: false,\n                    result: op,\n                };\n            }\n            // Make a values clause using all the variables from originalBindings.\n            const values = createValuesFromBindings(factory, originalBindings);\n            // Recursively materialize the filter expression\n            const recursionResultExpression = materializeOperation(op.expression, bindings, algebraFactory, bindingsFactory, options);\n            // Recursively materialize the filter input\n            let recursionResultInput = materializeOperation(op.input, bindings, algebraFactory, bindingsFactory, options);\n            if (values.length > 0) {\n                recursionResultInput = factory.createJoin([...values, recursionResultInput]);\n            }\n            return {\n                // Recursion already taken care of above.\n                recurse: false,\n                result: factory.createFilter(recursionResultInput, recursionResultExpression),\n            };\n        },\n        project(op, factory) {\n            // Materialize a project operation.\n            // Find projected variables which are present in the originalBindings.\n            // This will result in projected variables being handled via a values clause.\n            const values = createValuesFromBindings(factory, options.originalBindings, op.variables);\n            let recursionResult = materializeOperation(op.input, bindings, algebraFactory, bindingsFactory, options);\n            if (values.length > 0) {\n                recursionResult = factory.createJoin([...values, recursionResult]);\n            }\n            return {\n                recurse: false,\n                result: factory.createProject(recursionResult, op.variables),\n            };\n        },\n        values(op, factory) {\n            // Materialize a values operation.\n            // If strictTargetVariables is true, we throw if the values target variable is attempted to be bound.\n            // Otherwise, we just filter out the bound variables and their bindings.\n            if (options.strictTargetVariables) {\n                for (const variable of op.variables) {\n                    if (bindings.has(variable)) {\n                        throw new Error(`Tried to bind variable ${(0, rdf_string_1.termToString)(variable)} in a VALUES operator.`);\n                    }\n                }\n            }\n            else {\n                const variables = op.variables.filter(variable => !bindings.has(variable));\n                const valueBindings = op.bindings.map((binding) => {\n                    const newBinding = { ...binding };\n                    let valid = true;\n                    // eslint-disable-next-line unicorn/no-array-for-each\n                    bindings.forEach((value, key) => {\n                        const keyString = (0, rdf_string_1.termToString)(key);\n                        if (keyString in newBinding) {\n                            if (!value.equals(newBinding[keyString])) {\n                                // If the value of the binding is not equal, remove this binding completely from the VALUES clause\n                                valid = false;\n                            }\n                            delete newBinding[keyString];\n                        }\n                    });\n                    return valid ? newBinding : undefined;\n                }).filter(Boolean);\n                return {\n                    recurse: true,\n                    result: factory.createValues(variables, valueBindings),\n                };\n            }\n            return {\n                recurse: false,\n                result: op,\n            };\n        },\n        expression(op, factory) {\n            if (!options.bindFilter) {\n                return {\n                    recurse: false,\n                    result: op,\n                };\n            }\n            if (op.expressionType === 'term') {\n                // Materialize a term expression\n                return {\n                    recurse: false,\n                    result: factory.createTermExpression(materializeTerm(op.term, bindings)),\n                };\n            }\n            if (op.expressionType === 'operator') {\n                if (op.operator === 'bound' && op.args.length === 1 && op.args[0].expressionType === 'term' &&\n                    [...bindings.keys()].some(variable => op.args[0].term.equals(variable))) {\n                    return {\n                        recurse: false,\n                        result: factory.createTermExpression(factory.dataFactory.literal('true', factory.dataFactory.namedNode('http://www.w3.org/2001/XMLSchema#boolean'))),\n                    };\n                }\n                return {\n                    recurse: true,\n                    result: op,\n                };\n            }\n            if (op.expressionType === 'aggregate' &&\n                'variable' in op &&\n                bindings.has(op.variable)) {\n                // Materialize a bound aggregate operation.\n                // If strictTargetVariables is true, we throw if the expression target variable is attempted to be bound.\n                // Otherwise, we ignore this operation.\n                if (options.strictTargetVariables) {\n                    throw new Error(`Tried to bind ${(0, rdf_string_1.termToString)(op.variable)} in a ${op.aggregator} aggregate.`);\n                }\n                else {\n                    return {\n                        recurse: true,\n                        result: op,\n                    };\n                }\n            }\n            return {\n                recurse: true,\n                result: op,\n            };\n        },\n    }, algebraFactory);\n}\nexports.materializeOperation = materializeOperation;\n/**\n * Make a values operation containing the values that are present in `bindings` for variables present in `variables`.\n * If no `variables` argument is given, this method returns a values operation\n * containing every binding from `bindings`.\n * @param {Factory} factory The Factory used to create the values operation.\n * @param {Bindings} bindings A bindings object.\n * @param {Variable[]} variables A list of variables.\n * @returns Algebra.Values A new values operation the given bindings.\n */\nfunction createValuesFromBindings(factory, bindings, variables) {\n    const values = [];\n    for (const [variable, binding] of bindings) {\n        if (!variables || variables.some(v => v.equals(variable))) {\n            const newBinding = { [(0, rdf_string_1.termToString)(variable)]: binding };\n            values.push(factory.createValues([variable], [newBinding]));\n        }\n    }\n    return values;\n}\n//# sourceMappingURL=MaterializeBindings.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./CardinalityEstimators\"), exports);\n__exportStar(require(\"./FragmentSelectorShapes\"), exports);\n__exportStar(require(\"./Utils\"), exports);\n__exportStar(require(\"./MaterializeBindings\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationGroupSources = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Group Sources Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationGroupSources extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if ((0, utils_query_operation_1.getOperationSource)(action.operation)) {\n            return (0, core_1.failTest)(`Actor ${this.name} does not work with top-level operation sources.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        return { operation: await this.groupOperation(action.operation, action.context), context: action.context };\n    }\n    /**\n     * Group operations belonging to the same source together, only if that source accepts the grouped operations.\n     * This grouping will be done recursively for the whole operation tree.\n     * Operations annotated with sources are considered leaves in the tree.\n     * @param operation An operation to group.\n     * @param context The action context.\n     */\n    async groupOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        // Return operation as-is if the operation already has a single source, or if the operation has no children.\n        if ((0, utils_query_operation_1.getOperationSource)(operation) ?? !('input' in operation)) {\n            return operation;\n        }\n        // If operation has a single input, move source annotation upwards if the source can handle it.\n        if (!Array.isArray(operation.input)) {\n            const groupedInput = await this.groupOperation(operation.input, context);\n            if (groupedInput.metadata?.scopedSource) {\n                const source = (0, utils_query_operation_1.getOperationSource)(groupedInput);\n                if ((0, utils_query_operation_1.doesShapeAcceptOperation)(await source.source.getSelectorShape(context), operation)) {\n                    this.logDebug(context, `Hoist 1 source-specific operation into a single ${operation.type} operation for ${source.source.toString()}`);\n                    (0, utils_query_operation_1.removeOperationSource)(groupedInput);\n                    operation = (0, utils_query_operation_1.assignOperationSource)(operation, source);\n                }\n            }\n            return { ...operation, input: groupedInput };\n        }\n        // If operation has multiple inputs, cluster source annotations.\n        const inputs = await Promise.all(operation.input\n            .map(subInput => this.groupOperation(subInput, context)));\n        const clusters = this.clusterOperationsWithEqualSources(inputs);\n        // If we just have a single cluster, move the source annotation upwards\n        if (clusters.length === 1) {\n            const newInputs = clusters[0];\n            const source = (0, utils_query_operation_1.getOperationSource)(clusters[0][0]);\n            return {\n                ...await this.moveSourceAnnotationUpwardsIfPossible(operation, newInputs, source, context),\n                input: newInputs,\n            };\n        }\n        // If the number of clusters is equal to the number of original inputs, do nothing.\n        if (clusters.length === inputs.length) {\n            return { ...operation, input: inputs };\n        }\n        // If we have multiple clusters, created nested multi-operations\n        let multiFactoryMethod;\n        switch (operation.type) {\n            case sparqlalgebrajs_1.Algebra.types.JOIN:\n                multiFactoryMethod = algebraFactory.createJoin.bind(algebraFactory);\n                break;\n            case sparqlalgebrajs_1.Algebra.types.UNION:\n                multiFactoryMethod = algebraFactory.createUnion.bind(algebraFactory);\n                break;\n            case sparqlalgebrajs_1.Algebra.types.ALT:\n                multiFactoryMethod = algebraFactory.createAlt.bind(algebraFactory);\n                break;\n            case sparqlalgebrajs_1.Algebra.types.SEQ:\n                multiFactoryMethod = algebraFactory.createSeq.bind(algebraFactory);\n                break;\n            default:\n                // While LeftJoin and Minus are also multi-operations,\n                // these can never occur because they only have 2 inputs,\n                // so these cases will always be captured by one of the 2 if-cases above\n                // (clusters.length === 1 or clusters.length === input.length)\n                // In all other cases, error\n                throw new Error(`Unsupported operation '${operation.type}' detected while grouping sources`);\n        }\n        return await this.groupOperationMulti(clusters, multiFactoryMethod, context);\n    }\n    async groupOperationMulti(clusters, factoryMethod, context) {\n        let flatten = true;\n        const nestedMerges = await Promise.all(clusters.map(async (cluster) => {\n            const source = (0, utils_query_operation_1.getOperationSource)(cluster[0]);\n            const merged = await this\n                .moveSourceAnnotationUpwardsIfPossible(factoryMethod(cluster, true), cluster, source, context);\n            if ((0, utils_query_operation_1.getOperationSource)(merged)) {\n                flatten = false;\n            }\n            return merged;\n        }));\n        return factoryMethod(nestedMerges, flatten);\n    }\n    /**\n     * Cluster the given operations by equal source annotations.\n     * @param operationsIn An array of operations to cluster.\n     */\n    clusterOperationsWithEqualSources(operationsIn) {\n        // Operations can have a source, or no source at all\n        const sourceOperations = new Map();\n        const sourcelessOperations = [];\n        // Cluster by source\n        for (const operation of operationsIn) {\n            const source = (0, utils_query_operation_1.getOperationSource)(operation);\n            if (source) {\n                if (!sourceOperations.has(source)) {\n                    sourceOperations.set(source, []);\n                }\n                sourceOperations.get(source).push(operation);\n            }\n            else {\n                sourcelessOperations.push(operation);\n            }\n        }\n        // Return clusters\n        const clusters = [];\n        if (sourcelessOperations.length > 0) {\n            clusters.push(sourcelessOperations);\n        }\n        for (const [source, operations] of sourceOperations.entries()) {\n            clusters.push(operations\n                .map(operation => (0, utils_query_operation_1.assignOperationSource)(operation, source)));\n        }\n        return clusters;\n    }\n    /**\n     * If the given source accepts the grouped operation, annotate the grouped operation with the source,\n     * and remove the source annotation from the seperate input operations.\n     * Otherwise, return the grouped operation unchanged.\n     * @param operation A grouped operation consisting of all given input operations.\n     * @param inputs An array of operations that share the same source annotation.\n     * @param source The common source.\n     * @param context The action context.\n     */\n    async moveSourceAnnotationUpwardsIfPossible(operation, inputs, source, context) {\n        if (source && (0, utils_query_operation_1.doesShapeAcceptOperation)(await source.source.getSelectorShape(context), operation)) {\n            this.logDebug(context, `Hoist ${inputs.length} source-specific operations into a single ${operation.type} operation for ${source.source.toString()}`);\n            operation = (0, utils_query_operation_1.assignOperationSource)(operation, source);\n            for (const input of inputs) {\n                (0, utils_query_operation_1.removeOperationSource)(input);\n            }\n        }\n        return operation;\n    }\n}\nexports.ActorOptimizeQueryOperationGroupSources = ActorOptimizeQueryOperationGroupSources;\n//# sourceMappingURL=ActorOptimizeQueryOperationGroupSources.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationGroupSources\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationConstructDistinct = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst Keys_1 = require(\"@comunica/context-entries/lib/Keys\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Construct Distinct Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationConstructDistinct extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (!action.context.has(Keys_1.KeysInitQuery.distinctConstruct)) {\n            return (0, core_1.failTest)(`${this.name} was not enabled by the query.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const operation = sparqlalgebrajs_1.Util.mapOperation(action.operation, {\n            construct(op, factory) {\n                return {\n                    recurse: false,\n                    result: factory.createDistinct(factory.createConstruct(op.input, op.template)),\n                };\n            },\n        });\n        return { operation, context: action.context.delete(Keys_1.KeysInitQuery.distinctConstruct) };\n    }\n}\nexports.ActorOptimizeQueryOperationConstructDistinct = ActorOptimizeQueryOperationConstructDistinct;\n//# sourceMappingURL=ActorOptimizeQueryOperationConstructDistinct.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationConstructDistinct\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryParse = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for query-parse events.\n *\n * Actor types:\n * * Input:  IActionSparqlParse:      A SPARQL query string.\n * * Test:   <none>\n * * Output: IActorSparqlParseOutput: A parsed query in SPARQL query algebra.\n *\n * @see IActionQueryParse\n * @see IActorQueryParseOutput\n */\nclass ActorQueryParse extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Query parsing failed: none of the configured parsers were able to the query \"${action.query}\"} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorQueryParse = ActorQueryParse;\n//# sourceMappingURL=ActorQueryParse.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryParse\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryParseSparql = void 0;\nconst bus_query_parse_1 = require(\"@comunica/bus-query-parse\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst sparqljs_1 = require(\"sparqljs\");\n/**\n * A comunica Algebra SPARQL Parse Actor.\n */\nclass ActorQueryParseSparql extends bus_query_parse_1.ActorQueryParse {\n    constructor(args) {\n        super(args);\n        this.prefixes = Object.freeze(this.prefixes);\n    }\n    async test(action) {\n        if (action.queryFormat && action.queryFormat.language !== 'sparql') {\n            return (0, core_1.failTest)('This actor can only parse SPARQL queries');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const parser = new sparqljs_1.Parser({\n            prefixes: this.prefixes,\n            baseIRI: action.baseIRI,\n            sparqlStar: true,\n            factory: dataFactory,\n        });\n        const parsedSyntax = parser.parse(action.query);\n        const baseIRI = parsedSyntax.type === 'query' ? parsedSyntax.base : undefined;\n        return {\n            baseIRI,\n            operation: (0, sparqlalgebrajs_1.translate)(parsedSyntax, {\n                quads: true,\n                prefixes: this.prefixes,\n                blankToVariable: true,\n                baseIRI: action.baseIRI,\n                dataFactory,\n            }),\n        };\n    }\n}\nexports.ActorQueryParseSparql = ActorQueryParseSparql;\n//# sourceMappingURL=ActorQueryParseSparql.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryParseSparql\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectiveNodeHandlerAdapter = void 0;\n/**\n * An abstract handler for GraphQL directives.\n */\nclass DirectiveNodeHandlerAdapter {\n    constructor(targetKind, util, settings) {\n        this.targetKind = targetKind;\n        this.util = util;\n        this.settings = settings;\n    }\n    /**\n     * Get the value of the 'if' argument in a directive.\n     * @param {DirectiveNode} directive A directive.\n     * @param {IConvertContext} convertContext A convert context.\n     * @return {Term} The term.\n     */\n    getDirectiveConditionalValue(directive, convertContext) {\n        const arg = this.util.getArgument(directive.arguments, 'if');\n        if (!arg) {\n            throw new Error(`The directive ${directive.name.value} is missing an if-argument.`);\n        }\n        const subValue = this.util.handleNodeValue(arg.value, arg.name.value, convertContext);\n        if (subValue.terms.length !== 1) {\n            throw new Error(`Can not apply the directive ${directive.name.value} with a list.`);\n        }\n        return subValue.terms[0];\n    }\n    /**\n     * If a `scope: all` directive param is present.\n     * @param {DirectiveNode} directive A directive.\n     * @return {boolean} If `scope: all` is present.\n     */\n    isDirectiveScopeAll(directive) {\n        const scopeArg = this.util.getArgument(directive.arguments, 'scope');\n        return scopeArg && scopeArg.value.kind === 'EnumValue' && scopeArg.value.value === 'all';\n    }\n}\nexports.DirectiveNodeHandlerAdapter = DirectiveNodeHandlerAdapter;\n//# sourceMappingURL=DirectiveNodeHandlerAdapter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectiveNodeHandlerInclude = void 0;\nconst DirectiveNodeHandlerAdapter_1 = require(\"./DirectiveNodeHandlerAdapter\");\n/**\n * A handler for include directives.\n */\nclass DirectiveNodeHandlerInclude extends DirectiveNodeHandlerAdapter_1.DirectiveNodeHandlerAdapter {\n    constructor(util, settings) {\n        super('include', util, settings);\n    }\n    handle(directiveContext, convertContext) {\n        const val = this.getDirectiveConditionalValue(directiveContext.directive, convertContext);\n        if (val.termType === 'Literal' && val.value === 'false') {\n            return { ignore: true };\n        }\n        return {};\n    }\n}\nexports.DirectiveNodeHandlerInclude = DirectiveNodeHandlerInclude;\n//# sourceMappingURL=DirectiveNodeHandlerInclude.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectiveNodeHandlerOptional = void 0;\nconst DirectiveNodeHandlerAdapter_1 = require(\"./DirectiveNodeHandlerAdapter\");\n/**\n * A handler for optional directives.\n */\nclass DirectiveNodeHandlerOptional extends DirectiveNodeHandlerAdapter_1.DirectiveNodeHandlerAdapter {\n    constructor(util, settings) {\n        super('optional', util, settings);\n    }\n    handle(directiveContext, convertContext) {\n        return {\n            operationOverrider: (operation) => this.util.operationFactory.createLeftJoin(this.util.operationFactory.createBgp([]), operation),\n        };\n    }\n}\nexports.DirectiveNodeHandlerOptional = DirectiveNodeHandlerOptional;\n//# sourceMappingURL=DirectiveNodeHandlerOptional.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SingularizeState = void 0;\n/**\n * A singularization state for variable values.\n */\nvar SingularizeState;\n(function (SingularizeState) {\n    /**\n     * If only a first matching value should be picked.\n     */\n    SingularizeState[SingularizeState[\"SINGLE\"] = 0] = \"SINGLE\";\n    /**\n     * If all matching values should be picked.\n     */\n    SingularizeState[SingularizeState[\"PLURAL\"] = 1] = \"PLURAL\";\n})(SingularizeState = exports.SingularizeState || (exports.SingularizeState = {}));\n//# sourceMappingURL=IConvertContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectiveNodeHandlerPlural = void 0;\nconst IConvertContext_1 = require(\"../../IConvertContext\");\nconst DirectiveNodeHandlerAdapter_1 = require(\"./DirectiveNodeHandlerAdapter\");\n/**\n * A handler for plural directives.\n */\nclass DirectiveNodeHandlerPlural extends DirectiveNodeHandlerAdapter_1.DirectiveNodeHandlerAdapter {\n    constructor(util, settings) {\n        super('plural', util, settings);\n    }\n    handle(directiveContext, convertContext) {\n        if (this.isDirectiveScopeAll(directiveContext.directive)) {\n            convertContext.singularizeState = IConvertContext_1.SingularizeState.PLURAL;\n        }\n        // Delete the existing entry, as this may have already been set before if we were in a single scope.\n        delete convertContext.singularizeVariables[this.util.nameToVariable(directiveContext.fieldLabel, convertContext).value];\n        return {};\n    }\n}\nexports.DirectiveNodeHandlerPlural = DirectiveNodeHandlerPlural;\n//# sourceMappingURL=DirectiveNodeHandlerPlural.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectiveNodeHandlerSingle = void 0;\nconst IConvertContext_1 = require(\"../../IConvertContext\");\nconst DirectiveNodeHandlerAdapter_1 = require(\"./DirectiveNodeHandlerAdapter\");\n/**\n * A handler for single directives.\n */\nclass DirectiveNodeHandlerSingle extends DirectiveNodeHandlerAdapter_1.DirectiveNodeHandlerAdapter {\n    constructor(util, settings) {\n        super('single', util, settings);\n    }\n    handle(directiveContext, convertContext) {\n        if (this.isDirectiveScopeAll(directiveContext.directive)) {\n            convertContext.singularizeState = IConvertContext_1.SingularizeState.SINGLE;\n        }\n        convertContext.singularizeVariables[this.util.nameToVariable(directiveContext.fieldLabel, convertContext).value] = true;\n        return {};\n    }\n}\nexports.DirectiveNodeHandlerSingle = DirectiveNodeHandlerSingle;\n//# sourceMappingURL=DirectiveNodeHandlerSingle.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DirectiveNodeHandlerSkip = void 0;\nconst DirectiveNodeHandlerAdapter_1 = require(\"./DirectiveNodeHandlerAdapter\");\n/**\n * A handler for skip directives.\n */\nclass DirectiveNodeHandlerSkip extends DirectiveNodeHandlerAdapter_1.DirectiveNodeHandlerAdapter {\n    constructor(util, settings) {\n        super('skip', util, settings);\n    }\n    handle(directiveContext, convertContext) {\n        const val = this.getDirectiveConditionalValue(directiveContext.directive, convertContext);\n        if (val.termType === 'Literal' && val.value === 'true') {\n            return { ignore: true };\n        }\n        return {};\n    }\n}\nexports.DirectiveNodeHandlerSkip = DirectiveNodeHandlerSkip;\n//# sourceMappingURL=DirectiveNodeHandlerSkip.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./DirectiveNodeHandlerAdapter\"), exports);\n__exportStar(require(\"./DirectiveNodeHandlerInclude\"), exports);\n__exportStar(require(\"./DirectiveNodeHandlerOptional\"), exports);\n__exportStar(require(\"./DirectiveNodeHandlerPlural\"), exports);\n__exportStar(require(\"./DirectiveNodeHandlerSingle\"), exports);\n__exportStar(require(\"./DirectiveNodeHandlerSkip\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeValueHandlerAdapter = void 0;\n/**\n * A handler for converting GraphQL value nodes to terms and patterns.\n */\nclass NodeValueHandlerAdapter {\n    constructor(targetKind, util, settings) {\n        this.targetKind = targetKind;\n        this.util = util;\n        this.settings = settings;\n    }\n}\nexports.NodeValueHandlerAdapter = NodeValueHandlerAdapter;\n//# sourceMappingURL=NodeValueHandlerAdapter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeValueHandlerBoolean = void 0;\nconst NodeValueHandlerAdapter_1 = require(\"./NodeValueHandlerAdapter\");\n/**\n * Converts GraphQL booleans to RDF boolean terms.\n */\nclass NodeValueHandlerBoolean extends NodeValueHandlerAdapter_1.NodeValueHandlerAdapter {\n    constructor(util, settings) {\n        super('BooleanValue', util, settings);\n        this.datatype = this.util.dataFactory.namedNode('http://www.w3.org/2001/XMLSchema#boolean');\n    }\n    handle(valueNode, fieldName, convertContext) {\n        return { terms: [this.util.dataFactory.literal(valueNode.value ? 'true' : 'false', this.datatype)] };\n    }\n}\nexports.NodeValueHandlerBoolean = NodeValueHandlerBoolean;\n//# sourceMappingURL=NodeValueHandlerBoolean.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeValueHandlerEnum = void 0;\nconst NodeValueHandlerAdapter_1 = require(\"./NodeValueHandlerAdapter\");\n/**\n * Converts GraphQL enums to RDF named nodes.\n */\nclass NodeValueHandlerEnum extends NodeValueHandlerAdapter_1.NodeValueHandlerAdapter {\n    constructor(util, settings) {\n        super('EnumValue', util, settings);\n    }\n    handle(valueNode, fieldName, convertContext) {\n        return { terms: [this.util.valueToNamedNode(valueNode.value, convertContext.context)] };\n    }\n}\nexports.NodeValueHandlerEnum = NodeValueHandlerEnum;\n//# sourceMappingURL=NodeValueHandlerEnum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeValueHandlerFloat = void 0;\nconst NodeValueHandlerAdapter_1 = require(\"./NodeValueHandlerAdapter\");\n/**\n * Converts GraphQL floats to RDF float terms.\n */\nclass NodeValueHandlerFloat extends NodeValueHandlerAdapter_1.NodeValueHandlerAdapter {\n    constructor(util, settings) {\n        super('FloatValue', util, settings);\n        this.datatype = this.util.dataFactory.namedNode('http://www.w3.org/2001/XMLSchema#float');\n    }\n    handle(valueNode, fieldName, convertContext) {\n        return { terms: [this.util.dataFactory.literal(valueNode.value, this.datatype)] };\n    }\n}\nexports.NodeValueHandlerFloat = NodeValueHandlerFloat;\n//# sourceMappingURL=NodeValueHandlerFloat.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeValueHandlerInt = void 0;\nconst NodeValueHandlerAdapter_1 = require(\"./NodeValueHandlerAdapter\");\n/**\n * Converts GraphQL ints to RDF integer terms.\n */\nclass NodeValueHandlerInt extends NodeValueHandlerAdapter_1.NodeValueHandlerAdapter {\n    constructor(util, settings) {\n        super('IntValue', util, settings);\n        this.datatype = this.util.dataFactory.namedNode('http://www.w3.org/2001/XMLSchema#integer');\n    }\n    handle(valueNode, fieldName, convertContext) {\n        return { terms: [this.util.dataFactory.literal(valueNode.value, this.datatype)] };\n    }\n}\nexports.NodeValueHandlerInt = NodeValueHandlerInt;\n//# sourceMappingURL=NodeValueHandlerInt.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeValueHandlerList = void 0;\nconst NodeValueHandlerAdapter_1 = require(\"./NodeValueHandlerAdapter\");\n/**\n * Converts GraphQL lists to RDF lists if settings.arraysToRdfLists is true, otherwise it converts to multiple values.\n */\nclass NodeValueHandlerList extends NodeValueHandlerAdapter_1.NodeValueHandlerAdapter {\n    constructor(util, settings) {\n        super('ListValue', util, settings);\n        this.nodeFirst = this.util.dataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#first');\n        this.nodeRest = this.util.dataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#rest');\n        this.nodeNil = this.util.dataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#nil');\n    }\n    handle(valueNode, fieldName, convertContext) {\n        const listTerms = [];\n        let auxiliaryPatterns = [];\n        // Create terms for list values\n        for (const v of valueNode.values) {\n            const subValue = this.util.handleNodeValue(v, fieldName, convertContext);\n            for (const term of subValue.terms) {\n                listTerms.push(term);\n            }\n            if (subValue.auxiliaryPatterns) {\n                auxiliaryPatterns = auxiliaryPatterns.concat(subValue.auxiliaryPatterns);\n            }\n        }\n        if (this.settings.arraysToRdfLists) {\n            // Convert array to RDF list\n            // Create chained list structure\n            const firstListNode = this.util.dataFactory.blankNode();\n            let listNode = firstListNode;\n            let remaining = listTerms.length;\n            for (const term of listTerms) {\n                auxiliaryPatterns.push(this.util.operationFactory.createPattern(listNode, this.nodeFirst, term, convertContext.graph));\n                const nextListNode = --remaining === 0 ? this.nodeNil : this.util.dataFactory.blankNode();\n                auxiliaryPatterns.push(this.util.operationFactory.createPattern(listNode, this.nodeRest, nextListNode, convertContext.graph));\n                listNode = nextListNode;\n            }\n            return { terms: [firstListNode], auxiliaryPatterns };\n        }\n        else {\n            // Convert array to multiple terms that will be linked via the same predicate.\n            return { terms: listTerms, auxiliaryPatterns };\n        }\n    }\n}\nexports.NodeValueHandlerList = NodeValueHandlerList;\n//# sourceMappingURL=NodeValueHandlerList.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeValueHandlerNull = void 0;\nconst NodeValueHandlerAdapter_1 = require(\"./NodeValueHandlerAdapter\");\n/**\n * Converts GraphQL nulls to RDF nil terms.\n */\nclass NodeValueHandlerNull extends NodeValueHandlerAdapter_1.NodeValueHandlerAdapter {\n    constructor(util, settings) {\n        super('NullValue', util, settings);\n        this.nil = this.util.dataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#nil');\n    }\n    handle(valueNode, fieldName, convertContext) {\n        return { terms: [this.nil] };\n    }\n}\nexports.NodeValueHandlerNull = NodeValueHandlerNull;\n//# sourceMappingURL=NodeValueHandlerNull.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeValueHandlerObject = void 0;\nconst NodeValueHandlerAdapter_1 = require(\"./NodeValueHandlerAdapter\");\n/**\n * Converts GraphQL objects to triple patterns by converting keys to predicates and values to objects.\n */\nclass NodeValueHandlerObject extends NodeValueHandlerAdapter_1.NodeValueHandlerAdapter {\n    constructor(util, settings) {\n        super('ObjectValue', util, settings);\n    }\n    handle(valueNode, fieldName, convertContext) {\n        // Convert object keys to predicates and values to objects, and link them both with a new blank node.\n        const subject = this.util.dataFactory.blankNode();\n        let auxiliaryObjectPatterns = [];\n        for (const field of valueNode.fields) {\n            const subValue = this.util.handleNodeValue(field.value, fieldName, convertContext);\n            for (const term of subValue.terms) {\n                auxiliaryObjectPatterns.push(this.util.createQuadPattern(subject, field.name, term, convertContext.graph, convertContext.context));\n            }\n            if (subValue.auxiliaryPatterns) {\n                auxiliaryObjectPatterns = auxiliaryObjectPatterns.concat(subValue.auxiliaryPatterns);\n            }\n        }\n        return { terms: [subject], auxiliaryPatterns: auxiliaryObjectPatterns };\n    }\n}\nexports.NodeValueHandlerObject = NodeValueHandlerObject;\n//# sourceMappingURL=NodeValueHandlerObject.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeValueHandlerString = void 0;\nconst NodeValueHandlerAdapter_1 = require(\"./NodeValueHandlerAdapter\");\n/**\n * Converts GraphQL strings to RDF string terms, which can have a custom language or datatype.\n */\nclass NodeValueHandlerString extends NodeValueHandlerAdapter_1.NodeValueHandlerAdapter {\n    constructor(util, settings) {\n        super('StringValue', util, settings);\n    }\n    handle(valueNode, fieldName, convertContext) {\n        const contextEntry = convertContext.context.getContextRaw()[fieldName];\n        let language;\n        let datatype;\n        if (contextEntry && typeof contextEntry !== 'string') {\n            if (contextEntry['@language']) {\n                language = contextEntry['@language'];\n            }\n            else if (contextEntry['@type']) {\n                datatype = this.util.dataFactory.namedNode(contextEntry['@type']);\n            }\n        }\n        return { terms: [this.util.dataFactory.literal(valueNode.value, language || datatype)] };\n    }\n}\nexports.NodeValueHandlerString = NodeValueHandlerString;\n//# sourceMappingURL=NodeValueHandlerString.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeValueHandlerVariable = void 0;\nconst NodeValueHandlerAdapter_1 = require(\"./NodeValueHandlerAdapter\");\n/**\n * Converts GraphQL variables to terms based on the contents of the variablesDict.\n */\nclass NodeValueHandlerVariable extends NodeValueHandlerAdapter_1.NodeValueHandlerAdapter {\n    constructor(util, settings) {\n        super('Variable', util, settings);\n    }\n    handle(valueNode, fieldName, convertContext) {\n        const id = valueNode.name.value;\n        const value = convertContext.variablesDict[id];\n        const meta = convertContext.variablesMetaDict[id];\n        // Handle missing values\n        if (!value) {\n            if (!convertContext.ignoreUnknownVariables && (!meta || meta.mandatory)) {\n                throw new Error(`Undefined variable: ${id}`);\n            }\n            else {\n                const variable = this.util.dataFactory.variable(id);\n                if (convertContext.terminalVariables.map((v) => v.value).indexOf(id) < 0) {\n                    convertContext.terminalVariables.push(variable);\n                }\n                return { terms: [variable] };\n            }\n        }\n        // Don't allow variables that refer to other variables\n        if (value.kind === 'Variable') {\n            throw new Error(`Variable refers to another variable: ${id}`);\n        }\n        if (meta) {\n            // Check the type\n            if (meta.list) {\n                // If we expect a list, check if we got a list.\n                if (value.kind !== 'ListValue') {\n                    throw new Error(`Expected a list, but got ${value.kind} for ${id}`);\n                }\n                // Check the type in the list\n                if (meta.type) {\n                    const listValue = value;\n                    for (const v of listValue.values) {\n                        if (v.kind !== meta.type) {\n                            throw new Error(`Expected ${meta.type}, but got ${v.kind} for ${id}`);\n                        }\n                    }\n                }\n            }\n            else if (meta.type) {\n                // This is allowed to be different (?)\n                /*if (value.kind !== meta.type) {\n                  throw new Error(`Expected ${meta.type}, but got ${value.kind} for ${id}`);\n                }*/\n            }\n        }\n        return this.util.handleNodeValue(value, fieldName, convertContext);\n    }\n}\nexports.NodeValueHandlerVariable = NodeValueHandlerVariable;\n//# sourceMappingURL=NodeValueHandlerVariable.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./NodeValueHandlerAdapter\"), exports);\n__exportStar(require(\"./NodeValueHandlerBoolean\"), exports);\n__exportStar(require(\"./NodeValueHandlerEnum\"), exports);\n__exportStar(require(\"./NodeValueHandlerFloat\"), exports);\n__exportStar(require(\"./NodeValueHandlerInt\"), exports);\n__exportStar(require(\"./NodeValueHandlerList\"), exports);\n__exportStar(require(\"./NodeValueHandlerNull\"), exports);\n__exportStar(require(\"./NodeValueHandlerObject\"), exports);\n__exportStar(require(\"./NodeValueHandlerString\"), exports);\n__exportStar(require(\"./NodeValueHandlerVariable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHandlerAdapter = void 0;\n/**\n * A handler for converting GraphQL nodes to operations.\n */\nclass NodeHandlerAdapter {\n    constructor(targetKind, util, settings) {\n        this.targetKind = targetKind;\n        this.util = util;\n        this.settings = settings;\n    }\n    /* ----- Node quad context ----- */\n    /**\n     * Get the quad context of a selection set node that should be used for the whole definition node.\n     *\n     * This is a pre-processing step of selection sets.\n     * Its only purpose is to determine the subject within a selection set,\n     * because this subject is needed to link with its parent.\n     * In a later phase, the selection set will be processed using the discovered subject,\n     * and the field identifying the subject will be ignored.\n     *\n     * @param {SelectionSetNode} selectionSet A selection set node.\n     * @param {string} fieldLabel A field label.\n     * @param {IConvertContext} convertContext A convert context.\n     * @return {INodeQuadContext} The subject, graph and auxiliary patterns.\n     */\n    getNodeQuadContextSelectionSet(selectionSet, fieldLabel, convertContext) {\n        const nodeQuadContext = {};\n        if (selectionSet) {\n            for (const selectionNode of selectionSet.selections) {\n                if (selectionNode.kind === 'Field') {\n                    const fieldNode = selectionNode;\n                    this.handleNodeQuadContextField(fieldNode, convertContext, nodeQuadContext, 'id', 'subject');\n                    this.handleNodeQuadContextField(fieldNode, convertContext, nodeQuadContext, 'graph', 'graph');\n                }\n            }\n        }\n        return nodeQuadContext;\n    }\n    /**\n     * Handles a single field for determining the node quad context.\n     * @param {FieldNode} fieldNode A field node.\n     * @param {IConvertContext} convertContext A convert context.\n     * @param {INodeQuadContext} nodeQuadContext The node quad context to populate.\n     * @param {string} fieldName The field name to check for.\n     * @param {'subject' | 'graph'} nodeQuadContextKey The key to fill into the node quad context.\n     */\n    handleNodeQuadContextField(fieldNode, convertContext, nodeQuadContext, fieldName, nodeQuadContextKey) {\n        if (!nodeQuadContext[nodeQuadContextKey] && fieldNode.name.value === fieldName) {\n            // Get (or set) the nodeQuadContextKey for fieldName fields\n            if (!nodeQuadContext[nodeQuadContextKey]) {\n                const argument = this.util.getArgument(fieldNode.arguments, '_');\n                if (argument) {\n                    const valueOutput = this.util.handleNodeValue(argument.value, fieldNode.name.value, convertContext);\n                    if (valueOutput.terms.length !== 1) {\n                        throw new Error(`Only single values can be set as ${fieldName}, but got ${valueOutput.terms\n                            .length} at ${fieldNode.name.value}`);\n                    }\n                    nodeQuadContext[nodeQuadContextKey] = valueOutput.terms[0];\n                    if (valueOutput.auxiliaryPatterns) {\n                        if (!nodeQuadContext.auxiliaryPatterns) {\n                            nodeQuadContext.auxiliaryPatterns = [];\n                        }\n                        nodeQuadContext.auxiliaryPatterns.concat(valueOutput.auxiliaryPatterns);\n                    }\n                }\n            }\n            if (!nodeQuadContext[nodeQuadContextKey]) {\n                const term = this.util.nameToVariable(this.util.getFieldLabel(fieldNode), convertContext);\n                convertContext.terminalVariables.push(term);\n                nodeQuadContext[nodeQuadContextKey] = term;\n            }\n        }\n    }\n    /* ----- Directives ----- */\n    /**\n     * Get an operation override defined by one of the directives.\n     *\n     * This should be called before a sub-operation is handled.\n     *\n     * @param {ReadonlyArray<DirectiveNode>} directives An option directives array.\n     * @param {string} fieldLabel The current field label.\n     * @param {IConvertContext} convertContext A convert context.\n     * @return {IDirectiveNodeHandlerOutput[]} The directive node handler outputs, or null if it should be ignored.\n     */\n    getDirectiveOutputs(directives, fieldLabel, convertContext) {\n        const outputs = [];\n        if (directives) {\n            for (const directive of directives) {\n                const output = this.util.handleDirectiveNode({ directive, fieldLabel }, convertContext);\n                if (output) {\n                    if (output.ignore) {\n                        return null;\n                    }\n                    outputs.push(output);\n                }\n            }\n        }\n        return outputs;\n    }\n    /**\n     * Handle the directive outputs with respect to an operation.\n     *\n     * This should be called after a sub-operation was handled.\n     *\n     * @param {IDirectiveNodeHandlerOutput[]} directiveOutputs\n     * @param {Operation} operation\n     * @return {Operation}\n     */\n    handleDirectiveOutputs(directiveOutputs, operation) {\n        for (const directiveOutput of directiveOutputs) {\n            if (directiveOutput.ignore) {\n                return this.util.operationFactory.createBgp([]);\n            }\n            if (directiveOutput.operationOverrider) {\n                operation = directiveOutput.operationOverrider(operation);\n            }\n        }\n        return operation;\n    }\n}\nexports.NodeHandlerAdapter = NodeHandlerAdapter;\n//# sourceMappingURL=NodeHandlerAdapter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHandlerDefinitionAdapter = void 0;\nconst NodeHandlerAdapter_1 = require(\"./NodeHandlerAdapter\");\n/**\n * A handler for converting GraphQL definition nodes to operations.\n */\nclass NodeHandlerDefinitionAdapter extends NodeHandlerAdapter_1.NodeHandlerAdapter {\n    constructor(targetKind, util, settings) {\n        super(targetKind, util, settings);\n    }\n}\nexports.NodeHandlerDefinitionAdapter = NodeHandlerDefinitionAdapter;\n//# sourceMappingURL=NodeHandlerDefinitionAdapter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHandlerDefinitionFragment = void 0;\nconst NodeHandlerDefinitionAdapter_1 = require(\"./NodeHandlerDefinitionAdapter\");\n/**\n * Errors if fragment definitions are found,\n * as these should have been processed away earlier.\n */\nclass NodeHandlerDefinitionFragment extends NodeHandlerDefinitionAdapter_1.NodeHandlerDefinitionAdapter {\n    constructor(util, settings) {\n        super('FragmentDefinition', util, settings);\n    }\n    handle(operationDefinition, convertContext) {\n        throw new Error('Illegal state: fragment definitions must be indexed and removed before processing');\n    }\n}\nexports.NodeHandlerDefinitionFragment = NodeHandlerDefinitionFragment;\n//# sourceMappingURL=NodeHandlerDefinitionFragment.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHandlerDefinitionOperation = void 0;\nconst NodeHandlerDefinitionAdapter_1 = require(\"./NodeHandlerDefinitionAdapter\");\n/**\n * Converts GraphQL definitions to joined operations for all its selections.\n */\nclass NodeHandlerDefinitionOperation extends NodeHandlerDefinitionAdapter_1.NodeHandlerDefinitionAdapter {\n    constructor(util, settings) {\n        super('OperationDefinition', util, settings);\n    }\n    handle(operationDefinition, convertContext) {\n        if (operationDefinition.operation !== 'query') {\n            throw new Error('Unsupported definition operation: ' + operationDefinition.operation);\n        }\n        // We ignore the query name, as SPARQL doesn't support naming queries.\n        // Variables\n        if (operationDefinition.variableDefinitions) {\n            for (const variableDefinition of operationDefinition.variableDefinitions) {\n                const name = variableDefinition.variable.name.value;\n                // Put the default value in the context if it hasn't been defined yet.\n                if (variableDefinition.defaultValue) {\n                    if (!convertContext.variablesDict[name]) {\n                        convertContext.variablesDict[name] = variableDefinition.defaultValue;\n                    }\n                }\n                // Handle type\n                let typeNode = variableDefinition.type;\n                const mandatory = typeNode.kind === 'NonNullType';\n                if (mandatory) {\n                    typeNode = typeNode.type;\n                }\n                const list = typeNode.kind === 'ListType';\n                if (list) {\n                    typeNode = typeNode.type;\n                }\n                const type = typeNode.name.value;\n                convertContext.variablesMetaDict[name] = { mandatory, list, type };\n            }\n        }\n        // Directives\n        const directiveOutputs = this.getDirectiveOutputs(operationDefinition.directives, operationDefinition.name ? operationDefinition.name.value : '', convertContext);\n        if (!directiveOutputs) {\n            return this.util.operationFactory.createBgp([]);\n        }\n        // Handle the operation\n        const operation = this.util.joinOperations(operationDefinition.selectionSet.selections\n            .map((selectionNode) => this.util.handleNode(selectionNode, convertContext)));\n        // Override operation if needed\n        return this.handleDirectiveOutputs(directiveOutputs, operation);\n    }\n}\nexports.NodeHandlerDefinitionOperation = NodeHandlerDefinitionOperation;\n//# sourceMappingURL=NodeHandlerDefinitionOperation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHandlerDocument = void 0;\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst NodeHandlerAdapter_1 = require(\"./NodeHandlerAdapter\");\n/**\n * Converts GraphQL documents to joined operations for all its definitions.\n */\nclass NodeHandlerDocument extends NodeHandlerAdapter_1.NodeHandlerAdapter {\n    constructor(util, settings) {\n        super('Document', util, settings);\n    }\n    handle(document, convertContext) {\n        const definitionOperations = document.definitions\n            .map((definition) => {\n            const subjectOutput = this.getNodeQuadContextDefinitionNode(definition, Object.assign(Object.assign({}, convertContext), { ignoreUnknownVariables: true }));\n            const queryParseContext = Object.assign(Object.assign({}, convertContext), { graph: subjectOutput.graph || convertContext.graph, subject: subjectOutput.subject || this.util.dataFactory.blankNode() });\n            let definitionOperation = this.util.handleNode(definition, queryParseContext);\n            if (subjectOutput && subjectOutput.auxiliaryPatterns) {\n                definitionOperation = this.util.joinOperations([\n                    definitionOperation,\n                    this.util.operationFactory.createBgp(subjectOutput.auxiliaryPatterns),\n                ]);\n            }\n            return definitionOperation;\n        });\n        const operation = this.util.operationFactory.createProject(definitionOperations.length === 1 ? definitionOperations[0] : this.util.operationFactory.createUnion(definitionOperations), convertContext.terminalVariables);\n        // Convert blank nodes to variables\n        return this.translateBlankNodesToVariables(operation);\n    }\n    /**\n     * Get the quad context of a definition node that should be used for the whole definition node.\n     * @param {DefinitionNode} definition A definition node.\n     * @param {IConvertContext} convertContext A convert context.\n     * @return {INodeQuadContext} The subject and optional auxiliary patterns.\n     */\n    getNodeQuadContextDefinitionNode(definition, convertContext) {\n        if (definition.kind === 'OperationDefinition') {\n            return this.getNodeQuadContextSelectionSet(definition.selectionSet, definition.name ? definition.name.value : '', convertContext);\n        }\n        throw new Error(`Unsupported definition: ${definition.kind}`);\n    }\n    /**\n     * Translates blank nodes inside the query to variables.\n     * @param {Project} operation The operation to translate.\n     * @return {Operation} The transformed operation.\n     */\n    translateBlankNodesToVariables(operation) {\n        const self = this;\n        const blankToVariableMapping = {};\n        const variablesRaw = Array.from(operation.variables)\n            .reduce((acc, variable) => {\n            acc[variable.value] = true;\n            return acc;\n        }, {});\n        return sparqlalgebrajs_1.Util.mapOperation(operation, {\n            path: (op, factory) => {\n                return {\n                    recurse: false,\n                    result: factory.createPath(blankToVariable(op.subject), op.predicate, blankToVariable(op.object), blankToVariable(op.graph)),\n                };\n            },\n            pattern: (op, factory) => {\n                return {\n                    recurse: false,\n                    result: factory.createPattern(blankToVariable(op.subject), blankToVariable(op.predicate), blankToVariable(op.object), blankToVariable(op.graph)),\n                };\n            },\n        });\n        function blankToVariable(term) {\n            if (term.termType === 'BlankNode') {\n                let variable = blankToVariableMapping[term.value];\n                if (!variable) {\n                    variable = sparqlalgebrajs_1.Util.createUniqueVariable(term.value, variablesRaw, self.util.dataFactory);\n                    variablesRaw[variable.value] = true;\n                    blankToVariableMapping[term.value] = variable;\n                }\n                return variable;\n            }\n            return term;\n        }\n    }\n}\nexports.NodeHandlerDocument = NodeHandlerDocument;\n//# sourceMappingURL=NodeHandlerDocument.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHandlerSelectionAdapter = void 0;\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst IConvertContext_1 = require(\"../IConvertContext\");\nconst NodeHandlerAdapter_1 = require(\"./NodeHandlerAdapter\");\n/**\n * A handler for converting GraphQL selection nodes to operations.\n */\nclass NodeHandlerSelectionAdapter extends NodeHandlerAdapter_1.NodeHandlerAdapter {\n    constructor(targetKind, util, settings) {\n        super(targetKind, util, settings);\n    }\n    /**\n     * Get the quad context of a field node that should be used for the whole definition node.\n     * @param {FieldNode} field A field node.\n     * @param {string} fieldLabel A field label.\n     * @param {IConvertContext} convertContext A convert context.\n     * @return {INodeQuadContext} The subject and optional auxiliary patterns.\n     */\n    getNodeQuadContextFieldNode(field, fieldLabel, convertContext) {\n        return this.getNodeQuadContextSelectionSet(field.selectionSet, fieldLabel, Object.assign(Object.assign({}, convertContext), { path: this.util.appendFieldToPath(convertContext.path, fieldLabel) }));\n    }\n    /**\n     * Convert a field node to an operation.\n     * @param {IConvertContext} convertContext A convert context.\n     * @param {FieldNode} fieldNode The field node to convert.\n     * @param {boolean} pushTerminalVariables If terminal variables should be created.\n     * @param {Pattern[]} auxiliaryPatterns Optional patterns that should be part of the BGP.\n     * @return {Operation} The reslting operation.\n     */\n    fieldToOperation(convertContext, fieldNode, pushTerminalVariables, auxiliaryPatterns) {\n        // If a deeper node is being selected, and if the current object should become the next subject\n        const nesting = pushTerminalVariables;\n        // Offset and limit can be changed using the magic arguments 'first' and 'offset'.\n        let offset = 0;\n        let limit;\n        // Ignore 'id' and 'graph' fields, because we have processed them earlier in getNodeQuadContextSelectionSet.\n        if (fieldNode.name.value === 'id' || fieldNode.name.value === 'graph') {\n            pushTerminalVariables = false;\n            // Validate all _-arguments, because even though they were handled before,\n            // the validity of variables could not be checked,\n            // as variablesMetaDict wasn't populated at that time yet.\n            if (fieldNode.arguments) {\n                for (const argument of fieldNode.arguments) {\n                    if (argument.name.value === '_') {\n                        this.util.handleNodeValue(argument.value, fieldNode.name.value, convertContext);\n                    }\n                }\n            }\n        }\n        // Determine the field label for variable naming, taking into account aliases\n        const fieldLabel = this.util.getFieldLabel(fieldNode);\n        // Handle the singular/plural scope\n        if (convertContext.singularizeState === IConvertContext_1.SingularizeState.SINGLE) {\n            convertContext.singularizeVariables[this.util.nameToVariable(fieldLabel, convertContext).value] = true;\n        }\n        // Handle meta fields\n        if (pushTerminalVariables) {\n            const operationOverride = this.handleMetaField(convertContext, fieldLabel, auxiliaryPatterns);\n            if (operationOverride) {\n                return operationOverride;\n            }\n        }\n        const operations = auxiliaryPatterns\n            ? [this.util.operationFactory.createBgp(auxiliaryPatterns)] : [];\n        // Define subject and object\n        const subjectOutput = this.getNodeQuadContextFieldNode(fieldNode, fieldLabel, convertContext);\n        let object = subjectOutput.subject || this.util.nameToVariable(fieldLabel, convertContext);\n        let graph = subjectOutput.graph || convertContext.graph;\n        if (subjectOutput.auxiliaryPatterns) {\n            operations.push(this.util.operationFactory.createBgp(subjectOutput.auxiliaryPatterns));\n        }\n        // Check if there is a '_' argument\n        // We do this before handling all other arguments so that the order of final triple patterns is sane.\n        let createQuadPattern = true;\n        let overrideObjectTerms = null;\n        if (pushTerminalVariables && fieldNode.arguments && fieldNode.arguments.length) {\n            for (const argument of fieldNode.arguments) {\n                if (argument.name.value === '_') {\n                    // '_'-arguments do not create an additional predicate link, but set the value directly.\n                    const valueOutput = this.util.handleNodeValue(argument.value, fieldNode.name.value, convertContext);\n                    overrideObjectTerms = valueOutput.terms;\n                    operations.push(this.util.operationFactory.createBgp(valueOutput.terms.map((term) => this.util.createQuadPattern(convertContext.subject, fieldNode.name, term, convertContext.graph, convertContext.context))));\n                    if (valueOutput.auxiliaryPatterns) {\n                        operations.push(this.util.operationFactory.createBgp(valueOutput.auxiliaryPatterns));\n                    }\n                    pushTerminalVariables = false;\n                    break;\n                }\n                else if (argument.name.value === 'graph') {\n                    // 'graph'-arguments do not create an additional predicate link, but set the graph.\n                    const valueOutput = this.util.handleNodeValue(argument.value, fieldNode.name.value, convertContext);\n                    if (valueOutput.terms.length !== 1) {\n                        throw new Error(`Only single values can be set as graph, but got ${valueOutput.terms\n                            .length} at ${fieldNode.name.value}`);\n                    }\n                    graph = valueOutput.terms[0];\n                    convertContext = Object.assign(Object.assign({}, convertContext), { graph });\n                    if (valueOutput.auxiliaryPatterns) {\n                        operations.push(this.util.operationFactory.createBgp(valueOutput.auxiliaryPatterns));\n                    }\n                    break;\n                }\n                else if (argument.name.value === 'alt') {\n                    // 'alt'-arguments do not create an additional predicate link, but create alt-property paths.\n                    let pathValue = argument.value;\n                    if (pathValue.kind !== 'ListValue') {\n                        pathValue = { kind: 'ListValue', values: [pathValue] };\n                    }\n                    operations.push(this.util.createQuadPath(convertContext.subject, fieldNode.name, pathValue, object, convertContext.graph, convertContext.context));\n                    createQuadPattern = false;\n                    break;\n                }\n            }\n        }\n        // Create at least a pattern for the parent node and the current path.\n        if (pushTerminalVariables && createQuadPattern) {\n            operations.push(this.util.operationFactory.createBgp([\n                this.util.createQuadPattern(convertContext.subject, fieldNode.name, object, convertContext.graph, convertContext.context),\n            ]));\n        }\n        // Create patterns for the node's arguments\n        if (fieldNode.arguments && fieldNode.arguments.length) {\n            for (const argument of fieldNode.arguments) {\n                if (argument.name.value === '_' || argument.name.value === 'graph' || argument.name.value === 'alt') {\n                    // no-op\n                }\n                else if (argument.name.value === 'first') {\n                    if (argument.value.kind !== 'IntValue') {\n                        throw new Error('Invalid value type for \\'first\\' argument: ' + argument.value.kind);\n                    }\n                    limit = parseInt(argument.value.value, 10);\n                }\n                else if (argument.name.value === 'offset') {\n                    if (argument.value.kind !== 'IntValue') {\n                        throw new Error('Invalid value type for \\'offset\\' argument: ' + argument.value.kind);\n                    }\n                    offset = parseInt(argument.value.value, 10);\n                }\n                else {\n                    const valueOutput = this.util.handleNodeValue(argument.value, argument.name.value, convertContext);\n                    operations.push(this.util.operationFactory.createBgp(valueOutput.terms.map((term) => this.util.createQuadPattern(object, argument.name, term, convertContext.graph, convertContext.context))));\n                    if (valueOutput.auxiliaryPatterns) {\n                        operations.push(this.util.operationFactory.createBgp(valueOutput.auxiliaryPatterns));\n                    }\n                }\n            }\n        }\n        // Directives\n        const directiveOutputs = this.getDirectiveOutputs(fieldNode.directives, fieldLabel, convertContext);\n        if (!directiveOutputs) {\n            return this.util.operationFactory.createBgp([]);\n        }\n        // Recursive call for nested selection sets\n        let operation = this.util.joinOperations(operations);\n        if (fieldNode.selectionSet && fieldNode.selectionSet.selections.length) {\n            // Override the object if needed\n            if (overrideObjectTerms) {\n                if (overrideObjectTerms.length !== 1) {\n                    throw new Error(`Only single values can be set as id, but got ${overrideObjectTerms\n                        .length} at ${fieldNode.name.value}`);\n                }\n                object = overrideObjectTerms[0];\n            }\n            // Change path value when there was an alias on this node.\n            const subConvertContext = Object.assign(Object.assign(Object.assign({}, convertContext), nesting ? { path: this.util.appendFieldToPath(convertContext.path, fieldLabel) } : {}), { graph, subject: nesting ? object : convertContext.subject });\n            // If the magic keyword 'totalCount' is present, include a count aggregator.\n            let totalCount = false;\n            const selections = fieldNode.selectionSet.selections\n                .filter((selection) => {\n                if (selection.kind === 'Field' && selection.name.value === 'totalCount') {\n                    totalCount = true;\n                    return false;\n                }\n                return true;\n            });\n            let joinedOperation = this.util.joinOperations(operations\n                .concat(selections.map((selectionNode) => this.util.handleNode(selectionNode, subConvertContext))));\n            // Modify the operation if there was a count selection\n            if (totalCount) {\n                // Create to a count aggregation\n                const expressionVariable = this.util.dataFactory.variable('var' + this.settings.expressionVariableCounter++);\n                const countOverVariable = this.util.dataFactory\n                    .variable(object.value + this.settings.variableDelimiter + 'totalCount');\n                const aggregator = this.util.operationFactory.createBoundAggregate(expressionVariable, 'count', this.util.operationFactory.createTermExpression(object), false);\n                const countProject = this.util.operationFactory.createProject(this.util.operationFactory.createExtend(this.util.operationFactory.createGroup(operation, [], [aggregator]), countOverVariable, this.util.operationFactory.createTermExpression(expressionVariable)), [countOverVariable]);\n                convertContext.terminalVariables.push(countOverVariable);\n                // If no other selections exist (next to totalCount),\n                // then we just return the count operations as-is,\n                // otherwise, we join the count operation with all other selections\n                if (!selections.length) {\n                    joinedOperation = countProject;\n                }\n                else {\n                    joinedOperation = this.util.operationFactory.createJoin([\n                        this.util.operationFactory.createProject(joinedOperation, []),\n                        countProject,\n                    ]);\n                }\n            }\n            operation = joinedOperation;\n        }\n        else if (pushTerminalVariables && object.termType === 'Variable') {\n            // If no nested selection sets exist,\n            // consider the object variable as a terminal variable that should be selected.\n            convertContext.terminalVariables.push(object);\n        }\n        // Wrap the operation in a slice if a 'first' or 'offset' argument was provided.\n        if (offset || limit) {\n            operation = this.util.operationFactory.createSlice(this.util.operationFactory.createProject(operation, sparqlalgebrajs_1.Util.inScopeVariables(operation)), offset, limit);\n        }\n        // Override operation if needed\n        return this.handleDirectiveOutputs(directiveOutputs, operation);\n    }\n    /**\n     * Check if the given node is a meta field, for things like introspection.\n     * If so, return a new operation for this, otherwise, null is returned.\n     * @param {IConvertContext} convertContext A convert context.\n     * @param {Term} subject The subject.\n     * @param {string} fieldLabel The field label to convert.\n     * @param {Pattern[]} auxiliaryPatterns Optional patterns that should be part of the BGP.\n     * @return {Operation} An operation or undefined.\n     */\n    handleMetaField(convertContext, fieldLabel, auxiliaryPatterns) {\n        // TODO: in the future, we should add support for GraphQL wide range of introspection features:\n        // http://graphql.org/learn/introspection/\n        if (fieldLabel === '__typename') {\n            const object = this.util.nameToVariable(fieldLabel, convertContext);\n            convertContext.terminalVariables.push(object);\n            return this.util.operationFactory.createBgp([\n                this.util.operationFactory.createPattern(convertContext.subject, this.util.dataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'), this.util.nameToVariable(fieldLabel, convertContext), convertContext.graph),\n            ].concat(auxiliaryPatterns || []));\n        }\n    }\n}\nexports.NodeHandlerSelectionAdapter = NodeHandlerSelectionAdapter;\n//# sourceMappingURL=NodeHandlerSelectionAdapter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHandlerSelectionField = void 0;\nconst NodeHandlerSelectionAdapter_1 = require(\"./NodeHandlerSelectionAdapter\");\n/**\n * Converts GraphQL fields to one or more quad patterns.\n */\nclass NodeHandlerSelectionField extends NodeHandlerSelectionAdapter_1.NodeHandlerSelectionAdapter {\n    constructor(util, settings) {\n        super('Field', util, settings);\n    }\n    handle(fieldNode, convertContext) {\n        return this.fieldToOperation(convertContext, fieldNode, true);\n    }\n}\nexports.NodeHandlerSelectionField = NodeHandlerSelectionField;\n//# sourceMappingURL=NodeHandlerSelectionField.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHandlerSelectionFragmentSpread = void 0;\nconst NodeHandlerSelectionAdapter_1 = require(\"./NodeHandlerSelectionAdapter\");\n/**\n * Converts GraphQL fragment spread to one or more quad patterns with a given type within an optional.\n */\nclass NodeHandlerSelectionFragmentSpread extends NodeHandlerSelectionAdapter_1.NodeHandlerSelectionAdapter {\n    constructor(util, settings) {\n        super('FragmentSpread', util, settings);\n    }\n    handle(fragmentSpreadNode, convertContext) {\n        const fragmentDefinitionNode = convertContext\n            .fragmentDefinitions[fragmentSpreadNode.name.value];\n        if (!fragmentDefinitionNode) {\n            throw new Error('Undefined fragment definition: ' + fragmentSpreadNode.name.value);\n        }\n        // Wrap in an OPTIONAL, as this pattern should only apply if the type applies\n        const fieldNode = {\n            alias: undefined,\n            arguments: undefined,\n            directives: fragmentDefinitionNode.directives,\n            kind: 'Field',\n            name: fragmentSpreadNode.name,\n            selectionSet: fragmentDefinitionNode.selectionSet,\n        };\n        const auxiliaryPatterns = [\n            this.util.newTypePattern(convertContext.subject, fragmentDefinitionNode.typeCondition, convertContext),\n        ];\n        return this.util.operationFactory.createLeftJoin(this.util.operationFactory.createBgp([]), this.fieldToOperation(convertContext, fieldNode, false, auxiliaryPatterns));\n    }\n}\nexports.NodeHandlerSelectionFragmentSpread = NodeHandlerSelectionFragmentSpread;\n//# sourceMappingURL=NodeHandlerSelectionFragmentSpread.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeHandlerSelectionInlineFragment = void 0;\nconst NodeHandlerSelectionAdapter_1 = require(\"./NodeHandlerSelectionAdapter\");\n/**\n * Converts GraphQL inline fragment to one or more quad patterns with a given type within an optional.\n */\nclass NodeHandlerSelectionInlineFragment extends NodeHandlerSelectionAdapter_1.NodeHandlerSelectionAdapter {\n    constructor(util, settings) {\n        super('InlineFragment', util, settings);\n    }\n    handle(inlineFragmentNode, convertContext) {\n        // Wrap in an OPTIONAL, as this pattern should only apply if the type applies\n        const fieldNode = {\n            alias: undefined,\n            arguments: undefined,\n            directives: inlineFragmentNode.directives,\n            kind: 'Field',\n            name: { kind: 'Name', value: convertContext.subject.value },\n            selectionSet: inlineFragmentNode.selectionSet,\n        };\n        const auxiliaryPatterns = inlineFragmentNode.typeCondition\n            ? [this.util.newTypePattern(convertContext.subject, inlineFragmentNode.typeCondition, convertContext)] : [];\n        return this.util.operationFactory.createLeftJoin(this.util.operationFactory.createBgp([]), this.fieldToOperation(convertContext, fieldNode, false, auxiliaryPatterns));\n    }\n}\nexports.NodeHandlerSelectionInlineFragment = NodeHandlerSelectionInlineFragment;\n//# sourceMappingURL=NodeHandlerSelectionInlineFragment.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./directivenode\"), exports);\n__exportStar(require(\"./valuenode\"), exports);\n__exportStar(require(\"./NodeHandlerAdapter\"), exports);\n__exportStar(require(\"./NodeHandlerDefinitionAdapter\"), exports);\n__exportStar(require(\"./NodeHandlerDefinitionFragment\"), exports);\n__exportStar(require(\"./NodeHandlerDefinitionOperation\"), exports);\n__exportStar(require(\"./NodeHandlerDocument\"), exports);\n__exportStar(require(\"./NodeHandlerSelectionAdapter\"), exports);\n__exportStar(require(\"./NodeHandlerSelectionField\"), exports);\n__exportStar(require(\"./NodeHandlerSelectionFragmentSpread\"), exports);\n__exportStar(require(\"./NodeHandlerSelectionInlineFragment\"), exports);\n//# sourceMappingURL=index.js.map","// In ES2015 (or a polyfilled) environment, this will be Symbol.iterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nexport var SYMBOL_ITERATOR = typeof Symbol === 'function' && Symbol.iterator != null ? Symbol.iterator : '@@iterator'; // In ES2017 (or a polyfilled) environment, this will be Symbol.asyncIterator\n// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_ASYNC_ITERATOR = typeof Symbol === 'function' && Symbol.asyncIterator != null ? Symbol.asyncIterator : '@@asyncIterator'; // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\nexport var SYMBOL_TO_STRING_TAG = typeof Symbol === 'function' && Symbol.toStringTag != null ? Symbol.toStringTag : '@@toStringTag';\n","// istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\nvar nodejsCustomInspectSymbol = typeof Symbol === 'function' && typeof Symbol.for === 'function' ? Symbol.for('nodejs.util.inspect.custom') : undefined;\nexport default nodejsCustomInspectSymbol;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable flowtype/no-weak-types */\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\nvar MAX_ARRAY_LENGTH = 10;\nvar MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport default function inspect(value) {\n  return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n  switch (_typeof(value)) {\n    case 'string':\n      return JSON.stringify(value);\n\n    case 'function':\n      return value.name ? \"[function \".concat(value.name, \"]\") : '[function]';\n\n    case 'object':\n      if (value === null) {\n        return 'null';\n      }\n\n      return formatObjectValue(value, seenValues);\n\n    default:\n      return String(value);\n  }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n  if (previouslySeenValues.indexOf(value) !== -1) {\n    return '[Circular]';\n  }\n\n  var seenValues = [].concat(previouslySeenValues, [value]);\n  var customInspectFn = getCustomFn(value);\n\n  if (customInspectFn !== undefined) {\n    var customValue = customInspectFn.call(value); // check for infinite recursion\n\n    if (customValue !== value) {\n      return typeof customValue === 'string' ? customValue : formatValue(customValue, seenValues);\n    }\n  } else if (Array.isArray(value)) {\n    return formatArray(value, seenValues);\n  }\n\n  return formatObject(value, seenValues);\n}\n\nfunction formatObject(object, seenValues) {\n  var keys = Object.keys(object);\n\n  if (keys.length === 0) {\n    return '{}';\n  }\n\n  if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n    return '[' + getObjectTag(object) + ']';\n  }\n\n  var properties = keys.map(function (key) {\n    var value = formatValue(object[key], seenValues);\n    return key + ': ' + value;\n  });\n  return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n  if (array.length === 0) {\n    return '[]';\n  }\n\n  if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n    return '[Array]';\n  }\n\n  var len = Math.min(MAX_ARRAY_LENGTH, array.length);\n  var remaining = array.length - len;\n  var items = [];\n\n  for (var i = 0; i < len; ++i) {\n    items.push(formatValue(array[i], seenValues));\n  }\n\n  if (remaining === 1) {\n    items.push('... 1 more item');\n  } else if (remaining > 1) {\n    items.push(\"... \".concat(remaining, \" more items\"));\n  }\n\n  return '[' + items.join(', ') + ']';\n}\n\nfunction getCustomFn(object) {\n  var customInspectFn = object[String(nodejsCustomInspectSymbol)];\n\n  if (typeof customInspectFn === 'function') {\n    return customInspectFn;\n  }\n\n  if (typeof object.inspect === 'function') {\n    return object.inspect;\n  }\n}\n\nfunction getObjectTag(object) {\n  var tag = Object.prototype.toString.call(object).replace(/^\\[object /, '').replace(/]$/, '');\n\n  if (tag === 'Object' && typeof object.constructor === 'function') {\n    var name = object.constructor.name;\n\n    if (typeof name === 'string' && name !== '') {\n      return name;\n    }\n  }\n\n  return tag;\n}\n","export default function devAssert(condition, message) {\n  var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n  if (!booleanCondition) {\n    throw new Error(message);\n  }\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport inspect from \"./inspect.mjs\";\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n */\n\n// See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n// See: https://webpack.js.org/guides/production/\nexport default process.env.NODE_ENV === 'production' ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n// eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n  return value instanceof constructor;\n} : // eslint-disable-next-line no-shadow\nfunction instanceOf(value, constructor) {\n  if (value instanceof constructor) {\n    return true;\n  }\n\n  if (_typeof(value) === 'object' && value !== null) {\n    var _value$constructor;\n\n    var className = constructor.prototype[Symbol.toStringTag];\n    var valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n    Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_value$constructor = value.constructor) === null || _value$constructor === void 0 ? void 0 : _value$constructor.name;\n\n    if (className === valueClassName) {\n      var stringifiedValue = inspect(value);\n      throw new Error(\"Cannot use \".concat(className, \" \\\"\").concat(stringifiedValue, \"\\\" from another module or realm.\\n\\nEnsure that there is only one instance of \\\"graphql\\\" in the node_modules\\ndirectory. If different versions of \\\"graphql\\\" are the dependencies of other\\nrelied on modules, use \\\"resolutions\\\" to ensure only one version is installed.\\n\\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\\n\\nDuplicate \\\"graphql\\\" modules cannot be used at the same time since different\\nversions may have different capabilities and behavior. The data from one\\nversion used in the function from another could produce confusing and\\nspurious results.\"));\n    }\n  }\n\n  return false;\n};\n","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport inspect from \"../jsutils/inspect.mjs\";\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport instanceOf from \"../jsutils/instanceOf.mjs\";\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport var Source = /*#__PURE__*/function () {\n  function Source(body) {\n    var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'GraphQL request';\n    var locationOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n      line: 1,\n      column: 1\n    };\n    typeof body === 'string' || devAssert(0, \"Body must be a string. Received: \".concat(inspect(body), \".\"));\n    this.body = body;\n    this.name = name;\n    this.locationOffset = locationOffset;\n    this.locationOffset.line > 0 || devAssert(0, 'line in locationOffset is 1-indexed and must be positive.');\n    this.locationOffset.column > 0 || devAssert(0, 'column in locationOffset is 1-indexed and must be positive.');\n  } // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n\n  _createClass(Source, [{\n    key: SYMBOL_TO_STRING_TAG,\n    get: function get() {\n      return 'Source';\n    }\n  }]);\n\n  return Source;\n}();\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\n// eslint-disable-next-line no-redeclare\nexport function isSource(source) {\n  return instanceOf(source, Source);\n}\n","/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n  var lineRegexp = /\\r\\n|[\\n\\r]/g;\n  var line = 1;\n  var column = position + 1;\n  var match;\n\n  while ((match = lineRegexp.exec(source.body)) && match.index < position) {\n    line += 1;\n    column = position + 1 - (match.index + match[0].length);\n  }\n\n  return {\n    line: line,\n    column: column\n  };\n}\n","import { getLocation } from \"./location.mjs\";\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printLocation(location) {\n  return printSourceLocation(location.source, getLocation(location.source, location.start));\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n  var firstLineColumnOffset = source.locationOffset.column - 1;\n  var body = whitespace(firstLineColumnOffset) + source.body;\n  var lineIndex = sourceLocation.line - 1;\n  var lineOffset = source.locationOffset.line - 1;\n  var lineNum = sourceLocation.line + lineOffset;\n  var columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n  var columnNum = sourceLocation.column + columnOffset;\n  var locationStr = \"\".concat(source.name, \":\").concat(lineNum, \":\").concat(columnNum, \"\\n\");\n  var lines = body.split(/\\r\\n|[\\n\\r]/g);\n  var locationLine = lines[lineIndex]; // Special case for minified documents\n\n  if (locationLine.length > 120) {\n    var subLineIndex = Math.floor(columnNum / 80);\n    var subLineColumnNum = columnNum % 80;\n    var subLines = [];\n\n    for (var i = 0; i < locationLine.length; i += 80) {\n      subLines.push(locationLine.slice(i, i + 80));\n    }\n\n    return locationStr + printPrefixedLines([[\"\".concat(lineNum), subLines[0]]].concat(subLines.slice(1, subLineIndex + 1).map(function (subLine) {\n      return ['', subLine];\n    }), [[' ', whitespace(subLineColumnNum - 1) + '^'], ['', subLines[subLineIndex + 1]]]));\n  }\n\n  return locationStr + printPrefixedLines([// Lines specified like this: [\"prefix\", \"string\"],\n  [\"\".concat(lineNum - 1), lines[lineIndex - 1]], [\"\".concat(lineNum), locationLine], ['', whitespace(columnNum - 1) + '^'], [\"\".concat(lineNum + 1), lines[lineIndex + 1]]]);\n}\n\nfunction printPrefixedLines(lines) {\n  var existingLines = lines.filter(function (_ref) {\n    var _ = _ref[0],\n        line = _ref[1];\n    return line !== undefined;\n  });\n  var padLen = Math.max.apply(Math, existingLines.map(function (_ref2) {\n    var prefix = _ref2[0];\n    return prefix.length;\n  }));\n  return existingLines.map(function (_ref3) {\n    var prefix = _ref3[0],\n        line = _ref3[1];\n    return leftPad(padLen, prefix) + (line ? ' | ' + line : ' |');\n  }).join('\\n');\n}\n\nfunction whitespace(len) {\n  return Array(len + 1).join(' ');\n}\n\nfunction leftPad(len, str) {\n  return whitespace(len - str.length) + str;\n}\n","/**\n * The set of allowed kind values for AST nodes.\n */\nexport var Kind = Object.freeze({\n  // Name\n  NAME: 'Name',\n  // Document\n  DOCUMENT: 'Document',\n  OPERATION_DEFINITION: 'OperationDefinition',\n  VARIABLE_DEFINITION: 'VariableDefinition',\n  SELECTION_SET: 'SelectionSet',\n  FIELD: 'Field',\n  ARGUMENT: 'Argument',\n  // Fragments\n  FRAGMENT_SPREAD: 'FragmentSpread',\n  INLINE_FRAGMENT: 'InlineFragment',\n  FRAGMENT_DEFINITION: 'FragmentDefinition',\n  // Values\n  VARIABLE: 'Variable',\n  INT: 'IntValue',\n  FLOAT: 'FloatValue',\n  STRING: 'StringValue',\n  BOOLEAN: 'BooleanValue',\n  NULL: 'NullValue',\n  ENUM: 'EnumValue',\n  LIST: 'ListValue',\n  OBJECT: 'ObjectValue',\n  OBJECT_FIELD: 'ObjectField',\n  // Directives\n  DIRECTIVE: 'Directive',\n  // Types\n  NAMED_TYPE: 'NamedType',\n  LIST_TYPE: 'ListType',\n  NON_NULL_TYPE: 'NonNullType',\n  // Type System Definitions\n  SCHEMA_DEFINITION: 'SchemaDefinition',\n  OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition',\n  // Type Definitions\n  SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition',\n  OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition',\n  FIELD_DEFINITION: 'FieldDefinition',\n  INPUT_VALUE_DEFINITION: 'InputValueDefinition',\n  INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition',\n  UNION_TYPE_DEFINITION: 'UnionTypeDefinition',\n  ENUM_TYPE_DEFINITION: 'EnumTypeDefinition',\n  ENUM_VALUE_DEFINITION: 'EnumValueDefinition',\n  INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition',\n  // Directive Definitions\n  DIRECTIVE_DEFINITION: 'DirectiveDefinition',\n  // Type System Extensions\n  SCHEMA_EXTENSION: 'SchemaExtension',\n  // Type Extensions\n  SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension',\n  OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension',\n  INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension',\n  UNION_TYPE_EXTENSION: 'UnionTypeExtension',\n  ENUM_TYPE_EXTENSION: 'EnumTypeExtension',\n  INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension'\n});\n/**\n * The enum type representing the possible kind values of AST nodes.\n */\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nexport var TokenKind = Object.freeze({\n  SOF: '<SOF>',\n  EOF: '<EOF>',\n  BANG: '!',\n  DOLLAR: '$',\n  AMP: '&',\n  PAREN_L: '(',\n  PAREN_R: ')',\n  SPREAD: '...',\n  COLON: ':',\n  EQUALS: '=',\n  AT: '@',\n  BRACKET_L: '[',\n  BRACKET_R: ']',\n  BRACE_L: '{',\n  PIPE: '|',\n  BRACE_R: '}',\n  NAME: 'Name',\n  INT: 'Int',\n  FLOAT: 'Float',\n  STRING: 'String',\n  BLOCK_STRING: 'BlockString',\n  COMMENT: 'Comment'\n});\n/**\n * The enum type representing the token kinds values.\n */\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport default function isObjectLike(value) {\n  return _typeof(value) == 'object' && value !== null;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport devAssert from \"../jsutils/devAssert.mjs\";\nimport isObjectLike from \"../jsutils/isObjectLike.mjs\";\nimport { SYMBOL_TO_STRING_TAG } from \"../polyfills/symbols.mjs\";\nimport { getLocation } from \"../language/location.mjs\";\nimport { printLocation, printSourceLocation } from \"../language/printLocation.mjs\";\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport var GraphQLError = /*#__PURE__*/function (_Error) {\n  _inherits(GraphQLError, _Error);\n\n  var _super = _createSuper(GraphQLError);\n\n  /**\n   * An array of { line, column } locations within the source GraphQL document\n   * which correspond to this error.\n   *\n   * Errors during validation often contain multiple locations, for example to\n   * point out two things with the same name. Errors during execution include a\n   * single location, the field which produced the error.\n   *\n   * Enumerable, and appears in the result of JSON.stringify().\n   */\n\n  /**\n   * An array describing the JSON-path into the execution response which\n   * corresponds to this error. Only included for errors during execution.\n   *\n   * Enumerable, and appears in the result of JSON.stringify().\n   */\n\n  /**\n   * An array of GraphQL AST Nodes corresponding to this error.\n   */\n\n  /**\n   * The source GraphQL document for the first location of this error.\n   *\n   * Note that if this Error represents more than one node, the source may not\n   * represent nodes after the first node.\n   */\n\n  /**\n   * An array of character offsets within the source GraphQL document\n   * which correspond to this error.\n   */\n\n  /**\n   * The original error thrown from a field resolver during execution.\n   */\n\n  /**\n   * Extension fields to add to the formatted error.\n   */\n  function GraphQLError(message, nodes, source, positions, path, originalError, extensions) {\n    var _nodeLocations, _nodeLocations2, _nodeLocations3;\n\n    var _this;\n\n    _classCallCheck(this, GraphQLError);\n\n    _this = _super.call(this, message);\n    _this.name = 'GraphQLError';\n    _this.originalError = originalError !== null && originalError !== void 0 ? originalError : undefined; // Compute list of blame nodes.\n\n    _this.nodes = undefinedIfEmpty(Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined);\n    var nodeLocations = [];\n\n    for (var _i2 = 0, _ref3 = (_this$nodes = _this.nodes) !== null && _this$nodes !== void 0 ? _this$nodes : []; _i2 < _ref3.length; _i2++) {\n      var _this$nodes;\n\n      var _ref4 = _ref3[_i2];\n      var loc = _ref4.loc;\n\n      if (loc != null) {\n        nodeLocations.push(loc);\n      }\n    }\n\n    nodeLocations = undefinedIfEmpty(nodeLocations); // Compute locations in the source for the given nodes/positions.\n\n    _this.source = source !== null && source !== void 0 ? source : (_nodeLocations = nodeLocations) === null || _nodeLocations === void 0 ? void 0 : _nodeLocations[0].source;\n    _this.positions = positions !== null && positions !== void 0 ? positions : (_nodeLocations2 = nodeLocations) === null || _nodeLocations2 === void 0 ? void 0 : _nodeLocations2.map(function (loc) {\n      return loc.start;\n    });\n    _this.locations = positions && source ? positions.map(function (pos) {\n      return getLocation(source, pos);\n    }) : (_nodeLocations3 = nodeLocations) === null || _nodeLocations3 === void 0 ? void 0 : _nodeLocations3.map(function (loc) {\n      return getLocation(loc.source, loc.start);\n    });\n    _this.path = path !== null && path !== void 0 ? path : undefined;\n    var originalExtensions = originalError === null || originalError === void 0 ? void 0 : originalError.extensions;\n\n    if (extensions == null && isObjectLike(originalExtensions)) {\n      _this.extensions = _objectSpread({}, originalExtensions);\n    } else {\n      _this.extensions = extensions !== null && extensions !== void 0 ? extensions : {};\n    } // By being enumerable, JSON.stringify will include bellow properties in the resulting output.\n    // This ensures that the simplest possible GraphQL service adheres to the spec.\n\n\n    Object.defineProperties(_assertThisInitialized(_this), {\n      message: {\n        enumerable: true\n      },\n      locations: {\n        enumerable: _this.locations != null\n      },\n      path: {\n        enumerable: _this.path != null\n      },\n      extensions: {\n        enumerable: _this.extensions != null && Object.keys(_this.extensions).length > 0\n      },\n      name: {\n        enumerable: false\n      },\n      nodes: {\n        enumerable: false\n      },\n      source: {\n        enumerable: false\n      },\n      positions: {\n        enumerable: false\n      },\n      originalError: {\n        enumerable: false\n      }\n    }); // Include (non-enumerable) stack trace.\n\n    if (originalError !== null && originalError !== void 0 && originalError.stack) {\n      Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n        value: originalError.stack,\n        writable: true,\n        configurable: true\n      });\n      return _possibleConstructorReturn(_this);\n    } // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n\n    if (Error.captureStackTrace) {\n      Error.captureStackTrace(_assertThisInitialized(_this), GraphQLError);\n    } else {\n      Object.defineProperty(_assertThisInitialized(_this), 'stack', {\n        value: Error().stack,\n        writable: true,\n        configurable: true\n      });\n    }\n\n    return _this;\n  }\n\n  _createClass(GraphQLError, [{\n    key: \"toString\",\n    value: function toString() {\n      return printError(this);\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return formatError(this);\n    } // FIXME: workaround to not break chai comparisons, should be remove in v16\n    // $FlowFixMe[unsupported-syntax] Flow doesn't support computed properties yet\n\n  }, {\n    key: SYMBOL_TO_STRING_TAG,\n    get: function get() {\n      return 'Object';\n    }\n  }]);\n\n  return GraphQLError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction undefinedIfEmpty(array) {\n  return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n */\n\n\nexport function printError(error) {\n  var output = error.message;\n\n  if (error.nodes) {\n    for (var _i4 = 0, _error$nodes2 = error.nodes; _i4 < _error$nodes2.length; _i4++) {\n      var node = _error$nodes2[_i4];\n\n      if (node.loc) {\n        output += '\\n\\n' + printLocation(node.loc);\n      }\n    }\n  } else if (error.source && error.locations) {\n    for (var _i6 = 0, _error$locations2 = error.locations; _i6 < _error$locations2.length; _i6++) {\n      var location = _error$locations2[_i6];\n      output += '\\n\\n' + printSourceLocation(error.source, location);\n    }\n  }\n\n  return output;\n}\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n */\n\nexport function formatError(error) {\n  var _error$message;\n\n  error || devAssert(0, 'Received null or undefined error.');\n  var message = (_error$message = error.message) !== null && _error$message !== void 0 ? _error$message : 'An unknown error occurred.';\n  var locations = error.locations;\n  var path = error.path;\n  var extensions = error.extensions;\n  return extensions && Object.keys(extensions).length > 0 ? {\n    message: message,\n    locations: locations,\n    path: path,\n    extensions: extensions\n  } : {\n    message: message,\n    locations: locations,\n    path: path\n  };\n}\n/**\n * @see https://github.com/graphql/graphql-spec/blob/master/spec/Section%207%20--%20Response.md#errors\n */\n","import { GraphQLError } from \"./GraphQLError.mjs\";\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n  return new GraphQLError(\"Syntax Error: \".concat(description), undefined, source, [position]);\n}\n","export default function invariant(condition, message) {\n  var booleanCondition = Boolean(condition); // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n\n  if (!booleanCondition) {\n    throw new Error(message != null ? message : 'Unexpected invariant triggered.');\n  }\n}\n","import invariant from \"./invariant.mjs\";\nimport nodejsCustomInspectSymbol from \"./nodejsCustomInspectSymbol.mjs\";\n/**\n * The `defineInspect()` function defines `inspect()` prototype method as alias of `toJSON`\n */\n\nexport default function defineInspect(classObject) {\n  var fn = classObject.prototype.toJSON;\n  typeof fn === 'function' || invariant(0);\n  classObject.prototype.inspect = fn; // istanbul ignore else (See: 'https://github.com/graphql/graphql-js/issues/2317')\n\n  if (nodejsCustomInspectSymbol) {\n    classObject.prototype[nodejsCustomInspectSymbol] = fn;\n  }\n}\n","import defineInspect from \"../jsutils/defineInspect.mjs\";\n\n/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport var Location = /*#__PURE__*/function () {\n  /**\n   * The character offset at which this Node begins.\n   */\n\n  /**\n   * The character offset at which this Node ends.\n   */\n\n  /**\n   * The Token at which this Node begins.\n   */\n\n  /**\n   * The Token at which this Node ends.\n   */\n\n  /**\n   * The Source document the AST represents.\n   */\n  function Location(startToken, endToken, source) {\n    this.start = startToken.start;\n    this.end = endToken.end;\n    this.startToken = startToken;\n    this.endToken = endToken;\n    this.source = source;\n  }\n\n  var _proto = Location.prototype;\n\n  _proto.toJSON = function toJSON() {\n    return {\n      start: this.start,\n      end: this.end\n    };\n  };\n\n  return Location;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Location);\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport var Token = /*#__PURE__*/function () {\n  /**\n   * The kind of Token.\n   */\n\n  /**\n   * The character offset at which this Node begins.\n   */\n\n  /**\n   * The character offset at which this Node ends.\n   */\n\n  /**\n   * The 1-indexed line number on which this Token appears.\n   */\n\n  /**\n   * The 1-indexed column number at which this Token begins.\n   */\n\n  /**\n   * For non-punctuation tokens, represents the interpreted value of the token.\n   */\n\n  /**\n   * Tokens exist as nodes in a double-linked-list amongst all tokens\n   * including ignored tokens. <SOF> is always the first node and <EOF>\n   * the last.\n   */\n  function Token(kind, start, end, line, column, prev, value) {\n    this.kind = kind;\n    this.start = start;\n    this.end = end;\n    this.line = line;\n    this.column = column;\n    this.value = value;\n    this.prev = prev;\n    this.next = null;\n  }\n\n  var _proto2 = Token.prototype;\n\n  _proto2.toJSON = function toJSON() {\n    return {\n      kind: this.kind,\n      value: this.value,\n      line: this.line,\n      column: this.column\n    };\n  };\n\n  return Token;\n}(); // Print a simplified form when appearing in `inspect` and `util.inspect`.\n\ndefineInspect(Token);\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n  return maybeNode != null && typeof maybeNode.kind === 'string';\n}\n/**\n * The list of all possible AST node types.\n */\n","/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\nexport function dedentBlockStringValue(rawString) {\n  // Expand a block string's raw value into independent lines.\n  var lines = rawString.split(/\\r\\n|[\\n\\r]/g); // Remove common indentation from all lines but first.\n\n  var commonIndent = getBlockStringIndentation(rawString);\n\n  if (commonIndent !== 0) {\n    for (var i = 1; i < lines.length; i++) {\n      lines[i] = lines[i].slice(commonIndent);\n    }\n  } // Remove leading and trailing blank lines.\n\n\n  var startLine = 0;\n\n  while (startLine < lines.length && isBlank(lines[startLine])) {\n    ++startLine;\n  }\n\n  var endLine = lines.length;\n\n  while (endLine > startLine && isBlank(lines[endLine - 1])) {\n    --endLine;\n  } // Return a string of the lines joined with U+000A.\n\n\n  return lines.slice(startLine, endLine).join('\\n');\n}\n\nfunction isBlank(str) {\n  for (var i = 0; i < str.length; ++i) {\n    if (str[i] !== ' ' && str[i] !== '\\t') {\n      return false;\n    }\n  }\n\n  return true;\n}\n/**\n * @internal\n */\n\n\nexport function getBlockStringIndentation(value) {\n  var _commonIndent;\n\n  var isFirstLine = true;\n  var isEmptyLine = true;\n  var indent = 0;\n  var commonIndent = null;\n\n  for (var i = 0; i < value.length; ++i) {\n    switch (value.charCodeAt(i)) {\n      case 13:\n        //  \\r\n        if (value.charCodeAt(i + 1) === 10) {\n          ++i; // skip \\r\\n as one symbol\n        }\n\n      // falls through\n\n      case 10:\n        //  \\n\n        isFirstLine = false;\n        isEmptyLine = true;\n        indent = 0;\n        break;\n\n      case 9: //   \\t\n\n      case 32:\n        //  <space>\n        ++indent;\n        break;\n\n      default:\n        if (isEmptyLine && !isFirstLine && (commonIndent === null || indent < commonIndent)) {\n          commonIndent = indent;\n        }\n\n        isEmptyLine = false;\n    }\n  }\n\n  return (_commonIndent = commonIndent) !== null && _commonIndent !== void 0 ? _commonIndent : 0;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value) {\n  var indentation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  var preferMultipleLines = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  var isSingleLine = value.indexOf('\\n') === -1;\n  var hasLeadingSpace = value[0] === ' ' || value[0] === '\\t';\n  var hasTrailingQuote = value[value.length - 1] === '\"';\n  var hasTrailingSlash = value[value.length - 1] === '\\\\';\n  var printAsMultipleLines = !isSingleLine || hasTrailingQuote || hasTrailingSlash || preferMultipleLines;\n  var result = ''; // Format a multi-line block quote to account for leading space.\n\n  if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) {\n    result += '\\n' + indentation;\n  }\n\n  result += indentation ? value.replace(/\\n/g, '\\n' + indentation) : value;\n\n  if (printAsMultipleLines) {\n    result += '\\n';\n  }\n\n  return '\"\"\"' + result.replace(/\"\"\"/g, '\\\\\"\"\"') + '\"\"\"';\n}\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Token } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { dedentBlockStringValue } from \"./blockString.mjs\";\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport var Lexer = /*#__PURE__*/function () {\n  /**\n   * The previously focused non-ignored token.\n   */\n\n  /**\n   * The currently focused non-ignored token.\n   */\n\n  /**\n   * The (1-indexed) line containing the current token.\n   */\n\n  /**\n   * The character offset at which the current line begins.\n   */\n  function Lexer(source) {\n    var startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0, null);\n    this.source = source;\n    this.lastToken = startOfFileToken;\n    this.token = startOfFileToken;\n    this.line = 1;\n    this.lineStart = 0;\n  }\n  /**\n   * Advances the token stream to the next non-ignored token.\n   */\n\n\n  var _proto = Lexer.prototype;\n\n  _proto.advance = function advance() {\n    this.lastToken = this.token;\n    var token = this.token = this.lookahead();\n    return token;\n  }\n  /**\n   * Looks ahead and returns the next non-ignored token, but does not change\n   * the state of Lexer.\n   */\n  ;\n\n  _proto.lookahead = function lookahead() {\n    var token = this.token;\n\n    if (token.kind !== TokenKind.EOF) {\n      do {\n        var _token$next;\n\n        // Note: next is only mutable during parsing, so we cast to allow this.\n        token = (_token$next = token.next) !== null && _token$next !== void 0 ? _token$next : token.next = readToken(this, token);\n      } while (token.kind === TokenKind.COMMENT);\n    }\n\n    return token;\n  };\n\n  return Lexer;\n}();\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n  return kind === TokenKind.BANG || kind === TokenKind.DOLLAR || kind === TokenKind.AMP || kind === TokenKind.PAREN_L || kind === TokenKind.PAREN_R || kind === TokenKind.SPREAD || kind === TokenKind.COLON || kind === TokenKind.EQUALS || kind === TokenKind.AT || kind === TokenKind.BRACKET_L || kind === TokenKind.BRACKET_R || kind === TokenKind.BRACE_L || kind === TokenKind.PIPE || kind === TokenKind.BRACE_R;\n}\n\nfunction printCharCode(code) {\n  return (// NaN/undefined represents access beyond the end of the file.\n    isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII.\n    code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form.\n    \"\\\"\\\\u\".concat(('00' + code.toString(16).toUpperCase()).slice(-4), \"\\\"\")\n  );\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\n\nfunction readToken(lexer, prev) {\n  var source = lexer.source;\n  var body = source.body;\n  var bodyLength = body.length;\n  var pos = prev.end;\n\n  while (pos < bodyLength) {\n    var code = body.charCodeAt(pos);\n    var _line = lexer.line;\n\n    var _col = 1 + pos - lexer.lineStart; // SourceCharacter\n\n\n    switch (code) {\n      case 0xfeff: // <BOM>\n\n      case 9: //   \\t\n\n      case 32: //  <space>\n\n      case 44:\n        //  ,\n        ++pos;\n        continue;\n\n      case 10:\n        //  \\n\n        ++pos;\n        ++lexer.line;\n        lexer.lineStart = pos;\n        continue;\n\n      case 13:\n        //  \\r\n        if (body.charCodeAt(pos + 1) === 10) {\n          pos += 2;\n        } else {\n          ++pos;\n        }\n\n        ++lexer.line;\n        lexer.lineStart = pos;\n        continue;\n\n      case 33:\n        //  !\n        return new Token(TokenKind.BANG, pos, pos + 1, _line, _col, prev);\n\n      case 35:\n        //  #\n        return readComment(source, pos, _line, _col, prev);\n\n      case 36:\n        //  $\n        return new Token(TokenKind.DOLLAR, pos, pos + 1, _line, _col, prev);\n\n      case 38:\n        //  &\n        return new Token(TokenKind.AMP, pos, pos + 1, _line, _col, prev);\n\n      case 40:\n        //  (\n        return new Token(TokenKind.PAREN_L, pos, pos + 1, _line, _col, prev);\n\n      case 41:\n        //  )\n        return new Token(TokenKind.PAREN_R, pos, pos + 1, _line, _col, prev);\n\n      case 46:\n        //  .\n        if (body.charCodeAt(pos + 1) === 46 && body.charCodeAt(pos + 2) === 46) {\n          return new Token(TokenKind.SPREAD, pos, pos + 3, _line, _col, prev);\n        }\n\n        break;\n\n      case 58:\n        //  :\n        return new Token(TokenKind.COLON, pos, pos + 1, _line, _col, prev);\n\n      case 61:\n        //  =\n        return new Token(TokenKind.EQUALS, pos, pos + 1, _line, _col, prev);\n\n      case 64:\n        //  @\n        return new Token(TokenKind.AT, pos, pos + 1, _line, _col, prev);\n\n      case 91:\n        //  [\n        return new Token(TokenKind.BRACKET_L, pos, pos + 1, _line, _col, prev);\n\n      case 93:\n        //  ]\n        return new Token(TokenKind.BRACKET_R, pos, pos + 1, _line, _col, prev);\n\n      case 123:\n        // {\n        return new Token(TokenKind.BRACE_L, pos, pos + 1, _line, _col, prev);\n\n      case 124:\n        // |\n        return new Token(TokenKind.PIPE, pos, pos + 1, _line, _col, prev);\n\n      case 125:\n        // }\n        return new Token(TokenKind.BRACE_R, pos, pos + 1, _line, _col, prev);\n\n      case 34:\n        //  \"\n        if (body.charCodeAt(pos + 1) === 34 && body.charCodeAt(pos + 2) === 34) {\n          return readBlockString(source, pos, _line, _col, prev, lexer);\n        }\n\n        return readString(source, pos, _line, _col, prev);\n\n      case 45: //  -\n\n      case 48: //  0\n\n      case 49: //  1\n\n      case 50: //  2\n\n      case 51: //  3\n\n      case 52: //  4\n\n      case 53: //  5\n\n      case 54: //  6\n\n      case 55: //  7\n\n      case 56: //  8\n\n      case 57:\n        //  9\n        return readNumber(source, pos, code, _line, _col, prev);\n\n      case 65: //  A\n\n      case 66: //  B\n\n      case 67: //  C\n\n      case 68: //  D\n\n      case 69: //  E\n\n      case 70: //  F\n\n      case 71: //  G\n\n      case 72: //  H\n\n      case 73: //  I\n\n      case 74: //  J\n\n      case 75: //  K\n\n      case 76: //  L\n\n      case 77: //  M\n\n      case 78: //  N\n\n      case 79: //  O\n\n      case 80: //  P\n\n      case 81: //  Q\n\n      case 82: //  R\n\n      case 83: //  S\n\n      case 84: //  T\n\n      case 85: //  U\n\n      case 86: //  V\n\n      case 87: //  W\n\n      case 88: //  X\n\n      case 89: //  Y\n\n      case 90: //  Z\n\n      case 95: //  _\n\n      case 97: //  a\n\n      case 98: //  b\n\n      case 99: //  c\n\n      case 100: // d\n\n      case 101: // e\n\n      case 102: // f\n\n      case 103: // g\n\n      case 104: // h\n\n      case 105: // i\n\n      case 106: // j\n\n      case 107: // k\n\n      case 108: // l\n\n      case 109: // m\n\n      case 110: // n\n\n      case 111: // o\n\n      case 112: // p\n\n      case 113: // q\n\n      case 114: // r\n\n      case 115: // s\n\n      case 116: // t\n\n      case 117: // u\n\n      case 118: // v\n\n      case 119: // w\n\n      case 120: // x\n\n      case 121: // y\n\n      case 122:\n        // z\n        return readName(source, pos, _line, _col, prev);\n    }\n\n    throw syntaxError(source, pos, unexpectedCharacterMessage(code));\n  }\n\n  var line = lexer.line;\n  var col = 1 + pos - lexer.lineStart;\n  return new Token(TokenKind.EOF, bodyLength, bodyLength, line, col, prev);\n}\n/**\n * Report a message that an unexpected character was encountered.\n */\n\n\nfunction unexpectedCharacterMessage(code) {\n  if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n    return \"Cannot contain the invalid character \".concat(printCharCode(code), \".\");\n  }\n\n  if (code === 39) {\n    // '\n    return 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?';\n  }\n\n  return \"Cannot parse the unexpected character \".concat(printCharCode(code), \".\");\n}\n/**\n * Reads a comment token from the source file.\n *\n * #[\\u0009\\u0020-\\uFFFF]*\n */\n\n\nfunction readComment(source, start, line, col, prev) {\n  var body = source.body;\n  var code;\n  var position = start;\n\n  do {\n    code = body.charCodeAt(++position);\n  } while (!isNaN(code) && ( // SourceCharacter but not LineTerminator\n  code > 0x001f || code === 0x0009));\n\n  return new Token(TokenKind.COMMENT, start, position, line, col, prev, body.slice(start + 1, position));\n}\n/**\n * Reads a number token from the source file, either a float\n * or an int depending on whether a decimal point appears.\n *\n * Int:   -?(0|[1-9][0-9]*)\n * Float: -?(0|[1-9][0-9]*)(\\.[0-9]+)?((E|e)(+|-)?[0-9]+)?\n */\n\n\nfunction readNumber(source, start, firstCode, line, col, prev) {\n  var body = source.body;\n  var code = firstCode;\n  var position = start;\n  var isFloat = false;\n\n  if (code === 45) {\n    // -\n    code = body.charCodeAt(++position);\n  }\n\n  if (code === 48) {\n    // 0\n    code = body.charCodeAt(++position);\n\n    if (code >= 48 && code <= 57) {\n      throw syntaxError(source, position, \"Invalid number, unexpected digit after 0: \".concat(printCharCode(code), \".\"));\n    }\n  } else {\n    position = readDigits(source, position, code);\n    code = body.charCodeAt(position);\n  }\n\n  if (code === 46) {\n    // .\n    isFloat = true;\n    code = body.charCodeAt(++position);\n    position = readDigits(source, position, code);\n    code = body.charCodeAt(position);\n  }\n\n  if (code === 69 || code === 101) {\n    // E e\n    isFloat = true;\n    code = body.charCodeAt(++position);\n\n    if (code === 43 || code === 45) {\n      // + -\n      code = body.charCodeAt(++position);\n    }\n\n    position = readDigits(source, position, code);\n    code = body.charCodeAt(position);\n  } // Numbers cannot be followed by . or NameStart\n\n\n  if (code === 46 || isNameStart(code)) {\n    throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n  }\n\n  return new Token(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, body.slice(start, position));\n}\n/**\n * Returns the new position in the source after reading digits.\n */\n\n\nfunction readDigits(source, start, firstCode) {\n  var body = source.body;\n  var position = start;\n  var code = firstCode;\n\n  if (code >= 48 && code <= 57) {\n    // 0 - 9\n    do {\n      code = body.charCodeAt(++position);\n    } while (code >= 48 && code <= 57); // 0 - 9\n\n\n    return position;\n  }\n\n  throw syntaxError(source, position, \"Invalid number, expected digit but got: \".concat(printCharCode(code), \".\"));\n}\n/**\n * Reads a string token from the source file.\n *\n * \"([^\"\\\\\\u000A\\u000D]|(\\\\(u[0-9a-fA-F]{4}|[\"\\\\/bfnrt])))*\"\n */\n\n\nfunction readString(source, start, line, col, prev) {\n  var body = source.body;\n  var position = start + 1;\n  var chunkStart = position;\n  var code = 0;\n  var value = '';\n\n  while (position < body.length && !isNaN(code = body.charCodeAt(position)) && // not LineTerminator\n  code !== 0x000a && code !== 0x000d) {\n    // Closing Quote (\")\n    if (code === 34) {\n      value += body.slice(chunkStart, position);\n      return new Token(TokenKind.STRING, start, position + 1, line, col, prev, value);\n    } // SourceCharacter\n\n\n    if (code < 0x0020 && code !== 0x0009) {\n      throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n    }\n\n    ++position;\n\n    if (code === 92) {\n      // \\\n      value += body.slice(chunkStart, position - 1);\n      code = body.charCodeAt(position);\n\n      switch (code) {\n        case 34:\n          value += '\"';\n          break;\n\n        case 47:\n          value += '/';\n          break;\n\n        case 92:\n          value += '\\\\';\n          break;\n\n        case 98:\n          value += '\\b';\n          break;\n\n        case 102:\n          value += '\\f';\n          break;\n\n        case 110:\n          value += '\\n';\n          break;\n\n        case 114:\n          value += '\\r';\n          break;\n\n        case 116:\n          value += '\\t';\n          break;\n\n        case 117:\n          {\n            // uXXXX\n            var charCode = uniCharCode(body.charCodeAt(position + 1), body.charCodeAt(position + 2), body.charCodeAt(position + 3), body.charCodeAt(position + 4));\n\n            if (charCode < 0) {\n              var invalidSequence = body.slice(position + 1, position + 5);\n              throw syntaxError(source, position, \"Invalid character escape sequence: \\\\u\".concat(invalidSequence, \".\"));\n            }\n\n            value += String.fromCharCode(charCode);\n            position += 4;\n            break;\n          }\n\n        default:\n          throw syntaxError(source, position, \"Invalid character escape sequence: \\\\\".concat(String.fromCharCode(code), \".\"));\n      }\n\n      ++position;\n      chunkStart = position;\n    }\n  }\n\n  throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Reads a block string token from the source file.\n *\n * \"\"\"(\"?\"?(\\\\\"\"\"|\\\\(?!=\"\"\")|[^\"\\\\]))*\"\"\"\n */\n\n\nfunction readBlockString(source, start, line, col, prev, lexer) {\n  var body = source.body;\n  var position = start + 3;\n  var chunkStart = position;\n  var code = 0;\n  var rawValue = '';\n\n  while (position < body.length && !isNaN(code = body.charCodeAt(position))) {\n    // Closing Triple-Quote (\"\"\")\n    if (code === 34 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34) {\n      rawValue += body.slice(chunkStart, position);\n      return new Token(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, dedentBlockStringValue(rawValue));\n    } // SourceCharacter\n\n\n    if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) {\n      throw syntaxError(source, position, \"Invalid character within String: \".concat(printCharCode(code), \".\"));\n    }\n\n    if (code === 10) {\n      // new line\n      ++position;\n      ++lexer.line;\n      lexer.lineStart = position;\n    } else if (code === 13) {\n      // carriage return\n      if (body.charCodeAt(position + 1) === 10) {\n        position += 2;\n      } else {\n        ++position;\n      }\n\n      ++lexer.line;\n      lexer.lineStart = position;\n    } else if ( // Escape Triple-Quote (\\\"\"\")\n    code === 92 && body.charCodeAt(position + 1) === 34 && body.charCodeAt(position + 2) === 34 && body.charCodeAt(position + 3) === 34) {\n      rawValue += body.slice(chunkStart, position) + '\"\"\"';\n      position += 4;\n      chunkStart = position;\n    } else {\n      ++position;\n    }\n  }\n\n  throw syntaxError(source, position, 'Unterminated string.');\n}\n/**\n * Converts four hexadecimal chars to the integer that the\n * string represents. For example, uniCharCode('0','0','0','f')\n * will return 15, and uniCharCode('0','0','f','f') returns 255.\n *\n * Returns a negative number on error, if a char was invalid.\n *\n * This is implemented by noting that char2hex() returns -1 on error,\n * which means the result of ORing the char2hex() will also be negative.\n */\n\n\nfunction uniCharCode(a, b, c, d) {\n  return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d);\n}\n/**\n * Converts a hex character to its integer value.\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 on error.\n */\n\n\nfunction char2hex(a) {\n  return a >= 48 && a <= 57 ? a - 48 // 0-9\n  : a >= 65 && a <= 70 ? a - 55 // A-F\n  : a >= 97 && a <= 102 ? a - 87 // a-f\n  : -1;\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * [_A-Za-z][_0-9A-Za-z]*\n */\n\n\nfunction readName(source, start, line, col, prev) {\n  var body = source.body;\n  var bodyLength = body.length;\n  var position = start + 1;\n  var code = 0;\n\n  while (position !== bodyLength && !isNaN(code = body.charCodeAt(position)) && (code === 95 || // _\n  code >= 48 && code <= 57 || // 0-9\n  code >= 65 && code <= 90 || // A-Z\n  code >= 97 && code <= 122) // a-z\n  ) {\n    ++position;\n  }\n\n  return new Token(TokenKind.NAME, start, position, line, col, prev, body.slice(start, position));\n} // _ A-Z a-z\n\n\nfunction isNameStart(code) {\n  return code === 95 || code >= 65 && code <= 90 || code >= 97 && code <= 122;\n}\n","/**\n * The set of allowed directive location values.\n */\nexport var DirectiveLocation = Object.freeze({\n  // Request Definitions\n  QUERY: 'QUERY',\n  MUTATION: 'MUTATION',\n  SUBSCRIPTION: 'SUBSCRIPTION',\n  FIELD: 'FIELD',\n  FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION',\n  FRAGMENT_SPREAD: 'FRAGMENT_SPREAD',\n  INLINE_FRAGMENT: 'INLINE_FRAGMENT',\n  VARIABLE_DEFINITION: 'VARIABLE_DEFINITION',\n  // Type System Definitions\n  SCHEMA: 'SCHEMA',\n  SCALAR: 'SCALAR',\n  OBJECT: 'OBJECT',\n  FIELD_DEFINITION: 'FIELD_DEFINITION',\n  ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION',\n  INTERFACE: 'INTERFACE',\n  UNION: 'UNION',\n  ENUM: 'ENUM',\n  ENUM_VALUE: 'ENUM_VALUE',\n  INPUT_OBJECT: 'INPUT_OBJECT',\n  INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION'\n});\n/**\n * The enum type representing the directive location values.\n */\n","import { syntaxError } from \"../error/syntaxError.mjs\";\nimport { Kind } from \"./kinds.mjs\";\nimport { Location } from \"./ast.mjs\";\nimport { TokenKind } from \"./tokenKind.mjs\";\nimport { Source, isSource } from \"./source.mjs\";\nimport { DirectiveLocation } from \"./directiveLocation.mjs\";\nimport { Lexer, isPunctuatorTokenKind } from \"./lexer.mjs\";\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n  var parser = new Parser(source, options);\n  return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n  var parser = new Parser(source, options);\n  parser.expectToken(TokenKind.SOF);\n  var value = parser.parseValueLiteral(false);\n  parser.expectToken(TokenKind.EOF);\n  return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n  var parser = new Parser(source, options);\n  parser.expectToken(TokenKind.SOF);\n  var type = parser.parseTypeReference();\n  parser.expectToken(TokenKind.EOF);\n  return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport var Parser = /*#__PURE__*/function () {\n  function Parser(source, options) {\n    var sourceObj = isSource(source) ? source : new Source(source);\n    this._lexer = new Lexer(sourceObj);\n    this._options = options;\n  }\n  /**\n   * Converts a name lex token into a name parse node.\n   */\n\n\n  var _proto = Parser.prototype;\n\n  _proto.parseName = function parseName() {\n    var token = this.expectToken(TokenKind.NAME);\n    return {\n      kind: Kind.NAME,\n      value: token.value,\n      loc: this.loc(token)\n    };\n  } // Implements the parsing rules in the Document section.\n\n  /**\n   * Document : Definition+\n   */\n  ;\n\n  _proto.parseDocument = function parseDocument() {\n    var start = this._lexer.token;\n    return {\n      kind: Kind.DOCUMENT,\n      definitions: this.many(TokenKind.SOF, this.parseDefinition, TokenKind.EOF),\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * Definition :\n   *   - ExecutableDefinition\n   *   - TypeSystemDefinition\n   *   - TypeSystemExtension\n   *\n   * ExecutableDefinition :\n   *   - OperationDefinition\n   *   - FragmentDefinition\n   */\n  ;\n\n  _proto.parseDefinition = function parseDefinition() {\n    if (this.peek(TokenKind.NAME)) {\n      switch (this._lexer.token.value) {\n        case 'query':\n        case 'mutation':\n        case 'subscription':\n          return this.parseOperationDefinition();\n\n        case 'fragment':\n          return this.parseFragmentDefinition();\n\n        case 'schema':\n        case 'scalar':\n        case 'type':\n        case 'interface':\n        case 'union':\n        case 'enum':\n        case 'input':\n        case 'directive':\n          return this.parseTypeSystemDefinition();\n\n        case 'extend':\n          return this.parseTypeSystemExtension();\n      }\n    } else if (this.peek(TokenKind.BRACE_L)) {\n      return this.parseOperationDefinition();\n    } else if (this.peekDescription()) {\n      return this.parseTypeSystemDefinition();\n    }\n\n    throw this.unexpected();\n  } // Implements the parsing rules in the Operations section.\n\n  /**\n   * OperationDefinition :\n   *  - SelectionSet\n   *  - OperationType Name? VariableDefinitions? Directives? SelectionSet\n   */\n  ;\n\n  _proto.parseOperationDefinition = function parseOperationDefinition() {\n    var start = this._lexer.token;\n\n    if (this.peek(TokenKind.BRACE_L)) {\n      return {\n        kind: Kind.OPERATION_DEFINITION,\n        operation: 'query',\n        name: undefined,\n        variableDefinitions: [],\n        directives: [],\n        selectionSet: this.parseSelectionSet(),\n        loc: this.loc(start)\n      };\n    }\n\n    var operation = this.parseOperationType();\n    var name;\n\n    if (this.peek(TokenKind.NAME)) {\n      name = this.parseName();\n    }\n\n    return {\n      kind: Kind.OPERATION_DEFINITION,\n      operation: operation,\n      name: name,\n      variableDefinitions: this.parseVariableDefinitions(),\n      directives: this.parseDirectives(false),\n      selectionSet: this.parseSelectionSet(),\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * OperationType : one of query mutation subscription\n   */\n  ;\n\n  _proto.parseOperationType = function parseOperationType() {\n    var operationToken = this.expectToken(TokenKind.NAME);\n\n    switch (operationToken.value) {\n      case 'query':\n        return 'query';\n\n      case 'mutation':\n        return 'mutation';\n\n      case 'subscription':\n        return 'subscription';\n    }\n\n    throw this.unexpected(operationToken);\n  }\n  /**\n   * VariableDefinitions : ( VariableDefinition+ )\n   */\n  ;\n\n  _proto.parseVariableDefinitions = function parseVariableDefinitions() {\n    return this.optionalMany(TokenKind.PAREN_L, this.parseVariableDefinition, TokenKind.PAREN_R);\n  }\n  /**\n   * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n   */\n  ;\n\n  _proto.parseVariableDefinition = function parseVariableDefinition() {\n    var start = this._lexer.token;\n    return {\n      kind: Kind.VARIABLE_DEFINITION,\n      variable: this.parseVariable(),\n      type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n      defaultValue: this.expectOptionalToken(TokenKind.EQUALS) ? this.parseValueLiteral(true) : undefined,\n      directives: this.parseDirectives(true),\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * Variable : $ Name\n   */\n  ;\n\n  _proto.parseVariable = function parseVariable() {\n    var start = this._lexer.token;\n    this.expectToken(TokenKind.DOLLAR);\n    return {\n      kind: Kind.VARIABLE,\n      name: this.parseName(),\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * SelectionSet : { Selection+ }\n   */\n  ;\n\n  _proto.parseSelectionSet = function parseSelectionSet() {\n    var start = this._lexer.token;\n    return {\n      kind: Kind.SELECTION_SET,\n      selections: this.many(TokenKind.BRACE_L, this.parseSelection, TokenKind.BRACE_R),\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * Selection :\n   *   - Field\n   *   - FragmentSpread\n   *   - InlineFragment\n   */\n  ;\n\n  _proto.parseSelection = function parseSelection() {\n    return this.peek(TokenKind.SPREAD) ? this.parseFragment() : this.parseField();\n  }\n  /**\n   * Field : Alias? Name Arguments? Directives? SelectionSet?\n   *\n   * Alias : Name :\n   */\n  ;\n\n  _proto.parseField = function parseField() {\n    var start = this._lexer.token;\n    var nameOrAlias = this.parseName();\n    var alias;\n    var name;\n\n    if (this.expectOptionalToken(TokenKind.COLON)) {\n      alias = nameOrAlias;\n      name = this.parseName();\n    } else {\n      name = nameOrAlias;\n    }\n\n    return {\n      kind: Kind.FIELD,\n      alias: alias,\n      name: name,\n      arguments: this.parseArguments(false),\n      directives: this.parseDirectives(false),\n      selectionSet: this.peek(TokenKind.BRACE_L) ? this.parseSelectionSet() : undefined,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * Arguments[Const] : ( Argument[?Const]+ )\n   */\n  ;\n\n  _proto.parseArguments = function parseArguments(isConst) {\n    var item = isConst ? this.parseConstArgument : this.parseArgument;\n    return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n  }\n  /**\n   * Argument[Const] : Name : Value[?Const]\n   */\n  ;\n\n  _proto.parseArgument = function parseArgument() {\n    var start = this._lexer.token;\n    var name = this.parseName();\n    this.expectToken(TokenKind.COLON);\n    return {\n      kind: Kind.ARGUMENT,\n      name: name,\n      value: this.parseValueLiteral(false),\n      loc: this.loc(start)\n    };\n  };\n\n  _proto.parseConstArgument = function parseConstArgument() {\n    var start = this._lexer.token;\n    return {\n      kind: Kind.ARGUMENT,\n      name: this.parseName(),\n      value: (this.expectToken(TokenKind.COLON), this.parseValueLiteral(true)),\n      loc: this.loc(start)\n    };\n  } // Implements the parsing rules in the Fragments section.\n\n  /**\n   * Corresponds to both FragmentSpread and InlineFragment in the spec.\n   *\n   * FragmentSpread : ... FragmentName Directives?\n   *\n   * InlineFragment : ... TypeCondition? Directives? SelectionSet\n   */\n  ;\n\n  _proto.parseFragment = function parseFragment() {\n    var start = this._lexer.token;\n    this.expectToken(TokenKind.SPREAD);\n    var hasTypeCondition = this.expectOptionalKeyword('on');\n\n    if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n      return {\n        kind: Kind.FRAGMENT_SPREAD,\n        name: this.parseFragmentName(),\n        directives: this.parseDirectives(false),\n        loc: this.loc(start)\n      };\n    }\n\n    return {\n      kind: Kind.INLINE_FRAGMENT,\n      typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n      directives: this.parseDirectives(false),\n      selectionSet: this.parseSelectionSet(),\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * FragmentDefinition :\n   *   - fragment FragmentName on TypeCondition Directives? SelectionSet\n   *\n   * TypeCondition : NamedType\n   */\n  ;\n\n  _proto.parseFragmentDefinition = function parseFragmentDefinition() {\n    var _this$_options;\n\n    var start = this._lexer.token;\n    this.expectKeyword('fragment'); // Experimental support for defining variables within fragments changes\n    // the grammar of FragmentDefinition:\n    //   - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n    if (((_this$_options = this._options) === null || _this$_options === void 0 ? void 0 : _this$_options.experimentalFragmentVariables) === true) {\n      return {\n        kind: Kind.FRAGMENT_DEFINITION,\n        name: this.parseFragmentName(),\n        variableDefinitions: this.parseVariableDefinitions(),\n        typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n        directives: this.parseDirectives(false),\n        selectionSet: this.parseSelectionSet(),\n        loc: this.loc(start)\n      };\n    }\n\n    return {\n      kind: Kind.FRAGMENT_DEFINITION,\n      name: this.parseFragmentName(),\n      typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n      directives: this.parseDirectives(false),\n      selectionSet: this.parseSelectionSet(),\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * FragmentName : Name but not `on`\n   */\n  ;\n\n  _proto.parseFragmentName = function parseFragmentName() {\n    if (this._lexer.token.value === 'on') {\n      throw this.unexpected();\n    }\n\n    return this.parseName();\n  } // Implements the parsing rules in the Values section.\n\n  /**\n   * Value[Const] :\n   *   - [~Const] Variable\n   *   - IntValue\n   *   - FloatValue\n   *   - StringValue\n   *   - BooleanValue\n   *   - NullValue\n   *   - EnumValue\n   *   - ListValue[?Const]\n   *   - ObjectValue[?Const]\n   *\n   * BooleanValue : one of `true` `false`\n   *\n   * NullValue : `null`\n   *\n   * EnumValue : Name but not `true`, `false` or `null`\n   */\n  ;\n\n  _proto.parseValueLiteral = function parseValueLiteral(isConst) {\n    var token = this._lexer.token;\n\n    switch (token.kind) {\n      case TokenKind.BRACKET_L:\n        return this.parseList(isConst);\n\n      case TokenKind.BRACE_L:\n        return this.parseObject(isConst);\n\n      case TokenKind.INT:\n        this._lexer.advance();\n\n        return {\n          kind: Kind.INT,\n          value: token.value,\n          loc: this.loc(token)\n        };\n\n      case TokenKind.FLOAT:\n        this._lexer.advance();\n\n        return {\n          kind: Kind.FLOAT,\n          value: token.value,\n          loc: this.loc(token)\n        };\n\n      case TokenKind.STRING:\n      case TokenKind.BLOCK_STRING:\n        return this.parseStringLiteral();\n\n      case TokenKind.NAME:\n        this._lexer.advance();\n\n        switch (token.value) {\n          case 'true':\n            return {\n              kind: Kind.BOOLEAN,\n              value: true,\n              loc: this.loc(token)\n            };\n\n          case 'false':\n            return {\n              kind: Kind.BOOLEAN,\n              value: false,\n              loc: this.loc(token)\n            };\n\n          case 'null':\n            return {\n              kind: Kind.NULL,\n              loc: this.loc(token)\n            };\n\n          default:\n            return {\n              kind: Kind.ENUM,\n              value: token.value,\n              loc: this.loc(token)\n            };\n        }\n\n      case TokenKind.DOLLAR:\n        if (!isConst) {\n          return this.parseVariable();\n        }\n\n        break;\n    }\n\n    throw this.unexpected();\n  };\n\n  _proto.parseStringLiteral = function parseStringLiteral() {\n    var token = this._lexer.token;\n\n    this._lexer.advance();\n\n    return {\n      kind: Kind.STRING,\n      value: token.value,\n      block: token.kind === TokenKind.BLOCK_STRING,\n      loc: this.loc(token)\n    };\n  }\n  /**\n   * ListValue[Const] :\n   *   - [ ]\n   *   - [ Value[?Const]+ ]\n   */\n  ;\n\n  _proto.parseList = function parseList(isConst) {\n    var _this = this;\n\n    var start = this._lexer.token;\n\n    var item = function item() {\n      return _this.parseValueLiteral(isConst);\n    };\n\n    return {\n      kind: Kind.LIST,\n      values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * ObjectValue[Const] :\n   *   - { }\n   *   - { ObjectField[?Const]+ }\n   */\n  ;\n\n  _proto.parseObject = function parseObject(isConst) {\n    var _this2 = this;\n\n    var start = this._lexer.token;\n\n    var item = function item() {\n      return _this2.parseObjectField(isConst);\n    };\n\n    return {\n      kind: Kind.OBJECT,\n      fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * ObjectField[Const] : Name : Value[?Const]\n   */\n  ;\n\n  _proto.parseObjectField = function parseObjectField(isConst) {\n    var start = this._lexer.token;\n    var name = this.parseName();\n    this.expectToken(TokenKind.COLON);\n    return {\n      kind: Kind.OBJECT_FIELD,\n      name: name,\n      value: this.parseValueLiteral(isConst),\n      loc: this.loc(start)\n    };\n  } // Implements the parsing rules in the Directives section.\n\n  /**\n   * Directives[Const] : Directive[?Const]+\n   */\n  ;\n\n  _proto.parseDirectives = function parseDirectives(isConst) {\n    var directives = [];\n\n    while (this.peek(TokenKind.AT)) {\n      directives.push(this.parseDirective(isConst));\n    }\n\n    return directives;\n  }\n  /**\n   * Directive[Const] : @ Name Arguments[?Const]?\n   */\n  ;\n\n  _proto.parseDirective = function parseDirective(isConst) {\n    var start = this._lexer.token;\n    this.expectToken(TokenKind.AT);\n    return {\n      kind: Kind.DIRECTIVE,\n      name: this.parseName(),\n      arguments: this.parseArguments(isConst),\n      loc: this.loc(start)\n    };\n  } // Implements the parsing rules in the Types section.\n\n  /**\n   * Type :\n   *   - NamedType\n   *   - ListType\n   *   - NonNullType\n   */\n  ;\n\n  _proto.parseTypeReference = function parseTypeReference() {\n    var start = this._lexer.token;\n    var type;\n\n    if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n      type = this.parseTypeReference();\n      this.expectToken(TokenKind.BRACKET_R);\n      type = {\n        kind: Kind.LIST_TYPE,\n        type: type,\n        loc: this.loc(start)\n      };\n    } else {\n      type = this.parseNamedType();\n    }\n\n    if (this.expectOptionalToken(TokenKind.BANG)) {\n      return {\n        kind: Kind.NON_NULL_TYPE,\n        type: type,\n        loc: this.loc(start)\n      };\n    }\n\n    return type;\n  }\n  /**\n   * NamedType : Name\n   */\n  ;\n\n  _proto.parseNamedType = function parseNamedType() {\n    var start = this._lexer.token;\n    return {\n      kind: Kind.NAMED_TYPE,\n      name: this.parseName(),\n      loc: this.loc(start)\n    };\n  } // Implements the parsing rules in the Type Definition section.\n\n  /**\n   * TypeSystemDefinition :\n   *   - SchemaDefinition\n   *   - TypeDefinition\n   *   - DirectiveDefinition\n   *\n   * TypeDefinition :\n   *   - ScalarTypeDefinition\n   *   - ObjectTypeDefinition\n   *   - InterfaceTypeDefinition\n   *   - UnionTypeDefinition\n   *   - EnumTypeDefinition\n   *   - InputObjectTypeDefinition\n   */\n  ;\n\n  _proto.parseTypeSystemDefinition = function parseTypeSystemDefinition() {\n    // Many definitions begin with a description and require a lookahead.\n    var keywordToken = this.peekDescription() ? this._lexer.lookahead() : this._lexer.token;\n\n    if (keywordToken.kind === TokenKind.NAME) {\n      switch (keywordToken.value) {\n        case 'schema':\n          return this.parseSchemaDefinition();\n\n        case 'scalar':\n          return this.parseScalarTypeDefinition();\n\n        case 'type':\n          return this.parseObjectTypeDefinition();\n\n        case 'interface':\n          return this.parseInterfaceTypeDefinition();\n\n        case 'union':\n          return this.parseUnionTypeDefinition();\n\n        case 'enum':\n          return this.parseEnumTypeDefinition();\n\n        case 'input':\n          return this.parseInputObjectTypeDefinition();\n\n        case 'directive':\n          return this.parseDirectiveDefinition();\n      }\n    }\n\n    throw this.unexpected(keywordToken);\n  };\n\n  _proto.peekDescription = function peekDescription() {\n    return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n  }\n  /**\n   * Description : StringValue\n   */\n  ;\n\n  _proto.parseDescription = function parseDescription() {\n    if (this.peekDescription()) {\n      return this.parseStringLiteral();\n    }\n  }\n  /**\n   * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n   */\n  ;\n\n  _proto.parseSchemaDefinition = function parseSchemaDefinition() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    this.expectKeyword('schema');\n    var directives = this.parseDirectives(true);\n    var operationTypes = this.many(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n    return {\n      kind: Kind.SCHEMA_DEFINITION,\n      description: description,\n      directives: directives,\n      operationTypes: operationTypes,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * OperationTypeDefinition : OperationType : NamedType\n   */\n  ;\n\n  _proto.parseOperationTypeDefinition = function parseOperationTypeDefinition() {\n    var start = this._lexer.token;\n    var operation = this.parseOperationType();\n    this.expectToken(TokenKind.COLON);\n    var type = this.parseNamedType();\n    return {\n      kind: Kind.OPERATION_TYPE_DEFINITION,\n      operation: operation,\n      type: type,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n   */\n  ;\n\n  _proto.parseScalarTypeDefinition = function parseScalarTypeDefinition() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    this.expectKeyword('scalar');\n    var name = this.parseName();\n    var directives = this.parseDirectives(true);\n    return {\n      kind: Kind.SCALAR_TYPE_DEFINITION,\n      description: description,\n      name: name,\n      directives: directives,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * ObjectTypeDefinition :\n   *   Description?\n   *   type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n   */\n  ;\n\n  _proto.parseObjectTypeDefinition = function parseObjectTypeDefinition() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    this.expectKeyword('type');\n    var name = this.parseName();\n    var interfaces = this.parseImplementsInterfaces();\n    var directives = this.parseDirectives(true);\n    var fields = this.parseFieldsDefinition();\n    return {\n      kind: Kind.OBJECT_TYPE_DEFINITION,\n      description: description,\n      name: name,\n      interfaces: interfaces,\n      directives: directives,\n      fields: fields,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * ImplementsInterfaces :\n   *   - implements `&`? NamedType\n   *   - ImplementsInterfaces & NamedType\n   */\n  ;\n\n  _proto.parseImplementsInterfaces = function parseImplementsInterfaces() {\n    var _this$_options2;\n\n    if (!this.expectOptionalKeyword('implements')) {\n      return [];\n    }\n\n    if (((_this$_options2 = this._options) === null || _this$_options2 === void 0 ? void 0 : _this$_options2.allowLegacySDLImplementsInterfaces) === true) {\n      var types = []; // Optional leading ampersand\n\n      this.expectOptionalToken(TokenKind.AMP);\n\n      do {\n        types.push(this.parseNamedType());\n      } while (this.expectOptionalToken(TokenKind.AMP) || this.peek(TokenKind.NAME));\n\n      return types;\n    }\n\n    return this.delimitedMany(TokenKind.AMP, this.parseNamedType);\n  }\n  /**\n   * FieldsDefinition : { FieldDefinition+ }\n   */\n  ;\n\n  _proto.parseFieldsDefinition = function parseFieldsDefinition() {\n    var _this$_options3;\n\n    // Legacy support for the SDL?\n    if (((_this$_options3 = this._options) === null || _this$_options3 === void 0 ? void 0 : _this$_options3.allowLegacySDLEmptyFields) === true && this.peek(TokenKind.BRACE_L) && this._lexer.lookahead().kind === TokenKind.BRACE_R) {\n      this._lexer.advance();\n\n      this._lexer.advance();\n\n      return [];\n    }\n\n    return this.optionalMany(TokenKind.BRACE_L, this.parseFieldDefinition, TokenKind.BRACE_R);\n  }\n  /**\n   * FieldDefinition :\n   *   - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n   */\n  ;\n\n  _proto.parseFieldDefinition = function parseFieldDefinition() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    var name = this.parseName();\n    var args = this.parseArgumentDefs();\n    this.expectToken(TokenKind.COLON);\n    var type = this.parseTypeReference();\n    var directives = this.parseDirectives(true);\n    return {\n      kind: Kind.FIELD_DEFINITION,\n      description: description,\n      name: name,\n      arguments: args,\n      type: type,\n      directives: directives,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * ArgumentsDefinition : ( InputValueDefinition+ )\n   */\n  ;\n\n  _proto.parseArgumentDefs = function parseArgumentDefs() {\n    return this.optionalMany(TokenKind.PAREN_L, this.parseInputValueDef, TokenKind.PAREN_R);\n  }\n  /**\n   * InputValueDefinition :\n   *   - Description? Name : Type DefaultValue? Directives[Const]?\n   */\n  ;\n\n  _proto.parseInputValueDef = function parseInputValueDef() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    var name = this.parseName();\n    this.expectToken(TokenKind.COLON);\n    var type = this.parseTypeReference();\n    var defaultValue;\n\n    if (this.expectOptionalToken(TokenKind.EQUALS)) {\n      defaultValue = this.parseValueLiteral(true);\n    }\n\n    var directives = this.parseDirectives(true);\n    return {\n      kind: Kind.INPUT_VALUE_DEFINITION,\n      description: description,\n      name: name,\n      type: type,\n      defaultValue: defaultValue,\n      directives: directives,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * InterfaceTypeDefinition :\n   *   - Description? interface Name Directives[Const]? FieldsDefinition?\n   */\n  ;\n\n  _proto.parseInterfaceTypeDefinition = function parseInterfaceTypeDefinition() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    this.expectKeyword('interface');\n    var name = this.parseName();\n    var interfaces = this.parseImplementsInterfaces();\n    var directives = this.parseDirectives(true);\n    var fields = this.parseFieldsDefinition();\n    return {\n      kind: Kind.INTERFACE_TYPE_DEFINITION,\n      description: description,\n      name: name,\n      interfaces: interfaces,\n      directives: directives,\n      fields: fields,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * UnionTypeDefinition :\n   *   - Description? union Name Directives[Const]? UnionMemberTypes?\n   */\n  ;\n\n  _proto.parseUnionTypeDefinition = function parseUnionTypeDefinition() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    this.expectKeyword('union');\n    var name = this.parseName();\n    var directives = this.parseDirectives(true);\n    var types = this.parseUnionMemberTypes();\n    return {\n      kind: Kind.UNION_TYPE_DEFINITION,\n      description: description,\n      name: name,\n      directives: directives,\n      types: types,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * UnionMemberTypes :\n   *   - = `|`? NamedType\n   *   - UnionMemberTypes | NamedType\n   */\n  ;\n\n  _proto.parseUnionMemberTypes = function parseUnionMemberTypes() {\n    return this.expectOptionalToken(TokenKind.EQUALS) ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType) : [];\n  }\n  /**\n   * EnumTypeDefinition :\n   *   - Description? enum Name Directives[Const]? EnumValuesDefinition?\n   */\n  ;\n\n  _proto.parseEnumTypeDefinition = function parseEnumTypeDefinition() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    this.expectKeyword('enum');\n    var name = this.parseName();\n    var directives = this.parseDirectives(true);\n    var values = this.parseEnumValuesDefinition();\n    return {\n      kind: Kind.ENUM_TYPE_DEFINITION,\n      description: description,\n      name: name,\n      directives: directives,\n      values: values,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * EnumValuesDefinition : { EnumValueDefinition+ }\n   */\n  ;\n\n  _proto.parseEnumValuesDefinition = function parseEnumValuesDefinition() {\n    return this.optionalMany(TokenKind.BRACE_L, this.parseEnumValueDefinition, TokenKind.BRACE_R);\n  }\n  /**\n   * EnumValueDefinition : Description? EnumValue Directives[Const]?\n   *\n   * EnumValue : Name\n   */\n  ;\n\n  _proto.parseEnumValueDefinition = function parseEnumValueDefinition() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    var name = this.parseName();\n    var directives = this.parseDirectives(true);\n    return {\n      kind: Kind.ENUM_VALUE_DEFINITION,\n      description: description,\n      name: name,\n      directives: directives,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * InputObjectTypeDefinition :\n   *   - Description? input Name Directives[Const]? InputFieldsDefinition?\n   */\n  ;\n\n  _proto.parseInputObjectTypeDefinition = function parseInputObjectTypeDefinition() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    this.expectKeyword('input');\n    var name = this.parseName();\n    var directives = this.parseDirectives(true);\n    var fields = this.parseInputFieldsDefinition();\n    return {\n      kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n      description: description,\n      name: name,\n      directives: directives,\n      fields: fields,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * InputFieldsDefinition : { InputValueDefinition+ }\n   */\n  ;\n\n  _proto.parseInputFieldsDefinition = function parseInputFieldsDefinition() {\n    return this.optionalMany(TokenKind.BRACE_L, this.parseInputValueDef, TokenKind.BRACE_R);\n  }\n  /**\n   * TypeSystemExtension :\n   *   - SchemaExtension\n   *   - TypeExtension\n   *\n   * TypeExtension :\n   *   - ScalarTypeExtension\n   *   - ObjectTypeExtension\n   *   - InterfaceTypeExtension\n   *   - UnionTypeExtension\n   *   - EnumTypeExtension\n   *   - InputObjectTypeDefinition\n   */\n  ;\n\n  _proto.parseTypeSystemExtension = function parseTypeSystemExtension() {\n    var keywordToken = this._lexer.lookahead();\n\n    if (keywordToken.kind === TokenKind.NAME) {\n      switch (keywordToken.value) {\n        case 'schema':\n          return this.parseSchemaExtension();\n\n        case 'scalar':\n          return this.parseScalarTypeExtension();\n\n        case 'type':\n          return this.parseObjectTypeExtension();\n\n        case 'interface':\n          return this.parseInterfaceTypeExtension();\n\n        case 'union':\n          return this.parseUnionTypeExtension();\n\n        case 'enum':\n          return this.parseEnumTypeExtension();\n\n        case 'input':\n          return this.parseInputObjectTypeExtension();\n      }\n    }\n\n    throw this.unexpected(keywordToken);\n  }\n  /**\n   * SchemaExtension :\n   *  - extend schema Directives[Const]? { OperationTypeDefinition+ }\n   *  - extend schema Directives[Const]\n   */\n  ;\n\n  _proto.parseSchemaExtension = function parseSchemaExtension() {\n    var start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('schema');\n    var directives = this.parseDirectives(true);\n    var operationTypes = this.optionalMany(TokenKind.BRACE_L, this.parseOperationTypeDefinition, TokenKind.BRACE_R);\n\n    if (directives.length === 0 && operationTypes.length === 0) {\n      throw this.unexpected();\n    }\n\n    return {\n      kind: Kind.SCHEMA_EXTENSION,\n      directives: directives,\n      operationTypes: operationTypes,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * ScalarTypeExtension :\n   *   - extend scalar Name Directives[Const]\n   */\n  ;\n\n  _proto.parseScalarTypeExtension = function parseScalarTypeExtension() {\n    var start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('scalar');\n    var name = this.parseName();\n    var directives = this.parseDirectives(true);\n\n    if (directives.length === 0) {\n      throw this.unexpected();\n    }\n\n    return {\n      kind: Kind.SCALAR_TYPE_EXTENSION,\n      name: name,\n      directives: directives,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * ObjectTypeExtension :\n   *  - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n   *  - extend type Name ImplementsInterfaces? Directives[Const]\n   *  - extend type Name ImplementsInterfaces\n   */\n  ;\n\n  _proto.parseObjectTypeExtension = function parseObjectTypeExtension() {\n    var start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('type');\n    var name = this.parseName();\n    var interfaces = this.parseImplementsInterfaces();\n    var directives = this.parseDirectives(true);\n    var fields = this.parseFieldsDefinition();\n\n    if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n      throw this.unexpected();\n    }\n\n    return {\n      kind: Kind.OBJECT_TYPE_EXTENSION,\n      name: name,\n      interfaces: interfaces,\n      directives: directives,\n      fields: fields,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * InterfaceTypeExtension :\n   *  - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n   *  - extend interface Name ImplementsInterfaces? Directives[Const]\n   *  - extend interface Name ImplementsInterfaces\n   */\n  ;\n\n  _proto.parseInterfaceTypeExtension = function parseInterfaceTypeExtension() {\n    var start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('interface');\n    var name = this.parseName();\n    var interfaces = this.parseImplementsInterfaces();\n    var directives = this.parseDirectives(true);\n    var fields = this.parseFieldsDefinition();\n\n    if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) {\n      throw this.unexpected();\n    }\n\n    return {\n      kind: Kind.INTERFACE_TYPE_EXTENSION,\n      name: name,\n      interfaces: interfaces,\n      directives: directives,\n      fields: fields,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * UnionTypeExtension :\n   *   - extend union Name Directives[Const]? UnionMemberTypes\n   *   - extend union Name Directives[Const]\n   */\n  ;\n\n  _proto.parseUnionTypeExtension = function parseUnionTypeExtension() {\n    var start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('union');\n    var name = this.parseName();\n    var directives = this.parseDirectives(true);\n    var types = this.parseUnionMemberTypes();\n\n    if (directives.length === 0 && types.length === 0) {\n      throw this.unexpected();\n    }\n\n    return {\n      kind: Kind.UNION_TYPE_EXTENSION,\n      name: name,\n      directives: directives,\n      types: types,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * EnumTypeExtension :\n   *   - extend enum Name Directives[Const]? EnumValuesDefinition\n   *   - extend enum Name Directives[Const]\n   */\n  ;\n\n  _proto.parseEnumTypeExtension = function parseEnumTypeExtension() {\n    var start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('enum');\n    var name = this.parseName();\n    var directives = this.parseDirectives(true);\n    var values = this.parseEnumValuesDefinition();\n\n    if (directives.length === 0 && values.length === 0) {\n      throw this.unexpected();\n    }\n\n    return {\n      kind: Kind.ENUM_TYPE_EXTENSION,\n      name: name,\n      directives: directives,\n      values: values,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * InputObjectTypeExtension :\n   *   - extend input Name Directives[Const]? InputFieldsDefinition\n   *   - extend input Name Directives[Const]\n   */\n  ;\n\n  _proto.parseInputObjectTypeExtension = function parseInputObjectTypeExtension() {\n    var start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('input');\n    var name = this.parseName();\n    var directives = this.parseDirectives(true);\n    var fields = this.parseInputFieldsDefinition();\n\n    if (directives.length === 0 && fields.length === 0) {\n      throw this.unexpected();\n    }\n\n    return {\n      kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n      name: name,\n      directives: directives,\n      fields: fields,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * DirectiveDefinition :\n   *   - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n   */\n  ;\n\n  _proto.parseDirectiveDefinition = function parseDirectiveDefinition() {\n    var start = this._lexer.token;\n    var description = this.parseDescription();\n    this.expectKeyword('directive');\n    this.expectToken(TokenKind.AT);\n    var name = this.parseName();\n    var args = this.parseArgumentDefs();\n    var repeatable = this.expectOptionalKeyword('repeatable');\n    this.expectKeyword('on');\n    var locations = this.parseDirectiveLocations();\n    return {\n      kind: Kind.DIRECTIVE_DEFINITION,\n      description: description,\n      name: name,\n      arguments: args,\n      repeatable: repeatable,\n      locations: locations,\n      loc: this.loc(start)\n    };\n  }\n  /**\n   * DirectiveLocations :\n   *   - `|`? DirectiveLocation\n   *   - DirectiveLocations | DirectiveLocation\n   */\n  ;\n\n  _proto.parseDirectiveLocations = function parseDirectiveLocations() {\n    return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n  }\n  /*\n   * DirectiveLocation :\n   *   - ExecutableDirectiveLocation\n   *   - TypeSystemDirectiveLocation\n   *\n   * ExecutableDirectiveLocation : one of\n   *   `QUERY`\n   *   `MUTATION`\n   *   `SUBSCRIPTION`\n   *   `FIELD`\n   *   `FRAGMENT_DEFINITION`\n   *   `FRAGMENT_SPREAD`\n   *   `INLINE_FRAGMENT`\n   *\n   * TypeSystemDirectiveLocation : one of\n   *   `SCHEMA`\n   *   `SCALAR`\n   *   `OBJECT`\n   *   `FIELD_DEFINITION`\n   *   `ARGUMENT_DEFINITION`\n   *   `INTERFACE`\n   *   `UNION`\n   *   `ENUM`\n   *   `ENUM_VALUE`\n   *   `INPUT_OBJECT`\n   *   `INPUT_FIELD_DEFINITION`\n   */\n  ;\n\n  _proto.parseDirectiveLocation = function parseDirectiveLocation() {\n    var start = this._lexer.token;\n    var name = this.parseName();\n\n    if (DirectiveLocation[name.value] !== undefined) {\n      return name;\n    }\n\n    throw this.unexpected(start);\n  } // Core parsing utility functions\n\n  /**\n   * Returns a location object, used to identify the place in the source that created a given parsed object.\n   */\n  ;\n\n  _proto.loc = function loc(startToken) {\n    var _this$_options4;\n\n    if (((_this$_options4 = this._options) === null || _this$_options4 === void 0 ? void 0 : _this$_options4.noLocation) !== true) {\n      return new Location(startToken, this._lexer.lastToken, this._lexer.source);\n    }\n  }\n  /**\n   * Determines if the next token is of a given kind\n   */\n  ;\n\n  _proto.peek = function peek(kind) {\n    return this._lexer.token.kind === kind;\n  }\n  /**\n   * If the next token is of the given kind, return that token after advancing the lexer.\n   * Otherwise, do not change the parser state and throw an error.\n   */\n  ;\n\n  _proto.expectToken = function expectToken(kind) {\n    var token = this._lexer.token;\n\n    if (token.kind === kind) {\n      this._lexer.advance();\n\n      return token;\n    }\n\n    throw syntaxError(this._lexer.source, token.start, \"Expected \".concat(getTokenKindDesc(kind), \", found \").concat(getTokenDesc(token), \".\"));\n  }\n  /**\n   * If the next token is of the given kind, return that token after advancing the lexer.\n   * Otherwise, do not change the parser state and return undefined.\n   */\n  ;\n\n  _proto.expectOptionalToken = function expectOptionalToken(kind) {\n    var token = this._lexer.token;\n\n    if (token.kind === kind) {\n      this._lexer.advance();\n\n      return token;\n    }\n\n    return undefined;\n  }\n  /**\n   * If the next token is a given keyword, advance the lexer.\n   * Otherwise, do not change the parser state and throw an error.\n   */\n  ;\n\n  _proto.expectKeyword = function expectKeyword(value) {\n    var token = this._lexer.token;\n\n    if (token.kind === TokenKind.NAME && token.value === value) {\n      this._lexer.advance();\n    } else {\n      throw syntaxError(this._lexer.source, token.start, \"Expected \\\"\".concat(value, \"\\\", found \").concat(getTokenDesc(token), \".\"));\n    }\n  }\n  /**\n   * If the next token is a given keyword, return \"true\" after advancing the lexer.\n   * Otherwise, do not change the parser state and return \"false\".\n   */\n  ;\n\n  _proto.expectOptionalKeyword = function expectOptionalKeyword(value) {\n    var token = this._lexer.token;\n\n    if (token.kind === TokenKind.NAME && token.value === value) {\n      this._lexer.advance();\n\n      return true;\n    }\n\n    return false;\n  }\n  /**\n   * Helper function for creating an error when an unexpected lexed token is encountered.\n   */\n  ;\n\n  _proto.unexpected = function unexpected(atToken) {\n    var token = atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n    return syntaxError(this._lexer.source, token.start, \"Unexpected \".concat(getTokenDesc(token), \".\"));\n  }\n  /**\n   * Returns a possibly empty list of parse nodes, determined by the parseFn.\n   * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n   * Advances the parser to the next lex token after the closing token.\n   */\n  ;\n\n  _proto.any = function any(openKind, parseFn, closeKind) {\n    this.expectToken(openKind);\n    var nodes = [];\n\n    while (!this.expectOptionalToken(closeKind)) {\n      nodes.push(parseFn.call(this));\n    }\n\n    return nodes;\n  }\n  /**\n   * Returns a list of parse nodes, determined by the parseFn.\n   * It can be empty only if open token is missing otherwise it will always return non-empty list\n   * that begins with a lex token of openKind and ends with a lex token of closeKind.\n   * Advances the parser to the next lex token after the closing token.\n   */\n  ;\n\n  _proto.optionalMany = function optionalMany(openKind, parseFn, closeKind) {\n    if (this.expectOptionalToken(openKind)) {\n      var nodes = [];\n\n      do {\n        nodes.push(parseFn.call(this));\n      } while (!this.expectOptionalToken(closeKind));\n\n      return nodes;\n    }\n\n    return [];\n  }\n  /**\n   * Returns a non-empty list of parse nodes, determined by the parseFn.\n   * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n   * Advances the parser to the next lex token after the closing token.\n   */\n  ;\n\n  _proto.many = function many(openKind, parseFn, closeKind) {\n    this.expectToken(openKind);\n    var nodes = [];\n\n    do {\n      nodes.push(parseFn.call(this));\n    } while (!this.expectOptionalToken(closeKind));\n\n    return nodes;\n  }\n  /**\n   * Returns a non-empty list of parse nodes, determined by the parseFn.\n   * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n   * Advances the parser to the next lex token after last item in the list.\n   */\n  ;\n\n  _proto.delimitedMany = function delimitedMany(delimiterKind, parseFn) {\n    this.expectOptionalToken(delimiterKind);\n    var nodes = [];\n\n    do {\n      nodes.push(parseFn.call(this));\n    } while (this.expectOptionalToken(delimiterKind));\n\n    return nodes;\n  };\n\n  return Parser;\n}();\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n  var value = token.value;\n  return getTokenKindDesc(token.kind) + (value != null ? \" \\\"\".concat(value, \"\\\"\") : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\n\nfunction getTokenKindDesc(kind) {\n  return isPunctuatorTokenKind(kind) ? \"\\\"\".concat(kind, \"\\\"\") : kind;\n}\n","import inspect from \"../jsutils/inspect.mjs\";\nimport { isNode } from \"./ast.mjs\";\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport var QueryDocumentKeys = {\n  Name: [],\n  Document: ['definitions'],\n  OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'],\n  VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n  Variable: ['name'],\n  SelectionSet: ['selections'],\n  Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n  Argument: ['name', 'value'],\n  FragmentSpread: ['name', 'directives'],\n  InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n  FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed\n  // or removed in the future.\n  'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'],\n  IntValue: [],\n  FloatValue: [],\n  StringValue: [],\n  BooleanValue: [],\n  NullValue: [],\n  EnumValue: [],\n  ListValue: ['values'],\n  ObjectValue: ['fields'],\n  ObjectField: ['name', 'value'],\n  Directive: ['name', 'arguments'],\n  NamedType: ['name'],\n  ListType: ['type'],\n  NonNullType: ['type'],\n  SchemaDefinition: ['description', 'directives', 'operationTypes'],\n  OperationTypeDefinition: ['type'],\n  ScalarTypeDefinition: ['description', 'name', 'directives'],\n  ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n  FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n  InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'],\n  InterfaceTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'],\n  UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n  EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n  EnumValueDefinition: ['description', 'name', 'directives'],\n  InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n  DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n  SchemaExtension: ['directives', 'operationTypes'],\n  ScalarTypeExtension: ['name', 'directives'],\n  ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n  InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n  UnionTypeExtension: ['name', 'directives', 'types'],\n  EnumTypeExtension: ['name', 'directives', 'values'],\n  InputObjectTypeExtension: ['name', 'directives', 'fields']\n};\nexport var BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n *     const editedAST = visit(ast, {\n *       enter(node, key, parent, path, ancestors) {\n *         // @return\n *         //   undefined: no action\n *         //   false: skip visiting this node\n *         //   visitor.BREAK: stop visiting altogether\n *         //   null: delete this node\n *         //   any value: replace this node with the returned value\n *       },\n *       leave(node, key, parent, path, ancestors) {\n *         // @return\n *         //   undefined: no action\n *         //   false: no action\n *         //   visitor.BREAK: stop visiting altogether\n *         //   null: delete this node\n *         //   any value: replace this node with the returned value\n *       }\n *     });\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to four permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n *     visit(ast, {\n *       Kind(node) {\n *         // enter the \"Kind\" node\n *       }\n *     })\n *\n * 2) Named visitors that trigger upon entering and leaving a node of\n *    a specific kind.\n *\n *     visit(ast, {\n *       Kind: {\n *         enter(node) {\n *           // enter the \"Kind\" node\n *         }\n *         leave(node) {\n *           // leave the \"Kind\" node\n *         }\n *       }\n *     })\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n *     visit(ast, {\n *       enter(node) {\n *         // enter any node\n *       },\n *       leave(node) {\n *         // leave any node\n *       }\n *     })\n *\n * 4) Parallel visitors for entering and leaving nodes of a specific kind.\n *\n *     visit(ast, {\n *       enter: {\n *         Kind(node) {\n *           // enter the \"Kind\" node\n *         }\n *       },\n *       leave: {\n *         Kind(node) {\n *           // leave the \"Kind\" node\n *         }\n *       }\n *     })\n */\n\nexport function visit(root, visitor) {\n  var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys;\n\n  /* eslint-disable no-undef-init */\n  var stack = undefined;\n  var inArray = Array.isArray(root);\n  var keys = [root];\n  var index = -1;\n  var edits = [];\n  var node = undefined;\n  var key = undefined;\n  var parent = undefined;\n  var path = [];\n  var ancestors = [];\n  var newRoot = root;\n  /* eslint-enable no-undef-init */\n\n  do {\n    index++;\n    var isLeaving = index === keys.length;\n    var isEdited = isLeaving && edits.length !== 0;\n\n    if (isLeaving) {\n      key = ancestors.length === 0 ? undefined : path[path.length - 1];\n      node = parent;\n      parent = ancestors.pop();\n\n      if (isEdited) {\n        if (inArray) {\n          node = node.slice();\n        } else {\n          var clone = {};\n\n          for (var _i2 = 0, _Object$keys2 = Object.keys(node); _i2 < _Object$keys2.length; _i2++) {\n            var k = _Object$keys2[_i2];\n            clone[k] = node[k];\n          }\n\n          node = clone;\n        }\n\n        var editOffset = 0;\n\n        for (var ii = 0; ii < edits.length; ii++) {\n          var editKey = edits[ii][0];\n          var editValue = edits[ii][1];\n\n          if (inArray) {\n            editKey -= editOffset;\n          }\n\n          if (inArray && editValue === null) {\n            node.splice(editKey, 1);\n            editOffset++;\n          } else {\n            node[editKey] = editValue;\n          }\n        }\n      }\n\n      index = stack.index;\n      keys = stack.keys;\n      edits = stack.edits;\n      inArray = stack.inArray;\n      stack = stack.prev;\n    } else {\n      key = parent ? inArray ? index : keys[index] : undefined;\n      node = parent ? parent[key] : newRoot;\n\n      if (node === null || node === undefined) {\n        continue;\n      }\n\n      if (parent) {\n        path.push(key);\n      }\n    }\n\n    var result = void 0;\n\n    if (!Array.isArray(node)) {\n      if (!isNode(node)) {\n        throw new Error(\"Invalid AST Node: \".concat(inspect(node), \".\"));\n      }\n\n      var visitFn = getVisitFn(visitor, node.kind, isLeaving);\n\n      if (visitFn) {\n        result = visitFn.call(visitor, node, key, parent, path, ancestors);\n\n        if (result === BREAK) {\n          break;\n        }\n\n        if (result === false) {\n          if (!isLeaving) {\n            path.pop();\n            continue;\n          }\n        } else if (result !== undefined) {\n          edits.push([key, result]);\n\n          if (!isLeaving) {\n            if (isNode(result)) {\n              node = result;\n            } else {\n              path.pop();\n              continue;\n            }\n          }\n        }\n      }\n    }\n\n    if (result === undefined && isEdited) {\n      edits.push([key, node]);\n    }\n\n    if (isLeaving) {\n      path.pop();\n    } else {\n      var _visitorKeys$node$kin;\n\n      stack = {\n        inArray: inArray,\n        index: index,\n        keys: keys,\n        edits: edits,\n        prev: stack\n      };\n      inArray = Array.isArray(node);\n      keys = inArray ? node : (_visitorKeys$node$kin = visitorKeys[node.kind]) !== null && _visitorKeys$node$kin !== void 0 ? _visitorKeys$node$kin : [];\n      index = -1;\n      edits = [];\n\n      if (parent) {\n        ancestors.push(parent);\n      }\n\n      parent = node;\n    }\n  } while (stack !== undefined);\n\n  if (edits.length !== 0) {\n    newRoot = edits[edits.length - 1][1];\n  }\n\n  return newRoot;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n  var skipping = new Array(visitors.length);\n  return {\n    enter: function enter(node) {\n      for (var i = 0; i < visitors.length; i++) {\n        if (skipping[i] == null) {\n          var fn = getVisitFn(visitors[i], node.kind,\n          /* isLeaving */\n          false);\n\n          if (fn) {\n            var result = fn.apply(visitors[i], arguments);\n\n            if (result === false) {\n              skipping[i] = node;\n            } else if (result === BREAK) {\n              skipping[i] = BREAK;\n            } else if (result !== undefined) {\n              return result;\n            }\n          }\n        }\n      }\n    },\n    leave: function leave(node) {\n      for (var i = 0; i < visitors.length; i++) {\n        if (skipping[i] == null) {\n          var fn = getVisitFn(visitors[i], node.kind,\n          /* isLeaving */\n          true);\n\n          if (fn) {\n            var result = fn.apply(visitors[i], arguments);\n\n            if (result === BREAK) {\n              skipping[i] = BREAK;\n            } else if (result !== undefined && result !== false) {\n              return result;\n            }\n          }\n        } else if (skipping[i] === node) {\n          skipping[i] = null;\n        }\n      }\n    }\n  };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n  var kindVisitor = visitor[kind];\n\n  if (kindVisitor) {\n    if (!isLeaving && typeof kindVisitor === 'function') {\n      // { Kind() {} }\n      return kindVisitor;\n    }\n\n    var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter;\n\n    if (typeof kindSpecificVisitor === 'function') {\n      // { Kind: { enter() {}, leave() {} } }\n      return kindSpecificVisitor;\n    }\n  } else {\n    var specificVisitor = isLeaving ? visitor.leave : visitor.enter;\n\n    if (specificVisitor) {\n      if (typeof specificVisitor === 'function') {\n        // { enter() {}, leave() {} }\n        return specificVisitor;\n      }\n\n      var specificKindVisitor = specificVisitor[kind];\n\n      if (typeof specificKindVisitor === 'function') {\n        // { enter: { Kind() {} }, leave: { Kind() {} } }\n        return specificKindVisitor;\n      }\n    }\n  }\n}\n","import { visit } from \"./visitor.mjs\";\nimport { printBlockString } from \"./blockString.mjs\";\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n  return visit(ast, {\n    leave: printDocASTReducer\n  });\n}\nvar MAX_LINE_LENGTH = 80; // TODO: provide better type coverage in future\n\nvar printDocASTReducer = {\n  Name: function Name(node) {\n    return node.value;\n  },\n  Variable: function Variable(node) {\n    return '$' + node.name;\n  },\n  // Document\n  Document: function Document(node) {\n    return join(node.definitions, '\\n\\n') + '\\n';\n  },\n  OperationDefinition: function OperationDefinition(node) {\n    var op = node.operation;\n    var name = node.name;\n    var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n    var directives = join(node.directives, ' ');\n    var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use\n    // the query short form.\n\n    return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' ');\n  },\n  VariableDefinition: function VariableDefinition(_ref) {\n    var variable = _ref.variable,\n        type = _ref.type,\n        defaultValue = _ref.defaultValue,\n        directives = _ref.directives;\n    return variable + ': ' + type + wrap(' = ', defaultValue) + wrap(' ', join(directives, ' '));\n  },\n  SelectionSet: function SelectionSet(_ref2) {\n    var selections = _ref2.selections;\n    return block(selections);\n  },\n  Field: function Field(_ref3) {\n    var alias = _ref3.alias,\n        name = _ref3.name,\n        args = _ref3.arguments,\n        directives = _ref3.directives,\n        selectionSet = _ref3.selectionSet;\n    var prefix = wrap('', alias, ': ') + name;\n    var argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n    if (argsLine.length > MAX_LINE_LENGTH) {\n      argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n    }\n\n    return join([argsLine, join(directives, ' '), selectionSet], ' ');\n  },\n  Argument: function Argument(_ref4) {\n    var name = _ref4.name,\n        value = _ref4.value;\n    return name + ': ' + value;\n  },\n  // Fragments\n  FragmentSpread: function FragmentSpread(_ref5) {\n    var name = _ref5.name,\n        directives = _ref5.directives;\n    return '...' + name + wrap(' ', join(directives, ' '));\n  },\n  InlineFragment: function InlineFragment(_ref6) {\n    var typeCondition = _ref6.typeCondition,\n        directives = _ref6.directives,\n        selectionSet = _ref6.selectionSet;\n    return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' ');\n  },\n  FragmentDefinition: function FragmentDefinition(_ref7) {\n    var name = _ref7.name,\n        typeCondition = _ref7.typeCondition,\n        variableDefinitions = _ref7.variableDefinitions,\n        directives = _ref7.directives,\n        selectionSet = _ref7.selectionSet;\n    return (// Note: fragment variable definitions are experimental and may be changed\n      // or removed in the future.\n      \"fragment \".concat(name).concat(wrap('(', join(variableDefinitions, ', '), ')'), \" \") + \"on \".concat(typeCondition, \" \").concat(wrap('', join(directives, ' '), ' ')) + selectionSet\n    );\n  },\n  // Value\n  IntValue: function IntValue(_ref8) {\n    var value = _ref8.value;\n    return value;\n  },\n  FloatValue: function FloatValue(_ref9) {\n    var value = _ref9.value;\n    return value;\n  },\n  StringValue: function StringValue(_ref10, key) {\n    var value = _ref10.value,\n        isBlockString = _ref10.block;\n    return isBlockString ? printBlockString(value, key === 'description' ? '' : '  ') : JSON.stringify(value);\n  },\n  BooleanValue: function BooleanValue(_ref11) {\n    var value = _ref11.value;\n    return value ? 'true' : 'false';\n  },\n  NullValue: function NullValue() {\n    return 'null';\n  },\n  EnumValue: function EnumValue(_ref12) {\n    var value = _ref12.value;\n    return value;\n  },\n  ListValue: function ListValue(_ref13) {\n    var values = _ref13.values;\n    return '[' + join(values, ', ') + ']';\n  },\n  ObjectValue: function ObjectValue(_ref14) {\n    var fields = _ref14.fields;\n    return '{' + join(fields, ', ') + '}';\n  },\n  ObjectField: function ObjectField(_ref15) {\n    var name = _ref15.name,\n        value = _ref15.value;\n    return name + ': ' + value;\n  },\n  // Directive\n  Directive: function Directive(_ref16) {\n    var name = _ref16.name,\n        args = _ref16.arguments;\n    return '@' + name + wrap('(', join(args, ', '), ')');\n  },\n  // Type\n  NamedType: function NamedType(_ref17) {\n    var name = _ref17.name;\n    return name;\n  },\n  ListType: function ListType(_ref18) {\n    var type = _ref18.type;\n    return '[' + type + ']';\n  },\n  NonNullType: function NonNullType(_ref19) {\n    var type = _ref19.type;\n    return type + '!';\n  },\n  // Type System Definitions\n  SchemaDefinition: addDescription(function (_ref20) {\n    var directives = _ref20.directives,\n        operationTypes = _ref20.operationTypes;\n    return join(['schema', join(directives, ' '), block(operationTypes)], ' ');\n  }),\n  OperationTypeDefinition: function OperationTypeDefinition(_ref21) {\n    var operation = _ref21.operation,\n        type = _ref21.type;\n    return operation + ': ' + type;\n  },\n  ScalarTypeDefinition: addDescription(function (_ref22) {\n    var name = _ref22.name,\n        directives = _ref22.directives;\n    return join(['scalar', name, join(directives, ' ')], ' ');\n  }),\n  ObjectTypeDefinition: addDescription(function (_ref23) {\n    var name = _ref23.name,\n        interfaces = _ref23.interfaces,\n        directives = _ref23.directives,\n        fields = _ref23.fields;\n    return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n  }),\n  FieldDefinition: addDescription(function (_ref24) {\n    var name = _ref24.name,\n        args = _ref24.arguments,\n        type = _ref24.type,\n        directives = _ref24.directives;\n    return name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + ': ' + type + wrap(' ', join(directives, ' '));\n  }),\n  InputValueDefinition: addDescription(function (_ref25) {\n    var name = _ref25.name,\n        type = _ref25.type,\n        defaultValue = _ref25.defaultValue,\n        directives = _ref25.directives;\n    return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' ');\n  }),\n  InterfaceTypeDefinition: addDescription(function (_ref26) {\n    var name = _ref26.name,\n        interfaces = _ref26.interfaces,\n        directives = _ref26.directives,\n        fields = _ref26.fields;\n    return join(['interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n  }),\n  UnionTypeDefinition: addDescription(function (_ref27) {\n    var name = _ref27.name,\n        directives = _ref27.directives,\n        types = _ref27.types;\n    return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n  }),\n  EnumTypeDefinition: addDescription(function (_ref28) {\n    var name = _ref28.name,\n        directives = _ref28.directives,\n        values = _ref28.values;\n    return join(['enum', name, join(directives, ' '), block(values)], ' ');\n  }),\n  EnumValueDefinition: addDescription(function (_ref29) {\n    var name = _ref29.name,\n        directives = _ref29.directives;\n    return join([name, join(directives, ' ')], ' ');\n  }),\n  InputObjectTypeDefinition: addDescription(function (_ref30) {\n    var name = _ref30.name,\n        directives = _ref30.directives,\n        fields = _ref30.fields;\n    return join(['input', name, join(directives, ' '), block(fields)], ' ');\n  }),\n  DirectiveDefinition: addDescription(function (_ref31) {\n    var name = _ref31.name,\n        args = _ref31.arguments,\n        repeatable = _ref31.repeatable,\n        locations = _ref31.locations;\n    return 'directive @' + name + (hasMultilineItems(args) ? wrap('(\\n', indent(join(args, '\\n')), '\\n)') : wrap('(', join(args, ', '), ')')) + (repeatable ? ' repeatable' : '') + ' on ' + join(locations, ' | ');\n  }),\n  SchemaExtension: function SchemaExtension(_ref32) {\n    var directives = _ref32.directives,\n        operationTypes = _ref32.operationTypes;\n    return join(['extend schema', join(directives, ' '), block(operationTypes)], ' ');\n  },\n  ScalarTypeExtension: function ScalarTypeExtension(_ref33) {\n    var name = _ref33.name,\n        directives = _ref33.directives;\n    return join(['extend scalar', name, join(directives, ' ')], ' ');\n  },\n  ObjectTypeExtension: function ObjectTypeExtension(_ref34) {\n    var name = _ref34.name,\n        interfaces = _ref34.interfaces,\n        directives = _ref34.directives,\n        fields = _ref34.fields;\n    return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n  },\n  InterfaceTypeExtension: function InterfaceTypeExtension(_ref35) {\n    var name = _ref35.name,\n        interfaces = _ref35.interfaces,\n        directives = _ref35.directives,\n        fields = _ref35.fields;\n    return join(['extend interface', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' ');\n  },\n  UnionTypeExtension: function UnionTypeExtension(_ref36) {\n    var name = _ref36.name,\n        directives = _ref36.directives,\n        types = _ref36.types;\n    return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' ');\n  },\n  EnumTypeExtension: function EnumTypeExtension(_ref37) {\n    var name = _ref37.name,\n        directives = _ref37.directives,\n        values = _ref37.values;\n    return join(['extend enum', name, join(directives, ' '), block(values)], ' ');\n  },\n  InputObjectTypeExtension: function InputObjectTypeExtension(_ref38) {\n    var name = _ref38.name,\n        directives = _ref38.directives,\n        fields = _ref38.fields;\n    return join(['extend input', name, join(directives, ' '), block(fields)], ' ');\n  }\n};\n\nfunction addDescription(cb) {\n  return function (node) {\n    return join([node.description, cb(node)], '\\n');\n  };\n}\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\n\nfunction join(maybeArray) {\n  var _maybeArray$filter$jo;\n\n  var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  return (_maybeArray$filter$jo = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.filter(function (x) {\n    return x;\n  }).join(separator)) !== null && _maybeArray$filter$jo !== void 0 ? _maybeArray$filter$jo : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an\n * indented \"{ }\" block.\n */\n\n\nfunction block(array) {\n  return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\n\nfunction wrap(start, maybeString) {\n  var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n  return maybeString != null && maybeString !== '' ? start + maybeString + end : '';\n}\n\nfunction indent(str) {\n  return wrap('  ', str.replace(/\\n/g, '\\n  '));\n}\n\nfunction isMultiline(str) {\n  return str.indexOf('\\n') !== -1;\n}\n\nfunction hasMultilineItems(maybeArray) {\n  return maybeArray != null && maybeArray.some(isMultiline);\n}\n","import { Kind } from \"./kinds.mjs\";\nexport function isDefinitionNode(node) {\n  return isExecutableDefinitionNode(node) || isTypeSystemDefinitionNode(node) || isTypeSystemExtensionNode(node);\n}\nexport function isExecutableDefinitionNode(node) {\n  return node.kind === Kind.OPERATION_DEFINITION || node.kind === Kind.FRAGMENT_DEFINITION;\n}\nexport function isSelectionNode(node) {\n  return node.kind === Kind.FIELD || node.kind === Kind.FRAGMENT_SPREAD || node.kind === Kind.INLINE_FRAGMENT;\n}\nexport function isValueNode(node) {\n  return node.kind === Kind.VARIABLE || node.kind === Kind.INT || node.kind === Kind.FLOAT || node.kind === Kind.STRING || node.kind === Kind.BOOLEAN || node.kind === Kind.NULL || node.kind === Kind.ENUM || node.kind === Kind.LIST || node.kind === Kind.OBJECT;\n}\nexport function isTypeNode(node) {\n  return node.kind === Kind.NAMED_TYPE || node.kind === Kind.LIST_TYPE || node.kind === Kind.NON_NULL_TYPE;\n}\nexport function isTypeSystemDefinitionNode(node) {\n  return node.kind === Kind.SCHEMA_DEFINITION || isTypeDefinitionNode(node) || node.kind === Kind.DIRECTIVE_DEFINITION;\n}\nexport function isTypeDefinitionNode(node) {\n  return node.kind === Kind.SCALAR_TYPE_DEFINITION || node.kind === Kind.OBJECT_TYPE_DEFINITION || node.kind === Kind.INTERFACE_TYPE_DEFINITION || node.kind === Kind.UNION_TYPE_DEFINITION || node.kind === Kind.ENUM_TYPE_DEFINITION || node.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION;\n}\nexport function isTypeSystemExtensionNode(node) {\n  return node.kind === Kind.SCHEMA_EXTENSION || isTypeExtensionNode(node);\n}\nexport function isTypeExtensionNode(node) {\n  return node.kind === Kind.SCALAR_TYPE_EXTENSION || node.kind === Kind.OBJECT_TYPE_EXTENSION || node.kind === Kind.INTERFACE_TYPE_EXTENSION || node.kind === Kind.UNION_TYPE_EXTENSION || node.kind === Kind.ENUM_TYPE_EXTENSION || node.kind === Kind.INPUT_OBJECT_TYPE_EXTENSION;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeDotSegmentsOfPath = exports.removeDotSegments = exports.resolve = void 0;\n/**\n * Convert the given relative IRI to an absolute IRI\n * by taking into account the given optional baseIRI.\n *\n * @param {string} relativeIRI The relative IRI to convert to an absolute IRI.\n * @param {string} baseIRI The optional base IRI.\n * @return {string} an absolute IRI.\n */\nfunction resolve(relativeIRI, baseIRI) {\n    baseIRI = baseIRI || '';\n    const baseFragmentPos = baseIRI.indexOf('#');\n    // Ignore any fragments in the base IRI\n    if (baseFragmentPos > 0) {\n        baseIRI = baseIRI.substr(0, baseFragmentPos);\n    }\n    // Convert empty value directly to base IRI\n    if (!relativeIRI.length) {\n        // At this point, the baseIRI MUST be absolute, otherwise we error\n        if (baseIRI.indexOf(':') < 0) {\n            throw new Error(`Found invalid baseIRI '${baseIRI}' for value '${relativeIRI}'`);\n        }\n        return baseIRI;\n    }\n    // If the value starts with a query character, concat directly (but strip the existing query)\n    if (relativeIRI.startsWith('?')) {\n        const baseQueryPos = baseIRI.indexOf('?');\n        if (baseQueryPos > 0) {\n            baseIRI = baseIRI.substr(0, baseQueryPos);\n        }\n        return baseIRI + relativeIRI;\n    }\n    // If the value starts with a fragment character, concat directly\n    if (relativeIRI.startsWith('#')) {\n        return baseIRI + relativeIRI;\n    }\n    // Ignore baseIRI if it is empty\n    if (!baseIRI.length) {\n        const relativeColonPos = relativeIRI.indexOf(':');\n        if (relativeColonPos < 0) {\n            throw new Error(`Found invalid relative IRI '${relativeIRI}' for a missing baseIRI`);\n        }\n        return removeDotSegmentsOfPath(relativeIRI, relativeColonPos);\n    }\n    // Ignore baseIRI if the value is absolute\n    const valueColonPos = relativeIRI.indexOf(':');\n    if (valueColonPos >= 0) {\n        return removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n    }\n    // At this point, the baseIRI MUST be absolute, otherwise we error\n    const baseColonPos = baseIRI.indexOf(':');\n    if (baseColonPos < 0) {\n        throw new Error(`Found invalid baseIRI '${baseIRI}' for value '${relativeIRI}'`);\n    }\n    const baseIRIScheme = baseIRI.substr(0, baseColonPos + 1);\n    // Inherit the baseIRI scheme if the value starts with '//'\n    if (relativeIRI.indexOf('//') === 0) {\n        return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n    }\n    // Check cases where '://' occurs in the baseIRI, and where there is no '/' after a ':' anymore.\n    let baseSlashAfterColonPos;\n    if (baseIRI.indexOf('//', baseColonPos) === baseColonPos + 1) {\n        // If there is no additional '/' after the '//'.\n        baseSlashAfterColonPos = baseIRI.indexOf('/', baseColonPos + 3);\n        if (baseSlashAfterColonPos < 0) {\n            // If something other than a '/' follows the '://', append the value after a '/',\n            // otherwise, prefix the value with only the baseIRI scheme.\n            if (baseIRI.length > baseColonPos + 3) {\n                return baseIRI + '/' + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n            }\n            else {\n                return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n            }\n        }\n    }\n    else {\n        // If there is not even a single '/' after the ':'\n        baseSlashAfterColonPos = baseIRI.indexOf('/', baseColonPos + 1);\n        if (baseSlashAfterColonPos < 0) {\n            // If we don't have a '/' after the ':',\n            // prefix the value with only the baseIRI scheme.\n            return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n        }\n    }\n    // If the value starts with a '/', then prefix it with everything before the first effective slash of the base IRI.\n    if (relativeIRI.indexOf('/') === 0) {\n        return baseIRI.substr(0, baseSlashAfterColonPos) + removeDotSegments(relativeIRI);\n    }\n    let baseIRIPath = baseIRI.substr(baseSlashAfterColonPos);\n    const baseIRILastSlashPos = baseIRIPath.lastIndexOf('/');\n    // Ignore everything after the last '/' in the baseIRI path\n    if (baseIRILastSlashPos >= 0 && baseIRILastSlashPos < baseIRIPath.length - 1) {\n        baseIRIPath = baseIRIPath.substr(0, baseIRILastSlashPos + 1);\n        // Also remove the first character of the relative path if it starts with '.' (and not '..' or './')\n        // This change is only allowed if there is something else following the path\n        if (relativeIRI[0] === '.' && relativeIRI[1] !== '.' && relativeIRI[1] !== '/' && relativeIRI[2]) {\n            relativeIRI = relativeIRI.substr(1);\n        }\n    }\n    // Prefix the value with the baseIRI path where\n    relativeIRI = baseIRIPath + relativeIRI;\n    // Remove dot segment from the IRI\n    relativeIRI = removeDotSegments(relativeIRI);\n    // Prefix our transformed value with the part of the baseIRI until the first '/' after the first ':'.\n    return baseIRI.substr(0, baseSlashAfterColonPos) + relativeIRI;\n}\nexports.resolve = resolve;\n/**\n * Remove dot segments from the given path,\n * as described in https://www.ietf.org/rfc/rfc3986.txt (page 32).\n * @param {string} path An IRI path.\n * @return {string} A path, will always start with a '/'.\n */\nfunction removeDotSegments(path) {\n    // Prepare a buffer with segments between each '/.\n    // Each segment represents an array of characters.\n    const segmentBuffers = [];\n    let i = 0;\n    while (i < path.length) {\n        // Remove '/.' or '/..'\n        switch (path[i]) {\n            case '/':\n                if (path[i + 1] === '.') {\n                    if (path[i + 2] === '.') {\n                        // Start a new segment if we find an invalid character after the '.'\n                        if (!isCharacterAllowedAfterRelativePathSegment(path[i + 3])) {\n                            segmentBuffers.push([]);\n                            i++;\n                            break;\n                        }\n                        // Go to parent directory,\n                        // so we remove a parent segment\n                        segmentBuffers.pop();\n                        // Ensure that we end with a slash if there is a trailing '/..'\n                        if (!path[i + 3]) {\n                            segmentBuffers.push([]);\n                        }\n                        i += 3;\n                    }\n                    else {\n                        // Start a new segment if we find an invalid character after the '.'\n                        if (!isCharacterAllowedAfterRelativePathSegment(path[i + 2])) {\n                            segmentBuffers.push([]);\n                            i++;\n                            break;\n                        }\n                        // Ensure that we end with a slash if there is a trailing '/.'\n                        if (!path[i + 2]) {\n                            segmentBuffers.push([]);\n                        }\n                        // Go to the current directory,\n                        // so we do nothing\n                        i += 2;\n                    }\n                }\n                else {\n                    // Start a new segment\n                    segmentBuffers.push([]);\n                    i++;\n                }\n                break;\n            case '#':\n            case '?':\n                // Query and fragment string should be appended unchanged\n                if (!segmentBuffers.length) {\n                    segmentBuffers.push([]);\n                }\n                segmentBuffers[segmentBuffers.length - 1].push(path.substr(i));\n                // Break the while loop\n                i = path.length;\n                break;\n            default:\n                // Not a special character, just append it to our buffer\n                if (!segmentBuffers.length) {\n                    segmentBuffers.push([]);\n                }\n                segmentBuffers[segmentBuffers.length - 1].push(path[i]);\n                i++;\n                break;\n        }\n    }\n    return '/' + segmentBuffers.map((buffer) => buffer.join('')).join('/');\n}\nexports.removeDotSegments = removeDotSegments;\n/**\n * Removes dot segments of the given IRI.\n * @param {string} iri An IRI (or part of IRI).\n * @param {number} colonPosition The position of the first ':' in the IRI.\n * @return {string} The IRI where dot segments were removed.\n */\nfunction removeDotSegmentsOfPath(iri, colonPosition) {\n    // Determine where we should start looking for the first '/' that indicates the start of the path\n    let searchOffset = colonPosition + 1;\n    if (colonPosition >= 0) {\n        if (iri[colonPosition + 1] === '/' && iri[colonPosition + 2] === '/') {\n            searchOffset = colonPosition + 3;\n        }\n    }\n    else {\n        if (iri[0] === '/' && iri[1] === '/') {\n            searchOffset = 2;\n        }\n    }\n    // Determine the path\n    const pathSeparator = iri.indexOf('/', searchOffset);\n    if (pathSeparator < 0) {\n        return iri;\n    }\n    const base = iri.substr(0, pathSeparator);\n    const path = iri.substr(pathSeparator);\n    // Remove dot segments from the path\n    return base + removeDotSegments(path);\n}\nexports.removeDotSegmentsOfPath = removeDotSegmentsOfPath;\nfunction isCharacterAllowedAfterRelativePathSegment(character) {\n    return !character || character === '#' || character === '?' || character === '/';\n}\n//# sourceMappingURL=Resolve.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/Resolve\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ERROR_CODES = exports.ErrorCoded = void 0;\n/**\n * An error that has a certain error code.\n *\n * The error code can be any string.\n * All standardized error codes are listed in {@link ERROR_CODES}.\n */\nclass ErrorCoded extends Error {\n    /* istanbul ignore next */\n    constructor(message, code) {\n        super(message);\n        this.code = code;\n    }\n}\nexports.ErrorCoded = ErrorCoded;\n/**\n * All standardized JSON-LD error codes.\n * @see https://w3c.github.io/json-ld-api/#dom-jsonlderrorcode\n */\n// tslint:disable:object-literal-sort-keys\nvar ERROR_CODES;\n(function (ERROR_CODES) {\n    ERROR_CODES[\"COLLIDING_KEYWORDS\"] = \"colliding keywords\";\n    ERROR_CODES[\"CONFLICTING_INDEXES\"] = \"conflicting indexes\";\n    ERROR_CODES[\"CYCLIC_IRI_MAPPING\"] = \"cyclic IRI mapping\";\n    ERROR_CODES[\"INVALID_ID_VALUE\"] = \"invalid @id value\";\n    ERROR_CODES[\"INVALID_INDEX_VALUE\"] = \"invalid @index value\";\n    ERROR_CODES[\"INVALID_NEST_VALUE\"] = \"invalid @nest value\";\n    ERROR_CODES[\"INVALID_PREFIX_VALUE\"] = \"invalid @prefix value\";\n    ERROR_CODES[\"INVALID_PROPAGATE_VALUE\"] = \"invalid @propagate value\";\n    ERROR_CODES[\"INVALID_REVERSE_VALUE\"] = \"invalid @reverse value\";\n    ERROR_CODES[\"INVALID_IMPORT_VALUE\"] = \"invalid @import value\";\n    ERROR_CODES[\"INVALID_VERSION_VALUE\"] = \"invalid @version value\";\n    ERROR_CODES[\"INVALID_BASE_IRI\"] = \"invalid base IRI\";\n    ERROR_CODES[\"INVALID_CONTAINER_MAPPING\"] = \"invalid container mapping\";\n    ERROR_CODES[\"INVALID_CONTEXT_ENTRY\"] = \"invalid context entry\";\n    ERROR_CODES[\"INVALID_CONTEXT_NULLIFICATION\"] = \"invalid context nullification\";\n    ERROR_CODES[\"INVALID_DEFAULT_LANGUAGE\"] = \"invalid default language\";\n    ERROR_CODES[\"INVALID_INCLUDED_VALUE\"] = \"invalid @included value\";\n    ERROR_CODES[\"INVALID_IRI_MAPPING\"] = \"invalid IRI mapping\";\n    ERROR_CODES[\"INVALID_JSON_LITERAL\"] = \"invalid JSON literal\";\n    ERROR_CODES[\"INVALID_KEYWORD_ALIAS\"] = \"invalid keyword alias\";\n    ERROR_CODES[\"INVALID_LANGUAGE_MAP_VALUE\"] = \"invalid language map value\";\n    ERROR_CODES[\"INVALID_LANGUAGE_MAPPING\"] = \"invalid language mapping\";\n    ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_STRING\"] = \"invalid language-tagged string\";\n    ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_VALUE\"] = \"invalid language-tagged value\";\n    ERROR_CODES[\"INVALID_LOCAL_CONTEXT\"] = \"invalid local context\";\n    ERROR_CODES[\"INVALID_REMOTE_CONTEXT\"] = \"invalid remote context\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY\"] = \"invalid reverse property\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY_MAP\"] = \"invalid reverse property map\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY_VALUE\"] = \"invalid reverse property value\";\n    ERROR_CODES[\"INVALID_SCOPED_CONTEXT\"] = \"invalid scoped context\";\n    ERROR_CODES[\"INVALID_SCRIPT_ELEMENT\"] = \"invalid script element\";\n    ERROR_CODES[\"INVALID_SET_OR_LIST_OBJECT\"] = \"invalid set or list object\";\n    ERROR_CODES[\"INVALID_TERM_DEFINITION\"] = \"invalid term definition\";\n    ERROR_CODES[\"INVALID_TYPE_MAPPING\"] = \"invalid type mapping\";\n    ERROR_CODES[\"INVALID_TYPE_VALUE\"] = \"invalid type value\";\n    ERROR_CODES[\"INVALID_TYPED_VALUE\"] = \"invalid typed value\";\n    ERROR_CODES[\"INVALID_VALUE_OBJECT\"] = \"invalid value object\";\n    ERROR_CODES[\"INVALID_VALUE_OBJECT_VALUE\"] = \"invalid value object value\";\n    ERROR_CODES[\"INVALID_VOCAB_MAPPING\"] = \"invalid vocab mapping\";\n    ERROR_CODES[\"IRI_CONFUSED_WITH_PREFIX\"] = \"IRI confused with prefix\";\n    ERROR_CODES[\"KEYWORD_REDEFINITION\"] = \"keyword redefinition\";\n    ERROR_CODES[\"LOADING_DOCUMENT_FAILED\"] = \"loading document failed\";\n    ERROR_CODES[\"LOADING_REMOTE_CONTEXT_FAILED\"] = \"loading remote context failed\";\n    ERROR_CODES[\"MULTIPLE_CONTEXT_LINK_HEADERS\"] = \"multiple context link headers\";\n    ERROR_CODES[\"PROCESSING_MODE_CONFLICT\"] = \"processing mode conflict\";\n    ERROR_CODES[\"PROTECTED_TERM_REDEFINITION\"] = \"protected term redefinition\";\n    ERROR_CODES[\"CONTEXT_OVERFLOW\"] = \"context overflow\";\n    ERROR_CODES[\"INVALID_BASE_DIRECTION\"] = \"invalid base direction\";\n    ERROR_CODES[\"RECURSIVE_CONTEXT_INCLUSION\"] = \"recursive context inclusion\";\n    ERROR_CODES[\"INVALID_STREAMING_KEY_ORDER\"] = \"invalid streaming key order\";\n    /**\n     * JSON-LD-star\n     */\n    ERROR_CODES[\"INVALID_EMBEDDED_NODE\"] = \"invalid embedded node\";\n    ERROR_CODES[\"INVALID_ANNOTATION\"] = \"invalid annotation\";\n})(ERROR_CODES = exports.ERROR_CODES || (exports.ERROR_CODES = {}));\n//# sourceMappingURL=ErrorCoded.js.map","'use strict'\n\nvar COMPATIBLE_ENCODING_PATTERN = /^utf-?8|ascii|utf-?16-?le|ucs-?2|base-?64|latin-?1$/i\nvar WS_TRIM_PATTERN = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g\nvar WS_CHAR_PATTERN = /\\s|\\uFEFF|\\xA0/\nvar WS_FOLD_PATTERN = /\\r?\\n[\\x20\\x09]+/g\nvar DELIMITER_PATTERN = /[;,\"]/\nvar WS_DELIMITER_PATTERN = /[;,\"]|\\s/\n\n/**\n * Token character pattern\n * @type {RegExp}\n * @see https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nvar TOKEN_PATTERN = /^[!#$%&'*+\\-\\.^_`|~\\da-zA-Z]+$/\n\nvar STATE = {\n  IDLE: 1 << 0,\n  URI: 1 << 1,\n  ATTR: 1 << 2,\n}\n\nfunction trim( value ) {\n  return value.replace( WS_TRIM_PATTERN, '' )\n}\n\nfunction hasWhitespace( value ) {\n  return WS_CHAR_PATTERN.test( value )\n}\n\nfunction skipWhitespace( value, offset ) {\n  while( hasWhitespace( value[offset] ) ) {\n    offset++\n  }\n  return offset\n}\n\nfunction needsQuotes( value ) {\n  return WS_DELIMITER_PATTERN.test( value ) ||\n    !TOKEN_PATTERN.test( value )\n}\n\n/**\n * Shallow compares two objects to check if their properties match.\n * @param {object} object1 First object to compare.\n * @param {object} object2 Second object to compare.\n * @returns {boolean} Do the objects have matching properties.\n */\nfunction shallowCompareObjects( object1, object2 ) {\n  return (\n    Object.keys( object1 ).length === Object.keys( object2 ).length &&\n    Object.keys( object1 ).every(\n      ( key ) => key in object2 && object1[ key ] === object2[ key ]\n    )\n  );\n}\n\nclass Link {\n\n  /**\n   * Link\n   * @constructor\n   * @param {String} [value]\n   * @returns {Link}\n   */\n  constructor( value ) {\n\n    /** @type {Array} URI references */\n    this.refs = []\n\n    if( value ) {\n      this.parse( value )\n    }\n\n  }\n\n  /**\n   * Get refs with given relation type\n   * @param {String} value\n   * @returns {Array<Object>}\n   */\n  rel( value ) {\n\n    var links = []\n    var type = value.toLowerCase()\n\n    for( var i = 0; i < this.refs.length; i++ ) {\n      if( typeof this.refs[ i ].rel === 'string' && this.refs[ i ].rel.toLowerCase() === type ) {\n        links.push( this.refs[ i ] )\n      }\n    }\n\n    return links\n\n  }\n\n  /**\n   * Get refs where given attribute has a given value\n   * @param {String} attr\n   * @param {String} value\n   * @returns {Array<Object>}\n   */\n  get( attr, value ) {\n\n    attr = attr.toLowerCase()\n    value = value.toLowerCase()\n\n    var links = []\n\n    for( var i = 0; i < this.refs.length; i++ ) {\n      if( typeof this.refs[ i ][ attr ] === 'string' && this.refs[ i ][ attr ].toLowerCase() === value ) {\n        links.push( this.refs[ i ] )\n      }\n    }\n\n    return links\n\n  }\n\n  /** Sets a reference. */\n  set( link ) {\n    this.refs.push( link )\n    return this\n  }\n\n  /**\n   * Sets a reference if a reference with similar properties isn’t already set.\n   */\n  setUnique( link ) {\n\n    if( !this.refs.some(( ref ) => shallowCompareObjects( ref, link )) ) {\n      this.refs.push( link )\n    }\n\n    return this\n\n  }\n\n  has( attr, value ) {\n\n    attr = attr.toLowerCase()\n    value = value.toLowerCase()\n\n    for( var i = 0; i < this.refs.length; i++ ) {\n      if( typeof this.refs[ i ][ attr ] === 'string' && this.refs[ i ][ attr ].toLowerCase() === value ) {\n        return true\n      }\n    }\n\n    return false\n\n  }\n\n  parse( value, offset ) {\n\n    offset = offset || 0\n    value = offset ? value.slice( offset ) : value\n\n    // Trim & unfold folded lines\n    value = trim( value ).replace( WS_FOLD_PATTERN, '' )\n\n    var state = STATE.IDLE\n    var length = value.length\n    var offset = 0\n    var ref = null\n\n    while( offset < length ) {\n      if( state === STATE.IDLE ) {\n        if( hasWhitespace( value[offset] ) ) {\n          offset++\n          continue\n        } else if( value[offset] === '<' ) {\n          if( ref != null ) {\n            ref.rel != null ?\n              this.refs.push( ...Link.expandRelations( ref ) ) :\n              this.refs.push( ref )\n          }\n          var end = value.indexOf( '>', offset )\n          if( end === -1 ) throw new Error( 'Expected end of URI delimiter at offset ' + offset )\n          ref = { uri: value.slice( offset + 1, end ) }\n          // this.refs.push( ref )\n          offset = end\n          state = STATE.URI\n        } else {\n          throw new Error( 'Unexpected character \"' + value[offset] + '\" at offset ' + offset )\n        }\n        offset++\n      } else if( state === STATE.URI ) {\n        if( hasWhitespace( value[offset] ) ) {\n          offset++\n          continue\n        } else if( value[offset] === ';' ) {\n          state = STATE.ATTR\n          offset++\n        } else if( value[offset] === ',' ) {\n          state = STATE.IDLE\n          offset++\n        } else {\n          throw new Error( 'Unexpected character \"' + value[offset] + '\" at offset ' + offset )\n        }\n      } else if( state === STATE.ATTR ) {\n        if( value[offset] ===';' || hasWhitespace( value[offset] ) ) {\n          offset++\n          continue\n        }\n        var end = value.indexOf( '=', offset )\n        if( end === -1 ) end = value.indexOf( ';', offset )\n        if( end === -1 ) end = value.length\n        var attr = trim( value.slice( offset, end ) ).toLowerCase()\n        var attrValue = ''\n        offset = end + 1\n        offset = skipWhitespace( value, offset )\n        if( value[offset] === '\"' ) {\n          offset++\n          while( offset < length ) {\n            if( value[offset] === '\"' ) {\n              offset++; break\n            }\n            if( value[offset] === '\\\\' ) {\n              offset++\n            }\n            attrValue += value[offset]\n            offset++\n          }\n        } else {\n          var end = offset + 1\n          while( !DELIMITER_PATTERN.test( value[end] ) && end < length ) {\n            end++\n          }\n          attrValue = value.slice( offset, end )\n          offset = end\n        }\n        if( ref[ attr ] && Link.isSingleOccurenceAttr( attr ) ) {\n          // Ignore multiples of attributes which may only appear once\n        } else if( attr[ attr.length - 1 ] === '*' ) {\n          ref[ attr ] = Link.parseExtendedValue( attrValue )\n        } else {\n          attrValue = attr === 'type' ?\n            attrValue.toLowerCase() : attrValue\n          if( ref[ attr ] != null ) {\n            if( Array.isArray( ref[ attr ] ) ) {\n              ref[ attr ].push( attrValue )\n            } else {\n              ref[ attr ] = [ ref[ attr ], attrValue ]\n            }\n          } else {\n            ref[ attr ] = attrValue\n          }\n        }\n        switch( value[offset] ) {\n          case ',': state = STATE.IDLE; break\n          case ';': state = STATE.ATTR; break\n        }\n        offset++\n      } else {\n        throw new Error( 'Unknown parser state \"' + state + '\"' )\n      }\n    }\n\n    if( ref != null ) {\n      ref.rel != null ?\n        this.refs.push( ...Link.expandRelations( ref ) ) :\n        this.refs.push( ref )\n    }\n\n    ref = null\n\n    return this\n\n  }\n\n  toString() {\n\n    var refs = []\n    var link = ''\n    var ref = null\n\n    for( var i = 0; i < this.refs.length; i++ ) {\n      ref = this.refs[i]\n      link = Object.keys( this.refs[i] ).reduce( function( link, attr ) {\n        if( attr === 'uri' ) return link\n        return link + '; ' + Link.formatAttribute( attr, ref[ attr ] )\n      }, '<' + ref.uri + '>' )\n      refs.push( link )\n    }\n\n    return refs.join( ', ' )\n\n  }\n\n}\n\n/**\n * Determines whether an encoding can be\n * natively handled with a `Buffer`\n * @param {String} value\n * @returns {Boolean}\n */\nLink.isCompatibleEncoding = function( value ) {\n  return COMPATIBLE_ENCODING_PATTERN.test( value )\n}\n\nLink.parse = function( value, offset ) {\n  return new Link().parse( value, offset )\n}\n\nLink.isSingleOccurenceAttr = function( attr ) {\n  return attr === 'rel' || attr === 'type' || attr === 'media' ||\n    attr === 'title' || attr === 'title*'\n}\n\nLink.isTokenAttr = function( attr ) {\n  return attr === 'rel' || attr === 'type' || attr === 'anchor'\n}\n\nLink.escapeQuotes = function( value ) {\n  return value.replace( /\"/g, '\\\\\"' )\n}\n\nLink.expandRelations = function( ref ) {\n  var rels = ref.rel.split( ' ' )\n  return rels.map( function( rel ) {\n    var value = Object.assign( {}, ref )\n    value.rel = rel\n    return value\n  })\n}\n\n/**\n * Parses an extended value and attempts to decode it\n * @internal\n * @param {String} value\n * @return {Object}\n */\nLink.parseExtendedValue = function( value ) {\n  var parts = /([^']+)?(?:'([^']*)')?(.+)/.exec( value )\n  return {\n    language: parts[2].toLowerCase(),\n    encoding: Link.isCompatibleEncoding( parts[1] ) ?\n      null : parts[1].toLowerCase(),\n    value: Link.isCompatibleEncoding( parts[1] ) ?\n      decodeURIComponent( parts[3] ) : parts[3]\n  }\n}\n\n/**\n * Format a given extended attribute and it's value\n * @param {String} attr\n * @param {Object} data\n * @return {String}\n */\nLink.formatExtendedAttribute = function( attr, data ) {\n\n  var encoding = ( data.encoding || 'utf-8' ).toUpperCase()\n  var language = data.language || 'en'\n\n  var encodedValue = ''\n\n  if( Buffer.isBuffer( data.value ) && Link.isCompatibleEncoding( encoding ) ) {\n    encodedValue = data.value.toString( encoding )\n  } else if( Buffer.isBuffer( data.value ) ) {\n    encodedValue = data.value.toString( 'hex' )\n      .replace( /[0-9a-f]{2}/gi, '%$1' )\n  } else {\n    encodedValue = encodeURIComponent( data.value )\n  }\n\n  return attr + '=' + encoding + '\\'' +\n    language + '\\'' + encodedValue\n\n}\n\n/**\n * Format a given attribute and it's value\n * @param {String} attr\n * @param {String|Object} value\n * @return {String}\n */\nLink.formatAttribute = function( attr, value ) {\n\n  if( Array.isArray( value ) ) {\n    return value.map(( item ) => {\n      return Link.formatAttribute( attr, item )\n    }).join( '; ' )\n  }\n\n  if( attr[ attr.length - 1 ] === '*' || typeof value !== 'string' ) {\n    return Link.formatExtendedAttribute( attr, value )\n  }\n\n  if( Link.isTokenAttr( attr ) ) {\n    value = needsQuotes( value ) ?\n      '\"' + Link.escapeQuotes( value ) + '\"' :\n      Link.escapeQuotes( value )\n  } else if( needsQuotes( value ) ) {\n    value = encodeURIComponent( value )\n    // We don't need to escape <SP> <,> <;> within quotes\n    value = value\n      .replace( /%20/g, ' ' )\n      .replace( /%2C/g, ',' )\n      .replace( /%3B/g, ';' )\n\n    value = '\"' + value + '\"'\n  }\n\n  return attr + '=' + value\n\n}\n\nmodule.exports = Link\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchDocumentLoader = void 0;\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst http_link_header_1 = require(\"http-link-header\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * Loads documents via the fetch API.\n */\nclass FetchDocumentLoader {\n    constructor(fetcher) {\n        this.fetcher = fetcher;\n    }\n    async load(url) {\n        const response = await (this.fetcher || fetch)(url, { headers: new Headers({ accept: 'application/ld+json' }) });\n        if (response.ok && response.headers) {\n            let mediaType = response.headers.get('Content-Type');\n            if (mediaType) {\n                const colonPos = mediaType.indexOf(';');\n                if (colonPos > 0) {\n                    mediaType = mediaType.substr(0, colonPos);\n                }\n            }\n            if (mediaType === 'application/ld+json') {\n                // Return JSON-LD if proper content type was returned\n                return (await response.json());\n            }\n            else {\n                // Check for alternate link for a non-JSON-LD response\n                if (response.headers.has('Link')) {\n                    let alternateUrl;\n                    response.headers.forEach((value, key) => {\n                        if (key === 'link') {\n                            const linkHeader = (0, http_link_header_1.parse)(value);\n                            for (const link of linkHeader.get('type', 'application/ld+json')) {\n                                if (link.rel === 'alternate') {\n                                    if (alternateUrl) {\n                                        throw new Error('Multiple JSON-LD alternate links were found on ' + url);\n                                    }\n                                    alternateUrl = (0, relative_to_absolute_iri_1.resolve)(link.uri, url);\n                                }\n                            }\n                        }\n                    });\n                    if (alternateUrl) {\n                        return this.load(alternateUrl);\n                    }\n                }\n                throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, ErrorCoded_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n            }\n        }\n        else {\n            throw new Error(response.statusText || `Status code: ${response.status}`);\n        }\n    }\n}\nexports.FetchDocumentLoader = FetchDocumentLoader;\n//# sourceMappingURL=FetchDocumentLoader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nclass Util {\n    /**\n     * Check if the given term is a valid compact IRI.\n     * Otherwise, it may be an IRI.\n     * @param {string} term A term.\n     * @return {boolean} If it is a compact IRI.\n     */\n    static isCompactIri(term) {\n        return term.indexOf(':') > 0 && !(term && term[0] === '#');\n    }\n    /**\n     * Get the prefix from the given term.\n     * @see https://json-ld.org/spec/latest/json-ld/#compact-iris\n     * @param {string} term A term that is an URL or a prefixed URL.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @return {string} The prefix or null.\n     */\n    static getPrefix(term, context) {\n        // Do not consider relative IRIs starting with a hash as compact IRIs\n        if (term && term[0] === '#') {\n            return null;\n        }\n        const separatorPos = term.indexOf(':');\n        if (separatorPos >= 0) {\n            // Suffix can not begin with two slashes\n            if (term.length > separatorPos + 1\n                && term.charAt(separatorPos + 1) === '/'\n                && term.charAt(separatorPos + 2) === '/') {\n                return null;\n            }\n            const prefix = term.substr(0, separatorPos);\n            // Prefix can not be an underscore (this is a blank node)\n            if (prefix === '_') {\n                return null;\n            }\n            // Prefix must match a term in the active context\n            if (context[prefix]) {\n                return prefix;\n            }\n        }\n        return null;\n    }\n    /**\n     * From a given context entry value, get the string value, or the @id field.\n     * @param contextValue A value for a term in a context.\n     * @return {string} The id value, or null.\n     */\n    static getContextValueId(contextValue) {\n        if (contextValue === null || typeof contextValue === 'string') {\n            return contextValue;\n        }\n        const id = contextValue['@id'];\n        return id ? id : null;\n    }\n    /**\n     * Check if the given simple term definition (string-based value of a context term)\n     * should be considered a prefix.\n     * @param value A simple term definition value.\n     * @param options Options that define the way how expansion must be done.\n     */\n    static isSimpleTermDefinitionPrefix(value, options) {\n        return !Util.isPotentialKeyword(value)\n            && (options.allowPrefixNonGenDelims || (typeof value === 'string' && (value[0] === '_' || Util.isPrefixIriEndingWithGenDelim(value))));\n    }\n    /**\n     * Check if the given keyword is of the keyword format \"@\"1*ALPHA.\n     * @param {string} keyword A potential keyword.\n     * @return {boolean} If the given keyword is of the keyword format.\n     */\n    static isPotentialKeyword(keyword) {\n        return typeof keyword === 'string' && Util.KEYWORD_REGEX.test(keyword);\n    }\n    /**\n     * Check if the given prefix ends with a gen-delim character.\n     * @param {string} prefixIri A prefix IRI.\n     * @return {boolean} If the given prefix IRI is valid.\n     */\n    static isPrefixIriEndingWithGenDelim(prefixIri) {\n        return Util.ENDS_WITH_GEN_DELIM.test(prefixIri);\n    }\n    /**\n     * Check if the given context value can be a prefix value.\n     * @param value A context value.\n     * @return {boolean} If it can be a prefix value.\n     */\n    static isPrefixValue(value) {\n        return value && (typeof value === 'string' || (value && typeof value === 'object'));\n    }\n    /**\n     * Check if the given IRI is valid.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIri(iri) {\n        return Boolean(iri && Util.IRI_REGEX.test(iri));\n    }\n    /**\n     * Check if the given IRI is valid, this includes the possibility of being a relative IRI.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIriWeak(iri) {\n        return !!iri && iri[0] !== ':' && Util.IRI_REGEX_WEAK.test(iri);\n    }\n    /**\n     * Check if the given keyword is a defined according to the JSON-LD specification.\n     * @param {string} keyword A potential keyword.\n     * @return {boolean} If the given keyword is valid.\n     */\n    static isValidKeyword(keyword) {\n        return Util.VALID_KEYWORDS[keyword];\n    }\n    /**\n     * Check if the given term is protected in the context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {string} key A context term.\n     * @return {boolean} If the given term has an @protected flag.\n     */\n    static isTermProtected(context, key) {\n        const value = context[key];\n        return !(typeof value === 'string') && value && value['@protected'];\n    }\n    /**\n     * Check if the given context has at least one protected term.\n     * @param context A context.\n     * @return If the context has a protected term.\n     */\n    static hasProtectedTerms(context) {\n        for (const key of Object.keys(context)) {\n            if (Util.isTermProtected(context, key)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    /**\n     * Check if the given key is an internal reserved keyword.\n     * @param key A context key.\n     */\n    static isReservedInternalKeyword(key) {\n        return key.startsWith('@__');\n    }\n    /**\n     * Check if two objects are deepEqual to on another.\n     * @param object1 The first object to test.\n     * @param object2 The second object to test.\n     */\n    static deepEqual(object1, object2) {\n        const objKeys1 = Object.keys(object1);\n        const objKeys2 = Object.keys(object2);\n        if (objKeys1.length !== objKeys2.length)\n            return false;\n        return objKeys1.every((key) => {\n            const value1 = object1[key];\n            const value2 = object2[key];\n            return (value1 === value2) || (value1 !== null &&\n                value2 !== null &&\n                typeof value1 === \"object\" &&\n                typeof value2 === \"object\" &&\n                this.deepEqual(value1, value2));\n        });\n    }\n    ;\n}\n// Regex for valid IRIs\nUtil.IRI_REGEX = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^ \"<>{}|\\\\\\[\\]`#]*(#[^#]*)?$/;\n// Weaker regex for valid IRIs, this includes relative IRIs\nUtil.IRI_REGEX_WEAK = /(?::[^:])|\\//;\n// Regex for keyword form\nUtil.KEYWORD_REGEX = /^@[a-z]+$/i;\n// Regex to see if an IRI ends with a gen-delim character (see RFC 3986)\nUtil.ENDS_WITH_GEN_DELIM = /[:/?#\\[\\]@]$/;\n// Regex for language tags\nUtil.REGEX_LANGUAGE_TAG = /^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/;\n// Regex for base directions\nUtil.REGEX_DIRECTION_TAG = /^(ltr)|(rtl)$/;\n// All known valid JSON-LD keywords\n// @see https://www.w3.org/TR/json-ld11/#keywords\nUtil.VALID_KEYWORDS = {\n    '@annotation': true,\n    '@base': true,\n    '@container': true,\n    '@context': true,\n    '@direction': true,\n    '@graph': true,\n    '@id': true,\n    '@import': true,\n    '@included': true,\n    '@index': true,\n    '@json': true,\n    '@language': true,\n    '@list': true,\n    '@nest': true,\n    '@none': true,\n    '@prefix': true,\n    '@propagate': true,\n    '@protected': true,\n    '@reverse': true,\n    '@set': true,\n    '@type': true,\n    '@value': true,\n    '@version': true,\n    '@vocab': true,\n};\n// Keys in the contexts that will not be expanded based on the base IRI\nUtil.EXPAND_KEYS_BLACKLIST = [\n    '@base',\n    '@vocab',\n    '@language',\n    '@version',\n    '@direction',\n];\n// Keys in the contexts that may not be aliased from\nUtil.ALIAS_DOMAIN_BLACKLIST = [\n    '@container',\n    '@graph',\n    '@id',\n    '@index',\n    '@list',\n    '@nest',\n    '@none',\n    '@prefix',\n    '@reverse',\n    '@set',\n    '@type',\n    '@value',\n    '@version',\n];\n// Keys in the contexts that may not be aliased to\nUtil.ALIAS_RANGE_BLACKLIST = [\n    '@context',\n    '@preserve',\n];\n// All valid @container values\nUtil.CONTAINERS = [\n    '@list',\n    '@set',\n    '@index',\n    '@language',\n    '@graph',\n    '@id',\n    '@type',\n];\n// All valid @container values under processing mode 1.0\nUtil.CONTAINERS_1_0 = [\n    '@list',\n    '@set',\n    '@index',\n];\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultExpandOptions = exports.JsonLdContextNormalized = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst Util_1 = require(\"./Util\");\n/**\n * A class exposing operations over a normalized JSON-LD context.\n */\nclass JsonLdContextNormalized {\n    constructor(contextRaw) {\n        this.contextRaw = contextRaw;\n    }\n    /**\n     * @return The raw inner context.\n     */\n    getContextRaw() {\n        return this.contextRaw;\n    }\n    /**\n     * Expand the term or prefix of the given term if it has one,\n     * otherwise return the term as-is.\n     *\n     * This will try to expand the IRI as much as possible.\n     *\n     * Iff in vocab-mode, then other references to other terms in the context can be used,\n     * such as to `myTerm`:\n     * ```\n     * {\n     *   \"myTerm\": \"http://example.org/myLongTerm\"\n     * }\n     * ```\n     *\n     * @param {string} term A term that is an URL or a prefixed URL.\n     * @param {boolean} expandVocab If the term is a predicate or type and should be expanded based on @vocab,\n     *                              otherwise it is considered a regular term that is expanded based on @base.\n     * @param {IExpandOptions} options Options that define the way how expansion must be done.\n     * @return {string} The expanded term, the term as-is, or null if it was explicitly disabled in the context.\n     * @throws If the term is aliased to an invalid value (not a string, IRI or keyword).\n     */\n    expandTerm(term, expandVocab, options = exports.defaultExpandOptions) {\n        const contextValue = this.contextRaw[term];\n        // Immediately return if the term was disabled in the context\n        if (contextValue === null || (contextValue && contextValue['@id'] === null)) {\n            return null;\n        }\n        // Check the @id\n        let validIriMapping = true;\n        if (contextValue && expandVocab) {\n            const value = Util_1.Util.getContextValueId(contextValue);\n            if (value && value !== term) {\n                if (typeof value !== 'string' || (!Util_1.Util.isValidIri(value) && !Util_1.Util.isValidKeyword(value))) {\n                    // Don't mark this mapping as invalid if we have an unknown keyword, but of the correct form.\n                    if (!Util_1.Util.isPotentialKeyword(value)) {\n                        validIriMapping = false;\n                    }\n                }\n                else {\n                    return value;\n                }\n            }\n        }\n        // Check if the term is prefixed\n        const prefix = Util_1.Util.getPrefix(term, this.contextRaw);\n        const vocab = this.contextRaw['@vocab'];\n        const vocabRelative = (!!vocab || vocab === '') && vocab.indexOf(':') < 0;\n        const base = this.contextRaw['@base'];\n        const potentialKeyword = Util_1.Util.isPotentialKeyword(term);\n        if (prefix) {\n            const contextPrefixValue = this.contextRaw[prefix];\n            const value = Util_1.Util.getContextValueId(contextPrefixValue);\n            if (value) {\n                if (typeof contextPrefixValue === 'string' || !options.allowPrefixForcing) {\n                    // If we have a simple term definition,\n                    // check the last character of the prefix to determine whether or not it is a prefix.\n                    // Validate that prefix ends with gen-delim character, unless @prefix is true\n                    if (!Util_1.Util.isSimpleTermDefinitionPrefix(value, options)) {\n                        // Treat the term as an absolute IRI\n                        return term;\n                    }\n                }\n                else {\n                    // If we have an expanded term definition, default to @prefix: false\n                    if (value[0] !== '_' && !potentialKeyword && !contextPrefixValue['@prefix'] && !(term in this.contextRaw)) {\n                        // Treat the term as an absolute IRI\n                        return term;\n                    }\n                }\n                return value + term.substr(prefix.length + 1);\n            }\n        }\n        else if (expandVocab && ((vocab || vocab === '') || (options.allowVocabRelativeToBase && (base && vocabRelative)))\n            && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n            if (vocabRelative) {\n                if (options.allowVocabRelativeToBase) {\n                    return ((vocab || base) ? (0, relative_to_absolute_iri_1.resolve)(vocab, base) : '') + term;\n                }\n                else {\n                    throw new ErrorCoded_1.ErrorCoded(`Relative vocab expansion for term '${term}' with vocab '${vocab}' is not allowed.`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n                }\n            }\n            else {\n                return vocab + term;\n            }\n        }\n        else if (!expandVocab && base && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n            return (0, relative_to_absolute_iri_1.resolve)(term, base);\n        }\n        // Return the term as-is, unless we discovered an invalid IRI mapping for this term in the context earlier.\n        if (validIriMapping) {\n            return term;\n        }\n        else {\n            throw new ErrorCoded_1.ErrorCoded(`Invalid IRI mapping found for context entry '${term}': '${JSON.stringify(contextValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n        }\n    }\n    /**\n     * Compact the given term using @base, @vocab, an aliased term, or a prefixed term.\n     *\n     * This will try to compact the IRI as much as possible.\n     *\n     * @param {string} iri An IRI to compact.\n     * @param {boolean} vocab If the term is a predicate or type and should be compacted based on @vocab,\n     *                        otherwise it is considered a regular term that is compacted based on @base.\n     * @return {string} The compacted term or the IRI as-is.\n     */\n    compactIri(iri, vocab) {\n        // Try @vocab compacting\n        if (vocab && this.contextRaw['@vocab'] && iri.startsWith(this.contextRaw['@vocab'])) {\n            return iri.substr(this.contextRaw['@vocab'].length);\n        }\n        // Try @base compacting\n        if (!vocab && this.contextRaw['@base'] && iri.startsWith(this.contextRaw['@base'])) {\n            return iri.substr(this.contextRaw['@base'].length);\n        }\n        // Loop over all terms in the context\n        // This will try to prefix as short as possible.\n        // Once a fully compacted alias is found, return immediately, as we can not go any shorter.\n        const shortestPrefixing = { prefix: '', suffix: iri };\n        for (const key in this.contextRaw) {\n            const value = this.contextRaw[key];\n            if (value && !Util_1.Util.isPotentialKeyword(key)) {\n                const contextIri = Util_1.Util.getContextValueId(value);\n                if (iri.startsWith(contextIri)) {\n                    const suffix = iri.substr(contextIri.length);\n                    if (!suffix) {\n                        if (vocab) {\n                            // Immediately return on compacted alias\n                            return key;\n                        }\n                    }\n                    else if (suffix.length < shortestPrefixing.suffix.length) {\n                        // Overwrite the shortest prefix\n                        shortestPrefixing.prefix = key;\n                        shortestPrefixing.suffix = suffix;\n                    }\n                }\n            }\n        }\n        // Return the shortest prefix\n        if (shortestPrefixing.prefix) {\n            return shortestPrefixing.prefix + ':' + shortestPrefixing.suffix;\n        }\n        return iri;\n    }\n}\nexports.JsonLdContextNormalized = JsonLdContextNormalized;\nexports.defaultExpandOptions = {\n    allowPrefixForcing: true,\n    allowPrefixNonGenDelims: false,\n    allowVocabRelativeToBase: true,\n};\n//# sourceMappingURL=JsonLdContextNormalized.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextParser = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst FetchDocumentLoader_1 = require(\"./FetchDocumentLoader\");\nconst JsonLdContextNormalized_1 = require(\"./JsonLdContextNormalized\");\nconst Util_1 = require(\"./Util\");\n/**\n * Parses JSON-LD contexts.\n */\nclass ContextParser {\n    constructor(options) {\n        options = options || {};\n        this.documentLoader = options.documentLoader || new FetchDocumentLoader_1.FetchDocumentLoader();\n        this.documentCache = {};\n        this.validateContext = !options.skipValidation;\n        this.expandContentTypeToBase = !!options.expandContentTypeToBase;\n        this.remoteContextsDepthLimit = options.remoteContextsDepthLimit || 32;\n        this.redirectSchemaOrgHttps = 'redirectSchemaOrgHttps' in options ? !!options.redirectSchemaOrgHttps : true;\n    }\n    /**\n     * Validate the given @language value.\n     * An error will be thrown if it is invalid.\n     * @param value An @language value.\n     * @param {boolean} strictRange If the string value should be strictly checked against a regex.\n     * @param {string} errorCode The error code to emit on errors.\n     * @return {boolean} If validation passed.\n     *                   Can only be false if strictRange is false and the string value did not pass the regex.\n     */\n    static validateLanguage(value, strictRange, errorCode) {\n        if (typeof value !== 'string') {\n            throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a string, got '${JSON.stringify(value)}'`, errorCode);\n        }\n        if (!Util_1.Util.REGEX_LANGUAGE_TAG.test(value)) {\n            if (strictRange) {\n                throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a valid language tag, got '${JSON.stringify(value)}'`, errorCode);\n            }\n            else {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Validate the given @direction value.\n     * An error will be thrown if it is invalid.\n     * @param value An @direction value.\n     * @param {boolean} strictValues If the string value should be strictly checked against a regex.\n     * @return {boolean} If validation passed.\n     *                   Can only be false if strictRange is false and the string value did not pass the regex.\n     */\n    static validateDirection(value, strictValues) {\n        if (typeof value !== 'string') {\n            throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be a string, got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n        }\n        if (!Util_1.Util.REGEX_DIRECTION_TAG.test(value)) {\n            if (strictValues) {\n                throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be 'ltr' or 'rtl', got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n            }\n            else {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Add an @id term for all @reverse terms.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n     */\n    idifyReverseTerms(context) {\n        for (const key of Object.keys(context)) {\n            let value = context[key];\n            if (value && typeof value === 'object') {\n                if (value['@reverse'] && !value['@id']) {\n                    if (typeof value['@reverse'] !== 'string' || Util_1.Util.isValidKeyword(value['@reverse'])) {\n                        throw new ErrorCoded_1.ErrorCoded(`Invalid @reverse value, must be absolute IRI or blank node: '${value['@reverse']}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                    }\n                    value = context[key] = Object.assign(Object.assign({}, value), { '@id': value['@reverse'] });\n                    value['@id'] = value['@reverse'];\n                    if (Util_1.Util.isPotentialKeyword(value['@reverse'])) {\n                        delete value['@reverse'];\n                    }\n                    else {\n                        value['@reverse'] = true;\n                    }\n                }\n            }\n        }\n        return context;\n    }\n    /**\n     * Expand all prefixed terms in the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {boolean} expandContentTypeToBase If @type inside the context may be expanded\n     *                                          via @base if @vocab is set to null.\n     * @param {string[]} keys Optional set of keys from the context to expand. If left undefined, all\n     * keys in the context will be expanded.\n     */\n    expandPrefixedTerms(context, expandContentTypeToBase, keys) {\n        const contextRaw = context.getContextRaw();\n        for (const key of (keys || Object.keys(contextRaw))) {\n            // Only expand allowed keys\n            if (Util_1.Util.EXPAND_KEYS_BLACKLIST.indexOf(key) < 0 && !Util_1.Util.isReservedInternalKeyword(key)) {\n                // Error if we try to alias a keyword to something else.\n                const keyValue = contextRaw[key];\n                if (Util_1.Util.isPotentialKeyword(key) && Util_1.Util.ALIAS_DOMAIN_BLACKLIST.indexOf(key) >= 0) {\n                    if (key !== '@type' || typeof contextRaw[key] === 'object'\n                        && !(contextRaw[key]['@protected'] || contextRaw[key]['@container'] === '@set')) {\n                        throw new ErrorCoded_1.ErrorCoded(`Keywords can not be aliased to something else.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n                    }\n                }\n                // Error if we try to alias to an illegal keyword\n                if (Util_1.Util.ALIAS_RANGE_BLACKLIST.indexOf(Util_1.Util.getContextValueId(keyValue)) >= 0) {\n                    throw new ErrorCoded_1.ErrorCoded(`Aliasing to certain keywords is not allowed.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.INVALID_KEYWORD_ALIAS);\n                }\n                // Error if this term was marked as prefix as well\n                if (keyValue && Util_1.Util.isPotentialKeyword(Util_1.Util.getContextValueId(keyValue))\n                    && keyValue['@prefix'] === true) {\n                    throw new ErrorCoded_1.ErrorCoded(`Tried to use keyword aliases as prefix: '${key}': '${JSON.stringify(keyValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                }\n                // Loop because prefixes might be nested\n                while (Util_1.Util.isPrefixValue(contextRaw[key])) {\n                    const value = contextRaw[key];\n                    let changed = false;\n                    if (typeof value === 'string') {\n                        contextRaw[key] = context.expandTerm(value, true);\n                        changed = changed || value !== contextRaw[key];\n                    }\n                    else {\n                        const id = value['@id'];\n                        const type = value['@type'];\n                        // If @id is missing, don't allow @id to be added if @prefix: true and key not being a valid IRI.\n                        const canAddIdEntry = !('@prefix' in value) || Util_1.Util.isValidIri(key);\n                        if ('@id' in value) {\n                            // Use @id value for expansion\n                            if (id !== undefined && id !== null && typeof id === 'string') {\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': context.expandTerm(id, true) });\n                                changed = changed || id !== contextRaw[key]['@id'];\n                            }\n                        }\n                        else if (!Util_1.Util.isPotentialKeyword(key) && canAddIdEntry) {\n                            // Add an explicit @id value based on the expanded key value\n                            const newId = context.expandTerm(key, true);\n                            if (newId !== key) {\n                                // Don't set @id if expansion failed\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': newId });\n                                changed = true;\n                            }\n                        }\n                        if (type && typeof type === 'string' && type !== '@vocab'\n                            && (!value['@container'] || !value['@container']['@type'])\n                            && canAddIdEntry) {\n                            // First check @vocab, then fallback to @base\n                            let expandedType = context.expandTerm(type, true);\n                            if (expandContentTypeToBase && type === expandedType) {\n                                expandedType = context.expandTerm(type, false);\n                            }\n                            if (expandedType !== type) {\n                                changed = true;\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@type': expandedType });\n                            }\n                        }\n                    }\n                    if (!changed) {\n                        break;\n                    }\n                }\n            }\n        }\n    }\n    /**\n     * Normalize the @language entries in the given context to lowercase.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} parseOptions The parsing options.\n     */\n    normalize(context, { processingMode, normalizeLanguageTags }) {\n        // Lowercase language keys in 1.0\n        if (normalizeLanguageTags || processingMode === 1.0) {\n            for (const key of Object.keys(context)) {\n                if (key === '@language' && typeof context[key] === 'string') {\n                    context[key] = context[key].toLowerCase();\n                }\n                else {\n                    const value = context[key];\n                    if (value && typeof value === 'object') {\n                        if (typeof value['@language'] === 'string') {\n                            const lowercase = value['@language'].toLowerCase();\n                            if (lowercase !== value['@language']) {\n                                context[key] = Object.assign(Object.assign({}, value), { '@language': lowercase });\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n    /**\n     * Convert all @container strings and array values to hash-based values.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     */\n    containersToHash(context) {\n        for (const key of Object.keys(context)) {\n            const value = context[key];\n            if (value && typeof value === 'object') {\n                if (typeof value['@container'] === 'string') {\n                    context[key] = Object.assign(Object.assign({}, value), { '@container': { [value['@container']]: true } });\n                }\n                else if (Array.isArray(value['@container'])) {\n                    const newValue = {};\n                    for (const containerValue of value['@container']) {\n                        newValue[containerValue] = true;\n                    }\n                    context[key] = Object.assign(Object.assign({}, value), { '@container': newValue });\n                }\n            }\n        }\n    }\n    /**\n     * Normalize and apply context-level @protected terms onto each term separately.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {number} processingMode The processing mode.\n     */\n    applyScopedProtected(context, { processingMode }, expandOptions) {\n        if (processingMode && processingMode >= 1.1) {\n            if (context['@protected']) {\n                for (const key of Object.keys(context)) {\n                    if (Util_1.Util.isReservedInternalKeyword(key)) {\n                        continue;\n                    }\n                    if (!Util_1.Util.isPotentialKeyword(key) && !Util_1.Util.isTermProtected(context, key)) {\n                        const value = context[key];\n                        if (value && typeof value === 'object') {\n                            if (!('@protected' in context[key])) {\n                                // Mark terms with object values as protected if they don't have an @protected: false annotation\n                                context[key] = Object.assign(Object.assign({}, context[key]), { '@protected': true });\n                            }\n                        }\n                        else {\n                            // Convert string-based term values to object-based values with @protected: true\n                            context[key] = {\n                                '@id': value,\n                                '@protected': true,\n                            };\n                            if (Util_1.Util.isSimpleTermDefinitionPrefix(value, expandOptions)) {\n                                context[key] = Object.assign(Object.assign({}, context[key]), { '@prefix': true });\n                            }\n                        }\n                    }\n                }\n                delete context['@protected'];\n            }\n        }\n    }\n    /**\n     * Check if the given context inheritance does not contain any overrides of protected terms.\n     * @param {IJsonLdContextNormalizedRaw} contextBefore The context that may contain some protected terms.\n     * @param {IJsonLdContextNormalizedRaw} contextAfter A new context that is being applied on the first one.\n     * @param {IExpandOptions} expandOptions Options that are needed for any expansions during this validation.\n     * @param {string[]} keys Optional set of keys from the context to validate. If left undefined, all\n     * keys defined in contextAfter will be checked.\n     */\n    validateKeywordRedefinitions(contextBefore, contextAfter, expandOptions, keys) {\n        for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(contextAfter))) {\n            if (Util_1.Util.isTermProtected(contextBefore, key)) {\n                // The entry in the context before will always be in object-mode\n                // If the new entry is in string-mode, convert it to object-mode\n                // before checking if it is identical.\n                if (typeof contextAfter[key] === 'string') {\n                    contextAfter[key] = { '@id': contextAfter[key], '@protected': true };\n                }\n                else {\n                    // We modify this deliberately,\n                    // as we need it for the value comparison (they must be identical modulo '@protected')),\n                    // and for the fact that this new value will override the first one.\n                    contextAfter[key] = Object.assign(Object.assign({}, contextAfter[key]), { '@protected': true });\n                }\n                // Error if they are not identical\n                if (!Util_1.Util.deepEqual(contextBefore[key], contextAfter[key])) {\n                    throw new ErrorCoded_1.ErrorCoded(`Attempted to override the protected keyword ${key} from ${JSON.stringify(Util_1.Util.getContextValueId(contextBefore[key]))} to ${JSON.stringify(Util_1.Util.getContextValueId(contextAfter[key]))}`, ErrorCoded_1.ERROR_CODES.PROTECTED_TERM_REDEFINITION);\n                }\n            }\n        }\n    }\n    /**\n     * Validate the entries of the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} options The parse options.\n     */\n    validate(context, { processingMode }) {\n        for (const key of Object.keys(context)) {\n            // Ignore reserved internal keywords.\n            if (Util_1.Util.isReservedInternalKeyword(key)) {\n                continue;\n            }\n            // Do not allow empty term\n            if (key === '') {\n                throw new ErrorCoded_1.ErrorCoded(`The empty term is not allowed, got: '${key}': '${JSON.stringify(context[key])}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n            }\n            const value = context[key];\n            const valueType = typeof value;\n            // First check if the key is a keyword\n            if (Util_1.Util.isPotentialKeyword(key)) {\n                switch (key.substr(1)) {\n                    case 'vocab':\n                        if (value !== null && valueType !== 'string') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @vocab IRI: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n                        }\n                        break;\n                    case 'base':\n                        if (value !== null && valueType !== 'string') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @base IRI: ${context[key]}`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_IRI);\n                        }\n                        break;\n                    case 'language':\n                        if (value !== null) {\n                            ContextParser.validateLanguage(value, true, ErrorCoded_1.ERROR_CODES.INVALID_DEFAULT_LANGUAGE);\n                        }\n                        break;\n                    case 'version':\n                        if (value !== null && valueType !== 'number') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @version number: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n                        }\n                        break;\n                    case 'direction':\n                        if (value !== null) {\n                            ContextParser.validateDirection(value, true);\n                        }\n                        break;\n                    case 'propagate':\n                        if (processingMode === 1.0) {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an illegal @propagate keyword: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n                        }\n                        if (value !== null && valueType !== 'boolean') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @propagate value: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_PROPAGATE_VALUE);\n                        }\n                        break;\n                }\n                // Don't allow keywords to be overridden\n                if (Util_1.Util.isValidKeyword(key) && Util_1.Util.isValidKeyword(Util_1.Util.getContextValueId(value))) {\n                    throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${Util_1.Util\n                        .getContextValueId(value)}'`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n                }\n                continue;\n            }\n            // Otherwise, consider the key a term\n            if (value !== null) {\n                switch (valueType) {\n                    case 'string':\n                        if (Util_1.Util.getPrefix(value, context) === key) {\n                            throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n                                .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n                        }\n                        if (Util_1.Util.isValidIriWeak(key)) {\n                            if (value === '@type') {\n                                throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                            }\n                            else if (Util_1.Util.isValidIri(value) && value !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n                                throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                            }\n                        }\n                        break;\n                    case 'object':\n                        if (!Util_1.Util.isCompactIri(key) && !('@id' in value)\n                            && (value['@type'] === '@id' ? !context['@base'] : !context['@vocab'])) {\n                            throw new ErrorCoded_1.ErrorCoded(`Missing @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                        }\n                        for (const objectKey of Object.keys(value)) {\n                            const objectValue = value[objectKey];\n                            if (!objectValue) {\n                                continue;\n                            }\n                            switch (objectKey) {\n                                case '@id':\n                                    if (Util_1.Util.isValidKeyword(objectValue)\n                                        && objectValue !== '@type' && objectValue !== '@id' && objectValue !== '@graph' && objectValue !== '@nest') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                    }\n                                    if (Util_1.Util.isValidIriWeak(key)) {\n                                        if (objectValue === '@type') {\n                                            throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                        }\n                                        else if (Util_1.Util.isValidIri(objectValue)\n                                            && objectValue !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n                                            throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                        }\n                                    }\n                                    if (typeof objectValue !== 'string') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Detected non-string @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                    }\n                                    if (Util_1.Util.getPrefix(objectValue, context) === key) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n                                            .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n                                    }\n                                    break;\n                                case '@type':\n                                    if (value['@container'] === '@type' && objectValue !== '@id' && objectValue !== '@vocab') {\n                                        throw new ErrorCoded_1.ErrorCoded(`@container: @type only allows @type: @id or @vocab, but got: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    if (typeof objectValue !== 'string') {\n                                        throw new ErrorCoded_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    if (objectValue !== '@id' && objectValue !== '@vocab'\n                                        && (processingMode === 1.0 || objectValue !== '@json')\n                                        && (processingMode === 1.0 || objectValue !== '@none')\n                                        && (objectValue[0] === '_' || !Util_1.Util.isValidIri(objectValue))) {\n                                        throw new ErrorCoded_1.ErrorCoded(`A context @type must be an absolute IRI, found: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    break;\n                                case '@reverse':\n                                    if (typeof objectValue === 'string' && value['@id'] && value['@id'] !== objectValue) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found non-matching @id and @reverse term values in '${key}':\\\n'${objectValue}' and '${value['@id']}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                    }\n                                    if ('@nest' in value) {\n                                        throw new ErrorCoded_1.ErrorCoded(`@nest is not allowed in the reverse property '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                    }\n                                    break;\n                                case '@container':\n                                    if (processingMode === 1.0) {\n                                        if (Object.keys(objectValue).length > 1\n                                            || Util_1.Util.CONTAINERS_1_0.indexOf(Object.keys(objectValue)[0]) < 0) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${Object.keys(objectValue)}') in 1.0, \\\nmust be only one of ${Util_1.Util.CONTAINERS_1_0.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n                                        }\n                                    }\n                                    for (const containerValue of Object.keys(objectValue)) {\n                                        if (containerValue === '@list' && value['@reverse']) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Term value can not be @container: @list and @reverse at the same time on '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                        }\n                                        if (Util_1.Util.CONTAINERS.indexOf(containerValue) < 0) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${containerValue}'), \\\nmust be one of ${Util_1.Util.CONTAINERS.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n                                        }\n                                    }\n                                    break;\n                                case '@language':\n                                    ContextParser.validateLanguage(objectValue, true, ErrorCoded_1.ERROR_CODES.INVALID_LANGUAGE_MAPPING);\n                                    break;\n                                case '@direction':\n                                    ContextParser.validateDirection(objectValue, true);\n                                    break;\n                                case '@prefix':\n                                    if (objectValue !== null && typeof objectValue !== 'boolean') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @prefix boolean in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_PREFIX_VALUE);\n                                    }\n                                    if (!('@id' in value) && !Util_1.Util.isValidIri(key)) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Invalid @prefix definition for '${key}' ('${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                                    }\n                                    break;\n                                case '@index':\n                                    if (processingMode === 1.0 || !value['@container'] || !value['@container']['@index']) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Attempt to add illegal key to value object: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                                    }\n                                    break;\n                                case '@nest':\n                                    if (Util_1.Util.isPotentialKeyword(objectValue) && objectValue !== '@nest') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @nest value in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_NEST_VALUE);\n                                    }\n                            }\n                        }\n                        break;\n                    default:\n                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term value: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                }\n            }\n        }\n    }\n    /**\n     * Apply the @base context entry to the given context under certain circumstances.\n     * @param context A context.\n     * @param options Parsing options.\n     * @param inheritFromParent If the @base value from the parent context can be inherited.\n     * @return The given context.\n     */\n    applyBaseEntry(context, options, inheritFromParent) {\n        // In some special cases, this can be a string, so ignore those.\n        if (typeof context === 'string') {\n            return context;\n        }\n        // Give priority to @base in the parent context\n        if (inheritFromParent && !('@base' in context) && options.parentContext\n            && typeof options.parentContext === 'object' && '@base' in options.parentContext) {\n            context['@base'] = options.parentContext['@base'];\n            if (options.parentContext['@__baseDocument']) {\n                context['@__baseDocument'] = true;\n            }\n        }\n        // Override the base IRI if provided.\n        if (options.baseIRI && !options.external) {\n            if (!('@base' in context)) {\n                // The context base is the document base\n                context['@base'] = options.baseIRI;\n                context['@__baseDocument'] = true;\n            }\n            else if (context['@base'] !== null && typeof context['@base'] === 'string'\n                && !Util_1.Util.isValidIri(context['@base'])) {\n                // The context base is relative to the document base\n                context['@base'] = (0, relative_to_absolute_iri_1.resolve)(context['@base'], options.parentContext && options.parentContext['@base'] || options.baseIRI);\n            }\n        }\n        return context;\n    }\n    /**\n     * Resolve relative context IRIs, or return full IRIs as-is.\n     * @param {string} contextIri A context IRI.\n     * @param {string} baseIRI A base IRI.\n     * @return {string} The normalized context IRI.\n     */\n    normalizeContextIri(contextIri, baseIRI) {\n        if (!Util_1.Util.isValidIri(contextIri)) {\n            try {\n                contextIri = (0, relative_to_absolute_iri_1.resolve)(contextIri, baseIRI);\n            }\n            catch (_a) {\n                throw new Error(`Invalid context IRI: ${contextIri}`);\n            }\n        }\n        // TODO: Temporary workaround for fixing schema.org CORS issues (https://github.com/schemaorg/schemaorg/issues/2578#issuecomment-652324465)\n        if (this.redirectSchemaOrgHttps && contextIri.startsWith('http://schema.org')) {\n            contextIri = 'https://schema.org/';\n        }\n        return contextIri;\n    }\n    /**\n     * Parse scoped contexts in the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} options Parsing options.\n     * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n     * @param {string[]} keys Optional set of keys from the context to parseInnerContexts of. If left undefined, all\n     * keys in the context will be iterated over.\n     */\n    async parseInnerContexts(context, options, keys) {\n        for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(context))) {\n            const value = context[key];\n            if (value && typeof value === 'object') {\n                if ('@context' in value && value['@context'] !== null && !options.ignoreScopedContexts) {\n                    // Simulate a processing based on the parent context to check if there are any (potential errors).\n                    // Honestly, I find it a bit weird to do this here, as the context may be unused,\n                    // and the final effective context may differ based on any other embedded/scoped contexts.\n                    // But hey, it's part of the spec, so we have no choice...\n                    // https://w3c.github.io/json-ld-api/#h-note-10\n                    if (this.validateContext) {\n                        try {\n                            const parentContext = Object.assign(Object.assign({}, context), { [key]: Object.assign({}, context[key]) });\n                            delete parentContext[key]['@context'];\n                            await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, parentContext, ignoreProtection: true, ignoreRemoteScopedContexts: true, ignoreScopedContexts: true }));\n                        }\n                        catch (e) {\n                            throw new ErrorCoded_1.ErrorCoded(e.message, ErrorCoded_1.ERROR_CODES.INVALID_SCOPED_CONTEXT);\n                        }\n                    }\n                    context[key] = Object.assign(Object.assign({}, value), { '@context': (await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, minimalProcessing: true, ignoreRemoteScopedContexts: true, parentContext: context })))\n                            .getContextRaw() });\n                }\n            }\n        }\n        return context;\n    }\n    async parse(context, options = {}, \n    // These options are only for internal use on recursive calls and should not be used by\n    // libraries consuming this function\n    internalOptions = {}) {\n        const { baseIRI, parentContext, external, processingMode = ContextParser.DEFAULT_PROCESSING_MODE, normalizeLanguageTags, ignoreProtection, minimalProcessing, } = options;\n        const remoteContexts = options.remoteContexts || {};\n        // Avoid remote context overflows\n        if (Object.keys(remoteContexts).length >= this.remoteContextsDepthLimit) {\n            throw new ErrorCoded_1.ErrorCoded('Detected an overflow in remote context inclusions: ' + Object.keys(remoteContexts), ErrorCoded_1.ERROR_CODES.CONTEXT_OVERFLOW);\n        }\n        if (context === null || context === undefined) {\n            // Don't allow context nullification and there are protected terms\n            if (!ignoreProtection && parentContext && Util_1.Util.hasProtectedTerms(parentContext)) {\n                throw new ErrorCoded_1.ErrorCoded('Illegal context nullification when terms are protected', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_NULLIFICATION);\n            }\n            // Context that are explicitly set to null are empty.\n            return new JsonLdContextNormalized_1.JsonLdContextNormalized(this.applyBaseEntry({}, options, false));\n        }\n        else if (typeof context === 'string') {\n            const contextIri = this.normalizeContextIri(context, baseIRI);\n            const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n            if (overriddenLoad) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(overriddenLoad);\n            }\n            const parsedStringContext = await this.parse(await this.load(contextIri), Object.assign(Object.assign({}, options), { baseIRI: contextIri, external: true, remoteContexts: Object.assign(Object.assign({}, remoteContexts), { [contextIri]: true }) }));\n            this.applyBaseEntry(parsedStringContext.getContextRaw(), options, true);\n            return parsedStringContext;\n        }\n        else if (Array.isArray(context)) {\n            // As a performance consideration, first load all external contexts in parallel.\n            const contextIris = [];\n            const contexts = await Promise.all(context.map((subContext, i) => {\n                if (typeof subContext === 'string') {\n                    const contextIri = this.normalizeContextIri(subContext, baseIRI);\n                    contextIris[i] = contextIri;\n                    const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n                    if (overriddenLoad) {\n                        return overriddenLoad;\n                    }\n                    return this.load(contextIri);\n                }\n                else {\n                    return subContext;\n                }\n            }));\n            // Don't apply inheritance logic on minimal processing\n            if (minimalProcessing) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(contexts);\n            }\n            const reducedContexts = await contexts.reduce((accContextPromise, contextEntry, i) => accContextPromise\n                .then((accContext) => this.parse(contextEntry, Object.assign(Object.assign({}, options), { baseIRI: contextIris[i] || options.baseIRI, external: !!contextIris[i] || options.external, parentContext: accContext.getContextRaw(), remoteContexts: contextIris[i] ? Object.assign(Object.assign({}, remoteContexts), { [contextIris[i]]: true }) : remoteContexts }), \n            // @ts-expect-error: This third argument causes a type error because we have hidden it from consumers\n            {\n                skipValidation: i < contexts.length - 1,\n            })), Promise.resolve(new JsonLdContextNormalized_1.JsonLdContextNormalized(parentContext || {})));\n            // Override the base IRI if provided.\n            this.applyBaseEntry(reducedContexts.getContextRaw(), options, true);\n            return reducedContexts;\n        }\n        else if (typeof context === 'object') {\n            if ('@context' in context) {\n                return await this.parse(context['@context'], options);\n            }\n            // Make a deep clone of the given context, to avoid modifying it.\n            context = Object.assign({}, context);\n            // According to the JSON-LD spec, @base must be ignored from external contexts.\n            if (external) {\n                delete context['@base'];\n            }\n            // Override the base IRI if provided.\n            this.applyBaseEntry(context, options, true);\n            // Hashify container entries\n            // Do this before protected term validation as that influences term format\n            this.containersToHash(context);\n            // Don't perform any other modifications if only minimal processing is needed.\n            if (minimalProcessing) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(context);\n            }\n            // In JSON-LD 1.1, load @import'ed context prior to processing.\n            let importContext = {};\n            if ('@import' in context) {\n                if (processingMode >= 1.1) {\n                    // Only accept string values\n                    if (typeof context['@import'] !== 'string') {\n                        throw new ErrorCoded_1.ErrorCoded('An @import value must be a string, but got ' + typeof context['@import'], ErrorCoded_1.ERROR_CODES.INVALID_IMPORT_VALUE);\n                    }\n                    // Load context\n                    importContext = await this.loadImportContext(this.normalizeContextIri(context['@import'], baseIRI));\n                    delete context['@import'];\n                }\n                else {\n                    throw new ErrorCoded_1.ErrorCoded('Context importing is not supported in JSON-LD 1.0', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n                }\n            }\n            this.applyScopedProtected(importContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n            const newContext = Object.assign(importContext, context);\n            // Handle terms (before protection checks)\n            this.idifyReverseTerms(newContext);\n            this.normalize(newContext, { processingMode, normalizeLanguageTags });\n            this.applyScopedProtected(newContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n            const keys = Object.keys(newContext);\n            const overlappingKeys = [];\n            if (typeof parentContext === 'object') {\n                // Merge different parts of the final context in order\n                for (const key in parentContext) {\n                    if (key in newContext) {\n                        overlappingKeys.push(key);\n                    }\n                    else {\n                        newContext[key] = parentContext[key];\n                    }\n                }\n            }\n            // Parse inner contexts with minimal processing\n            await this.parseInnerContexts(newContext, options, keys);\n            const newContextWrapped = new JsonLdContextNormalized_1.JsonLdContextNormalized(newContext);\n            // In JSON-LD 1.1, @vocab can be relative to @vocab in the parent context, or a compact IRI.\n            if ((newContext && newContext['@version'] || ContextParser.DEFAULT_PROCESSING_MODE) >= 1.1\n                && ((context['@vocab'] && typeof context['@vocab'] === 'string') || context['@vocab'] === '')) {\n                if (parentContext && '@vocab' in parentContext && context['@vocab'].indexOf(':') < 0) {\n                    newContext['@vocab'] = parentContext['@vocab'] + context['@vocab'];\n                }\n                else if (Util_1.Util.isCompactIri(context['@vocab']) || context['@vocab'] in newContext) {\n                    // @vocab is a compact IRI or refers exactly to a prefix\n                    newContext['@vocab'] = newContextWrapped.expandTerm(context['@vocab'], true);\n                }\n            }\n            this.expandPrefixedTerms(newContextWrapped, this.expandContentTypeToBase, keys);\n            // In JSON-LD 1.1, check if we are not redefining any protected keywords\n            if (!ignoreProtection && parentContext && processingMode >= 1.1) {\n                this.validateKeywordRedefinitions(parentContext, newContext, JsonLdContextNormalized_1.defaultExpandOptions, overlappingKeys);\n            }\n            if (this.validateContext && !internalOptions.skipValidation) {\n                this.validate(newContext, { processingMode });\n            }\n            return newContextWrapped;\n        }\n        else {\n            throw new ErrorCoded_1.ErrorCoded(`Tried parsing a context that is not a string, array or object, but got ${context}`, ErrorCoded_1.ERROR_CODES.INVALID_LOCAL_CONTEXT);\n        }\n    }\n    /**\n     * Fetch the given URL as a raw JSON-LD context.\n     * @param url An URL.\n     * @return A promise resolving to a raw JSON-LD context.\n     */\n    async load(url) {\n        // First try to retrieve the context from cache\n        const cached = this.documentCache[url];\n        if (cached) {\n            return cached;\n        }\n        // If not in cache, load it\n        let document;\n        try {\n            document = await this.documentLoader.load(url);\n        }\n        catch (e) {\n            throw new ErrorCoded_1.ErrorCoded(`Failed to load remote context ${url}: ${e.message}`, ErrorCoded_1.ERROR_CODES.LOADING_REMOTE_CONTEXT_FAILED);\n        }\n        // Validate the context\n        if (!('@context' in document)) {\n            throw new ErrorCoded_1.ErrorCoded(`Missing @context in remote context at ${url}`, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n        }\n        return this.documentCache[url] = document['@context'];\n    }\n    /**\n     * Override the given context that may be loaded.\n     *\n     * This will check whether or not the url is recursively being loaded.\n     * @param url An URL.\n     * @param options Parsing options.\n     * @return An overridden context, or null.\n     *         Optionally an error can be thrown if a cyclic context is detected.\n     */\n    getOverriddenLoad(url, options) {\n        if (url in (options.remoteContexts || {})) {\n            if (options.ignoreRemoteScopedContexts) {\n                return url;\n            }\n            else {\n                throw new ErrorCoded_1.ErrorCoded('Detected a cyclic context inclusion of ' + url, ErrorCoded_1.ERROR_CODES.RECURSIVE_CONTEXT_INCLUSION);\n            }\n        }\n        return null;\n    }\n    /**\n     * Load an @import'ed context.\n     * @param importContextIri The full URI of an @import value.\n     */\n    async loadImportContext(importContextIri) {\n        // Load the context - and do a deep clone since we are about to mutate it\n        let importContext = await this.load(importContextIri);\n        // Require the context to be a non-array object\n        if (typeof importContext !== 'object' || Array.isArray(importContext)) {\n            throw new ErrorCoded_1.ErrorCoded('An imported context must be a single object: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n        }\n        // Error if the context contains another @import\n        if ('@import' in importContext) {\n            throw new ErrorCoded_1.ErrorCoded('An imported context can not import another context: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n        }\n        importContext = Object.assign({}, importContext);\n        // Containers have to be converted into hash values the same way as for the importing context\n        // Otherwise context validation will fail for container values\n        this.containersToHash(importContext);\n        return importContext;\n    }\n}\nContextParser.DEFAULT_PROCESSING_MODE = 1.1;\nexports.ContextParser = ContextParser;\n//# sourceMappingURL=ContextParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IDocumentLoader.js.map","\"use strict\";\n// tslint:disable:max-line-length\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=JsonLdContext.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/ContextParser\"), exports);\n__exportStar(require(\"./lib/ErrorCoded\"), exports);\n__exportStar(require(\"./lib/FetchDocumentLoader\"), exports);\n__exportStar(require(\"./lib/IDocumentLoader\"), exports);\n__exportStar(require(\"./lib/JsonLdContext\"), exports);\n__exportStar(require(\"./lib/JsonLdContextNormalized\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * Utilities for conversion.\n */\nclass Util {\n    constructor(settings) {\n        this.nodeHandlers = {};\n        this.nodeValueHandlers = {};\n        this.directiveNodeHandlers = {};\n        this.settings = settings;\n        this.dataFactory = settings.dataFactory || new rdf_data_factory_1.DataFactory();\n        this.operationFactory = new sparqlalgebrajs_1.Factory(this.dataFactory);\n        this.contextParser = new jsonld_context_parser_1.ContextParser();\n    }\n    /**\n     * Register a new {@link NodeHandlerAdapter}.\n     * @param {NodeHandlerAdapter<any>} nodeHandler A handler for converting GraphQL nodes to operations.\n     */\n    registerNodeHandler(nodeHandler) {\n        this.nodeHandlers[nodeHandler.targetKind] = nodeHandler;\n    }\n    /**\n     * Register a new {@link NodeValueHandlerAdapter}\n     * @param {NodeValueHandlerAdapter<any>} nodeValueHandler A handler for converting GraphQL value nodes\n     *                                                        to terms and patterns.\n     */\n    registerNodeValueHandler(nodeValueHandler) {\n        this.nodeValueHandlers[nodeValueHandler.targetKind] = nodeValueHandler;\n    }\n    /**\n     * Register a new {@link DirectiveNodeHandlerAdapter}\n     * @param {DirectiveNodeHandlerAdapter} directiveNodeHandler A handler for handling GraphQL directives.\n     */\n    registerDirectiveNodeHandler(directiveNodeHandler) {\n        this.directiveNodeHandlers[directiveNodeHandler.targetKind] = directiveNodeHandler;\n    }\n    /**\n     * Get the operation for the given GraphQL node.\n     * @param {T} node A GraphQL node.\n     * @param {IConvertContext} convertContext A conversion context.\n     * @return {Operation} A SPARQL algebra operation.\n     */\n    handleNode(node, convertContext) {\n        const nodeHandler = this.nodeHandlers[node.kind];\n        if (!nodeHandler) {\n            throw new Error(`Unsupported GraphQL node '${node.kind}'`);\n        }\n        return nodeHandler.handle(node, convertContext);\n    }\n    /**\n     * Get the terms and patterns for the given value node.\n     * @param {T} node A GraphQL node.\n     * @param {string} fieldName The name of the field or argument in which the value was encapsulated.\n     * @param {IConvertContext} convertContext A conversion context.\n     * @return {IValueNodeHandlerOutput} The RDF terms and patterns.\n     */\n    handleNodeValue(node, fieldName, convertContext) {\n        const nodeValueHandler = this.nodeValueHandlers[node.kind];\n        if (!nodeValueHandler) {\n            throw new Error(`Unsupported GraphQL value node '${node.kind}'`);\n        }\n        return nodeValueHandler.handle(node, fieldName, convertContext);\n    }\n    /**\n     * Get the handler output for the given directive.\n     * @param {IDirectiveContext} directiveContext The current directive context.\n     * @param {IConvertContext} convertContext A conversion context.\n     * @return {IDirectiveNodeHandlerOutput} The directive node handler output or null.\n     */\n    handleDirectiveNode(directiveContext, convertContext) {\n        const directiveNodeHandler = this.directiveNodeHandlers[directiveContext.directive.name.value];\n        if (!directiveNodeHandler) {\n            return null;\n        }\n        return directiveNodeHandler.handle(directiveContext, convertContext);\n    }\n    /**\n     * Join the given array of operations.\n     * If all operations are BGPs, then a single big BGP with all patterns from the given BGPs will be created.\n     * @param {Operation[]} operations An array of operations.\n     * @return {Operation} A single joined operation.\n     */\n    joinOperations(operations) {\n        if (operations.length === 1) {\n            return operations[0];\n        }\n        // Check if which operations are BGPs\n        const bgps = [];\n        const nonBgps = [];\n        for (const operation of operations) {\n            if (operation.type === 'bgp') {\n                bgps.push(operation);\n            }\n            else {\n                nonBgps.push(operation);\n            }\n        }\n        if (bgps.length === operations.length) {\n            // Create a big BGP from all BGPs\n            return this.joinOperationsAsBgp(bgps);\n        }\n        else if (bgps.length === operations.length - 1\n            && nonBgps[0].type === 'leftjoin'\n            && nonBgps[0].input[0].type === 'bgp') {\n            // Check if we have one left-join (with a BGP on the left), and the rest are BGPs.\n            // If so, merge the BGPS within the left-hand-side of the left-join.\n            const originalLeftJoin = nonBgps[0];\n            bgps.push(originalLeftJoin.input[0]);\n            return this.operationFactory.createLeftJoin(this.joinOperationsAsBgp(bgps), originalLeftJoin.input[1]);\n        }\n        else if (nonBgps.length === operations.length) {\n            // Create nested joins\n            return this.joinOperationsAsNestedJoin(nonBgps);\n        }\n        else {\n            // Join as much BGPs together as possible, and join with the other operations\n            return this.joinOperationsAsNestedJoin([\n                this.joinOperationsAsBgp(bgps),\n                this.joinOperationsAsNestedJoin(nonBgps),\n            ]);\n        }\n    }\n    joinOperationsAsBgp(operations) {\n        return this.operationFactory.createBgp([].concat.apply([], operations\n            .map((op) => op.patterns)));\n    }\n    joinOperationsAsNestedJoin(operations) {\n        return this.operationFactory.createJoin(operations);\n    }\n    /**\n     * Append a field's label to a path.\n     * @param {string[]} path A path.\n     * @param {string} fieldLabel A field label.\n     * @return {string[]} A new path array.\n     */\n    appendFieldToPath(path, fieldLabel) {\n        return path.concat([fieldLabel]);\n    }\n    /**\n     * Get the label of a field by taking into account the alias.\n     * @param {FieldNode} field A field node.\n     * @return {string} The field name or alias.\n     */\n    getFieldLabel(field) {\n        return (field.alias ? field.alias : field.name).value;\n    }\n    /**\n     * Convert a field node to a variable built from the node name and the current path inside the context.\n     * @param {string} fieldLabel A field label.\n     * @param {IConvertContext} convertContext A convert context.\n     * @param {string} variableDelimiter A variable delimiter.\n     * @return {Variable} A variable.\n     */\n    nameToVariable(fieldLabel, convertContext) {\n        return this.dataFactory.variable((convertContext.path.length\n            ? convertContext.path.join(this.settings.variableDelimiter) + this.settings.variableDelimiter : '') + fieldLabel);\n    }\n    /**\n     * Convert a GraphQL term into a URI using the given context.\n     * @param {string} value A GraphQL term.\n     * @param {IContext} context A JSON-LD context.\n     * @return {NamedNode} A named node.\n     */\n    valueToNamedNode(value, context) {\n        const contextValue = context.expandTerm(value, true);\n        if (this.settings.requireContext && !contextValue) {\n            throw new Error('No context entry was found for ' + value);\n        }\n        return this.dataFactory.namedNode(contextValue || value);\n    }\n    /**\n     * Get an argument by name.\n     * This will return null if the argument could not be found.\n     * @param {ReadonlyArray<ArgumentNode>} args Arguments or null.\n     * @param {string} name The name of an argument.\n     * @return {ArgumentNode} The named argument.\n     */\n    getArgument(args, name) {\n        if (args) {\n            for (const argument of args) {\n                if (argument.name.value === name) {\n                    return argument;\n                }\n            }\n        }\n    }\n    /**\n     * Create a pattern with an rdf:type predicate.\n     * @param {Term} subject The subject.\n     * @param {NamedTypeNode} typeCondition The object name.\n     * @param {IConvertContext} convertContext A convert context.\n     * @return {Pattern} A pattern.\n     */\n    newTypePattern(subject, typeCondition, convertContext) {\n        return this.operationFactory.createPattern(subject, this.dataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'), this.valueToNamedNode(typeCondition.name.value, convertContext.context), convertContext.graph);\n    }\n    /**\n     * Create a quad pattern when the predicate is a name node that needs to be translated using the context.\n     * @param {Term} subject The subject.\n     * @param {NameNode} predicateName The name node for the predicate.\n     * @param {Term} object The object.\n     * @param {Term} graph The graph.\n     * @param {IContext} context A context.\n     * @return {Pattern} A quad pattern.\n     */\n    createQuadPattern(subject, predicateName, object, graph, context) {\n        const predicate = this.valueToNamedNode(predicateName.value, context);\n        if (context && context.getContextRaw()[predicateName.value]\n            && context.getContextRaw()[predicateName.value]['@reverse']) {\n            return this.operationFactory.createPattern(object, predicate, subject, graph);\n        }\n        return this.operationFactory.createPattern(subject, predicate, object, graph);\n    }\n    /**\n     * Create a quad path when the predicate is a list node with field alternatives\n     * that need to be translated using the context.\n     * @param {Term} subject The subject.\n     * @param {NameNode} predicateName The name node for the predicate.\n     * @param {Term} object The object.\n     * @param {Term} graph The graph.\n     * @param {IContext} context A context.\n     * @return {Path} A quad property path.\n     */\n    createQuadPath(subject, predicateName, predicateAlternatives, object, graph, context) {\n        const predicateInitial = this.valueToNamedNode(predicateName.value, context);\n        let pathSymbol = this.operationFactory.createLink(predicateInitial);\n        // Add all fields in the list as predicate alternatives\n        for (const predicateAlternative of predicateAlternatives.values) {\n            if (predicateAlternative.kind !== 'EnumValue') {\n                throw new Error('Invalid value type for \\'alt\\' argument, must be EnumValue, but got '\n                    + predicateAlternative.kind);\n            }\n            pathSymbol = this.operationFactory.createAlt([\n                pathSymbol,\n                this.operationFactory.createLink(this.valueToNamedNode(predicateAlternative.value, context)),\n            ]);\n        }\n        // Reverse the path based on the initial predicate\n        if (context && context.getContextRaw()[predicateName.value]\n            && context.getContextRaw()[predicateName.value]['@reverse']) {\n            return this.operationFactory.createPath(object, pathSymbol, subject, graph);\n        }\n        return this.operationFactory.createPath(subject, pathSymbol, object, graph);\n    }\n}\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Converter = void 0;\nconst language_1 = require(\"graphql/language\");\nconst handler_1 = require(\"./handler\");\nconst directivenode_1 = require(\"./handler/directivenode\");\nconst IConvertContext_1 = require(\"./IConvertContext\");\nconst Util_1 = require(\"./Util\");\n/**\n * Translate GraphQL queries into SPARQL algebra.\n */\nclass Converter {\n    constructor(settings) {\n        settings = settings || {};\n        settings.variableDelimiter = settings.variableDelimiter || '_';\n        settings.expressionVariableCounter = settings.expressionVariableCounter || 0;\n        this.util = new Util_1.Util(settings);\n        this.initializeNodeHandlers(settings);\n    }\n    static registerNodeHandlers(util, settings) {\n        util.registerNodeHandler(new handler_1.NodeHandlerDocument(util, settings));\n        util.registerNodeHandler(new handler_1.NodeHandlerDefinitionOperation(util, settings));\n        util.registerNodeHandler(new handler_1.NodeHandlerDefinitionFragment(util, settings));\n        util.registerNodeHandler(new handler_1.NodeHandlerSelectionFragmentSpread(util, settings));\n        util.registerNodeHandler(new handler_1.NodeHandlerSelectionInlineFragment(util, settings));\n        util.registerNodeHandler(new handler_1.NodeHandlerSelectionField(util, settings));\n    }\n    static registerNodeValueHandlers(util, settings) {\n        util.registerNodeValueHandler(new handler_1.NodeValueHandlerVariable(util, settings));\n        util.registerNodeValueHandler(new handler_1.NodeValueHandlerInt(util, settings));\n        util.registerNodeValueHandler(new handler_1.NodeValueHandlerFloat(util, settings));\n        util.registerNodeValueHandler(new handler_1.NodeValueHandlerString(util, settings));\n        util.registerNodeValueHandler(new handler_1.NodeValueHandlerBoolean(util, settings));\n        util.registerNodeValueHandler(new handler_1.NodeValueHandlerNull(util, settings));\n        util.registerNodeValueHandler(new handler_1.NodeValueHandlerEnum(util, settings));\n        util.registerNodeValueHandler(new handler_1.NodeValueHandlerList(util, settings));\n        util.registerNodeValueHandler(new handler_1.NodeValueHandlerObject(util, settings));\n    }\n    static registerDirectiveNodeHandlers(util, settings) {\n        util.registerDirectiveNodeHandler(new directivenode_1.DirectiveNodeHandlerInclude(util, settings));\n        util.registerDirectiveNodeHandler(new directivenode_1.DirectiveNodeHandlerOptional(util, settings));\n        util.registerDirectiveNodeHandler(new directivenode_1.DirectiveNodeHandlerPlural(util, settings));\n        util.registerDirectiveNodeHandler(new directivenode_1.DirectiveNodeHandlerSingle(util, settings));\n        util.registerDirectiveNodeHandler(new directivenode_1.DirectiveNodeHandlerSkip(util, settings));\n    }\n    /**\n     * Translates a GraphQL query into SPARQL algebra.\n     * @param {string | DocumentNode} graphqlQuery A GraphQL query string or node.\n     * @param {IContext} context A JSON-LD context.\n     * @param {IConvertOptions} options An options object.\n     * @return {Promise<Operation>} A promise resolving to an operation.\n     */\n    graphqlToSparqlAlgebra(graphqlQuery, context, options) {\n        return __awaiter(this, void 0, void 0, function* () {\n            return this.graphqlToSparqlAlgebraRawContext(graphqlQuery, yield this.util.contextParser.parse(context), options);\n        });\n    }\n    /**\n     * Translates a GraphQL query into SPARQL algebra.\n     * @param {string | DocumentNode} graphqlQuery A GraphQL query string or node.\n     * @param {IContext} context A JSON-LD context.\n     * @param {IConvertOptions} options An options object.\n     * @return {Operation} An operation.\n     */\n    graphqlToSparqlAlgebraRawContext(graphqlQuery, context, options) {\n        options = options || {};\n        const document = typeof graphqlQuery === 'string' ? (0, language_1.parse)(graphqlQuery) : graphqlQuery;\n        const fragmentDefinitions = this.indexFragments(document);\n        const convertContext = {\n            context,\n            fragmentDefinitions,\n            graph: this.util.dataFactory.defaultGraph(),\n            path: [],\n            singularizeState: IConvertContext_1.SingularizeState.PLURAL,\n            singularizeVariables: options.singularizeVariables || {},\n            subject: null,\n            terminalVariables: [],\n            variablesDict: options.variablesDict || {},\n            variablesMetaDict: {},\n        };\n        return this.util.handleNode(document, convertContext);\n    }\n    /**\n     * Create an index of all fragment definitions in the given document.\n     *\n     * This will assign a new array of definition nodes without fragment definition.\n     *\n     * @param {DocumentNode} document A document node.\n     * @return {{[p: string]: FragmentDefinitionNode}} An index of fragment definition nodes.\n     */\n    indexFragments(document) {\n        const fragmentDefinitions = {};\n        const newDefinitions = [];\n        for (const definition of document.definitions) {\n            if (definition.kind === 'FragmentDefinition') {\n                fragmentDefinitions[definition.name.value] = definition;\n            }\n            else {\n                newDefinitions.push(definition);\n            }\n        }\n        document.definitions = newDefinitions;\n        return fragmentDefinitions;\n    }\n    initializeNodeHandlers(settings) {\n        Converter.registerNodeHandlers(this.util, settings);\n        Converter.registerNodeValueHandlers(this.util, settings);\n        Converter.registerDirectiveNodeHandlers(this.util, settings);\n    }\n}\nexports.Converter = Converter;\n//# sourceMappingURL=Converter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IConvertSettings.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/handler\"), exports);\n__exportStar(require(\"./lib/Converter\"), exports);\n__exportStar(require(\"./lib/IConvertContext\"), exports);\n__exportStar(require(\"./lib/IConvertSettings\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryParseGraphql = void 0;\nconst bus_query_parse_1 = require(\"@comunica/bus-query-parse\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst graphql_to_sparql_1 = require(\"graphql-to-sparql\");\n/**\n * A comunica GraphQL SPARQL Parse Actor.\n */\nclass ActorQueryParseGraphql extends bus_query_parse_1.ActorQueryParse {\n    constructor(args) {\n        super(args);\n        this.graphqlToSparql = new graphql_to_sparql_1.Converter({ requireContext: true });\n    }\n    async test(action) {\n        if (action.queryFormat?.language !== 'graphql') {\n            return (0, core_1.failTest)('This actor can only parse GraphQL queries');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const context = action.context.get(context_entries_1.KeysInitQuery.jsonLdContext) || {};\n        const options = {\n            // eslint-disable-next-line ts/no-unnecessary-type-assertion\n            singularizeVariables: action.context.get(context_entries_1.KeysInitQuery.graphqlSingularizeVariables),\n        };\n        // TODO: pass data factory\n        return { operation: await this.graphqlToSparql.graphqlToSparqlAlgebra(action.query, context, options) };\n    }\n}\nexports.ActorQueryParseGraphql = ActorQueryParseGraphql;\n//# sourceMappingURL=ActorQueryParseGraphql.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryParseGraphql\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorAbstractMediaTyped = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * An abstract actor that handles media-typed actions.\n *\n * It splits up a action between a 'handle' and a 'mediaTypes' action.\n * A 'mediaTypes' action is used to retrieve the available media types from this actor.\n * A 'handle' action is abstract, and can be implemented to do anything,\n * such as parsing, serializing, etc.\n * @see IActionAbstractMediaTyped\n *\n * @see ActorAbstractMediaTypedFixed\n */\nclass ActorAbstractMediaTyped extends core_1.Actor {\n    constructor(args) {\n        super(args);\n    }\n    async run(action) {\n        if ('handle' in action) {\n            const typedAction = action;\n            return { handle: await this.runHandle(typedAction.handle, typedAction.handleMediaType, action.context) };\n        }\n        if ('mediaTypes' in action) {\n            return { mediaTypes: await this.getMediaTypes(action.context) };\n        }\n        if ('mediaTypeFormats' in action) {\n            return { mediaTypeFormats: await this.getMediaTypeFormats(action.context) };\n        }\n        throw new Error('Either a handle, mediaTypes or mediaTypeFormats action needs to be provided');\n    }\n    async test(action) {\n        if ('handle' in action) {\n            const typedAction = action;\n            return (await this.testHandle(typedAction.handle, typedAction.handleMediaType, action.context))\n                .map(handle => ({ handle }));\n        }\n        if ('mediaTypes' in action) {\n            return (await this.testMediaType(action.context))\n                .map(mediaTypes => ({ mediaTypes }));\n        }\n        if ('mediaTypeFormats' in action) {\n            return (await this.testMediaTypeFormats(action.context))\n                .map(mediaTypeFormats => ({ mediaTypeFormats }));\n        }\n        return (0, core_1.failTest)('Either a handle, mediaTypes or mediaTypeFormats action needs to be provided');\n    }\n}\nexports.ActorAbstractMediaTyped = ActorAbstractMediaTyped;\n//# sourceMappingURL=ActorAbstractMediaTyped.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorAbstractMediaTypedFixed = void 0;\nconst core_1 = require(\"@comunica/core\");\nconst ActorAbstractMediaTyped_1 = require(\"./ActorAbstractMediaTyped\");\nclass ActorAbstractMediaTypedFixed extends ActorAbstractMediaTyped_1.ActorAbstractMediaTyped {\n    constructor(args) {\n        super(args);\n        const scale = this.priorityScale || this.priorityScale === 0 ? this.priorityScale : 1;\n        if (this.mediaTypePriorities) {\n            for (const [_index, [key, value]] of Object.entries(this.mediaTypePriorities).entries()) {\n                this.mediaTypePriorities[key] = scale * value;\n            }\n        }\n        this.mediaTypePriorities = Object.freeze(this.mediaTypePriorities);\n        this.mediaTypeFormats = Object.freeze(this.mediaTypeFormats);\n    }\n    async testHandle(action, mediaType, context) {\n        if (!mediaType || !(mediaType in this.mediaTypePriorities)) {\n            return (0, core_1.failTest)(`Unrecognized media type: ${mediaType}`);\n        }\n        return await this.testHandleChecked(action, context);\n    }\n    async testMediaType(_context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async getMediaTypes(_context) {\n        return this.mediaTypePriorities;\n    }\n    async testMediaTypeFormats(_context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async getMediaTypeFormats(_context) {\n        return this.mediaTypeFormats;\n    }\n}\nexports.ActorAbstractMediaTypedFixed = ActorAbstractMediaTypedFixed;\n//# sourceMappingURL=ActorAbstractMediaTypedFixed.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorAbstractMediaTyped\"), exports);\n__exportStar(require(\"./ActorAbstractMediaTypedFixed\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerialize = void 0;\nconst actor_abstract_mediatyped_1 = require(\"@comunica/actor-abstract-mediatyped\");\n/**\n * A comunica actor for query-result-serialize events.\n *\n * Actor types:\n * * Input:  IActionSparqlSerialize:      SPARQL bindings or a quad stream.\n * * Test:   <none>\n * * Output: IActorQueryResultSerializeOutput: A text stream.\n *\n * @see IActionSparqlSerialize\n * @see IActorQueryResultSerializeOutput\n */\nclass ActorQueryResultSerialize extends actor_abstract_mediatyped_1.ActorAbstractMediaTyped {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorQueryResultSerialize = ActorQueryResultSerialize;\n//# sourceMappingURL=ActorQueryResultSerialize.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeFixedMediaTypes = void 0;\nconst actor_abstract_mediatyped_1 = require(\"@comunica/actor-abstract-mediatyped\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A base actor for listening to SPARQL serialize events that has fixed media types.\n *\n * Actor types:\n * * Input:  IActionSparqlSerializeOrMediaType:      A serialize input or a media type input.\n * * Test:   <none>\n * * Output: IActorQueryResultSerializeOutputOrMediaType: The serialized quads.\n *\n * @see IActionInit\n */\nclass ActorQueryResultSerializeFixedMediaTypes extends actor_abstract_mediatyped_1.ActorAbstractMediaTypedFixed {\n    /* eslint-disable max-len */\n    /**\n     * TODO: rm this (and eslint-disable) once we remove the abstract media typed actor\n     * @param args -\n     *   \\ @defaultNested {<cbqrs:components/ActorQueryResultSerialize.jsonld#ActorQueryResultSerialize_default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n    }\n    /* eslint-enable max-len */\n    async testHandleChecked(_action, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n}\nexports.ActorQueryResultSerializeFixedMediaTypes = ActorQueryResultSerializeFixedMediaTypes;\n//# sourceMappingURL=ActorQueryResultSerializeFixedMediaTypes.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryResultSerialize\"), exports);\n__exportStar(require(\"./ActorQueryResultSerializeFixedMediaTypes\"), exports);\n//# sourceMappingURL=index.js.map","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  var i\n  for (i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n  (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n    ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n    : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Print warning and recommend using `buffer` v4.x which has an Object\n *               implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n    typeof console.error === 'function') {\n  console.error(\n    'This browser lacks typed array (Uint8Array) support which is required by ' +\n    '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n  )\n}\n\nfunction typedArraySupport () {\n  // Can typed array instances can be augmented?\n  try {\n    const arr = new Uint8Array(1)\n    const proto = { foo: function () { return 42 } }\n    Object.setPrototypeOf(proto, Uint8Array.prototype)\n    Object.setPrototypeOf(arr, proto)\n    return arr.foo() === 42\n  } catch (e) {\n    return false\n  }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.buffer\n  }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.byteOffset\n  }\n})\n\nfunction createBuffer (length) {\n  if (length > K_MAX_LENGTH) {\n    throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n  }\n  // Return an augmented `Uint8Array` instance\n  const buf = new Uint8Array(length)\n  Object.setPrototypeOf(buf, Buffer.prototype)\n  return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new TypeError(\n        'The \"string\" argument must be of type string. Received type number'\n      )\n    }\n    return allocUnsafe(arg)\n  }\n  return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n  if (typeof value === 'string') {\n    return fromString(value, encodingOrOffset)\n  }\n\n  if (ArrayBuffer.isView(value)) {\n    return fromArrayView(value)\n  }\n\n  if (value == null) {\n    throw new TypeError(\n      'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n      'or Array-like Object. Received type ' + (typeof value)\n    )\n  }\n\n  if (isInstance(value, ArrayBuffer) ||\n      (value && isInstance(value.buffer, ArrayBuffer))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof SharedArrayBuffer !== 'undefined' &&\n      (isInstance(value, SharedArrayBuffer) ||\n      (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'number') {\n    throw new TypeError(\n      'The \"value\" argument must not be of type number. Received type number'\n    )\n  }\n\n  const valueOf = value.valueOf && value.valueOf()\n  if (valueOf != null && valueOf !== value) {\n    return Buffer.from(valueOf, encodingOrOffset, length)\n  }\n\n  const b = fromObject(value)\n  if (b) return b\n\n  if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n      typeof value[Symbol.toPrimitive] === 'function') {\n    return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n  }\n\n  throw new TypeError(\n    'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n    'or Array-like Object. Received type ' + (typeof value)\n  )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be of type number')\n  } else if (size < 0) {\n    throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n  }\n}\n\nfunction alloc (size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpreted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(size).fill(fill, encoding)\n      : createBuffer(size).fill(fill)\n  }\n  return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n  assertSize(size)\n  return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('Unknown encoding: ' + encoding)\n  }\n\n  const length = byteLength(string, encoding) | 0\n  let buf = createBuffer(length)\n\n  const actual = buf.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    buf = buf.slice(0, actual)\n  }\n\n  return buf\n}\n\nfunction fromArrayLike (array) {\n  const length = array.length < 0 ? 0 : checked(array.length) | 0\n  const buf = createBuffer(length)\n  for (let i = 0; i < length; i += 1) {\n    buf[i] = array[i] & 255\n  }\n  return buf\n}\n\nfunction fromArrayView (arrayView) {\n  if (isInstance(arrayView, Uint8Array)) {\n    const copy = new Uint8Array(arrayView)\n    return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n  }\n  return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\"offset\" is outside of buffer bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\"length\" is outside of buffer bounds')\n  }\n\n  let buf\n  if (byteOffset === undefined && length === undefined) {\n    buf = new Uint8Array(array)\n  } else if (length === undefined) {\n    buf = new Uint8Array(array, byteOffset)\n  } else {\n    buf = new Uint8Array(array, byteOffset, length)\n  }\n\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(buf, Buffer.prototype)\n\n  return buf\n}\n\nfunction fromObject (obj) {\n  if (Buffer.isBuffer(obj)) {\n    const len = checked(obj.length) | 0\n    const buf = createBuffer(len)\n\n    if (buf.length === 0) {\n      return buf\n    }\n\n    obj.copy(buf, 0, 0, len)\n    return buf\n  }\n\n  if (obj.length !== undefined) {\n    if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n      return createBuffer(0)\n    }\n    return fromArrayLike(obj)\n  }\n\n  if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n    return fromArrayLike(obj.data)\n  }\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= K_MAX_LENGTH) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return b != null && b._isBuffer === true &&\n    b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n  if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n  if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError(\n      'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n    )\n  }\n\n  if (a === b) return 0\n\n  let x = a.length\n  let y = b.length\n\n  for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!Array.isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  let i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  const buffer = Buffer.allocUnsafe(length)\n  let pos = 0\n  for (i = 0; i < list.length; ++i) {\n    let buf = list[i]\n    if (isInstance(buf, Uint8Array)) {\n      if (pos + buf.length > buffer.length) {\n        if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n        buf.copy(buffer, pos)\n      } else {\n        Uint8Array.prototype.set.call(\n          buffer,\n          buf,\n          pos\n        )\n      }\n    } else if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    } else {\n      buf.copy(buffer, pos)\n    }\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    throw new TypeError(\n      'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n      'Received type ' + typeof string\n    )\n  }\n\n  const len = string.length\n  const mustMatch = (arguments.length > 2 && arguments[2] === true)\n  if (!mustMatch && len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  let loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) {\n          return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n        }\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  let loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  const i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  const len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (let i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  const len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (let i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  const len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (let i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  const length = this.length\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  let str = ''\n  const max = exports.INSPECT_MAX_BYTES\n  str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n  if (this.length > max) str += ' ... '\n  return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n  Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (isInstance(target, Uint8Array)) {\n    target = Buffer.from(target, target.offset, target.byteLength)\n  }\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError(\n      'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n      'Received type ' + (typeof target)\n    )\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  let x = thisEnd - thisStart\n  let y = end - start\n  const len = Math.min(x, y)\n\n  const thisCopy = this.slice(thisStart, thisEnd)\n  const targetCopy = target.slice(start, end)\n\n  for (let i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset // Coerce to Number.\n  if (numberIsNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  let indexSize = 1\n  let arrLength = arr.length\n  let valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  let i\n  if (dir) {\n    let foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      let found = true\n      for (let j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  const remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  const strLen = string.length\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  let i\n  for (i = 0; i < length; ++i) {\n    const parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (numberIsNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset >>> 0\n    if (isFinite(length)) {\n      length = length >>> 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  const remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  let loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return asciiWrite(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  const res = []\n\n  let i = start\n  while (i < end) {\n    const firstByte = buf[i]\n    let codePoint = null\n    let bytesPerSequence = (firstByte > 0xEF)\n      ? 4\n      : (firstByte > 0xDF)\n          ? 3\n          : (firstByte > 0xBF)\n              ? 2\n              : 1\n\n    if (i + bytesPerSequence <= end) {\n      let secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  const len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  let res = ''\n  let i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  const len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  let out = ''\n  for (let i = start; i < end; ++i) {\n    out += hexSliceLookupTable[buf[i]]\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  const bytes = buf.slice(start, end)\n  let res = ''\n  // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n  for (let i = 0; i < bytes.length - 1; i += 2) {\n    res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  const len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  const newBuf = this.subarray(start, end)\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  let val = this[offset + --byteLength]\n  let mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const lo = first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24\n\n  const hi = this[++offset] +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    last * 2 ** 24\n\n  return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const hi = first * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  const lo = this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last\n\n  return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  let i = byteLength\n  let mul = 1\n  let val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = this[offset + 4] +\n    this[offset + 5] * 2 ** 8 +\n    this[offset + 6] * 2 ** 16 +\n    (last << 24) // Overflow\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = (first << 24) + // Overflow\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let mul = 1\n  let i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  this[offset + 3] = (value >>> 24)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 1] = (value >>> 8)\n  this[offset] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset + 7] = lo\n  lo = lo >> 8\n  buf[offset + 6] = lo\n  lo = lo >> 8\n  buf[offset + 5] = lo\n  lo = lo >> 8\n  buf[offset + 4] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset + 3] = hi\n  hi = hi >> 8\n  buf[offset + 2] = hi\n  hi = hi >> 8\n  buf[offset + 1] = hi\n  hi = hi >> 8\n  buf[offset] = hi\n  return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = 0\n  let mul = 1\n  let sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  let sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 3] = (value >>> 24)\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  const len = end - start\n\n  if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n    // Use built-in when available, missing from IE11\n    this.copyWithin(targetStart, start, end)\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, end),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n    if (val.length === 1) {\n      const code = val.charCodeAt(0)\n      if ((encoding === 'utf8' && code < 128) ||\n          encoding === 'latin1') {\n        // Fast path: If `val` fits into a single byte, use that numeric value.\n        val = code\n      }\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  } else if (typeof val === 'boolean') {\n    val = Number(val)\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  let i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    const bytes = Buffer.isBuffer(val)\n      ? val\n      : Buffer.from(val, encoding)\n    const len = bytes.length\n    if (len === 0) {\n      throw new TypeError('The value \"' + val +\n        '\" is invalid for argument \"value\"')\n    }\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n  errors[sym] = class NodeError extends Base {\n    constructor () {\n      super()\n\n      Object.defineProperty(this, 'message', {\n        value: getMessage.apply(this, arguments),\n        writable: true,\n        configurable: true\n      })\n\n      // Add the error code to the name to include it in the stack trace.\n      this.name = `${this.name} [${sym}]`\n      // Access the stack to generate the error message including the error code\n      // from the name.\n      this.stack // eslint-disable-line no-unused-expressions\n      // Reset the name to the actual name.\n      delete this.name\n    }\n\n    get code () {\n      return sym\n    }\n\n    set code (value) {\n      Object.defineProperty(this, 'code', {\n        configurable: true,\n        enumerable: true,\n        value,\n        writable: true\n      })\n    }\n\n    toString () {\n      return `${this.name} [${sym}]: ${this.message}`\n    }\n  }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n  function (name) {\n    if (name) {\n      return `${name} is outside of buffer bounds`\n    }\n\n    return 'Attempt to access memory outside buffer bounds'\n  }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n  function (name, actual) {\n    return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n  }, TypeError)\nE('ERR_OUT_OF_RANGE',\n  function (str, range, input) {\n    let msg = `The value of \"${str}\" is out of range.`\n    let received = input\n    if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n      received = addNumericalSeparator(String(input))\n    } else if (typeof input === 'bigint') {\n      received = String(input)\n      if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n        received = addNumericalSeparator(received)\n      }\n      received += 'n'\n    }\n    msg += ` It must be ${range}. Received ${received}`\n    return msg\n  }, RangeError)\n\nfunction addNumericalSeparator (val) {\n  let res = ''\n  let i = val.length\n  const start = val[0] === '-' ? 1 : 0\n  for (; i >= start + 4; i -= 3) {\n    res = `_${val.slice(i - 3, i)}${res}`\n  }\n  return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n  validateNumber(offset, 'offset')\n  if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n    boundsError(offset, buf.length - (byteLength + 1))\n  }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n  if (value > max || value < min) {\n    const n = typeof min === 'bigint' ? 'n' : ''\n    let range\n    if (byteLength > 3) {\n      if (min === 0 || min === BigInt(0)) {\n        range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n      } else {\n        range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n                `${(byteLength + 1) * 8 - 1}${n}`\n      }\n    } else {\n      range = `>= ${min}${n} and <= ${max}${n}`\n    }\n    throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n  }\n  checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n  if (typeof value !== 'number') {\n    throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n  }\n}\n\nfunction boundsError (value, length, type) {\n  if (Math.floor(value) !== value) {\n    validateNumber(value, type)\n    throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n  }\n\n  if (length < 0) {\n    throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n  }\n\n  throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n                                    `>= ${type ? 1 : 0} and <= ${length}`,\n                                    value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node takes equal signs as end of the Base64 encoding\n  str = str.split('=')[0]\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = str.trim().replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  let codePoint\n  const length = string.length\n  let leadSurrogate = null\n  const bytes = []\n\n  for (let i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  const byteArray = []\n  for (let i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  let c, hi, lo\n  const byteArray = []\n  for (let i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  let i\n  for (i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n  return obj instanceof type ||\n    (obj != null && obj.constructor != null && obj.constructor.name != null &&\n      obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n  // For IE11 support\n  return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n  const alphabet = '0123456789abcdef'\n  const table = new Array(256)\n  for (let i = 0; i < 16; ++i) {\n    const i16 = i * 16\n    for (let j = 0; j < 16; ++j) {\n      table[i16 + j] = alphabet[i] + alphabet[j]\n    }\n  }\n  return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n  return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n  throw new Error('BigInt not supported')\n}\n","'use strict'\n\n/*\n  This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n  https://github.com/nodejs/node/blob/master/lib/internal/per_context/primordials.js\n\n  Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n  ArrayIsArray(self) {\n    return Array.isArray(self)\n  },\n  ArrayPrototypeIncludes(self, el) {\n    return self.includes(el)\n  },\n  ArrayPrototypeIndexOf(self, el) {\n    return self.indexOf(el)\n  },\n  ArrayPrototypeJoin(self, sep) {\n    return self.join(sep)\n  },\n  ArrayPrototypeMap(self, fn) {\n    return self.map(fn)\n  },\n  ArrayPrototypePop(self, el) {\n    return self.pop(el)\n  },\n  ArrayPrototypePush(self, el) {\n    return self.push(el)\n  },\n  ArrayPrototypeSlice(self, start, end) {\n    return self.slice(start, end)\n  },\n  Error,\n  FunctionPrototypeCall(fn, thisArgs, ...args) {\n    return fn.call(thisArgs, ...args)\n  },\n  FunctionPrototypeSymbolHasInstance(self, instance) {\n    return Function.prototype[Symbol.hasInstance].call(self, instance)\n  },\n  MathFloor: Math.floor,\n  Number,\n  NumberIsInteger: Number.isInteger,\n  NumberIsNaN: Number.isNaN,\n  NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n  NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n  NumberParseInt: Number.parseInt,\n  ObjectDefineProperties(self, props) {\n    return Object.defineProperties(self, props)\n  },\n  ObjectDefineProperty(self, name, prop) {\n    return Object.defineProperty(self, name, prop)\n  },\n  ObjectGetOwnPropertyDescriptor(self, name) {\n    return Object.getOwnPropertyDescriptor(self, name)\n  },\n  ObjectKeys(obj) {\n    return Object.keys(obj)\n  },\n  ObjectSetPrototypeOf(target, proto) {\n    return Object.setPrototypeOf(target, proto)\n  },\n  Promise,\n  PromisePrototypeCatch(self, fn) {\n    return self.catch(fn)\n  },\n  PromisePrototypeThen(self, thenFn, catchFn) {\n    return self.then(thenFn, catchFn)\n  },\n  PromiseReject(err) {\n    return Promise.reject(err)\n  },\n  PromiseResolve(val) {\n    return Promise.resolve(val)\n  },\n  ReflectApply: Reflect.apply,\n  RegExpPrototypeTest(self, value) {\n    return self.test(value)\n  },\n  SafeSet: Set,\n  String,\n  StringPrototypeSlice(self, start, end) {\n    return self.slice(start, end)\n  },\n  StringPrototypeToLowerCase(self) {\n    return self.toLowerCase()\n  },\n  StringPrototypeToUpperCase(self) {\n    return self.toUpperCase()\n  },\n  StringPrototypeTrim(self) {\n    return self.trim()\n  },\n  Symbol,\n  SymbolFor: Symbol.for,\n  SymbolAsyncIterator: Symbol.asyncIterator,\n  SymbolHasInstance: Symbol.hasInstance,\n  SymbolIterator: Symbol.iterator,\n  SymbolDispose: Symbol.dispose || Symbol('Symbol.dispose'),\n  SymbolAsyncDispose: Symbol.asyncDispose || Symbol('Symbol.asyncDispose'),\n  TypedArrayPrototypeSet(self, buf, len) {\n    return self.set(buf, len)\n  },\n  Boolean: Boolean,\n  Uint8Array\n}\n","/*globals self, window */\n\"use strict\"\n\n/*eslint-disable @mysticatea/prettier */\nconst { AbortController, AbortSignal } =\n    typeof self !== \"undefined\" ? self :\n    typeof window !== \"undefined\" ? window :\n    /* otherwise */ undefined\n/*eslint-enable @mysticatea/prettier */\n\nmodule.exports = AbortController\nmodule.exports.AbortSignal = AbortSignal\nmodule.exports.default = AbortController\n","'use strict'\n\nconst bufferModule = require('buffer')\nconst { kResistStopPropagation, SymbolDispose } = require('./primordials')\nconst AbortSignal = globalThis.AbortSignal || require('abort-controller').AbortSignal\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n  typeof Blob !== 'undefined'\n    ? function isBlob(b) {\n        // eslint-disable-next-line indent\n        return b instanceof Blob\n      }\n    : function isBlob(b) {\n        return false\n      }\n/* eslint-enable indent */\n\nconst validateAbortSignal = (signal, name) => {\n  if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n    throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n  }\n}\nconst validateFunction = (value, name) => {\n  if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n}\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n  constructor(errors) {\n    if (!Array.isArray(errors)) {\n      throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n    }\n    let message = ''\n    for (let i = 0; i < errors.length; i++) {\n      message += `    ${errors[i].stack}\\n`\n    }\n    super(message)\n    this.name = 'AggregateError'\n    this.errors = errors\n  }\n}\nmodule.exports = {\n  AggregateError,\n  kEmptyObject: Object.freeze({}),\n  once(callback) {\n    let called = false\n    return function (...args) {\n      if (called) {\n        return\n      }\n      called = true\n      callback.apply(this, args)\n    }\n  },\n  createDeferredPromise: function () {\n    let resolve\n    let reject\n\n    // eslint-disable-next-line promise/param-names\n    const promise = new Promise((res, rej) => {\n      resolve = res\n      reject = rej\n    })\n    return {\n      promise,\n      resolve,\n      reject\n    }\n  },\n  promisify(fn) {\n    return new Promise((resolve, reject) => {\n      fn((err, ...args) => {\n        if (err) {\n          return reject(err)\n        }\n        return resolve(...args)\n      })\n    })\n  },\n  debuglog() {\n    return function () {}\n  },\n  format(format, ...args) {\n    // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n    return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n      const replacement = args.shift()\n      if (type === 'f') {\n        return replacement.toFixed(6)\n      } else if (type === 'j') {\n        return JSON.stringify(replacement)\n      } else if (type === 's' && typeof replacement === 'object') {\n        const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n        return `${ctor} {}`.trim()\n      } else {\n        return replacement.toString()\n      }\n    })\n  },\n  inspect(value) {\n    // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n    switch (typeof value) {\n      case 'string':\n        if (value.includes(\"'\")) {\n          if (!value.includes('\"')) {\n            return `\"${value}\"`\n          } else if (!value.includes('`') && !value.includes('${')) {\n            return `\\`${value}\\``\n          }\n        }\n        return `'${value}'`\n      case 'number':\n        if (isNaN(value)) {\n          return 'NaN'\n        } else if (Object.is(value, -0)) {\n          return String(value)\n        }\n        return value\n      case 'bigint':\n        return `${String(value)}n`\n      case 'boolean':\n      case 'undefined':\n        return String(value)\n      case 'object':\n        return '{}'\n    }\n  },\n  types: {\n    isAsyncFunction(fn) {\n      return fn instanceof AsyncFunction\n    },\n    isArrayBufferView(arr) {\n      return ArrayBuffer.isView(arr)\n    }\n  },\n  isBlob,\n  deprecate(fn, message) {\n    return fn\n  },\n  addAbortListener:\n    require('events').addAbortListener ||\n    function addAbortListener(signal, listener) {\n      if (signal === undefined) {\n        throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal)\n      }\n      validateAbortSignal(signal, 'signal')\n      validateFunction(listener, 'listener')\n      let removeEventListener\n      if (signal.aborted) {\n        queueMicrotask(() => listener())\n      } else {\n        signal.addEventListener('abort', listener, {\n          __proto__: null,\n          once: true,\n          [kResistStopPropagation]: true\n        })\n        removeEventListener = () => {\n          signal.removeEventListener('abort', listener)\n        }\n      }\n      return {\n        __proto__: null,\n        [SymbolDispose]() {\n          var _removeEventListener\n          ;(_removeEventListener = removeEventListener) === null || _removeEventListener === undefined\n            ? undefined\n            : _removeEventListener()\n        }\n      }\n    },\n  AbortSignalAny:\n    AbortSignal.any ||\n    function AbortSignalAny(signals) {\n      // Fast path if there is only one signal.\n      if (signals.length === 1) {\n        return signals[0]\n      }\n      const ac = new AbortController()\n      const abort = () => ac.abort()\n      signals.forEach((signal) => {\n        validateAbortSignal(signal, 'signals')\n        signal.addEventListener('abort', abort, {\n          once: true\n        })\n      })\n      ac.signal.addEventListener(\n        'abort',\n        () => {\n          signals.forEach((signal) => signal.removeEventListener('abort', abort))\n        },\n        {\n          once: true\n        }\n      )\n      return ac.signal\n    }\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n","'use strict'\n\nconst { format, inspect, AggregateError: CustomAggregateError } = require('./util')\n\n/*\n  This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n  https://github.com/nodejs/node/blob/master/lib/internal/errors.js\n\n  Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n  with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n  'string',\n  'function',\n  'number',\n  'object',\n  // Accept 'Function' and 'Object' as alternative to the lower cased version.\n  'Function',\n  'Object',\n  'boolean',\n  'bigint',\n  'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n  if (!value) {\n    throw new codes.ERR_INTERNAL_ASSERTION(message)\n  }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\nfunction addNumericalSeparator(val) {\n  let res = ''\n  let i = val.length\n  const start = val[0] === '-' ? 1 : 0\n  for (; i >= start + 4; i -= 3) {\n    res = `_${val.slice(i - 3, i)}${res}`\n  }\n  return `${val.slice(0, i)}${res}`\n}\nfunction getMessage(key, msg, args) {\n  if (typeof msg === 'function') {\n    assert(\n      msg.length <= args.length,\n      // Default options do not count.\n      `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n    )\n    return msg(...args)\n  }\n  const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n  assert(\n    expectedLength === args.length,\n    `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n  )\n  if (args.length === 0) {\n    return msg\n  }\n  return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n  if (!Base) {\n    Base = Error\n  }\n  class NodeError extends Base {\n    constructor(...args) {\n      super(getMessage(code, message, args))\n    }\n    toString() {\n      return `${this.name} [${code}]: ${this.message}`\n    }\n  }\n  Object.defineProperties(NodeError.prototype, {\n    name: {\n      value: Base.name,\n      writable: true,\n      enumerable: false,\n      configurable: true\n    },\n    toString: {\n      value() {\n        return `${this.name} [${code}]: ${this.message}`\n      },\n      writable: true,\n      enumerable: false,\n      configurable: true\n    }\n  })\n  NodeError.prototype.code = code\n  NodeError.prototype[kIsNodeError] = true\n  codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n  // We rename the functions that will be hidden to cut off the stacktrace\n  // at the outermost one\n  const hidden = nodeInternalPrefix + fn.name\n  Object.defineProperty(fn, 'name', {\n    value: hidden\n  })\n  return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n  if (innerError && outerError && innerError !== outerError) {\n    if (Array.isArray(outerError.errors)) {\n      // If `outerError` is already an `AggregateError`.\n      outerError.errors.push(innerError)\n      return outerError\n    }\n    const err = new AggregateError([outerError, innerError], outerError.message)\n    err.code = outerError.code\n    return err\n  }\n  return innerError || outerError\n}\nclass AbortError extends Error {\n  constructor(message = 'The operation was aborted', options = undefined) {\n    if (options !== undefined && typeof options !== 'object') {\n      throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n    }\n    super(message, options)\n    this.code = 'ABORT_ERR'\n    this.name = 'AbortError'\n  }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n  'ERR_INVALID_ARG_TYPE',\n  (name, expected, actual) => {\n    assert(typeof name === 'string', \"'name' must be a string\")\n    if (!Array.isArray(expected)) {\n      expected = [expected]\n    }\n    let msg = 'The '\n    if (name.endsWith(' argument')) {\n      // For cases like 'first argument'\n      msg += `${name} `\n    } else {\n      msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n    }\n    msg += 'must be '\n    const types = []\n    const instances = []\n    const other = []\n    for (const value of expected) {\n      assert(typeof value === 'string', 'All expected entries have to be of type string')\n      if (kTypes.includes(value)) {\n        types.push(value.toLowerCase())\n      } else if (classRegExp.test(value)) {\n        instances.push(value)\n      } else {\n        assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n        other.push(value)\n      }\n    }\n\n    // Special handle `object` in case other instances are allowed to outline\n    // the differences between each other.\n    if (instances.length > 0) {\n      const pos = types.indexOf('object')\n      if (pos !== -1) {\n        types.splice(types, pos, 1)\n        instances.push('Object')\n      }\n    }\n    if (types.length > 0) {\n      switch (types.length) {\n        case 1:\n          msg += `of type ${types[0]}`\n          break\n        case 2:\n          msg += `one of type ${types[0]} or ${types[1]}`\n          break\n        default: {\n          const last = types.pop()\n          msg += `one of type ${types.join(', ')}, or ${last}`\n        }\n      }\n      if (instances.length > 0 || other.length > 0) {\n        msg += ' or '\n      }\n    }\n    if (instances.length > 0) {\n      switch (instances.length) {\n        case 1:\n          msg += `an instance of ${instances[0]}`\n          break\n        case 2:\n          msg += `an instance of ${instances[0]} or ${instances[1]}`\n          break\n        default: {\n          const last = instances.pop()\n          msg += `an instance of ${instances.join(', ')}, or ${last}`\n        }\n      }\n      if (other.length > 0) {\n        msg += ' or '\n      }\n    }\n    switch (other.length) {\n      case 0:\n        break\n      case 1:\n        if (other[0].toLowerCase() !== other[0]) {\n          msg += 'an '\n        }\n        msg += `${other[0]}`\n        break\n      case 2:\n        msg += `one of ${other[0]} or ${other[1]}`\n        break\n      default: {\n        const last = other.pop()\n        msg += `one of ${other.join(', ')}, or ${last}`\n      }\n    }\n    if (actual == null) {\n      msg += `. Received ${actual}`\n    } else if (typeof actual === 'function' && actual.name) {\n      msg += `. Received function ${actual.name}`\n    } else if (typeof actual === 'object') {\n      var _actual$constructor\n      if (\n        (_actual$constructor = actual.constructor) !== null &&\n        _actual$constructor !== undefined &&\n        _actual$constructor.name\n      ) {\n        msg += `. Received an instance of ${actual.constructor.name}`\n      } else {\n        const inspected = inspect(actual, {\n          depth: -1\n        })\n        msg += `. Received ${inspected}`\n      }\n    } else {\n      let inspected = inspect(actual, {\n        colors: false\n      })\n      if (inspected.length > 25) {\n        inspected = `${inspected.slice(0, 25)}...`\n      }\n      msg += `. Received type ${typeof actual} (${inspected})`\n    }\n    return msg\n  },\n  TypeError\n)\nE(\n  'ERR_INVALID_ARG_VALUE',\n  (name, value, reason = 'is invalid') => {\n    let inspected = inspect(value)\n    if (inspected.length > 128) {\n      inspected = inspected.slice(0, 128) + '...'\n    }\n    const type = name.includes('.') ? 'property' : 'argument'\n    return `The ${type} '${name}' ${reason}. Received ${inspected}`\n  },\n  TypeError\n)\nE(\n  'ERR_INVALID_RETURN_VALUE',\n  (input, name, value) => {\n    var _value$constructor\n    const type =\n      value !== null &&\n      value !== undefined &&\n      (_value$constructor = value.constructor) !== null &&\n      _value$constructor !== undefined &&\n      _value$constructor.name\n        ? `instance of ${value.constructor.name}`\n        : `type ${typeof value}`\n    return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n  },\n  TypeError\n)\nE(\n  'ERR_MISSING_ARGS',\n  (...args) => {\n    assert(args.length > 0, 'At least one arg needs to be specified')\n    let msg\n    const len = args.length\n    args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n    switch (len) {\n      case 1:\n        msg += `The ${args[0]} argument`\n        break\n      case 2:\n        msg += `The ${args[0]} and ${args[1]} arguments`\n        break\n      default:\n        {\n          const last = args.pop()\n          msg += `The ${args.join(', ')}, and ${last} arguments`\n        }\n        break\n    }\n    return `${msg} must be specified`\n  },\n  TypeError\n)\nE(\n  'ERR_OUT_OF_RANGE',\n  (str, range, input) => {\n    assert(range, 'Missing \"range\" argument')\n    let received\n    if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n      received = addNumericalSeparator(String(input))\n    } else if (typeof input === 'bigint') {\n      received = String(input)\n      if (input > 2n ** 32n || input < -(2n ** 32n)) {\n        received = addNumericalSeparator(received)\n      }\n      received += 'n'\n    } else {\n      received = inspect(input)\n    }\n    return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n  },\n  RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n  AbortError,\n  aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n  hideStackFrames,\n  codes\n}\n","/* eslint jsdoc/require-jsdoc: \"error\" */\n\n'use strict'\n\nconst {\n  ArrayIsArray,\n  ArrayPrototypeIncludes,\n  ArrayPrototypeJoin,\n  ArrayPrototypeMap,\n  NumberIsInteger,\n  NumberIsNaN,\n  NumberMAX_SAFE_INTEGER,\n  NumberMIN_SAFE_INTEGER,\n  NumberParseInt,\n  ObjectPrototypeHasOwnProperty,\n  RegExpPrototypeExec,\n  String,\n  StringPrototypeToUpperCase,\n  StringPrototypeTrim\n} = require('../ours/primordials')\nconst {\n  hideStackFrames,\n  codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = require('../ours/errors')\nconst { normalizeEncoding } = require('../ours/util')\nconst { isAsyncFunction, isArrayBufferView } = require('../ours/util').types\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n  return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n  return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n  if (typeof value === 'undefined') {\n    value = def\n  }\n  if (typeof value === 'string') {\n    if (RegExpPrototypeExec(octalReg, value) === null) {\n      throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n    }\n    value = NumberParseInt(value, 8)\n  }\n  validateUint32(value, name)\n  return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n  if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n  if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n  if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n  // The defaults for min and max correspond to the limits of 32-bit integers.\n  if (typeof value !== 'number') {\n    throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n  }\n  if (!NumberIsInteger(value)) {\n    throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n  }\n  if (value < min || value > max) {\n    throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n  }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n  if (typeof value !== 'number') {\n    throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n  }\n  if (!NumberIsInteger(value)) {\n    throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n  }\n  const min = positive ? 1 : 0\n  // 2 ** 32 === 4294967296\n  const max = 4294967295\n  if (value < min || value > max) {\n    throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n  }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n  if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n  if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n  if (\n    (min != null && value < min) ||\n    (max != null && value > max) ||\n    ((min != null || max != null) && NumberIsNaN(value))\n  ) {\n    throw new ERR_OUT_OF_RANGE(\n      name,\n      `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n      value\n    )\n  }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n  if (!ArrayPrototypeIncludes(oneOf, value)) {\n    const allowed = ArrayPrototypeJoin(\n      ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n      ', '\n    )\n    const reason = 'must be one of: ' + allowed\n    throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n  }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n  if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n  return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n *   allowArray?: boolean,\n *   allowFunction?: boolean,\n *   nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n  const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n  const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n  const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n  if (\n    (!nullable && value === null) ||\n    (!allowArray && ArrayIsArray(value)) ||\n    (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n  ) {\n    throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n  }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n *                                of \"dictionary\" here, which means any value\n *                                whose Type is either Undefined, Null, or\n *                                Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n  if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n  }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n  if (!ArrayIsArray(value)) {\n    throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n  }\n  if (value.length < minLength) {\n    const reason = `must be longer than ${minLength}`\n    throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n  }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n  validateArray(value, name)\n  for (let i = 0; i < value.length; i++) {\n    validateString(value[i], `${name}[${i}]`)\n  }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n  validateArray(value, name)\n  for (let i = 0; i < value.length; i++) {\n    validateBoolean(value[i], `${name}[${i}]`)\n  }\n}\n\n/**\n * @callback validateAbortSignalArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is AbortSignal[]}\n */\n\n/** @type {validateAbortSignalArray} */\nfunction validateAbortSignalArray(value, name) {\n  validateArray(value, name)\n  for (let i = 0; i < value.length; i++) {\n    const signal = value[i]\n    const indexedName = `${name}[${i}]`\n    if (signal == null) {\n      throw new ERR_INVALID_ARG_TYPE(indexedName, 'AbortSignal', signal)\n    }\n    validateAbortSignal(signal, indexedName)\n  }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n  validateString(signal, name)\n  if (signals[signal] === undefined) {\n    if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n      throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n    }\n    throw new ERR_UNKNOWN_SIGNAL(signal)\n  }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n  if (!isArrayBufferView(buffer)) {\n    throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n  }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n  const normalizedEncoding = normalizeEncoding(encoding)\n  const length = data.length\n  if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n    throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n  }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n  if (\n    (typeof port !== 'number' && typeof port !== 'string') ||\n    (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n    +port !== +port >>> 0 ||\n    port > 0xffff ||\n    (port === 0 && !allowZero)\n  ) {\n    throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n  }\n  return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n  if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n    throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n  }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n  if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n  if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n  if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n  if (!ArrayPrototypeIncludes(union, value)) {\n    throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n  }\n}\n\n/*\n  The rules for the Link header field are described here:\n  https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n  This regex validates any string surrounded by angle brackets\n  (not necessarily a valid URI reference) followed by zero or more\n  link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n  if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n    throw new ERR_INVALID_ARG_VALUE(\n      name,\n      value,\n      'must be an array or string of format \"</styles.css>; rel=preload; as=style\"'\n    )\n  }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n  if (typeof hints === 'string') {\n    validateLinkHeaderFormat(hints, 'hints')\n    return hints\n  } else if (ArrayIsArray(hints)) {\n    const hintsLength = hints.length\n    let result = ''\n    if (hintsLength === 0) {\n      return result\n    }\n    for (let i = 0; i < hintsLength; i++) {\n      const link = hints[i]\n      validateLinkHeaderFormat(link, 'hints')\n      result += link\n      if (i !== hintsLength - 1) {\n        result += ', '\n      }\n    }\n    return result\n  }\n  throw new ERR_INVALID_ARG_VALUE(\n    'hints',\n    hints,\n    'must be an array or string of format \"</styles.css>; rel=preload; as=style\"'\n  )\n}\nmodule.exports = {\n  isInt32,\n  isUint32,\n  parseFileMode,\n  validateArray,\n  validateStringArray,\n  validateBooleanArray,\n  validateAbortSignalArray,\n  validateBoolean,\n  validateBuffer,\n  validateDictionary,\n  validateEncoding,\n  validateFunction,\n  validateInt32,\n  validateInteger,\n  validateNumber,\n  validateObject,\n  validateOneOf,\n  validatePlainFunction,\n  validatePort,\n  validateSignalName,\n  validateString,\n  validateUint32,\n  validateUndefined,\n  validateUnion,\n  validateAbortSignal,\n  validateLinkHeaderValue\n}\n","'use strict'\n\nconst { SymbolAsyncIterator, SymbolIterator, SymbolFor } = require('../../ours/primordials')\n\n// We need to use SymbolFor to make these globally available\n// for interopt with readable-stream, i.e. readable-stream\n// and node core needs to be able to read/write private state\n// from each other for proper interoperability.\nconst kIsDestroyed = SymbolFor('nodejs.stream.destroyed')\nconst kIsErrored = SymbolFor('nodejs.stream.errored')\nconst kIsReadable = SymbolFor('nodejs.stream.readable')\nconst kIsWritable = SymbolFor('nodejs.stream.writable')\nconst kIsDisturbed = SymbolFor('nodejs.stream.disturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n  var _obj$_readableState\n  return !!(\n    (\n      obj &&\n      typeof obj.pipe === 'function' &&\n      typeof obj.on === 'function' &&\n      (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n      (!obj._writableState ||\n        ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n          ? undefined\n          : _obj$_readableState.readable) !== false) &&\n      // Duplex\n      (!obj._writableState || obj._readableState)\n    ) // Writable has .pipe.\n  )\n}\n\nfunction isWritableNodeStream(obj) {\n  var _obj$_writableState\n  return !!(\n    (\n      obj &&\n      typeof obj.write === 'function' &&\n      typeof obj.on === 'function' &&\n      (!obj._readableState ||\n        ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n          ? undefined\n          : _obj$_writableState.writable) !== false)\n    ) // Duplex\n  )\n}\n\nfunction isDuplexNodeStream(obj) {\n  return !!(\n    obj &&\n    typeof obj.pipe === 'function' &&\n    obj._readableState &&\n    typeof obj.on === 'function' &&\n    typeof obj.write === 'function'\n  )\n}\nfunction isNodeStream(obj) {\n  return (\n    obj &&\n    (obj._readableState ||\n      obj._writableState ||\n      (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n      (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n  )\n}\nfunction isReadableStream(obj) {\n  return !!(\n    obj &&\n    !isNodeStream(obj) &&\n    typeof obj.pipeThrough === 'function' &&\n    typeof obj.getReader === 'function' &&\n    typeof obj.cancel === 'function'\n  )\n}\nfunction isWritableStream(obj) {\n  return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n  return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n  return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n  if (obj == null) return false\n  if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n  if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n  return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n  if (!isNodeStream(stream)) return null\n  const wState = stream._writableState\n  const rState = stream._readableState\n  const state = wState || rState\n  return !!(stream.destroyed || stream[kIsDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n  if (!isWritableNodeStream(stream)) return null\n  if (stream.writableEnded === true) return true\n  const wState = stream._writableState\n  if (wState !== null && wState !== undefined && wState.errored) return false\n  if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n  return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n  if (!isWritableNodeStream(stream)) return null\n  if (stream.writableFinished === true) return true\n  const wState = stream._writableState\n  if (wState !== null && wState !== undefined && wState.errored) return false\n  if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n  return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n  if (!isReadableNodeStream(stream)) return null\n  if (stream.readableEnded === true) return true\n  const rState = stream._readableState\n  if (!rState || rState.errored) return false\n  if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n  return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n  if (!isReadableNodeStream(stream)) return null\n  const rState = stream._readableState\n  if (rState !== null && rState !== undefined && rState.errored) return false\n  if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n  return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n  if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n  if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n  if (isDestroyed(stream)) return false\n  return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n  if (stream && stream[kIsWritable] != null) return stream[kIsWritable]\n  if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n  if (isDestroyed(stream)) return false\n  return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n  if (!isNodeStream(stream)) {\n    return null\n  }\n  if (isDestroyed(stream)) {\n    return true\n  }\n  if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n    return false\n  }\n  if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n    return false\n  }\n  return true\n}\nfunction isWritableErrored(stream) {\n  var _stream$_writableStat, _stream$_writableStat2\n  if (!isNodeStream(stream)) {\n    return null\n  }\n  if (stream.writableErrored) {\n    return stream.writableErrored\n  }\n  return (_stream$_writableStat =\n    (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n      ? undefined\n      : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n    ? _stream$_writableStat\n    : null\n}\nfunction isReadableErrored(stream) {\n  var _stream$_readableStat, _stream$_readableStat2\n  if (!isNodeStream(stream)) {\n    return null\n  }\n  if (stream.readableErrored) {\n    return stream.readableErrored\n  }\n  return (_stream$_readableStat =\n    (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n      ? undefined\n      : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n    ? _stream$_readableStat\n    : null\n}\nfunction isClosed(stream) {\n  if (!isNodeStream(stream)) {\n    return null\n  }\n  if (typeof stream.closed === 'boolean') {\n    return stream.closed\n  }\n  const wState = stream._writableState\n  const rState = stream._readableState\n  if (\n    typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n    typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n  ) {\n    return (\n      (wState === null || wState === undefined ? undefined : wState.closed) ||\n      (rState === null || rState === undefined ? undefined : rState.closed)\n    )\n  }\n  if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n    return stream._closed\n  }\n  return null\n}\nfunction isOutgoingMessage(stream) {\n  return (\n    typeof stream._closed === 'boolean' &&\n    typeof stream._defaultKeepAlive === 'boolean' &&\n    typeof stream._removedConnection === 'boolean' &&\n    typeof stream._removedContLen === 'boolean'\n  )\n}\nfunction isServerResponse(stream) {\n  return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n  var _stream$req\n  return (\n    typeof stream._consuming === 'boolean' &&\n    typeof stream._dumped === 'boolean' &&\n    ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n      undefined\n  )\n}\nfunction willEmitClose(stream) {\n  if (!isNodeStream(stream)) return null\n  const wState = stream._writableState\n  const rState = stream._readableState\n  const state = wState || rState\n  return (\n    (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n  )\n}\nfunction isDisturbed(stream) {\n  var _stream$kIsDisturbed\n  return !!(\n    stream &&\n    ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n      ? _stream$kIsDisturbed\n      : stream.readableDidRead || stream.readableAborted)\n  )\n}\nfunction isErrored(stream) {\n  var _ref,\n    _ref2,\n    _ref3,\n    _ref4,\n    _ref5,\n    _stream$kIsErrored,\n    _stream$_readableStat3,\n    _stream$_writableStat3,\n    _stream$_readableStat4,\n    _stream$_writableStat4\n  return !!(\n    stream &&\n    ((_ref =\n      (_ref2 =\n        (_ref3 =\n          (_ref4 =\n            (_ref5 =\n              (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n                ? _stream$kIsErrored\n                : stream.readableErrored) !== null && _ref5 !== undefined\n              ? _ref5\n              : stream.writableErrored) !== null && _ref4 !== undefined\n            ? _ref4\n            : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n            ? undefined\n            : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n          ? _ref3\n          : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n          ? undefined\n          : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n        ? _ref2\n        : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n        ? undefined\n        : _stream$_readableStat4.errored) !== null && _ref !== undefined\n      ? _ref\n      : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n      ? undefined\n      : _stream$_writableStat4.errored)\n  )\n}\nmodule.exports = {\n  isDestroyed,\n  kIsDestroyed,\n  isDisturbed,\n  kIsDisturbed,\n  isErrored,\n  kIsErrored,\n  isReadable,\n  kIsReadable,\n  kIsClosedPromise,\n  kControllerErrorFunction,\n  kIsWritable,\n  isClosed,\n  isDuplexNodeStream,\n  isFinished,\n  isIterable,\n  isReadableNodeStream,\n  isReadableStream,\n  isReadableEnded,\n  isReadableFinished,\n  isReadableErrored,\n  isNodeStream,\n  isWebStream,\n  isWritable,\n  isWritableNodeStream,\n  isWritableStream,\n  isWritableEnded,\n  isWritableFinished,\n  isWritableErrored,\n  isServerRequest,\n  isServerResponse,\n  willEmitClose,\n  isTransformStream\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = require('../../ours/util')\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = require('../validators')\nconst { Promise, PromisePrototypeThen, SymbolDispose } = require('../../ours/primordials')\nconst {\n  isClosed,\n  isReadable,\n  isReadableNodeStream,\n  isReadableStream,\n  isReadableFinished,\n  isReadableErrored,\n  isWritable,\n  isWritableNodeStream,\n  isWritableStream,\n  isWritableFinished,\n  isWritableErrored,\n  isNodeStream,\n  willEmitClose: _willEmitClose,\n  kIsClosedPromise\n} = require('./utils')\nlet addAbortListener\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n  var _options$readable, _options$writable\n  if (arguments.length === 2) {\n    callback = options\n    options = kEmptyObject\n  } else if (options == null) {\n    options = kEmptyObject\n  } else {\n    validateObject(options, 'options')\n  }\n  validateFunction(callback, 'callback')\n  validateAbortSignal(options.signal, 'options.signal')\n  callback = once(callback)\n  if (isReadableStream(stream) || isWritableStream(stream)) {\n    return eosWeb(stream, options, callback)\n  }\n  if (!isNodeStream(stream)) {\n    throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n  }\n  const readable =\n    (_options$readable = options.readable) !== null && _options$readable !== undefined\n      ? _options$readable\n      : isReadableNodeStream(stream)\n  const writable =\n    (_options$writable = options.writable) !== null && _options$writable !== undefined\n      ? _options$writable\n      : isWritableNodeStream(stream)\n  const wState = stream._writableState\n  const rState = stream._readableState\n  const onlegacyfinish = () => {\n    if (!stream.writable) {\n      onfinish()\n    }\n  }\n\n  // TODO (ronag): Improve soft detection to include core modules and\n  // common ecosystem modules that do properly emit 'close' but fail\n  // this generic check.\n  let willEmitClose =\n    _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n  let writableFinished = isWritableFinished(stream, false)\n  const onfinish = () => {\n    writableFinished = true\n    // Stream should not be destroyed here. If it is that\n    // means that user space is doing something differently and\n    // we cannot trust willEmitClose.\n    if (stream.destroyed) {\n      willEmitClose = false\n    }\n    if (willEmitClose && (!stream.readable || readable)) {\n      return\n    }\n    if (!readable || readableFinished) {\n      callback.call(stream)\n    }\n  }\n  let readableFinished = isReadableFinished(stream, false)\n  const onend = () => {\n    readableFinished = true\n    // Stream should not be destroyed here. If it is that\n    // means that user space is doing something differently and\n    // we cannot trust willEmitClose.\n    if (stream.destroyed) {\n      willEmitClose = false\n    }\n    if (willEmitClose && (!stream.writable || writable)) {\n      return\n    }\n    if (!writable || writableFinished) {\n      callback.call(stream)\n    }\n  }\n  const onerror = (err) => {\n    callback.call(stream, err)\n  }\n  let closed = isClosed(stream)\n  const onclose = () => {\n    closed = true\n    const errored = isWritableErrored(stream) || isReadableErrored(stream)\n    if (errored && typeof errored !== 'boolean') {\n      return callback.call(stream, errored)\n    }\n    if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n      if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n    }\n    if (writable && !writableFinished) {\n      if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n    }\n    callback.call(stream)\n  }\n  const onclosed = () => {\n    closed = true\n    const errored = isWritableErrored(stream) || isReadableErrored(stream)\n    if (errored && typeof errored !== 'boolean') {\n      return callback.call(stream, errored)\n    }\n    callback.call(stream)\n  }\n  const onrequest = () => {\n    stream.req.on('finish', onfinish)\n  }\n  if (isRequest(stream)) {\n    stream.on('complete', onfinish)\n    if (!willEmitClose) {\n      stream.on('abort', onclose)\n    }\n    if (stream.req) {\n      onrequest()\n    } else {\n      stream.on('request', onrequest)\n    }\n  } else if (writable && !wState) {\n    // legacy streams\n    stream.on('end', onlegacyfinish)\n    stream.on('close', onlegacyfinish)\n  }\n\n  // Not all streams will emit 'close' after 'aborted'.\n  if (!willEmitClose && typeof stream.aborted === 'boolean') {\n    stream.on('aborted', onclose)\n  }\n  stream.on('end', onend)\n  stream.on('finish', onfinish)\n  if (options.error !== false) {\n    stream.on('error', onerror)\n  }\n  stream.on('close', onclose)\n  if (closed) {\n    process.nextTick(onclose)\n  } else if (\n    (wState !== null && wState !== undefined && wState.errorEmitted) ||\n    (rState !== null && rState !== undefined && rState.errorEmitted)\n  ) {\n    if (!willEmitClose) {\n      process.nextTick(onclosed)\n    }\n  } else if (\n    !readable &&\n    (!willEmitClose || isReadable(stream)) &&\n    (writableFinished || isWritable(stream) === false)\n  ) {\n    process.nextTick(onclosed)\n  } else if (\n    !writable &&\n    (!willEmitClose || isWritable(stream)) &&\n    (readableFinished || isReadable(stream) === false)\n  ) {\n    process.nextTick(onclosed)\n  } else if (rState && stream.req && stream.aborted) {\n    process.nextTick(onclosed)\n  }\n  const cleanup = () => {\n    callback = nop\n    stream.removeListener('aborted', onclose)\n    stream.removeListener('complete', onfinish)\n    stream.removeListener('abort', onclose)\n    stream.removeListener('request', onrequest)\n    if (stream.req) stream.req.removeListener('finish', onfinish)\n    stream.removeListener('end', onlegacyfinish)\n    stream.removeListener('close', onlegacyfinish)\n    stream.removeListener('finish', onfinish)\n    stream.removeListener('end', onend)\n    stream.removeListener('error', onerror)\n    stream.removeListener('close', onclose)\n  }\n  if (options.signal && !closed) {\n    const abort = () => {\n      // Keep it because cleanup removes it.\n      const endCallback = callback\n      cleanup()\n      endCallback.call(\n        stream,\n        new AbortError(undefined, {\n          cause: options.signal.reason\n        })\n      )\n    }\n    if (options.signal.aborted) {\n      process.nextTick(abort)\n    } else {\n      addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n      const disposable = addAbortListener(options.signal, abort)\n      const originalCallback = callback\n      callback = once((...args) => {\n        disposable[SymbolDispose]()\n        originalCallback.apply(stream, args)\n      })\n    }\n  }\n  return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n  let isAborted = false\n  let abort = nop\n  if (options.signal) {\n    abort = () => {\n      isAborted = true\n      callback.call(\n        stream,\n        new AbortError(undefined, {\n          cause: options.signal.reason\n        })\n      )\n    }\n    if (options.signal.aborted) {\n      process.nextTick(abort)\n    } else {\n      addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n      const disposable = addAbortListener(options.signal, abort)\n      const originalCallback = callback\n      callback = once((...args) => {\n        disposable[SymbolDispose]()\n        originalCallback.apply(stream, args)\n      })\n    }\n  }\n  const resolverFn = (...args) => {\n    if (!isAborted) {\n      process.nextTick(() => callback.apply(stream, args))\n    }\n  }\n  PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n  return nop\n}\nfunction finished(stream, opts) {\n  var _opts\n  let autoCleanup = false\n  if (opts === null) {\n    opts = kEmptyObject\n  }\n  if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n    validateBoolean(opts.cleanup, 'cleanup')\n    autoCleanup = opts.cleanup\n  }\n  return new Promise((resolve, reject) => {\n    const cleanup = eos(stream, opts, (err) => {\n      if (autoCleanup) {\n        cleanup()\n      }\n      if (err) {\n        reject(err)\n      } else {\n        resolve()\n      }\n    })\n  })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst {\n  aggregateTwoErrors,\n  codes: { ERR_MULTIPLE_CALLBACK },\n  AbortError\n} = require('../../ours/errors')\nconst { Symbol } = require('../../ours/primordials')\nconst { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = require('./utils')\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n  if (err) {\n    // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n    err.stack // eslint-disable-line no-unused-expressions\n\n    if (w && !w.errored) {\n      w.errored = err\n    }\n    if (r && !r.errored) {\n      r.errored = err\n    }\n  }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n  const r = this._readableState\n  const w = this._writableState\n  // With duplex streams we use the writable side for state.\n  const s = w || r\n  if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n    if (typeof cb === 'function') {\n      cb()\n    }\n    return this\n  }\n\n  // We set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n  checkError(err, w, r)\n  if (w) {\n    w.destroyed = true\n  }\n  if (r) {\n    r.destroyed = true\n  }\n\n  // If still constructing then defer calling _destroy.\n  if (!s.constructed) {\n    this.once(kDestroy, function (er) {\n      _destroy(this, aggregateTwoErrors(er, err), cb)\n    })\n  } else {\n    _destroy(this, err, cb)\n  }\n  return this\n}\nfunction _destroy(self, err, cb) {\n  let called = false\n  function onDestroy(err) {\n    if (called) {\n      return\n    }\n    called = true\n    const r = self._readableState\n    const w = self._writableState\n    checkError(err, w, r)\n    if (w) {\n      w.closed = true\n    }\n    if (r) {\n      r.closed = true\n    }\n    if (typeof cb === 'function') {\n      cb(err)\n    }\n    if (err) {\n      process.nextTick(emitErrorCloseNT, self, err)\n    } else {\n      process.nextTick(emitCloseNT, self)\n    }\n  }\n  try {\n    self._destroy(err || null, onDestroy)\n  } catch (err) {\n    onDestroy(err)\n  }\n}\nfunction emitErrorCloseNT(self, err) {\n  emitErrorNT(self, err)\n  emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n  const r = self._readableState\n  const w = self._writableState\n  if (w) {\n    w.closeEmitted = true\n  }\n  if (r) {\n    r.closeEmitted = true\n  }\n  if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n    self.emit('close')\n  }\n}\nfunction emitErrorNT(self, err) {\n  const r = self._readableState\n  const w = self._writableState\n  if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n    return\n  }\n  if (w) {\n    w.errorEmitted = true\n  }\n  if (r) {\n    r.errorEmitted = true\n  }\n  self.emit('error', err)\n}\nfunction undestroy() {\n  const r = this._readableState\n  const w = this._writableState\n  if (r) {\n    r.constructed = true\n    r.closed = false\n    r.closeEmitted = false\n    r.destroyed = false\n    r.errored = null\n    r.errorEmitted = false\n    r.reading = false\n    r.ended = r.readable === false\n    r.endEmitted = r.readable === false\n  }\n  if (w) {\n    w.constructed = true\n    w.destroyed = false\n    w.closed = false\n    w.closeEmitted = false\n    w.errored = null\n    w.errorEmitted = false\n    w.finalCalled = false\n    w.prefinished = false\n    w.ended = w.writable === false\n    w.ending = w.writable === false\n    w.finished = w.writable === false\n  }\n}\nfunction errorOrDestroy(stream, err, sync) {\n  // We have tests that rely on errors being emitted\n  // in the same tick, so changing this is semver major.\n  // For now when you opt-in to autoDestroy we allow\n  // the error to be emitted nextTick. In a future\n  // semver major update we should change the default to this.\n\n  const r = stream._readableState\n  const w = stream._writableState\n  if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n    return this\n  }\n  if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n    stream.destroy(err)\n  else if (err) {\n    // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n    err.stack // eslint-disable-line no-unused-expressions\n\n    if (w && !w.errored) {\n      w.errored = err\n    }\n    if (r && !r.errored) {\n      r.errored = err\n    }\n    if (sync) {\n      process.nextTick(emitErrorNT, stream, err)\n    } else {\n      emitErrorNT(stream, err)\n    }\n  }\n}\nfunction construct(stream, cb) {\n  if (typeof stream._construct !== 'function') {\n    return\n  }\n  const r = stream._readableState\n  const w = stream._writableState\n  if (r) {\n    r.constructed = false\n  }\n  if (w) {\n    w.constructed = false\n  }\n  stream.once(kConstruct, cb)\n  if (stream.listenerCount(kConstruct) > 1) {\n    // Duplex\n    return\n  }\n  process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n  let called = false\n  function onConstruct(err) {\n    if (called) {\n      errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n      return\n    }\n    called = true\n    const r = stream._readableState\n    const w = stream._writableState\n    const s = w || r\n    if (r) {\n      r.constructed = true\n    }\n    if (w) {\n      w.constructed = true\n    }\n    if (s.destroyed) {\n      stream.emit(kDestroy, err)\n    } else if (err) {\n      errorOrDestroy(stream, err, true)\n    } else {\n      process.nextTick(emitConstructNT, stream)\n    }\n  }\n  try {\n    stream._construct((err) => {\n      process.nextTick(onConstruct, err)\n    })\n  } catch (err) {\n    process.nextTick(onConstruct, err)\n  }\n}\nfunction emitConstructNT(stream) {\n  stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n  return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n  stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n  stream.emit('error', err)\n  process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n  if (!stream || isDestroyed(stream)) {\n    return\n  }\n  if (!err && !isFinished(stream)) {\n    err = new AbortError()\n  }\n\n  // TODO: Remove isRequest branches.\n  if (isServerRequest(stream)) {\n    stream.socket = null\n    stream.destroy(err)\n  } else if (isRequest(stream)) {\n    stream.abort()\n  } else if (isRequest(stream.req)) {\n    stream.req.abort()\n  } else if (typeof stream.destroy === 'function') {\n    stream.destroy(err)\n  } else if (typeof stream.close === 'function') {\n    // TODO: Don't lose err?\n    stream.close()\n  } else if (err) {\n    process.nextTick(emitErrorCloseLegacy, stream, err)\n  } else {\n    process.nextTick(emitCloseLegacy, stream)\n  }\n  if (!stream.destroyed) {\n    stream[kIsDestroyed] = true\n  }\n}\nmodule.exports = {\n  construct,\n  destroyer,\n  destroy,\n  undestroy,\n  errorOrDestroy\n}\n","'use strict'\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = require('../../ours/primordials')\nconst { EventEmitter: EE } = require('events')\nfunction Stream(opts) {\n  EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n  const source = this\n  function ondata(chunk) {\n    if (dest.writable && dest.write(chunk) === false && source.pause) {\n      source.pause()\n    }\n  }\n  source.on('data', ondata)\n  function ondrain() {\n    if (source.readable && source.resume) {\n      source.resume()\n    }\n  }\n  dest.on('drain', ondrain)\n\n  // If the 'end' option is not supplied, dest.end() will be called when\n  // source gets the 'end' or 'close' events.  Only dest.end() once.\n  if (!dest._isStdio && (!options || options.end !== false)) {\n    source.on('end', onend)\n    source.on('close', onclose)\n  }\n  let didOnEnd = false\n  function onend() {\n    if (didOnEnd) return\n    didOnEnd = true\n    dest.end()\n  }\n  function onclose() {\n    if (didOnEnd) return\n    didOnEnd = true\n    if (typeof dest.destroy === 'function') dest.destroy()\n  }\n\n  // Don't leave dangling pipes when there are errors.\n  function onerror(er) {\n    cleanup()\n    if (EE.listenerCount(this, 'error') === 0) {\n      this.emit('error', er)\n    }\n  }\n  prependListener(source, 'error', onerror)\n  prependListener(dest, 'error', onerror)\n\n  // Remove all the event listeners that were added.\n  function cleanup() {\n    source.removeListener('data', ondata)\n    dest.removeListener('drain', ondrain)\n    source.removeListener('end', onend)\n    source.removeListener('close', onclose)\n    source.removeListener('error', onerror)\n    dest.removeListener('error', onerror)\n    source.removeListener('end', cleanup)\n    source.removeListener('close', cleanup)\n    dest.removeListener('close', cleanup)\n  }\n  source.on('end', cleanup)\n  source.on('close', cleanup)\n  dest.on('close', cleanup)\n  dest.emit('pipe', source)\n\n  // Allow for unix-like usage: A.pipe(B).pipe(C)\n  return dest\n}\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn)\n\n  // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n  else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n  else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n  Stream,\n  prependListener\n}\n","'use strict'\n\nconst { SymbolDispose } = require('../../ours/primordials')\nconst { AbortError, codes } = require('../../ours/errors')\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = require('./utils')\nconst eos = require('./end-of-stream')\nconst { ERR_INVALID_ARG_TYPE } = codes\nlet addAbortListener\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n  if (typeof signal !== 'object' || !('aborted' in signal)) {\n    throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n  }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n  validateAbortSignal(signal, 'signal')\n  if (!isNodeStream(stream) && !isWebStream(stream)) {\n    throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n  }\n  return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n  if (typeof signal !== 'object' || !('aborted' in signal)) {\n    return stream\n  }\n  const onAbort = isNodeStream(stream)\n    ? () => {\n        stream.destroy(\n          new AbortError(undefined, {\n            cause: signal.reason\n          })\n        )\n      }\n    : () => {\n        stream[kControllerErrorFunction](\n          new AbortError(undefined, {\n            cause: signal.reason\n          })\n        )\n      }\n  if (signal.aborted) {\n    onAbort()\n  } else {\n    addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n    const disposable = addAbortListener(signal, onAbort)\n    eos(stream, disposable[SymbolDispose])\n  }\n  return stream\n}\n","'use strict'\n\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { inspect } = require('../../ours/util')\nmodule.exports = class BufferList {\n  constructor() {\n    this.head = null\n    this.tail = null\n    this.length = 0\n  }\n  push(v) {\n    const entry = {\n      data: v,\n      next: null\n    }\n    if (this.length > 0) this.tail.next = entry\n    else this.head = entry\n    this.tail = entry\n    ++this.length\n  }\n  unshift(v) {\n    const entry = {\n      data: v,\n      next: this.head\n    }\n    if (this.length === 0) this.tail = entry\n    this.head = entry\n    ++this.length\n  }\n  shift() {\n    if (this.length === 0) return\n    const ret = this.head.data\n    if (this.length === 1) this.head = this.tail = null\n    else this.head = this.head.next\n    --this.length\n    return ret\n  }\n  clear() {\n    this.head = this.tail = null\n    this.length = 0\n  }\n  join(s) {\n    if (this.length === 0) return ''\n    let p = this.head\n    let ret = '' + p.data\n    while ((p = p.next) !== null) ret += s + p.data\n    return ret\n  }\n  concat(n) {\n    if (this.length === 0) return Buffer.alloc(0)\n    const ret = Buffer.allocUnsafe(n >>> 0)\n    let p = this.head\n    let i = 0\n    while (p) {\n      TypedArrayPrototypeSet(ret, p.data, i)\n      i += p.data.length\n      p = p.next\n    }\n    return ret\n  }\n\n  // Consumes a specified amount of bytes or characters from the buffered data.\n  consume(n, hasStrings) {\n    const data = this.head.data\n    if (n < data.length) {\n      // `slice` is the same for buffers and strings.\n      const slice = data.slice(0, n)\n      this.head.data = data.slice(n)\n      return slice\n    }\n    if (n === data.length) {\n      // First chunk is a perfect match.\n      return this.shift()\n    }\n    // Result spans more than one buffer.\n    return hasStrings ? this._getString(n) : this._getBuffer(n)\n  }\n  first() {\n    return this.head.data\n  }\n  *[SymbolIterator]() {\n    for (let p = this.head; p; p = p.next) {\n      yield p.data\n    }\n  }\n\n  // Consumes a specified amount of characters from the buffered data.\n  _getString(n) {\n    let ret = ''\n    let p = this.head\n    let c = 0\n    do {\n      const str = p.data\n      if (n > str.length) {\n        ret += str\n        n -= str.length\n      } else {\n        if (n === str.length) {\n          ret += str\n          ++c\n          if (p.next) this.head = p.next\n          else this.head = this.tail = null\n        } else {\n          ret += StringPrototypeSlice(str, 0, n)\n          this.head = p\n          p.data = StringPrototypeSlice(str, n)\n        }\n        break\n      }\n      ++c\n    } while ((p = p.next) !== null)\n    this.length -= c\n    return ret\n  }\n\n  // Consumes a specified amount of bytes from the buffered data.\n  _getBuffer(n) {\n    const ret = Buffer.allocUnsafe(n)\n    const retLen = n\n    let p = this.head\n    let c = 0\n    do {\n      const buf = p.data\n      if (n > buf.length) {\n        TypedArrayPrototypeSet(ret, buf, retLen - n)\n        n -= buf.length\n      } else {\n        if (n === buf.length) {\n          TypedArrayPrototypeSet(ret, buf, retLen - n)\n          ++c\n          if (p.next) this.head = p.next\n          else this.head = this.tail = null\n        } else {\n          TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n          this.head = p\n          p.data = buf.slice(n)\n        }\n        break\n      }\n      ++c\n    } while ((p = p.next) !== null)\n    this.length -= c\n    return ret\n  }\n\n  // Make sure the linked list only shows the minimal necessary information.\n  [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n    return inspect(this, {\n      ...options,\n      // Only inspect one level.\n      depth: 0,\n      // It should not recurse.\n      customInspect: false\n    })\n  }\n}\n","'use strict'\n\nconst { MathFloor, NumberIsInteger } = require('../../ours/primordials')\nconst { validateInteger } = require('../validators')\nconst { ERR_INVALID_ARG_VALUE } = require('../../ours/errors').codes\nlet defaultHighWaterMarkBytes = 16 * 1024\nlet defaultHighWaterMarkObjectMode = 16\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n  return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes\n}\nfunction setDefaultHighWaterMark(objectMode, value) {\n  validateInteger(value, 'value', 0)\n  if (objectMode) {\n    defaultHighWaterMarkObjectMode = value\n  } else {\n    defaultHighWaterMarkBytes = value\n  }\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n  const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n  if (hwm != null) {\n    if (!NumberIsInteger(hwm) || hwm < 0) {\n      const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n      throw new ERR_INVALID_ARG_VALUE(name, hwm)\n    }\n    return MathFloor(hwm)\n  }\n\n  // Default value\n  return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n  getHighWaterMark,\n  getDefaultHighWaterMark,\n  setDefaultHighWaterMark\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n  for (var key in src) {\n    dst[key] = src[key]\n  }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports)\n  exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number')\n  }\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  var buf = Buffer(size)\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding)\n    } else {\n      buf.fill(fill)\n    }\n  } else {\n    buf.fill(0)\n  }\n  return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n  encoding = '' + encoding;\n  switch (encoding && encoding.toLowerCase()) {\n    case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n      return true;\n    default:\n      return false;\n  }\n};\n\nfunction _normalizeEncoding(enc) {\n  if (!enc) return 'utf8';\n  var retried;\n  while (true) {\n    switch (enc) {\n      case 'utf8':\n      case 'utf-8':\n        return 'utf8';\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return 'utf16le';\n      case 'latin1':\n      case 'binary':\n        return 'latin1';\n      case 'base64':\n      case 'ascii':\n      case 'hex':\n        return enc;\n      default:\n        if (retried) return; // undefined\n        enc = ('' + enc).toLowerCase();\n        retried = true;\n    }\n  }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n  var nenc = _normalizeEncoding(enc);\n  if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n  return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n  this.encoding = normalizeEncoding(encoding);\n  var nb;\n  switch (this.encoding) {\n    case 'utf16le':\n      this.text = utf16Text;\n      this.end = utf16End;\n      nb = 4;\n      break;\n    case 'utf8':\n      this.fillLast = utf8FillLast;\n      nb = 4;\n      break;\n    case 'base64':\n      this.text = base64Text;\n      this.end = base64End;\n      nb = 3;\n      break;\n    default:\n      this.write = simpleWrite;\n      this.end = simpleEnd;\n      return;\n  }\n  this.lastNeed = 0;\n  this.lastTotal = 0;\n  this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n  if (buf.length === 0) return '';\n  var r;\n  var i;\n  if (this.lastNeed) {\n    r = this.fillLast(buf);\n    if (r === undefined) return '';\n    i = this.lastNeed;\n    this.lastNeed = 0;\n  } else {\n    i = 0;\n  }\n  if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n  return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n  buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n  this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n  if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n  return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n  var j = buf.length - 1;\n  if (j < i) return 0;\n  var nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 1;\n    return nb;\n  }\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 2;\n    return nb;\n  }\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) {\n      if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n    }\n    return nb;\n  }\n  return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n  if ((buf[0] & 0xC0) !== 0x80) {\n    self.lastNeed = 0;\n    return '\\ufffd';\n  }\n  if (self.lastNeed > 1 && buf.length > 1) {\n    if ((buf[1] & 0xC0) !== 0x80) {\n      self.lastNeed = 1;\n      return '\\ufffd';\n    }\n    if (self.lastNeed > 2 && buf.length > 2) {\n      if ((buf[2] & 0xC0) !== 0x80) {\n        self.lastNeed = 2;\n        return '\\ufffd';\n      }\n    }\n  }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n  var p = this.lastTotal - this.lastNeed;\n  var r = utf8CheckExtraBytes(this, buf, p);\n  if (r !== undefined) return r;\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, p, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n  buf.copy(this.lastChar, p, 0, buf.length);\n  this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n  var total = utf8CheckIncomplete(this, buf, i);\n  if (!this.lastNeed) return buf.toString('utf8', i);\n  this.lastTotal = total;\n  var end = buf.length - (total - this.lastNeed);\n  buf.copy(this.lastChar, 0, end);\n  return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + '\\ufffd';\n  return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n  if ((buf.length - i) % 2 === 0) {\n    var r = buf.toString('utf16le', i);\n    if (r) {\n      var c = r.charCodeAt(r.length - 1);\n      if (c >= 0xD800 && c <= 0xDBFF) {\n        this.lastNeed = 2;\n        this.lastTotal = 4;\n        this.lastChar[0] = buf[buf.length - 2];\n        this.lastChar[1] = buf[buf.length - 1];\n        return r.slice(0, -1);\n      }\n    }\n    return r;\n  }\n  this.lastNeed = 1;\n  this.lastTotal = 2;\n  this.lastChar[0] = buf[buf.length - 1];\n  return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) {\n    var end = this.lastTotal - this.lastNeed;\n    return r + this.lastChar.toString('utf16le', 0, end);\n  }\n  return r;\n}\n\nfunction base64Text(buf, i) {\n  var n = (buf.length - i) % 3;\n  if (n === 0) return buf.toString('base64', i);\n  this.lastNeed = 3 - n;\n  this.lastTotal = 3;\n  if (n === 1) {\n    this.lastChar[0] = buf[buf.length - 1];\n  } else {\n    this.lastChar[0] = buf[buf.length - 2];\n    this.lastChar[1] = buf[buf.length - 1];\n  }\n  return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n  return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n  return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n  return buf && buf.length ? this.write(buf) : '';\n}","'use strict'\n\n/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = require('../../ours/primordials')\nconst { Buffer } = require('buffer')\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = require('../../ours/errors').codes\nfunction from(Readable, iterable, opts) {\n  let iterator\n  if (typeof iterable === 'string' || iterable instanceof Buffer) {\n    return new Readable({\n      objectMode: true,\n      ...opts,\n      read() {\n        this.push(iterable)\n        this.push(null)\n      }\n    })\n  }\n  let isAsync\n  if (iterable && iterable[SymbolAsyncIterator]) {\n    isAsync = true\n    iterator = iterable[SymbolAsyncIterator]()\n  } else if (iterable && iterable[SymbolIterator]) {\n    isAsync = false\n    iterator = iterable[SymbolIterator]()\n  } else {\n    throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n  }\n  const readable = new Readable({\n    objectMode: true,\n    highWaterMark: 1,\n    // TODO(ronag): What options should be allowed?\n    ...opts\n  })\n\n  // Flag to protect against _read\n  // being called before last iteration completion.\n  let reading = false\n  readable._read = function () {\n    if (!reading) {\n      reading = true\n      next()\n    }\n  }\n  readable._destroy = function (error, cb) {\n    PromisePrototypeThen(\n      close(error),\n      () => process.nextTick(cb, error),\n      // nextTick is here in case cb throws\n      (e) => process.nextTick(cb, e || error)\n    )\n  }\n  async function close(error) {\n    const hadError = error !== undefined && error !== null\n    const hasThrow = typeof iterator.throw === 'function'\n    if (hadError && hasThrow) {\n      const { value, done } = await iterator.throw(error)\n      await value\n      if (done) {\n        return\n      }\n    }\n    if (typeof iterator.return === 'function') {\n      const { value } = await iterator.return()\n      await value\n    }\n  }\n  async function next() {\n    for (;;) {\n      try {\n        const { value, done } = isAsync ? await iterator.next() : iterator.next()\n        if (done) {\n          readable.push(null)\n        } else {\n          const res = value && typeof value.then === 'function' ? await value : value\n          if (res === null) {\n            reading = false\n            throw new ERR_STREAM_NULL_VALUES()\n          } else if (readable.push(res)) {\n            continue\n          } else {\n            reading = false\n          }\n        }\n      } catch (err) {\n        readable.destroy(err)\n      }\n      break\n    }\n  }\n  return readable\n}\nmodule.exports = from\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst {\n  ArrayPrototypeIndexOf,\n  NumberIsInteger,\n  NumberIsNaN,\n  NumberParseInt,\n  ObjectDefineProperties,\n  ObjectKeys,\n  ObjectSetPrototypeOf,\n  Promise,\n  SafeSet,\n  SymbolAsyncDispose,\n  SymbolAsyncIterator,\n  Symbol\n} = require('../../ours/primordials')\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = require('events')\nconst { Stream, prependListener } = require('./legacy')\nconst { Buffer } = require('buffer')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst eos = require('./end-of-stream')\nlet debug = require('../../ours/util').debuglog('stream', (fn) => {\n  debug = fn\n})\nconst BufferList = require('./buffer_list')\nconst destroyImpl = require('./destroy')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n  aggregateTwoErrors,\n  codes: {\n    ERR_INVALID_ARG_TYPE,\n    ERR_METHOD_NOT_IMPLEMENTED,\n    ERR_OUT_OF_RANGE,\n    ERR_STREAM_PUSH_AFTER_EOF,\n    ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n  },\n  AbortError\n} = require('../../ours/errors')\nconst { validateObject } = require('../validators')\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = require('string_decoder')\nconst from = require('./from')\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nconst kObjectMode = 1 << 0\nconst kEnded = 1 << 1\nconst kEndEmitted = 1 << 2\nconst kReading = 1 << 3\nconst kConstructed = 1 << 4\nconst kSync = 1 << 5\nconst kNeedReadable = 1 << 6\nconst kEmittedReadable = 1 << 7\nconst kReadableListening = 1 << 8\nconst kResumeScheduled = 1 << 9\nconst kErrorEmitted = 1 << 10\nconst kEmitClose = 1 << 11\nconst kAutoDestroy = 1 << 12\nconst kDestroyed = 1 << 13\nconst kClosed = 1 << 14\nconst kCloseEmitted = 1 << 15\nconst kMultiAwaitDrain = 1 << 16\nconst kReadingMore = 1 << 17\nconst kDataEmitted = 1 << 18\n\n// TODO(benjamingr) it is likely slower to do it this way than with free functions\nfunction makeBitMapDescriptor(bit) {\n  return {\n    enumerable: false,\n    get() {\n      return (this.state & bit) !== 0\n    },\n    set(value) {\n      if (value) this.state |= bit\n      else this.state &= ~bit\n    }\n  }\n}\nObjectDefineProperties(ReadableState.prototype, {\n  objectMode: makeBitMapDescriptor(kObjectMode),\n  ended: makeBitMapDescriptor(kEnded),\n  endEmitted: makeBitMapDescriptor(kEndEmitted),\n  reading: makeBitMapDescriptor(kReading),\n  // Stream is still being constructed and cannot be\n  // destroyed until construction finished or failed.\n  // Async construction is opt in, therefore we start as\n  // constructed.\n  constructed: makeBitMapDescriptor(kConstructed),\n  // A flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n  sync: makeBitMapDescriptor(kSync),\n  // Whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n  needReadable: makeBitMapDescriptor(kNeedReadable),\n  emittedReadable: makeBitMapDescriptor(kEmittedReadable),\n  readableListening: makeBitMapDescriptor(kReadableListening),\n  resumeScheduled: makeBitMapDescriptor(kResumeScheduled),\n  // True if the error was already emitted and should not be thrown again.\n  errorEmitted: makeBitMapDescriptor(kErrorEmitted),\n  emitClose: makeBitMapDescriptor(kEmitClose),\n  autoDestroy: makeBitMapDescriptor(kAutoDestroy),\n  // Has it been destroyed.\n  destroyed: makeBitMapDescriptor(kDestroyed),\n  // Indicates whether the stream has finished destroying.\n  closed: makeBitMapDescriptor(kClosed),\n  // True if close has been emitted or would have been emitted\n  // depending on emitClose.\n  closeEmitted: makeBitMapDescriptor(kCloseEmitted),\n  multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),\n  // If true, a maybeReadMore has been scheduled.\n  readingMore: makeBitMapDescriptor(kReadingMore),\n  dataEmitted: makeBitMapDescriptor(kDataEmitted)\n})\nfunction ReadableState(options, stream, isDuplex) {\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n  // Bit map field to store ReadableState more effciently with 1 bit per field\n  // instead of a V8 slot per field.\n  this.state = kEmitClose | kAutoDestroy | kConstructed | kSync\n  // Object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away.\n  if (options && options.objectMode) this.state |= kObjectMode\n  if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode\n\n  // The point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n  this.highWaterMark = options\n    ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n    : getDefaultHighWaterMark(false)\n\n  // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift().\n  this.buffer = new BufferList()\n  this.length = 0\n  this.pipes = []\n  this.flowing = null\n  this[kPaused] = null\n\n  // Should close be emitted on destroy. Defaults to true.\n  if (options && options.emitClose === false) this.state &= ~kEmitClose\n\n  // Should .destroy() be called after 'end' (and potentially 'finish').\n  if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy\n\n  // Indicates whether the stream has errored. When true no further\n  // _read calls, 'data' or 'readable' events should occur. This is needed\n  // since when autoDestroy is disabled we need a way to tell whether the\n  // stream has failed.\n  this.errored = null\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n  // Ref the piped dest which we need a drain event on it\n  // type: null | Writable | Set<Writable>.\n  this.awaitDrainWriters = null\n  this.decoder = null\n  this.encoding = null\n  if (options && options.encoding) {\n    this.decoder = new StringDecoder(options.encoding)\n    this.encoding = options.encoding\n  }\n}\nfunction Readable(options) {\n  if (!(this instanceof Readable)) return new Readable(options)\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the ReadableState constructor, at least with V8 6.5.\n  const isDuplex = this instanceof require('./duplex')\n  this._readableState = new ReadableState(options, this, isDuplex)\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read\n    if (typeof options.destroy === 'function') this._destroy = options.destroy\n    if (typeof options.construct === 'function') this._construct = options.construct\n    if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n  }\n  Stream.call(this, options)\n  destroyImpl.construct(this, () => {\n    if (this._readableState.needReadable) {\n      maybeReadMore(this, this._readableState)\n    }\n  })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n  cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n  this.destroy(err)\n}\nReadable.prototype[SymbolAsyncDispose] = function () {\n  let error\n  if (!this.destroyed) {\n    error = this.readableEnded ? null : new AbortError()\n    this.destroy(error)\n  }\n  return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n  return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n  return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n  debug('readableAddChunk', chunk)\n  const state = stream._readableState\n  let err\n  if ((state.state & kObjectMode) === 0) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding\n      if (state.encoding !== encoding) {\n        if (addToFront && state.encoding) {\n          // When unshifting, if state.encoding is set, we have to save\n          // the string in the BufferList with the state encoding.\n          chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n        } else {\n          chunk = Buffer.from(chunk, encoding)\n          encoding = ''\n        }\n      }\n    } else if (chunk instanceof Buffer) {\n      encoding = ''\n    } else if (Stream._isUint8Array(chunk)) {\n      chunk = Stream._uint8ArrayToBuffer(chunk)\n      encoding = ''\n    } else if (chunk != null) {\n      err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n    }\n  }\n  if (err) {\n    errorOrDestroy(stream, err)\n  } else if (chunk === null) {\n    state.state &= ~kReading\n    onEofChunk(stream, state)\n  } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {\n    if (addToFront) {\n      if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n      else if (state.destroyed || state.errored) return false\n      else addChunk(stream, state, chunk, true)\n    } else if (state.ended) {\n      errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF())\n    } else if (state.destroyed || state.errored) {\n      return false\n    } else {\n      state.state &= ~kReading\n      if (state.decoder && !encoding) {\n        chunk = state.decoder.write(chunk)\n        if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n        else maybeReadMore(stream, state)\n      } else {\n        addChunk(stream, state, chunk, false)\n      }\n    }\n  } else if (!addToFront) {\n    state.state &= ~kReading\n    maybeReadMore(stream, state)\n  }\n\n  // We can push more data if we are below the highWaterMark.\n  // Also, if we have no data yet, we can stand some more bytes.\n  // This is to work around cases where hwm=0, such as the repl.\n  return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n    // Use the guard to avoid creating `Set()` repeatedly\n    // when we have multiple pipes.\n    if ((state.state & kMultiAwaitDrain) !== 0) {\n      state.awaitDrainWriters.clear()\n    } else {\n      state.awaitDrainWriters = null\n    }\n    state.dataEmitted = true\n    stream.emit('data', chunk)\n  } else {\n    // Update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length\n    if (addToFront) state.buffer.unshift(chunk)\n    else state.buffer.push(chunk)\n    if ((state.state & kNeedReadable) !== 0) emitReadable(stream)\n  }\n  maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n  const state = this._readableState\n  return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n  const decoder = new StringDecoder(enc)\n  this._readableState.decoder = decoder\n  // If setEncoding(null), decoder.encoding equals utf8.\n  this._readableState.encoding = this._readableState.decoder.encoding\n  const buffer = this._readableState.buffer\n  // Iterate over current buffer to convert already stored Buffers:\n  let content = ''\n  for (const data of buffer) {\n    content += decoder.write(data)\n  }\n  buffer.clear()\n  if (content !== '') buffer.push(content)\n  this._readableState.length = content.length\n  return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n  if (n > MAX_HWM) {\n    throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts.\n    n--\n    n |= n >>> 1\n    n |= n >>> 2\n    n |= n >>> 4\n    n |= n >>> 8\n    n |= n >>> 16\n    n++\n  }\n  return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || (state.length === 0 && state.ended)) return 0\n  if ((state.state & kObjectMode) !== 0) return 1\n  if (NumberIsNaN(n)) {\n    // Only flow one buffer at a time.\n    if (state.flowing && state.length) return state.buffer.first().length\n    return state.length\n  }\n  if (n <= state.length) return n\n  return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n  debug('read', n)\n  // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n  // in this scenario, so we are doing it manually.\n  if (n === undefined) {\n    n = NaN\n  } else if (!NumberIsInteger(n)) {\n    n = NumberParseInt(n, 10)\n  }\n  const state = this._readableState\n  const nOrig = n\n\n  // If we're asking for more than the current hwm, then raise the hwm.\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n  if (n !== 0) state.state &= ~kEmittedReadable\n\n  // If we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n  if (\n    n === 0 &&\n    state.needReadable &&\n    ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n  ) {\n    debug('read: emitReadable', state.length, state.ended)\n    if (state.length === 0 && state.ended) endReadable(this)\n    else emitReadable(this)\n    return null\n  }\n  n = howMuchToRead(n, state)\n\n  // If we've ended, and we're now clear, then finish it up.\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this)\n    return null\n  }\n\n  // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n\n  // if we need a readable event, then we need to do some reading.\n  let doRead = (state.state & kNeedReadable) !== 0\n  debug('need readable', doRead)\n\n  // If we currently have less than the highWaterMark, then also read some.\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true\n    debug('length less than watermark', doRead)\n  }\n\n  // However, if we've ended, then there's no point, if we're already\n  // reading, then it's unnecessary, if we're constructing we have to wait,\n  // and if we're destroyed or errored, then it's not allowed,\n  if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n    doRead = false\n    debug('reading, ended or constructing', doRead)\n  } else if (doRead) {\n    debug('do read')\n    state.state |= kReading | kSync\n    // If the length is currently zero, then we *need* a readable event.\n    if (state.length === 0) state.state |= kNeedReadable\n\n    // Call internal read method\n    try {\n      this._read(state.highWaterMark)\n    } catch (err) {\n      errorOrDestroy(this, err)\n    }\n    state.state &= ~kSync\n\n    // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n    if (!state.reading) n = howMuchToRead(nOrig, state)\n  }\n  let ret\n  if (n > 0) ret = fromList(n, state)\n  else ret = null\n  if (ret === null) {\n    state.needReadable = state.length <= state.highWaterMark\n    n = 0\n  } else {\n    state.length -= n\n    if (state.multiAwaitDrain) {\n      state.awaitDrainWriters.clear()\n    } else {\n      state.awaitDrainWriters = null\n    }\n  }\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true\n\n    // If we tried to read() past the EOF, then emit end on the next tick.\n    if (nOrig !== n && state.ended) endReadable(this)\n  }\n  if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n    state.dataEmitted = true\n    this.emit('data', ret)\n  }\n  return ret\n}\nfunction onEofChunk(stream, state) {\n  debug('onEofChunk')\n  if (state.ended) return\n  if (state.decoder) {\n    const chunk = state.decoder.end()\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk)\n      state.length += state.objectMode ? 1 : chunk.length\n    }\n  }\n  state.ended = true\n  if (state.sync) {\n    // If we are sync, wait until next tick to emit the data.\n    // Otherwise we risk emitting data in the flow()\n    // the readable code triggers during a read() call.\n    emitReadable(stream)\n  } else {\n    // Emit 'readable' now to make sure it gets picked up.\n    state.needReadable = false\n    state.emittedReadable = true\n    // We have to emit readable now that we are EOF. Modules\n    // in the ecosystem (e.g. dicer) rely on this event being sync.\n    emitReadable_(stream)\n  }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n  const state = stream._readableState\n  debug('emitReadable', state.needReadable, state.emittedReadable)\n  state.needReadable = false\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing)\n    state.emittedReadable = true\n    process.nextTick(emitReadable_, stream)\n  }\n}\nfunction emitReadable_(stream) {\n  const state = stream._readableState\n  debug('emitReadable_', state.destroyed, state.length, state.ended)\n  if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n    stream.emit('readable')\n    state.emittedReadable = false\n  }\n\n  // The stream needs another readable event if:\n  // 1. It is not flowing, as the flow mechanism will take\n  //    care of it.\n  // 2. It is not ended.\n  // 3. It is below the highWaterMark, so we can schedule\n  //    another readable later.\n  state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n  flow(stream)\n}\n\n// At this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore && state.constructed) {\n    state.readingMore = true\n    process.nextTick(maybeReadMore_, stream, state)\n  }\n}\nfunction maybeReadMore_(stream, state) {\n  // Attempt to read more data if we should.\n  //\n  // The conditions for reading more data are (one of):\n  // - Not enough data buffered (state.length < state.highWaterMark). The loop\n  //   is responsible for filling the buffer with enough data if such data\n  //   is available. If highWaterMark is 0 and we are not in the flowing mode\n  //   we should _not_ attempt to buffer any extra data. We'll get more data\n  //   when the stream consumer calls read() instead.\n  // - No data in the buffer, and the stream is in flowing mode. In this mode\n  //   the loop below is responsible for ensuring read() is called. Failing to\n  //   call read here would abort the flow and there's no other mechanism for\n  //   continuing the flow if the stream consumer has just subscribed to the\n  //   'data' event.\n  //\n  // In addition to the above conditions to keep reading data, the following\n  // conditions prevent the data from being read:\n  // - The stream has ended (state.ended).\n  // - There is already a pending 'read' operation (state.reading). This is a\n  //   case where the stream has called the implementation defined _read()\n  //   method, but they are processing the call asynchronously and have _not_\n  //   called push() with new data. In this case we skip performing more\n  //   read()s. The execution ends in this method again after the _read() ends\n  //   up calling push() with more data.\n  while (\n    !state.reading &&\n    !state.ended &&\n    (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n  ) {\n    const len = state.length\n    debug('maybeReadMore read 0')\n    stream.read(0)\n    if (len === state.length)\n      // Didn't get any data, stop spinning.\n      break\n  }\n  state.readingMore = false\n}\n\n// Abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n  throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  const src = this\n  const state = this._readableState\n  if (state.pipes.length === 1) {\n    if (!state.multiAwaitDrain) {\n      state.multiAwaitDrain = true\n      state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n    }\n  }\n  state.pipes.push(dest)\n  debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n  const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n  const endFn = doEnd ? onend : unpipe\n  if (state.endEmitted) process.nextTick(endFn)\n  else src.once('end', endFn)\n  dest.on('unpipe', onunpipe)\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe')\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true\n        cleanup()\n      }\n    }\n  }\n  function onend() {\n    debug('onend')\n    dest.end()\n  }\n  let ondrain\n  let cleanedUp = false\n  function cleanup() {\n    debug('cleanup')\n    // Cleanup event handlers once the pipe is broken.\n    dest.removeListener('close', onclose)\n    dest.removeListener('finish', onfinish)\n    if (ondrain) {\n      dest.removeListener('drain', ondrain)\n    }\n    dest.removeListener('error', onerror)\n    dest.removeListener('unpipe', onunpipe)\n    src.removeListener('end', onend)\n    src.removeListener('end', unpipe)\n    src.removeListener('data', ondata)\n    cleanedUp = true\n\n    // If the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n    if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n  }\n  function pause() {\n    // If the user unpiped during `dest.write()`, it is possible\n    // to get stuck in a permanently paused state if that write\n    // also returned false.\n    // => Check whether `dest` is still a piping destination.\n    if (!cleanedUp) {\n      if (state.pipes.length === 1 && state.pipes[0] === dest) {\n        debug('false write response, pause', 0)\n        state.awaitDrainWriters = dest\n        state.multiAwaitDrain = false\n      } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n        debug('false write response, pause', state.awaitDrainWriters.size)\n        state.awaitDrainWriters.add(dest)\n      }\n      src.pause()\n    }\n    if (!ondrain) {\n      // When the dest drains, it reduces the awaitDrain counter\n      // on the source.  This would be more elegant with a .once()\n      // handler in flow(), but adding and removing repeatedly is\n      // too slow.\n      ondrain = pipeOnDrain(src, dest)\n      dest.on('drain', ondrain)\n    }\n  }\n  src.on('data', ondata)\n  function ondata(chunk) {\n    debug('ondata')\n    const ret = dest.write(chunk)\n    debug('dest.write', ret)\n    if (ret === false) {\n      pause()\n    }\n  }\n\n  // If the dest has an error, then stop piping into it.\n  // However, don't suppress the throwing behavior for this.\n  function onerror(er) {\n    debug('onerror', er)\n    unpipe()\n    dest.removeListener('error', onerror)\n    if (dest.listenerCount('error') === 0) {\n      const s = dest._writableState || dest._readableState\n      if (s && !s.errorEmitted) {\n        // User incorrectly emitted 'error' directly on the stream.\n        errorOrDestroy(dest, er)\n      } else {\n        dest.emit('error', er)\n      }\n    }\n  }\n\n  // Make sure our error handler is attached before userland ones.\n  prependListener(dest, 'error', onerror)\n\n  // Both close and finish should trigger unpipe, but only once.\n  function onclose() {\n    dest.removeListener('finish', onfinish)\n    unpipe()\n  }\n  dest.once('close', onclose)\n  function onfinish() {\n    debug('onfinish')\n    dest.removeListener('close', onclose)\n    unpipe()\n  }\n  dest.once('finish', onfinish)\n  function unpipe() {\n    debug('unpipe')\n    src.unpipe(dest)\n  }\n\n  // Tell the dest that it's being piped to.\n  dest.emit('pipe', src)\n\n  // Start the flow if it hasn't been started already.\n\n  if (dest.writableNeedDrain === true) {\n    pause()\n  } else if (!state.flowing) {\n    debug('pipe resume')\n    src.resume()\n  }\n  return dest\n}\nfunction pipeOnDrain(src, dest) {\n  return function pipeOnDrainFunctionResult() {\n    const state = src._readableState\n\n    // `ondrain` will call directly,\n    // `this` maybe not a reference to dest,\n    // so we use the real dest here.\n    if (state.awaitDrainWriters === dest) {\n      debug('pipeOnDrain', 1)\n      state.awaitDrainWriters = null\n    } else if (state.multiAwaitDrain) {\n      debug('pipeOnDrain', state.awaitDrainWriters.size)\n      state.awaitDrainWriters.delete(dest)\n    }\n    if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n      src.resume()\n    }\n  }\n}\nReadable.prototype.unpipe = function (dest) {\n  const state = this._readableState\n  const unpipeInfo = {\n    hasUnpiped: false\n  }\n\n  // If we're not piping anywhere, then do nothing.\n  if (state.pipes.length === 0) return this\n  if (!dest) {\n    // remove all.\n    const dests = state.pipes\n    state.pipes = []\n    this.pause()\n    for (let i = 0; i < dests.length; i++)\n      dests[i].emit('unpipe', this, {\n        hasUnpiped: false\n      })\n    return this\n  }\n\n  // Try to find the right one.\n  const index = ArrayPrototypeIndexOf(state.pipes, dest)\n  if (index === -1) return this\n  state.pipes.splice(index, 1)\n  if (state.pipes.length === 0) this.pause()\n  dest.emit('unpipe', this, unpipeInfo)\n  return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n  const res = Stream.prototype.on.call(this, ev, fn)\n  const state = this._readableState\n  if (ev === 'data') {\n    // Update readableListening so that resume() may be a no-op\n    // a few lines down. This is needed to support once('readable').\n    state.readableListening = this.listenerCount('readable') > 0\n\n    // Try start flowing on next tick if stream isn't explicitly paused.\n    if (state.flowing !== false) this.resume()\n  } else if (ev === 'readable') {\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true\n      state.flowing = false\n      state.emittedReadable = false\n      debug('on readable', state.length, state.reading)\n      if (state.length) {\n        emitReadable(this)\n      } else if (!state.reading) {\n        process.nextTick(nReadingNextTick, this)\n      }\n    }\n  }\n  return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n  const res = Stream.prototype.removeListener.call(this, ev, fn)\n  if (ev === 'readable') {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this)\n  }\n  return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n  const res = Stream.prototype.removeAllListeners.apply(this, arguments)\n  if (ev === 'readable' || ev === undefined) {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this)\n  }\n  return res\n}\nfunction updateReadableListening(self) {\n  const state = self._readableState\n  state.readableListening = self.listenerCount('readable') > 0\n  if (state.resumeScheduled && state[kPaused] === false) {\n    // Flowing needs to be set to true now, otherwise\n    // the upcoming resume will not flow.\n    state.flowing = true\n\n    // Crude way to check if we should resume.\n  } else if (self.listenerCount('data') > 0) {\n    self.resume()\n  } else if (!state.readableListening) {\n    state.flowing = null\n  }\n}\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0')\n  self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n  const state = this._readableState\n  if (!state.flowing) {\n    debug('resume')\n    // We flow only if there is no one listening\n    // for readable, but we still have to call\n    // resume().\n    state.flowing = !state.readableListening\n    resume(this, state)\n  }\n  state[kPaused] = false\n  return this\n}\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true\n    process.nextTick(resume_, stream, state)\n  }\n}\nfunction resume_(stream, state) {\n  debug('resume', state.reading)\n  if (!state.reading) {\n    stream.read(0)\n  }\n  state.resumeScheduled = false\n  stream.emit('resume')\n  flow(stream)\n  if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing)\n  if (this._readableState.flowing !== false) {\n    debug('pause')\n    this._readableState.flowing = false\n    this.emit('pause')\n  }\n  this._readableState[kPaused] = true\n  return this\n}\nfunction flow(stream) {\n  const state = stream._readableState\n  debug('flow', state.flowing)\n  while (state.flowing && stream.read() !== null);\n}\n\n// Wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n  let paused = false\n\n  // TODO (ronag): Should this.destroy(err) emit\n  // 'error' on the wrapped stream? Would require\n  // a static factory method, e.g. Readable.wrap(stream).\n\n  stream.on('data', (chunk) => {\n    if (!this.push(chunk) && stream.pause) {\n      paused = true\n      stream.pause()\n    }\n  })\n  stream.on('end', () => {\n    this.push(null)\n  })\n  stream.on('error', (err) => {\n    errorOrDestroy(this, err)\n  })\n  stream.on('close', () => {\n    this.destroy()\n  })\n  stream.on('destroy', () => {\n    this.destroy()\n  })\n  this._read = () => {\n    if (paused && stream.resume) {\n      paused = false\n      stream.resume()\n    }\n  }\n\n  // Proxy all the other methods. Important when wrapping filters and duplexes.\n  const streamKeys = ObjectKeys(stream)\n  for (let j = 1; j < streamKeys.length; j++) {\n    const i = streamKeys[j]\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = stream[i].bind(stream)\n    }\n  }\n  return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n  return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n  if (options !== undefined) {\n    validateObject(options, 'options')\n  }\n  return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n  if (typeof stream.read !== 'function') {\n    stream = Readable.wrap(stream, {\n      objectMode: true\n    })\n  }\n  const iter = createAsyncIterator(stream, options)\n  iter.stream = stream\n  return iter\n}\nasync function* createAsyncIterator(stream, options) {\n  let callback = nop\n  function next(resolve) {\n    if (this === stream) {\n      callback()\n      callback = nop\n    } else {\n      callback = resolve\n    }\n  }\n  stream.on('readable', next)\n  let error\n  const cleanup = eos(\n    stream,\n    {\n      writable: false\n    },\n    (err) => {\n      error = err ? aggregateTwoErrors(error, err) : null\n      callback()\n      callback = nop\n    }\n  )\n  try {\n    while (true) {\n      const chunk = stream.destroyed ? null : stream.read()\n      if (chunk !== null) {\n        yield chunk\n      } else if (error) {\n        throw error\n      } else if (error === null) {\n        return\n      } else {\n        await new Promise(next)\n      }\n    }\n  } catch (err) {\n    error = aggregateTwoErrors(error, err)\n    throw error\n  } finally {\n    if (\n      (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n      (error === undefined || stream._readableState.autoDestroy)\n    ) {\n      destroyImpl.destroyer(stream, null)\n    } else {\n      stream.off('readable', next)\n      cleanup()\n    }\n  }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n  readable: {\n    __proto__: null,\n    get() {\n      const r = this._readableState\n      // r.readable === false means that this is part of a Duplex stream\n      // where the readable side was disabled upon construction.\n      // Compat. The user might manually disable readable side through\n      // deprecated setter.\n      return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n    },\n    set(val) {\n      // Backwards compat.\n      if (this._readableState) {\n        this._readableState.readable = !!val\n      }\n    }\n  },\n  readableDidRead: {\n    __proto__: null,\n    enumerable: false,\n    get: function () {\n      return this._readableState.dataEmitted\n    }\n  },\n  readableAborted: {\n    __proto__: null,\n    enumerable: false,\n    get: function () {\n      return !!(\n        this._readableState.readable !== false &&\n        (this._readableState.destroyed || this._readableState.errored) &&\n        !this._readableState.endEmitted\n      )\n    }\n  },\n  readableHighWaterMark: {\n    __proto__: null,\n    enumerable: false,\n    get: function () {\n      return this._readableState.highWaterMark\n    }\n  },\n  readableBuffer: {\n    __proto__: null,\n    enumerable: false,\n    get: function () {\n      return this._readableState && this._readableState.buffer\n    }\n  },\n  readableFlowing: {\n    __proto__: null,\n    enumerable: false,\n    get: function () {\n      return this._readableState.flowing\n    },\n    set: function (state) {\n      if (this._readableState) {\n        this._readableState.flowing = state\n      }\n    }\n  },\n  readableLength: {\n    __proto__: null,\n    enumerable: false,\n    get() {\n      return this._readableState.length\n    }\n  },\n  readableObjectMode: {\n    __proto__: null,\n    enumerable: false,\n    get() {\n      return this._readableState ? this._readableState.objectMode : false\n    }\n  },\n  readableEncoding: {\n    __proto__: null,\n    enumerable: false,\n    get() {\n      return this._readableState ? this._readableState.encoding : null\n    }\n  },\n  errored: {\n    __proto__: null,\n    enumerable: false,\n    get() {\n      return this._readableState ? this._readableState.errored : null\n    }\n  },\n  closed: {\n    __proto__: null,\n    get() {\n      return this._readableState ? this._readableState.closed : false\n    }\n  },\n  destroyed: {\n    __proto__: null,\n    enumerable: false,\n    get() {\n      return this._readableState ? this._readableState.destroyed : false\n    },\n    set(value) {\n      // We ignore the value if the stream\n      // has not been initialized yet.\n      if (!this._readableState) {\n        return\n      }\n\n      // Backward compatibility, the user is explicitly\n      // managing destroyed.\n      this._readableState.destroyed = value\n    }\n  },\n  readableEnded: {\n    __proto__: null,\n    enumerable: false,\n    get() {\n      return this._readableState ? this._readableState.endEmitted : false\n    }\n  }\n})\nObjectDefineProperties(ReadableState.prototype, {\n  // Legacy getter for `pipesCount`.\n  pipesCount: {\n    __proto__: null,\n    get() {\n      return this.pipes.length\n    }\n  },\n  // Legacy property for `paused`.\n  paused: {\n    __proto__: null,\n    get() {\n      return this[kPaused] !== false\n    },\n    set(value) {\n      this[kPaused] = !!value\n    }\n  }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n  // nothing buffered.\n  if (state.length === 0) return null\n  let ret\n  if (state.objectMode) ret = state.buffer.shift()\n  else if (!n || n >= state.length) {\n    // Read it all, truncate the list.\n    if (state.decoder) ret = state.buffer.join('')\n    else if (state.buffer.length === 1) ret = state.buffer.first()\n    else ret = state.buffer.concat(state.length)\n    state.buffer.clear()\n  } else {\n    // read part of list.\n    ret = state.buffer.consume(n, state.decoder)\n  }\n  return ret\n}\nfunction endReadable(stream) {\n  const state = stream._readableState\n  debug('endReadable', state.endEmitted)\n  if (!state.endEmitted) {\n    state.ended = true\n    process.nextTick(endReadableNT, state, stream)\n  }\n}\nfunction endReadableNT(state, stream) {\n  debug('endReadableNT', state.endEmitted, state.length)\n\n  // Check that we didn't get one last unshift.\n  if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n    state.endEmitted = true\n    stream.emit('end')\n    if (stream.writable && stream.allowHalfOpen === false) {\n      process.nextTick(endWritableNT, stream)\n    } else if (state.autoDestroy) {\n      // In case of duplex streams we need a way to detect\n      // if the writable side is ready for autoDestroy as well.\n      const wState = stream._writableState\n      const autoDestroy =\n        !wState ||\n        (wState.autoDestroy &&\n          // We don't expect the writable to ever 'finish'\n          // if writable is explicitly set to false.\n          (wState.finished || wState.writable === false))\n      if (autoDestroy) {\n        stream.destroy()\n      }\n    }\n  }\n}\nfunction endWritableNT(stream) {\n  const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n  if (writable) {\n    stream.end()\n  }\n}\nReadable.from = function (iterable, opts) {\n  return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n  if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n  return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n  return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n  return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n  var _ref, _src$readableObjectMo\n  return new Readable({\n    objectMode:\n      (_ref =\n        (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n          ? _src$readableObjectMo\n          : src.objectMode) !== null && _ref !== undefined\n        ? _ref\n        : true,\n    ...options,\n    destroy(err, callback) {\n      destroyImpl.destroyer(src, err)\n      callback(err)\n    }\n  }).wrap(src)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n;('use strict')\nconst {\n  ArrayPrototypeSlice,\n  Error,\n  FunctionPrototypeSymbolHasInstance,\n  ObjectDefineProperty,\n  ObjectDefineProperties,\n  ObjectSetPrototypeOf,\n  StringPrototypeToLowerCase,\n  Symbol,\n  SymbolHasInstance\n} = require('../../ours/primordials')\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = require('events')\nconst Stream = require('./legacy').Stream\nconst { Buffer } = require('buffer')\nconst destroyImpl = require('./destroy')\nconst { addAbortSignal } = require('./add-abort-signal')\nconst { getHighWaterMark, getDefaultHighWaterMark } = require('./state')\nconst {\n  ERR_INVALID_ARG_TYPE,\n  ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK,\n  ERR_STREAM_CANNOT_PIPE,\n  ERR_STREAM_DESTROYED,\n  ERR_STREAM_ALREADY_FINISHED,\n  ERR_STREAM_NULL_VALUES,\n  ERR_STREAM_WRITE_AFTER_END,\n  ERR_UNKNOWN_ENCODING\n} = require('../../ours/errors').codes\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream,\n  // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof require('./duplex')\n\n  // Object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n  this.objectMode = !!(options && options.objectMode)\n  if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n  // The point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write().\n  this.highWaterMark = options\n    ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n    : getDefaultHighWaterMark(false)\n\n  // if _final has been called.\n  this.finalCalled = false\n\n  // drain event flag.\n  this.needDrain = false\n  // At the start of calling end()\n  this.ending = false\n  // When end() has been called, and returned.\n  this.ended = false\n  // When 'finish' is emitted.\n  this.finished = false\n\n  // Has it been destroyed\n  this.destroyed = false\n\n  // Should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n  const noDecode = !!(options && options.decodeStrings === false)\n  this.decodeStrings = !noDecode\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n  // Not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n  this.length = 0\n\n  // A flag to see when we're in the middle of a write.\n  this.writing = false\n\n  // When true all writes will be buffered until .uncork() call.\n  this.corked = 0\n\n  // A flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n  this.sync = true\n\n  // A flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n  this.bufferProcessing = false\n\n  // The callback that's passed to _write(chunk, cb).\n  this.onwrite = onwrite.bind(undefined, stream)\n\n  // The callback that the user supplies to write(chunk, encoding, cb).\n  this.writecb = null\n\n  // The amount that is being written when _write is called.\n  this.writelen = 0\n\n  // Storage for data passed to the afterWrite() callback in case of\n  // synchronous _write() completion.\n  this.afterWriteTickInfo = null\n  resetBuffer(this)\n\n  // Number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted.\n  this.pendingcb = 0\n\n  // Stream is still being constructed and cannot be\n  // destroyed until construction finished or failed.\n  // Async construction is opt in, therefore we start as\n  // constructed.\n  this.constructed = true\n\n  // Emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams.\n  this.prefinished = false\n\n  // True if the error was already emitted and should not be thrown again.\n  this.errorEmitted = false\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = !options || options.emitClose !== false\n\n  // Should .destroy() be called after 'finish' (and potentially 'end').\n  this.autoDestroy = !options || options.autoDestroy !== false\n\n  // Indicates whether the stream has errored. When true all write() calls\n  // should return false. This is needed since when autoDestroy\n  // is disabled we need a way to tell whether the stream has failed.\n  this.errored = null\n\n  // Indicates whether the stream has finished destroying.\n  this.closed = false\n\n  // True if close has been emitted or would have been emitted\n  // depending on emitClose.\n  this.closeEmitted = false\n  this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n  state.buffered = []\n  state.bufferedIndex = 0\n  state.allBuffers = true\n  state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n  return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n  __proto__: null,\n  get() {\n    return this.buffered.length - this.bufferedIndex\n  }\n})\nfunction Writable(options) {\n  // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the WritableState constructor, at least with V8 6.5.\n  const isDuplex = this instanceof require('./duplex')\n  if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n  this._writableState = new WritableState(options, this, isDuplex)\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write\n    if (typeof options.writev === 'function') this._writev = options.writev\n    if (typeof options.destroy === 'function') this._destroy = options.destroy\n    if (typeof options.final === 'function') this._final = options.final\n    if (typeof options.construct === 'function') this._construct = options.construct\n    if (options.signal) addAbortSignal(options.signal, this)\n  }\n  Stream.call(this, options)\n  destroyImpl.construct(this, () => {\n    const state = this._writableState\n    if (!state.writing) {\n      clearBuffer(this, state)\n    }\n    finishMaybe(this, state)\n  })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n  __proto__: null,\n  value: function (object) {\n    if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n    if (this !== Writable) return false\n    return object && object._writableState instanceof WritableState\n  }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n  errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n  const state = stream._writableState\n  if (typeof encoding === 'function') {\n    cb = encoding\n    encoding = state.defaultEncoding\n  } else {\n    if (!encoding) encoding = state.defaultEncoding\n    else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n    if (typeof cb !== 'function') cb = nop\n  }\n  if (chunk === null) {\n    throw new ERR_STREAM_NULL_VALUES()\n  } else if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      if (state.decodeStrings !== false) {\n        chunk = Buffer.from(chunk, encoding)\n        encoding = 'buffer'\n      }\n    } else if (chunk instanceof Buffer) {\n      encoding = 'buffer'\n    } else if (Stream._isUint8Array(chunk)) {\n      chunk = Stream._uint8ArrayToBuffer(chunk)\n      encoding = 'buffer'\n    } else {\n      throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n    }\n  }\n  let err\n  if (state.ending) {\n    err = new ERR_STREAM_WRITE_AFTER_END()\n  } else if (state.destroyed) {\n    err = new ERR_STREAM_DESTROYED('write')\n  }\n  if (err) {\n    process.nextTick(cb, err)\n    errorOrDestroy(stream, err, true)\n    return err\n  }\n  state.pendingcb++\n  return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n  return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n  this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n  const state = this._writableState\n  if (state.corked) {\n    state.corked--\n    if (!state.writing) clearBuffer(this, state)\n  }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n  if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n  this._writableState.defaultEncoding = encoding\n  return this\n}\n\n// If we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n  const len = state.objectMode ? 1 : chunk.length\n  state.length += len\n\n  // stream._write resets state.length\n  const ret = state.length < state.highWaterMark\n  // We must ensure that previous needDrain will not be reset to false.\n  if (!ret) state.needDrain = true\n  if (state.writing || state.corked || state.errored || !state.constructed) {\n    state.buffered.push({\n      chunk,\n      encoding,\n      callback\n    })\n    if (state.allBuffers && encoding !== 'buffer') {\n      state.allBuffers = false\n    }\n    if (state.allNoop && callback !== nop) {\n      state.allNoop = false\n    }\n  } else {\n    state.writelen = len\n    state.writecb = callback\n    state.writing = true\n    state.sync = true\n    stream._write(chunk, encoding, state.onwrite)\n    state.sync = false\n  }\n\n  // Return false if errored or destroyed in order to break\n  // any synchronous while(stream.write(data)) loops.\n  return ret && !state.errored && !state.destroyed\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len\n  state.writecb = cb\n  state.writing = true\n  state.sync = true\n  if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'))\n  else if (writev) stream._writev(chunk, state.onwrite)\n  else stream._write(chunk, encoding, state.onwrite)\n  state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n  --state.pendingcb\n  cb(er)\n  // Ensure callbacks are invoked even when autoDestroy is\n  // not enabled. Passing `er` here doesn't make sense since\n  // it's related to one specific write, not to the buffered\n  // writes.\n  errorBuffer(state)\n  // This can emit error, but error must always follow cb.\n  errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n  const state = stream._writableState\n  const sync = state.sync\n  const cb = state.writecb\n  if (typeof cb !== 'function') {\n    errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n    return\n  }\n  state.writing = false\n  state.writecb = null\n  state.length -= state.writelen\n  state.writelen = 0\n  if (er) {\n    // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n    er.stack // eslint-disable-line no-unused-expressions\n\n    if (!state.errored) {\n      state.errored = er\n    }\n\n    // In case of duplex streams we need to notify the readable side of the\n    // error.\n    if (stream._readableState && !stream._readableState.errored) {\n      stream._readableState.errored = er\n    }\n    if (sync) {\n      process.nextTick(onwriteError, stream, state, er, cb)\n    } else {\n      onwriteError(stream, state, er, cb)\n    }\n  } else {\n    if (state.buffered.length > state.bufferedIndex) {\n      clearBuffer(stream, state)\n    }\n    if (sync) {\n      // It is a common case that the callback passed to .write() is always\n      // the same. In that case, we do not schedule a new nextTick(), but\n      // rather just increase a counter, to improve performance and avoid\n      // memory allocations.\n      if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n        state.afterWriteTickInfo.count++\n      } else {\n        state.afterWriteTickInfo = {\n          count: 1,\n          cb,\n          stream,\n          state\n        }\n        process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n      }\n    } else {\n      afterWrite(stream, state, 1, cb)\n    }\n  }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n  state.afterWriteTickInfo = null\n  return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n  const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n  if (needDrain) {\n    state.needDrain = false\n    stream.emit('drain')\n  }\n  while (count-- > 0) {\n    state.pendingcb--\n    cb()\n  }\n  if (state.destroyed) {\n    errorBuffer(state)\n  }\n  finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n  if (state.writing) {\n    return\n  }\n  for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n    var _state$errored\n    const { chunk, callback } = state.buffered[n]\n    const len = state.objectMode ? 1 : chunk.length\n    state.length -= len\n    callback(\n      (_state$errored = state.errored) !== null && _state$errored !== undefined\n        ? _state$errored\n        : new ERR_STREAM_DESTROYED('write')\n    )\n  }\n  const onfinishCallbacks = state[kOnFinished].splice(0)\n  for (let i = 0; i < onfinishCallbacks.length; i++) {\n    var _state$errored2\n    onfinishCallbacks[i](\n      (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n        ? _state$errored2\n        : new ERR_STREAM_DESTROYED('end')\n    )\n  }\n  resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n  if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n    return\n  }\n  const { buffered, bufferedIndex, objectMode } = state\n  const bufferedLength = buffered.length - bufferedIndex\n  if (!bufferedLength) {\n    return\n  }\n  let i = bufferedIndex\n  state.bufferProcessing = true\n  if (bufferedLength > 1 && stream._writev) {\n    state.pendingcb -= bufferedLength - 1\n    const callback = state.allNoop\n      ? nop\n      : (err) => {\n          for (let n = i; n < buffered.length; ++n) {\n            buffered[n].callback(err)\n          }\n        }\n    // Make a copy of `buffered` if it's going to be used by `callback` above,\n    // since `doWrite` will mutate the array.\n    const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n    chunks.allBuffers = state.allBuffers\n    doWrite(stream, state, true, state.length, chunks, '', callback)\n    resetBuffer(state)\n  } else {\n    do {\n      const { chunk, encoding, callback } = buffered[i]\n      buffered[i++] = null\n      const len = objectMode ? 1 : chunk.length\n      doWrite(stream, state, false, len, chunk, encoding, callback)\n    } while (i < buffered.length && !state.writing)\n    if (i === buffered.length) {\n      resetBuffer(state)\n    } else if (i > 256) {\n      buffered.splice(0, i)\n      state.bufferedIndex = 0\n    } else {\n      state.bufferedIndex = i\n    }\n  }\n  state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n  if (this._writev) {\n    this._writev(\n      [\n        {\n          chunk,\n          encoding\n        }\n      ],\n      cb\n    )\n  } else {\n    throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n  }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n  const state = this._writableState\n  if (typeof chunk === 'function') {\n    cb = chunk\n    chunk = null\n    encoding = null\n  } else if (typeof encoding === 'function') {\n    cb = encoding\n    encoding = null\n  }\n  let err\n  if (chunk !== null && chunk !== undefined) {\n    const ret = _write(this, chunk, encoding)\n    if (ret instanceof Error) {\n      err = ret\n    }\n  }\n\n  // .end() fully uncorks.\n  if (state.corked) {\n    state.corked = 1\n    this.uncork()\n  }\n  if (err) {\n    // Do nothing...\n  } else if (!state.errored && !state.ending) {\n    // This is forgiving in terms of unnecessary calls to end() and can hide\n    // logic errors. However, usually such errors are harmless and causing a\n    // hard error can be disproportionately destructive. It is not always\n    // trivial for the user to determine whether end() needs to be called\n    // or not.\n\n    state.ending = true\n    finishMaybe(this, state, true)\n    state.ended = true\n  } else if (state.finished) {\n    err = new ERR_STREAM_ALREADY_FINISHED('end')\n  } else if (state.destroyed) {\n    err = new ERR_STREAM_DESTROYED('end')\n  }\n  if (typeof cb === 'function') {\n    if (err || state.finished) {\n      process.nextTick(cb, err)\n    } else {\n      state[kOnFinished].push(cb)\n    }\n  }\n  return this\n}\nfunction needFinish(state) {\n  return (\n    state.ending &&\n    !state.destroyed &&\n    state.constructed &&\n    state.length === 0 &&\n    !state.errored &&\n    state.buffered.length === 0 &&\n    !state.finished &&\n    !state.writing &&\n    !state.errorEmitted &&\n    !state.closeEmitted\n  )\n}\nfunction callFinal(stream, state) {\n  let called = false\n  function onFinish(err) {\n    if (called) {\n      errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n      return\n    }\n    called = true\n    state.pendingcb--\n    if (err) {\n      const onfinishCallbacks = state[kOnFinished].splice(0)\n      for (let i = 0; i < onfinishCallbacks.length; i++) {\n        onfinishCallbacks[i](err)\n      }\n      errorOrDestroy(stream, err, state.sync)\n    } else if (needFinish(state)) {\n      state.prefinished = true\n      stream.emit('prefinish')\n      // Backwards compat. Don't check state.sync here.\n      // Some streams assume 'finish' will be emitted\n      // asynchronously relative to _final callback.\n      state.pendingcb++\n      process.nextTick(finish, stream, state)\n    }\n  }\n  state.sync = true\n  state.pendingcb++\n  try {\n    stream._final(onFinish)\n  } catch (err) {\n    onFinish(err)\n  }\n  state.sync = false\n}\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function' && !state.destroyed) {\n      state.finalCalled = true\n      callFinal(stream, state)\n    } else {\n      state.prefinished = true\n      stream.emit('prefinish')\n    }\n  }\n}\nfunction finishMaybe(stream, state, sync) {\n  if (needFinish(state)) {\n    prefinish(stream, state)\n    if (state.pendingcb === 0) {\n      if (sync) {\n        state.pendingcb++\n        process.nextTick(\n          (stream, state) => {\n            if (needFinish(state)) {\n              finish(stream, state)\n            } else {\n              state.pendingcb--\n            }\n          },\n          stream,\n          state\n        )\n      } else if (needFinish(state)) {\n        state.pendingcb++\n        finish(stream, state)\n      }\n    }\n  }\n}\nfunction finish(stream, state) {\n  state.pendingcb--\n  state.finished = true\n  const onfinishCallbacks = state[kOnFinished].splice(0)\n  for (let i = 0; i < onfinishCallbacks.length; i++) {\n    onfinishCallbacks[i]()\n  }\n  stream.emit('finish')\n  if (state.autoDestroy) {\n    // In case of duplex streams we need a way to detect\n    // if the readable side is ready for autoDestroy as well.\n    const rState = stream._readableState\n    const autoDestroy =\n      !rState ||\n      (rState.autoDestroy &&\n        // We don't expect the readable to ever 'end'\n        // if readable is explicitly set to false.\n        (rState.endEmitted || rState.readable === false))\n    if (autoDestroy) {\n      stream.destroy()\n    }\n  }\n}\nObjectDefineProperties(Writable.prototype, {\n  closed: {\n    __proto__: null,\n    get() {\n      return this._writableState ? this._writableState.closed : false\n    }\n  },\n  destroyed: {\n    __proto__: null,\n    get() {\n      return this._writableState ? this._writableState.destroyed : false\n    },\n    set(value) {\n      // Backward compatibility, the user is explicitly managing destroyed.\n      if (this._writableState) {\n        this._writableState.destroyed = value\n      }\n    }\n  },\n  writable: {\n    __proto__: null,\n    get() {\n      const w = this._writableState\n      // w.writable === false means that this is part of a Duplex stream\n      // where the writable side was disabled upon construction.\n      // Compat. The user might manually disable writable side through\n      // deprecated setter.\n      return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n    },\n    set(val) {\n      // Backwards compatible.\n      if (this._writableState) {\n        this._writableState.writable = !!val\n      }\n    }\n  },\n  writableFinished: {\n    __proto__: null,\n    get() {\n      return this._writableState ? this._writableState.finished : false\n    }\n  },\n  writableObjectMode: {\n    __proto__: null,\n    get() {\n      return this._writableState ? this._writableState.objectMode : false\n    }\n  },\n  writableBuffer: {\n    __proto__: null,\n    get() {\n      return this._writableState && this._writableState.getBuffer()\n    }\n  },\n  writableEnded: {\n    __proto__: null,\n    get() {\n      return this._writableState ? this._writableState.ending : false\n    }\n  },\n  writableNeedDrain: {\n    __proto__: null,\n    get() {\n      const wState = this._writableState\n      if (!wState) return false\n      return !wState.destroyed && !wState.ending && wState.needDrain\n    }\n  },\n  writableHighWaterMark: {\n    __proto__: null,\n    get() {\n      return this._writableState && this._writableState.highWaterMark\n    }\n  },\n  writableCorked: {\n    __proto__: null,\n    get() {\n      return this._writableState ? this._writableState.corked : 0\n    }\n  },\n  writableLength: {\n    __proto__: null,\n    get() {\n      return this._writableState && this._writableState.length\n    }\n  },\n  errored: {\n    __proto__: null,\n    enumerable: false,\n    get() {\n      return this._writableState ? this._writableState.errored : null\n    }\n  },\n  writableAborted: {\n    __proto__: null,\n    enumerable: false,\n    get: function () {\n      return !!(\n        this._writableState.writable !== false &&\n        (this._writableState.destroyed || this._writableState.errored) &&\n        !this._writableState.finished\n      )\n    }\n  }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n  const state = this._writableState\n\n  // Invoke pending callbacks.\n  if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n    process.nextTick(errorBuffer, state)\n  }\n  destroy.call(this, err, cb)\n  return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n  cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n  this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n  if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n  return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n  return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n  return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = require('buffer')\nconst {\n  isReadable,\n  isWritable,\n  isIterable,\n  isNodeStream,\n  isReadableNodeStream,\n  isWritableNodeStream,\n  isDuplexNodeStream,\n  isReadableStream,\n  isWritableStream\n} = require('./utils')\nconst eos = require('./end-of-stream')\nconst {\n  AbortError,\n  codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = require('../../ours/errors')\nconst { destroyer } = require('./destroy')\nconst Duplex = require('./duplex')\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nconst { createDeferredPromise } = require('../../ours/util')\nconst from = require('./from')\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n  typeof Blob !== 'undefined'\n    ? function isBlob(b) {\n        return b instanceof Blob\n      }\n    : function isBlob(b) {\n        return false\n      }\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst { FunctionPrototypeCall } = require('../../ours/primordials')\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n  constructor(options) {\n    super(options)\n\n    // https://github.com/nodejs/node/pull/34385\n\n    if ((options === null || options === undefined ? undefined : options.readable) === false) {\n      this._readableState.readable = false\n      this._readableState.ended = true\n      this._readableState.endEmitted = true\n    }\n    if ((options === null || options === undefined ? undefined : options.writable) === false) {\n      this._writableState.writable = false\n      this._writableState.ending = true\n      this._writableState.ended = true\n      this._writableState.finished = true\n    }\n  }\n}\nmodule.exports = function duplexify(body, name) {\n  if (isDuplexNodeStream(body)) {\n    return body\n  }\n  if (isReadableNodeStream(body)) {\n    return _duplexify({\n      readable: body\n    })\n  }\n  if (isWritableNodeStream(body)) {\n    return _duplexify({\n      writable: body\n    })\n  }\n  if (isNodeStream(body)) {\n    return _duplexify({\n      writable: false,\n      readable: false\n    })\n  }\n  if (isReadableStream(body)) {\n    return _duplexify({\n      readable: Readable.fromWeb(body)\n    })\n  }\n  if (isWritableStream(body)) {\n    return _duplexify({\n      writable: Writable.fromWeb(body)\n    })\n  }\n  if (typeof body === 'function') {\n    const { value, write, final, destroy } = fromAsyncGen(body)\n    if (isIterable(value)) {\n      return from(Duplexify, value, {\n        // TODO (ronag): highWaterMark?\n        objectMode: true,\n        write,\n        final,\n        destroy\n      })\n    }\n    const then = value === null || value === undefined ? undefined : value.then\n    if (typeof then === 'function') {\n      let d\n      const promise = FunctionPrototypeCall(\n        then,\n        value,\n        (val) => {\n          if (val != null) {\n            throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n          }\n        },\n        (err) => {\n          destroyer(d, err)\n        }\n      )\n      return (d = new Duplexify({\n        // TODO (ronag): highWaterMark?\n        objectMode: true,\n        readable: false,\n        write,\n        final(cb) {\n          final(async () => {\n            try {\n              await promise\n              process.nextTick(cb, null)\n            } catch (err) {\n              process.nextTick(cb, err)\n            }\n          })\n        },\n        destroy\n      }))\n    }\n    throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n  }\n  if (isBlob(body)) {\n    return duplexify(body.arrayBuffer())\n  }\n  if (isIterable(body)) {\n    return from(Duplexify, body, {\n      // TODO (ronag): highWaterMark?\n      objectMode: true,\n      writable: false\n    })\n  }\n  if (\n    isReadableStream(body === null || body === undefined ? undefined : body.readable) &&\n    isWritableStream(body === null || body === undefined ? undefined : body.writable)\n  ) {\n    return Duplexify.fromWeb(body)\n  }\n  if (\n    typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n    typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n  ) {\n    const readable =\n      body !== null && body !== undefined && body.readable\n        ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n          ? body === null || body === undefined\n            ? undefined\n            : body.readable\n          : duplexify(body.readable)\n        : undefined\n    const writable =\n      body !== null && body !== undefined && body.writable\n        ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n          ? body === null || body === undefined\n            ? undefined\n            : body.writable\n          : duplexify(body.writable)\n        : undefined\n    return _duplexify({\n      readable,\n      writable\n    })\n  }\n  const then = body === null || body === undefined ? undefined : body.then\n  if (typeof then === 'function') {\n    let d\n    FunctionPrototypeCall(\n      then,\n      body,\n      (val) => {\n        if (val != null) {\n          d.push(val)\n        }\n        d.push(null)\n      },\n      (err) => {\n        destroyer(d, err)\n      }\n    )\n    return (d = new Duplexify({\n      objectMode: true,\n      writable: false,\n      read() {}\n    }))\n  }\n  throw new ERR_INVALID_ARG_TYPE(\n    name,\n    [\n      'Blob',\n      'ReadableStream',\n      'WritableStream',\n      'Stream',\n      'Iterable',\n      'AsyncIterable',\n      'Function',\n      '{ readable, writable } pair',\n      'Promise'\n    ],\n    body\n  )\n}\nfunction fromAsyncGen(fn) {\n  let { promise, resolve } = createDeferredPromise()\n  const ac = new AbortController()\n  const signal = ac.signal\n  const value = fn(\n    (async function* () {\n      while (true) {\n        const _promise = promise\n        promise = null\n        const { chunk, done, cb } = await _promise\n        process.nextTick(cb)\n        if (done) return\n        if (signal.aborted)\n          throw new AbortError(undefined, {\n            cause: signal.reason\n          })\n        ;({ promise, resolve } = createDeferredPromise())\n        yield chunk\n      }\n    })(),\n    {\n      signal\n    }\n  )\n  return {\n    value,\n    write(chunk, encoding, cb) {\n      const _resolve = resolve\n      resolve = null\n      _resolve({\n        chunk,\n        done: false,\n        cb\n      })\n    },\n    final(cb) {\n      const _resolve = resolve\n      resolve = null\n      _resolve({\n        done: true,\n        cb\n      })\n    },\n    destroy(err, cb) {\n      ac.abort()\n      cb(err)\n    }\n  }\n}\nfunction _duplexify(pair) {\n  const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n  const w = pair.writable\n  let readable = !!isReadable(r)\n  let writable = !!isWritable(w)\n  let ondrain\n  let onfinish\n  let onreadable\n  let onclose\n  let d\n  function onfinished(err) {\n    const cb = onclose\n    onclose = null\n    if (cb) {\n      cb(err)\n    } else if (err) {\n      d.destroy(err)\n    }\n  }\n\n  // TODO(ronag): Avoid double buffering.\n  // Implement Writable/Readable/Duplex traits.\n  // See, https://github.com/nodejs/node/pull/33515.\n  d = new Duplexify({\n    // TODO (ronag): highWaterMark?\n    readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n    writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n    readable,\n    writable\n  })\n  if (writable) {\n    eos(w, (err) => {\n      writable = false\n      if (err) {\n        destroyer(r, err)\n      }\n      onfinished(err)\n    })\n    d._write = function (chunk, encoding, callback) {\n      if (w.write(chunk, encoding)) {\n        callback()\n      } else {\n        ondrain = callback\n      }\n    }\n    d._final = function (callback) {\n      w.end()\n      onfinish = callback\n    }\n    w.on('drain', function () {\n      if (ondrain) {\n        const cb = ondrain\n        ondrain = null\n        cb()\n      }\n    })\n    w.on('finish', function () {\n      if (onfinish) {\n        const cb = onfinish\n        onfinish = null\n        cb()\n      }\n    })\n  }\n  if (readable) {\n    eos(r, (err) => {\n      readable = false\n      if (err) {\n        destroyer(r, err)\n      }\n      onfinished(err)\n    })\n    r.on('readable', function () {\n      if (onreadable) {\n        const cb = onreadable\n        onreadable = null\n        cb()\n      }\n    })\n    r.on('end', function () {\n      d.push(null)\n    })\n    d._read = function () {\n      while (true) {\n        const buf = r.read()\n        if (buf === null) {\n          onreadable = d._read\n          return\n        }\n        if (!d.push(buf)) {\n          return\n        }\n      }\n    }\n  }\n  d._destroy = function (err, callback) {\n    if (!err && onclose !== null) {\n      err = new AbortError()\n    }\n    onreadable = null\n    ondrain = null\n    onfinish = null\n    if (onclose === null) {\n      callback(err)\n    } else {\n      onclose = callback\n      destroyer(w, err)\n      destroyer(r, err)\n    }\n  }\n  return d\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict'\n\nconst {\n  ObjectDefineProperties,\n  ObjectGetOwnPropertyDescriptor,\n  ObjectKeys,\n  ObjectSetPrototypeOf\n} = require('../../ours/primordials')\nmodule.exports = Duplex\nconst Readable = require('./readable')\nconst Writable = require('./writable')\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n  const keys = ObjectKeys(Writable.prototype)\n  // Allow the keys array to be GC'ed.\n  for (let i = 0; i < keys.length; i++) {\n    const method = keys[i]\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\n  }\n}\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options)\n  Readable.call(this, options)\n  Writable.call(this, options)\n  if (options) {\n    this.allowHalfOpen = options.allowHalfOpen !== false\n    if (options.readable === false) {\n      this._readableState.readable = false\n      this._readableState.ended = true\n      this._readableState.endEmitted = true\n    }\n    if (options.writable === false) {\n      this._writableState.writable = false\n      this._writableState.ending = true\n      this._writableState.ended = true\n      this._writableState.finished = true\n    }\n  } else {\n    this.allowHalfOpen = true\n  }\n}\nObjectDefineProperties(Duplex.prototype, {\n  writable: {\n    __proto__: null,\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n  },\n  writableHighWaterMark: {\n    __proto__: null,\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n  },\n  writableObjectMode: {\n    __proto__: null,\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n  },\n  writableBuffer: {\n    __proto__: null,\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n  },\n  writableLength: {\n    __proto__: null,\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n  },\n  writableFinished: {\n    __proto__: null,\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n  },\n  writableCorked: {\n    __proto__: null,\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n  },\n  writableEnded: {\n    __proto__: null,\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n  },\n  writableNeedDrain: {\n    __proto__: null,\n    ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n  },\n  destroyed: {\n    __proto__: null,\n    get() {\n      if (this._readableState === undefined || this._writableState === undefined) {\n        return false\n      }\n      return this._readableState.destroyed && this._writableState.destroyed\n    },\n    set(value) {\n      // Backward compatibility, the user is explicitly\n      // managing destroyed.\n      if (this._readableState && this._writableState) {\n        this._readableState.destroyed = value\n        this._writableState.destroyed = value\n      }\n    }\n  }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n  if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n  return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n  return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n  return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n  if (!duplexify) {\n    duplexify = require('./duplexify')\n  }\n  return duplexify(body, 'body')\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf, Symbol } = require('../../ours/primordials')\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = require('../../ours/errors').codes\nconst Duplex = require('./duplex')\nconst { getHighWaterMark } = require('./state')\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options)\n\n  // TODO (ronag): This should preferably always be\n  // applied but would be semver-major. Or even better;\n  // make Transform a Readable with the Writable interface.\n  const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n  if (readableHighWaterMark === 0) {\n    // A Duplex will buffer both on the writable and readable side while\n    // a Transform just wants to buffer hwm number of elements. To avoid\n    // buffering twice we disable buffering on the writable side.\n    options = {\n      ...options,\n      highWaterMark: null,\n      readableHighWaterMark,\n      // TODO (ronag): 0 is not optimal since we have\n      // a \"bug\" where we check needDrain before calling _write and not after.\n      // Refs: https://github.com/nodejs/node/pull/32887\n      // Refs: https://github.com/nodejs/node/pull/35941\n      writableHighWaterMark: options.writableHighWaterMark || 0\n    }\n  }\n  Duplex.call(this, options)\n\n  // We have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n  this._readableState.sync = false\n  this[kCallback] = null\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform\n    if (typeof options.flush === 'function') this._flush = options.flush\n  }\n\n  // When the writable side finishes, then flush out anything remaining.\n  // Backwards compat. Some Transform streams incorrectly implement _final\n  // instead of or in addition to _flush. By using 'prefinish' instead of\n  // implementing _final we continue supporting this unfortunate use case.\n  this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n  if (typeof this._flush === 'function' && !this.destroyed) {\n    this._flush((er, data) => {\n      if (er) {\n        if (cb) {\n          cb(er)\n        } else {\n          this.destroy(er)\n        }\n        return\n      }\n      if (data != null) {\n        this.push(data)\n      }\n      this.push(null)\n      if (cb) {\n        cb()\n      }\n    })\n  } else {\n    this.push(null)\n    if (cb) {\n      cb()\n    }\n  }\n}\nfunction prefinish() {\n  if (this._final !== final) {\n    final.call(this)\n  }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n  throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n  const rState = this._readableState\n  const wState = this._writableState\n  const length = rState.length\n  this._transform(chunk, encoding, (err, val) => {\n    if (err) {\n      callback(err)\n      return\n    }\n    if (val != null) {\n      this.push(val)\n    }\n    if (\n      wState.ended ||\n      // Backwards compat.\n      length === rState.length ||\n      // Backwards compat.\n      rState.length < rState.highWaterMark\n    ) {\n      callback()\n    } else {\n      this[kCallback] = callback\n    }\n  })\n}\nTransform.prototype._read = function () {\n  if (this[kCallback]) {\n    const callback = this[kCallback]\n    this[kCallback] = null\n    callback()\n  }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict'\n\nconst { ObjectSetPrototypeOf } = require('../../ours/primordials')\nmodule.exports = PassThrough\nconst Transform = require('./transform')\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options)\n  Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk)\n}\n","/* replacement start */\n\nconst process = require('process/')\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator, SymbolDispose } = require('../../ours/primordials')\nconst eos = require('./end-of-stream')\nconst { once } = require('../../ours/util')\nconst destroyImpl = require('./destroy')\nconst Duplex = require('./duplex')\nconst {\n  aggregateTwoErrors,\n  codes: {\n    ERR_INVALID_ARG_TYPE,\n    ERR_INVALID_RETURN_VALUE,\n    ERR_MISSING_ARGS,\n    ERR_STREAM_DESTROYED,\n    ERR_STREAM_PREMATURE_CLOSE\n  },\n  AbortError\n} = require('../../ours/errors')\nconst { validateFunction, validateAbortSignal } = require('../validators')\nconst {\n  isIterable,\n  isReadable,\n  isReadableNodeStream,\n  isNodeStream,\n  isTransformStream,\n  isWebStream,\n  isReadableStream,\n  isReadableFinished\n} = require('./utils')\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nlet PassThrough\nlet Readable\nlet addAbortListener\nfunction destroyer(stream, reading, writing) {\n  let finished = false\n  stream.on('close', () => {\n    finished = true\n  })\n  const cleanup = eos(\n    stream,\n    {\n      readable: reading,\n      writable: writing\n    },\n    (err) => {\n      finished = !err\n    }\n  )\n  return {\n    destroy: (err) => {\n      if (finished) return\n      finished = true\n      destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n    },\n    cleanup\n  }\n}\nfunction popCallback(streams) {\n  // Streams should never be an empty array. It should always contain at least\n  // a single stream. Therefore optimize for the average case instead of\n  // checking for length === 0 as well.\n  validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n  return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n  if (isIterable(val)) {\n    return val\n  } else if (isReadableNodeStream(val)) {\n    // Legacy streams are not Iterable.\n    return fromReadable(val)\n  }\n  throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n  if (!Readable) {\n    Readable = require('./readable')\n  }\n  yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n  let error\n  let onresolve = null\n  const resume = (err) => {\n    if (err) {\n      error = err\n    }\n    if (onresolve) {\n      const callback = onresolve\n      onresolve = null\n      callback()\n    }\n  }\n  const wait = () =>\n    new Promise((resolve, reject) => {\n      if (error) {\n        reject(error)\n      } else {\n        onresolve = () => {\n          if (error) {\n            reject(error)\n          } else {\n            resolve()\n          }\n        }\n      }\n    })\n  writable.on('drain', resume)\n  const cleanup = eos(\n    writable,\n    {\n      readable: false\n    },\n    resume\n  )\n  try {\n    if (writable.writableNeedDrain) {\n      await wait()\n    }\n    for await (const chunk of iterable) {\n      if (!writable.write(chunk)) {\n        await wait()\n      }\n    }\n    if (end) {\n      writable.end()\n      await wait()\n    }\n    finish()\n  } catch (err) {\n    finish(error !== err ? aggregateTwoErrors(error, err) : err)\n  } finally {\n    cleanup()\n    writable.off('drain', resume)\n  }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n  if (isTransformStream(writable)) {\n    writable = writable.writable\n  }\n  // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n  const writer = writable.getWriter()\n  try {\n    for await (const chunk of readable) {\n      await writer.ready\n      writer.write(chunk).catch(() => {})\n    }\n    await writer.ready\n    if (end) {\n      await writer.close()\n    }\n    finish()\n  } catch (err) {\n    try {\n      await writer.abort(err)\n      finish(err)\n    } catch (err) {\n      finish(err)\n    }\n  }\n}\nfunction pipeline(...streams) {\n  return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n  if (streams.length === 1 && ArrayIsArray(streams[0])) {\n    streams = streams[0]\n  }\n  if (streams.length < 2) {\n    throw new ERR_MISSING_ARGS('streams')\n  }\n  const ac = new AbortController()\n  const signal = ac.signal\n  const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n  // Need to cleanup event listeners if last stream is readable\n  // https://github.com/nodejs/node/issues/35452\n  const lastStreamCleanup = []\n  validateAbortSignal(outerSignal, 'options.signal')\n  function abort() {\n    finishImpl(new AbortError())\n  }\n  addAbortListener = addAbortListener || require('../../ours/util').addAbortListener\n  let disposable\n  if (outerSignal) {\n    disposable = addAbortListener(outerSignal, abort)\n  }\n  let error\n  let value\n  const destroys = []\n  let finishCount = 0\n  function finish(err) {\n    finishImpl(err, --finishCount === 0)\n  }\n  function finishImpl(err, final) {\n    var _disposable\n    if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n      error = err\n    }\n    if (!error && !final) {\n      return\n    }\n    while (destroys.length) {\n      destroys.shift()(error)\n    }\n    ;(_disposable = disposable) === null || _disposable === undefined ? undefined : _disposable[SymbolDispose]()\n    ac.abort()\n    if (final) {\n      if (!error) {\n        lastStreamCleanup.forEach((fn) => fn())\n      }\n      process.nextTick(callback, error, value)\n    }\n  }\n  let ret\n  for (let i = 0; i < streams.length; i++) {\n    const stream = streams[i]\n    const reading = i < streams.length - 1\n    const writing = i > 0\n    const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n    const isLastStream = i === streams.length - 1\n    if (isNodeStream(stream)) {\n      if (end) {\n        const { destroy, cleanup } = destroyer(stream, reading, writing)\n        destroys.push(destroy)\n        if (isReadable(stream) && isLastStream) {\n          lastStreamCleanup.push(cleanup)\n        }\n      }\n\n      // Catch stream errors that occur after pipe/pump has completed.\n      function onError(err) {\n        if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n          finish(err)\n        }\n      }\n      stream.on('error', onError)\n      if (isReadable(stream) && isLastStream) {\n        lastStreamCleanup.push(() => {\n          stream.removeListener('error', onError)\n        })\n      }\n    }\n    if (i === 0) {\n      if (typeof stream === 'function') {\n        ret = stream({\n          signal\n        })\n        if (!isIterable(ret)) {\n          throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n        }\n      } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n        ret = stream\n      } else {\n        ret = Duplex.from(stream)\n      }\n    } else if (typeof stream === 'function') {\n      if (isTransformStream(ret)) {\n        var _ret\n        ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n      } else {\n        ret = makeAsyncIterable(ret)\n      }\n      ret = stream(ret, {\n        signal\n      })\n      if (reading) {\n        if (!isIterable(ret, true)) {\n          throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n        }\n      } else {\n        var _ret2\n        if (!PassThrough) {\n          PassThrough = require('./passthrough')\n        }\n\n        // If the last argument to pipeline is not a stream\n        // we must create a proxy stream so that pipeline(...)\n        // always returns a stream which can be further\n        // composed through `.pipe(stream)`.\n\n        const pt = new PassThrough({\n          objectMode: true\n        })\n\n        // Handle Promises/A+ spec, `then` could be a getter that throws on\n        // second use.\n        const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n        if (typeof then === 'function') {\n          finishCount++\n          then.call(\n            ret,\n            (val) => {\n              value = val\n              if (val != null) {\n                pt.write(val)\n              }\n              if (end) {\n                pt.end()\n              }\n              process.nextTick(finish)\n            },\n            (err) => {\n              pt.destroy(err)\n              process.nextTick(finish, err)\n            }\n          )\n        } else if (isIterable(ret, true)) {\n          finishCount++\n          pumpToNode(ret, pt, finish, {\n            end\n          })\n        } else if (isReadableStream(ret) || isTransformStream(ret)) {\n          const toRead = ret.readable || ret\n          finishCount++\n          pumpToNode(toRead, pt, finish, {\n            end\n          })\n        } else {\n          throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n        }\n        ret = pt\n        const { destroy, cleanup } = destroyer(ret, false, true)\n        destroys.push(destroy)\n        if (isLastStream) {\n          lastStreamCleanup.push(cleanup)\n        }\n      }\n    } else if (isNodeStream(stream)) {\n      if (isReadableNodeStream(ret)) {\n        finishCount += 2\n        const cleanup = pipe(ret, stream, finish, {\n          end\n        })\n        if (isReadable(stream) && isLastStream) {\n          lastStreamCleanup.push(cleanup)\n        }\n      } else if (isTransformStream(ret) || isReadableStream(ret)) {\n        const toRead = ret.readable || ret\n        finishCount++\n        pumpToNode(toRead, stream, finish, {\n          end\n        })\n      } else if (isIterable(ret)) {\n        finishCount++\n        pumpToNode(ret, stream, finish, {\n          end\n        })\n      } else {\n        throw new ERR_INVALID_ARG_TYPE(\n          'val',\n          ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n          ret\n        )\n      }\n      ret = stream\n    } else if (isWebStream(stream)) {\n      if (isReadableNodeStream(ret)) {\n        finishCount++\n        pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n          end\n        })\n      } else if (isReadableStream(ret) || isIterable(ret)) {\n        finishCount++\n        pumpToWeb(ret, stream, finish, {\n          end\n        })\n      } else if (isTransformStream(ret)) {\n        finishCount++\n        pumpToWeb(ret.readable, stream, finish, {\n          end\n        })\n      } else {\n        throw new ERR_INVALID_ARG_TYPE(\n          'val',\n          ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n          ret\n        )\n      }\n      ret = stream\n    } else {\n      ret = Duplex.from(stream)\n    }\n  }\n  if (\n    (signal !== null && signal !== undefined && signal.aborted) ||\n    (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n  ) {\n    process.nextTick(abort)\n  }\n  return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n  let ended = false\n  dst.on('close', () => {\n    if (!ended) {\n      // Finish if the destination closes before the source has completed.\n      finish(new ERR_STREAM_PREMATURE_CLOSE())\n    }\n  })\n  src.pipe(dst, {\n    end: false\n  }) // If end is true we already will have a listener to end dst.\n\n  if (end) {\n    // Compat. Before node v10.12.0 stdio used to throw an error so\n    // pipe() did/does not end() stdio destinations.\n    // Now they allow it but \"secretly\" don't close the underlying fd.\n\n    function endFn() {\n      ended = true\n      dst.end()\n    }\n    if (isReadableFinished(src)) {\n      // End the destination if the source has already ended.\n      process.nextTick(endFn)\n    } else {\n      src.once('end', endFn)\n    }\n  } else {\n    finish()\n  }\n  eos(\n    src,\n    {\n      readable: true,\n      writable: false\n    },\n    (err) => {\n      const rState = src._readableState\n      if (\n        err &&\n        err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n        rState &&\n        rState.ended &&\n        !rState.errored &&\n        !rState.errorEmitted\n      ) {\n        // Some readable streams will emit 'close' before 'end'. However, since\n        // this is on the readable side 'end' should still be emitted if the\n        // stream has been ended and no error emitted. This should be allowed in\n        // favor of backwards compatibility. Since the stream is piped to a\n        // destination this should not result in any observable difference.\n        // We don't need to check if this is a writable premature close since\n        // eos will only fail with premature close on the reading side for\n        // duplex streams.\n        src.once('end', finish).once('error', finish)\n      } else {\n        finish(err)\n      }\n    }\n  )\n  return eos(\n    dst,\n    {\n      readable: false,\n      writable: true\n    },\n    finish\n  )\n}\nmodule.exports = {\n  pipelineImpl,\n  pipeline\n}\n","'use strict'\n\nconst { pipeline } = require('./pipeline')\nconst Duplex = require('./duplex')\nconst { destroyer } = require('./destroy')\nconst {\n  isNodeStream,\n  isReadable,\n  isWritable,\n  isWebStream,\n  isTransformStream,\n  isWritableStream,\n  isReadableStream\n} = require('./utils')\nconst {\n  AbortError,\n  codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = require('../../ours/errors')\nconst eos = require('./end-of-stream')\nmodule.exports = function compose(...streams) {\n  if (streams.length === 0) {\n    throw new ERR_MISSING_ARGS('streams')\n  }\n  if (streams.length === 1) {\n    return Duplex.from(streams[0])\n  }\n  const orgStreams = [...streams]\n  if (typeof streams[0] === 'function') {\n    streams[0] = Duplex.from(streams[0])\n  }\n  if (typeof streams[streams.length - 1] === 'function') {\n    const idx = streams.length - 1\n    streams[idx] = Duplex.from(streams[idx])\n  }\n  for (let n = 0; n < streams.length; ++n) {\n    if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n      // TODO(ronag): Add checks for non streams.\n      continue\n    }\n    if (\n      n < streams.length - 1 &&\n      !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n    ) {\n      throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n    }\n    if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n      throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n    }\n  }\n  let ondrain\n  let onfinish\n  let onreadable\n  let onclose\n  let d\n  function onfinished(err) {\n    const cb = onclose\n    onclose = null\n    if (cb) {\n      cb(err)\n    } else if (err) {\n      d.destroy(err)\n    } else if (!readable && !writable) {\n      d.destroy()\n    }\n  }\n  const head = streams[0]\n  const tail = pipeline(streams, onfinished)\n  const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n  const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n  // TODO(ronag): Avoid double buffering.\n  // Implement Writable/Readable/Duplex traits.\n  // See, https://github.com/nodejs/node/pull/33515.\n  d = new Duplex({\n    // TODO (ronag): highWaterMark?\n    writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n    readableObjectMode: !!(tail !== null && tail !== undefined && tail.readableObjectMode),\n    writable,\n    readable\n  })\n  if (writable) {\n    if (isNodeStream(head)) {\n      d._write = function (chunk, encoding, callback) {\n        if (head.write(chunk, encoding)) {\n          callback()\n        } else {\n          ondrain = callback\n        }\n      }\n      d._final = function (callback) {\n        head.end()\n        onfinish = callback\n      }\n      head.on('drain', function () {\n        if (ondrain) {\n          const cb = ondrain\n          ondrain = null\n          cb()\n        }\n      })\n    } else if (isWebStream(head)) {\n      const writable = isTransformStream(head) ? head.writable : head\n      const writer = writable.getWriter()\n      d._write = async function (chunk, encoding, callback) {\n        try {\n          await writer.ready\n          writer.write(chunk).catch(() => {})\n          callback()\n        } catch (err) {\n          callback(err)\n        }\n      }\n      d._final = async function (callback) {\n        try {\n          await writer.ready\n          writer.close().catch(() => {})\n          onfinish = callback\n        } catch (err) {\n          callback(err)\n        }\n      }\n    }\n    const toRead = isTransformStream(tail) ? tail.readable : tail\n    eos(toRead, () => {\n      if (onfinish) {\n        const cb = onfinish\n        onfinish = null\n        cb()\n      }\n    })\n  }\n  if (readable) {\n    if (isNodeStream(tail)) {\n      tail.on('readable', function () {\n        if (onreadable) {\n          const cb = onreadable\n          onreadable = null\n          cb()\n        }\n      })\n      tail.on('end', function () {\n        d.push(null)\n      })\n      d._read = function () {\n        while (true) {\n          const buf = tail.read()\n          if (buf === null) {\n            onreadable = d._read\n            return\n          }\n          if (!d.push(buf)) {\n            return\n          }\n        }\n      }\n    } else if (isWebStream(tail)) {\n      const readable = isTransformStream(tail) ? tail.readable : tail\n      const reader = readable.getReader()\n      d._read = async function () {\n        while (true) {\n          try {\n            const { value, done } = await reader.read()\n            if (!d.push(value)) {\n              return\n            }\n            if (done) {\n              d.push(null)\n              return\n            }\n          } catch {\n            return\n          }\n        }\n      }\n    }\n  }\n  d._destroy = function (err, callback) {\n    if (!err && onclose !== null) {\n      err = new AbortError()\n    }\n    onreadable = null\n    ondrain = null\n    onfinish = null\n    if (onclose === null) {\n      callback(err)\n    } else {\n      onclose = callback\n      if (isNodeStream(tail)) {\n        destroyer(tail, err)\n      }\n    }\n  }\n  return d\n}\n","'use strict'\n\nconst AbortController = globalThis.AbortController || require('abort-controller').AbortController\nconst {\n  codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n  AbortError\n} = require('../../ours/errors')\nconst { validateAbortSignal, validateInteger, validateObject } = require('../validators')\nconst kWeakHandler = require('../../ours/primordials').Symbol('kWeak')\nconst kResistStopPropagation = require('../../ours/primordials').Symbol('kResistStopPropagation')\nconst { finished } = require('./end-of-stream')\nconst staticCompose = require('./compose')\nconst { addAbortSignalNoValidate } = require('./add-abort-signal')\nconst { isWritable, isNodeStream } = require('./utils')\nconst { deprecate } = require('../../ours/util')\nconst {\n  ArrayPrototypePush,\n  Boolean,\n  MathFloor,\n  Number,\n  NumberIsNaN,\n  Promise,\n  PromiseReject,\n  PromiseResolve,\n  PromisePrototypeThen,\n  Symbol\n} = require('../../ours/primordials')\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n  if (options != null) {\n    validateObject(options, 'options')\n  }\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\n    validateAbortSignal(options.signal, 'options.signal')\n  }\n  if (isNodeStream(stream) && !isWritable(stream)) {\n    throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n  }\n  const composedStream = staticCompose(this, stream)\n  if (options !== null && options !== undefined && options.signal) {\n    // Not validating as we already validated before\n    addAbortSignalNoValidate(options.signal, composedStream)\n  }\n  return composedStream\n}\nfunction map(fn, options) {\n  if (typeof fn !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n  }\n  if (options != null) {\n    validateObject(options, 'options')\n  }\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\n    validateAbortSignal(options.signal, 'options.signal')\n  }\n  let concurrency = 1\n  if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n    concurrency = MathFloor(options.concurrency)\n  }\n  let highWaterMark = concurrency - 1\n  if ((options === null || options === undefined ? undefined : options.highWaterMark) != null) {\n    highWaterMark = MathFloor(options.highWaterMark)\n  }\n  validateInteger(concurrency, 'options.concurrency', 1)\n  validateInteger(highWaterMark, 'options.highWaterMark', 0)\n  highWaterMark += concurrency\n  return async function* map() {\n    const signal = require('../../ours/util').AbortSignalAny(\n      [options === null || options === undefined ? undefined : options.signal].filter(Boolean)\n    )\n    const stream = this\n    const queue = []\n    const signalOpt = {\n      signal\n    }\n    let next\n    let resume\n    let done = false\n    let cnt = 0\n    function onCatch() {\n      done = true\n      afterItemProcessed()\n    }\n    function afterItemProcessed() {\n      cnt -= 1\n      maybeResume()\n    }\n    function maybeResume() {\n      if (resume && !done && cnt < concurrency && queue.length < highWaterMark) {\n        resume()\n        resume = null\n      }\n    }\n    async function pump() {\n      try {\n        for await (let val of stream) {\n          if (done) {\n            return\n          }\n          if (signal.aborted) {\n            throw new AbortError()\n          }\n          try {\n            val = fn(val, signalOpt)\n            if (val === kEmpty) {\n              continue\n            }\n            val = PromiseResolve(val)\n          } catch (err) {\n            val = PromiseReject(err)\n          }\n          cnt += 1\n          PromisePrototypeThen(val, afterItemProcessed, onCatch)\n          queue.push(val)\n          if (next) {\n            next()\n            next = null\n          }\n          if (!done && (queue.length >= highWaterMark || cnt >= concurrency)) {\n            await new Promise((resolve) => {\n              resume = resolve\n            })\n          }\n        }\n        queue.push(kEof)\n      } catch (err) {\n        const val = PromiseReject(err)\n        PromisePrototypeThen(val, afterItemProcessed, onCatch)\n        queue.push(val)\n      } finally {\n        done = true\n        if (next) {\n          next()\n          next = null\n        }\n      }\n    }\n    pump()\n    try {\n      while (true) {\n        while (queue.length > 0) {\n          const val = await queue[0]\n          if (val === kEof) {\n            return\n          }\n          if (signal.aborted) {\n            throw new AbortError()\n          }\n          if (val !== kEmpty) {\n            yield val\n          }\n          queue.shift()\n          maybeResume()\n        }\n        await new Promise((resolve) => {\n          next = resolve\n        })\n      }\n    } finally {\n      done = true\n      if (resume) {\n        resume()\n        resume = null\n      }\n    }\n  }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n  if (options != null) {\n    validateObject(options, 'options')\n  }\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\n    validateAbortSignal(options.signal, 'options.signal')\n  }\n  return async function* asIndexedPairs() {\n    let index = 0\n    for await (const val of this) {\n      var _options$signal\n      if (\n        options !== null &&\n        options !== undefined &&\n        (_options$signal = options.signal) !== null &&\n        _options$signal !== undefined &&\n        _options$signal.aborted\n      ) {\n        throw new AbortError({\n          cause: options.signal.reason\n        })\n      }\n      yield [index++, val]\n    }\n  }.call(this)\n}\nasync function some(fn, options = undefined) {\n  for await (const unused of filter.call(this, fn, options)) {\n    return true\n  }\n  return false\n}\nasync function every(fn, options = undefined) {\n  if (typeof fn !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n  }\n  // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n  return !(await some.call(\n    this,\n    async (...args) => {\n      return !(await fn(...args))\n    },\n    options\n  ))\n}\nasync function find(fn, options) {\n  for await (const result of filter.call(this, fn, options)) {\n    return result\n  }\n  return undefined\n}\nasync function forEach(fn, options) {\n  if (typeof fn !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n  }\n  async function forEachFn(value, options) {\n    await fn(value, options)\n    return kEmpty\n  }\n  // eslint-disable-next-line no-unused-vars\n  for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n  if (typeof fn !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n  }\n  async function filterFn(value, options) {\n    if (await fn(value, options)) {\n      return value\n    }\n    return kEmpty\n  }\n  return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n  constructor() {\n    super('reduce')\n    this.message = 'Reduce of an empty stream requires an initial value'\n  }\n}\nasync function reduce(reducer, initialValue, options) {\n  var _options$signal2\n  if (typeof reducer !== 'function') {\n    throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n  }\n  if (options != null) {\n    validateObject(options, 'options')\n  }\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\n    validateAbortSignal(options.signal, 'options.signal')\n  }\n  let hasInitialValue = arguments.length > 1\n  if (\n    options !== null &&\n    options !== undefined &&\n    (_options$signal2 = options.signal) !== null &&\n    _options$signal2 !== undefined &&\n    _options$signal2.aborted\n  ) {\n    const err = new AbortError(undefined, {\n      cause: options.signal.reason\n    })\n    this.once('error', () => {}) // The error is already propagated\n    await finished(this.destroy(err))\n    throw err\n  }\n  const ac = new AbortController()\n  const signal = ac.signal\n  if (options !== null && options !== undefined && options.signal) {\n    const opts = {\n      once: true,\n      [kWeakHandler]: this,\n      [kResistStopPropagation]: true\n    }\n    options.signal.addEventListener('abort', () => ac.abort(), opts)\n  }\n  let gotAnyItemFromStream = false\n  try {\n    for await (const value of this) {\n      var _options$signal3\n      gotAnyItemFromStream = true\n      if (\n        options !== null &&\n        options !== undefined &&\n        (_options$signal3 = options.signal) !== null &&\n        _options$signal3 !== undefined &&\n        _options$signal3.aborted\n      ) {\n        throw new AbortError()\n      }\n      if (!hasInitialValue) {\n        initialValue = value\n        hasInitialValue = true\n      } else {\n        initialValue = await reducer(initialValue, value, {\n          signal\n        })\n      }\n    }\n    if (!gotAnyItemFromStream && !hasInitialValue) {\n      throw new ReduceAwareErrMissingArgs()\n    }\n  } finally {\n    ac.abort()\n  }\n  return initialValue\n}\nasync function toArray(options) {\n  if (options != null) {\n    validateObject(options, 'options')\n  }\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\n    validateAbortSignal(options.signal, 'options.signal')\n  }\n  const result = []\n  for await (const val of this) {\n    var _options$signal4\n    if (\n      options !== null &&\n      options !== undefined &&\n      (_options$signal4 = options.signal) !== null &&\n      _options$signal4 !== undefined &&\n      _options$signal4.aborted\n    ) {\n      throw new AbortError(undefined, {\n        cause: options.signal.reason\n      })\n    }\n    ArrayPrototypePush(result, val)\n  }\n  return result\n}\nfunction flatMap(fn, options) {\n  const values = map.call(this, fn, options)\n  return async function* flatMap() {\n    for await (const val of values) {\n      yield* val\n    }\n  }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n  // We coerce here to align with the spec\n  // https://github.com/tc39/proposal-iterator-helpers/issues/169\n  number = Number(number)\n  if (NumberIsNaN(number)) {\n    return 0\n  }\n  if (number < 0) {\n    throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n  }\n  return number\n}\nfunction drop(number, options = undefined) {\n  if (options != null) {\n    validateObject(options, 'options')\n  }\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\n    validateAbortSignal(options.signal, 'options.signal')\n  }\n  number = toIntegerOrInfinity(number)\n  return async function* drop() {\n    var _options$signal5\n    if (\n      options !== null &&\n      options !== undefined &&\n      (_options$signal5 = options.signal) !== null &&\n      _options$signal5 !== undefined &&\n      _options$signal5.aborted\n    ) {\n      throw new AbortError()\n    }\n    for await (const val of this) {\n      var _options$signal6\n      if (\n        options !== null &&\n        options !== undefined &&\n        (_options$signal6 = options.signal) !== null &&\n        _options$signal6 !== undefined &&\n        _options$signal6.aborted\n      ) {\n        throw new AbortError()\n      }\n      if (number-- <= 0) {\n        yield val\n      }\n    }\n  }.call(this)\n}\nfunction take(number, options = undefined) {\n  if (options != null) {\n    validateObject(options, 'options')\n  }\n  if ((options === null || options === undefined ? undefined : options.signal) != null) {\n    validateAbortSignal(options.signal, 'options.signal')\n  }\n  number = toIntegerOrInfinity(number)\n  return async function* take() {\n    var _options$signal7\n    if (\n      options !== null &&\n      options !== undefined &&\n      (_options$signal7 = options.signal) !== null &&\n      _options$signal7 !== undefined &&\n      _options$signal7.aborted\n    ) {\n      throw new AbortError()\n    }\n    for await (const val of this) {\n      var _options$signal8\n      if (\n        options !== null &&\n        options !== undefined &&\n        (_options$signal8 = options.signal) !== null &&\n        _options$signal8 !== undefined &&\n        _options$signal8.aborted\n      ) {\n        throw new AbortError()\n      }\n      if (number-- > 0) {\n        yield val\n      }\n\n      // Don't get another item from iterator in case we reached the end\n      if (number <= 0) {\n        return\n      }\n    }\n  }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n  asIndexedPairs: deprecate(asIndexedPairs, 'readable.asIndexedPairs will be removed in a future version.'),\n  drop,\n  filter,\n  flatMap,\n  map,\n  take,\n  compose\n}\nmodule.exports.promiseReturningOperators = {\n  every,\n  forEach,\n  reduce,\n  toArray,\n  some,\n  find\n}\n","'use strict'\n\nconst { ArrayPrototypePop, Promise } = require('../ours/primordials')\nconst { isIterable, isNodeStream, isWebStream } = require('../internal/streams/utils')\nconst { pipelineImpl: pl } = require('../internal/streams/pipeline')\nconst { finished } = require('../internal/streams/end-of-stream')\nrequire('../../lib/stream.js')\nfunction pipeline(...streams) {\n  return new Promise((resolve, reject) => {\n    let signal\n    let end\n    const lastArg = streams[streams.length - 1]\n    if (\n      lastArg &&\n      typeof lastArg === 'object' &&\n      !isNodeStream(lastArg) &&\n      !isIterable(lastArg) &&\n      !isWebStream(lastArg)\n    ) {\n      const options = ArrayPrototypePop(streams)\n      signal = options.signal\n      end = options.end\n    }\n    pl(\n      streams,\n      (err, value) => {\n        if (err) {\n          reject(err)\n        } else {\n          resolve(value)\n        }\n      },\n      {\n        signal,\n        end\n      }\n    )\n  })\n}\nmodule.exports = {\n  finished,\n  pipeline\n}\n","/* replacement start */\n\nconst { Buffer } = require('buffer')\n\n/* replacement end */\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n;('use strict')\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = require('./ours/primordials')\nconst {\n  promisify: { custom: customPromisify }\n} = require('./ours/util')\nconst { streamReturningOperators, promiseReturningOperators } = require('./internal/streams/operators')\nconst {\n  codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = require('./ours/errors')\nconst compose = require('./internal/streams/compose')\nconst { setDefaultHighWaterMark, getDefaultHighWaterMark } = require('./internal/streams/state')\nconst { pipeline } = require('./internal/streams/pipeline')\nconst { destroyer } = require('./internal/streams/destroy')\nconst eos = require('./internal/streams/end-of-stream')\nconst internalBuffer = {}\nconst promises = require('./stream/promises')\nconst utils = require('./internal/streams/utils')\nconst Stream = (module.exports = require('./internal/streams/legacy').Stream)\nStream.isDestroyed = utils.isDestroyed\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.isWritable = utils.isWritable\nStream.Readable = require('./internal/streams/readable')\nfor (const key of ObjectKeys(streamReturningOperators)) {\n  const op = streamReturningOperators[key]\n  function fn(...args) {\n    if (new.target) {\n      throw ERR_ILLEGAL_CONSTRUCTOR()\n    }\n    return Stream.Readable.from(ReflectApply(op, this, args))\n  }\n  ObjectDefineProperty(fn, 'name', {\n    __proto__: null,\n    value: op.name\n  })\n  ObjectDefineProperty(fn, 'length', {\n    __proto__: null,\n    value: op.length\n  })\n  ObjectDefineProperty(Stream.Readable.prototype, key, {\n    __proto__: null,\n    value: fn,\n    enumerable: false,\n    configurable: true,\n    writable: true\n  })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n  const op = promiseReturningOperators[key]\n  function fn(...args) {\n    if (new.target) {\n      throw ERR_ILLEGAL_CONSTRUCTOR()\n    }\n    return ReflectApply(op, this, args)\n  }\n  ObjectDefineProperty(fn, 'name', {\n    __proto__: null,\n    value: op.name\n  })\n  ObjectDefineProperty(fn, 'length', {\n    __proto__: null,\n    value: op.length\n  })\n  ObjectDefineProperty(Stream.Readable.prototype, key, {\n    __proto__: null,\n    value: fn,\n    enumerable: false,\n    configurable: true,\n    writable: true\n  })\n}\nStream.Writable = require('./internal/streams/writable')\nStream.Duplex = require('./internal/streams/duplex')\nStream.Transform = require('./internal/streams/transform')\nStream.PassThrough = require('./internal/streams/passthrough')\nStream.pipeline = pipeline\nconst { addAbortSignal } = require('./internal/streams/add-abort-signal')\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nStream.setDefaultHighWaterMark = setDefaultHighWaterMark\nStream.getDefaultHighWaterMark = getDefaultHighWaterMark\nObjectDefineProperty(Stream, 'promises', {\n  __proto__: null,\n  configurable: true,\n  enumerable: true,\n  get() {\n    return promises\n  }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n  __proto__: null,\n  enumerable: true,\n  get() {\n    return promises.pipeline\n  }\n})\nObjectDefineProperty(eos, customPromisify, {\n  __proto__: null,\n  enumerable: true,\n  get() {\n    return promises.finished\n  }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n  return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n","'use strict'\n\nconst CustomStream = require('../stream')\nconst promises = require('../stream/promises')\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n  configurable: true,\n  enumerable: true,\n  get() {\n    return promises\n  }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports.default = module.exports\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeJson = void 0;\nconst bus_query_result_serialize_1 = require(\"@comunica/bus-query-result-serialize\");\nconst core_1 = require(\"@comunica/core\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst RdfString = require(\"rdf-string\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A comunica JSON Query Result Serialize Actor.\n */\nclass ActorQueryResultSerializeJson extends bus_query_result_serialize_1.ActorQueryResultSerializeFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"application/json\": 1.0\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"application/json\": \"https://comunica.linkeddatafragments.org/#results_JSON\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async testHandleChecked(action, _context) {\n        if (!['bindings', 'quads', 'boolean'].includes(action.type)) {\n            return (0, core_1.failTest)('This actor can only handle bindings or quad streams.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async runHandle(action, _mediaType, _context) {\n        const data = new readable_stream_1.Readable();\n        data._read = () => {\n            // Do nothing\n        };\n        if (action.type === 'bindings' || action.type === 'quads') {\n            let stream = action.type === 'bindings' ?\n                (0, asynciterator_1.wrap)(action.bindingsStream)\n                    .map(element => JSON.stringify(Object.fromEntries([...element]\n                    .map(([key, value]) => [key.value, RdfString.termToString(value)])))) :\n                (0, asynciterator_1.wrap)(action.quadStream)\n                    .map(element => JSON.stringify(RdfString.quadToStringQuad(element)));\n            let empty = true;\n            stream = stream.map((element) => {\n                const ret = `${empty ? '' : ','}\\n${element}`;\n                empty = false;\n                return ret;\n            }).prepend(['[']).append(['\\n]\\n']);\n            data.wrap(stream);\n        }\n        else {\n            try {\n                data.push(`${JSON.stringify(await action.execute())}\\n`);\n                data.push(null);\n            }\n            catch (error) {\n                setTimeout(() => data.emit('error', error));\n            }\n        }\n        return { data };\n    }\n}\nexports.ActorQueryResultSerializeJson = ActorQueryResultSerializeJson;\n//# sourceMappingURL=ActorQueryResultSerializeJson.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryResultSerializeJson\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeSimple = void 0;\nconst bus_query_result_serialize_1 = require(\"@comunica/bus-query-result-serialize\");\nconst core_1 = require(\"@comunica/core\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A comunica Simple Sparql Serialize Actor.\n */\nclass ActorQueryResultSerializeSimple extends bus_query_result_serialize_1.ActorQueryResultSerializeFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{ \"simple\": 0.9 }} mediaTypePriorities\n     *   \\ @defaultNested {{ \"simple\": \"https://comunica.linkeddatafragments.org/#results_simple\" }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async testHandleChecked(action, _context) {\n        if (!['bindings', 'quads', 'boolean', 'void'].includes(action.type)) {\n            return (0, core_1.failTest)('This actor can only handle bindings streams, quad streams, booleans, or updates.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    static termToString(term) {\n        return term.termType === 'Quad' ? (0, rdf_string_1.termToString)(term) : term.value;\n    }\n    async runHandle(action, _mediaType, _context) {\n        const data = new readable_stream_1.Readable();\n        if (action.type === 'bindings') {\n            data.wrap(action.bindingsStream.map((bindings) => `${[...bindings].map(([key, value]) => `?${key.value}: ${ActorQueryResultSerializeSimple.termToString(value)}`).join('\\n')}\\n\\n`));\n        }\n        else if (action.type === 'quads') {\n            data.wrap(action.quadStream.map(quad => `subject: ${ActorQueryResultSerializeSimple.termToString(quad.subject)}\\n` +\n                `predicate: ${ActorQueryResultSerializeSimple.termToString(quad.predicate)}\\n` +\n                `object: ${ActorQueryResultSerializeSimple.termToString(quad.object)}\\n` +\n                `graph: ${ActorQueryResultSerializeSimple.termToString(quad.graph)}\\n\\n`));\n        }\n        else {\n            data.wrap((0, asynciterator_1.wrap)(action.type === 'boolean' ?\n                action.execute().then(value => [`${value}\\n`]) :\n                action.execute().then(() => ['ok\\n'])));\n        }\n        return { data };\n    }\n}\nexports.ActorQueryResultSerializeSimple = ActorQueryResultSerializeSimple;\n//# sourceMappingURL=ActorQueryResultSerializeSimple.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryResultSerializeSimple\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeSparqlCsv = void 0;\nconst bus_query_result_serialize_1 = require(\"@comunica/bus-query-result-serialize\");\nconst core_1 = require(\"@comunica/core\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A comunica SPARQL CSV Query Result Serialize Actor.\n */\nclass ActorQueryResultSerializeSparqlCsv extends bus_query_result_serialize_1.ActorQueryResultSerializeFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"text/csv\": 0.75\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"text/csv\": \"http://www.w3.org/ns/formats/SPARQL_Results_CSV\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    /**\n     * Converts an RDF term to its CSV representation.\n     * @param {RDF.Term} value An RDF term.\n     * @return {string} A string representation of the given value.\n     */\n    static bindingToCsvBindings(value) {\n        if (!value) {\n            return '';\n        }\n        let stringValue = value.value;\n        if (value.termType === 'Literal') {\n            // This is a lossy representation, since language and datatype are not encoded in here.\n            stringValue = `${stringValue}`;\n        }\n        else if (value.termType === 'BlankNode') {\n            stringValue = `_:${stringValue}`;\n        }\n        else if (value.termType === 'Quad') {\n            let object = ActorQueryResultSerializeSparqlCsv.bindingToCsvBindings(value.object);\n            if (value.object.termType === 'Literal') {\n                // If object is a literal, it must be put in quotes, and internal quotes must be escaped\n                object = `\"${object.replaceAll('\"', '\"\"')}\"`;\n            }\n            stringValue = `<< ${ActorQueryResultSerializeSparqlCsv.bindingToCsvBindings(value.subject)} ${ActorQueryResultSerializeSparqlCsv.bindingToCsvBindings(value.predicate)} ${object} >>`;\n        }\n        else {\n            stringValue = `<${stringValue}>`;\n        }\n        // If a value contains certain characters, put it between double quotes\n        if (/[\",\\n\\r]/u.test(stringValue)) {\n            // Within quote strings, \" is written using a pair of quotation marks \"\".\n            stringValue = `\"${stringValue.replaceAll('\"', '\"\"')}\"`;\n        }\n        return stringValue;\n    }\n    async testHandleChecked(action, _context) {\n        if (action.type !== 'bindings') {\n            return (0, core_1.failTest)('This actor can only handle bindings streams.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async runHandle(action, _mediaType, _context) {\n        const bindingsAction = action;\n        const data = new readable_stream_1.Readable();\n        const metadata = await bindingsAction.metadata();\n        // Write head\n        data.push(`${metadata.variables.map(variable => variable.variable.value).join(',')}\\r\\n`);\n        // Write body\n        data.wrap(bindingsAction.bindingsStream.map((bindings) => `${metadata.variables\n            .map(key => ActorQueryResultSerializeSparqlCsv.bindingToCsvBindings(bindings.get(key.variable)))\n            .join(',')}\\r\\n`));\n        return { data };\n    }\n}\nexports.ActorQueryResultSerializeSparqlCsv = ActorQueryResultSerializeSparqlCsv;\n//# sourceMappingURL=ActorQueryResultSerializeSparqlCsv.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryResultSerializeSparqlCsv\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringQuadToQuad = exports.quadToStringQuad = exports.stringToTerm = exports.getLiteralLanguage = exports.getLiteralType = exports.getLiteralValue = exports.termToString = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst FACTORY = new rdf_data_factory_1.DataFactory();\n/**\n * Utility methods for converting between string-based RDF representations and RDFJS objects.\n *\n * RDF Terms are represented as follows:\n * * Blank nodes: '_:myBlankNode'\n * * Variables: '_myVariable'\n * * Literals: '\"myString\"', '\"myLanguageString\"@en-us', '\"<p>e</p>\"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML>'\n * * URIs: '<http://example.org>'\n *\n * Quads/triples are represented as hashes with 'subject', 'predicate', 'object' and 'graph' (optional)\n * as keys, and string-based RDF terms as values.\n */\n/**\n * Convert an RDFJS term to a string-based representation.\n * @param {RDF.Term} term An RDFJS term.\n * @return {string} A string-based term representation.\n */\nfunction termToString(term) {\n    // TODO: remove nasty any casts when this TS bug has been fixed: https://github.com/microsoft/TypeScript/issues/26933\n    if (!term) {\n        return undefined;\n    }\n    switch (term.termType) {\n        case 'NamedNode': return (`<${escapeIRI(term.value)}>`);\n        case 'BlankNode': return (`_:${term.value}`);\n        case 'Literal': {\n            const literalValue = term;\n            return (`\"${escapeStringRDF(literalValue.value)}\"${literalValue.datatype &&\n                literalValue.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string' &&\n                literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' ?\n                `^^<${literalValue.datatype.value}>` :\n                ''}${literalValue.language ? `@${literalValue.language}` : ''}`);\n        }\n        case 'Quad': return (`<<${termToString(term.subject)} ${termToString(term.predicate)} ${termToString(term.object)}${term.graph.termType === 'DefaultGraph' ? '' : ` ${termToString(term.graph)}`}>>`);\n        case 'Variable': return (`?${term.value}`);\n        case 'DefaultGraph': return term.value;\n    }\n}\nexports.termToString = termToString;\n/**\n * Get the string value of a literal.\n * @param {string} literalValue An RDF literal enclosed by '\"'.\n * @return {string} The literal value inside the '\"'.\n */\nfunction getLiteralValue(literalValue) {\n    const match = /^\"([^]*)\"((\\^\\^.*)|(@.*))?$/u.exec(literalValue);\n    if (!match) {\n        throw new Error(`${literalValue} is not a literal`);\n    }\n    return match[1].replace(/\\\\\"/ug, '\"');\n}\nexports.getLiteralValue = getLiteralValue;\n/**\n * Get the datatype of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The datatype of the literal.\n */\nfunction getLiteralType(literalValue) {\n    const match = /^\"[^]*\"(?:\\^\\^<([^\"]+)>|(@)[^@\"]+)?$/u.exec(literalValue);\n    if (!match) {\n        throw new Error(`${literalValue} is not a literal`);\n    }\n    return match[1] || (match[2] ?\n        'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' :\n        'http://www.w3.org/2001/XMLSchema#string');\n}\nexports.getLiteralType = getLiteralType;\n/**\n * Get the language of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The language of the literal.\n */\nfunction getLiteralLanguage(literalValue) {\n    const match = /^\"[^]*\"(?:@([^@\"]+)|\\^\\^[^\"]+)?$/u.exec(literalValue);\n    if (!match) {\n        throw new Error(`${literalValue} is not a literal`);\n    }\n    return match[1] ? match[1].toLowerCase() : '';\n}\nexports.getLiteralLanguage = getLiteralLanguage;\n/**\n * Transform a string-based RDF term to an RDFJS term.\n * @param {string} value A string-based RDF-term.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {RDF.Term} An RDF-JS term.\n */\nfunction stringToTerm(value, dataFactory) {\n    dataFactory = dataFactory || FACTORY;\n    if (!value || (value.length === 0)) {\n        return dataFactory.defaultGraph();\n    }\n    switch (value[0]) {\n        case '_': return dataFactory.blankNode(value.slice(2));\n        case '?':\n            if (!dataFactory.variable) {\n                throw new Error(`Missing 'variable()' method on the given DataFactory`);\n            }\n            return dataFactory.variable(value.slice(1));\n        case '\"': {\n            const language = getLiteralLanguage(value);\n            const type = dataFactory.namedNode(getLiteralType(value));\n            return dataFactory.literal(getLiteralValue(value), language || type);\n        }\n        case '<':\n        default:\n            if (value.startsWith('<<') && value.endsWith('>>')) {\n                // Iterate character-by-character to detect spaces that are *not* wrapped in <<>>\n                const terms = value.slice(2, -2);\n                const stringTerms = [];\n                let ignoreTags = 0;\n                let lastIndex = 0;\n                for (let i = 0; i < terms.length; i++) {\n                    const char = terms[i];\n                    if (char === '<') {\n                        ignoreTags++;\n                    }\n                    if (char === '>') {\n                        if (ignoreTags === 0) {\n                            throw new Error(`Found closing tag without opening tag in ${value}`);\n                        }\n                        else {\n                            ignoreTags--;\n                        }\n                    }\n                    if (char === ' ' && ignoreTags === 0) {\n                        stringTerms.push(terms.slice(lastIndex, i));\n                        lastIndex = i + 1;\n                    }\n                }\n                if (ignoreTags !== 0) {\n                    throw new Error(`Found opening tag without closing tag in ${value}`);\n                }\n                stringTerms.push(terms.slice(lastIndex, terms.length));\n                // We require 3 or 4 components\n                if (stringTerms.length !== 3 && stringTerms.length !== 4) {\n                    throw new Error(`Nested quad syntax error ${value}`);\n                }\n                return dataFactory.quad(stringToTerm(stringTerms[0]), stringToTerm(stringTerms[1]), stringToTerm(stringTerms[2]), stringTerms[3] ? stringToTerm(stringTerms[3]) : undefined);\n            }\n            if (!value.startsWith('<') || !value.endsWith('>')) {\n                throw new Error(`Detected invalid iri for named node (must be wrapped in <>): ${value}`);\n            }\n            return dataFactory.namedNode(value.slice(1, -1));\n    }\n}\nexports.stringToTerm = stringToTerm;\n/**\n * Convert an RDFJS quad to a string-based quad representation.\n * @param {Quad} q An RDFJS quad.\n * @return {IStringQuad} A hash with string-based quad terms.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction quadToStringQuad(quad) {\n    return {\n        subject: termToString(quad.subject),\n        predicate: termToString(quad.predicate),\n        object: termToString(quad.object),\n        graph: termToString(quad.graph),\n    };\n}\nexports.quadToStringQuad = quadToStringQuad;\n/**\n * Convert a string-based quad representation to an RDFJS quad.\n * @param {IStringQuad} stringQuad A hash with string-based quad terms.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {Q} An RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction stringQuadToQuad(stringQuad, dataFactory) {\n    dataFactory = dataFactory || FACTORY;\n    return dataFactory.quad(stringToTerm(stringQuad.subject, dataFactory), stringToTerm(stringQuad.predicate, dataFactory), stringToTerm(stringQuad.object, dataFactory), stringToTerm(stringQuad.graph, dataFactory));\n}\nexports.stringQuadToQuad = stringQuadToQuad;\nfunction escapeIRI(iriValue) {\n    return iriValue.replace(escapePattern, replaceEscapedCharacter);\n}\nfunction escapeStringRDF(stringValue) {\n    if (escapePattern.test(stringValue)) {\n        stringValue = stringValue.replace(escapePattern, replaceEscapedCharacter);\n    }\n    return stringValue;\n}\n// Characters in literals and IRIs that require escaping\n// Also containing potential surrogate pairs\n/* eslint-disable require-unicode-regexp */ /* eslint-disable unicorn/better-regex */\nconst escapePattern = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n/* eslint-enable require-unicode-regexp */ /* eslint-enable unicorn/better-regex */\nconst escapes = new Map([\n    ['\\\\', '\\\\\\\\'],\n    ['\"', '\\\\\"'],\n    ['\\t', '\\\\t'],\n    ['\\n', '\\\\n'],\n    ['\\r', '\\\\r'],\n    ['\\b', '\\\\b'],\n    ['\\f', '\\\\f'],\n]);\nfunction replaceEscapedCharacter(character) {\n    // Try simplest case first, get replacement for character\n    const result = escapes.get(character);\n    if (!result) {\n        if (character.length === 1) {\n            // Single unicode charachters, i.e. not a surrogate pair\n            const code = character.charCodeAt(0).toString(16);\n            return `${'\\\\u0000'.slice(0, -code.length)}${code}`;\n        }\n        // Surrogate pairs\n        const code = ((character.charCodeAt(0) - 55296) * 1024 + character.charCodeAt(1) + 9216).toString(16);\n        return `${'\\\\U00000000'.slice(0, -code.length)}${code}`;\n    }\n    return result;\n}\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.termToString = exports.stringToTerm = exports.stringQuadToQuad = exports.quadToStringQuad = exports.getLiteralValue = exports.getLiteralType = exports.getLiteralLanguage = void 0;\nconst TermUtil_1 = require(\"./lib/TermUtil\");\nObject.defineProperty(exports, \"getLiteralLanguage\", { enumerable: true, get: function () { return TermUtil_1.getLiteralLanguage; } });\nObject.defineProperty(exports, \"getLiteralType\", { enumerable: true, get: function () { return TermUtil_1.getLiteralType; } });\nObject.defineProperty(exports, \"getLiteralValue\", { enumerable: true, get: function () { return TermUtil_1.getLiteralValue; } });\nObject.defineProperty(exports, \"quadToStringQuad\", { enumerable: true, get: function () { return TermUtil_1.quadToStringQuad; } });\nObject.defineProperty(exports, \"stringQuadToQuad\", { enumerable: true, get: function () { return TermUtil_1.stringQuadToQuad; } });\nObject.defineProperty(exports, \"stringToTerm\", { enumerable: true, get: function () { return TermUtil_1.stringToTerm; } });\nObject.defineProperty(exports, \"termToString\", { enumerable: true, get: function () { return TermUtil_1.termToString; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeSparqlTsv = void 0;\nconst bus_query_result_serialize_1 = require(\"@comunica/bus-query-result-serialize\");\nconst core_1 = require(\"@comunica/core\");\nconst rdf_string_ttl_1 = require(\"rdf-string-ttl\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A comunica SPARQL TSV Query Result Serialize Actor.\n */\nclass ActorQueryResultSerializeSparqlTsv extends bus_query_result_serialize_1.ActorQueryResultSerializeFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"text/tab-separated-values\": 0.75\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"text/tab-separated-values\": \"http://www.w3.org/ns/formats/SPARQL_Results_TSV\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    /**\n     * Converts an RDF term to its TSV representation.\n     * @param {RDF.Term} value An RDF term.\n     * @return {string} A string representation of the given value.\n     */\n    static bindingToTsvBindings(value) {\n        if (!value) {\n            return '';\n        }\n        // Escape tab, newline and carriage return characters\n        return (0, rdf_string_ttl_1.termToString)(value)\n            .replaceAll('\\t', '\\\\t')\n            .replaceAll('\\n', '\\\\n')\n            .replaceAll('\\r', '\\\\r');\n    }\n    async testHandleChecked(action, _context) {\n        if (action.type !== 'bindings') {\n            return (0, core_1.failTest)('This actor can only handle bindings streams.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async runHandle(action, _mediaType, _context) {\n        const bindingsAction = action;\n        const data = new readable_stream_1.Readable();\n        // Write head\n        const metadata = await bindingsAction.metadata();\n        data.push(`${metadata.variables.map(variable => variable.variable.value).join('\\t')}\\n`);\n        // Write Bindings\n        data.wrap(bindingsAction.bindingsStream.map((bindings) => `${metadata.variables\n            .map(key => ActorQueryResultSerializeSparqlTsv\n            .bindingToTsvBindings(bindings.get(key.variable)))\n            .join('\\t')}\\n`));\n        return { data };\n    }\n}\nexports.ActorQueryResultSerializeSparqlTsv = ActorQueryResultSerializeSparqlTsv;\n//# sourceMappingURL=ActorQueryResultSerializeSparqlTsv.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryResultSerializeSparqlTsv\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.XmlSerializer = void 0;\n/**\n * A very simple XML serializer\n */\nclass XmlSerializer {\n    constructor() {\n        this.stack = [];\n    }\n    /**\n     *\n     * @param name should be a valid XML tag name\n     * @param attributes keys should be valid attribute names\n     */\n    open(name, attributes) {\n        const res = `${this.identation() + this.formatTag(name, attributes, 'open')}\\n`;\n        this.stack.push(name);\n        return res;\n    }\n    close() {\n        const name = this.stack.pop();\n        if (name === undefined) {\n            throw new Error('There is no tag left to close');\n        }\n        return `${this.identation() + this.formatTag(name, {}, 'close')}\\n`;\n    }\n    serializeNode(node) {\n        if (node.children === undefined) {\n            return `${this.identation() + this.formatTag(node.name, node.attributes, 'self-closing')}\\n`;\n        }\n        if (typeof node.children === 'string') {\n            return `${this.identation() + this.formatTag(node.name, node.attributes, 'open') + this.escape(node.children) + this.formatTag(node.name, {}, 'close')}\\n`;\n        }\n        const parts = [];\n        parts.push(`${this.identation() + this.formatTag(node.name, node.attributes, 'open')}\\n`);\n        this.stack.push(node.name);\n        for (const child of node.children) {\n            parts.push(this.serializeNode(child));\n        }\n        this.stack.pop();\n        parts.push(`${this.identation() + this.formatTag(node.name, {}, 'close')}\\n`);\n        return parts.join('');\n    }\n    identation() {\n        return this.stack.map(_ => '  ').join('');\n    }\n    formatTag(name, attributes, state) {\n        // eslint-disable-next-line ts/restrict-template-expressions\n        return `<${state === 'close' ? '/' : ''}${name}${Object.entries(attributes ?? {}).map(attr => ` ${attr[0]}=\"${this.escape(attr[1])}\"`)}${state === 'self-closing' ? '/' : ''}>`;\n    }\n    escape(text) {\n        return text.replaceAll(/[\"&'<>]/gu, ((char) => {\n            switch (char) {\n                case '<': return '&lt;';\n                case '>': return '&gt;';\n                case '&': return '&amp;';\n                case '\\'': return '&apos;';\n                case '\"': return '&quot;';\n            }\n        }));\n    }\n}\nexports.XmlSerializer = XmlSerializer;\nXmlSerializer.header = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n`;\n//# sourceMappingURL=XmlSerializer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeSparqlXml = void 0;\nconst bus_query_result_serialize_1 = require(\"@comunica/bus-query-result-serialize\");\nconst core_1 = require(\"@comunica/core\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst XmlSerializer_1 = require(\"./XmlSerializer\");\n/**\n * A comunica sparql-results+xml Serialize Actor.\n */\nclass ActorQueryResultSerializeSparqlXml extends bus_query_result_serialize_1.ActorQueryResultSerializeFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"application/sparql-results+xml\": 0.8\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"application/sparql-results+xml\": \"http://www.w3.org/ns/formats/SPARQL_Results_XML\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    /**\n     * Converts an RDF term to its object-based XML representation.\n     * @param {RDF.Term} value An RDF term.\n     * @param {string} key A variable name, '?' must be included as a prefix.\n     * @return {IXmlNode} An object-based XML tag.\n     */\n    static bindingToXmlBindings(value, key) {\n        return { name: 'binding', attributes: { name: key.value }, children: [this.valueToXmlValue(value)] };\n    }\n    static valueToXmlValue(value) {\n        let attributes;\n        switch (value.termType) {\n            case 'Literal':\n                if (value.language) {\n                    attributes = { 'xml:lang': value.language };\n                }\n                else if (value.datatype && value.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string') {\n                    attributes = { datatype: value.datatype.value };\n                }\n                else {\n                    attributes = {};\n                }\n                return { name: 'literal', attributes, children: value.value };\n            case 'BlankNode':\n                return { name: 'bnode', children: value.value };\n            case 'Quad':\n                return {\n                    name: 'triple',\n                    children: [\n                        { name: 'subject', children: [this.valueToXmlValue(value.subject)] },\n                        { name: 'predicate', children: [this.valueToXmlValue(value.predicate)] },\n                        { name: 'object', children: [this.valueToXmlValue(value.object)] },\n                    ],\n                };\n            default:\n                return { name: 'uri', children: value.value };\n        }\n    }\n    async testHandleChecked(action, _context) {\n        if (!['bindings', 'boolean'].includes(action.type)) {\n            return (0, core_1.failTest)('This actor can only handle bindings streams or booleans.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async runHandle(action, _mediaType, _context) {\n        const data = new readable_stream_1.Readable();\n        data._read = () => {\n            // Do nothing\n        };\n        const serializer = new XmlSerializer_1.XmlSerializer();\n        const metadata = await action.metadata();\n        data.push(XmlSerializer_1.XmlSerializer.header);\n        data.push(serializer.open('sparql', { xmlns: 'http://www.w3.org/2005/sparql-results#' }));\n        data.push(serializer.serializeNode({\n            name: 'head',\n            children: metadata.variables\n                .map(variable => ({ name: 'variable', attributes: { name: variable.variable.value } })),\n        }));\n        if (action.type === 'bindings') {\n            function* end() {\n                yield serializer.close();\n                yield serializer.close();\n            }\n            data.push(serializer.open('results'));\n            const stream = (0, asynciterator_1.wrap)(action.bindingsStream).map((bindings) => serializer.serializeNode({\n                name: 'result',\n                children: [...bindings].map(([key, value]) => ActorQueryResultSerializeSparqlXml.bindingToXmlBindings(value, key)),\n            })).append((0, asynciterator_1.wrap)(end()));\n            data.wrap(stream);\n        }\n        else {\n            try {\n                const result = await action.execute();\n                data.push(serializer.serializeNode({ name: 'boolean', children: result.toString() }));\n                data.push(serializer.close());\n                setTimeout(() => data.push(null));\n            }\n            catch (error) {\n                setTimeout(() => data.emit('error', error));\n            }\n        }\n        return { data };\n    }\n}\nexports.ActorQueryResultSerializeSparqlXml = ActorQueryResultSerializeSparqlXml;\n//# sourceMappingURL=ActorQueryResultSerializeSparqlXml.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryResultSerializeSparqlXml\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeTable = void 0;\nconst bus_query_result_serialize_1 = require(\"@comunica/bus-query-result-serialize\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A comunica Table Sparql Serialize Actor.\n */\nclass ActorQueryResultSerializeTable extends bus_query_result_serialize_1.ActorQueryResultSerializeFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{ \"table\": 0.6 }} mediaTypePriorities\n     *   \\ @defaultNested {{ \"table\": \"https://comunica.linkeddatafragments.org/#results_table\" }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n        this.padding = ActorQueryResultSerializeTable.repeat(' ', this.columnWidth);\n    }\n    static repeat(str, count) {\n        return str.repeat(count);\n    }\n    async testHandleChecked(action, _context) {\n        if (!['bindings', 'quads'].includes(action.type)) {\n            return (0, core_1.failTest)('This actor can only handle bindings or quad streams.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    termToString(term) {\n        return term.termType === 'Quad' ? (0, rdf_string_1.termToString)(term) : term.value;\n    }\n    pad(str) {\n        if (str.length <= this.columnWidth) {\n            return str + this.padding.slice(str.length);\n        }\n        return `${str.slice(0, this.columnWidth - 1)}…`;\n    }\n    pushHeader(data, labels) {\n        const header = labels.map(label => this.pad(label.value)).join(' ');\n        data.push(`${header}\\n${ActorQueryResultSerializeTable.repeat('-', header.length)}\\n`);\n    }\n    createRow(labels, bindings) {\n        return `${labels\n            .map(label => bindings.has(label) ? this.termToString(bindings.get(label)) : '')\n            .map(label => this.pad(label))\n            .join(' ')}\\n`;\n    }\n    async runHandle(action, _mediaType, _context) {\n        const data = new readable_stream_1.Readable();\n        let resultStream;\n        if (action.type === 'bindings') {\n            resultStream = action.bindingsStream.map(bindings => this.createRow(labels, bindings));\n            const labels = (await action.metadata()).variables.map(v => v.variable);\n            this.pushHeader(data, labels);\n        }\n        else {\n            resultStream = action.quadStream.map(quad => `${(0, rdf_terms_1.getTerms)(quad).map(term => this.pad(this.termToString(term))).join(' ')}\\n`);\n            const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n            this.pushHeader(data, rdf_terms_1.QUAD_TERM_NAMES.map(name => dataFactory.variable(name)));\n        }\n        data.wrap(resultStream);\n        return { data };\n    }\n}\nexports.ActorQueryResultSerializeTable = ActorQueryResultSerializeTable;\n//# sourceMappingURL=ActorQueryResultSerializeTable.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryResultSerializeTable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Translator = void 0;\n/**\n * Translates between an RDF literal and a JavaScript primitive.\n */\nclass Translator {\n    constructor() {\n        this.supportedRdfDatatypes = [];\n        this.fromRdfHandlers = {};\n        this.toRdfHandlers = {};\n    }\n    static incorrectRdfDataType(literal) {\n        throw new Error(`Invalid RDF ${literal.datatype.value} value: '${literal.value}'`);\n    }\n    registerHandler(handler, rdfDatatypes, javaScriptDataTypes) {\n        for (const rdfDatatype of rdfDatatypes) {\n            this.supportedRdfDatatypes.push(rdfDatatype);\n            this.fromRdfHandlers[rdfDatatype.value] = handler;\n        }\n        for (const javaScriptDataType of javaScriptDataTypes) {\n            let existingToRdfHandlers = this.toRdfHandlers[javaScriptDataType];\n            if (!existingToRdfHandlers) {\n                this.toRdfHandlers[javaScriptDataType] = existingToRdfHandlers = [];\n            }\n            existingToRdfHandlers.push(handler);\n        }\n    }\n    fromRdf(literal, validate) {\n        const handler = this.fromRdfHandlers[literal.datatype.value];\n        if (handler) {\n            return handler.fromRdf(literal, validate);\n        }\n        else {\n            return literal.value;\n        }\n    }\n    toRdf(value, options) {\n        const handlers = this.toRdfHandlers[typeof value];\n        if (handlers) {\n            for (const handler of handlers) {\n                const ret = handler.toRdf(value, options);\n                if (ret) {\n                    return ret;\n                }\n            }\n        }\n        throw new Error(`Invalid JavaScript value: '${value}'`);\n    }\n    /**\n     * @return {NamedNode[]} An array of all supported RDF datatypes.\n     */\n    getSupportedRdfDatatypes() {\n        return this.supportedRdfDatatypes;\n    }\n    /**\n     * @return {string[]} An array of all supported JavaScript types.\n     */\n    getSupportedJavaScriptPrimitives() {\n        return Object.keys(this.toRdfHandlers);\n    }\n}\nexports.Translator = Translator;\n//# sourceMappingURL=Translator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHandlerBoolean = void 0;\nconst Translator_1 = require(\"../Translator\");\n/**\n * Translates booleans.\n */\nclass TypeHandlerBoolean {\n    fromRdf(literal, validate) {\n        switch (literal.value) {\n            case 'true':\n                return true;\n            case 'false':\n                return false;\n            case '1':\n                return true;\n            case '0':\n                return false;\n        }\n        if (validate) {\n            Translator_1.Translator.incorrectRdfDataType(literal);\n        }\n        return false;\n    }\n    toRdf(value, { datatype, dataFactory }) {\n        return dataFactory.literal(value ? 'true' : 'false', datatype || dataFactory.namedNode(TypeHandlerBoolean.TYPE));\n    }\n}\nTypeHandlerBoolean.TYPE = 'http://www.w3.org/2001/XMLSchema#boolean';\nexports.TypeHandlerBoolean = TypeHandlerBoolean;\n//# sourceMappingURL=TypeHandlerBoolean.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHandlerDate = void 0;\nconst Translator_1 = require(\"../Translator\");\n/**\n * Translates dates.\n */\nclass TypeHandlerDate {\n    fromRdf(literal, validate) {\n        if (validate && !literal.value.match(TypeHandlerDate\n            .VALIDATORS[literal.datatype.value.substr(33, literal.datatype.value.length)])) {\n            Translator_1.Translator.incorrectRdfDataType(literal);\n        }\n        switch (literal.datatype.value) {\n            case 'http://www.w3.org/2001/XMLSchema#gDay':\n                return new Date(0, 0, parseInt(literal.value, 10));\n            case 'http://www.w3.org/2001/XMLSchema#gMonthDay':\n                const partsMonthDay = literal.value.split('-');\n                return new Date(0, parseInt(partsMonthDay[0], 10) - 1, parseInt(partsMonthDay[1], 10));\n            case 'http://www.w3.org/2001/XMLSchema#gYear':\n                return new Date(literal.value + '-01-01');\n            case 'http://www.w3.org/2001/XMLSchema#gYearMonth':\n                return new Date(literal.value + '-01');\n            default:\n                return new Date(literal.value);\n        }\n    }\n    toRdf(value, { datatype, dataFactory }) {\n        datatype = datatype || dataFactory.namedNode(TypeHandlerDate.TYPES[0]);\n        // Assume date values\n        if (!(value instanceof Date)) {\n            return null;\n        }\n        const date = value;\n        let valueString;\n        switch (datatype.value) {\n            case 'http://www.w3.org/2001/XMLSchema#gDay':\n                valueString = String(date.getUTCDate());\n                break;\n            case 'http://www.w3.org/2001/XMLSchema#gMonthDay':\n                valueString = (date.getUTCMonth() + 1) + '-' + date.getUTCDate();\n                break;\n            case 'http://www.w3.org/2001/XMLSchema#gYear':\n                valueString = String(date.getUTCFullYear());\n                break;\n            case 'http://www.w3.org/2001/XMLSchema#gYearMonth':\n                valueString = date.getUTCFullYear() + '-' + (date.getUTCMonth() + 1);\n                break;\n            case 'http://www.w3.org/2001/XMLSchema#date':\n                valueString = date.toISOString().replace(/T.*$/, '');\n                break;\n            default:\n                valueString = date.toISOString();\n        }\n        return dataFactory.literal(valueString, datatype);\n    }\n}\nTypeHandlerDate.TYPES = [\n    'http://www.w3.org/2001/XMLSchema#dateTime',\n    'http://www.w3.org/2001/XMLSchema#date',\n    'http://www.w3.org/2001/XMLSchema#gDay',\n    'http://www.w3.org/2001/XMLSchema#gMonthDay',\n    'http://www.w3.org/2001/XMLSchema#gYear',\n    'http://www.w3.org/2001/XMLSchema#gYearMonth',\n];\nTypeHandlerDate.VALIDATORS = {\n    date: /^[0-9]+-[0-9][0-9]-[0-9][0-9]Z?$/,\n    dateTime: /^[0-9]+-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9](\\.[0-9][0-9][0-9])?((Z?)|([\\+-][0-9][0-9]:[0-9][0-9]))$/,\n    gDay: /^[0-9]+$/,\n    gMonthDay: /^[0-9]+-[0-9][0-9]$/,\n    gYear: /^[0-9]+$/,\n    gYearMonth: /^[0-9]+-[0-9][0-9]$/,\n};\nexports.TypeHandlerDate = TypeHandlerDate;\n//# sourceMappingURL=TypeHandlerDate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHandlerNumberDouble = void 0;\nconst Translator_1 = require(\"../Translator\");\n/**\n * Translates double numbers.\n */\nclass TypeHandlerNumberDouble {\n    fromRdf(literal, validate) {\n        const parsed = parseFloat(literal.value);\n        if (validate) {\n            if (isNaN(parsed)) {\n                Translator_1.Translator.incorrectRdfDataType(literal);\n            }\n            // TODO: validate more\n        }\n        return parsed;\n    }\n    toRdf(value, { datatype, dataFactory }) {\n        datatype = datatype || dataFactory.namedNode(TypeHandlerNumberDouble.TYPES[0]);\n        if (isNaN(value)) {\n            return dataFactory.literal('NaN', datatype);\n        }\n        if (!isFinite(value)) {\n            return dataFactory.literal(value > 0 ? 'INF' : '-INF', datatype);\n        }\n        if (value % 1 === 0) {\n            return null;\n        }\n        return dataFactory.literal(value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E'), datatype);\n    }\n}\nTypeHandlerNumberDouble.TYPES = [\n    'http://www.w3.org/2001/XMLSchema#double',\n    'http://www.w3.org/2001/XMLSchema#decimal',\n    'http://www.w3.org/2001/XMLSchema#float',\n];\nexports.TypeHandlerNumberDouble = TypeHandlerNumberDouble;\n//# sourceMappingURL=TypeHandlerNumberDouble.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHandlerNumberInteger = void 0;\nconst Translator_1 = require(\"../Translator\");\n/**\n * Translates integer numbers.\n */\nclass TypeHandlerNumberInteger {\n    fromRdf(literal, validate) {\n        const parsed = parseInt(literal.value, 10);\n        if (validate) {\n            if (isNaN(parsed) || literal.value.indexOf('.') >= 0) {\n                Translator_1.Translator.incorrectRdfDataType(literal);\n            }\n            // TODO: validate more\n        }\n        return parsed;\n    }\n    toRdf(value, { datatype, dataFactory }) {\n        return dataFactory.literal(String(value), datatype\n            || (value <= TypeHandlerNumberInteger.MAX_INT && value >= TypeHandlerNumberInteger.MIN_INT\n                ? dataFactory.namedNode(TypeHandlerNumberInteger.TYPES[0])\n                : dataFactory.namedNode(TypeHandlerNumberInteger.TYPES[1])));\n    }\n}\nTypeHandlerNumberInteger.TYPES = [\n    'http://www.w3.org/2001/XMLSchema#integer',\n    'http://www.w3.org/2001/XMLSchema#long',\n    'http://www.w3.org/2001/XMLSchema#int',\n    'http://www.w3.org/2001/XMLSchema#byte',\n    'http://www.w3.org/2001/XMLSchema#short',\n    'http://www.w3.org/2001/XMLSchema#negativeInteger',\n    'http://www.w3.org/2001/XMLSchema#nonNegativeInteger',\n    'http://www.w3.org/2001/XMLSchema#nonPositiveInteger',\n    'http://www.w3.org/2001/XMLSchema#positiveInteger',\n    'http://www.w3.org/2001/XMLSchema#unsignedByte',\n    'http://www.w3.org/2001/XMLSchema#unsignedInt',\n    'http://www.w3.org/2001/XMLSchema#unsignedLong',\n    'http://www.w3.org/2001/XMLSchema#unsignedShort',\n];\nTypeHandlerNumberInteger.MAX_INT = 2147483647;\nTypeHandlerNumberInteger.MIN_INT = -2147483648;\nexports.TypeHandlerNumberInteger = TypeHandlerNumberInteger;\n//# sourceMappingURL=TypeHandlerNumberInteger.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypeHandlerString = void 0;\n/**\n * Translates strings.\n */\nclass TypeHandlerString {\n    fromRdf(literal) {\n        return literal.value;\n    }\n    toRdf(value, { datatype, dataFactory }) {\n        return dataFactory.literal(value, datatype);\n    }\n}\nTypeHandlerString.TYPES = [\n    'http://www.w3.org/2001/XMLSchema#string',\n    'http://www.w3.org/2001/XMLSchema#normalizedString',\n    'http://www.w3.org/2001/XMLSchema#anyURI',\n    'http://www.w3.org/2001/XMLSchema#base64Binary',\n    'http://www.w3.org/2001/XMLSchema#language',\n    'http://www.w3.org/2001/XMLSchema#Name',\n    'http://www.w3.org/2001/XMLSchema#NCName',\n    'http://www.w3.org/2001/XMLSchema#NMTOKEN',\n    'http://www.w3.org/2001/XMLSchema#token',\n    'http://www.w3.org/2001/XMLSchema#hexBinary',\n    'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString',\n    'http://www.w3.org/2001/XMLSchema#time',\n    'http://www.w3.org/2001/XMLSchema#duration',\n];\nexports.TypeHandlerString = TypeHandlerString;\n//# sourceMappingURL=TypeHandlerString.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./TypeHandlerBoolean\"), exports);\n__exportStar(require(\"./TypeHandlerDate\"), exports);\n__exportStar(require(\"./TypeHandlerNumberDouble\"), exports);\n__exportStar(require(\"./TypeHandlerNumberInteger\"), exports);\n__exportStar(require(\"./TypeHandlerString\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ITypeHandler.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getSupportedJavaScriptPrimitives = exports.getSupportedRdfDatatypes = exports.getTermRaw = exports.toRdf = exports.fromRdf = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst handler_1 = require(\"./lib/handler\");\nconst Translator_1 = require(\"./lib/Translator\");\n__exportStar(require(\"./lib/handler\"), exports);\n__exportStar(require(\"./lib/ITypeHandler\"), exports);\n__exportStar(require(\"./lib/Translator\"), exports);\nconst DF = new rdf_data_factory_1.DataFactory();\n// Construct translator with built-in handlers\nconst translator = new Translator_1.Translator();\ntranslator.registerHandler(new handler_1.TypeHandlerString(), handler_1.TypeHandlerString.TYPES.map(t => DF.namedNode(t)), ['string']);\ntranslator.registerHandler(new handler_1.TypeHandlerBoolean(), [handler_1.TypeHandlerBoolean.TYPE].map(t => DF.namedNode(t)), ['boolean']);\ntranslator.registerHandler(new handler_1.TypeHandlerNumberDouble(), handler_1.TypeHandlerNumberDouble.TYPES.map(t => DF.namedNode(t)), ['number']);\ntranslator.registerHandler(new handler_1.TypeHandlerNumberInteger(), handler_1.TypeHandlerNumberInteger.TYPES.map(t => DF.namedNode(t)), ['number']);\ntranslator.registerHandler(new handler_1.TypeHandlerDate(), handler_1.TypeHandlerDate.TYPES.map(t => DF.namedNode(t)), ['object']);\n/**\n * Convert the given RDF literal to an JavaScript primitive.\n * @param {Literal} literal An RDF literal value.\n * @param {boolean} validate If the literal value should be validated against the datatype.\n * @return {any} A JavaScript primitive value.\n */\nfunction fromRdf(literal, validate) {\n    return translator.fromRdf(literal, validate);\n}\nexports.fromRdf = fromRdf;\n/**\n * Convert the given JavaScript primitive to an RDF literal.\n * @param value A JavaScript primitive value.\n * @param options Options for RDF conversion. May also be a data factory.\n * @return {Literal} An RDF literal value.\n */\nfunction toRdf(value, options) {\n    // Backwards-compatibility to accept data factory as option arg.\n    if (options && 'namedNode' in options) {\n        options = { dataFactory: options };\n    }\n    // Set default data factory\n    options = options || {};\n    if (options && !options.dataFactory) {\n        options.dataFactory = DF;\n    }\n    return translator.toRdf(value, options);\n}\nexports.toRdf = toRdf;\n/**\n * Get the raw value of the given term.\n * If it is a literal, {@link fromRdf} will be called.\n * Otherwise {@link .value} will be returned.\n * @param {Term} term Any RDF term.\n * @param {boolean} validate If the literal value should be validated against the datatype.\n * @return {any} A JavaScript primitive value.\n */\nfunction getTermRaw(term, validate) {\n    if (term.termType === 'Literal') {\n        return fromRdf(term, validate);\n    }\n    return term.value;\n}\nexports.getTermRaw = getTermRaw;\n/**\n * @return {NamedNode[]} An array of all supported RDF datatypes.\n */\nfunction getSupportedRdfDatatypes() {\n    return translator.getSupportedRdfDatatypes();\n}\nexports.getSupportedRdfDatatypes = getSupportedRdfDatatypes;\n/**\n * @return {string[]} An array of all supported JavaScript types.\n */\nfunction getSupportedJavaScriptPrimitives() {\n    return translator.getSupportedJavaScriptPrimitives();\n}\nexports.getSupportedJavaScriptPrimitives = getSupportedJavaScriptPrimitives;\n//# sourceMappingURL=index.js.map","var { Buffer } = require('buffer')\n// Named constants with unique integer values\nvar C = {};\n// Tokens\nvar LEFT_BRACE    = C.LEFT_BRACE    = 0x1;\nvar RIGHT_BRACE   = C.RIGHT_BRACE   = 0x2;\nvar LEFT_BRACKET  = C.LEFT_BRACKET  = 0x3;\nvar RIGHT_BRACKET = C.RIGHT_BRACKET = 0x4;\nvar COLON         = C.COLON         = 0x5;\nvar COMMA         = C.COMMA         = 0x6;\nvar TRUE          = C.TRUE          = 0x7;\nvar FALSE         = C.FALSE         = 0x8;\nvar NULL          = C.NULL          = 0x9;\nvar STRING        = C.STRING        = 0xa;\nvar NUMBER        = C.NUMBER        = 0xb;\n// Tokenizer States\nvar START   = C.START   = 0x11;\nvar STOP    = C.STOP    = 0x12;\nvar TRUE1   = C.TRUE1   = 0x21;\nvar TRUE2   = C.TRUE2   = 0x22;\nvar TRUE3   = C.TRUE3   = 0x23;\nvar FALSE1  = C.FALSE1  = 0x31;\nvar FALSE2  = C.FALSE2  = 0x32;\nvar FALSE3  = C.FALSE3  = 0x33;\nvar FALSE4  = C.FALSE4  = 0x34;\nvar NULL1   = C.NULL1   = 0x41;\nvar NULL2   = C.NULL2   = 0x42;\nvar NULL3   = C.NULL3   = 0x43;\nvar NUMBER1 = C.NUMBER1 = 0x51;\nvar NUMBER3 = C.NUMBER3 = 0x53;\nvar STRING1 = C.STRING1 = 0x61;\nvar STRING2 = C.STRING2 = 0x62;\nvar STRING3 = C.STRING3 = 0x63;\nvar STRING4 = C.STRING4 = 0x64;\nvar STRING5 = C.STRING5 = 0x65;\nvar STRING6 = C.STRING6 = 0x66;\n// Parser States\nvar VALUE   = C.VALUE   = 0x71;\nvar KEY     = C.KEY     = 0x72;\n// Parser Modes\nvar OBJECT  = C.OBJECT  = 0x81;\nvar ARRAY   = C.ARRAY   = 0x82;\n// Character constants\nvar BACK_SLASH =      \"\\\\\".charCodeAt(0);\nvar FORWARD_SLASH =   \"\\/\".charCodeAt(0);\nvar BACKSPACE =       \"\\b\".charCodeAt(0);\nvar FORM_FEED =       \"\\f\".charCodeAt(0);\nvar NEWLINE =         \"\\n\".charCodeAt(0);\nvar CARRIAGE_RETURN = \"\\r\".charCodeAt(0);\nvar TAB =             \"\\t\".charCodeAt(0);\n\nvar STRING_BUFFER_SIZE = 64 * 1024;\n\nfunction alloc(size) {\n  return Buffer.alloc ? Buffer.alloc(size) : new Buffer(size);\n}\n\nfunction Parser() {\n  this.tState = START;\n  this.value = undefined;\n\n  this.string = undefined; // string data\n  this.stringBuffer = alloc(STRING_BUFFER_SIZE);\n  this.stringBufferOffset = 0;\n  this.unicode = undefined; // unicode escapes\n  this.highSurrogate = undefined;\n\n  this.key = undefined;\n  this.mode = undefined;\n  this.stack = [];\n  this.state = VALUE;\n  this.bytes_remaining = 0; // number of bytes remaining in multi byte utf8 char to read after split boundary\n  this.bytes_in_sequence = 0; // bytes in multi byte utf8 char to read\n  this.temp_buffs = { \"2\": alloc(2), \"3\": alloc(3), \"4\": alloc(4) }; // for rebuilding chars split before boundary is reached\n\n  // Stream offset\n  this.offset = -1;\n}\n\n// Slow code to string converter (only used when throwing syntax errors)\nParser.toknam = function (code) {\n  var keys = Object.keys(C);\n  for (var i = 0, l = keys.length; i < l; i++) {\n    var key = keys[i];\n    if (C[key] === code) { return key; }\n  }\n  return code && (\"0x\" + code.toString(16));\n};\n\nvar proto = Parser.prototype;\nproto.onError = function (err) { throw err; };\nproto.charError = function (buffer, i) {\n  this.tState = STOP;\n  this.onError(new Error(\"Unexpected \" + JSON.stringify(String.fromCharCode(buffer[i])) + \" at position \" + i + \" in state \" + Parser.toknam(this.tState)));\n};\nproto.appendStringChar = function (char) {\n  if (this.stringBufferOffset >= STRING_BUFFER_SIZE) {\n    this.string += this.stringBuffer.toString('utf8');\n    this.stringBufferOffset = 0;\n  }\n\n  this.stringBuffer[this.stringBufferOffset++] = char;\n};\nproto.appendStringBuf = function (buf, start, end) {\n  var size = buf.length;\n  if (typeof start === 'number') {\n    if (typeof end === 'number') {\n      if (end < 0) {\n        // adding a negative end decreeses the size\n        size = buf.length - start + end;\n      } else {\n        size = end - start;\n      }\n    } else {\n      size = buf.length - start;\n    }\n  }\n\n  if (size < 0) {\n    size = 0;\n  }\n\n  if (this.stringBufferOffset + size > STRING_BUFFER_SIZE) {\n    this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset);\n    this.stringBufferOffset = 0;\n  }\n\n  buf.copy(this.stringBuffer, this.stringBufferOffset, start, end);\n  this.stringBufferOffset += size;\n};\nproto.write = function (buffer) {\n  if (typeof buffer === \"string\") buffer = new Buffer(buffer);\n  var n;\n  for (var i = 0, l = buffer.length; i < l; i++) {\n    if (this.tState === START){\n      n = buffer[i];\n      this.offset++;\n      if(n === 0x7b){ this.onToken(LEFT_BRACE, \"{\"); // {\n      }else if(n === 0x7d){ this.onToken(RIGHT_BRACE, \"}\"); // }\n      }else if(n === 0x5b){ this.onToken(LEFT_BRACKET, \"[\"); // [\n      }else if(n === 0x5d){ this.onToken(RIGHT_BRACKET, \"]\"); // ]\n      }else if(n === 0x3a){ this.onToken(COLON, \":\");  // :\n      }else if(n === 0x2c){ this.onToken(COMMA, \",\"); // ,\n      }else if(n === 0x74){ this.tState = TRUE1;  // t\n      }else if(n === 0x66){ this.tState = FALSE1;  // f\n      }else if(n === 0x6e){ this.tState = NULL1; // n\n      }else if(n === 0x22){ // \"\n        this.string = \"\";\n        this.stringBufferOffset = 0;\n        this.tState = STRING1;\n      }else if(n === 0x2d){ this.string = \"-\"; this.tState = NUMBER1; // -\n      }else{\n        if (n >= 0x30 && n < 0x40) { // 1-9\n          this.string = String.fromCharCode(n); this.tState = NUMBER3;\n        } else if (n === 0x20 || n === 0x09 || n === 0x0a || n === 0x0d) {\n          // whitespace\n        } else {\n          return this.charError(buffer, i);\n        }\n      }\n    }else if (this.tState === STRING1){ // After open quote\n      n = buffer[i]; // get current byte from buffer\n      // check for carry over of a multi byte char split between data chunks\n      // & fill temp buffer it with start of this data chunk up to the boundary limit set in the last iteration\n      if (this.bytes_remaining > 0) {\n        for (var j = 0; j < this.bytes_remaining; j++) {\n          this.temp_buffs[this.bytes_in_sequence][this.bytes_in_sequence - this.bytes_remaining + j] = buffer[j];\n        }\n\n        this.appendStringBuf(this.temp_buffs[this.bytes_in_sequence]);\n        this.bytes_in_sequence = this.bytes_remaining = 0;\n        i = i + j - 1;\n      } else if (this.bytes_remaining === 0 && n >= 128) { // else if no remainder bytes carried over, parse multi byte (>=128) chars one at a time\n        if (n <= 193 || n > 244) {\n          return this.onError(new Error(\"Invalid UTF-8 character at position \" + i + \" in state \" + Parser.toknam(this.tState)));\n        }\n        if ((n >= 194) && (n <= 223)) this.bytes_in_sequence = 2;\n        if ((n >= 224) && (n <= 239)) this.bytes_in_sequence = 3;\n        if ((n >= 240) && (n <= 244)) this.bytes_in_sequence = 4;\n        if ((this.bytes_in_sequence + i) > buffer.length) { // if bytes needed to complete char fall outside buffer length, we have a boundary split\n          for (var k = 0; k <= (buffer.length - 1 - i); k++) {\n            this.temp_buffs[this.bytes_in_sequence][k] = buffer[i + k]; // fill temp buffer of correct size with bytes available in this chunk\n          }\n          this.bytes_remaining = (i + this.bytes_in_sequence) - buffer.length;\n          i = buffer.length - 1;\n        } else {\n          this.appendStringBuf(buffer, i, i + this.bytes_in_sequence);\n          i = i + this.bytes_in_sequence - 1;\n        }\n      } else if (n === 0x22) {\n        this.tState = START;\n        this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset);\n        this.stringBufferOffset = 0;\n        this.onToken(STRING, this.string);\n        this.offset += Buffer.byteLength(this.string, 'utf8') + 1;\n        this.string = undefined;\n      }\n      else if (n === 0x5c) {\n        this.tState = STRING2;\n      }\n      else if (n >= 0x20) { this.appendStringChar(n); }\n      else {\n          return this.charError(buffer, i);\n      }\n    }else if (this.tState === STRING2){ // After backslash\n      n = buffer[i];\n      if(n === 0x22){ this.appendStringChar(n); this.tState = STRING1;\n      }else if(n === 0x5c){ this.appendStringChar(BACK_SLASH); this.tState = STRING1;\n      }else if(n === 0x2f){ this.appendStringChar(FORWARD_SLASH); this.tState = STRING1;\n      }else if(n === 0x62){ this.appendStringChar(BACKSPACE); this.tState = STRING1;\n      }else if(n === 0x66){ this.appendStringChar(FORM_FEED); this.tState = STRING1;\n      }else if(n === 0x6e){ this.appendStringChar(NEWLINE); this.tState = STRING1;\n      }else if(n === 0x72){ this.appendStringChar(CARRIAGE_RETURN); this.tState = STRING1;\n      }else if(n === 0x74){ this.appendStringChar(TAB); this.tState = STRING1;\n      }else if(n === 0x75){ this.unicode = \"\"; this.tState = STRING3;\n      }else{\n        return this.charError(buffer, i);\n      }\n    }else if (this.tState === STRING3 || this.tState === STRING4 || this.tState === STRING5 || this.tState === STRING6){ // unicode hex codes\n      n = buffer[i];\n      // 0-9 A-F a-f\n      if ((n >= 0x30 && n < 0x40) || (n > 0x40 && n <= 0x46) || (n > 0x60 && n <= 0x66)) {\n        this.unicode += String.fromCharCode(n);\n        if (this.tState++ === STRING6) {\n          var intVal = parseInt(this.unicode, 16);\n          this.unicode = undefined;\n          if (this.highSurrogate !== undefined && intVal >= 0xDC00 && intVal < (0xDFFF + 1)) { //<56320,57343> - lowSurrogate\n            this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate, intVal)));\n            this.highSurrogate = undefined;\n          } else if (this.highSurrogate === undefined && intVal >= 0xD800 && intVal < (0xDBFF + 1)) { //<55296,56319> - highSurrogate\n            this.highSurrogate = intVal;\n          } else {\n            if (this.highSurrogate !== undefined) {\n              this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate)));\n              this.highSurrogate = undefined;\n            }\n            this.appendStringBuf(new Buffer(String.fromCharCode(intVal)));\n          }\n          this.tState = STRING1;\n        }\n      } else {\n        return this.charError(buffer, i);\n      }\n    } else if (this.tState === NUMBER1 || this.tState === NUMBER3) {\n        n = buffer[i];\n\n        switch (n) {\n          case 0x30: // 0\n          case 0x31: // 1\n          case 0x32: // 2\n          case 0x33: // 3\n          case 0x34: // 4\n          case 0x35: // 5\n          case 0x36: // 6\n          case 0x37: // 7\n          case 0x38: // 8\n          case 0x39: // 9\n          case 0x2e: // .\n          case 0x65: // e\n          case 0x45: // E\n          case 0x2b: // +\n          case 0x2d: // -\n            this.string += String.fromCharCode(n);\n            this.tState = NUMBER3;\n            break;\n          default:\n            this.tState = START;\n            var error = this.numberReviver(this.string, buffer, i);\n            if (error){\n              return error;\n            }\n\n            this.offset += this.string.length - 1;\n            this.string = undefined;\n            i--;\n            break;\n        }\n    }else if (this.tState === TRUE1){ // r\n      if (buffer[i] === 0x72) { this.tState = TRUE2; }\n      else { return this.charError(buffer, i); }\n    }else if (this.tState === TRUE2){ // u\n      if (buffer[i] === 0x75) { this.tState = TRUE3; }\n      else { return this.charError(buffer, i); }\n    }else if (this.tState === TRUE3){ // e\n      if (buffer[i] === 0x65) { this.tState = START; this.onToken(TRUE, true); this.offset+= 3; }\n      else { return this.charError(buffer, i); }\n    }else if (this.tState === FALSE1){ // a\n      if (buffer[i] === 0x61) { this.tState = FALSE2; }\n      else { return this.charError(buffer, i); }\n    }else if (this.tState === FALSE2){ // l\n      if (buffer[i] === 0x6c) { this.tState = FALSE3; }\n      else { return this.charError(buffer, i); }\n    }else if (this.tState === FALSE3){ // s\n      if (buffer[i] === 0x73) { this.tState = FALSE4; }\n      else { return this.charError(buffer, i); }\n    }else if (this.tState === FALSE4){ // e\n      if (buffer[i] === 0x65) { this.tState = START; this.onToken(FALSE, false); this.offset+= 4; }\n      else { return this.charError(buffer, i); }\n    }else if (this.tState === NULL1){ // u\n      if (buffer[i] === 0x75) { this.tState = NULL2; }\n      else { return this.charError(buffer, i); }\n    }else if (this.tState === NULL2){ // l\n      if (buffer[i] === 0x6c) { this.tState = NULL3; }\n      else { return this.charError(buffer, i); }\n    }else if (this.tState === NULL3){ // l\n      if (buffer[i] === 0x6c) { this.tState = START; this.onToken(NULL, null); this.offset += 3; }\n      else { return this.charError(buffer, i); }\n    }\n  }\n};\nproto.onToken = function (token, value) {\n  // Override this to get events\n};\n\nproto.parseError = function (token, value) {\n  this.tState = STOP;\n  this.onError(new Error(\"Unexpected \" + Parser.toknam(token) + (value ? (\"(\" + JSON.stringify(value) + \")\") : \"\") + \" in state \" + Parser.toknam(this.state)));\n};\nproto.push = function () {\n  this.stack.push({value: this.value, key: this.key, mode: this.mode});\n};\nproto.pop = function () {\n  var value = this.value;\n  var parent = this.stack.pop();\n  this.value = parent.value;\n  this.key = parent.key;\n  this.mode = parent.mode;\n  this.emit(value);\n  if (!this.mode) { this.state = VALUE; }\n};\nproto.emit = function (value) {\n  if (this.mode) { this.state = COMMA; }\n  this.onValue(value);\n};\nproto.onValue = function (value) {\n  // Override me\n};\nproto.onToken = function (token, value) {\n  if(this.state === VALUE){\n    if(token === STRING || token === NUMBER || token === TRUE || token === FALSE || token === NULL){\n      if (this.value) {\n        this.value[this.key] = value;\n      }\n      this.emit(value);\n    }else if(token === LEFT_BRACE){\n      this.push();\n      if (this.value) {\n        this.value = this.value[this.key] = {};\n      } else {\n        this.value = {};\n      }\n      this.key = undefined;\n      this.state = KEY;\n      this.mode = OBJECT;\n    }else if(token === LEFT_BRACKET){\n      this.push();\n      if (this.value) {\n        this.value = this.value[this.key] = [];\n      } else {\n        this.value = [];\n      }\n      this.key = 0;\n      this.mode = ARRAY;\n      this.state = VALUE;\n    }else if(token === RIGHT_BRACE){\n      if (this.mode === OBJECT) {\n        this.pop();\n      } else {\n        return this.parseError(token, value);\n      }\n    }else if(token === RIGHT_BRACKET){\n      if (this.mode === ARRAY) {\n        this.pop();\n      } else {\n        return this.parseError(token, value);\n      }\n    }else{\n      return this.parseError(token, value);\n    }\n  }else if(this.state === KEY){\n    if (token === STRING) {\n      this.key = value;\n      this.state = COLON;\n    } else if (token === RIGHT_BRACE) {\n      this.pop();\n    } else {\n      return this.parseError(token, value);\n    }\n  }else if(this.state === COLON){\n    if (token === COLON) { this.state = VALUE; }\n    else { return this.parseError(token, value); }\n  }else if(this.state === COMMA){\n    if (token === COMMA) {\n      if (this.mode === ARRAY) { this.key++; this.state = VALUE; }\n      else if (this.mode === OBJECT) { this.state = KEY; }\n\n    } else if (token === RIGHT_BRACKET && this.mode === ARRAY || token === RIGHT_BRACE && this.mode === OBJECT) {\n      this.pop();\n    } else {\n      return this.parseError(token, value);\n    }\n  }else{\n    return this.parseError(token, value);\n  }\n};\n\n// Override to implement your own number reviver.\n// Any value returned is treated as error and will interrupt parsing.\nproto.numberReviver = function (text, buffer, i) {\n  var result = Number(text);\n\n  if (isNaN(result)) {\n    return this.charError(buffer, i);\n  }\n\n  if ((text.match(/[0-9]+/) == text) && (result.toString() != text)) {\n    // Long string of digits which is an ID string and not valid and/or safe JavaScript integer Number\n    this.onToken(STRING, text);\n  } else {\n    this.onToken(NUMBER, result);\n  }\n}\n\nParser.C = C;\n\nmodule.exports = Parser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SparqlJsonParser = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst readable_stream_1 = require(\"readable-stream\");\n// tslint:disable-next-line:no-var-requires\nconst JsonParser = require('@bergos/jsonparse');\n/**\n * Parser for the SPARQL 1.1 Query Results JSON format.\n * @see https://www.w3.org/TR/sparql11-results-json/\n */\nclass SparqlJsonParser {\n    constructor(settings) {\n        var _a;\n        settings = settings || {};\n        this.dataFactory = settings.dataFactory || new rdf_data_factory_1.DataFactory();\n        this.prefixVariableQuestionMark = !!settings.prefixVariableQuestionMark;\n        this.suppressMissingStreamResultsError = (_a = settings.suppressMissingStreamResultsError) !== null && _a !== void 0 ? _a : true;\n    }\n    /**\n     * Convert a SPARQL JSON bindings response to an array of bindings objects.\n     * @param sparqlResponse A SPARQL JSON response.\n     * @return {IBindings[]} An array of bindings.\n     */\n    parseJsonResults(sparqlResponse) {\n        return sparqlResponse.results.bindings.map((rawBindings) => this.parseJsonBindings(rawBindings));\n    }\n    /**\n     * Convert a SPARQL JSON bindings response stream to a stream of bindings objects.\n     *\n     * The bindings stream will emit a 'variables' event that will contain\n     * the array of variables (as RDF.Variable[]), as defined in the response head.\n     *\n     * @param {NodeJS.ReadableStream} sparqlResponseStream A SPARQL JSON response stream.\n     * @return {NodeJS.ReadableStream} A stream of bindings.\n     */\n    parseJsonResultsStream(sparqlResponseStream) {\n        const errorListener = (error) => resultStream.emit('error', error);\n        sparqlResponseStream.on('error', errorListener);\n        const jsonParser = new JsonParser();\n        jsonParser.onError = errorListener;\n        let variablesFound = false;\n        let resultsFound = false;\n        jsonParser.onValue = (value) => {\n            if (jsonParser.key === \"vars\" && jsonParser.stack.length === 2 && jsonParser.stack[1].key === 'head') {\n                resultStream.emit('variables', value.map((v) => this.dataFactory.variable(v)));\n                variablesFound = true;\n            }\n            else if (jsonParser.key === \"results\" && jsonParser.stack.length === 1) {\n                resultsFound = true;\n            }\n            else if (typeof jsonParser.key === 'number' && jsonParser.stack.length === 3 && jsonParser.stack[1].key === 'results' && jsonParser.stack[2].key === 'bindings') {\n                try {\n                    resultStream.push(this.parseJsonBindings(value));\n                }\n                catch (error) {\n                    resultStream.emit(\"error\", error);\n                }\n            }\n            else if (jsonParser.key === \"metadata\" && jsonParser.stack.length === 1) {\n                resultStream.emit('metadata', value);\n            }\n        };\n        const resultStream = sparqlResponseStream\n            .on(\"end\", _ => {\n            if (!resultsFound && !this.suppressMissingStreamResultsError) {\n                resultStream.emit(\"error\", new Error(\"No valid SPARQL query results were found.\"));\n            }\n            else if (!variablesFound) {\n                resultStream.emit('variables', []);\n            }\n        })\n            .pipe(new readable_stream_1.Transform({\n            objectMode: true,\n            transform(chunk, encoding, callback) {\n                jsonParser.write(chunk);\n                callback();\n            }\n        }));\n        return resultStream;\n    }\n    /**\n     * Convert a SPARQL JSON result binding to a bindings object.\n     * @param rawBindings A SPARQL JSON result binding.\n     * @return {IBindings} A bindings object.\n     */\n    parseJsonBindings(rawBindings) {\n        const bindings = {};\n        for (const key in rawBindings) {\n            const rawValue = rawBindings[key];\n            bindings[this.prefixVariableQuestionMark ? ('?' + key) : key] = this.parseJsonValue(rawValue);\n        }\n        return bindings;\n    }\n    /**\n     * Convert a SPARQL JSON result value to an RDF term.\n     * @param rawValue A SPARQL JSON result value\n     * @return {RDF.Term} An RDF term.\n     */\n    parseJsonValue(rawValue) {\n        let value;\n        switch (rawValue.type) {\n            case 'bnode':\n                value = this.dataFactory.blankNode(rawValue.value);\n                break;\n            case 'literal':\n                if (rawValue['xml:lang']) {\n                    value = this.dataFactory.literal(rawValue.value, rawValue['xml:lang']);\n                }\n                else if (rawValue.datatype) {\n                    value = this.dataFactory.literal(rawValue.value, this.dataFactory.namedNode(rawValue.datatype));\n                }\n                else {\n                    value = this.dataFactory.literal(rawValue.value);\n                }\n                break;\n            case 'typed-literal':\n                // Virtuoso uses this non-spec-compliant way of defining typed literals\n                value = this.dataFactory.literal(rawValue.value, this.dataFactory.namedNode(rawValue.datatype));\n                break;\n            case 'triple':\n                const tripleValue = rawValue.value;\n                if (!tripleValue || !tripleValue.subject || !tripleValue.predicate || !tripleValue.object) {\n                    throw new Error('Invalid quoted triple: ' + JSON.stringify(rawValue));\n                }\n                value = this.dataFactory.quad(this.parseJsonValue(tripleValue.subject), this.parseJsonValue(tripleValue.predicate), this.parseJsonValue(tripleValue.object));\n                break;\n            default:\n                value = this.dataFactory.namedNode(rawValue.value);\n                break;\n        }\n        return value;\n    }\n    /**\n     * Convert a SPARQL JSON boolean response to a boolean.\n     * This will throw an error if the given reponse was not a valid boolean response.\n     * @param sparqlResponse A SPARQL JSON response.\n     * @return {IBindings[]} An array of bindings.\n     */\n    parseJsonBoolean(sparqlResponse) {\n        if ('boolean' in sparqlResponse) {\n            return sparqlResponse.boolean;\n        }\n        throw new Error('No valid ASK response was found.');\n    }\n    /**\n     * Convert a SPARQL JSON boolean response stream to a promise resolving to a boolean.\n     * This will reject if the given reponse was not a valid boolean response.\n     * @param {NodeJS.ReadableStream} sparqlResponseStream A SPARQL JSON response stream.\n     * @return {Promise<boolean>} The response boolean.\n     */\n    parseJsonBooleanStream(sparqlResponseStream) {\n        return new Promise((resolve, reject) => {\n            const parser = new JsonParser();\n            parser.onError = reject;\n            parser.onValue = (value) => {\n                if (parser.key === \"boolean\" && typeof value === 'boolean' && parser.stack.length === 1) {\n                    resolve(value);\n                }\n            };\n            sparqlResponseStream\n                .on('error', reject)\n                .on('data', d => parser.write(d))\n                .on('end', () => reject(new Error('No valid ASK response was found.')));\n        });\n    }\n}\nexports.SparqlJsonParser = SparqlJsonParser;\n//# sourceMappingURL=SparqlJsonParser.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/SparqlJsonParser\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Converter = void 0;\nconst rdf_literal_1 = require(\"rdf-literal\");\nconst sparqljson_parse_1 = require(\"sparqljson-parse\");\n/**\n * Converts SPARQL JSON results to a tree-based structure by splitting variables on a certain delimiter.\n */\nclass Converter {\n    constructor(settings) {\n        settings = settings || { delimiter: '_' };\n        settings.prefixVariableQuestionMark = false;\n        this.delimiter = settings.delimiter || '_';\n        this.parser = new sparqljson_parse_1.SparqlJsonParser(settings);\n        this.materializeRdfJsTerms = settings.materializeRdfJsTerms;\n    }\n    /**\n     * Adds a value to a tree.\n     * @param tree A tree datastructure.\n     * @param {string[]} path The path of keys in the tree.\n     * @param {Term} value A value to add.\n     * @param {string} lastKeyPath The accumulated key path (separated by the given delimiter)\n     *                             through recursive calls, can be empty.\n     * @param {ISchema} schema A schema.\n     * @param {string} delimiter The string to join key paths by.\n     */\n    static addValueToTree(tree, path, value, lastKeyPath, schema, delimiter) {\n        const key = path[0];\n        const keyPath = lastKeyPath ? (lastKeyPath + delimiter + key) : key;\n        const singularize = schema.singularizeVariables[keyPath];\n        if (path.length === 1) {\n            // Leaf nodes\n            if (singularize) {\n                if (!tree[key]) {\n                    tree[key] = value;\n                }\n            }\n            else {\n                if (!tree[key]) {\n                    tree[key] = [];\n                }\n                tree[key].push(value);\n            }\n        }\n        else {\n            // Inner nodes\n            let nextNode;\n            if (singularize) {\n                if (!tree[key]) {\n                    tree[key] = {};\n                }\n                nextNode = tree[key];\n            }\n            else {\n                if (!tree[key]) {\n                    tree[key] = [{}];\n                }\n                nextNode = tree[key][0];\n            }\n            Converter.addValueToTree(nextNode, path.slice(1), value, keyPath, schema, delimiter);\n        }\n    }\n    /**\n     * Recursively merge the two given trees.\n     * @param tree1 A first tree (has key priority on literals).\n     * @param tree2 A second tree. All arrays will/should only have a single element.\n     * @return {any} The merged tree.\n     */\n    static mergeTrees(tree1, tree2) {\n        if (typeof tree1 !== typeof tree2) {\n            throw new Error(`Two incompatible tree nodes were found: ${typeof tree1} and ${typeof tree2}`);\n        }\n        if (Array.isArray(tree1) !== Array.isArray(tree2)) {\n            throw new Error(`Two incompatible tree nodes were found: Array?${Array.isArray(tree1)} and Array?${Array.isArray(tree2)}`);\n        }\n        if (typeof tree1 === 'object' && typeof tree2 === 'object') {\n            if (tree1.termType && tree2.termType) {\n                if (tree1.equals(tree2)) {\n                    return { valid: true, result: tree1 };\n                }\n                else {\n                    return { valid: false, result: tree1 };\n                }\n            }\n            if (Array.isArray(tree1) && Array.isArray(tree2)) {\n                if (tree1.length > 0) {\n                    const merged = [];\n                    let valid = false;\n                    for (const tree1Element of tree1) {\n                        const mergedElement = Converter.mergeTrees(tree1Element, tree2[0]);\n                        if (mergedElement.valid) {\n                            valid = true;\n                            merged.push(mergedElement.result);\n                        }\n                        else {\n                            merged.push(tree1Element);\n                        }\n                    }\n                    if (valid) {\n                        return { valid: true, result: merged };\n                    }\n                }\n                return { valid: true, result: tree1.concat(tree2) };\n            }\n            else {\n                const merged = {};\n                for (const key2 in tree2) {\n                    merged[key2] = tree2[key2];\n                }\n                for (const key1 in tree1) {\n                    if (merged[key1]) {\n                        const mergedElement = Converter.mergeTrees(tree1[key1], merged[key1]);\n                        if (mergedElement.valid) {\n                            merged[key1] = mergedElement.result;\n                        }\n                        else {\n                            return { valid: false, result: tree1 };\n                        }\n                    }\n                    else {\n                        merged[key1] = tree1[key1];\n                    }\n                }\n                return { valid: true, result: merged };\n            }\n        }\n        else {\n            throw new Error(`Unmergable tree types: ${typeof tree1} and ${typeof tree2}`);\n        }\n    }\n    /**\n     * Materialize all RDF terms in the given tree to raw values.\n     * This does not mutate the original tree.\n     * @param tree A tree.\n     * @return {any} A materialized tree.\n     */\n    static materializeTree(tree) {\n        if (tree.termType) {\n            return (0, rdf_literal_1.getTermRaw)(tree);\n        }\n        else if (Array.isArray(tree)) {\n            return tree.map(Converter.materializeTree);\n        }\n        else {\n            const materialized = {};\n            for (const key in tree) {\n                materialized[key] = Converter.materializeTree(tree[key]);\n            }\n            return materialized;\n        }\n    }\n    /**\n     * Convert a complete SPARQL JSON response to a GraphQL results tree.\n     * @param sparqlResponse A SPARQL JSON response.\n     * @param {ISchema} schema A schema.\n     * @return {any} A GraphQL results tree.\n     */\n    sparqlJsonResultsToTree(sparqlResponse, schema) {\n        return this.bindingsToTree(this.parser.parseJsonResults(sparqlResponse), schema || { singularizeVariables: {} });\n    }\n    /**\n     * Convert an array of bindings to a GraphQL results tree.\n     * @param {IBindings[]} bindingsArray An array of bindings.\n     * @param {ISchema} schema A schema.\n     * @return {any} A GraphQL results tree.\n     */\n    bindingsToTree(bindingsArray, schema) {\n        const singularRoot = schema && schema.singularizeVariables[''];\n        let tree = singularRoot ? {} : [];\n        for (const bindings of bindingsArray) {\n            const subTree = singularRoot ? {} : [{}];\n            for (const key in bindings) {\n                const path = key.split(this.delimiter);\n                const value = bindings[key];\n                Converter.addValueToTree(singularRoot ? subTree : subTree[0], path, value, '', schema, this.delimiter);\n            }\n            tree = Converter.mergeTrees(tree, subTree).result;\n        }\n        if (this.materializeRdfJsTerms) {\n            tree = Converter.materializeTree(tree);\n        }\n        return tree;\n    }\n}\nexports.Converter = Converter;\n//# sourceMappingURL=Converter.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/Converter\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeTree = void 0;\nconst bus_query_result_serialize_1 = require(\"@comunica/bus-query-result-serialize\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst sparqljson_to_tree_1 = require(\"sparqljson-to-tree\");\n/**\n * A comunica Tree Query Result Serialize Actor.\n */\nclass ActorQueryResultSerializeTree extends bus_query_result_serialize_1.ActorQueryResultSerializeFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{ \"tree\": 0.5 }} mediaTypePriorities\n     *   \\ @defaultNested {{ \"tree\": \"https://comunica.linkeddatafragments.org/#results_tree\" }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    /**\n     *\n     * @param {BindingsStream} bindingsStream\n     * @param context\n     * @param {IConverterSettings} converterSettings\n     * @return {Promise<string>}\n     */\n    static async bindingsStreamToGraphQl(bindingsStream, context, converterSettings) {\n        const actionContext = core_1.ActionContext.ensureActionContext(context);\n        const converter = new sparqljson_to_tree_1.Converter(converterSettings);\n        const schema = {\n            singularizeVariables: actionContext.get(context_entries_1.KeysInitQuery.graphqlSingularizeVariables) ?? {},\n        };\n        return converter.bindingsToTree(await bindingsStream.map((bindings) => Object.fromEntries([...bindings]\n            .map(([key, value]) => [key.value, value]))).toArray(), schema);\n    }\n    async testHandleChecked(action) {\n        if (action.type !== 'bindings') {\n            return (0, core_1.failTest)('This actor can only handle bindings streams.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async runHandle(action, _mediaType) {\n        const data = new readable_stream_1.Readable();\n        data._read = () => {\n            data._read = () => { };\n            ActorQueryResultSerializeTree.bindingsStreamToGraphQl(action.bindingsStream, action.context, { materializeRdfJsTerms: true })\n                .then((result) => {\n                data.push(JSON.stringify(result, null, '  '));\n                data.push(null);\n            })\n                .catch(error => data.emit('error', error));\n        };\n        return { data };\n    }\n}\nexports.ActorQueryResultSerializeTree = ActorQueryResultSerializeTree;\n//# sourceMappingURL=ActorQueryResultSerializeTree.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindingsStreamToGraphQl = void 0;\nconst ActorQueryResultSerializeTree_1 = require(\"./ActorQueryResultSerializeTree\");\nconst { bindingsStreamToGraphQl } = ActorQueryResultSerializeTree_1.ActorQueryResultSerializeTree;\nexports.bindingsStreamToGraphQl = bindingsStreamToGraphQl;\n__exportStar(require(\"./ActorQueryResultSerializeTree\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediatorCombineUnion = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica mediator that takes the union of all actor results.\n *\n * The actors that are registered first will have priority on setting overlapping fields.\n */\nclass MediatorCombineUnion extends core_1.Mediator {\n    constructor(args) {\n        super(args);\n        this.combiner = this.createCombiner();\n    }\n    async mediate(action) {\n        let testResults;\n        try {\n            testResults = this.publish(action);\n        }\n        catch {\n            testResults = [];\n        }\n        if (this.filterFailures) {\n            const _testResults = [];\n            for (const result of testResults) {\n                const reply = await result.reply;\n                if (reply.isPassed()) {\n                    _testResults.push(result);\n                }\n            }\n            testResults = _testResults;\n        }\n        // Delegate reply errors.\n        const sideDatas = [];\n        await Promise.all(testResults.map(async ({ reply }, i) => {\n            const awaited = (await reply);\n            const value = awaited.getOrThrow();\n            sideDatas[i] = awaited.getSideData();\n            return value;\n        }));\n        // Run action on all actors.\n        const results = await Promise.all(testResults\n            .map((result, i) => result.actor.runObservable(action, sideDatas[i])));\n        // Return the combined results.\n        return this.combiner(results);\n    }\n    mediateWith() {\n        throw new Error('Method not supported.');\n    }\n    createCombiner() {\n        return (results) => {\n            const data = {};\n            data[this.field] = {};\n            // eslint-disable-next-line unicorn/prefer-spread\n            [{}].concat(results.map((result) => result[this.field]))\n                // eslint-disable-next-line unicorn/no-array-for-each\n                .forEach((value) => {\n                data[this.field] = { ...value, ...data[this.field] };\n            });\n            return data;\n        };\n    }\n}\nexports.MediatorCombineUnion = MediatorCombineUnion;\n//# sourceMappingURL=MediatorCombineUnion.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MediatorCombineUnion\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediatorNumber = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A mediator that can mediate over a single number field.\n *\n * It takes the required 'field' and 'type' parameters.\n * The 'field' parameter represents the field name of the test result field over which must be mediated.\n * The 'type' parameter\n */\nclass MediatorNumber extends core_1.Mediator {\n    constructor(args) {\n        super(args);\n        this.indexPicker = this.createIndexPicker();\n    }\n    /**\n     * @return {(tests: T[]) => number} A function that returns the index of the test result\n     *                                  that has been chosen by this mediator.\n     */\n    createIndexPicker() {\n        switch (this.type) {\n            case 'min':\n                return (tests) => tests.reduce((prev, curr, i) => {\n                    const val = this.getOrDefault(curr[this.field], Number.POSITIVE_INFINITY);\n                    return val !== null && (Number.isNaN(prev[0]) || prev[0] > val) ? [val, i] : prev;\n                }, [Number.NaN, -1])[1];\n            case 'max':\n                return (tests) => tests.reduce((prev, curr, i) => {\n                    const val = this.getOrDefault(curr[this.field], Number.NEGATIVE_INFINITY);\n                    return val !== null && (Number.isNaN(prev[0]) || prev[0] < val) ? [val, i] : prev;\n                }, [Number.NaN, -1])[1];\n            default:\n                // eslint-disable-next-line ts/restrict-template-expressions\n                throw new Error(`No valid \"type\" value was given, must be either 'min' or 'max', but got: ${this.type}`);\n        }\n    }\n    getOrDefault(value, defaultValue) {\n        // eslint-disable-next-line ts/prefer-nullish-coalescing\n        return value === undefined ? defaultValue : value;\n    }\n    async mediateWith(action, testResults) {\n        let wrappedResults = await Promise.all(testResults.map(({ reply }) => reply));\n        // Collect failures if we want to ignore them\n        const failures = [];\n        if (this.ignoreFailures) {\n            const dummy = {};\n            dummy[this.field] = null;\n            wrappedResults = wrappedResults.map((result) => {\n                if (result.isFailed()) {\n                    failures.push(result.getFailMessage());\n                    return (0, core_1.passTestWithSideData)(dummy, undefined);\n                }\n                return result;\n            });\n        }\n        // Resolve values\n        const sideDatas = [];\n        const results = wrappedResults.map((result, i) => {\n            const value = result.getOrThrow();\n            sideDatas[i] = result.getSideData();\n            return value;\n        });\n        // Determine one value\n        const index = this.indexPicker(results);\n        if (index < 0) {\n            return (0, core_1.failTest)(this.constructFailureMessage(action, failures));\n        }\n        return (0, core_1.passTestWithSideData)(testResults[index].actor, sideDatas[index]);\n    }\n}\nexports.MediatorNumber = MediatorNumber;\n//# sourceMappingURL=MediatorNumber.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MediatorNumber\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorDereferenceBase = exports.isHardError = exports.emptyReadable = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst readable_stream_1 = require(\"readable-stream\");\nfunction emptyReadable() {\n    const data = new readable_stream_1.Readable();\n    data.push(null);\n    return data;\n}\nexports.emptyReadable = emptyReadable;\n/**\n * Check if hard errors should occur on HTTP or parse errors.\n * @param {IActionContext} context An action context.\n * @return {boolean} If hard errors are enabled.\n */\nfunction isHardError(context) {\n    return !context.get(context_entries_1.KeysInitQuery.lenient);\n}\nexports.isHardError = isHardError;\n/**\n * A base actor for dereferencing URLs to (generic) streams.\n *\n * Actor types:\n * * Input:  IActionDereference:      A URL.\n * * Test:   <none>\n * * Output: IActorDereferenceOutput: A Readable stream\n *\n * @see IActionDereference\n * @see IActorDereferenceOutput\n */\nclass ActorDereferenceBase extends core_1.Actor {\n    constructor(args) {\n        super(args);\n    }\n    /**\n     * Handle the given error as a rejection or delegate it to the logger,\n     * depending on whether or not hard errors are enabled.\n     * @param {I} action An action.\n     * @param {Error} error An error that has occurred.\n     * @param {N} output Data to add to the output\n     */\n    async dereferenceErrorHandler(action, error, output) {\n        if (isHardError(action.context)) {\n            throw error;\n        }\n        this.logWarn(action.context, error.message, () => ({ url: action.url }));\n        return { ...output, data: emptyReadable() };\n    }\n}\nexports.ActorDereferenceBase = ActorDereferenceBase;\n//# sourceMappingURL=ActorDereferenceBase.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorDereference = void 0;\nconst ActorDereferenceBase_1 = require(\"./ActorDereferenceBase\");\n/**\n * A base actor for dereferencing URLs to (generic) streams.\n *\n * Actor types:\n * * Input:  IActionDereference:      A URL.\n * * Test:   <none>\n * * Output: IActorDereferenceOutput: A Readable stream\n *\n * @see IActionDereference\n * @see IActorDereferenceOutput\n */\nclass ActorDereference extends ActorDereferenceBase_1.ActorDereferenceBase {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Dereferencing failed: none of the configured actors were able to handle ${action.url}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n    /**\n     * Handle the given error as a rejection or delegate it to the logger,\n     * depending on whether or not hard errors are enabled.\n     * @param {IActionDereference} action A dereference action.\n     * @param {Error} error An error that has occurred.\n     * @param headers Optional HTTP headers to pass.\n     * @param {number} requestTime The time it took to request the page in milliseconds.\n     * @return {Promise<IActorDereferenceOutput>} A promise that rejects or resolves to an empty output.\n     */\n    async handleDereferenceErrors(action, error, headers, requestTime = 0) {\n        return this.dereferenceErrorHandler(action, error, { url: action.url, exists: false, headers, requestTime });\n    }\n}\nexports.ActorDereference = ActorDereference;\n//# sourceMappingURL=ActorDereference.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorDereferenceParse = exports.getMediaTypeFromExtension = void 0;\nconst core_1 = require(\"@comunica/core\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst ActorDereferenceBase_1 = require(\"./ActorDereferenceBase\");\n/**\n * Get the media type based on the extension of the given path,\n * which can be an URL or file path.\n * @param {string} path A path.\n * @param {Record<string, string>} mediaMappings A collection of mappings,\n * mapping file extensions to their corresponding media type.\n * @return {string} A media type or the empty string.\n */\nfunction getMediaTypeFromExtension(path, mediaMappings) {\n    const dotIndex = path.lastIndexOf('.');\n    // Get extension after last dot and map to media\n    // eslint-disable-next-line ts/prefer-nullish-coalescing\n    return (dotIndex >= 0 && mediaMappings?.[path.slice(dotIndex + 1)]) || '';\n}\nexports.getMediaTypeFromExtension = getMediaTypeFromExtension;\n/**\n * An abstract actor that handles dereference and parse actions.\n *\n * Actor types:\n * Input:  IActionDereferenceParse:      A URL.\n * Test:   <none>\n * Output: IActorDereferenceParseOutput: A data stream of type output by the Parser.\n *\n */\nclass ActorDereferenceParse extends ActorDereferenceBase_1.ActorDereferenceBase {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    /**\n     * If hard errors are disabled, modify the given stream so that errors are delegated to the logger.\n     * @param {IActionDereferenceParse} action A dereference action.\n     * @param {Readable} data A data stream.\n     * @return {Readable} The resulting data stream.\n     */\n    handleDereferenceStreamErrors(action, data) {\n        // If we don't emit hard errors, make parsing error events log instead, and silence them downstream.\n        if (!(0, ActorDereferenceBase_1.isHardError)(action.context)) {\n            data.on('error', (error) => {\n                this.logWarn(action.context, error.message, () => ({ url: action.url }));\n                // Make sure the errored stream is ended.\n                data.push(null);\n            });\n            data = data.pipe(new readable_stream_1.PassThrough({ objectMode: true }));\n        }\n        return data;\n    }\n    async run(action) {\n        const { context } = action;\n        const dereference = await this.mediatorDereference.mediate({\n            ...action,\n            mediaTypes: async () => (await this.mediatorParseMediatypes?.mediate({ context, mediaTypes: true }))?.mediaTypes,\n        });\n        let result;\n        if (dereference.exists) {\n            try {\n                result = (await this.mediatorParse.mediate({\n                    context,\n                    handle: { context, ...dereference, metadata: await this.getMetadata(dereference) },\n                    // eslint-disable-next-line ts/prefer-nullish-coalescing\n                    handleMediaType: dereference.mediaType || action.mediaType ||\n                        getMediaTypeFromExtension(dereference.url, this.mediaMappings),\n                })).handle;\n                result.data = this.handleDereferenceStreamErrors(action, result.data);\n            }\n            catch (error) {\n                // Close the body, to avoid process to hang\n                await dereference.data.close?.();\n                result = await this.dereferenceErrorHandler(action, error, {});\n            }\n        }\n        else {\n            // Close the dereference stream and return an empty response directly to avoid unnecessary processing.\n            // This code is equivalent to the error handler above in the catch clause, but avoids redundant processing.\n            await dereference.data.close?.();\n            result = { data: (0, ActorDereferenceBase_1.emptyReadable)() };\n        }\n        // Return the parsed stream and any metadata\n        return { ...dereference, ...result };\n    }\n}\nexports.ActorDereferenceParse = ActorDereferenceParse;\n//# sourceMappingURL=ActorDereferenceParse.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorDereference\"), exports);\n__exportStar(require(\"./ActorDereferenceParse\"), exports);\n__exportStar(require(\"./ActorDereferenceBase\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorDereferenceFallback = void 0;\nconst bus_dereference_1 = require(\"@comunica/bus-dereference\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Fallback Dereference Actor.\n */\nclass ActorDereferenceFallback extends bus_dereference_1.ActorDereference {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        return this.handleDereferenceErrors(action, new Error(`Could not dereference '${action.url}'`));\n    }\n}\nexports.ActorDereferenceFallback = ActorDereferenceFallback;\n//# sourceMappingURL=ActorDereferenceFallback.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorDereferenceFallback\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinEntriesSort = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for rdf-join-entries-sort events.\n *\n * Actor types:\n * * Input:  IActionRdfJoinEntriesSort:      Join entries.\n * * Test:   IActorTest:                     Test result.\n * * Output: IActorRdfJoinEntriesSortOutput: The sorted join entries.\n *\n * @see IActionRdfJoinEntriesSort\n * @see IActorTest\n * @see IActorRdfJoinEntriesSortOutput\n */\nclass ActorRdfJoinEntriesSort extends core_1.Actor {\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Sorting join entries failed: none of the configured actors were able to sort} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfJoinEntriesSort = ActorRdfJoinEntriesSort;\n//# sourceMappingURL=ActorRdfJoinEntriesSort.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinEntriesSort\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinEntriesSortCardinality = void 0;\nconst bus_rdf_join_entries_sort_1 = require(\"@comunica/bus-rdf-join-entries-sort\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * An actor that sorts join entries by increasing cardinality.\n */\nclass ActorRdfJoinEntriesSortCardinality extends bus_rdf_join_entries_sort_1.ActorRdfJoinEntriesSort {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        return (0, core_1.passTest)({\n            accuracy: action.entries.length === 0 ?\n                1 :\n                action.entries\n                    .reduce((sum, entry) => sum + (Number.isFinite(entry.metadata.cardinality.value) ? 1 : 0), 0) /\n                    action.entries.length,\n        });\n    }\n    async run(action) {\n        const entries = [...action.entries]\n            .sort((entryLeft, entryRight) => entryLeft.metadata.cardinality.value - entryRight.metadata.cardinality.value);\n        return { entries };\n    }\n}\nexports.ActorRdfJoinEntriesSortCardinality = ActorRdfJoinEntriesSortCardinality;\n//# sourceMappingURL=ActorRdfJoinEntriesSortCardinality.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinEntriesSortCardinality\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinSelectivity = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for rdf-join-selectivity events.\n *\n * Actor types:\n * * Input:  IActionRdfJoinSelectivity:      Join entries.\n * * Test:   IMediatorTypeAccuracy:          The accuracy of the selectivity calculator.\n * * Output: IActorRdfJoinSelectivityOutput: The calculated join selectivity.\n *\n * @see IActionRdfJoinSelectivity\n * @see IActorRdfJoinSelectivityTest\n * @see IActorRdfJoinSelectivityOutput\n */\nclass ActorRdfJoinSelectivity extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Determining join selectivity failed: none of the configured actors were able to calculate selectivities} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfJoinSelectivity = ActorRdfJoinSelectivity;\n//# sourceMappingURL=ActorRdfJoinSelectivity.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinSelectivity\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JoinTypes = exports.ActorRdfJoinSelectivityVariableCounting = void 0;\nconst bus_rdf_join_selectivity_1 = require(\"@comunica/bus-rdf-join-selectivity\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Variable Counting RDF Join Selectivity Actor.\n * Based on the \"variable counting predicates\" heuristic from\n * \"SPARQL basic graph pattern optimization using selectivity estimation.\"\n */\nclass ActorRdfJoinSelectivityVariableCounting extends bus_rdf_join_selectivity_1.ActorRdfJoinSelectivity {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTest)({ accuracy: 0.5 });\n    }\n    static getPatternCost(pattern) {\n        let cost = 1;\n        if (pattern.subject.termType === 'Variable') {\n            cost += 4;\n        }\n        if (pattern.predicate.termType === 'Variable' || pattern.type === sparqlalgebrajs_1.Algebra.types.PATH) {\n            cost += 1;\n        }\n        if (pattern.object.termType === 'Variable') {\n            cost += 2;\n        }\n        if (pattern.graph.termType === 'Variable') {\n            cost += 1;\n        }\n        return cost / 9;\n    }\n    static getJoinTypes(operation1, operation2) {\n        const joinTypes = [];\n        // Check operation1.subject\n        if (operation1.subject.termType === 'Variable') {\n            if (operation1.subject.equals(operation2.subject)) {\n                joinTypes.push(JoinTypes.unboundSS);\n            }\n            if (operation2.type === 'pattern' && operation1.subject.equals(operation2.predicate)) {\n                joinTypes.push(JoinTypes.unboundSP);\n            }\n            if (operation1.subject.equals(operation2.object)) {\n                joinTypes.push(JoinTypes.unboundSO);\n            }\n            if (operation1.subject.equals(operation2.graph)) {\n                joinTypes.push(JoinTypes.unboundSG);\n            }\n        }\n        else {\n            if (operation1.subject.equals(operation2.subject)) {\n                joinTypes.push(JoinTypes.boundSS);\n            }\n            if (operation2.type === 'pattern' && operation1.subject.equals(operation2.predicate)) {\n                joinTypes.push(JoinTypes.boundSP);\n            }\n            if (operation1.subject.equals(operation2.object)) {\n                joinTypes.push(JoinTypes.boundSO);\n            }\n            if (operation1.subject.equals(operation2.graph)) {\n                joinTypes.push(JoinTypes.boundSG);\n            }\n        }\n        // Check operation1.predicate\n        if (operation1.type === 'pattern') {\n            if (operation1.predicate.termType === 'Variable') {\n                if (operation1.predicate.equals(operation2.subject)) {\n                    joinTypes.push(JoinTypes.unboundPS);\n                }\n                if (operation2.type === 'pattern' && operation1.predicate.equals(operation2.predicate)) {\n                    joinTypes.push(JoinTypes.unboundPP);\n                }\n                if (operation1.predicate.equals(operation2.object)) {\n                    joinTypes.push(JoinTypes.unboundPO);\n                }\n                if (operation1.predicate.equals(operation2.graph)) {\n                    joinTypes.push(JoinTypes.unboundPG);\n                }\n            }\n            else {\n                if (operation1.predicate.equals(operation2.subject)) {\n                    joinTypes.push(JoinTypes.boundPS);\n                }\n                if (operation2.type === 'pattern' && operation1.predicate.equals(operation2.predicate)) {\n                    joinTypes.push(JoinTypes.boundPP);\n                }\n                if (operation1.predicate.equals(operation2.object)) {\n                    joinTypes.push(JoinTypes.boundPO);\n                }\n                if (operation1.predicate.equals(operation2.graph)) {\n                    joinTypes.push(JoinTypes.boundPG);\n                }\n            }\n        }\n        // Check operation1.object\n        if (operation1.object.termType === 'Variable') {\n            if (operation1.object.equals(operation2.subject)) {\n                joinTypes.push(JoinTypes.unboundOS);\n            }\n            if (operation2.type === 'pattern' && operation1.object.equals(operation2.predicate)) {\n                joinTypes.push(JoinTypes.unboundOP);\n            }\n            if (operation1.object.equals(operation2.object)) {\n                joinTypes.push(JoinTypes.unboundOO);\n            }\n            if (operation1.object.equals(operation2.graph)) {\n                joinTypes.push(JoinTypes.unboundOG);\n            }\n        }\n        else {\n            if (operation1.object.equals(operation2.subject)) {\n                joinTypes.push(JoinTypes.boundOS);\n            }\n            if (operation2.type === 'pattern' && operation1.object.equals(operation2.predicate)) {\n                joinTypes.push(JoinTypes.boundOP);\n            }\n            if (operation1.object.equals(operation2.object)) {\n                joinTypes.push(JoinTypes.boundOO);\n            }\n            if (operation1.object.equals(operation2.graph)) {\n                joinTypes.push(JoinTypes.boundOG);\n            }\n        }\n        // Check operation1.graph\n        if (operation1.graph.termType === 'Variable') {\n            if (operation1.graph.equals(operation2.subject)) {\n                joinTypes.push(JoinTypes.unboundGS);\n            }\n            if (operation2.type === 'pattern' && operation1.graph.equals(operation2.predicate)) {\n                joinTypes.push(JoinTypes.unboundGP);\n            }\n            if (operation1.graph.equals(operation2.object)) {\n                joinTypes.push(JoinTypes.unboundGO);\n            }\n            if (operation1.graph.equals(operation2.graph)) {\n                joinTypes.push(JoinTypes.unboundGG);\n            }\n        }\n        else {\n            if (operation1.graph.equals(operation2.subject)) {\n                joinTypes.push(JoinTypes.boundGS);\n            }\n            if (operation2.type === 'pattern' && operation1.graph.equals(operation2.predicate)) {\n                joinTypes.push(JoinTypes.boundGP);\n            }\n            if (operation1.graph.equals(operation2.object)) {\n                joinTypes.push(JoinTypes.boundGO);\n            }\n            if (operation1.graph.equals(operation2.graph)) {\n                joinTypes.push(JoinTypes.boundGG);\n            }\n        }\n        return joinTypes;\n    }\n    static getOperationsPairwiseJoinCost(operation1, operation2) {\n        let cost = ActorRdfJoinSelectivityVariableCounting.MAX_PAIRWISE_COST;\n        for (const joinType of ActorRdfJoinSelectivityVariableCounting.getJoinTypes(operation1, operation2)) {\n            switch (joinType) {\n                case JoinTypes.boundSS:\n                    cost -= 2 * 2;\n                    break;\n                case JoinTypes.boundSP:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.boundSO:\n                    cost -= 1 * 2;\n                    break;\n                case JoinTypes.boundSG:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.boundPS:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.boundPP:\n                    // Special case: patterns with equal (bound) predicates have the highest cost\n                    return 1;\n                case JoinTypes.boundPO:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.boundPG:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.boundOS:\n                    cost -= 1 * 2;\n                    break;\n                case JoinTypes.boundOP:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.boundOO:\n                    cost -= 1 * 2;\n                    break;\n                case JoinTypes.boundOG:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.boundGS:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.boundGP:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.boundGO:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.boundGG:\n                    cost -= 3 * 2;\n                    break;\n                case JoinTypes.unboundSS:\n                    cost -= 2;\n                    break;\n                case JoinTypes.unboundSP:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundSO:\n                    cost -= 1;\n                    break;\n                case JoinTypes.unboundSG:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundPS:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundPP:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundPO:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundPG:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundOS:\n                    cost -= 1;\n                    break;\n                case JoinTypes.unboundOP:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundOO:\n                    cost -= 1;\n                    break;\n                case JoinTypes.unboundOG:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundGS:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundGP:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundGO:\n                    cost -= 3;\n                    break;\n                case JoinTypes.unboundGG:\n                    cost -= 3;\n                    break;\n            }\n        }\n        return cost / ActorRdfJoinSelectivityVariableCounting.MAX_PAIRWISE_COST;\n    }\n    static getOperationsJoinCost(operations) {\n        // Determine all operations that select values (patterns and paths)\n        const patterns = [];\n        for (const operation of operations) {\n            sparqlalgebrajs_1.Util.recurseOperation(operation, {\n                [sparqlalgebrajs_1.Algebra.types.PATTERN](pattern) {\n                    patterns.push(pattern);\n                    return false;\n                },\n                [sparqlalgebrajs_1.Algebra.types.PATH](path) {\n                    patterns.push(path);\n                    return false;\n                },\n            });\n        }\n        // Determine pairwise costs\n        let totalCost = 0;\n        let costEntries = 0;\n        for (const pattern1 of patterns) {\n            for (const pattern2 of patterns) {\n                if (pattern1 !== pattern2) {\n                    totalCost += ActorRdfJoinSelectivityVariableCounting.getOperationsPairwiseJoinCost(pattern1, pattern2);\n                    costEntries++;\n                }\n            }\n        }\n        // If there are no overlapping patterns, the cost is 1\n        if (costEntries === 0) {\n            return 1;\n        }\n        // Combine all pairwise costs, and multiply with costs of each pattern separately\n        return totalCost / costEntries * patterns\n            .reduce((factor, pattern) => factor * ActorRdfJoinSelectivityVariableCounting.getPatternCost(pattern), 1);\n    }\n    async run(action) {\n        if (action.entries.length <= 1) {\n            return { selectivity: 1 };\n        }\n        return {\n            selectivity: ActorRdfJoinSelectivityVariableCounting\n                .getOperationsJoinCost(action.entries.map(entry => entry.operation)),\n        };\n    }\n}\nexports.ActorRdfJoinSelectivityVariableCounting = ActorRdfJoinSelectivityVariableCounting;\n// Calculated as sum of unbound join type costs times 2 (best-case)\nActorRdfJoinSelectivityVariableCounting.MAX_PAIRWISE_COST = 41 * 2;\nvar JoinTypes;\n(function (JoinTypes) {\n    JoinTypes[JoinTypes[\"boundSS\"] = 0] = \"boundSS\";\n    JoinTypes[JoinTypes[\"boundSP\"] = 1] = \"boundSP\";\n    JoinTypes[JoinTypes[\"boundSO\"] = 2] = \"boundSO\";\n    JoinTypes[JoinTypes[\"boundSG\"] = 3] = \"boundSG\";\n    JoinTypes[JoinTypes[\"boundPS\"] = 4] = \"boundPS\";\n    JoinTypes[JoinTypes[\"boundPP\"] = 5] = \"boundPP\";\n    JoinTypes[JoinTypes[\"boundPO\"] = 6] = \"boundPO\";\n    JoinTypes[JoinTypes[\"boundPG\"] = 7] = \"boundPG\";\n    JoinTypes[JoinTypes[\"boundOS\"] = 8] = \"boundOS\";\n    JoinTypes[JoinTypes[\"boundOP\"] = 9] = \"boundOP\";\n    JoinTypes[JoinTypes[\"boundOO\"] = 10] = \"boundOO\";\n    JoinTypes[JoinTypes[\"boundOG\"] = 11] = \"boundOG\";\n    JoinTypes[JoinTypes[\"boundGS\"] = 12] = \"boundGS\";\n    JoinTypes[JoinTypes[\"boundGP\"] = 13] = \"boundGP\";\n    JoinTypes[JoinTypes[\"boundGO\"] = 14] = \"boundGO\";\n    JoinTypes[JoinTypes[\"boundGG\"] = 15] = \"boundGG\";\n    JoinTypes[JoinTypes[\"unboundSS\"] = 16] = \"unboundSS\";\n    JoinTypes[JoinTypes[\"unboundSP\"] = 17] = \"unboundSP\";\n    JoinTypes[JoinTypes[\"unboundSO\"] = 18] = \"unboundSO\";\n    JoinTypes[JoinTypes[\"unboundSG\"] = 19] = \"unboundSG\";\n    JoinTypes[JoinTypes[\"unboundPS\"] = 20] = \"unboundPS\";\n    JoinTypes[JoinTypes[\"unboundPP\"] = 21] = \"unboundPP\";\n    JoinTypes[JoinTypes[\"unboundPO\"] = 22] = \"unboundPO\";\n    JoinTypes[JoinTypes[\"unboundPG\"] = 23] = \"unboundPG\";\n    JoinTypes[JoinTypes[\"unboundOS\"] = 24] = \"unboundOS\";\n    JoinTypes[JoinTypes[\"unboundOP\"] = 25] = \"unboundOP\";\n    JoinTypes[JoinTypes[\"unboundOO\"] = 26] = \"unboundOO\";\n    JoinTypes[JoinTypes[\"unboundOG\"] = 27] = \"unboundOG\";\n    JoinTypes[JoinTypes[\"unboundGS\"] = 28] = \"unboundGS\";\n    JoinTypes[JoinTypes[\"unboundGP\"] = 29] = \"unboundGP\";\n    JoinTypes[JoinTypes[\"unboundGO\"] = 30] = \"unboundGO\";\n    JoinTypes[JoinTypes[\"unboundGG\"] = 31] = \"unboundGG\";\n})(JoinTypes || (exports.JoinTypes = JoinTypes = {}));\n//# sourceMappingURL=ActorRdfJoinSelectivityVariableCounting.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinSelectivityVariableCounting\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadata = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for rdf-metadata events.\n *\n * Actor types:\n * * Input:  IActionRdfMetadata:      An RDF quad stream.\n * * Test:   <none>\n * * Output: IActorRdfMetadataOutput: An RDF quad data stream and RDF quad metadata stream.\n *\n * @see IActionDereferenceRdf\n * @see IActorDereferenceRdfOutput\n */\nclass ActorRdfMetadata extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Metadata splicing failed: none of the configured actors were able to splice metadata from ${action.url}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfMetadata = ActorRdfMetadata;\n//# sourceMappingURL=ActorRdfMetadata.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadata\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataPrimaryTopic = void 0;\nconst bus_rdf_metadata_1 = require(\"@comunica/bus-rdf-metadata\");\nconst core_1 = require(\"@comunica/core\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * An RDF Metadata Actor that splits off the metadata based on the existence of a 'foaf:primaryTopic' link.\n * Only non-triple quad streams are supported.\n */\nclass ActorRdfMetadataPrimaryTopic extends bus_rdf_metadata_1.ActorRdfMetadata {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (action.triples) {\n            return (0, core_1.failTest)('This actor only supports non-triple quad streams.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const data = new readable_stream_1.Readable({ objectMode: true });\n        const metadata = new readable_stream_1.Readable({ objectMode: true });\n        // Delay attachment of listeners until the data or metadata stream is being read.\n        const attachListeners = () => {\n            // Attach listeners only once\n            data._read = metadata._read = () => {\n                // Do nothing\n            };\n            // Forward errors\n            action.quads.on('error', (error) => {\n                data.emit('error', error);\n                metadata.emit('error', error);\n            });\n            // First pass over data to categorize in graphs,\n            // and to detect the primaryTopic triple.\n            const graphs = {};\n            let endpointIdentifier;\n            const primaryTopics = {};\n            action.quads.on('data', (quad) => {\n                if (quad.predicate.value === 'http://rdfs.org/ns/void#subset' &&\n                    quad.object.value === action.url) {\n                    endpointIdentifier = quad.subject.value;\n                }\n                else if (quad.predicate.value === 'http://xmlns.com/foaf/0.1/primaryTopic') {\n                    primaryTopics[quad.object.value] = quad.subject.value;\n                }\n                let quads = graphs[quad.graph.value];\n                if (!quads) {\n                    quads = graphs[quad.graph.value] = [];\n                }\n                quads.push(quad);\n            });\n            // When the stream has finished,\n            // determine the appropriate metadata graph,\n            // and emit all quads to the appropriate streams.\n            action.quads.on('end', () => {\n                const metadataGraph = endpointIdentifier ? primaryTopics[endpointIdentifier] : undefined;\n                for (const graphName in graphs) {\n                    if (graphName === metadataGraph) {\n                        for (const quad of graphs[graphName]) {\n                            metadata.push(quad);\n                        }\n                        // Also emit metadata to data if requested\n                        if (this.metadataToData) {\n                            for (const quad of graphs[graphName]) {\n                                data.push(quad);\n                            }\n                        }\n                    }\n                    else {\n                        for (const quad of graphs[graphName]) {\n                            data.push(quad);\n                        }\n                        if (!metadataGraph && this.dataToMetadataOnInvalidMetadataGraph) {\n                            for (const quad of graphs[graphName]) {\n                                metadata.push(quad);\n                            }\n                        }\n                    }\n                }\n                data.push(null);\n                metadata.push(null);\n            });\n        };\n        data._read = metadata._read = () => {\n            attachListeners();\n        };\n        return { data, metadata };\n    }\n}\nexports.ActorRdfMetadataPrimaryTopic = ActorRdfMetadataPrimaryTopic;\n//# sourceMappingURL=ActorRdfMetadataPrimaryTopic.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataPrimaryTopic\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataAll = void 0;\nconst bus_rdf_metadata_1 = require(\"@comunica/bus-rdf-metadata\");\nconst core_1 = require(\"@comunica/core\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A comunica All RDF Metadata Actor.\n */\nclass ActorRdfMetadataAll extends bus_rdf_metadata_1.ActorRdfMetadata {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const data = new readable_stream_1.Readable({ objectMode: true });\n        const metadata = new readable_stream_1.Readable({ objectMode: true });\n        // Forward errors (attach them immediately as they could arrive earlier)\n        action.quads.on('error', (error) => {\n            data.emit('error', error);\n            metadata.emit('error', error);\n        });\n        // Terminate both streams on-end\n        action.quads.on('end', () => {\n            data.push(null);\n            metadata.push(null);\n        });\n        const read = data._read = metadata._read = (size) => {\n            while (size > 0) {\n                const item = action.quads.read();\n                if (item === null) {\n                    return action.quads.once('readable', () => read(size));\n                }\n                size--;\n                data.push(item);\n                metadata.push(item);\n            }\n        };\n        return { data, metadata };\n    }\n}\nexports.ActorRdfMetadataAll = ActorRdfMetadataAll;\n//# sourceMappingURL=ActorRdfMetadataAll.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataAll\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataAccumulate = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for rdf-metadata-accumulate events.\n *\n * Actor types:\n * * Input:  IActionRdfMetadataAccumulate:      The metadata objects to accumulate,\n *                                              or a trigger for initializing a new value.\n * * Test:   <none>\n * * Output: IActorRdfMetadataAccumulateOutput: The accumulated metadata object.\n *\n * @see IActionRdfMetadataAccumulate\n * @see IActorRdfMetadataAccumulateOutput\n */\nclass ActorRdfMetadataAccumulate extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Metadata accumulation failed: none of the configured actors were able to accumulate metadata in mode ${action.mode}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfMetadataAccumulate = ActorRdfMetadataAccumulate;\n//# sourceMappingURL=ActorRdfMetadataAccumulate.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataAccumulate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataAccumulateCardinality = void 0;\nconst bus_rdf_metadata_accumulate_1 = require(\"@comunica/bus-rdf-metadata-accumulate\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Cardinality RDF Metadata Accumulate Actor.\n */\nclass ActorRdfMetadataAccumulateCardinality extends bus_rdf_metadata_accumulate_1.ActorRdfMetadataAccumulate {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        // Return default value on initialize\n        if (action.mode === 'initialize') {\n            return { metadata: { cardinality: { type: 'exact', value: 0 } } };\n        }\n        // Otherwise, attempt to update existing value\n        const cardinality = { ...action.accumulatedMetadata.cardinality };\n        if (cardinality.dataset) {\n            // If the accumulated cardinality refers to that of the full default graph (applicable for SPARQL endpoints)\n            if (action.accumulatedMetadata.defaultGraph === cardinality.dataset &&\n                cardinality.dataset !== action.appendingMetadata.cardinality.dataset) {\n                // Use the cardinality of the appending metadata.\n                return { metadata: { cardinality: action.appendingMetadata.cardinality } };\n            }\n            if (action.appendingMetadata.cardinality.dataset) {\n                // If the accumulated cardinality is dataset-wide\n                if (cardinality.dataset !== action.appendingMetadata.cardinality.dataset &&\n                    action.appendingMetadata.subsetOf === cardinality.dataset) {\n                    // If the appending cardinality refers to the subset of a dataset,\n                    // use the cardinality of the subset.\n                    return { metadata: { cardinality: action.appendingMetadata.cardinality } };\n                }\n                if (cardinality.dataset === action.appendingMetadata.cardinality.dataset) {\n                    // If the appending cardinality is for the same dataset,\n                    // keep the accumulated cardinality unchanged.\n                    return { metadata: { cardinality } };\n                }\n                // If the appending cardinality refers to another dataset,\n                // remove the dataset scopes.\n                delete cardinality.dataset;\n            }\n            else {\n                // If the appending cardinality refers to a dataset subset,\n                // keep the accumulated cardinality unchanged.\n                return { metadata: { cardinality } };\n            }\n        }\n        if (!action.appendingMetadata.cardinality || !Number.isFinite(action.appendingMetadata.cardinality.value)) {\n            // We're already at infinite, so ignore any later metadata\n            cardinality.type = 'estimate';\n            cardinality.value = Number.POSITIVE_INFINITY;\n        }\n        else {\n            if (action.appendingMetadata.cardinality.type === 'estimate') {\n                cardinality.type = 'estimate';\n            }\n            cardinality.value += action.appendingMetadata.cardinality.value;\n        }\n        return { metadata: { cardinality } };\n    }\n}\nexports.ActorRdfMetadataAccumulateCardinality = ActorRdfMetadataAccumulateCardinality;\n//# sourceMappingURL=ActorRdfMetadataAccumulateCardinality.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataAccumulateCardinality\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataAccumulatePageSize = void 0;\nconst bus_rdf_metadata_accumulate_1 = require(\"@comunica/bus-rdf-metadata-accumulate\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica PageSize RDF Metadata Accumulate Actor.\n */\nclass ActorRdfMetadataAccumulatePageSize extends bus_rdf_metadata_accumulate_1.ActorRdfMetadataAccumulate {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        // Return nothing on initialize\n        if (action.mode === 'initialize') {\n            return { metadata: {} };\n        }\n        // Otherwise, attempt to increment existing value\n        return {\n            metadata: {\n                ...('pageSize' in action.accumulatedMetadata) || ('pageSize' in action.appendingMetadata) ?\n                    {\n                        pageSize: (action.accumulatedMetadata.pageSize ?? 0) + (action.appendingMetadata.pageSize ?? 0),\n                    } :\n                    {},\n            },\n        };\n    }\n}\nexports.ActorRdfMetadataAccumulatePageSize = ActorRdfMetadataAccumulatePageSize;\n//# sourceMappingURL=ActorRdfMetadataAccumulatePageSize.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataAccumulatePageSize\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataAccumulateRequestTime = void 0;\nconst bus_rdf_metadata_accumulate_1 = require(\"@comunica/bus-rdf-metadata-accumulate\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica RequestTime RDF Metadata Accumulate Actor.\n */\nclass ActorRdfMetadataAccumulateRequestTime extends bus_rdf_metadata_accumulate_1.ActorRdfMetadataAccumulate {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        // Return nothing on initialize\n        if (action.mode === 'initialize') {\n            return { metadata: {} };\n        }\n        // Otherwise, attempt to increment existing value\n        return {\n            metadata: {\n                ...('requestTime' in action.accumulatedMetadata) || ('requestTime' in action.appendingMetadata) ?\n                    {\n                        requestTime: (action.accumulatedMetadata.requestTime ?? 0) + (action.appendingMetadata.requestTime ?? 0),\n                    } :\n                    {},\n            },\n        };\n    }\n}\nexports.ActorRdfMetadataAccumulateRequestTime = ActorRdfMetadataAccumulateRequestTime;\n//# sourceMappingURL=ActorRdfMetadataAccumulateRequestTime.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataAccumulateRequestTime\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataExtract = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for rdf-metadata-extract events.\n *\n * Actor types:\n * * Input:  IActionRdfMetadataExtract:      A metadata quad stream\n * * Test:   <none>\n * * Output: IActorRdfMetadataExtractOutput: A metadata hash.\n *\n * @see IActionDereferenceRdf\n * @see IActorDereferenceRdfOutput\n */\nclass ActorRdfMetadataExtract extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Metadata extraction failed: none of the configured actors were able to extract metadata from ${action.url}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfMetadataExtract = ActorRdfMetadataExtract;\n//# sourceMappingURL=ActorRdfMetadataExtract.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataExtract\"), exports);\n//# sourceMappingURL=index.js.map","/*global unescape, module, define, window, global*/\r\n\r\n/*\r\n UriTemplate Copyright (c) 2012-2013 Franz Antesberger. All Rights Reserved.\r\n Available via the MIT license.\r\n*/\r\n\r\n(function (exportCallback) {\r\n    \"use strict\";\r\n\r\nvar UriTemplateError = (function () {\r\n\r\n    function UriTemplateError (options) {\r\n        this.options = options;\r\n    }\r\n\r\n    UriTemplateError.prototype.toString = function () {\r\n        if (JSON && JSON.stringify) {\r\n            return JSON.stringify(this.options);\r\n        }\r\n        else {\r\n            return this.options;\r\n        }\r\n    };\r\n\r\n    return UriTemplateError;\r\n}());\r\n\r\nvar objectHelper = (function () {\r\n    function isArray (value) {\r\n        return Object.prototype.toString.apply(value) === '[object Array]';\r\n    }\r\n\r\n    function isString (value) {\r\n        return Object.prototype.toString.apply(value) === '[object String]';\r\n    }\r\n    \r\n    function isNumber (value) {\r\n        return Object.prototype.toString.apply(value) === '[object Number]';\r\n    }\r\n    \r\n    function isBoolean (value) {\r\n        return Object.prototype.toString.apply(value) === '[object Boolean]';\r\n    }\r\n    \r\n    function join (arr, separator) {\r\n        var\r\n            result = '',\r\n            first = true,\r\n            index;\r\n        for (index = 0; index < arr.length; index += 1) {\r\n            if (first) {\r\n                first = false;\r\n            }\r\n            else {\r\n                result += separator;\r\n            }\r\n            result += arr[index];\r\n        }\r\n        return result;\r\n    }\r\n\r\n    function map (arr, mapper) {\r\n        var\r\n            result = [],\r\n            index = 0;\r\n        for (; index < arr.length; index += 1) {\r\n            result.push(mapper(arr[index]));\r\n        }\r\n        return result;\r\n    }\r\n\r\n    function filter (arr, predicate) {\r\n        var\r\n            result = [],\r\n            index = 0;\r\n        for (; index < arr.length; index += 1) {\r\n            if (predicate(arr[index])) {\r\n                result.push(arr[index]);\r\n            }\r\n        }\r\n        return result;\r\n    }\r\n\r\n    function deepFreezeUsingObjectFreeze (object) {\r\n        if (typeof object !== \"object\" || object === null) {\r\n            return object;\r\n        }\r\n        Object.freeze(object);\r\n        var property, propertyName;\r\n        for (propertyName in object) {\r\n            if (object.hasOwnProperty(propertyName)) {\r\n                property = object[propertyName];\r\n                // be aware, arrays are 'object', too\r\n                if (typeof property === \"object\") {\r\n                    deepFreeze(property);\r\n                }\r\n            }\r\n        }\r\n        return object;\r\n    }\r\n\r\n    function deepFreeze (object) {\r\n        if (typeof Object.freeze === 'function') {\r\n            return deepFreezeUsingObjectFreeze(object);\r\n        }\r\n        return object;\r\n    }\r\n\r\n\r\n    return {\r\n        isArray: isArray,\r\n        isString: isString,\r\n        isNumber: isNumber,\r\n        isBoolean: isBoolean,\r\n        join: join,\r\n        map: map,\r\n        filter: filter,\r\n        deepFreeze: deepFreeze\r\n    };\r\n}());\r\n\r\nvar charHelper = (function () {\r\n\r\n    function isAlpha (chr) {\r\n        return (chr >= 'a' && chr <= 'z') || ((chr >= 'A' && chr <= 'Z'));\r\n    }\r\n\r\n    function isDigit (chr) {\r\n        return chr >= '0' && chr <= '9';\r\n    }\r\n\r\n    function isHexDigit (chr) {\r\n        return isDigit(chr) || (chr >= 'a' && chr <= 'f') || (chr >= 'A' && chr <= 'F');\r\n    }\r\n\r\n    return {\r\n        isAlpha: isAlpha,\r\n        isDigit: isDigit,\r\n        isHexDigit: isHexDigit\r\n    };\r\n}());\r\n\r\nvar pctEncoder = (function () {\r\n    var utf8 = {\r\n        encode: function (chr) {\r\n            // see http://ecmanaut.blogspot.de/2006/07/encoding-decoding-utf8-in-javascript.html\r\n            return unescape(encodeURIComponent(chr));\r\n        },\r\n        numBytes: function (firstCharCode) {\r\n            if (firstCharCode <= 0x7F) {\r\n                return 1;\r\n            }\r\n            else if (0xC2 <= firstCharCode && firstCharCode <= 0xDF) {\r\n                return 2;\r\n            }\r\n            else if (0xE0 <= firstCharCode && firstCharCode <= 0xEF) {\r\n                return 3;\r\n            }\r\n            else if (0xF0 <= firstCharCode && firstCharCode <= 0xF4) {\r\n                return 4;\r\n            }\r\n            // no valid first octet\r\n            return 0;\r\n        },\r\n        isValidFollowingCharCode: function (charCode) {\r\n            return 0x80 <= charCode && charCode <= 0xBF;\r\n        }\r\n    };\r\n\r\n    /**\r\n     * encodes a character, if needed or not.\r\n     * @param chr\r\n     * @return pct-encoded character\r\n     */\r\n    function encodeCharacter (chr) {\r\n        var\r\n            result = '',\r\n            octets = utf8.encode(chr),\r\n            octet,\r\n            index;\r\n        for (index = 0; index < octets.length; index += 1) {\r\n            octet = octets.charCodeAt(index);\r\n            result += '%' + (octet < 0x10 ? '0' : '') + octet.toString(16).toUpperCase();\r\n        }\r\n        return result;\r\n    }\r\n\r\n    /**\r\n     * Returns, whether the given text at start is in the form 'percent hex-digit hex-digit', like '%3F'\r\n     * @param text\r\n     * @param start\r\n     * @return {boolean|*|*}\r\n     */\r\n    function isPercentDigitDigit (text, start) {\r\n        return text.charAt(start) === '%' && charHelper.isHexDigit(text.charAt(start + 1)) && charHelper.isHexDigit(text.charAt(start + 2));\r\n    }\r\n\r\n    /**\r\n     * Parses a hex number from start with length 2.\r\n     * @param text a string\r\n     * @param start the start index of the 2-digit hex number\r\n     * @return {Number}\r\n     */\r\n    function parseHex2 (text, start) {\r\n        return parseInt(text.substr(start, 2), 16);\r\n    }\r\n\r\n    /**\r\n     * Returns whether or not the given char sequence is a correctly pct-encoded sequence.\r\n     * @param chr\r\n     * @return {boolean}\r\n     */\r\n    function isPctEncoded (chr) {\r\n        if (!isPercentDigitDigit(chr, 0)) {\r\n            return false;\r\n        }\r\n        var firstCharCode = parseHex2(chr, 1);\r\n        var numBytes = utf8.numBytes(firstCharCode);\r\n        if (numBytes === 0) {\r\n            return false;\r\n        }\r\n        for (var byteNumber = 1; byteNumber < numBytes; byteNumber += 1) {\r\n            if (!isPercentDigitDigit(chr, 3*byteNumber) || !utf8.isValidFollowingCharCode(parseHex2(chr, 3*byteNumber + 1))) {\r\n                return false;\r\n            }\r\n        }\r\n        return true;\r\n    }\r\n\r\n    /**\r\n     * Reads as much as needed from the text, e.g. '%20' or '%C3%B6'. It does not decode!\r\n     * @param text\r\n     * @param startIndex\r\n     * @return the character or pct-string of the text at startIndex\r\n     */\r\n    function pctCharAt(text, startIndex) {\r\n        var chr = text.charAt(startIndex);\r\n        if (!isPercentDigitDigit(text, startIndex)) {\r\n            return chr;\r\n        }\r\n        var utf8CharCode = parseHex2(text, startIndex + 1);\r\n        var numBytes = utf8.numBytes(utf8CharCode);\r\n        if (numBytes === 0) {\r\n            return chr;\r\n        }\r\n        for (var byteNumber = 1; byteNumber < numBytes; byteNumber += 1) {\r\n            if (!isPercentDigitDigit(text, startIndex + 3 * byteNumber) || !utf8.isValidFollowingCharCode(parseHex2(text, startIndex + 3 * byteNumber + 1))) {\r\n                return chr;\r\n            }\r\n        }\r\n        return text.substr(startIndex, 3 * numBytes);\r\n    }\r\n\r\n    return {\r\n        encodeCharacter: encodeCharacter,\r\n        isPctEncoded: isPctEncoded,\r\n        pctCharAt: pctCharAt\r\n    };\r\n}());\r\n\r\nvar rfcCharHelper = (function () {\r\n\r\n    /**\r\n     * Returns if an character is an varchar character according 2.3 of rfc 6570\r\n     * @param chr\r\n     * @return (Boolean)\r\n     */\r\n    function isVarchar (chr) {\r\n        return charHelper.isAlpha(chr) || charHelper.isDigit(chr) || chr === '_' || pctEncoder.isPctEncoded(chr);\r\n    }\r\n\r\n    /**\r\n     * Returns if chr is an unreserved character according 1.5 of rfc 6570\r\n     * @param chr\r\n     * @return {Boolean}\r\n     */\r\n    function isUnreserved (chr) {\r\n        return charHelper.isAlpha(chr) || charHelper.isDigit(chr) || chr === '-' || chr === '.' || chr === '_' || chr === '~';\r\n    }\r\n\r\n    /**\r\n     * Returns if chr is an reserved character according 1.5 of rfc 6570\r\n     * or the percent character mentioned in 3.2.1.\r\n     * @param chr\r\n     * @return {Boolean}\r\n     */\r\n    function isReserved (chr) {\r\n        return chr === ':' || chr === '/' || chr === '?' || chr === '#' || chr === '[' || chr === ']' || chr === '@' || chr === '!' || chr === '$' || chr === '&' || chr === '(' ||\r\n            chr === ')' || chr === '*' || chr === '+' || chr === ',' || chr === ';' || chr === '=' || chr === \"'\";\r\n    }\r\n\r\n    return {\r\n        isVarchar: isVarchar,\r\n        isUnreserved: isUnreserved,\r\n        isReserved: isReserved\r\n    };\r\n\r\n}());\r\n\r\n/**\r\n * encoding of rfc 6570\r\n */\r\nvar encodingHelper = (function () {\r\n\r\n    function encode (text, passReserved) {\r\n        var\r\n            result = '',\r\n            index,\r\n            chr = '';\r\n        if (typeof text === \"number\" || typeof text === \"boolean\") {\r\n            text = text.toString();\r\n        }\r\n        for (index = 0; index < text.length; index += chr.length) {\r\n            chr = text.charAt(index);\r\n            result += rfcCharHelper.isUnreserved(chr) || (passReserved && rfcCharHelper.isReserved(chr)) ? chr : pctEncoder.encodeCharacter(chr);\r\n        }\r\n        return result;\r\n    }\r\n\r\n    function encodePassReserved (text) {\r\n        return encode(text, true);\r\n    }\r\n\r\n    function encodeLiteralCharacter (literal, index) {\r\n        var chr = pctEncoder.pctCharAt(literal, index);\r\n        if (chr.length > 1) {\r\n            return chr;\r\n        }\r\n        else {\r\n            return rfcCharHelper.isReserved(chr) || rfcCharHelper.isUnreserved(chr) ? chr : pctEncoder.encodeCharacter(chr);\r\n        }\r\n    }\r\n\r\n    function encodeLiteral (literal) {\r\n        var\r\n            result = '',\r\n            index,\r\n            chr = '';\r\n        for (index = 0; index < literal.length; index += chr.length) {\r\n            chr = pctEncoder.pctCharAt(literal, index);\r\n            if (chr.length > 1) {\r\n                result += chr;\r\n            }\r\n            else {\r\n                result += rfcCharHelper.isReserved(chr) || rfcCharHelper.isUnreserved(chr) ? chr : pctEncoder.encodeCharacter(chr);\r\n            }\r\n        }\r\n        return result;\r\n    }\r\n\r\n    return {\r\n        encode: encode,\r\n        encodePassReserved: encodePassReserved,\r\n        encodeLiteral: encodeLiteral,\r\n        encodeLiteralCharacter: encodeLiteralCharacter\r\n    };\r\n\r\n}());\r\n\r\n\r\n// the operators defined by rfc 6570\r\nvar operators = (function () {\r\n\r\n    var\r\n        bySymbol = {};\r\n\r\n    function create (symbol) {\r\n        bySymbol[symbol] = {\r\n            symbol: symbol,\r\n            separator: (symbol === '?') ? '&' : (symbol === '' || symbol === '+' || symbol === '#') ? ',' : symbol,\r\n            named: symbol === ';' || symbol === '&' || symbol === '?',\r\n            ifEmpty: (symbol === '&' || symbol === '?') ? '=' : '',\r\n            first: (symbol === '+' ) ? '' : symbol,\r\n            encode: (symbol === '+' || symbol === '#') ? encodingHelper.encodePassReserved : encodingHelper.encode,\r\n            toString: function () {\r\n                return this.symbol;\r\n            }\r\n        };\r\n    }\r\n\r\n    create('');\r\n    create('+');\r\n    create('#');\r\n    create('.');\r\n    create('/');\r\n    create(';');\r\n    create('?');\r\n    create('&');\r\n    return {\r\n        valueOf: function (chr) {\r\n            if (bySymbol[chr]) {\r\n                return bySymbol[chr];\r\n            }\r\n            if (\"=,!@|\".indexOf(chr) >= 0) {\r\n                return null;\r\n            }\r\n            return bySymbol[''];\r\n        }\r\n    };\r\n}());\r\n\r\n\r\n/**\r\n * Detects, whether a given element is defined in the sense of rfc 6570\r\n * Section 2.3 of the RFC makes clear defintions:\r\n * * undefined and null are not defined.\r\n * * the empty string is defined\r\n * * an array (\"list\") is defined, if it is not empty (even if all elements are not defined)\r\n * * an object (\"map\") is defined, if it contains at least one property with defined value\r\n * @param object\r\n * @return {Boolean}\r\n */\r\nfunction isDefined (object) {\r\n    var\r\n        propertyName;\r\n    if (object === null || object === undefined) {\r\n        return false;\r\n    }\r\n    if (objectHelper.isArray(object)) {\r\n        // Section 2.3: A variable defined as a list value is considered undefined if the list contains zero members\r\n        return object.length > 0;\r\n    }\r\n    if (typeof object === \"string\" || typeof object === \"number\" || typeof object === \"boolean\") {\r\n        // falsy values like empty strings, false or 0 are \"defined\"\r\n        return true;\r\n    }\r\n    // else Object\r\n    for (propertyName in object) {\r\n        if (object.hasOwnProperty(propertyName) && isDefined(object[propertyName])) {\r\n            return true;\r\n        }\r\n    }\r\n    return false;\r\n}\r\n\r\nvar LiteralExpression = (function () {\r\n    function LiteralExpression (literal) {\r\n        this.literal = encodingHelper.encodeLiteral(literal);\r\n    }\r\n\r\n    LiteralExpression.prototype.expand = function () {\r\n        return this.literal;\r\n    };\r\n\r\n    LiteralExpression.prototype.toString = LiteralExpression.prototype.expand;\r\n\r\n    return LiteralExpression;\r\n}());\r\n\r\nvar parse = (function () {\r\n\r\n    function parseExpression (expressionText) {\r\n        var\r\n            operator,\r\n            varspecs = [],\r\n            varspec = null,\r\n            varnameStart = null,\r\n            maxLengthStart = null,\r\n            index,\r\n            chr = '';\r\n\r\n        function closeVarname () {\r\n            var varname = expressionText.substring(varnameStart, index);\r\n            if (varname.length === 0) {\r\n                throw new UriTemplateError({expressionText: expressionText, message: \"a varname must be specified\", position: index});\r\n            }\r\n            varspec = {varname: varname, exploded: false, maxLength: null};\r\n            varnameStart = null;\r\n        }\r\n\r\n        function closeMaxLength () {\r\n            if (maxLengthStart === index) {\r\n                throw new UriTemplateError({expressionText: expressionText, message: \"after a ':' you have to specify the length\", position: index});\r\n            }\r\n            varspec.maxLength = parseInt(expressionText.substring(maxLengthStart, index), 10);\r\n            maxLengthStart = null;\r\n        }\r\n\r\n        operator = (function (operatorText) {\r\n            var op = operators.valueOf(operatorText);\r\n            if (op === null) {\r\n                throw new UriTemplateError({expressionText: expressionText, message: \"illegal use of reserved operator\", position: index, operator: operatorText});\r\n            }\r\n            return op;\r\n        }(expressionText.charAt(0)));\r\n        index = operator.symbol.length;\r\n\r\n        varnameStart = index;\r\n\r\n        for (; index < expressionText.length; index += chr.length) {\r\n            chr = pctEncoder.pctCharAt(expressionText, index);\r\n\r\n            if (varnameStart !== null) {\r\n                // the spec says: varname =  varchar *( [\".\"] varchar )\r\n                // so a dot is allowed except for the first char\r\n                if (chr === '.') {\r\n                    if (varnameStart === index) {\r\n                        throw new UriTemplateError({expressionText: expressionText, message: \"a varname MUST NOT start with a dot\", position: index});\r\n                    }\r\n                    continue;\r\n                }\r\n                if (rfcCharHelper.isVarchar(chr)) {\r\n                    continue;\r\n                }\r\n                closeVarname();\r\n            }\r\n            if (maxLengthStart !== null) {\r\n                if (index === maxLengthStart && chr === '0') {\r\n                    throw new UriTemplateError({expressionText: expressionText, message: \"A :prefix must not start with digit 0\", position: index});\r\n                }\r\n                if (charHelper.isDigit(chr)) {\r\n                    if (index - maxLengthStart >= 4) {\r\n                        throw new UriTemplateError({expressionText: expressionText, message: \"A :prefix must have max 4 digits\", position: index});\r\n                    }\r\n                    continue;\r\n                }\r\n                closeMaxLength();\r\n            }\r\n            if (chr === ':') {\r\n                if (varspec.maxLength !== null) {\r\n                    throw new UriTemplateError({expressionText: expressionText, message: \"only one :maxLength is allowed per varspec\", position: index});\r\n                }\r\n                if (varspec.exploded) {\r\n                    throw new UriTemplateError({expressionText: expressionText, message: \"an exploeded varspec MUST NOT be varspeced\", position: index});\r\n                }\r\n                maxLengthStart = index + 1;\r\n                continue;\r\n            }\r\n            if (chr === '*') {\r\n                if (varspec === null) {\r\n                    throw new UriTemplateError({expressionText: expressionText, message: \"exploded without varspec\", position: index});\r\n                }\r\n                if (varspec.exploded) {\r\n                    throw new UriTemplateError({expressionText: expressionText, message: \"exploded twice\", position: index});\r\n                }\r\n                if (varspec.maxLength) {\r\n                    throw new UriTemplateError({expressionText: expressionText, message: \"an explode (*) MUST NOT follow to a prefix\", position: index});\r\n                }\r\n                varspec.exploded = true;\r\n                continue;\r\n            }\r\n            // the only legal character now is the comma\r\n            if (chr === ',') {\r\n                varspecs.push(varspec);\r\n                varspec = null;\r\n                varnameStart = index + 1;\r\n                continue;\r\n            }\r\n            throw new UriTemplateError({expressionText: expressionText, message: \"illegal character\", character: chr, position: index});\r\n        } // for chr\r\n        if (varnameStart !== null) {\r\n            closeVarname();\r\n        }\r\n        if (maxLengthStart !== null) {\r\n            closeMaxLength();\r\n        }\r\n        varspecs.push(varspec);\r\n        return new VariableExpression(expressionText, operator, varspecs);\r\n    }\r\n\r\n    function parse (uriTemplateText) {\r\n        // assert filled string\r\n        var\r\n            index,\r\n            chr,\r\n            expressions = [],\r\n            braceOpenIndex = null,\r\n            literalStart = 0;\r\n        for (index = 0; index < uriTemplateText.length; index += 1) {\r\n            chr = uriTemplateText.charAt(index);\r\n            if (literalStart !== null) {\r\n                if (chr === '}') {\r\n                    throw new UriTemplateError({templateText: uriTemplateText, message: \"unopened brace closed\", position: index});\r\n                }\r\n                if (chr === '{') {\r\n                    if (literalStart < index) {\r\n                        expressions.push(new LiteralExpression(uriTemplateText.substring(literalStart, index)));\r\n                    }\r\n                    literalStart = null;\r\n                    braceOpenIndex = index;\r\n                }\r\n                continue;\r\n            }\r\n\r\n            if (braceOpenIndex !== null) {\r\n                // here just { is forbidden\r\n                if (chr === '{') {\r\n                    throw new UriTemplateError({templateText: uriTemplateText, message: \"brace already opened\", position: index});\r\n                }\r\n                if (chr === '}') {\r\n                    if (braceOpenIndex + 1 === index) {\r\n                        throw new UriTemplateError({templateText: uriTemplateText, message: \"empty braces\", position: braceOpenIndex});\r\n                    }\r\n                    try {\r\n                        expressions.push(parseExpression(uriTemplateText.substring(braceOpenIndex + 1, index)));\r\n                    }\r\n                    catch (error) {\r\n                        if (error.prototype === UriTemplateError.prototype) {\r\n                            throw new UriTemplateError({templateText: uriTemplateText, message: error.options.message, position: braceOpenIndex + error.options.position, details: error.options});\r\n                        }\r\n                        throw error;\r\n                    }\r\n                    braceOpenIndex = null;\r\n                    literalStart = index + 1;\r\n                }\r\n                continue;\r\n            }\r\n            throw new Error('reached unreachable code');\r\n        }\r\n        if (braceOpenIndex !== null) {\r\n            throw new UriTemplateError({templateText: uriTemplateText, message: \"unclosed brace\", position: braceOpenIndex});\r\n        }\r\n        if (literalStart < uriTemplateText.length) {\r\n            expressions.push(new LiteralExpression(uriTemplateText.substr(literalStart)));\r\n        }\r\n        return new UriTemplate(uriTemplateText, expressions);\r\n    }\r\n\r\n    return parse;\r\n}());\r\n\r\nvar VariableExpression = (function () {\r\n    // helper function if JSON is not available\r\n    function prettyPrint (value) {\r\n        return (JSON && JSON.stringify) ? JSON.stringify(value) : value;\r\n    }\r\n\r\n    function isEmpty (value) {\r\n        if (!isDefined(value)) {\r\n            return true;\r\n        }\r\n        if (objectHelper.isString(value)) {\r\n            return value === '';\r\n        }\r\n        if (objectHelper.isNumber(value) || objectHelper.isBoolean(value)) {\r\n            return false;\r\n        }\r\n        if (objectHelper.isArray(value)) {\r\n            return value.length === 0;\r\n        }\r\n        for (var propertyName in value) {\r\n            if (value.hasOwnProperty(propertyName)) {\r\n                return false;\r\n            }\r\n        }\r\n        return true;\r\n    }\r\n\r\n    function propertyArray (object) {\r\n        var\r\n            result = [],\r\n            propertyName;\r\n        for (propertyName in object) {\r\n            if (object.hasOwnProperty(propertyName)) {\r\n                result.push({name: propertyName, value: object[propertyName]});\r\n            }\r\n        }\r\n        return result;\r\n    }\r\n\r\n    function VariableExpression (templateText, operator, varspecs) {\r\n        this.templateText = templateText;\r\n        this.operator = operator;\r\n        this.varspecs = varspecs;\r\n    }\r\n\r\n    VariableExpression.prototype.toString = function () {\r\n        return this.templateText;\r\n    };\r\n\r\n    function expandSimpleValue(varspec, operator, value) {\r\n        var result = '';\r\n        value = value.toString();\r\n        if (operator.named) {\r\n            result += encodingHelper.encodeLiteral(varspec.varname);\r\n            if (value === '') {\r\n                result += operator.ifEmpty;\r\n                return result;\r\n            }\r\n            result += '=';\r\n        }\r\n        if (varspec.maxLength !== null) {\r\n            value = value.substr(0, varspec.maxLength);\r\n        }\r\n        result += operator.encode(value);\r\n        return result;\r\n    }\r\n\r\n    function valueDefined (nameValue) {\r\n        return isDefined(nameValue.value);\r\n    }\r\n\r\n    function expandNotExploded(varspec, operator, value) {\r\n        var\r\n            arr = [],\r\n            result = '';\r\n        if (operator.named) {\r\n            result += encodingHelper.encodeLiteral(varspec.varname);\r\n            if (isEmpty(value)) {\r\n                result += operator.ifEmpty;\r\n                return result;\r\n            }\r\n            result += '=';\r\n        }\r\n        if (objectHelper.isArray(value)) {\r\n            arr = value;\r\n            arr = objectHelper.filter(arr, isDefined);\r\n            arr = objectHelper.map(arr, operator.encode);\r\n            result += objectHelper.join(arr, ',');\r\n        }\r\n        else {\r\n            arr = propertyArray(value);\r\n            arr = objectHelper.filter(arr, valueDefined);\r\n            arr = objectHelper.map(arr, function (nameValue) {\r\n                return operator.encode(nameValue.name) + ',' + operator.encode(nameValue.value);\r\n            });\r\n            result += objectHelper.join(arr, ',');\r\n        }\r\n        return result;\r\n    }\r\n\r\n    function expandExplodedNamed (varspec, operator, value) {\r\n        var\r\n            isArray = objectHelper.isArray(value),\r\n            arr = [];\r\n        if (isArray) {\r\n            arr = value;\r\n            arr = objectHelper.filter(arr, isDefined);\r\n            arr = objectHelper.map(arr, function (listElement) {\r\n                var tmp = encodingHelper.encodeLiteral(varspec.varname);\r\n                if (isEmpty(listElement)) {\r\n                    tmp += operator.ifEmpty;\r\n                }\r\n                else {\r\n                    tmp += '=' + operator.encode(listElement);\r\n                }\r\n                return tmp;\r\n            });\r\n        }\r\n        else {\r\n            arr = propertyArray(value);\r\n            arr = objectHelper.filter(arr, valueDefined);\r\n            arr = objectHelper.map(arr, function (nameValue) {\r\n                var tmp = encodingHelper.encodeLiteral(nameValue.name);\r\n                if (isEmpty(nameValue.value)) {\r\n                    tmp += operator.ifEmpty;\r\n                }\r\n                else {\r\n                    tmp += '=' + operator.encode(nameValue.value);\r\n                }\r\n                return tmp;\r\n            });\r\n        }\r\n        return objectHelper.join(arr, operator.separator);\r\n    }\r\n\r\n    function expandExplodedUnnamed (operator, value) {\r\n        var\r\n            arr = [],\r\n            result = '';\r\n        if (objectHelper.isArray(value)) {\r\n            arr = value;\r\n            arr = objectHelper.filter(arr, isDefined);\r\n            arr = objectHelper.map(arr, operator.encode);\r\n            result += objectHelper.join(arr, operator.separator);\r\n        }\r\n        else {\r\n            arr = propertyArray(value);\r\n            arr = objectHelper.filter(arr, function (nameValue) {\r\n                return isDefined(nameValue.value);\r\n            });\r\n            arr = objectHelper.map(arr, function (nameValue) {\r\n                return operator.encode(nameValue.name) + '=' + operator.encode(nameValue.value);\r\n            });\r\n            result += objectHelper.join(arr, operator.separator);\r\n        }\r\n        return result;\r\n    }\r\n\r\n\r\n    VariableExpression.prototype.expand = function (variables) {\r\n        var\r\n            expanded = [],\r\n            index,\r\n            varspec,\r\n            value,\r\n            valueIsArr,\r\n            oneExploded = false,\r\n            operator = this.operator;\r\n\r\n        // expand each varspec and join with operator's separator\r\n        for (index = 0; index < this.varspecs.length; index += 1) {\r\n            varspec = this.varspecs[index];\r\n            value = variables[varspec.varname];\r\n            // if (!isDefined(value)) {\r\n            // if (variables.hasOwnProperty(varspec.name)) {\r\n            if (value === null || value === undefined) {\r\n                continue;\r\n            }\r\n            if (varspec.exploded) {\r\n                oneExploded = true;\r\n            }\r\n            valueIsArr = objectHelper.isArray(value);\r\n            if (typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") {\r\n                expanded.push(expandSimpleValue(varspec, operator, value));\r\n            }\r\n            else if (varspec.maxLength && isDefined(value)) {\r\n                // 2.4.1 of the spec says: \"Prefix modifiers are not applicable to variables that have composite values.\"\r\n                throw new Error('Prefix modifiers are not applicable to variables that have composite values. You tried to expand ' + this + \" with \" + prettyPrint(value));\r\n            }\r\n            else if (!varspec.exploded) {\r\n                if (operator.named || !isEmpty(value)) {\r\n                    expanded.push(expandNotExploded(varspec, operator, value));\r\n                }\r\n            }\r\n            else if (isDefined(value)) {\r\n                if (operator.named) {\r\n                    expanded.push(expandExplodedNamed(varspec, operator, value));\r\n                }\r\n                else {\r\n                    expanded.push(expandExplodedUnnamed(operator, value));\r\n                }\r\n            }\r\n        }\r\n\r\n        if (expanded.length === 0) {\r\n            return \"\";\r\n        }\r\n        else {\r\n            return operator.first + objectHelper.join(expanded, operator.separator);\r\n        }\r\n    };\r\n\r\n    return VariableExpression;\r\n}());\r\n\r\nvar UriTemplate = (function () {\r\n    function UriTemplate (templateText, expressions) {\r\n        this.templateText = templateText;\r\n        this.expressions = expressions;\r\n        objectHelper.deepFreeze(this);\r\n    }\r\n\r\n    UriTemplate.prototype.toString = function () {\r\n        return this.templateText;\r\n    };\r\n\r\n    UriTemplate.prototype.expand = function (variables) {\r\n        // this.expressions.map(function (expression) {return expression.expand(variables);}).join('');\r\n        var\r\n            index,\r\n            result = '';\r\n        for (index = 0; index < this.expressions.length; index += 1) {\r\n            result += this.expressions[index].expand(variables);\r\n        }\r\n        return result;\r\n    };\r\n\r\n    UriTemplate.parse = parse;\r\n    UriTemplate.UriTemplateError = UriTemplateError;\r\n    return UriTemplate;\r\n}());\r\n\r\n    exportCallback(UriTemplate);\r\n\r\n}(function (UriTemplate) {\r\n        \"use strict\";\r\n        // export UriTemplate, when module is present, or pass it to window or global\r\n        if (typeof module !== \"undefined\") {\r\n            module.exports = UriTemplate;\r\n        }\r\n        else if (typeof define === \"function\") {\r\n            define([],function() {\r\n                return UriTemplate;\r\n            });\r\n        }\r\n        else if (typeof window !== \"undefined\") {\r\n            window.UriTemplate = UriTemplate;\r\n        }\r\n        else {\r\n            global.UriTemplate = UriTemplate;\r\n        }\r\n    }\r\n));\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataExtractHydraControls = void 0;\nconst bus_rdf_metadata_extract_1 = require(\"@comunica/bus-rdf-metadata-extract\");\nconst core_1 = require(\"@comunica/core\");\nconst uritemplate_1 = require(\"uritemplate\");\n/**\n * An RDF Metadata Extract Actor that extracts all Hydra controls from the metadata stream.\n */\nclass ActorRdfMetadataExtractHydraControls extends bus_rdf_metadata_extract_1.ActorRdfMetadataExtract {\n    constructor(args) {\n        super(args);\n        this.parsedUriTemplateCache = {};\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    /**\n     * Collect all Hydra page links from the given Hydra properties object.\n     * @param pageUrl The page URL in which the Hydra properties are defined.\n     * @param hydraProperties The collected Hydra properties.\n     * @return The Hydra links\n     */\n    getLinks(pageUrl, hydraProperties) {\n        return Object.fromEntries(ActorRdfMetadataExtractHydraControls.LINK_TYPES.map((link) => {\n            // First check the correct hydra:next, then the deprecated hydra:nextPage\n            const links = hydraProperties[link] || hydraProperties[`${link}Page`];\n            const linkTargets = links && links[pageUrl];\n            return [link, linkTargets && linkTargets.length > 0 ? [linkTargets[0]] : []];\n        }));\n    }\n    /**\n     * Parse a URI template, or retrieve it from a cache.\n     * @param {string} template A URI template string.\n     * @return {} A parsed URI template object.\n     */\n    parseUriTemplateCached(template) {\n        const cachedUriTemplate = this.parsedUriTemplateCache[template];\n        if (cachedUriTemplate) {\n            return cachedUriTemplate;\n        }\n        return this.parsedUriTemplateCache[template] = (0, uritemplate_1.parse)(template);\n    }\n    /**\n     * Collect all search forms from the given Hydra properties object.\n     * @param hydraProperties The collected Hydra properties.\n     * @return The search forms.\n     */\n    getSearchForms(hydraProperties) {\n        const searchFormData = hydraProperties.search;\n        const searchForms = [];\n        if (searchFormData) {\n            for (const dataset in searchFormData) {\n                for (const searchFormId of searchFormData[dataset]) {\n                    const searchTemplates = (hydraProperties.template || {})[searchFormId] || [];\n                    // Parse the template\n                    if (searchTemplates.length !== 1) {\n                        throw new Error(`Expected 1 hydra:template for ${searchFormId}`);\n                    }\n                    const template = searchTemplates[0];\n                    const searchTemplate = this.parseUriTemplateCached(template);\n                    // Parse the template mappings\n                    const mappings = Object\n                        .fromEntries(((hydraProperties.mapping || {})[searchFormId] || [])\n                        .map((mapping) => {\n                        const variable = ((hydraProperties.variable || {})[mapping] || [])[0];\n                        const property = ((hydraProperties.property || {})[mapping] || [])[0];\n                        if (!variable) {\n                            throw new Error(`Expected a hydra:variable for ${mapping}`);\n                        }\n                        if (!property) {\n                            throw new Error(`Expected a hydra:property for ${mapping}`);\n                        }\n                        return [property, variable];\n                    }));\n                    // Gets the URL of the Triple Pattern Fragment with the given triple pattern\n                    const getUri = (entries) => searchTemplate\n                        .expand(Object.fromEntries(Object.keys(entries).map(key => [mappings[key], entries[key]])));\n                    searchForms.push({ dataset, template, mappings, getUri });\n                }\n            }\n        }\n        return { values: searchForms };\n    }\n    /**\n     * Collect all hydra properties from a given metadata stream\n     * in a nice convenient nested hash (property / subject / objects).\n     * @param {RDF.Stream} metadata\n     * @return The collected Hydra properties.\n     */\n    getHydraProperties(metadata) {\n        return new Promise((resolve, reject) => {\n            metadata.on('error', reject);\n            // Collect all hydra properties in a nice convenient nested hash (property / subject / objects).\n            const hydraProperties = {};\n            metadata.on('data', (quad) => {\n                if (quad.predicate.value.startsWith(ActorRdfMetadataExtractHydraControls.HYDRA)) {\n                    const property = quad.predicate.value.slice(ActorRdfMetadataExtractHydraControls.HYDRA.length);\n                    const subjectProperties = hydraProperties[property] || (hydraProperties[property] = {});\n                    const objects = subjectProperties[quad.subject.value] || (subjectProperties[quad.subject.value] = []);\n                    objects.push(quad.object.value);\n                }\n            });\n            metadata.on('end', () => resolve(hydraProperties));\n        });\n    }\n    async run(action) {\n        const metadata = {};\n        const hydraProperties = await this.getHydraProperties(action.metadata);\n        Object.assign(metadata, this.getLinks(action.url, hydraProperties));\n        metadata.searchForms = this.getSearchForms(hydraProperties);\n        return { metadata };\n    }\n}\nexports.ActorRdfMetadataExtractHydraControls = ActorRdfMetadataExtractHydraControls;\nActorRdfMetadataExtractHydraControls.HYDRA = 'http://www.w3.org/ns/hydra/core#';\nActorRdfMetadataExtractHydraControls.LINK_TYPES = ['first', 'next', 'previous', 'last'];\n//# sourceMappingURL=ActorRdfMetadataExtractHydraControls.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataExtractHydraControls\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataExtractHydraCount = void 0;\nconst bus_rdf_metadata_extract_1 = require(\"@comunica/bus-rdf-metadata-extract\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * An RDF Metadata Extract Actor that extracts total items counts from a metadata stream based on the given predicates.\n */\nclass ActorRdfMetadataExtractHydraCount extends bus_rdf_metadata_extract_1.ActorRdfMetadataExtract {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    run(action) {\n        return new Promise((resolve, reject) => {\n            // Forward errors\n            action.metadata.on('error', reject);\n            // Immediately resolve when a value has been found.\n            action.metadata.on('data', (quad) => {\n                if (this.predicates.includes(quad.predicate.value)) {\n                    resolve({\n                        metadata: {\n                            cardinality: {\n                                type: 'estimate',\n                                value: Number.parseInt(quad.object.value, 10),\n                                dataset: quad.subject.value,\n                            },\n                        },\n                    });\n                }\n            });\n            // If no value has been found, assume infinity.\n            action.metadata.on('end', () => {\n                resolve({ metadata: { cardinality: { type: 'estimate', value: 0 } } });\n            });\n        });\n    }\n}\nexports.ActorRdfMetadataExtractHydraCount = ActorRdfMetadataExtractHydraCount;\n//# sourceMappingURL=ActorRdfMetadataExtractHydraCount.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataExtractHydraCount\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataExtractHydraPagesize = void 0;\nconst bus_rdf_metadata_extract_1 = require(\"@comunica/bus-rdf-metadata-extract\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Hydra Pagesize RDF Metadata Extract Actor.\n */\nclass ActorRdfMetadataExtractHydraPagesize extends bus_rdf_metadata_extract_1.ActorRdfMetadataExtract {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        return new Promise((resolve, reject) => {\n            // Forward errors\n            action.metadata.on('error', reject);\n            // Immediately resolve when a value has been found.\n            action.metadata.on('data', (quad) => {\n                if (this.predicates.includes(quad.predicate.value)) {\n                    resolve({ metadata: { pageSize: Number.parseInt(quad.object.value, 10) } });\n                }\n            });\n            // If no value has been found, don't define the pageSize value.\n            action.metadata.on('end', () => {\n                resolve({ metadata: {} });\n            });\n        });\n    }\n}\nexports.ActorRdfMetadataExtractHydraPagesize = ActorRdfMetadataExtractHydraPagesize;\n//# sourceMappingURL=ActorRdfMetadataExtractHydraPagesize.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataExtractHydraPagesize\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataExtractRequestTime = void 0;\nconst bus_rdf_metadata_extract_1 = require(\"@comunica/bus-rdf-metadata-extract\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Request Time RDF Metadata Extract Actor.\n */\nclass ActorRdfMetadataExtractRequestTime extends bus_rdf_metadata_extract_1.ActorRdfMetadataExtract {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        return { metadata: { requestTime: action.requestTime } };\n    }\n}\nexports.ActorRdfMetadataExtractRequestTime = ActorRdfMetadataExtractRequestTime;\n//# sourceMappingURL=ActorRdfMetadataExtractRequestTime.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataExtractRequestTime\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataExtractAllowHttpMethods = void 0;\nconst bus_rdf_metadata_extract_1 = require(\"@comunica/bus-rdf-metadata-extract\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Allow HTTP Methods RDF Metadata Extract Actor.\n */\nclass ActorRdfMetadataExtractAllowHttpMethods extends bus_rdf_metadata_extract_1.ActorRdfMetadataExtract {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const metadata = {};\n        if (action.headers?.get('allow')) {\n            metadata.allowHttpMethods = action.headers.get('allow')?.split(/, */u);\n        }\n        return { metadata };\n    }\n}\nexports.ActorRdfMetadataExtractAllowHttpMethods = ActorRdfMetadataExtractAllowHttpMethods;\n//# sourceMappingURL=ActorRdfMetadataExtractAllowHttpMethods.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataExtractAllowHttpMethods\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataExtractPutAccepted = void 0;\nconst bus_rdf_metadata_extract_1 = require(\"@comunica/bus-rdf-metadata-extract\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica PUT Accepted RDF Metadata Extract Actor.\n */\nclass ActorRdfMetadataExtractPutAccepted extends bus_rdf_metadata_extract_1.ActorRdfMetadataExtract {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const metadata = {};\n        if (action.headers?.get('accept-put')) {\n            metadata.putAccepted = action.headers.get('accept-put')?.split(/, */u);\n        }\n        return { metadata };\n    }\n}\nexports.ActorRdfMetadataExtractPutAccepted = ActorRdfMetadataExtractPutAccepted;\n//# sourceMappingURL=ActorRdfMetadataExtractPutAccepted.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataExtractPutAccepted\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataExtractPatchSparqlUpdate = void 0;\nconst bus_rdf_metadata_extract_1 = require(\"@comunica/bus-rdf-metadata-extract\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Patch SPARQL Update RDF Metadata Extract Actor.\n */\nclass ActorRdfMetadataExtractPatchSparqlUpdate extends bus_rdf_metadata_extract_1.ActorRdfMetadataExtract {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const metadata = {};\n        // The ms-author-via header is added for backwards-compatibility with old Solid servers\n        if (action.headers?.get('accept-patch')?.includes('application/sparql-update') ??\n            action.headers?.get('ms-author-via')?.includes('SPARQL')) {\n            metadata.patchSparqlUpdate = true;\n        }\n        return { metadata };\n    }\n}\nexports.ActorRdfMetadataExtractPatchSparqlUpdate = ActorRdfMetadataExtractPatchSparqlUpdate;\n//# sourceMappingURL=ActorRdfMetadataExtractPatchSparqlUpdate.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataExtractPatchSparqlUpdate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataExtractSparqlService = void 0;\nconst bus_rdf_metadata_extract_1 = require(\"@comunica/bus-rdf-metadata-extract\");\nconst core_1 = require(\"@comunica/core\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * Comunica RDF metadata extract actor for SPARQL Service Descriptions.\n */\nclass ActorRdfMetadataExtractSparqlService extends bus_rdf_metadata_extract_1.ActorRdfMetadataExtract {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        return new Promise((resolve, reject) => {\n            // Forward errors\n            action.metadata.on('error', reject);\n            // Filter the subject URIs to consider, to avoid picking up unrelated entries\n            const acceptSubjectUris = new Set([action.url]);\n            const metadata = {};\n            const inputFormats = new Set();\n            const resultFormats = new Set();\n            const supportedLanguages = new Set();\n            action.metadata.on('data', (quad) => {\n                if (quad.predicate.value === 'http://rdfs.org/ns/void#subset' && quad.object.value === action.url) {\n                    // When the requested URI is a subset of another dataset, as indicated by this predicate, then also\n                    // consider that other dataset for the extraction of the following predicate values.\n                    // This works an issue with Quad Pattern Fragments that has the sd:defaultGraph predicate associated\n                    // with a subject value that is neither the data source URI nor the sd:defaultDataset.\n                    acceptSubjectUris.add(quad.subject.value);\n                }\n                else if (quad.subject.value === metadata.defaultDataset ||\n                    quad.subject.termType === 'BlankNode' ||\n                    acceptSubjectUris.has(quad.subject.value)) {\n                    switch (quad.predicate.value) {\n                        case 'http://www.w3.org/ns/sparql-service-description#endpoint':\n                            // The VoID specification defines this as IRI, but does not specify whether or not it can be a literal.\n                            // When the IRI is a literal, it can be relative, and needs to be resolved to absolute value.\n                            metadata.sparqlService = quad.object.termType === 'Literal' ?\n                                (0, relative_to_absolute_iri_1.resolve)(quad.object.value, action.url) :\n                                quad.object.value;\n                            // Also fix a common mistake in SPARQL endpoint setups where HTTPS SD's refer to a non-existing HTTP API.\n                            if (this.inferHttpsEndpoint && action.url.startsWith('https') && !quad.object.value.startsWith('https')) {\n                                metadata.sparqlService = metadata.sparqlService.replace(/^http:/u, 'https:');\n                            }\n                            break;\n                        case 'http://www.w3.org/ns/sparql-service-description#defaultDataset':\n                            metadata.defaultDataset = quad.object.value;\n                            break;\n                        case 'http://www.w3.org/ns/sparql-service-description#defaultGraph':\n                            metadata.defaultGraph = quad.object.value;\n                            break;\n                        case 'http://www.w3.org/ns/sparql-service-description#inputFormat':\n                            inputFormats.add(quad.object.value);\n                            break;\n                        case 'http://www.w3.org/ns/sparql-service-description#resultFormat':\n                            resultFormats.add(quad.object.value);\n                            break;\n                        case 'http://www.w3.org/ns/sparql-service-description#supportedLanguage':\n                            supportedLanguages.add(quad.object.value);\n                            break;\n                        case 'http://www.w3.org/ns/sparql-service-description#feature':\n                            if (quad.object.value === 'http://www.w3.org/ns/sparql-service-description#UnionDefaultGraph') {\n                                metadata.unionDefaultGraph = true;\n                            }\n                            else if (quad.object.value === 'http://www.w3.org/ns/sparql-service-description#BasicFederatedQuery') {\n                                metadata.basicFederatedQuery = true;\n                            }\n                            break;\n                    }\n                }\n            });\n            // Only return the metadata if an endpoint IRI was discovered\n            action.metadata.on('end', () => {\n                resolve({ metadata: {\n                        ...metadata,\n                        ...inputFormats.size > 0 ? { inputFormats: [...inputFormats.values()] } : {},\n                        ...resultFormats.size > 0 ? { resultFormats: [...resultFormats.values()] } : {},\n                        ...supportedLanguages.size > 0 ? { supportedLanguages: [...supportedLanguages.values()] } : {},\n                    } });\n            });\n        });\n    }\n}\nexports.ActorRdfMetadataExtractSparqlService = ActorRdfMetadataExtractSparqlService;\n//# sourceMappingURL=ActorRdfMetadataExtractSparqlService.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataExtractSparqlService\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VOID_CLASS_PARTITION = exports.VOID_PROPERTY_PARTITION = exports.VOID_DISTINCT_SUBJECTS = exports.VOID_DISTINCT_OBJECTS = exports.VOID_URI_REGEX_PATTERN = exports.VOID_URI_SPACE = exports.VOID_VOCABULARY = exports.VOID_PROPERTY = exports.VOID_CLASS = exports.VOID_ENTITIES = exports.VOID_TRIPLES = exports.VOID_CLASSES = exports.VOID_DATASET = exports.VOID = exports.SD_GRAPH = exports.SD_FEATURE = exports.SD_UNION_DEFAULT_GRAPH = exports.SD_DEFAULT_GRAPH = exports.SD_DEFAULT_DATASET = exports.SD = exports.RDF_TYPE = void 0;\nexports.RDF_TYPE = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#type';\nexports.SD = 'http://www.w3.org/ns/sparql-service-description#';\nexports.SD_DEFAULT_DATASET = `${exports.SD}defaultDataset`;\nexports.SD_DEFAULT_GRAPH = `${exports.SD}defaultGraph`;\nexports.SD_UNION_DEFAULT_GRAPH = `${exports.SD}UnionDefaultGraph`;\nexports.SD_FEATURE = `${exports.SD}feature`;\nexports.SD_GRAPH = `${exports.SD}Graph`;\nexports.VOID = 'http://rdfs.org/ns/void#';\nexports.VOID_DATASET = `${exports.VOID}Dataset`;\nexports.VOID_CLASSES = `${exports.VOID}classes`;\nexports.VOID_TRIPLES = `${exports.VOID}triples`;\nexports.VOID_ENTITIES = `${exports.VOID}entities`;\nexports.VOID_CLASS = `${exports.VOID}class`;\nexports.VOID_PROPERTY = `${exports.VOID}property`;\nexports.VOID_VOCABULARY = `${exports.VOID}vocabulary`;\nexports.VOID_URI_SPACE = `${exports.VOID}uriSpace`;\nexports.VOID_URI_REGEX_PATTERN = `${exports.VOID}uriRegexPattern`;\nexports.VOID_DISTINCT_OBJECTS = `${exports.VOID}distinctSubjects`;\nexports.VOID_DISTINCT_SUBJECTS = `${exports.VOID}distinctObjects`;\nexports.VOID_PROPERTY_PARTITION = `${exports.VOID}propertyPartition`;\nexports.VOID_CLASS_PARTITION = `${exports.VOID}classPartition`;\n//# sourceMappingURL=Definitions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getClassPartitionEntities = exports.getPredicateTriples = exports.getPredicateSubjects = exports.getPredicateObjects = exports.getDistinctSubjects = exports.getDistinctObjects = exports.estimatePatternCardinalityRaw = exports.matchPatternVocabularies = exports.matchPatternResourceUris = exports.estimatePatternCardinality = void 0;\nconst Definitions_1 = require(\"./Definitions\");\n/**\n * Estimate triple pattern cardinality, by first applying heuristics based on void:uriPatternRegex\n * and void:vocabulary data when available, before performing estimations using the formulae.\n */\nfunction estimatePatternCardinality(dataset, pattern) {\n    const estimate = { type: 'exact', value: 0 };\n    if (matchPatternVocabularies(dataset, pattern) && matchPatternResourceUris(dataset, pattern)) {\n        const value = estimatePatternCardinalityRaw(dataset, pattern);\n        if (value > 0) {\n            estimate.value = value;\n            estimate.type = 'estimate';\n        }\n    }\n    return estimate;\n}\nexports.estimatePatternCardinality = estimatePatternCardinality;\n/**\n * Test whether the given albegra pattern could produce answers from a dataset with the specified resourceUriPattern.\n * Specifically, if both subject and object are IRIs, but neither matches the resourceUriPattern,\n * then the dataset does not contain any RDF resources that would satisfy the pattern.\n */\nfunction matchPatternResourceUris(dataset, pattern) {\n    return (!dataset.uriRegexPattern ||\n        (pattern.subject.termType !== 'NamedNode' || dataset.uriRegexPattern.test(pattern.subject.value)) ||\n        (pattern.object.termType !== 'NamedNode' || dataset.uriRegexPattern.test(pattern.object.value)));\n}\nexports.matchPatternResourceUris = matchPatternResourceUris;\n/**\n * Test whether the given algebra pattern could produce answers from a dataset with the specified vocabularies.\n * Specifically, if the predicate if an IRI but it does not use any of the specifiec vocabularies,\n * then the pattern cannot be answered by the dataset.\n */\nfunction matchPatternVocabularies(dataset, pattern) {\n    if (dataset.vocabularies !== undefined && pattern.predicate.termType === 'NamedNode') {\n        return dataset.vocabularies.some(vc => pattern.predicate.value.startsWith(vc));\n    }\n    return true;\n}\nexports.matchPatternVocabularies = matchPatternVocabularies;\n/**\n * Estimate the triple pattern cardinality using the formulae from Hagedorn, Stefan, et al.\n * \"Resource Planning for SPARQL Query Execution on Data Sharing Platforms.\" COLD 1264 (2014)\n */\nfunction estimatePatternCardinalityRaw(dataset, pattern) {\n    // ?s rdf:type <o> (from the original paper)\n    // ?s rdf:type _:o (also accounted for)\n    if (pattern.subject.termType === 'Variable' &&\n        pattern.predicate.termType === 'NamedNode' &&\n        pattern.predicate.value === Definitions_1.RDF_TYPE &&\n        (pattern.object.termType === 'NamedNode' || pattern.object.termType === 'BlankNode')) {\n        return getClassPartitionEntities(dataset, pattern.object);\n    }\n    // ?s ?p ?o (from the original paper)\n    if (pattern.subject.termType === 'Variable' &&\n        pattern.predicate.termType === 'Variable' &&\n        pattern.object.termType === 'Variable') {\n        return dataset.triples;\n    }\n    // <s> ?p ?o (from the original paper)\n    // _:s ?p ?o (also accounted for)\n    // <s> ?p \"o\"\n    // _:s ?p \"o\"\n    if ((pattern.subject.termType === 'NamedNode' || pattern.subject.termType === 'BlankNode') &&\n        pattern.predicate.termType === 'Variable' &&\n        (pattern.object.termType === 'Variable' || pattern.object.termType === 'Literal')) {\n        const distinctSubjects = getDistinctSubjects(dataset);\n        if (distinctSubjects > 0) {\n            return dataset.triples / distinctSubjects;\n        }\n    }\n    // ?s <p> ?o (from the original paper)\n    // ?s <p> \"o\" (also accounted for)\n    if (pattern.subject.termType === 'Variable' &&\n        pattern.predicate.termType === 'NamedNode' &&\n        (pattern.object.termType === 'Variable' || pattern.object.termType === 'Literal')) {\n        return getPredicateTriples(dataset, pattern.predicate);\n    }\n    // ?s ?p <o> (from the original paper)\n    // ?s ?p _:o (also accounted for)\n    // ?s ?p \"o\"\n    if (pattern.subject.termType === 'Variable' &&\n        pattern.predicate.termType === 'Variable' &&\n        (pattern.object.termType === 'NamedNode' ||\n            pattern.object.termType === 'BlankNode' ||\n            pattern.object.termType === 'Literal')) {\n        const distinctObjects = getDistinctObjects(dataset);\n        if (distinctObjects > 0) {\n            return dataset.triples / distinctObjects;\n        }\n    }\n    // <s> <p> ?o (from the original paper)\n    // _:s <p> ?o (also accounted for)\n    // <s> <p> \"o\"\n    // _:s <p> \"o\"\n    if ((pattern.subject.termType === 'NamedNode' || pattern.subject.termType === 'BlankNode') &&\n        pattern.predicate.termType === 'NamedNode' &&\n        (pattern.object.termType === 'Variable' || pattern.object.termType === 'Literal')) {\n        const predicateTriples = getPredicateTriples(dataset, pattern.predicate);\n        const predicateSubjects = getPredicateSubjects(dataset, pattern.predicate);\n        return predicateSubjects > 0 ? predicateTriples / predicateSubjects : predicateTriples;\n    }\n    // <s> ?p <o> (from the original paper)\n    // _:s ?p _:o (also accounted for)\n    // _:s ?p <o>\n    // <s> ?p _:o\n    if ((pattern.subject.termType === 'NamedNode' || pattern.subject.termType === 'BlankNode') &&\n        pattern.predicate.termType === 'Variable' &&\n        (pattern.object.termType === 'NamedNode' || pattern.object.termType === 'BlankNode')) {\n        const distinctSubjects = getDistinctSubjects(dataset);\n        const distinctObjects = getDistinctObjects(dataset);\n        if (distinctSubjects > 0 && distinctObjects > 0) {\n            return dataset.triples / (distinctSubjects * distinctObjects);\n        }\n    }\n    // ?s <p> <o> (from the original paper)\n    // ?s <p> _:o (also accounted for)\n    if (pattern.subject.termType === 'Variable' &&\n        pattern.predicate.termType === 'NamedNode' &&\n        (pattern.object.termType === 'NamedNode' || pattern.object.termType === 'BlankNode')) {\n        const predicateTriples = getPredicateTriples(dataset, pattern.predicate);\n        const predicateObjects = getPredicateObjects(dataset, pattern.predicate);\n        return predicateObjects > 0 ? predicateTriples / predicateObjects : predicateTriples;\n    }\n    // <s> <p> <o> (from the original paper)\n    // _:s <p> _:o (also accounted for)\n    // <s> <p> _:o\n    // _:s <p> <o>\n    if ((pattern.subject.termType === 'NamedNode' || pattern.subject.termType === 'BlankNode') &&\n        pattern.predicate.termType === 'NamedNode' &&\n        (pattern.object.termType === 'NamedNode' || pattern.object.termType === 'BlankNode')) {\n        const predicateTriples = getPredicateTriples(dataset, pattern.predicate);\n        const predicateSubjects = getPredicateSubjects(dataset, pattern.predicate);\n        const predicateObjects = getPredicateObjects(dataset, pattern.predicate);\n        return predicateSubjects > 0 && predicateObjects > 0 ?\n            predicateTriples / (predicateSubjects * predicateObjects) :\n            predicateTriples;\n    }\n    // In all other cases, return the total triple count as absolute upper bound\n    return dataset.triples;\n}\nexports.estimatePatternCardinalityRaw = estimatePatternCardinalityRaw;\n/**\n * Attempts to retrieve void:distinctObjects, falls back to void:entities.\n * Returns the total triple count as fallback upper bound.\n */\nfunction getDistinctObjects(dataset) {\n    return dataset.distinctObjects ?? dataset.entities ?? dataset.triples;\n}\nexports.getDistinctObjects = getDistinctObjects;\n/**\n * Attempts to retrieve void:distinctSubjects, falls back to void:entities.\n * Returns the total triple count as fallback upper bound.\n */\nfunction getDistinctSubjects(dataset) {\n    return dataset.distinctSubjects ?? dataset.entities ?? dataset.triples;\n}\nexports.getDistinctSubjects = getDistinctSubjects;\n/**\n * Attempts to retrieve void:distinctObjects from a void:propertyPartition.\n * Returns 0 when property partitions are available but the specific property is not.\n * Falls back to total triple count as upper bound without any property partitions.\n */\nfunction getPredicateObjects(dataset, predicate) {\n    if (dataset.propertyPartitions) {\n        const partition = dataset.propertyPartitions[predicate.value];\n        return partition?.distinctObjects ?? partition?.triples ?? 0;\n    }\n    return dataset.triples;\n}\nexports.getPredicateObjects = getPredicateObjects;\n/**\n * Attempts to retrieve void:distinctSubjects from a void:propertyPartition.\n * Returns 0 when property partitions are available but the specific property is not.\n * Falls back to total triple count as upper bound without any property partitions.\n */\nfunction getPredicateSubjects(dataset, predicate) {\n    if (dataset.propertyPartitions) {\n        const partition = dataset.propertyPartitions[predicate.value];\n        return partition?.distinctSubjects ?? partition?.triples ?? 0;\n    }\n    return dataset.triples;\n}\nexports.getPredicateSubjects = getPredicateSubjects;\n/**\n * Attempts to retrieve void:triples from a void:propertyPartition.\n * Returns 0 when property partitions are available but the specific property is not.\n * Falls back to total triple count as upper bound without any property partitions.\n */\nfunction getPredicateTriples(dataset, predicate) {\n    if (dataset.propertyPartitions) {\n        return dataset.propertyPartitions[predicate.value]?.triples ?? 0;\n    }\n    return dataset.triples;\n}\nexports.getPredicateTriples = getPredicateTriples;\n/**\n * Attempts to retrieve void:entities from a void:classPartition.\n * Returns 0 when class partitions are available but the specified class is not.\n * Falls back to estimation using void:entities and void:classes on the dataset,\n * and finally total dataset triple count as upper bound.\n */\nfunction getClassPartitionEntities(dataset, object) {\n    if (dataset.classPartitions) {\n        return dataset.classPartitions[object.value]?.entities ?? 0;\n    }\n    if (dataset.entities !== undefined && dataset.classes) {\n        return dataset.entities / dataset.classes;\n    }\n    return dataset.triples;\n}\nexports.getClassPartitionEntities = getClassPartitionEntities;\n//# sourceMappingURL=Estimators.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfMetadataExtractVoid = void 0;\nconst bus_rdf_metadata_extract_1 = require(\"@comunica/bus-rdf-metadata-extract\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst Definitions_1 = require(\"./Definitions\");\nconst Estimators_1 = require(\"./Estimators\");\n/**\n * A comunica Void RDF Metadata Extract Actor.\n */\nclass ActorRdfMetadataExtractVoid extends bus_rdf_metadata_extract_1.ActorRdfMetadataExtract {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        return new Promise((resolve, reject) => {\n            // Track the URIs of identified datasets to extract or ignore\n            const datasetUris = new Set();\n            const ignoredUris = new Set();\n            // Track the other stats per-URI to allow arbitrary triple ordering in the stream\n            const triples = {};\n            const entities = {};\n            const vocabularies = {};\n            const classes = {};\n            const distinctObjects = {};\n            const distinctSubjects = {};\n            const uriRegexPatterns = {};\n            const propertyPartitions = {};\n            const propertyPartitionProperties = {};\n            const classPartitions = {};\n            const classPartitionClasses = {};\n            // Default dataset and graph to remove in case of sd:UnionDefaultGraph\n            let defaultDatasetUri;\n            let defaultGraphUri;\n            let unionDefaultGraph = false;\n            action.metadata\n                .on('error', reject)\n                .on('data', (quad) => {\n                switch (quad.predicate.value) {\n                    case Definitions_1.RDF_TYPE:\n                        if (quad.object.value === Definitions_1.SD_GRAPH || quad.object.value === Definitions_1.VOID_DATASET) {\n                            datasetUris.add(quad.subject.value);\n                        }\n                        break;\n                    case Definitions_1.VOID_TRIPLES:\n                        triples[quad.subject.value] = Number.parseInt(quad.object.value, 10);\n                        break;\n                    case Definitions_1.VOID_ENTITIES:\n                        entities[quad.subject.value] = Number.parseInt(quad.object.value, 10);\n                        break;\n                    case Definitions_1.VOID_CLASSES:\n                        classes[quad.subject.value] = Number.parseInt(quad.object.value, 10);\n                        break;\n                    case Definitions_1.VOID_CLASS:\n                        classPartitionClasses[quad.subject.value] = quad.object.value;\n                        break;\n                    case Definitions_1.VOID_PROPERTY:\n                        propertyPartitionProperties[quad.subject.value] = quad.object.value;\n                        break;\n                    case Definitions_1.VOID_DISTINCT_OBJECTS:\n                        distinctObjects[quad.subject.value] = Number.parseInt(quad.object.value, 10);\n                        break;\n                    case Definitions_1.VOID_DISTINCT_SUBJECTS:\n                        distinctSubjects[quad.subject.value] = Number.parseInt(quad.object.value, 10);\n                        break;\n                    case Definitions_1.VOID_VOCABULARY:\n                        if (vocabularies[quad.subject.value]) {\n                            vocabularies[quad.subject.value].push(quad.object.value);\n                        }\n                        else {\n                            vocabularies[quad.subject.value] = [quad.object.value];\n                        }\n                        break;\n                    case Definitions_1.VOID_URI_SPACE:\n                        if (!uriRegexPatterns[quad.subject.value]) {\n                            uriRegexPatterns[quad.subject.value] = new RegExp(`^${quad.object.value}`, 'u');\n                        }\n                        break;\n                    case Definitions_1.VOID_URI_REGEX_PATTERN:\n                        uriRegexPatterns[quad.subject.value] = new RegExp(quad.object.value, 'u');\n                        break;\n                    case Definitions_1.VOID_PROPERTY_PARTITION:\n                        ignoredUris.add(quad.object.value);\n                        if (propertyPartitions[quad.subject.value]) {\n                            propertyPartitions[quad.subject.value].push(quad.object.value);\n                        }\n                        else {\n                            propertyPartitions[quad.subject.value] = [quad.object.value];\n                        }\n                        break;\n                    case Definitions_1.VOID_CLASS_PARTITION:\n                        ignoredUris.add(quad.object.value);\n                        if (classPartitions[quad.subject.value]) {\n                            classPartitions[quad.subject.value].push(quad.object.value);\n                        }\n                        else {\n                            classPartitions[quad.subject.value] = [quad.object.value];\n                        }\n                        break;\n                    case Definitions_1.SD_DEFAULT_DATASET:\n                        defaultDatasetUri = quad.object.value;\n                        break;\n                    case Definitions_1.SD_DEFAULT_GRAPH:\n                        defaultGraphUri = quad.object.value;\n                        break;\n                    case Definitions_1.SD_FEATURE:\n                        if (quad.object.value === Definitions_1.SD_UNION_DEFAULT_GRAPH) {\n                            unionDefaultGraph = true;\n                        }\n                        break;\n                }\n            })\n                .on('end', () => {\n                const datasets = [];\n                // Helper function to extract property partitions into a map\n                const getPropertyPartitions = (uri) => {\n                    const partitions = {};\n                    for (const partitionUri of propertyPartitions[uri]) {\n                        const propertyUri = propertyPartitionProperties[partitionUri];\n                        if (propertyUri) {\n                            partitions[propertyUri] = {\n                                distinctObjects: distinctObjects[partitionUri],\n                                distinctSubjects: distinctSubjects[partitionUri],\n                                triples: triples[partitionUri],\n                            };\n                        }\n                    }\n                    return partitions;\n                };\n                // Helper function to extract class partitions into a map\n                const getClassPartitions = (uri) => {\n                    const partitions = {};\n                    for (const partitionUri of classPartitions[uri]) {\n                        const classUri = classPartitionClasses[partitionUri];\n                        if (classUri) {\n                            partitions[classUri] = {\n                                entities: entities[partitionUri],\n                                propertyPartitions: propertyPartitions[partitionUri] ?\n                                    getPropertyPartitions(partitionUri) :\n                                    undefined,\n                            };\n                        }\n                    }\n                    return partitions;\n                };\n                // Always ignore intermediate default dataset\n                if (defaultDatasetUri) {\n                    ignoredUris.add(defaultDatasetUri);\n                }\n                // Ignore default graph URI when union default graph is set\n                if (unionDefaultGraph && defaultGraphUri) {\n                    ignoredUris.add(defaultGraphUri);\n                }\n                // Propagate vocabularies from higher level datasets to lower-level\n                if (defaultDatasetUri && defaultGraphUri && vocabularies[defaultDatasetUri]) {\n                    vocabularies[defaultGraphUri] = [\n                        ...vocabularies[defaultGraphUri] ?? [],\n                        ...vocabularies[defaultDatasetUri],\n                    ];\n                }\n                // Delete all the to-be-ignored datasets, such as property and class partitions\n                for (const uri of ignoredUris) {\n                    datasetUris.delete(uri);\n                }\n                for (const uri of datasetUris) {\n                    // Only the VoID descriptions with triple counts and class or property partitions are actually useful,\n                    // and any other ones would contain insufficient information to use in estimation, as the formulae\n                    // would go to 0 for most estimations.\n                    if (triples[uri]) {\n                        const dataset = {\n                            entities: entities[uri],\n                            identifier: uri,\n                            classes: classes[uri] ?? classPartitions[uri]?.length ?? 0,\n                            classPartitions: classPartitions[uri] ? getClassPartitions(uri) : undefined,\n                            distinctObjects: distinctObjects[uri],\n                            distinctSubjects: distinctSubjects[uri],\n                            propertyPartitions: propertyPartitions[uri] ? getPropertyPartitions(uri) : undefined,\n                            triples: triples[uri],\n                            uriRegexPattern: uriRegexPatterns[uri],\n                            vocabularies: vocabularies[uri],\n                        };\n                        datasets.push({\n                            uri,\n                            source: action.url,\n                            getCardinality: (operation) => {\n                                if (operation.type === sparqlalgebrajs_1.Algebra.types.PATTERN) {\n                                    return { ...(0, Estimators_1.estimatePatternCardinality)(dataset, operation), dataset: uri };\n                                }\n                            },\n                        });\n                    }\n                }\n                resolve({ metadata: datasets.length > 0 ? { datasets } : {} });\n            });\n        });\n    }\n}\nexports.ActorRdfMetadataExtractVoid = ActorRdfMetadataExtractVoid;\n//# sourceMappingURL=ActorRdfMetadataExtractVoid.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfMetadataExtractVoid\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParse = void 0;\nconst actor_abstract_mediatyped_1 = require(\"@comunica/actor-abstract-mediatyped\");\n/**\n * A base actor for listening to RDF parse events.\n *\n * Actor types:\n * * Input:  IActionRdfParseOrMediaType:      A parse input or a media type input.\n * * Test:   <none>\n * * Output: IActorOutputRdfParseOrMediaType: The parsed quads.\n *\n * @see IActionInit\n */\nclass ActorRdfParse extends actor_abstract_mediatyped_1.ActorAbstractMediaTyped {\n    /**\n     * @param args - @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfParse = ActorRdfParse;\n//# sourceMappingURL=ActorRdfParse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseFixedMediaTypes = void 0;\nconst actor_abstract_mediatyped_1 = require(\"@comunica/actor-abstract-mediatyped\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A base actor for listening to RDF parse events that has fixed media types.\n *\n * Actor types:\n * * Input:  IActionRdfParseOrMediaType:      A parse input or a media type input.\n * * Test:   <none>\n * * Output: IActorOutputRdfParseOrMediaType: The parsed quads.\n *\n * @see IActionInit\n */\nclass ActorRdfParseFixedMediaTypes extends actor_abstract_mediatyped_1.ActorAbstractMediaTypedFixed {\n    /* eslint-disable max-len */\n    /**\n     * TODO: rm this (and eslint-disable) once we remove the abstract media typed actor\n     * @param args -\n     *   \\ @defaultNested {<cbrp:components/ActorRdfParse.jsonld#ActorRdfParse_default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {RDF parsing failed: none of the configured parsers were able to handle the media type ${action.handle.mediaType} for ${action.handle.url}} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n    }\n    /* eslint-enable max-len */\n    async testHandleChecked(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n}\nexports.ActorRdfParseFixedMediaTypes = ActorRdfParseFixedMediaTypes;\n//# sourceMappingURL=ActorRdfParseFixedMediaTypes.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParse\"), exports);\n__exportStar(require(\"./ActorRdfParseFixedMediaTypes\"), exports);\n//# sourceMappingURL=index.js.map","const RDF  = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n    XSD  = 'http://www.w3.org/2001/XMLSchema#',\n    SWAP = 'http://www.w3.org/2000/10/swap/';\n\nexport default {\n  xsd: {\n    decimal: `${XSD}decimal`,\n    boolean: `${XSD}boolean`,\n    double:  `${XSD}double`,\n    integer: `${XSD}integer`,\n    string:  `${XSD}string`,\n  },\n  rdf: {\n    type:       `${RDF}type`,\n    nil:        `${RDF}nil`,\n    first:      `${RDF}first`,\n    rest:       `${RDF}rest`,\n    langString: `${RDF}langString`,\n  },\n  owl: {\n    sameAs: 'http://www.w3.org/2002/07/owl#sameAs',\n  },\n  r: {\n    forSome: `${SWAP}reify#forSome`,\n    forAll:  `${SWAP}reify#forAll`,\n  },\n  log: {\n    implies: `${SWAP}log#implies`,\n    isImpliedBy: `${SWAP}log#isImpliedBy`,\n  },\n};\n","// **N3Lexer** tokenizes N3 documents.\nimport { Buffer } from 'buffer';\nimport namespaces from './IRIs';\n\nconst { xsd } = namespaces;\n\n// Regular expression and replacement string to escape N3 strings\nconst escapeSequence = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{8})|\\\\([^])/g;\nconst escapeReplacements = {\n  '\\\\': '\\\\', \"'\": \"'\", '\"': '\"',\n  'n': '\\n', 'r': '\\r', 't': '\\t', 'f': '\\f', 'b': '\\b',\n  '_': '_', '~': '~', '.': '.', '-': '-', '!': '!', '$': '$', '&': '&',\n  '(': '(', ')': ')', '*': '*', '+': '+', ',': ',', ';': ';', '=': '=',\n  '/': '/', '?': '?', '#': '#', '@': '@', '%': '%',\n};\nconst illegalIriChars = /[\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]/;\n\nconst lineModeRegExps = {\n  _iri: true,\n  _unescapedIri: true,\n  _simpleQuotedString: true,\n  _langcode: true,\n  _blank: true,\n  _newline: true,\n  _comment: true,\n  _whitespace: true,\n  _endOfFile: true,\n};\nconst invalidRegExp = /$0^/;\n\n// ## Constructor\nexport default class N3Lexer {\n  constructor(options) {\n    // ## Regular expressions\n    // It's slightly faster to have these as properties than as in-scope variables\n    this._iri = /^<((?:[^ <>{}\\\\]|\\\\[uU])+)>[ \\t]*/; // IRI with escape sequences; needs sanity check after unescaping\n    this._unescapedIri = /^<([^\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]*)>[ \\t]*/; // IRI without escape sequences; no unescaping\n    this._simpleQuotedString = /^\"([^\"\\\\\\r\\n]*)\"(?=[^\"])/; // string without escape sequences\n    this._simpleApostropheString = /^'([^'\\\\\\r\\n]*)'(?=[^'])/;\n    this._langcode = /^@([a-z]+(?:-[a-z0-9]+)*)(?=[^a-z0-9\\-])/i;\n    this._prefix = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:(?=[#\\s<])/;\n    this._prefixed = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:((?:(?:[0-:A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])(?:(?:[\\.\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])*(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~]))?)?)(?:[ \\t]+|(?=\\.?[,;!\\^\\s#()\\[\\]\\{\\}\"'<>]))/;\n    this._variable = /^\\?(?:(?:[A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?=[.,;!\\^\\s#()\\[\\]\\{\\}\"'<>])/;\n    this._blank = /^_:((?:[0-9A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?:[ \\t]+|(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>]))/;\n    this._number = /^[\\-+]?(?:(\\d+\\.\\d*|\\.?\\d+)[eE][\\-+]?|\\d*(\\.)?)\\d+(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>])/;\n    this._boolean = /^(?:true|false)(?=[.,;\\s#()\\[\\]\\{\\}\"'<>])/;\n    this._keyword = /^@[a-z]+(?=[\\s#<:])/i;\n    this._sparqlKeyword = /^(?:PREFIX|BASE|GRAPH)(?=[\\s#<])/i;\n    this._shortPredicates = /^a(?=[\\s#()\\[\\]\\{\\}\"'<>])/;\n    this._newline = /^[ \\t]*(?:#[^\\n\\r]*)?(?:\\r\\n|\\n|\\r)[ \\t]*/;\n    this._comment = /#([^\\n\\r]*)/;\n    this._whitespace = /^[ \\t]+/;\n    this._endOfFile = /^(?:#[^\\n\\r]*)?$/;\n    options = options || {};\n\n    // Whether the log:isImpliedBy predicate is supported\n    this._isImpliedBy = options.isImpliedBy;\n\n    // In line mode (N-Triples or N-Quads), only simple features may be parsed\n    if (this._lineMode = !!options.lineMode) {\n      this._n3Mode = false;\n      // Don't tokenize special literals\n      for (const key in this) {\n        if (!(key in lineModeRegExps) && this[key] instanceof RegExp)\n          this[key] = invalidRegExp;\n      }\n    }\n    // When not in line mode, enable N3 functionality by default\n    else {\n      this._n3Mode = options.n3 !== false;\n    }\n    // Don't output comment tokens by default\n    this.comments = !!options.comments;\n    // Cache the last tested closing position of long literals\n    this._literalClosingPos = 0;\n  }\n\n  // ## Private methods\n\n  // ### `_tokenizeToEnd` tokenizes as for as possible, emitting tokens through the callback\n  _tokenizeToEnd(callback, inputFinished) {\n    // Continue parsing as far as possible; the loop will return eventually\n    let input = this._input;\n    let currentLineLength = input.length;\n    while (true) {\n      // Count and skip whitespace lines\n      let whiteSpaceMatch, comment;\n      while (whiteSpaceMatch = this._newline.exec(input)) {\n        // Try to find a comment\n        if (this.comments && (comment = this._comment.exec(whiteSpaceMatch[0])))\n          emitToken('comment', comment[1], '', this._line, whiteSpaceMatch[0].length);\n        // Advance the input\n        input = input.substr(whiteSpaceMatch[0].length, input.length);\n        currentLineLength = input.length;\n        this._line++;\n      }\n      // Skip whitespace on current line\n      if (!whiteSpaceMatch && (whiteSpaceMatch = this._whitespace.exec(input)))\n        input = input.substr(whiteSpaceMatch[0].length, input.length);\n\n      // Stop for now if we're at the end\n      if (this._endOfFile.test(input)) {\n        // If the input is finished, emit EOF\n        if (inputFinished) {\n          // Try to find a final comment\n          if (this.comments && (comment = this._comment.exec(input)))\n            emitToken('comment', comment[1], '', this._line, input.length);\n          input = null;\n          emitToken('eof', '', '', this._line, 0);\n        }\n        return this._input = input;\n      }\n\n      // Look for specific token types based on the first character\n      const line = this._line, firstChar = input[0];\n      let type = '', value = '', prefix = '',\n          match = null, matchLength = 0, inconclusive = false;\n      switch (firstChar) {\n      case '^':\n        // We need at least 3 tokens lookahead to distinguish ^^<IRI> and ^^pre:fixed\n        if (input.length < 3)\n          break;\n        // Try to match a type\n        else if (input[1] === '^') {\n          this._previousMarker = '^^';\n          // Move to type IRI or prefixed name\n          input = input.substr(2);\n          if (input[0] !== '<') {\n            inconclusive = true;\n            break;\n          }\n        }\n        // If no type, it must be a path expression\n        else {\n          if (this._n3Mode) {\n            matchLength = 1;\n            type = '^';\n          }\n          break;\n        }\n        // Fall through in case the type is an IRI\n      case '<':\n        // Try to find a full IRI without escape sequences\n        if (match = this._unescapedIri.exec(input))\n          type = 'IRI', value = match[1];\n        // Try to find a full IRI with escape sequences\n        else if (match = this._iri.exec(input)) {\n          value = this._unescape(match[1]);\n          if (value === null || illegalIriChars.test(value))\n            return reportSyntaxError(this);\n          type = 'IRI';\n        }\n        // Try to find a nested triple\n        else if (input.length > 1 && input[1] === '<')\n          type = '<<', matchLength = 2;\n        // Try to find a backwards implication arrow\n        else if (this._n3Mode && input.length > 1 && input[1] === '=') {\n          matchLength = 2;\n          if (this._isImpliedBy) type = 'abbreviation', value = '<';\n          else type = 'inverse', value = '>';\n        }\n        break;\n\n      case '>':\n        if (input.length > 1 && input[1] === '>')\n          type = '>>', matchLength = 2;\n        break;\n\n      case '_':\n        // Try to find a blank node. Since it can contain (but not end with) a dot,\n        // we always need a non-dot character before deciding it is a blank node.\n        // Therefore, try inserting a space if we're at the end of the input.\n        if ((match = this._blank.exec(input)) ||\n            inputFinished && (match = this._blank.exec(`${input} `)))\n          type = 'blank', prefix = '_', value = match[1];\n        break;\n\n      case '\"':\n        // Try to find a literal without escape sequences\n        if (match = this._simpleQuotedString.exec(input))\n          value = match[1];\n        // Try to find a literal wrapped in three pairs of quotes\n        else {\n          ({ value, matchLength } = this._parseLiteral(input));\n          if (value === null)\n            return reportSyntaxError(this);\n        }\n        if (match !== null || matchLength !== 0) {\n          type = 'literal';\n          this._literalClosingPos = 0;\n        }\n        break;\n\n      case \"'\":\n        if (!this._lineMode) {\n          // Try to find a literal without escape sequences\n          if (match = this._simpleApostropheString.exec(input))\n            value = match[1];\n          // Try to find a literal wrapped in three pairs of quotes\n          else {\n            ({ value, matchLength } = this._parseLiteral(input));\n            if (value === null)\n              return reportSyntaxError(this);\n          }\n          if (match !== null || matchLength !== 0) {\n            type = 'literal';\n            this._literalClosingPos = 0;\n          }\n        }\n        break;\n\n      case '?':\n        // Try to find a variable\n        if (this._n3Mode && (match = this._variable.exec(input)))\n          type = 'var', value = match[0];\n        break;\n\n      case '@':\n        // Try to find a language code\n        if (this._previousMarker === 'literal' && (match = this._langcode.exec(input)))\n          type = 'langcode', value = match[1];\n        // Try to find a keyword\n        else if (match = this._keyword.exec(input))\n          type = match[0];\n        break;\n\n      case '.':\n        // Try to find a dot as punctuation\n        if (input.length === 1 ? inputFinished : (input[1] < '0' || input[1] > '9')) {\n          type = '.';\n          matchLength = 1;\n          break;\n        }\n        // Fall through to numerical case (could be a decimal dot)\n\n      case '0':\n      case '1':\n      case '2':\n      case '3':\n      case '4':\n      case '5':\n      case '6':\n      case '7':\n      case '8':\n      case '9':\n      case '+':\n      case '-':\n        // Try to find a number. Since it can contain (but not end with) a dot,\n        // we always need a non-dot character before deciding it is a number.\n        // Therefore, try inserting a space if we're at the end of the input.\n        if (match = this._number.exec(input) ||\n            inputFinished && (match = this._number.exec(`${input} `))) {\n          type = 'literal', value = match[0];\n          prefix = (typeof match[1] === 'string' ? xsd.double :\n                    (typeof match[2] === 'string' ? xsd.decimal : xsd.integer));\n        }\n        break;\n\n      case 'B':\n      case 'b':\n      case 'p':\n      case 'P':\n      case 'G':\n      case 'g':\n        // Try to find a SPARQL-style keyword\n        if (match = this._sparqlKeyword.exec(input))\n          type = match[0].toUpperCase();\n        else\n          inconclusive = true;\n        break;\n\n      case 'f':\n      case 't':\n        // Try to match a boolean\n        if (match = this._boolean.exec(input))\n          type = 'literal', value = match[0], prefix = xsd.boolean;\n        else\n          inconclusive = true;\n        break;\n\n      case 'a':\n        // Try to find an abbreviated predicate\n        if (match = this._shortPredicates.exec(input))\n          type = 'abbreviation', value = 'a';\n        else\n          inconclusive = true;\n        break;\n\n      case '=':\n        // Try to find an implication arrow or equals sign\n        if (this._n3Mode && input.length > 1) {\n          type = 'abbreviation';\n          if (input[1] !== '>')\n            matchLength = 1, value = '=';\n          else\n            matchLength = 2, value = '>';\n        }\n        break;\n\n      case '!':\n        if (!this._n3Mode)\n          break;\n      case ',':\n      case ';':\n      case '[':\n      case ']':\n      case '(':\n      case ')':\n      case '}':\n        if (!this._lineMode) {\n          matchLength = 1;\n          type = firstChar;\n        }\n        break;\n      case '{':\n        // We need at least 2 tokens lookahead to distinguish \"{|\" and \"{ \"\n        if (!this._lineMode && input.length >= 2) {\n          // Try to find a quoted triple annotation start\n          if (input[1] === '|')\n            type = '{|', matchLength = 2;\n          else\n            type = firstChar, matchLength = 1;\n        }\n        break;\n      case '|':\n        // We need 2 tokens lookahead to parse \"|}\"\n        // Try to find a quoted triple annotation end\n        if (input.length >= 2 && input[1] === '}')\n          type = '|}', matchLength = 2;\n        break;\n\n      default:\n        inconclusive = true;\n      }\n\n      // Some first characters do not allow an immediate decision, so inspect more\n      if (inconclusive) {\n        // Try to find a prefix\n        if ((this._previousMarker === '@prefix' || this._previousMarker === 'PREFIX') &&\n            (match = this._prefix.exec(input)))\n          type = 'prefix', value = match[1] || '';\n        // Try to find a prefixed name. Since it can contain (but not end with) a dot,\n        // we always need a non-dot character before deciding it is a prefixed name.\n        // Therefore, try inserting a space if we're at the end of the input.\n        else if ((match = this._prefixed.exec(input)) ||\n                 inputFinished && (match = this._prefixed.exec(`${input} `)))\n          type = 'prefixed', prefix = match[1] || '', value = this._unescape(match[2]);\n      }\n\n      // A type token is special: it can only be emitted after an IRI or prefixed name is read\n      if (this._previousMarker === '^^') {\n        switch (type) {\n        case 'prefixed': type = 'type';    break;\n        case 'IRI':      type = 'typeIRI'; break;\n        default:         type = '';\n        }\n      }\n\n      // What if nothing of the above was found?\n      if (!type) {\n        // We could be in streaming mode, and then we just wait for more input to arrive.\n        // Otherwise, a syntax error has occurred in the input.\n        // One exception: error on an unaccounted linebreak (= not inside a triple-quoted literal).\n        if (inputFinished || (!/^'''|^\"\"\"/.test(input) && /\\n|\\r/.test(input)))\n          return reportSyntaxError(this);\n        else\n          return this._input = input;\n      }\n\n      // Emit the parsed token\n      const length = matchLength || match[0].length;\n      const token = emitToken(type, value, prefix, line, length);\n      this.previousToken = token;\n      this._previousMarker = type;\n\n      // Advance to next part to tokenize\n      input = input.substr(length, input.length);\n    }\n\n    // Emits the token through the callback\n    function emitToken(type, value, prefix, line, length) {\n      const start = input ? currentLineLength - input.length : currentLineLength;\n      const end = start + length;\n      const token = { type, value, prefix, line, start, end };\n      callback(null, token);\n      return token;\n    }\n    // Signals the syntax error through the callback\n    function reportSyntaxError(self) { callback(self._syntaxError(/^\\S*/.exec(input)[0])); }\n  }\n\n  // ### `_unescape` replaces N3 escape codes by their corresponding characters\n  _unescape(item) {\n    let invalid = false;\n    const replaced = item.replace(escapeSequence, (sequence, unicode4, unicode8, escapedChar) => {\n      // 4-digit unicode character\n      if (typeof unicode4 === 'string')\n        return String.fromCharCode(Number.parseInt(unicode4, 16));\n      // 8-digit unicode character\n      if (typeof unicode8 === 'string') {\n        let charCode = Number.parseInt(unicode8, 16);\n        return charCode <= 0xFFFF ? String.fromCharCode(Number.parseInt(unicode8, 16)) :\n          String.fromCharCode(0xD800 + ((charCode -= 0x10000) >> 10), 0xDC00 + (charCode & 0x3FF));\n      }\n      // fixed escape sequence\n      if (escapedChar in escapeReplacements)\n        return escapeReplacements[escapedChar];\n      // invalid escape sequence\n      invalid = true;\n      return '';\n    });\n    return invalid ? null : replaced;\n  }\n\n  // ### `_parseLiteral` parses a literal into an unescaped value\n  _parseLiteral(input) {\n    // Ensure we have enough lookahead to identify triple-quoted strings\n    if (input.length >= 3) {\n      // Identify the opening quote(s)\n      const opening = input.match(/^(?:\"\"\"|\"|'''|'|)/)[0];\n      const openingLength = opening.length;\n\n      // Find the next candidate closing quotes\n      let closingPos = Math.max(this._literalClosingPos, openingLength);\n      while ((closingPos = input.indexOf(opening, closingPos)) > 0) {\n        // Count backslashes right before the closing quotes\n        let backslashCount = 0;\n        while (input[closingPos - backslashCount - 1] === '\\\\')\n          backslashCount++;\n\n        // An even number of backslashes (in particular 0)\n        // means these are actual, non-escaped closing quotes\n        if (backslashCount % 2 === 0) {\n          // Extract and unescape the value\n          const raw = input.substring(openingLength, closingPos);\n          const lines = raw.split(/\\r\\n|\\r|\\n/).length - 1;\n          const matchLength = closingPos + openingLength;\n          // Only triple-quoted strings can be multi-line\n          if (openingLength === 1 && lines !== 0 ||\n              openingLength === 3 && this._lineMode)\n            break;\n          this._line += lines;\n          return { value: this._unescape(raw), matchLength };\n        }\n        closingPos++;\n      }\n      this._literalClosingPos = input.length - openingLength + 1;\n    }\n    return { value: '', matchLength: 0 };\n  }\n\n  // ### `_syntaxError` creates a syntax error for the given issue\n  _syntaxError(issue) {\n    this._input = null;\n    const err = new Error(`Unexpected \"${issue}\" on line ${this._line}.`);\n    err.context = {\n      token: undefined,\n      line: this._line,\n      previousToken: this.previousToken,\n    };\n    return err;\n  }\n\n  // ### Strips off any starting UTF BOM mark.\n  _readStartingBom(input) {\n    return input.startsWith('\\ufeff') ? input.substr(1) : input;\n  }\n\n  // ## Public methods\n\n  // ### `tokenize` starts the transformation of an N3 document into an array of tokens.\n  // The input can be a string or a stream.\n  tokenize(input, callback) {\n    this._line = 1;\n\n    // If the input is a string, continuously emit tokens through the callback until the end\n    if (typeof input === 'string') {\n      this._input = this._readStartingBom(input);\n      // If a callback was passed, asynchronously call it\n      if (typeof callback === 'function')\n        queueMicrotask(() => this._tokenizeToEnd(callback, true));\n      // If no callback was passed, tokenize synchronously and return\n      else {\n        const tokens = [];\n        let error;\n        this._tokenizeToEnd((e, t) => e ? (error = e) : tokens.push(t), true);\n        if (error) throw error;\n        return tokens;\n      }\n    }\n    // Otherwise, the input must be a stream\n    else {\n      this._pendingBuffer = null;\n      if (typeof input.setEncoding === 'function')\n        input.setEncoding('utf8');\n      // Adds the data chunk to the buffer and parses as far as possible\n      input.on('data', data => {\n        if (this._input !== null && data.length !== 0) {\n          // Prepend any previous pending writes\n          if (this._pendingBuffer) {\n            data = Buffer.concat([this._pendingBuffer, data]);\n            this._pendingBuffer = null;\n          }\n          // Hold if the buffer ends in an incomplete unicode sequence\n          if (data[data.length - 1] & 0x80) {\n            this._pendingBuffer = data;\n          }\n          // Otherwise, tokenize as far as possible\n          else {\n            // Only read a BOM at the start\n            if (typeof this._input === 'undefined')\n              this._input = this._readStartingBom(typeof data === 'string' ? data : data.toString());\n            else\n              this._input += data;\n            this._tokenizeToEnd(callback, false);\n          }\n        }\n      });\n      // Parses until the end\n      input.on('end', () => {\n        if (typeof this._input === 'string')\n          this._tokenizeToEnd(callback, true);\n      });\n      input.on('error', callback);\n    }\n  }\n}\n","// N3.js implementations of the RDF/JS core data types\n// See http://rdf.js.org/data-model-spec/\n\nimport namespaces from './IRIs';\n\nconst { rdf, xsd } = namespaces;\n\n// eslint-disable-next-line prefer-const\nlet DEFAULTGRAPH;\nlet _blankNodeCounter = 0;\n\nconst escapedLiteral = /^\"(.*\".*)(?=\"[^\"]*$)/;\n\n// ## DataFactory singleton\nconst DataFactory = {\n  namedNode,\n  blankNode,\n  variable,\n  literal,\n  defaultGraph,\n  quad,\n  triple: quad,\n  fromTerm,\n  fromQuad,\n};\nexport default DataFactory;\n\n// ## Term constructor\nexport class Term {\n  constructor(id) {\n    this.id = id;\n  }\n\n  // ### The value of this term\n  get value() {\n    return this.id;\n  }\n\n  // ### Returns whether this object represents the same term as the other\n  equals(other) {\n    // If both terms were created by this library,\n    // equality can be computed through ids\n    if (other instanceof Term)\n      return this.id === other.id;\n    // Otherwise, compare term type and value\n    return !!other && this.termType === other.termType &&\n                      this.value    === other.value;\n  }\n\n  // ### Implement hashCode for Immutable.js, since we implement `equals`\n  // https://immutable-js.com/docs/v4.0.0/ValueObject/#hashCode()\n  hashCode() {\n    return 0;\n  }\n\n  // ### Returns a plain object representation of this term\n  toJSON() {\n    return {\n      termType: this.termType,\n      value:    this.value,\n    };\n  }\n}\n\n\n// ## NamedNode constructor\nexport class NamedNode extends Term {\n  // ### The term type of this term\n  get termType() {\n    return 'NamedNode';\n  }\n}\n\n// ## Literal constructor\nexport class Literal extends Term {\n  // ### The term type of this term\n  get termType() {\n    return 'Literal';\n  }\n\n  // ### The text value of this literal\n  get value() {\n    return this.id.substring(1, this.id.lastIndexOf('\"'));\n  }\n\n  // ### The language of this literal\n  get language() {\n    // Find the last quotation mark (e.g., '\"abc\"@en-us')\n    const id = this.id;\n    let atPos = id.lastIndexOf('\"') + 1;\n    // If \"@\" it follows, return the remaining substring; empty otherwise\n    return atPos < id.length && id[atPos++] === '@' ? id.substr(atPos).toLowerCase() : '';\n  }\n\n  // ### The datatype IRI of this literal\n  get datatype() {\n    return new NamedNode(this.datatypeString);\n  }\n\n  // ### The datatype string of this literal\n  get datatypeString() {\n    // Find the last quotation mark (e.g., '\"abc\"^^http://ex.org/types#t')\n    const id = this.id, dtPos = id.lastIndexOf('\"') + 1;\n    const char = dtPos < id.length ? id[dtPos] : '';\n    // If \"^\" it follows, return the remaining substring\n    return char === '^' ? id.substr(dtPos + 2) :\n           // If \"@\" follows, return rdf:langString; xsd:string otherwise\n           (char !== '@' ? xsd.string : rdf.langString);\n  }\n\n  // ### Returns whether this object represents the same term as the other\n  equals(other) {\n    // If both literals were created by this library,\n    // equality can be computed through ids\n    if (other instanceof Literal)\n      return this.id === other.id;\n    // Otherwise, compare term type, value, language, and datatype\n    return !!other && !!other.datatype &&\n                      this.termType === other.termType &&\n                      this.value    === other.value    &&\n                      this.language === other.language &&\n                      this.datatype.value === other.datatype.value;\n  }\n\n  toJSON() {\n    return {\n      termType: this.termType,\n      value:    this.value,\n      language: this.language,\n      datatype: { termType: 'NamedNode', value: this.datatypeString },\n    };\n  }\n}\n\n// ## BlankNode constructor\nexport class BlankNode extends Term {\n  constructor(name) {\n    super(`_:${name}`);\n  }\n\n  // ### The term type of this term\n  get termType() {\n    return 'BlankNode';\n  }\n\n  // ### The name of this blank node\n  get value() {\n    return this.id.substr(2);\n  }\n}\n\nexport class Variable extends Term {\n  constructor(name) {\n    super(`?${name}`);\n  }\n\n  // ### The term type of this term\n  get termType() {\n    return 'Variable';\n  }\n\n  // ### The name of this variable\n  get value() {\n    return this.id.substr(1);\n  }\n}\n\n// ## DefaultGraph constructor\nexport class DefaultGraph extends Term {\n  constructor() {\n    super('');\n    return DEFAULTGRAPH || this;\n  }\n\n  // ### The term type of this term\n  get termType() {\n    return 'DefaultGraph';\n  }\n\n  // ### Returns whether this object represents the same term as the other\n  equals(other) {\n    // If both terms were created by this library,\n    // equality can be computed through strict equality;\n    // otherwise, compare term types.\n    return (this === other) || (!!other && (this.termType === other.termType));\n  }\n}\n\n// ## DefaultGraph singleton\nDEFAULTGRAPH = new DefaultGraph();\n\n// ### Constructs a term from the given internal string ID\n// The third 'nested' parameter of this function is to aid\n// with recursion over nested terms. It should not be used\n// by consumers of this library.\n// See https://github.com/rdfjs/N3.js/pull/311#discussion_r1061042725\nexport function termFromId(id, factory, nested) {\n  factory = factory || DataFactory;\n\n  // Falsy value or empty string indicate the default graph\n  if (!id)\n    return factory.defaultGraph();\n\n  // Identify the term type based on the first character\n  switch (id[0]) {\n  case '?':\n    return factory.variable(id.substr(1));\n  case '_':\n    return factory.blankNode(id.substr(2));\n  case '\"':\n    // Shortcut for internal literals\n    if (factory === DataFactory)\n      return new Literal(id);\n    // Literal without datatype or language\n    if (id[id.length - 1] === '\"')\n      return factory.literal(id.substr(1, id.length - 2));\n    // Literal with datatype or language\n    const endPos = id.lastIndexOf('\"', id.length - 1);\n    return factory.literal(id.substr(1, endPos - 1),\n            id[endPos + 1] === '@' ? id.substr(endPos + 2)\n                                   : factory.namedNode(id.substr(endPos + 3)));\n  case '[':\n    id = JSON.parse(id);\n    break;\n  default:\n    if (!nested || !Array.isArray(id)) {\n      return factory.namedNode(id);\n    }\n  }\n  return factory.quad(\n    termFromId(id[0], factory, true),\n    termFromId(id[1], factory, true),\n    termFromId(id[2], factory, true),\n    id[3] && termFromId(id[3], factory, true),\n  );\n}\n\n// ### Constructs an internal string ID from the given term or ID string\n// The third 'nested' parameter of this function is to aid\n// with recursion over nested terms. It should not be used\n// by consumers of this library.\n// See https://github.com/rdfjs/N3.js/pull/311#discussion_r1061042725\nexport function termToId(term, nested) {\n  if (typeof term === 'string')\n    return term;\n  if (term instanceof Term && term.termType !== 'Quad')\n    return term.id;\n  if (!term)\n    return DEFAULTGRAPH.id;\n\n  // Term instantiated with another library\n  switch (term.termType) {\n  case 'NamedNode':    return term.value;\n  case 'BlankNode':    return `_:${term.value}`;\n  case 'Variable':     return `?${term.value}`;\n  case 'DefaultGraph': return '';\n  case 'Literal':      return `\"${term.value}\"${\n    term.language ? `@${term.language}` :\n      (term.datatype && term.datatype.value !== xsd.string ? `^^${term.datatype.value}` : '')}`;\n  case 'Quad':\n    const res = [\n      termToId(term.subject, true),\n      termToId(term.predicate, true),\n      termToId(term.object, true),\n    ];\n    if (term.graph && term.graph.termType !== 'DefaultGraph') {\n      res.push(termToId(term.graph, true));\n    }\n    return nested ? res : JSON.stringify(res);\n  default: throw new Error(`Unexpected termType: ${term.termType}`);\n  }\n}\n\n\n// ## Quad constructor\nexport class Quad extends Term {\n  constructor(subject, predicate, object, graph) {\n    super('');\n    this._subject   = subject;\n    this._predicate = predicate;\n    this._object    = object;\n    this._graph     = graph || DEFAULTGRAPH;\n  }\n\n  // ### The term type of this term\n  get termType() {\n    return 'Quad';\n  }\n\n  get subject() {\n    return this._subject;\n  }\n\n  get predicate() {\n    return this._predicate;\n  }\n\n  get object() {\n    return this._object;\n  }\n\n  get graph() {\n    return this._graph;\n  }\n\n  // ### Returns a plain object representation of this quad\n  toJSON() {\n    return {\n      termType:  this.termType,\n      subject:   this._subject.toJSON(),\n      predicate: this._predicate.toJSON(),\n      object:    this._object.toJSON(),\n      graph:     this._graph.toJSON(),\n    };\n  }\n\n  // ### Returns whether this object represents the same quad as the other\n  equals(other) {\n    return !!other && this._subject.equals(other.subject)     &&\n                      this._predicate.equals(other.predicate) &&\n                      this._object.equals(other.object)       &&\n                      this._graph.equals(other.graph);\n  }\n}\nexport { Quad as Triple };\n\n// ### Escapes the quotes within the given literal\nexport function escapeQuotes(id) {\n  return id.replace(escapedLiteral, (_, quoted) => `\"${quoted.replace(/\"/g, '\"\"')}`);\n}\n\n// ### Unescapes the quotes within the given literal\nexport function unescapeQuotes(id) {\n  return id.replace(escapedLiteral, (_, quoted) => `\"${quoted.replace(/\"\"/g, '\"')}`);\n}\n\n// ### Creates an IRI\nfunction namedNode(iri) {\n  return new NamedNode(iri);\n}\n\n// ### Creates a blank node\nfunction blankNode(name) {\n  return new BlankNode(name || `n3-${_blankNodeCounter++}`);\n}\n\n// ### Creates a literal\nfunction literal(value, languageOrDataType) {\n  // Create a language-tagged string\n  if (typeof languageOrDataType === 'string')\n    return new Literal(`\"${value}\"@${languageOrDataType.toLowerCase()}`);\n\n  // Automatically determine datatype for booleans and numbers\n  let datatype = languageOrDataType ? languageOrDataType.value : '';\n  if (datatype === '') {\n    // Convert a boolean\n    if (typeof value === 'boolean')\n      datatype = xsd.boolean;\n    // Convert an integer or double\n    else if (typeof value === 'number') {\n      if (Number.isFinite(value))\n        datatype = Number.isInteger(value) ? xsd.integer : xsd.double;\n      else {\n        datatype = xsd.double;\n        if (!Number.isNaN(value))\n          value = value > 0 ? 'INF' : '-INF';\n      }\n    }\n  }\n\n  // Create a datatyped literal\n  return (datatype === '' || datatype === xsd.string) ?\n    new Literal(`\"${value}\"`) :\n    new Literal(`\"${value}\"^^${datatype}`);\n}\n\n// ### Creates a variable\nfunction variable(name) {\n  return new Variable(name);\n}\n\n// ### Returns the default graph\nfunction defaultGraph() {\n  return DEFAULTGRAPH;\n}\n\n// ### Creates a quad\nfunction quad(subject, predicate, object, graph) {\n  return new Quad(subject, predicate, object, graph);\n}\n\nexport function fromTerm(term) {\n  if (term instanceof Term)\n    return term;\n\n  // Term instantiated with another library\n  switch (term.termType) {\n  case 'NamedNode':    return namedNode(term.value);\n  case 'BlankNode':    return blankNode(term.value);\n  case 'Variable':     return variable(term.value);\n  case 'DefaultGraph': return DEFAULTGRAPH;\n  case 'Literal':      return literal(term.value, term.language || term.datatype);\n  case 'Quad':         return fromQuad(term);\n  default:             throw new Error(`Unexpected termType: ${term.termType}`);\n  }\n}\n\nexport function fromQuad(inQuad) {\n  if (inQuad instanceof Quad)\n    return inQuad;\n\n  if (inQuad.termType !== 'Quad')\n    throw new Error(`Unexpected termType: ${inQuad.termType}`);\n\n  return quad(fromTerm(inQuad.subject), fromTerm(inQuad.predicate), fromTerm(inQuad.object), fromTerm(inQuad.graph));\n}\n","// **N3Parser** parses N3 documents.\nimport N3Lexer from './N3Lexer';\nimport N3DataFactory from './N3DataFactory';\nimport namespaces from './IRIs';\n\nlet blankNodePrefix = 0;\n\n// ## Constructor\nexport default class N3Parser {\n  constructor(options) {\n    this._contextStack = [];\n    this._graph = null;\n\n    // Set the document IRI\n    options = options || {};\n    this._setBase(options.baseIRI);\n    options.factory && initDataFactory(this, options.factory);\n\n    // Set supported features depending on the format\n    const format = (typeof options.format === 'string') ?\n                 options.format.match(/\\w*$/)[0].toLowerCase() : '',\n        isTurtle = /turtle/.test(format), isTriG = /trig/.test(format),\n        isNTriples = /triple/.test(format), isNQuads = /quad/.test(format),\n        isN3 = this._n3Mode = /n3/.test(format),\n        isLineMode = isNTriples || isNQuads;\n    if (!(this._supportsNamedGraphs = !(isTurtle || isN3)))\n      this._readPredicateOrNamedGraph = this._readPredicate;\n    // Support triples in other graphs\n    this._supportsQuads = !(isTurtle || isTriG || isNTriples || isN3);\n    // Whether the log:isImpliedBy predicate is supported\n    this._isImpliedBy = options.isImpliedBy;\n    // Support nesting of triples\n    this._supportsRDFStar = format === '' || /star|\\*$/.test(format);\n    // Disable relative IRIs in N-Triples or N-Quads mode\n    if (isLineMode)\n      this._resolveRelativeIRI = iri => { return null; };\n    this._blankNodePrefix = typeof options.blankNodePrefix !== 'string' ? '' :\n                              options.blankNodePrefix.replace(/^(?!_:)/, '_:');\n    this._lexer = options.lexer || new N3Lexer({ lineMode: isLineMode, n3: isN3, isImpliedBy: this._isImpliedBy });\n    // Disable explicit quantifiers by default\n    this._explicitQuantifiers = !!options.explicitQuantifiers;\n  }\n\n  // ## Static class methods\n\n  // ### `_resetBlankNodePrefix` restarts blank node prefix identification\n  static _resetBlankNodePrefix() {\n    blankNodePrefix = 0;\n  }\n\n  // ## Private methods\n\n  // ### `_setBase` sets the base IRI to resolve relative IRIs\n  _setBase(baseIRI) {\n    if (!baseIRI) {\n      this._base = '';\n      this._basePath = '';\n    }\n    else {\n      // Remove fragment if present\n      const fragmentPos = baseIRI.indexOf('#');\n      if (fragmentPos >= 0)\n        baseIRI = baseIRI.substr(0, fragmentPos);\n      // Set base IRI and its components\n      this._base = baseIRI;\n      this._basePath   = baseIRI.indexOf('/') < 0 ? baseIRI :\n                         baseIRI.replace(/[^\\/?]*(?:\\?.*)?$/, '');\n      baseIRI = baseIRI.match(/^(?:([a-z][a-z0-9+.-]*:))?(?:\\/\\/[^\\/]*)?/i);\n      this._baseRoot   = baseIRI[0];\n      this._baseScheme = baseIRI[1];\n    }\n  }\n\n  // ### `_saveContext` stores the current parsing context\n  // when entering a new scope (list, blank node, formula)\n  _saveContext(type, graph, subject, predicate, object) {\n    const n3Mode = this._n3Mode;\n    this._contextStack.push({\n      type,\n      subject, predicate, object, graph,\n      inverse: n3Mode ? this._inversePredicate : false,\n      blankPrefix: n3Mode ? this._prefixes._ : '',\n      quantified: n3Mode ? this._quantified : null,\n    });\n    // The settings below only apply to N3 streams\n    if (n3Mode) {\n      // Every new scope resets the predicate direction\n      this._inversePredicate = false;\n      // In N3, blank nodes are scoped to a formula\n      // (using a dot as separator, as a blank node label cannot start with it)\n      this._prefixes._ = (this._graph ? `${this._graph.value}.` : '.');\n      // Quantifiers are scoped to a formula\n      this._quantified = Object.create(this._quantified);\n    }\n  }\n\n  // ### `_restoreContext` restores the parent context\n  // when leaving a scope (list, blank node, formula)\n  _restoreContext(type, token) {\n    // Obtain the previous context\n    const context = this._contextStack.pop();\n    if (!context || context.type !== type)\n      return this._error(`Unexpected ${token.type}`, token);\n\n    // Restore the quad of the previous context\n    this._subject   = context.subject;\n    this._predicate = context.predicate;\n    this._object    = context.object;\n    this._graph     = context.graph;\n\n    // Restore N3 context settings\n    if (this._n3Mode) {\n      this._inversePredicate = context.inverse;\n      this._prefixes._ = context.blankPrefix;\n      this._quantified = context.quantified;\n    }\n  }\n\n  // ### `_readInTopContext` reads a token when in the top context\n  _readInTopContext(token) {\n    switch (token.type) {\n    // If an EOF token arrives in the top context, signal that we're done\n    case 'eof':\n      if (this._graph !== null)\n        return this._error('Unclosed graph', token);\n      delete this._prefixes._;\n      return this._callback(null, null, this._prefixes);\n    // It could be a prefix declaration\n    case 'PREFIX':\n      this._sparqlStyle = true;\n    case '@prefix':\n      return this._readPrefix;\n    // It could be a base declaration\n    case 'BASE':\n      this._sparqlStyle = true;\n    case '@base':\n      return this._readBaseIRI;\n    // It could be a graph\n    case '{':\n      if (this._supportsNamedGraphs) {\n        this._graph = '';\n        this._subject = null;\n        return this._readSubject;\n      }\n    case 'GRAPH':\n      if (this._supportsNamedGraphs)\n        return this._readNamedGraphLabel;\n    // Otherwise, the next token must be a subject\n    default:\n      return this._readSubject(token);\n    }\n  }\n\n  // ### `_readEntity` reads an IRI, prefixed name, blank node, or variable\n  _readEntity(token, quantifier) {\n    let value;\n    switch (token.type) {\n    // Read a relative or absolute IRI\n    case 'IRI':\n    case 'typeIRI':\n      const iri = this._resolveIRI(token.value);\n      if (iri === null)\n        return this._error('Invalid IRI', token);\n      value = this._factory.namedNode(iri);\n      break;\n    // Read a prefixed name\n    case 'type':\n    case 'prefixed':\n      const prefix = this._prefixes[token.prefix];\n      if (prefix === undefined)\n        return this._error(`Undefined prefix \"${token.prefix}:\"`, token);\n      value = this._factory.namedNode(prefix + token.value);\n      break;\n    // Read a blank node\n    case 'blank':\n      value = this._factory.blankNode(this._prefixes[token.prefix] + token.value);\n      break;\n    // Read a variable\n    case 'var':\n      value = this._factory.variable(token.value.substr(1));\n      break;\n    // Everything else is not an entity\n    default:\n      return this._error(`Expected entity but got ${token.type}`, token);\n    }\n    // In N3 mode, replace the entity if it is quantified\n    if (!quantifier && this._n3Mode && (value.id in this._quantified))\n      value = this._quantified[value.id];\n    return value;\n  }\n\n  // ### `_readSubject` reads a quad's subject\n  _readSubject(token) {\n    this._predicate = null;\n    switch (token.type) {\n    case '[':\n      // Start a new quad with a new blank node as subject\n      this._saveContext('blank', this._graph,\n                        this._subject = this._factory.blankNode(), null, null);\n      return this._readBlankNodeHead;\n    case '(':\n      // Start a new list\n      this._saveContext('list', this._graph, this.RDF_NIL, null, null);\n      this._subject = null;\n      return this._readListItem;\n    case '{':\n      // Start a new formula\n      if (!this._n3Mode)\n        return this._error('Unexpected graph', token);\n      this._saveContext('formula', this._graph,\n                        this._graph = this._factory.blankNode(), null, null);\n      return this._readSubject;\n    case '}':\n       // No subject; the graph in which we are reading is closed instead\n      return this._readPunctuation(token);\n    case '@forSome':\n      if (!this._n3Mode)\n        return this._error('Unexpected \"@forSome\"', token);\n      this._subject = null;\n      this._predicate = this.N3_FORSOME;\n      this._quantifier = 'blankNode';\n      return this._readQuantifierList;\n    case '@forAll':\n      if (!this._n3Mode)\n        return this._error('Unexpected \"@forAll\"', token);\n      this._subject = null;\n      this._predicate = this.N3_FORALL;\n      this._quantifier = 'variable';\n      return this._readQuantifierList;\n    case 'literal':\n      if (!this._n3Mode)\n        return this._error('Unexpected literal', token);\n\n      if (token.prefix.length === 0) {\n        this._literalValue = token.value;\n        return this._completeSubjectLiteral;\n      }\n      else\n        this._subject = this._factory.literal(token.value, this._factory.namedNode(token.prefix));\n\n      break;\n    case '<<':\n      if (!this._supportsRDFStar)\n        return this._error('Unexpected RDF-star syntax', token);\n      this._saveContext('<<', this._graph, null, null, null);\n      this._graph = null;\n      return this._readSubject;\n    default:\n      // Read the subject entity\n      if ((this._subject = this._readEntity(token)) === undefined)\n        return;\n      // In N3 mode, the subject might be a path\n      if (this._n3Mode)\n        return this._getPathReader(this._readPredicateOrNamedGraph);\n    }\n\n    // The next token must be a predicate,\n    // or, if the subject was actually a graph IRI, a named graph\n    return this._readPredicateOrNamedGraph;\n  }\n\n  // ### `_readPredicate` reads a quad's predicate\n  _readPredicate(token) {\n    const type = token.type;\n    switch (type) {\n    case 'inverse':\n      this._inversePredicate = true;\n    case 'abbreviation':\n      this._predicate = this.ABBREVIATIONS[token.value];\n      break;\n    case '.':\n    case ']':\n    case '}':\n      // Expected predicate didn't come, must have been trailing semicolon\n      if (this._predicate === null)\n        return this._error(`Unexpected ${type}`, token);\n      this._subject = null;\n      return type === ']' ? this._readBlankNodeTail(token) : this._readPunctuation(token);\n    case ';':\n      // Additional semicolons can be safely ignored\n      return this._predicate !== null ? this._readPredicate :\n             this._error('Expected predicate but got ;', token);\n    case '[':\n      if (this._n3Mode) {\n        // Start a new quad with a new blank node as subject\n        this._saveContext('blank', this._graph, this._subject,\n                          this._subject = this._factory.blankNode(), null);\n        return this._readBlankNodeHead;\n      }\n    case 'blank':\n      if (!this._n3Mode)\n        return this._error('Disallowed blank node as predicate', token);\n    default:\n      if ((this._predicate = this._readEntity(token)) === undefined)\n        return;\n    }\n    // The next token must be an object\n    return this._readObject;\n  }\n\n  // ### `_readObject` reads a quad's object\n  _readObject(token) {\n    switch (token.type) {\n    case 'literal':\n      // Regular literal, can still get a datatype or language\n      if (token.prefix.length === 0) {\n        this._literalValue = token.value;\n        return this._readDataTypeOrLang;\n      }\n      // Pre-datatyped string literal (prefix stores the datatype)\n      else\n        this._object = this._factory.literal(token.value, this._factory.namedNode(token.prefix));\n      break;\n    case '[':\n      // Start a new quad with a new blank node as subject\n      this._saveContext('blank', this._graph, this._subject, this._predicate,\n                        this._subject = this._factory.blankNode());\n      return this._readBlankNodeHead;\n    case '(':\n      // Start a new list\n      this._saveContext('list', this._graph, this._subject, this._predicate, this.RDF_NIL);\n      this._subject = null;\n      return this._readListItem;\n    case '{':\n      // Start a new formula\n      if (!this._n3Mode)\n        return this._error('Unexpected graph', token);\n      this._saveContext('formula', this._graph, this._subject, this._predicate,\n                        this._graph = this._factory.blankNode());\n      return this._readSubject;\n    case '<<':\n      if (!this._supportsRDFStar)\n        return this._error('Unexpected RDF-star syntax', token);\n      this._saveContext('<<', this._graph, this._subject, this._predicate, null);\n      this._graph = null;\n      return this._readSubject;\n    default:\n      // Read the object entity\n      if ((this._object = this._readEntity(token)) === undefined)\n        return;\n      // In N3 mode, the object might be a path\n      if (this._n3Mode)\n        return this._getPathReader(this._getContextEndReader());\n    }\n    return this._getContextEndReader();\n  }\n\n  // ### `_readPredicateOrNamedGraph` reads a quad's predicate, or a named graph\n  _readPredicateOrNamedGraph(token) {\n    return token.type === '{' ? this._readGraph(token) : this._readPredicate(token);\n  }\n\n  // ### `_readGraph` reads a graph\n  _readGraph(token) {\n    if (token.type !== '{')\n      return this._error(`Expected graph but got ${token.type}`, token);\n    // The \"subject\" we read is actually the GRAPH's label\n    this._graph = this._subject, this._subject = null;\n    return this._readSubject;\n  }\n\n  // ### `_readBlankNodeHead` reads the head of a blank node\n  _readBlankNodeHead(token) {\n    if (token.type === ']') {\n      this._subject = null;\n      return this._readBlankNodeTail(token);\n    }\n    else {\n      this._predicate = null;\n      return this._readPredicate(token);\n    }\n  }\n\n  // ### `_readBlankNodeTail` reads the end of a blank node\n  _readBlankNodeTail(token) {\n    if (token.type !== ']')\n      return this._readBlankNodePunctuation(token);\n\n    // Store blank node quad\n    if (this._subject !== null)\n      this._emit(this._subject, this._predicate, this._object, this._graph);\n\n    // Restore the parent context containing this blank node\n    const empty = this._predicate === null;\n    this._restoreContext('blank', token);\n    // If the blank node was the object, restore previous context and read punctuation\n    if (this._object !== null)\n      return this._getContextEndReader();\n    // If the blank node was the predicate, continue reading the object\n    else if (this._predicate !== null)\n      return this._readObject;\n    // If the blank node was the subject, continue reading the predicate\n    else\n      // If the blank node was empty, it could be a named graph label\n      return empty ? this._readPredicateOrNamedGraph : this._readPredicateAfterBlank;\n  }\n\n  // ### `_readPredicateAfterBlank` reads a predicate after an anonymous blank node\n  _readPredicateAfterBlank(token) {\n    switch (token.type) {\n    case '.':\n    case '}':\n      // No predicate is coming if the triple is terminated here\n      this._subject = null;\n      return this._readPunctuation(token);\n    default:\n      return this._readPredicate(token);\n    }\n  }\n\n  // ### `_readListItem` reads items from a list\n  _readListItem(token) {\n    let item = null,                      // The item of the list\n        list = null,                      // The list itself\n        next = this._readListItem;        // The next function to execute\n    const previousList = this._subject,   // The previous list that contains this list\n        stack = this._contextStack,       // The stack of parent contexts\n        parent = stack[stack.length - 1]; // The parent containing the current list\n\n    switch (token.type) {\n    case '[':\n      // Stack the current list quad and start a new quad with a blank node as subject\n      this._saveContext('blank', this._graph,\n                        list = this._factory.blankNode(), this.RDF_FIRST,\n                        this._subject = item = this._factory.blankNode());\n      next = this._readBlankNodeHead;\n      break;\n    case '(':\n      // Stack the current list quad and start a new list\n      this._saveContext('list', this._graph,\n                        list = this._factory.blankNode(), this.RDF_FIRST, this.RDF_NIL);\n      this._subject = null;\n      break;\n    case ')':\n      // Closing the list; restore the parent context\n      this._restoreContext('list', token);\n      // If this list is contained within a parent list, return the membership quad here.\n      // This will be `<parent list element> rdf:first <this list>.`.\n      if (stack.length !== 0 && stack[stack.length - 1].type === 'list')\n        this._emit(this._subject, this._predicate, this._object, this._graph);\n      // Was this list the parent's subject?\n      if (this._predicate === null) {\n        // The next token is the predicate\n        next = this._readPredicate;\n        // No list tail if this was an empty list\n        if (this._subject === this.RDF_NIL)\n          return next;\n      }\n      // The list was in the parent context's object\n      else {\n        next = this._getContextEndReader();\n        // No list tail if this was an empty list\n        if (this._object === this.RDF_NIL)\n          return next;\n      }\n      // Close the list by making the head nil\n      list = this.RDF_NIL;\n      break;\n    case 'literal':\n      // Regular literal, can still get a datatype or language\n      if (token.prefix.length === 0) {\n        this._literalValue = token.value;\n        next = this._readListItemDataTypeOrLang;\n      }\n      // Pre-datatyped string literal (prefix stores the datatype)\n      else {\n        item = this._factory.literal(token.value, this._factory.namedNode(token.prefix));\n        next = this._getContextEndReader();\n      }\n      break;\n    case '{':\n      // Start a new formula\n      if (!this._n3Mode)\n        return this._error('Unexpected graph', token);\n      this._saveContext('formula', this._graph, this._subject, this._predicate,\n                        this._graph = this._factory.blankNode());\n      return this._readSubject;\n    default:\n      if ((item = this._readEntity(token)) === undefined)\n        return;\n    }\n\n     // Create a new blank node if no item head was assigned yet\n    if (list === null)\n      this._subject = list = this._factory.blankNode();\n\n    // Is this the first element of the list?\n    if (previousList === null) {\n      // This list is either the subject or the object of its parent\n      if (parent.predicate === null)\n        parent.subject = list;\n      else\n        parent.object = list;\n    }\n    else {\n      // Continue the previous list with the current list\n      this._emit(previousList, this.RDF_REST, list, this._graph);\n    }\n    // If an item was read, add it to the list\n    if (item !== null) {\n      // In N3 mode, the item might be a path\n      if (this._n3Mode && (token.type === 'IRI' || token.type === 'prefixed')) {\n        // Create a new context to add the item's path\n        this._saveContext('item', this._graph, list, this.RDF_FIRST, item);\n        this._subject = item, this._predicate = null;\n        // _readPath will restore the context and output the item\n        return this._getPathReader(this._readListItem);\n      }\n      // Output the item\n      this._emit(list, this.RDF_FIRST, item, this._graph);\n    }\n    return next;\n  }\n\n  // ### `_readDataTypeOrLang` reads an _optional_ datatype or language\n  _readDataTypeOrLang(token) {\n    return this._completeObjectLiteral(token, false);\n  }\n\n\n  // ### `_readListItemDataTypeOrLang` reads an _optional_ datatype or language in a list\n  _readListItemDataTypeOrLang(token) {\n    return this._completeObjectLiteral(token, true);\n  }\n\n  // ### `_completeLiteral` completes a literal with an optional datatype or language\n  _completeLiteral(token) {\n    // Create a simple string literal by default\n    let literal = this._factory.literal(this._literalValue);\n\n    switch (token.type) {\n    // Create a datatyped literal\n    case 'type':\n    case 'typeIRI':\n      const datatype = this._readEntity(token);\n      if (datatype === undefined) return; // No datatype means an error occurred\n      literal = this._factory.literal(this._literalValue, datatype);\n      token = null;\n      break;\n    // Create a language-tagged string\n    case 'langcode':\n      literal = this._factory.literal(this._literalValue, token.value);\n      token = null;\n      break;\n    }\n\n    return { token, literal };\n  }\n\n  // Completes a literal in subject position\n  _completeSubjectLiteral(token) {\n    this._subject = this._completeLiteral(token).literal;\n    return this._readPredicateOrNamedGraph;\n  }\n\n  // Completes a literal in object position\n  _completeObjectLiteral(token, listItem) {\n    const completed = this._completeLiteral(token);\n    if (!completed)\n      return;\n    this._object = completed.literal;\n\n    // If this literal was part of a list, write the item\n    // (we could also check the context stack, but passing in a flag is faster)\n    if (listItem)\n      this._emit(this._subject, this.RDF_FIRST, this._object, this._graph);\n    // If the token was consumed, continue with the rest of the input\n    if (completed.token === null)\n      return this._getContextEndReader();\n    // Otherwise, consume the token now\n    else {\n      this._readCallback = this._getContextEndReader();\n      return this._readCallback(completed.token);\n    }\n  }\n\n  // ### `_readFormulaTail` reads the end of a formula\n  _readFormulaTail(token) {\n    if (token.type !== '}')\n      return this._readPunctuation(token);\n\n    // Store the last quad of the formula\n    if (this._subject !== null)\n      this._emit(this._subject, this._predicate, this._object, this._graph);\n\n    // Restore the parent context containing this formula\n    this._restoreContext('formula', token);\n    // If the formula was the subject, continue reading the predicate.\n    // If the formula was the object, read punctuation.\n    return this._object === null ? this._readPredicate : this._getContextEndReader();\n  }\n\n  // ### `_readPunctuation` reads punctuation between quads or quad parts\n  _readPunctuation(token) {\n    let next, graph = this._graph;\n    const subject = this._subject, inversePredicate = this._inversePredicate;\n    switch (token.type) {\n    // A closing brace ends a graph\n    case '}':\n      if (this._graph === null)\n        return this._error('Unexpected graph closing', token);\n      if (this._n3Mode)\n        return this._readFormulaTail(token);\n      this._graph = null;\n    // A dot just ends the statement, without sharing anything with the next\n    case '.':\n      this._subject = null;\n      next = this._contextStack.length ? this._readSubject : this._readInTopContext;\n      if (inversePredicate) this._inversePredicate = false;\n      break;\n    // Semicolon means the subject is shared; predicate and object are different\n    case ';':\n      next = this._readPredicate;\n      break;\n    // Comma means both the subject and predicate are shared; the object is different\n    case ',':\n      next = this._readObject;\n      break;\n    // {| means that the current triple is annotated with predicate-object pairs.\n    case '{|':\n      if (!this._supportsRDFStar)\n        return this._error('Unexpected RDF-star syntax', token);\n      // Continue using the last triple as quoted triple subject for the predicate-object pairs.\n      const predicate = this._predicate, object = this._object;\n      this._subject = this._factory.quad(subject, predicate, object, this.DEFAULTGRAPH);\n      next = this._readPredicate;\n      break;\n    // |} means that the current quoted triple in annotation syntax is finalized.\n    case '|}':\n      if (this._subject.termType !== 'Quad')\n        return this._error('Unexpected asserted triple closing', token);\n      this._subject = null;\n      next = this._readPunctuation;\n      break;\n    default:\n      // An entity means this is a quad (only allowed if not already inside a graph)\n      if (this._supportsQuads && this._graph === null && (graph = this._readEntity(token)) !== undefined) {\n        next = this._readQuadPunctuation;\n        break;\n      }\n      return this._error(`Expected punctuation to follow \"${this._object.id}\"`, token);\n    }\n    // A quad has been completed now, so return it\n    if (subject !== null) {\n      const predicate = this._predicate, object = this._object;\n      if (!inversePredicate)\n        this._emit(subject, predicate, object,  graph);\n      else\n        this._emit(object,  predicate, subject, graph);\n    }\n    return next;\n  }\n\n    // ### `_readBlankNodePunctuation` reads punctuation in a blank node\n  _readBlankNodePunctuation(token) {\n    let next;\n    switch (token.type) {\n    // Semicolon means the subject is shared; predicate and object are different\n    case ';':\n      next = this._readPredicate;\n      break;\n    // Comma means both the subject and predicate are shared; the object is different\n    case ',':\n      next = this._readObject;\n      break;\n    default:\n      return this._error(`Expected punctuation to follow \"${this._object.id}\"`, token);\n    }\n    // A quad has been completed now, so return it\n    this._emit(this._subject, this._predicate, this._object, this._graph);\n    return next;\n  }\n\n  // ### `_readQuadPunctuation` reads punctuation after a quad\n  _readQuadPunctuation(token) {\n    if (token.type !== '.')\n      return this._error('Expected dot to follow quad', token);\n    return this._readInTopContext;\n  }\n\n  // ### `_readPrefix` reads the prefix of a prefix declaration\n  _readPrefix(token) {\n    if (token.type !== 'prefix')\n      return this._error('Expected prefix to follow @prefix', token);\n    this._prefix = token.value;\n    return this._readPrefixIRI;\n  }\n\n  // ### `_readPrefixIRI` reads the IRI of a prefix declaration\n  _readPrefixIRI(token) {\n    if (token.type !== 'IRI')\n      return this._error(`Expected IRI to follow prefix \"${this._prefix}:\"`, token);\n    const prefixNode = this._readEntity(token);\n    this._prefixes[this._prefix] = prefixNode.value;\n    this._prefixCallback(this._prefix, prefixNode);\n    return this._readDeclarationPunctuation;\n  }\n\n  // ### `_readBaseIRI` reads the IRI of a base declaration\n  _readBaseIRI(token) {\n    const iri = token.type === 'IRI' && this._resolveIRI(token.value);\n    if (!iri)\n      return this._error('Expected valid IRI to follow base declaration', token);\n    this._setBase(iri);\n    return this._readDeclarationPunctuation;\n  }\n\n  // ### `_readNamedGraphLabel` reads the label of a named graph\n  _readNamedGraphLabel(token) {\n    switch (token.type) {\n    case 'IRI':\n    case 'blank':\n    case 'prefixed':\n      return this._readSubject(token), this._readGraph;\n    case '[':\n      return this._readNamedGraphBlankLabel;\n    default:\n      return this._error('Invalid graph label', token);\n    }\n  }\n\n  // ### `_readNamedGraphLabel` reads a blank node label of a named graph\n  _readNamedGraphBlankLabel(token) {\n    if (token.type !== ']')\n      return this._error('Invalid graph label', token);\n    this._subject = this._factory.blankNode();\n    return this._readGraph;\n  }\n\n  // ### `_readDeclarationPunctuation` reads the punctuation of a declaration\n  _readDeclarationPunctuation(token) {\n    // SPARQL-style declarations don't have punctuation\n    if (this._sparqlStyle) {\n      this._sparqlStyle = false;\n      return this._readInTopContext(token);\n    }\n\n    if (token.type !== '.')\n      return this._error('Expected declaration to end with a dot', token);\n    return this._readInTopContext;\n  }\n\n  // Reads a list of quantified symbols from a @forSome or @forAll statement\n  _readQuantifierList(token) {\n    let entity;\n    switch (token.type) {\n    case 'IRI':\n    case 'prefixed':\n      if ((entity = this._readEntity(token, true)) !== undefined)\n        break;\n    default:\n      return this._error(`Unexpected ${token.type}`, token);\n    }\n    // Without explicit quantifiers, map entities to a quantified entity\n    if (!this._explicitQuantifiers)\n      this._quantified[entity.id] = this._factory[this._quantifier](this._factory.blankNode().value);\n    // With explicit quantifiers, output the reified quantifier\n    else {\n      // If this is the first item, start a new quantifier list\n      if (this._subject === null)\n        this._emit(this._graph || this.DEFAULTGRAPH, this._predicate,\n                   this._subject = this._factory.blankNode(), this.QUANTIFIERS_GRAPH);\n      // Otherwise, continue the previous list\n      else\n        this._emit(this._subject, this.RDF_REST,\n                   this._subject = this._factory.blankNode(), this.QUANTIFIERS_GRAPH);\n      // Output the list item\n      this._emit(this._subject, this.RDF_FIRST, entity, this.QUANTIFIERS_GRAPH);\n    }\n    return this._readQuantifierPunctuation;\n  }\n\n  // Reads punctuation from a @forSome or @forAll statement\n  _readQuantifierPunctuation(token) {\n    // Read more quantifiers\n    if (token.type === ',')\n      return this._readQuantifierList;\n    // End of the quantifier list\n    else {\n      // With explicit quantifiers, close the quantifier list\n      if (this._explicitQuantifiers) {\n        this._emit(this._subject, this.RDF_REST, this.RDF_NIL, this.QUANTIFIERS_GRAPH);\n        this._subject = null;\n      }\n      // Read a dot\n      this._readCallback = this._getContextEndReader();\n      return this._readCallback(token);\n    }\n  }\n\n  // ### `_getPathReader` reads a potential path and then resumes with the given function\n  _getPathReader(afterPath) {\n    this._afterPath = afterPath;\n    return this._readPath;\n  }\n\n  // ### `_readPath` reads a potential path\n  _readPath(token) {\n    switch (token.type) {\n    // Forward path\n    case '!': return this._readForwardPath;\n    // Backward path\n    case '^': return this._readBackwardPath;\n    // Not a path; resume reading where we left off\n    default:\n      const stack = this._contextStack, parent = stack.length && stack[stack.length - 1];\n      // If we were reading a list item, we still need to output it\n      if (parent && parent.type === 'item') {\n        // The list item is the remaining subejct after reading the path\n        const item = this._subject;\n        // Switch back to the context of the list\n        this._restoreContext('item', token);\n        // Output the list item\n        this._emit(this._subject, this.RDF_FIRST, item, this._graph);\n      }\n      return this._afterPath(token);\n    }\n  }\n\n  // ### `_readForwardPath` reads a '!' path\n  _readForwardPath(token) {\n    let subject, predicate;\n    const object = this._factory.blankNode();\n    // The next token is the predicate\n    if ((predicate = this._readEntity(token)) === undefined)\n      return;\n    // If we were reading a subject, replace the subject by the path's object\n    if (this._predicate === null)\n      subject = this._subject, this._subject = object;\n    // If we were reading an object, replace the subject by the path's object\n    else\n      subject = this._object,  this._object  = object;\n    // Emit the path's current quad and read its next section\n    this._emit(subject, predicate, object, this._graph);\n    return this._readPath;\n  }\n\n  // ### `_readBackwardPath` reads a '^' path\n  _readBackwardPath(token) {\n    const subject = this._factory.blankNode();\n    let predicate, object;\n    // The next token is the predicate\n    if ((predicate = this._readEntity(token)) === undefined)\n      return;\n    // If we were reading a subject, replace the subject by the path's subject\n    if (this._predicate === null)\n      object = this._subject, this._subject = subject;\n    // If we were reading an object, replace the subject by the path's subject\n    else\n      object = this._object,  this._object  = subject;\n    // Emit the path's current quad and read its next section\n    this._emit(subject, predicate, object, this._graph);\n    return this._readPath;\n  }\n\n  // ### `_readRDFStarTailOrGraph` reads the graph of a nested RDF-star quad or the end of a nested RDF-star triple\n  _readRDFStarTailOrGraph(token) {\n    if (token.type !== '>>') {\n      // An entity means this is a quad (only allowed if not already inside a graph)\n      if (this._supportsQuads && this._graph === null && (this._graph = this._readEntity(token)) !== undefined)\n        return this._readRDFStarTail;\n      return this._error(`Expected >> to follow \"${this._object.id}\"`, token);\n    }\n    return this._readRDFStarTail(token);\n  }\n\n  // ### `_readRDFStarTail` reads the end of a nested RDF-star triple\n  _readRDFStarTail(token) {\n    if (token.type !== '>>')\n      return this._error(`Expected >> but got ${token.type}`, token);\n    // Read the quad and restore the previous context\n    const quad = this._factory.quad(this._subject, this._predicate, this._object,\n      this._graph || this.DEFAULTGRAPH);\n    this._restoreContext('<<', token);\n    // If the triple was the subject, continue by reading the predicate.\n    if (this._subject === null) {\n      this._subject = quad;\n      return this._readPredicate;\n    }\n    // If the triple was the object, read context end.\n    else {\n      this._object = quad;\n      return this._getContextEndReader();\n    }\n  }\n\n  // ### `_getContextEndReader` gets the next reader function at the end of a context\n  _getContextEndReader() {\n    const contextStack = this._contextStack;\n    if (!contextStack.length)\n      return this._readPunctuation;\n\n    switch (contextStack[contextStack.length - 1].type) {\n    case 'blank':\n      return this._readBlankNodeTail;\n    case 'list':\n      return this._readListItem;\n    case 'formula':\n      return this._readFormulaTail;\n    case '<<':\n      return this._readRDFStarTailOrGraph;\n    }\n  }\n\n  // ### `_emit` sends a quad through the callback\n  _emit(subject, predicate, object, graph) {\n    this._callback(null, this._factory.quad(subject, predicate, object, graph || this.DEFAULTGRAPH));\n  }\n\n  // ### `_error` emits an error message through the callback\n  _error(message, token) {\n    const err = new Error(`${message} on line ${token.line}.`);\n    err.context = {\n      token: token,\n      line: token.line,\n      previousToken: this._lexer.previousToken,\n    };\n    this._callback(err);\n    this._callback = noop;\n  }\n\n  // ### `_resolveIRI` resolves an IRI against the base path\n  _resolveIRI(iri) {\n    return /^[a-z][a-z0-9+.-]*:/i.test(iri) ? iri : this._resolveRelativeIRI(iri);\n  }\n\n  // ### `_resolveRelativeIRI` resolves an IRI against the base path,\n  // assuming that a base path has been set and that the IRI is indeed relative\n  _resolveRelativeIRI(iri) {\n    // An empty relative IRI indicates the base IRI\n    if (!iri.length)\n      return this._base;\n    // Decide resolving strategy based in the first character\n    switch (iri[0]) {\n    // Resolve relative fragment IRIs against the base IRI\n    case '#': return this._base + iri;\n    // Resolve relative query string IRIs by replacing the query string\n    case '?': return this._base.replace(/(?:\\?.*)?$/, iri);\n    // Resolve root-relative IRIs at the root of the base IRI\n    case '/':\n      // Resolve scheme-relative IRIs to the scheme\n      return (iri[1] === '/' ? this._baseScheme : this._baseRoot) + this._removeDotSegments(iri);\n    // Resolve all other IRIs at the base IRI's path\n    default:\n      // Relative IRIs cannot contain a colon in the first path segment\n      return (/^[^/:]*:/.test(iri)) ? null : this._removeDotSegments(this._basePath + iri);\n    }\n  }\n\n  // ### `_removeDotSegments` resolves './' and '../' path segments in an IRI as per RFC3986\n  _removeDotSegments(iri) {\n    // Don't modify the IRI if it does not contain any dot segments\n    if (!/(^|\\/)\\.\\.?($|[/#?])/.test(iri))\n      return iri;\n\n    // Start with an imaginary slash before the IRI in order to resolve trailing './' and '../'\n    const length = iri.length;\n    let result = '', i = -1, pathStart = -1, segmentStart = 0, next = '/';\n\n    while (i < length) {\n      switch (next) {\n      // The path starts with the first slash after the authority\n      case ':':\n        if (pathStart < 0) {\n          // Skip two slashes before the authority\n          if (iri[++i] === '/' && iri[++i] === '/')\n            // Skip to slash after the authority\n            while ((pathStart = i + 1) < length && iri[pathStart] !== '/')\n              i = pathStart;\n        }\n        break;\n      // Don't modify a query string or fragment\n      case '?':\n      case '#':\n        i = length;\n        break;\n      // Handle '/.' or '/..' path segments\n      case '/':\n        if (iri[i + 1] === '.') {\n          next = iri[++i + 1];\n          switch (next) {\n          // Remove a '/.' segment\n          case '/':\n            result += iri.substring(segmentStart, i - 1);\n            segmentStart = i + 1;\n            break;\n          // Remove a trailing '/.' segment\n          case undefined:\n          case '?':\n          case '#':\n            return result + iri.substring(segmentStart, i) + iri.substr(i + 1);\n          // Remove a '/..' segment\n          case '.':\n            next = iri[++i + 1];\n            if (next === undefined || next === '/' || next === '?' || next === '#') {\n              result += iri.substring(segmentStart, i - 2);\n              // Try to remove the parent path from result\n              if ((segmentStart = result.lastIndexOf('/')) >= pathStart)\n                result = result.substr(0, segmentStart);\n              // Remove a trailing '/..' segment\n              if (next !== '/')\n                return `${result}/${iri.substr(i + 1)}`;\n              segmentStart = i + 1;\n            }\n          }\n        }\n      }\n      next = iri[++i];\n    }\n    return result + iri.substring(segmentStart);\n  }\n\n  // ## Public methods\n\n  // ### `parse` parses the N3 input and emits each parsed quad through the onQuad callback.\n  parse(input, quadCallback, prefixCallback) {\n    // The second parameter accepts an object { onQuad: ..., onPrefix: ..., onComment: ...}\n    // As a second and third parameter it still accepts a separate quadCallback and prefixCallback for backward compatibility as well\n    let onQuad, onPrefix, onComment;\n    if (quadCallback && (quadCallback.onQuad || quadCallback.onPrefix || quadCallback.onComment)) {\n      onQuad = quadCallback.onQuad;\n      onPrefix = quadCallback.onPrefix;\n      onComment = quadCallback.onComment;\n    }\n    else {\n      onQuad = quadCallback;\n      onPrefix = prefixCallback;\n    }\n    // The read callback is the next function to be executed when a token arrives.\n    // We start reading in the top context.\n    this._readCallback = this._readInTopContext;\n    this._sparqlStyle = false;\n    this._prefixes = Object.create(null);\n    this._prefixes._ = this._blankNodePrefix ? this._blankNodePrefix.substr(2)\n                                             : `b${blankNodePrefix++}_`;\n    this._prefixCallback = onPrefix || noop;\n    this._inversePredicate = false;\n    this._quantified = Object.create(null);\n\n    // Parse synchronously if no quad callback is given\n    if (!onQuad) {\n      const quads = [];\n      let error;\n      this._callback = (e, t) => { e ? (error = e) : t && quads.push(t); };\n      this._lexer.tokenize(input).every(token => {\n        return this._readCallback = this._readCallback(token);\n      });\n      if (error) throw error;\n      return quads;\n    }\n\n    let processNextToken = (error, token) => {\n      if (error !== null)\n        this._callback(error), this._callback = noop;\n      else if (this._readCallback)\n        this._readCallback = this._readCallback(token);\n    };\n\n    // Enable checking for comments on every token when a commentCallback has been set\n    if (onComment) {\n      // Enable the lexer to return comments as tokens first (disabled by default)\n      this._lexer.comments = true;\n      // Patch the processNextToken function\n      processNextToken = (error, token) => {\n        if (error !== null)\n          this._callback(error), this._callback = noop;\n        else if (this._readCallback) {\n          if (token.type === 'comment')\n            onComment(token.value);\n          else\n            this._readCallback = this._readCallback(token);\n        }\n      };\n    }\n\n    // Parse asynchronously otherwise, executing the read callback when a token arrives\n    this._callback = onQuad;\n    this._lexer.tokenize(input, processNextToken);\n  }\n}\n\n// The empty function\nfunction noop() {}\n\n// Initializes the parser with the given data factory\nfunction initDataFactory(parser, factory) {\n  parser._factory = factory;\n\n  parser.DEFAULTGRAPH = factory.defaultGraph();\n\n  // Set common named nodes\n  parser.RDF_FIRST  = factory.namedNode(namespaces.rdf.first);\n  parser.RDF_REST   = factory.namedNode(namespaces.rdf.rest);\n  parser.RDF_NIL    = factory.namedNode(namespaces.rdf.nil);\n  parser.N3_FORALL  = factory.namedNode(namespaces.r.forAll);\n  parser.N3_FORSOME = factory.namedNode(namespaces.r.forSome);\n  parser.ABBREVIATIONS = {\n    'a': factory.namedNode(namespaces.rdf.type),\n    '=': factory.namedNode(namespaces.owl.sameAs),\n    '>': factory.namedNode(namespaces.log.implies),\n    '<': factory.namedNode(namespaces.log.isImpliedBy),\n  };\n  parser.QUANTIFIERS_GRAPH = factory.namedNode('urn:n3:quantifiers');\n}\ninitDataFactory(N3Parser.prototype, N3DataFactory);\n","// **N3Util** provides N3 utility functions.\n\nimport N3DataFactory from './N3DataFactory';\n\n// Tests whether the given term represents an IRI\nexport function isNamedNode(term) {\n  return !!term && term.termType === 'NamedNode';\n}\n\n// Tests whether the given term represents a blank node\nexport function isBlankNode(term) {\n  return !!term && term.termType === 'BlankNode';\n}\n\n// Tests whether the given term represents a literal\nexport function isLiteral(term) {\n  return !!term && term.termType === 'Literal';\n}\n\n// Tests whether the given term represents a variable\nexport function isVariable(term) {\n  return !!term && term.termType === 'Variable';\n}\n\n// Tests whether the given term represents a quad\nexport function isQuad(term) {\n  return !!term && term.termType === 'Quad';\n}\n\n// Tests whether the given term represents the default graph\nexport function isDefaultGraph(term) {\n  return !!term && term.termType === 'DefaultGraph';\n}\n\n// Tests whether the given quad is in the default graph\nexport function inDefaultGraph(quad) {\n  return isDefaultGraph(quad.graph);\n}\n\n// Creates a function that prepends the given IRI to a local name\nexport function prefix(iri, factory) {\n  return prefixes({ '': iri.value || iri }, factory)('');\n}\n\n// Creates a function that allows registering and expanding prefixes\nexport function prefixes(defaultPrefixes, factory) {\n  // Add all of the default prefixes\n  const prefixes = Object.create(null);\n  for (const prefix in defaultPrefixes)\n    processPrefix(prefix, defaultPrefixes[prefix]);\n  // Set the default factory if none was specified\n  factory = factory || N3DataFactory;\n\n  // Registers a new prefix (if an IRI was specified)\n  // or retrieves a function that expands an existing prefix (if no IRI was specified)\n  function processPrefix(prefix, iri) {\n    // Create a new prefix if an IRI is specified or the prefix doesn't exist\n    if (typeof iri === 'string') {\n      // Create a function that expands the prefix\n      const cache = Object.create(null);\n      prefixes[prefix] = local => {\n        return cache[local] || (cache[local] = factory.namedNode(iri + local));\n      };\n    }\n    else if (!(prefix in prefixes)) {\n      throw new Error(`Unknown prefix: ${prefix}`);\n    }\n    return prefixes[prefix];\n  }\n  return processPrefix;\n}\n","export function escapeRegex(regex) {\n  return regex.replace(/[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n}\n","import { escapeRegex } from './Util';\n\n// Do not handle base IRIs without scheme, and currently unsupported cases:\n// - file: IRIs (which could also use backslashes)\n// - IRIs containing /. or /.. or //\nconst BASE_UNSUPPORTED = /^:?[^:?#]*(?:[?#]|$)|^file:|^[^:]*:\\/*[^?#]+?\\/(?:\\.\\.?(?:\\/|$)|\\/)/i;\nconst SUFFIX_SUPPORTED = /^(?:(?:[^/?#]{3,}|\\.?[^/?#.]\\.?)(?:\\/[^/?#]{3,}|\\.?[^/?#.]\\.?)*\\/?)?(?:[?#]|$)/;\nconst CURRENT = './';\nconst PARENT = '../';\nconst QUERY = '?';\nconst FRAGMENT = '#';\n\nexport default class BaseIRI {\n  constructor(base) {\n    this.base = base;\n    this._baseLength = 0;\n    this._baseMatcher = null;\n    this._pathReplacements = new Array(base.length + 1);\n  }\n\n  static supports(base) {\n    return !BASE_UNSUPPORTED.test(base);\n  }\n\n  _getBaseMatcher() {\n    if (this._baseMatcher)\n      return this._baseMatcher;\n    if (!BaseIRI.supports(this.base))\n      return this._baseMatcher = /.^/;\n\n    // Extract the scheme\n    const scheme = /^[^:]*:\\/*/.exec(this.base)[0];\n    const regexHead = ['^', escapeRegex(scheme)];\n    const regexTail = [];\n\n    // Generate a regex for every path segment\n    const segments = [], segmenter = /[^/?#]*([/?#])/y;\n    let segment, query = 0, fragment = 0, last = segmenter.lastIndex = scheme.length;\n    while (!query && !fragment && (segment = segmenter.exec(this.base))) {\n      // Truncate base resolution path at fragment start\n      if (segment[1] === FRAGMENT)\n        fragment = segmenter.lastIndex - 1;\n      else {\n        // Create regex that matches the segment\n        regexHead.push(escapeRegex(segment[0]), '(?:');\n        regexTail.push(')?');\n\n        // Create dedicated query string replacement\n        if (segment[1] !== QUERY)\n          segments.push(last = segmenter.lastIndex);\n        else {\n          query = last = segmenter.lastIndex;\n          fragment = this.base.indexOf(FRAGMENT, query);\n          this._pathReplacements[query] = QUERY;\n        }\n      }\n    }\n\n    // Precalculate parent path substitutions\n    for (let i = 0; i < segments.length; i++)\n      this._pathReplacements[segments[i]] = PARENT.repeat(segments.length - i - 1);\n    this._pathReplacements[segments[segments.length - 1]] = CURRENT;\n\n    // Add the remainder of the base IRI (without fragment) to the regex\n    this._baseLength = fragment > 0 ? fragment : this.base.length;\n    regexHead.push(\n      escapeRegex(this.base.substring(last, this._baseLength)),\n      query ? '(?:#|$)' : '(?:[?#]|$)',\n    );\n    return this._baseMatcher = new RegExp([...regexHead, ...regexTail].join(''));\n  }\n\n  toRelative(iri) {\n    // Unsupported or non-matching base IRI\n    const match = this._getBaseMatcher().exec(iri);\n    if (!match)\n      return iri;\n\n    // Exact base IRI match\n    const length = match[0].length;\n    if (length === this._baseLength && length === iri.length)\n      return '';\n\n    // Parent path match\n    const parentPath = this._pathReplacements[length];\n    if (parentPath) {\n      const suffix = iri.substring(length);\n      // Don't abbreviate unsupported path\n      if (parentPath !== QUERY && !SUFFIX_SUPPORTED.test(suffix))\n        return iri;\n      // Omit ./ with fragment or query string\n      if (parentPath === CURRENT && /^[^?#]/.test(suffix))\n        return suffix;\n      // Append suffix to relative parent path\n      return parentPath + suffix;\n    }\n\n    // Fragment or query string, so include delimiter\n    return iri.substring(length - 1);\n  }\n}\n","// **N3Writer** writes N3 documents.\nimport namespaces from './IRIs';\nimport { default as N3DataFactory, Term } from './N3DataFactory';\nimport { isDefaultGraph } from './N3Util';\nimport BaseIRI from './BaseIRI';\nimport { escapeRegex } from './Util';\n\nconst DEFAULTGRAPH = N3DataFactory.defaultGraph();\n\nconst { rdf, xsd } = namespaces;\n\n// Characters in literals that require escaping\nconst escape    = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019\\ud800-\\udbff]/,\n    escapeAll = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019]|[\\ud800-\\udbff][\\udc00-\\udfff]/g,\n    escapedCharacters = {\n      '\\\\': '\\\\\\\\', '\"': '\\\\\"', '\\t': '\\\\t',\n      '\\n': '\\\\n', '\\r': '\\\\r', '\\b': '\\\\b', '\\f': '\\\\f',\n    };\n\n// ## Placeholder class to represent already pretty-printed terms\nclass SerializedTerm extends Term {\n  // Pretty-printed nodes are not equal to any other node\n  // (e.g., [] does not equal [])\n  equals(other) {\n    return other === this;\n  }\n}\n\n// ## Constructor\nexport default class N3Writer {\n  constructor(outputStream, options) {\n    // ### `_prefixRegex` matches a prefixed name or IRI that begins with one of the added prefixes\n    this._prefixRegex = /$0^/;\n\n    // Shift arguments if the first argument is not a stream\n    if (outputStream && typeof outputStream.write !== 'function')\n      options = outputStream, outputStream = null;\n    options = options || {};\n    this._lists = options.lists;\n\n    // If no output stream given, send the output as string through the end callback\n    if (!outputStream) {\n      let output = '';\n      this._outputStream = {\n        write(chunk, encoding, done) { output += chunk; done && done(); },\n        end: done => { done && done(null, output); },\n      };\n      this._endStream = true;\n    }\n    else {\n      this._outputStream = outputStream;\n      this._endStream = options.end === undefined ? true : !!options.end;\n    }\n\n    // Initialize writer, depending on the format\n    this._subject = null;\n    if (!(/triple|quad/i).test(options.format)) {\n      this._lineMode = false;\n      this._graph = DEFAULTGRAPH;\n      this._prefixIRIs = Object.create(null);\n      options.prefixes && this.addPrefixes(options.prefixes);\n      if (options.baseIRI) {\n        this._baseIri = new BaseIRI(options.baseIRI);\n      }\n    }\n    else {\n      this._lineMode = true;\n      this._writeQuad = this._writeQuadLine;\n    }\n  }\n\n  // ## Private methods\n\n  // ### Whether the current graph is the default graph\n  get _inDefaultGraph() {\n    return DEFAULTGRAPH.equals(this._graph);\n  }\n\n  // ### `_write` writes the argument to the output stream\n  _write(string, callback) {\n    this._outputStream.write(string, 'utf8', callback);\n  }\n\n  // ### `_writeQuad` writes the quad to the output stream\n  _writeQuad(subject, predicate, object, graph, done) {\n    try {\n      // Write the graph's label if it has changed\n      if (!graph.equals(this._graph)) {\n        // Close the previous graph and start the new one\n        this._write((this._subject === null ? '' : (this._inDefaultGraph ? '.\\n' : '\\n}\\n')) +\n                    (DEFAULTGRAPH.equals(graph) ? '' : `${this._encodeIriOrBlank(graph)} {\\n`));\n        this._graph = graph;\n        this._subject = null;\n      }\n      // Don't repeat the subject if it's the same\n      if (subject.equals(this._subject)) {\n        // Don't repeat the predicate if it's the same\n        if (predicate.equals(this._predicate))\n          this._write(`, ${this._encodeObject(object)}`, done);\n        // Same subject, different predicate\n        else\n          this._write(`;\\n    ${\n                      this._encodePredicate(this._predicate = predicate)} ${\n                      this._encodeObject(object)}`, done);\n      }\n      // Different subject; write the whole quad\n      else\n        this._write(`${(this._subject === null ? '' : '.\\n') +\n                    this._encodeSubject(this._subject = subject)} ${\n                    this._encodePredicate(this._predicate = predicate)} ${\n                    this._encodeObject(object)}`, done);\n    }\n    catch (error) { done && done(error); }\n  }\n\n  // ### `_writeQuadLine` writes the quad to the output stream as a single line\n  _writeQuadLine(subject, predicate, object, graph, done) {\n    // Write the quad without prefixes\n    delete this._prefixMatch;\n    this._write(this.quadToString(subject, predicate, object, graph), done);\n  }\n\n  // ### `quadToString` serializes a quad as a string\n  quadToString(subject, predicate, object, graph) {\n    return  `${this._encodeSubject(subject)} ${\n            this._encodeIriOrBlank(predicate)} ${\n            this._encodeObject(object)\n            }${graph && graph.value ? ` ${this._encodeIriOrBlank(graph)} .\\n` : ' .\\n'}`;\n  }\n\n  // ### `quadsToString` serializes an array of quads as a string\n  quadsToString(quads) {\n    let quadsString = '';\n    for (const quad of quads)\n      quadsString += this.quadToString(quad.subject, quad.predicate, quad.object, quad.graph);\n    return quadsString;\n  }\n\n  // ### `_encodeSubject` represents a subject\n  _encodeSubject(entity) {\n    return entity.termType === 'Quad' ?\n      this._encodeQuad(entity) : this._encodeIriOrBlank(entity);\n  }\n\n  // ### `_encodeIriOrBlank` represents an IRI or blank node\n  _encodeIriOrBlank(entity) {\n    // A blank node or list is represented as-is\n    if (entity.termType !== 'NamedNode') {\n      // If it is a list head, pretty-print it\n      if (this._lists && (entity.value in this._lists))\n        entity = this.list(this._lists[entity.value]);\n      return 'id' in entity ? entity.id : `_:${entity.value}`;\n    }\n    let iri = entity.value;\n    // Use relative IRIs if requested and possible\n    if (this._baseIri) {\n      iri = this._baseIri.toRelative(iri);\n    }\n    // Escape special characters\n    if (escape.test(iri))\n      iri = iri.replace(escapeAll, characterReplacer);\n    // Try to represent the IRI as prefixed name\n    const prefixMatch = this._prefixRegex.exec(iri);\n    return !prefixMatch ? `<${iri}>` :\n           (!prefixMatch[1] ? iri : this._prefixIRIs[prefixMatch[1]] + prefixMatch[2]);\n  }\n\n  // ### `_encodeLiteral` represents a literal\n  _encodeLiteral(literal) {\n    // Escape special characters\n    let value = literal.value;\n    if (escape.test(value))\n      value = value.replace(escapeAll, characterReplacer);\n\n    // Write a language-tagged literal\n    if (literal.language)\n      return `\"${value}\"@${literal.language}`;\n\n    // Write dedicated literals per data type\n    if (this._lineMode) {\n      // Only abbreviate strings in N-Triples or N-Quads\n      if (literal.datatype.value === xsd.string)\n        return `\"${value}\"`;\n    }\n    else {\n      // Use common datatype abbreviations in Turtle or TriG\n      switch (literal.datatype.value) {\n      case xsd.string:\n        return `\"${value}\"`;\n      case xsd.boolean:\n        if (value === 'true' || value === 'false')\n          return value;\n        break;\n      case xsd.integer:\n        if (/^[+-]?\\d+$/.test(value))\n          return value;\n        break;\n      case xsd.decimal:\n        if (/^[+-]?\\d*\\.\\d+$/.test(value))\n          return value;\n        break;\n      case xsd.double:\n        if (/^[+-]?(?:\\d+\\.\\d*|\\.?\\d+)[eE][+-]?\\d+$/.test(value))\n          return value;\n        break;\n      }\n    }\n\n    // Write a regular datatyped literal\n    return `\"${value}\"^^${this._encodeIriOrBlank(literal.datatype)}`;\n  }\n\n  // ### `_encodePredicate` represents a predicate\n  _encodePredicate(predicate) {\n    return predicate.value === rdf.type ? 'a' : this._encodeIriOrBlank(predicate);\n  }\n\n  // ### `_encodeObject` represents an object\n  _encodeObject(object) {\n    switch (object.termType) {\n    case 'Quad':\n      return this._encodeQuad(object);\n    case 'Literal':\n      return this._encodeLiteral(object);\n    default:\n      return this._encodeIriOrBlank(object);\n    }\n  }\n\n  // ### `_encodeQuad` encodes an RDF-star quad\n  _encodeQuad({ subject, predicate, object, graph }) {\n    return `<<${\n      this._encodeSubject(subject)} ${\n      this._encodePredicate(predicate)} ${\n      this._encodeObject(object)}${\n      isDefaultGraph(graph) ? '' : ` ${this._encodeIriOrBlank(graph)}`}>>`;\n  }\n\n  // ### `_blockedWrite` replaces `_write` after the writer has been closed\n  _blockedWrite() {\n    throw new Error('Cannot write because the writer has been closed.');\n  }\n\n  // ### `addQuad` adds the quad to the output stream\n  addQuad(subject, predicate, object, graph, done) {\n    // The quad was given as an object, so shift parameters\n    if (object === undefined)\n      this._writeQuad(subject.subject, subject.predicate, subject.object, subject.graph, predicate);\n    // The optional `graph` parameter was not provided\n    else if (typeof graph === 'function')\n      this._writeQuad(subject, predicate, object, DEFAULTGRAPH, graph);\n    // The `graph` parameter was provided\n    else\n      this._writeQuad(subject, predicate, object, graph || DEFAULTGRAPH, done);\n  }\n\n  // ### `addQuads` adds the quads to the output stream\n  addQuads(quads) {\n    for (let i = 0; i < quads.length; i++)\n      this.addQuad(quads[i]);\n  }\n\n  // ### `addPrefix` adds the prefix to the output stream\n  addPrefix(prefix, iri, done) {\n    const prefixes = {};\n    prefixes[prefix] = iri;\n    this.addPrefixes(prefixes, done);\n  }\n\n  // ### `addPrefixes` adds the prefixes to the output stream\n  addPrefixes(prefixes, done) {\n    // Ignore prefixes if not supported by the serialization\n    if (!this._prefixIRIs)\n      return done && done();\n\n    // Write all new prefixes\n    let hasPrefixes = false;\n    for (let prefix in prefixes) {\n      let iri = prefixes[prefix];\n      if (typeof iri !== 'string')\n        iri = iri.value;\n      hasPrefixes = true;\n      // Finish a possible pending quad\n      if (this._subject !== null) {\n        this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n        this._subject = null, this._graph = '';\n      }\n      // Store and write the prefix\n      this._prefixIRIs[iri] = (prefix += ':');\n      this._write(`@prefix ${prefix} <${iri}>.\\n`);\n    }\n    // Recreate the prefix matcher\n    if (hasPrefixes) {\n      let IRIlist = '', prefixList = '';\n      for (const prefixIRI in this._prefixIRIs) {\n        IRIlist += IRIlist ? `|${prefixIRI}` : prefixIRI;\n        prefixList += (prefixList ? '|' : '') + this._prefixIRIs[prefixIRI];\n      }\n      IRIlist = escapeRegex(IRIlist, /[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n      this._prefixRegex = new RegExp(`^(?:${prefixList})[^\\/]*$|` +\n                                     `^(${IRIlist})([_a-zA-Z0-9][\\\\-_a-zA-Z0-9]*)$`);\n    }\n    // End a prefix block with a newline\n    this._write(hasPrefixes ? '\\n' : '', done);\n  }\n\n  // ### `blank` creates a blank node with the given content\n  blank(predicate, object) {\n    let children = predicate, child, length;\n    // Empty blank node\n    if (predicate === undefined)\n      children = [];\n    // Blank node passed as blank(Term(\"predicate\"), Term(\"object\"))\n    else if (predicate.termType)\n      children = [{ predicate: predicate, object: object }];\n    // Blank node passed as blank({ predicate: predicate, object: object })\n    else if (!('length' in predicate))\n      children = [predicate];\n\n    switch (length = children.length) {\n    // Generate an empty blank node\n    case 0:\n      return new SerializedTerm('[]');\n    // Generate a non-nested one-triple blank node\n    case 1:\n      child = children[0];\n      if (!(child.object instanceof SerializedTerm))\n        return new SerializedTerm(`[ ${this._encodePredicate(child.predicate)} ${\n                                  this._encodeObject(child.object)} ]`);\n    // Generate a multi-triple or nested blank node\n    default:\n      let contents = '[';\n      // Write all triples in order\n      for (let i = 0; i < length; i++) {\n        child = children[i];\n        // Write only the object is the predicate is the same as the previous\n        if (child.predicate.equals(predicate))\n          contents += `, ${this._encodeObject(child.object)}`;\n        // Otherwise, write the predicate and the object\n        else {\n          contents += `${(i ? ';\\n  ' : '\\n  ') +\n                      this._encodePredicate(child.predicate)} ${\n                      this._encodeObject(child.object)}`;\n          predicate = child.predicate;\n        }\n      }\n      return new SerializedTerm(`${contents}\\n]`);\n    }\n  }\n\n  // ### `list` creates a list node with the given content\n  list(elements) {\n    const length = elements && elements.length || 0, contents = new Array(length);\n    for (let i = 0; i < length; i++)\n      contents[i] = this._encodeObject(elements[i]);\n    return new SerializedTerm(`(${contents.join(' ')})`);\n  }\n\n  // ### `end` signals the end of the output stream\n  end(done) {\n    // Finish a possible pending quad\n    if (this._subject !== null) {\n      this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n      this._subject = null;\n    }\n    // Disallow further writing\n    this._write = this._blockedWrite;\n\n    // Try to end the underlying stream, ensuring done is called exactly one time\n    let singleDone = done && ((error, result) => { singleDone = null, done(error, result); });\n    if (this._endStream) {\n      try { return this._outputStream.end(singleDone); }\n      catch (error) { /* error closing stream */ }\n    }\n    singleDone && singleDone();\n  }\n}\n\n// Replaces a character by its escaped version\nfunction characterReplacer(character) {\n  // Replace a single character by its escaped version\n  let result = escapedCharacters[character];\n  if (result === undefined) {\n    // Replace a single character with its 4-bit unicode escape sequence\n    if (character.length === 1) {\n      result = character.charCodeAt(0).toString(16);\n      result = '\\\\u0000'.substr(0, 6 - result.length) + result;\n    }\n    // Replace a surrogate pair with its 8-bit unicode escape sequence\n    else {\n      result = ((character.charCodeAt(0) - 0xD800) * 0x400 +\n                 character.charCodeAt(1) + 0x2400).toString(16);\n      result = '\\\\U00000000'.substr(0, 10 - result.length) + result;\n    }\n  }\n  return result;\n}\n","// **N3Store** objects store N3 quads by graph in memory.\nimport { Readable } from 'readable-stream';\nimport { default as N3DataFactory, termToId, termFromId } from './N3DataFactory';\nimport namespaces from './IRIs';\nimport { isDefaultGraph } from './N3Util';\nimport N3Writer from './N3Writer';\n\nconst ITERATOR = Symbol('iter');\n\nfunction merge(target, source, depth = 4) {\n  if (depth === 0)\n    return Object.assign(target, source);\n\n  for (const key in source)\n    target[key] = merge(target[key] || Object.create(null), source[key], depth - 1);\n\n  return target;\n}\n\n/**\n * Determines the intersection of the `_graphs` index s1 and s2.\n * s1 and s2 *must* belong to Stores that share an `_entityIndex`.\n *\n * False is returned when there is no intersection; this should\n * *not* be set as the value for an index.\n */\nfunction intersect(s1, s2, depth = 4) {\n  let target = false;\n\n  for (const key in s1) {\n    if (key in s2) {\n      const intersection = depth === 0 ? null : intersect(s1[key], s2[key], depth - 1);\n      if (intersection !== false) {\n        target = target || Object.create(null);\n        target[key] = intersection;\n      }\n      // Depth 3 is the 'subjects', 'predicates' and 'objects' keys.\n      // If the 'subjects' index is empty, so will the 'predicates' and 'objects' index.\n      else if (depth === 3) {\n        return false;\n      }\n    }\n  }\n\n  return target;\n}\n\n/**\n * Determines the difference of the `_graphs` index s1 and s2.\n * s1 and s2 *must* belong to Stores that share an `_entityIndex`.\n *\n * False is returned when there is no difference; this should\n * *not* be set as the value for an index.\n */\nfunction difference(s1, s2, depth = 4) {\n  let target = false;\n\n  for (const key in s1) {\n    // When the key is not in the index, then none of the triples defined by s1[key] are\n    // in s2 and so we want to copy them over to the resultant store.\n    if (!(key in s2)) {\n      target = target || Object.create(null);\n      target[key] = depth === 0 ? null : merge({}, s1[key], depth - 1);\n    }\n    else if (depth !== 0) {\n      const diff = difference(s1[key], s2[key], depth - 1);\n      if (diff !== false) {\n        target = target || Object.create(null);\n        target[key] = diff;\n      }\n      // Depth 3 is the 'subjects', 'predicates' and 'objects' keys.\n      // If the 'subjects' index is empty, so will the 'predicates' and 'objects' index.\n      else if (depth === 3) {\n        return false;\n      }\n    }\n  }\n\n  return target;\n}\n\n// ## Constructor\nexport class N3EntityIndex {\n  constructor(options = {}) {\n    this._id = 1;\n    // `_ids` maps entities such as `http://xmlns.com/foaf/0.1/name` to numbers,\n    // saving memory by using only numbers as keys in `_graphs`\n    this._ids = Object.create(null);\n    this._ids[''] = 1;\n     // inverse of `_ids`\n    this._entities = Object.create(null);\n    this._entities[1] = '';\n    // `_blankNodeIndex` is the index of the last automatically named blank node\n    this._blankNodeIndex = 0;\n    this._factory = options.factory || N3DataFactory;\n  }\n\n  _termFromId(id) {\n    if (id[0] === '.') {\n      const entities = this._entities;\n      const terms = id.split('.');\n      const q = this._factory.quad(\n        this._termFromId(entities[terms[1]]),\n        this._termFromId(entities[terms[2]]),\n        this._termFromId(entities[terms[3]]),\n        terms[4] && this._termFromId(entities[terms[4]]),\n      );\n      return q;\n    }\n    return termFromId(id, this._factory);\n  }\n\n  _termToNumericId(term) {\n    if (term.termType === 'Quad') {\n      const s = this._termToNumericId(term.subject),\n          p = this._termToNumericId(term.predicate),\n          o = this._termToNumericId(term.object);\n      let g;\n\n      return s && p && o && (isDefaultGraph(term.graph) || (g = this._termToNumericId(term.graph))) &&\n        this._ids[g ? `.${s}.${p}.${o}.${g}` : `.${s}.${p}.${o}`];\n    }\n    return this._ids[termToId(term)];\n  }\n\n  _termToNewNumericId(term) {\n    // This assumes that no graph term is present - we may wish to error if there is one\n    const str = term && term.termType === 'Quad' ?\n      `.${this._termToNewNumericId(term.subject)}.${this._termToNewNumericId(term.predicate)}.${this._termToNewNumericId(term.object)}${\n        isDefaultGraph(term.graph) ? '' : `.${this._termToNewNumericId(term.graph)}`\n      }`\n      : termToId(term);\n\n    return this._ids[str] || (this._ids[this._entities[++this._id] = str] = this._id);\n  }\n\n  createBlankNode(suggestedName) {\n    let name, index;\n    // Generate a name based on the suggested name\n    if (suggestedName) {\n      name = suggestedName = `_:${suggestedName}`, index = 1;\n      while (this._ids[name])\n        name = suggestedName + index++;\n    }\n    // Generate a generic blank node name\n    else {\n      do { name = `_:b${this._blankNodeIndex++}`; }\n      while (this._ids[name]);\n    }\n    // Add the blank node to the entities, avoiding the generation of duplicates\n    this._ids[name] = ++this._id;\n    this._entities[this._id] = name;\n    return this._factory.blankNode(name.substr(2));\n  }\n}\n\n// ## Constructor\nexport default class N3Store {\n  constructor(quads, options) {\n    // The number of quads is initially zero\n    this._size = 0;\n    // `_graphs` contains subject, predicate, and object indexes per graph\n    this._graphs = Object.create(null);\n\n    // Shift parameters if `quads` is not given\n    if (!options && quads && !quads[0] && !(typeof quads.match === 'function'))\n      options = quads, quads = null;\n    options = options || {};\n    this._factory = options.factory || N3DataFactory;\n    this._entityIndex = options.entityIndex || new N3EntityIndex({ factory: this._factory });\n    this._entities = this._entityIndex._entities;\n    this._termFromId = this._entityIndex._termFromId.bind(this._entityIndex);\n    this._termToNumericId = this._entityIndex._termToNumericId.bind(this._entityIndex);\n    this._termToNewNumericId = this._entityIndex._termToNewNumericId.bind(this._entityIndex);\n\n    // Add quads if passed\n    if (quads)\n      this.addAll(quads);\n  }\n\n  // ## Public properties\n\n  // ### `size` returns the number of quads in the store\n  get size() {\n    // Return the quad count if if was cached\n    let size = this._size;\n    if (size !== null)\n      return size;\n\n    // Calculate the number of quads by counting to the deepest level\n    size = 0;\n    const graphs = this._graphs;\n    let subjects, subject;\n    for (const graphKey in graphs)\n      for (const subjectKey in (subjects = graphs[graphKey].subjects))\n        for (const predicateKey in (subject = subjects[subjectKey]))\n          size += Object.keys(subject[predicateKey]).length;\n    return this._size = size;\n  }\n\n  // ## Private methods\n\n  // ### `_addToIndex` adds a quad to a three-layered index.\n  // Returns if the index has changed, if the entry did not already exist.\n  _addToIndex(index0, key0, key1, key2) {\n    // Create layers as necessary\n    const index1 = index0[key0] || (index0[key0] = {});\n    const index2 = index1[key1] || (index1[key1] = {});\n    // Setting the key to _any_ value signals the presence of the quad\n    const existed = key2 in index2;\n    if (!existed)\n      index2[key2] = null;\n    return !existed;\n  }\n\n  // ### `_removeFromIndex` removes a quad from a three-layered index\n  _removeFromIndex(index0, key0, key1, key2) {\n    // Remove the quad from the index\n    const index1 = index0[key0], index2 = index1[key1];\n    delete index2[key2];\n\n    // Remove intermediary index layers if they are empty\n    for (const key in index2) return;\n    delete index1[key1];\n    for (const key in index1) return;\n    delete index0[key0];\n  }\n\n  // ### `_findInIndex` finds a set of quads in a three-layered index.\n  // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n  // Any of these keys can be undefined, which is interpreted as a wildcard.\n  // `name0`, `name1`, and `name2` are the names of the keys at each level,\n  // used when reconstructing the resulting quad\n  // (for instance: _subject_, _predicate_, and _object_).\n  // Finally, `graphId` will be the graph of the created quads.\n  *_findInIndex(index0, key0, key1, key2, name0, name1, name2, graphId) {\n    let tmp, index1, index2;\n    const entityKeys = this._entities;\n    const graph = this._termFromId(entityKeys[graphId]);\n    const parts = { subject: null, predicate: null, object: null };\n\n    // If a key is specified, use only that part of index 0.\n    if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n    for (const value0 in index0) {\n      if (index1 = index0[value0]) {\n        parts[name0] = this._termFromId(entityKeys[value0]);\n        // If a key is specified, use only that part of index 1.\n        if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n        for (const value1 in index1) {\n          if (index2 = index1[value1]) {\n            parts[name1] = this._termFromId(entityKeys[value1]);\n            // If a key is specified, use only that part of index 2, if it exists.\n            const values = key2 ? (key2 in index2 ? [key2] : []) : Object.keys(index2);\n            // Create quads for all items found in index 2.\n            for (let l = 0; l < values.length; l++) {\n              parts[name2] = this._termFromId(entityKeys[values[l]]);\n              yield this._factory.quad(parts.subject, parts.predicate, parts.object, graph);\n            }\n          }\n        }\n      }\n    }\n  }\n\n  // ### `_loop` executes the callback on all keys of index 0\n  _loop(index0, callback) {\n    for (const key0 in index0)\n      callback(key0);\n  }\n\n  // ### `_loopByKey0` executes the callback on all keys of a certain entry in index 0\n  _loopByKey0(index0, key0, callback) {\n    let index1, key1;\n    if (index1 = index0[key0]) {\n      for (key1 in index1)\n        callback(key1);\n    }\n  }\n\n  // ### `_loopByKey1` executes the callback on given keys of all entries in index 0\n  _loopByKey1(index0, key1, callback) {\n    let key0, index1;\n    for (key0 in index0) {\n      index1 = index0[key0];\n      if (index1[key1])\n        callback(key0);\n    }\n  }\n\n  // ### `_loopBy2Keys` executes the callback on given keys of certain entries in index 2\n  _loopBy2Keys(index0, key0, key1, callback) {\n    let index1, index2, key2;\n    if ((index1 = index0[key0]) && (index2 = index1[key1])) {\n      for (key2 in index2)\n        callback(key2);\n    }\n  }\n\n  // ### `_countInIndex` counts matching quads in a three-layered index.\n  // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n  // Any of these keys can be undefined, which is interpreted as a wildcard.\n  _countInIndex(index0, key0, key1, key2) {\n    let count = 0, tmp, index1, index2;\n\n    // If a key is specified, count only that part of index 0\n    if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n    for (const value0 in index0) {\n      if (index1 = index0[value0]) {\n        // If a key is specified, count only that part of index 1\n        if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n        for (const value1 in index1) {\n          if (index2 = index1[value1]) {\n            // If a key is specified, count the quad if it exists\n            if (key2) (key2 in index2) && count++;\n            // Otherwise, count all quads\n            else count += Object.keys(index2).length;\n          }\n        }\n      }\n    }\n    return count;\n  }\n\n  // ### `_getGraphs` returns an array with the given graph,\n  // or all graphs if the argument is null or undefined.\n  _getGraphs(graph) {\n    graph = graph === '' ? 1 : (graph && (this._termToNumericId(graph) || -1));\n    return typeof graph !== 'number' ? this._graphs : { [graph]: this._graphs[graph] };\n  }\n\n  // ### `_uniqueEntities` returns a function that accepts an entity ID\n  // and passes the corresponding entity to callback if it hasn't occurred before.\n  _uniqueEntities(callback) {\n    const uniqueIds = Object.create(null);\n    return id => {\n      if (!(id in uniqueIds)) {\n        uniqueIds[id] = true;\n        callback(this._termFromId(this._entities[id], this._factory));\n      }\n    };\n  }\n\n  // ## Public methods\n\n  // ### `add` adds the specified quad to the dataset.\n  // Returns the dataset instance it was called on.\n  // Existing quads, as defined in Quad.equals, will be ignored.\n  add(quad) {\n    this.addQuad(quad);\n    return this;\n  }\n\n  // ### `addQuad` adds a new quad to the store.\n  // Returns if the quad index has changed, if the quad did not already exist.\n  addQuad(subject, predicate, object, graph) {\n    // Shift arguments if a quad object is given instead of components\n    if (!predicate)\n      graph = subject.graph, object = subject.object,\n        predicate = subject.predicate, subject = subject.subject;\n\n    // Convert terms to internal string representation\n    graph = graph ? this._termToNewNumericId(graph) : 1;\n\n    // Find the graph that will contain the triple\n    let graphItem = this._graphs[graph];\n    // Create the graph if it doesn't exist yet\n    if (!graphItem) {\n      graphItem = this._graphs[graph] = { subjects: {}, predicates: {}, objects: {} };\n      // Freezing a graph helps subsequent `add` performance,\n      // and properties will never be modified anyway\n      Object.freeze(graphItem);\n    }\n\n    // Since entities can often be long IRIs, we avoid storing them in every index.\n    // Instead, we have a separate index that maps entities to numbers,\n    // which are then used as keys in the other indexes.\n    subject   = this._termToNewNumericId(subject);\n    predicate = this._termToNewNumericId(predicate);\n    object    = this._termToNewNumericId(object);\n\n    if (!this._addToIndex(graphItem.subjects,   subject,   predicate, object))\n      return false;\n    this._addToIndex(graphItem.predicates, predicate, object,    subject);\n    this._addToIndex(graphItem.objects,    object,    subject,   predicate);\n\n    // The cached quad count is now invalid\n    this._size = null;\n    return true;\n  }\n\n  // ### `addQuads` adds multiple quads to the store\n  addQuads(quads) {\n    for (let i = 0; i < quads.length; i++)\n      this.addQuad(quads[i]);\n  }\n\n  // ### `delete` removes the specified quad from the dataset.\n  // Returns the dataset instance it was called on.\n  delete(quad) {\n    this.removeQuad(quad);\n    return this;\n  }\n\n  // ### `has` determines whether a dataset includes a certain quad or quad pattern.\n  has(subjectOrQuad, predicate, object, graph) {\n    if (subjectOrQuad && subjectOrQuad.subject)\n      ({ subject: subjectOrQuad, predicate, object, graph } = subjectOrQuad);\n    return !this.readQuads(subjectOrQuad, predicate, object, graph).next().done;\n  }\n\n  // ### `import` adds a stream of quads to the store\n  import(stream) {\n    stream.on('data', quad => { this.addQuad(quad); });\n    return stream;\n  }\n\n  // ### `removeQuad` removes a quad from the store if it exists\n  removeQuad(subject, predicate, object, graph) {\n    // Shift arguments if a quad object is given instead of components\n    if (!predicate)\n      ({ subject, predicate, object, graph } = subject);\n    // Convert terms to internal string representation\n    graph = graph ? this._termToNumericId(graph) : 1;\n\n    // Find internal identifiers for all components\n    // and verify the quad exists.\n    const graphs = this._graphs;\n    let graphItem, subjects, predicates;\n    if (!(subject    = subject && this._termToNumericId(subject)) || !(predicate = predicate && this._termToNumericId(predicate)) ||\n        !(object     = object && this._termToNumericId(object))  || !(graphItem = graphs[graph])  ||\n        !(subjects   = graphItem.subjects[subject]) ||\n        !(predicates = subjects[predicate]) ||\n        !(object in predicates))\n      return false;\n\n    // Remove it from all indexes\n    this._removeFromIndex(graphItem.subjects,   subject,   predicate, object);\n    this._removeFromIndex(graphItem.predicates, predicate, object,    subject);\n    this._removeFromIndex(graphItem.objects,    object,    subject,   predicate);\n    if (this._size !== null) this._size--;\n\n    // Remove the graph if it is empty\n    for (subject in graphItem.subjects) return true;\n    delete graphs[graph];\n    return true;\n  }\n\n  // ### `removeQuads` removes multiple quads from the store\n  removeQuads(quads) {\n    for (let i = 0; i < quads.length; i++)\n      this.removeQuad(quads[i]);\n  }\n\n  // ### `remove` removes a stream of quads from the store\n  remove(stream) {\n    stream.on('data', quad => { this.removeQuad(quad); });\n    return stream;\n  }\n\n  // ### `removeMatches` removes all matching quads from the store\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  removeMatches(subject, predicate, object, graph) {\n    const stream = new Readable({ objectMode: true });\n\n    const iterable = this.readQuads(subject, predicate, object, graph);\n    stream._read = size => {\n      while (--size >= 0) {\n        const { done, value } = iterable.next();\n        if (done) {\n          stream.push(null);\n          return;\n        }\n        stream.push(value);\n      }\n    };\n\n    return this.remove(stream);\n  }\n\n  // ### `deleteGraph` removes all triples with the given graph from the store\n  deleteGraph(graph) {\n    return this.removeMatches(null, null, null, graph);\n  }\n\n  // ### `getQuads` returns an array of quads matching a pattern.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  getQuads(subject, predicate, object, graph) {\n    return [...this.readQuads(subject, predicate, object, graph)];\n  }\n\n  /**\n   * `readQuads` returns a generator of quads matching a pattern.\n   * Setting any field to `undefined` or `null` indicates a wildcard.\n   * @deprecated Use `match` instead.\n   */\n  *readQuads(subject, predicate, object, graph) {\n    const graphs = this._getGraphs(graph);\n    let content, subjectId, predicateId, objectId;\n\n    // Translate IRIs to internal index keys.\n    if (subject   && !(subjectId   = this._termToNumericId(subject))   ||\n        predicate && !(predicateId = this._termToNumericId(predicate)) ||\n        object    && !(objectId    = this._termToNumericId(object)))\n      return;\n\n    for (const graphId in graphs) {\n      // Only if the specified graph contains triples, there can be results\n      if (content = graphs[graphId]) {\n        // Choose the optimal index, based on what fields are present\n        if (subjectId) {\n          if (objectId)\n            // If subject and object are given, the object index will be the fastest\n            yield* this._findInIndex(content.objects, objectId, subjectId, predicateId,\n                              'object', 'subject', 'predicate', graphId);\n          else\n            // If only subject and possibly predicate are given, the subject index will be the fastest\n            yield* this._findInIndex(content.subjects, subjectId, predicateId, null,\n                              'subject', 'predicate', 'object', graphId);\n        }\n        else if (predicateId)\n          // If only predicate and possibly object are given, the predicate index will be the fastest\n          yield* this._findInIndex(content.predicates, predicateId, objectId, null,\n                            'predicate', 'object', 'subject', graphId);\n        else if (objectId)\n          // If only object is given, the object index will be the fastest\n          yield* this._findInIndex(content.objects, objectId, null, null,\n                            'object', 'subject', 'predicate', graphId);\n        else\n          // If nothing is given, iterate subjects and predicates first\n          yield* this._findInIndex(content.subjects, null, null, null,\n                            'subject', 'predicate', 'object', graphId);\n      }\n    }\n  }\n\n  // ### `match` returns a new dataset that is comprised of all quads in the current instance matching the given arguments.\n  // The logic described in Quad Matching is applied for each quad in this dataset to check if it should be included in the output dataset.\n  // Note: This method always returns a new DatasetCore, even if that dataset contains no quads.\n  // Note: Since a DatasetCore is an unordered set, the order of the quads within the returned sequence is arbitrary.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  // For backwards compatibility, the object return also implements the Readable stream interface.\n  match(subject, predicate, object, graph) {\n    return new DatasetCoreAndReadableStream(this, subject, predicate, object, graph, { entityIndex: this._entityIndex });\n  }\n\n  // ### `countQuads` returns the number of quads matching a pattern.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  countQuads(subject, predicate, object, graph) {\n    const graphs = this._getGraphs(graph);\n    let count = 0, content, subjectId, predicateId, objectId;\n\n    // Translate IRIs to internal index keys.\n    if (subject   && !(subjectId   = this._termToNumericId(subject))   ||\n        predicate && !(predicateId = this._termToNumericId(predicate)) ||\n        object    && !(objectId    = this._termToNumericId(object)))\n      return 0;\n\n    for (const graphId in graphs) {\n      // Only if the specified graph contains triples, there can be results\n      if (content = graphs[graphId]) {\n        // Choose the optimal index, based on what fields are present\n        if (subject) {\n          if (object)\n            // If subject and object are given, the object index will be the fastest\n            count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n          else\n            // If only subject and possibly predicate are given, the subject index will be the fastest\n            count += this._countInIndex(content.subjects, subjectId, predicateId, objectId);\n        }\n        else if (predicate) {\n          // If only predicate and possibly object are given, the predicate index will be the fastest\n          count += this._countInIndex(content.predicates, predicateId, objectId, subjectId);\n        }\n        else {\n          // If only object is possibly given, the object index will be the fastest\n          count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n        }\n      }\n    }\n    return count;\n  }\n\n  // ### `forEach` executes the callback on all quads.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  forEach(callback, subject, predicate, object, graph) {\n    this.some(quad => {\n      callback(quad, this);\n      return false;\n    }, subject, predicate, object, graph);\n  }\n\n  // ### `every` executes the callback on all quads,\n  // and returns `true` if it returns truthy for all them.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  every(callback, subject, predicate, object, graph) {\n    return !this.some(quad => !callback(quad, this), subject, predicate, object, graph);\n  }\n\n  // ### `some` executes the callback on all quads,\n  // and returns `true` if it returns truthy for any of them.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  some(callback, subject, predicate, object, graph) {\n    for (const quad of this.readQuads(subject, predicate, object, graph))\n      if (callback(quad, this))\n        return true;\n    return false;\n  }\n\n  // ### `getSubjects` returns all subjects that match the pattern.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  getSubjects(predicate, object, graph) {\n    const results = [];\n    this.forSubjects(s => { results.push(s); }, predicate, object, graph);\n    return results;\n  }\n\n  // ### `forSubjects` executes the callback on all subjects that match the pattern.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  forSubjects(callback, predicate, object, graph) {\n    const graphs = this._getGraphs(graph);\n    let content, predicateId, objectId;\n    callback = this._uniqueEntities(callback);\n\n    // Translate IRIs to internal index keys.\n    if (predicate && !(predicateId = this._termToNumericId(predicate)) ||\n        object    && !(objectId    = this._termToNumericId(object)))\n      return;\n\n    for (graph in graphs) {\n      // Only if the specified graph contains triples, there can be results\n      if (content = graphs[graph]) {\n        // Choose optimal index based on which fields are wildcards\n        if (predicateId) {\n          if (objectId)\n            // If predicate and object are given, the POS index is best.\n            this._loopBy2Keys(content.predicates, predicateId, objectId, callback);\n          else\n            // If only predicate is given, the SPO index is best.\n            this._loopByKey1(content.subjects, predicateId, callback);\n        }\n        else if (objectId)\n          // If only object is given, the OSP index is best.\n          this._loopByKey0(content.objects, objectId, callback);\n        else\n          // If no params given, iterate all the subjects\n          this._loop(content.subjects, callback);\n      }\n    }\n  }\n\n  // ### `getPredicates` returns all predicates that match the pattern.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  getPredicates(subject, object, graph) {\n    const results = [];\n    this.forPredicates(p => { results.push(p); }, subject, object, graph);\n    return results;\n  }\n\n  // ### `forPredicates` executes the callback on all predicates that match the pattern.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  forPredicates(callback, subject, object, graph) {\n    const graphs = this._getGraphs(graph);\n    let content, subjectId, objectId;\n    callback = this._uniqueEntities(callback);\n\n    // Translate IRIs to internal index keys.\n    if (subject   && !(subjectId   = this._termToNumericId(subject))   ||\n        object    && !(objectId    = this._termToNumericId(object)))\n      return;\n\n    for (graph in graphs) {\n      // Only if the specified graph contains triples, there can be results\n      if (content = graphs[graph]) {\n        // Choose optimal index based on which fields are wildcards\n        if (subjectId) {\n          if (objectId)\n            // If subject and object are given, the OSP index is best.\n            this._loopBy2Keys(content.objects, objectId, subjectId, callback);\n          else\n            // If only subject is given, the SPO index is best.\n            this._loopByKey0(content.subjects, subjectId, callback);\n        }\n        else if (objectId)\n          // If only object is given, the POS index is best.\n          this._loopByKey1(content.predicates, objectId, callback);\n        else\n          // If no params given, iterate all the predicates.\n          this._loop(content.predicates, callback);\n      }\n    }\n  }\n\n  // ### `getObjects` returns all objects that match the pattern.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  getObjects(subject, predicate, graph) {\n    const results = [];\n    this.forObjects(o => { results.push(o); }, subject, predicate, graph);\n    return results;\n  }\n\n  // ### `forObjects` executes the callback on all objects that match the pattern.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  forObjects(callback, subject, predicate, graph) {\n    const graphs = this._getGraphs(graph);\n    let content, subjectId, predicateId;\n    callback = this._uniqueEntities(callback);\n\n    // Translate IRIs to internal index keys.\n    if (subject   && !(subjectId   = this._termToNumericId(subject))   ||\n        predicate && !(predicateId = this._termToNumericId(predicate)))\n      return;\n\n    for (graph in graphs) {\n      // Only if the specified graph contains triples, there can be results\n      if (content = graphs[graph]) {\n        // Choose optimal index based on which fields are wildcards\n        if (subjectId) {\n          if (predicateId)\n            // If subject and predicate are given, the SPO index is best.\n            this._loopBy2Keys(content.subjects, subjectId, predicateId, callback);\n          else\n            // If only subject is given, the OSP index is best.\n            this._loopByKey1(content.objects, subjectId, callback);\n        }\n        else if (predicateId)\n          // If only predicate is given, the POS index is best.\n          this._loopByKey0(content.predicates, predicateId, callback);\n        else\n          // If no params given, iterate all the objects.\n          this._loop(content.objects, callback);\n      }\n    }\n  }\n\n  // ### `getGraphs` returns all graphs that match the pattern.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  getGraphs(subject, predicate, object) {\n    const results = [];\n    this.forGraphs(g => { results.push(g); }, subject, predicate, object);\n    return results;\n  }\n\n  // ### `forGraphs` executes the callback on all graphs that match the pattern.\n  // Setting any field to `undefined` or `null` indicates a wildcard.\n  forGraphs(callback, subject, predicate, object) {\n    for (const graph in this._graphs) {\n      this.some(quad => {\n        callback(quad.graph);\n        return true; // Halt iteration of some()\n      }, subject, predicate, object, this._termFromId(this._entities[graph]));\n    }\n  }\n\n  // ### `createBlankNode` creates a new blank node, returning its name\n  createBlankNode(suggestedName) {\n    return this._entityIndex.createBlankNode(suggestedName);\n  }\n\n  // ### `extractLists` finds and removes all list triples\n  // and returns the items per list.\n  extractLists({ remove = false, ignoreErrors = false } = {}) {\n    const lists = {}; // has scalar keys so could be a simple Object\n    const onError = ignoreErrors ? (() => true) :\n                  ((node, message) => { throw new Error(`${node.value} ${message}`); });\n\n    // Traverse each list from its tail\n    const tails = this.getQuads(null, namespaces.rdf.rest, namespaces.rdf.nil, null);\n    const toRemove = remove ? [...tails] : [];\n    tails.forEach(tailQuad => {\n      const items = [];             // the members found as objects of rdf:first quads\n      let malformed = false;      // signals whether the current list is malformed\n      let head;                   // the head of the list (_:b1 in above example)\n      let headPos;                // set to subject or object when head is set\n      const graph = tailQuad.graph; // make sure list is in exactly one graph\n\n      // Traverse the list from tail to end\n      let current = tailQuad.subject;\n      while (current && !malformed) {\n        const objectQuads = this.getQuads(null, null, current, null);\n        const subjectQuads = this.getQuads(current, null, null, null);\n        let quad, first = null, rest = null, parent = null;\n\n        // Find the first and rest of this list node\n        for (let i = 0; i < subjectQuads.length && !malformed; i++) {\n          quad = subjectQuads[i];\n          if (!quad.graph.equals(graph))\n            malformed = onError(current, 'not confined to single graph');\n          else if (head)\n            malformed = onError(current, 'has non-list arcs out');\n\n          // one rdf:first\n          else if (quad.predicate.value === namespaces.rdf.first) {\n            if (first)\n              malformed = onError(current, 'has multiple rdf:first arcs');\n            else\n              toRemove.push(first = quad);\n          }\n\n          // one rdf:rest\n          else if (quad.predicate.value === namespaces.rdf.rest) {\n            if (rest)\n              malformed = onError(current, 'has multiple rdf:rest arcs');\n            else\n              toRemove.push(rest = quad);\n          }\n\n          // alien triple\n          else if (objectQuads.length)\n            malformed = onError(current, 'can\\'t be subject and object');\n          else {\n            head = quad; // e.g. { (1 2 3) :p :o }\n            headPos = 'subject';\n          }\n        }\n\n        // { :s :p (1 2) } arrives here with no head\n        // { (1 2) :p :o } arrives here with head set to the list.\n        for (let i = 0; i < objectQuads.length && !malformed; ++i) {\n          quad = objectQuads[i];\n          if (head)\n            malformed = onError(current, 'can\\'t have coreferences');\n          // one rdf:rest\n          else if (quad.predicate.value === namespaces.rdf.rest) {\n            if (parent)\n              malformed = onError(current, 'has incoming rdf:rest arcs');\n            else\n              parent = quad;\n          }\n          else {\n            head = quad; // e.g. { :s :p (1 2) }\n            headPos = 'object';\n          }\n        }\n\n        // Store the list item and continue with parent\n        if (!first)\n          malformed = onError(current, 'has no list head');\n        else\n          items.unshift(first.object);\n        current = parent && parent.subject;\n      }\n\n      // Don't remove any quads if the list is malformed\n      if (malformed)\n        remove = false;\n      // Store the list under the value of its head\n      else if (head)\n        lists[head[headPos].value] = items;\n    });\n\n    // Remove list quads if requested\n    if (remove)\n      this.removeQuads(toRemove);\n    return lists;\n  }\n\n  /**\n   * Returns `true` if the current dataset is a superset of the given dataset; in other words, returns `true` if\n   * the given dataset is a subset of, i.e., is contained within, the current dataset.\n   *\n   * Blank Nodes will be normalized.\n   */\n  addAll(quads) {\n    if (quads instanceof DatasetCoreAndReadableStream)\n      quads = quads.filtered;\n\n    if (Array.isArray(quads))\n      this.addQuads(quads);\n    else if (quads instanceof N3Store && quads._entityIndex === this._entityIndex) {\n      if (quads._size !== 0) {\n        this._graphs = merge(this._graphs, quads._graphs);\n        this._size = null; // Invalidate the cached size\n      }\n    }\n    else {\n      for (const quad of quads)\n        this.add(quad);\n    }\n    return this;\n  }\n\n  /**\n   * Returns `true` if the current dataset is a superset of the given dataset; in other words, returns `true` if\n   * the given dataset is a subset of, i.e., is contained within, the current dataset.\n   *\n   * Blank Nodes will be normalized.\n   */\n  contains(other) {\n    if (other instanceof DatasetCoreAndReadableStream)\n      other = other.filtered;\n\n    if (other === this)\n      return true;\n\n    if (!(other instanceof N3Store) || this._entityIndex !== other._entityIndex)\n      return other.every(quad => this.has(quad));\n\n    const g1 = this._graphs, g2 = other._graphs;\n    let s1, s2, p1, p2, o1;\n    for (const graph in g2) {\n      if (!(s1 = g1[graph])) return false;\n      s1 = s1.subjects;\n      for (const subject in (s2 = g2[graph].subjects)) {\n        if (!(p1 = s1[subject])) return false;\n        for (const predicate in (p2 = s2[subject])) {\n          if (!(o1 = p1[predicate])) return false;\n          for (const object in p2[predicate])\n            if (!(object in o1)) return false;\n        }\n      }\n    }\n    return true;\n  }\n\n  /**\n   * This method removes the quads in the current dataset that match the given arguments.\n   *\n   * The logic described in {@link https://rdf.js.org/dataset-spec/#quad-matching|Quad Matching} is applied for each\n   * quad in this dataset, to select the quads which will be deleted.\n   *\n   * @param subject   The optional exact subject to match.\n   * @param predicate The optional exact predicate to match.\n   * @param object    The optional exact object to match.\n   * @param graph     The optional exact graph to match.\n   */\n  deleteMatches(subject, predicate, object, graph) {\n    for (const quad of this.match(subject, predicate, object, graph))\n      this.removeQuad(quad);\n    return this;\n  }\n\n  /**\n   * Returns a new dataset that contains all quads from the current dataset that are not included in the given dataset.\n   */\n  difference(other) {\n    if (other && other instanceof DatasetCoreAndReadableStream)\n      other = other.filtered;\n\n    if (other === this)\n      return new N3Store({ entityIndex: this._entityIndex });\n\n    if ((other instanceof N3Store) && other._entityIndex === this._entityIndex) {\n      const store = new N3Store({ entityIndex: this._entityIndex });\n      const graphs = difference(this._graphs, other._graphs);\n      if (graphs) {\n        store._graphs = graphs;\n        store._size = null;\n      }\n      return store;\n    }\n\n    return this.filter(quad => !other.has(quad));\n  }\n\n  /**\n   * Returns true if the current dataset contains the same graph structure as the given dataset.\n   *\n   * Blank Nodes will be normalized.\n   */\n  equals(other) {\n    if (other instanceof DatasetCoreAndReadableStream)\n      other = other.filtered;\n\n    return other === this || (this.size === other.size && this.contains(other));\n  }\n\n  /**\n   * Creates a new dataset with all the quads that pass the test implemented by the provided `iteratee`.\n   *\n   * This method is aligned with Array.prototype.filter() in ECMAScript-262.\n   */\n  filter(iteratee) {\n    const store = new N3Store({ entityIndex: this._entityIndex });\n    for (const quad of this)\n      if (iteratee(quad, this))\n        store.add(quad);\n    return store;\n  }\n\n  /**\n   * Returns a new dataset containing all quads from the current dataset that are also included in the given dataset.\n   */\n  intersection(other) {\n    if (other instanceof DatasetCoreAndReadableStream)\n      other = other.filtered;\n\n    if (other === this) {\n      const store = new N3Store({ entityIndex: this._entityIndex });\n      store._graphs = merge(Object.create(null), this._graphs);\n      store._size = this._size;\n      return store;\n    }\n    else if ((other instanceof N3Store) && this._entityIndex === other._entityIndex) {\n      const store = new N3Store({ entityIndex: this._entityIndex });\n      const graphs = intersect(other._graphs, this._graphs);\n      if (graphs) {\n        store._graphs = graphs;\n        store._size = null;\n      }\n      return store;\n    }\n\n    return this.filter(quad => other.has(quad));\n  }\n\n  /**\n   * Returns a new dataset containing all quads returned by applying `iteratee` to each quad in the current dataset.\n   */\n  map(iteratee) {\n    const store = new N3Store({ entityIndex: this._entityIndex });\n    for (const quad of this)\n      store.add(iteratee(quad, this));\n    return store;\n  }\n\n  /**\n   * This method calls the `iteratee` method on each `quad` of the `Dataset`. The first time the `iteratee` method\n   * is called, the `accumulator` value is the `initialValue`, or, if not given, equals the first quad of the `Dataset`.\n   * The return value of each call to the `iteratee` method is used as the `accumulator` value for the next call.\n   *\n   * This method returns the return value of the last `iteratee` call.\n   *\n   * This method is aligned with `Array.prototype.reduce()` in ECMAScript-262.\n   */\n  reduce(callback, initialValue) {\n    const iter = this.readQuads();\n    let accumulator = initialValue === undefined ? iter.next().value : initialValue;\n    for (const quad of iter)\n      accumulator = callback(accumulator, quad, this);\n    return accumulator;\n  }\n\n  /**\n   * Returns the set of quads within the dataset as a host-language-native sequence, for example an `Array` in\n   * ECMAScript-262.\n   *\n   * Since a `Dataset` is an unordered set, the order of the quads within the returned sequence is arbitrary.\n   */\n  toArray() {\n    return this.getQuads();\n  }\n\n  /**\n   * Returns an N-Quads string representation of the dataset, preprocessed with the\n   * {@link https://json-ld.github.io/normalization/spec/|RDF Dataset Normalization} algorithm.\n   */\n  toCanonical() {\n    throw new Error('not implemented');\n  }\n\n  /**\n   * Returns a stream that contains all quads of the dataset.\n   */\n  toStream() {\n    return this.match();\n  }\n\n  /**\n   * Returns an N-Quads string representation of the dataset.\n   *\n   * No prior normalization is required, therefore the results for the same quads may vary depending on the `Dataset`\n   * implementation.\n   */\n  toString() {\n    return (new N3Writer()).quadsToString(this);\n  }\n\n  /**\n   * Returns a new `Dataset` that is a concatenation of this dataset and the quads given as an argument.\n   */\n  union(quads) {\n    const store = new N3Store({ entityIndex: this._entityIndex });\n    store._graphs = merge(Object.create(null), this._graphs);\n    store._size = this._size;\n\n    store.addAll(quads);\n    return store;\n  }\n\n  // ### Store is an iterable.\n  // Can be used where iterables are expected: for...of loops, array spread operator,\n  // `yield*`, and destructuring assignment (order is not guaranteed).\n  *[Symbol.iterator]() {\n    yield* this.readQuads();\n  }\n}\n\n/**\n * Returns a subset of the `index` with that part of the index\n * matching the `ids` array. `ids` contains 3 elements that are\n * either numerical ids; or `null`.\n *\n * `false` is returned when there are no matching indices; this should\n * *not* be set as the value for an index.\n */\nfunction indexMatch(index, ids, depth = 0) {\n  const ind = ids[depth];\n  if (ind && !(ind in index))\n    return false;\n\n  let target = false;\n  for (const key in (ind ? { [ind]: index[ind] } : index)) {\n    const result = depth === 2 ? null : indexMatch(index[key], ids, depth + 1);\n\n    if (result !== false) {\n      target = target || Object.create(null);\n      target[key] = result;\n    }\n  }\n  return target;\n}\n\n/**\n * A class that implements both DatasetCore and Readable.\n */\nclass DatasetCoreAndReadableStream extends Readable {\n  constructor(n3Store, subject, predicate, object, graph, options) {\n    super({ objectMode: true });\n    Object.assign(this, { n3Store, subject, predicate, object, graph, options });\n  }\n\n  get filtered() {\n    if (!this._filtered) {\n      const { n3Store, graph, object, predicate, subject } = this;\n      const newStore = this._filtered = new N3Store({ factory: n3Store._factory, entityIndex: this.options.entityIndex });\n\n      let subjectId, predicateId, objectId;\n\n      // Translate IRIs to internal index keys.\n      if (subject   && !(subjectId   = newStore._termToNumericId(subject))   ||\n          predicate && !(predicateId = newStore._termToNumericId(predicate)) ||\n          object    && !(objectId    = newStore._termToNumericId(object)))\n        return newStore;\n\n      const graphs = n3Store._getGraphs(graph);\n      for (const graphKey in graphs) {\n        let subjects, predicates, objects, content;\n        if (content = graphs[graphKey]) {\n          if (!subjectId && predicateId) {\n            if (predicates = indexMatch(content.predicates, [predicateId, objectId, subjectId])) {\n              subjects = indexMatch(content.subjects, [subjectId, predicateId, objectId]);\n              objects = indexMatch(content.objects, [objectId, subjectId, predicateId]);\n            }\n          }\n          else if (objectId) {\n            if (objects = indexMatch(content.objects, [objectId, subjectId, predicateId])) {\n              subjects = indexMatch(content.subjects, [subjectId, predicateId, objectId]);\n              predicates = indexMatch(content.predicates, [predicateId, objectId, subjectId]);\n            }\n          }\n          else if (subjects = indexMatch(content.subjects, [subjectId, predicateId, objectId])) {\n            predicates = indexMatch(content.predicates, [predicateId, objectId, subjectId]);\n            objects = indexMatch(content.objects, [objectId, subjectId, predicateId]);\n          }\n\n          if (subjects)\n            newStore._graphs[graphKey] = { subjects, predicates, objects };\n        }\n      }\n      newStore._size = null;\n    }\n    return this._filtered;\n  }\n\n  get size() {\n    return this.filtered.size;\n  }\n\n  _read(size) {\n    if (size > 0 && !this[ITERATOR])\n      this[ITERATOR] = this[Symbol.iterator]();\n    const iterable = this[ITERATOR];\n    while (--size >= 0) {\n      const { done, value } = iterable.next();\n      if (done) {\n        this.push(null);\n        return;\n      }\n      this.push(value);\n    }\n  }\n\n  addAll(quads) {\n    return this.filtered.addAll(quads);\n  }\n\n  contains(other) {\n    return this.filtered.contains(other);\n  }\n\n  deleteMatches(subject, predicate, object, graph) {\n    return this.filtered.deleteMatches(subject, predicate, object, graph);\n  }\n\n  difference(other) {\n    return this.filtered.difference(other);\n  }\n\n  equals(other) {\n    return this.filtered.equals(other);\n  }\n\n  every(callback, subject, predicate, object, graph) {\n    return this.filtered.every(callback, subject, predicate, object, graph);\n  }\n\n  filter(iteratee) {\n    return this.filtered.filter(iteratee);\n  }\n\n  forEach(callback, subject, predicate, object, graph) {\n    return this.filtered.forEach(callback, subject, predicate, object, graph);\n  }\n\n  import(stream) {\n    return this.filtered.import(stream);\n  }\n\n  intersection(other) {\n    return this.filtered.intersection(other);\n  }\n\n  map(iteratee) {\n    return this.filtered.map(iteratee);\n  }\n\n  some(callback, subject, predicate, object, graph) {\n    return this.filtered.some(callback, subject, predicate, object, graph);\n  }\n\n  toCanonical() {\n    return this.filtered.toCanonical();\n  }\n\n  toStream() {\n    return this._filtered ?\n      this._filtered.toStream()\n      : this.n3Store.match(this.subject, this.predicate, this.object, this.graph);\n  }\n\n  union(quads) {\n    return this._filtered ?\n      this._filtered.union(quads)\n      : this.n3Store.match(this.subject, this.predicate, this.object, this.graph).addAll(quads);\n  }\n\n  toArray() {\n    return this._filtered ? this._filtered.toArray() : this.n3Store.getQuads(this.subject, this.predicate, this.object, this.graph);\n  }\n\n  reduce(callback, initialValue) {\n    return this.filtered.reduce(callback, initialValue);\n  }\n\n  toString() {\n    return (new N3Writer()).quadsToString(this);\n  }\n\n  add(quad) {\n    return this.filtered.add(quad);\n  }\n\n  delete(quad) {\n    return this.filtered.delete(quad);\n  }\n\n  has(quad) {\n    return this.filtered.has(quad);\n  }\n\n  match(subject, predicate, object, graph) {\n    return new DatasetCoreAndReadableStream(this.filtered, subject, predicate, object, graph, this.options);\n  }\n\n  *[Symbol.iterator]() {\n    yield* this._filtered || this.n3Store.readQuads(this.subject, this.predicate, this.object, this.graph);\n  }\n}\n","import N3Store from './N3Store';\n\nexport default class N3DatasetCoreFactory {\n  dataset(quads) {\n    return new N3Store(quads);\n  }\n}\n","import DF from './N3DataFactory';\n\n/**\n * Gets rules from a dataset. This will only collect horn rules declared using log:implies.\n */\nexport function getRulesFromDataset(dataset) {\n  const rules = [];\n  for (const { subject, object } of dataset.match(null, DF.namedNode('http://www.w3.org/2000/10/swap/log#implies'), null, DF.defaultGraph())) {\n    const premise = [...dataset.match(null, null, null, subject)];\n    const conclusion = [...dataset.match(null, null, null, object)];\n    rules.push({ premise, conclusion });\n  }\n  return rules;\n}\n\nexport default class N3Reasoner {\n  constructor(store) {\n    this._store = store;\n  }\n\n  _add(subject, predicate, object, graphItem, cb) {\n    // Only add to the remaining indexes if there is not already a value in the index\n    if (!this._store._addToIndex(graphItem.subjects,   subject,   predicate, object)) return;\n    this._store._addToIndex(graphItem.predicates, predicate, object,    subject);\n    this._store._addToIndex(graphItem.objects,    object,    subject,   predicate);\n    cb();\n  }\n\n  // eslint-disable-next-line no-warning-comments\n  _evaluatePremise(rule, content, cb, i = 0) {\n    let v1, v2, value, index1, index2;\n    const [val0, val1, val2] = rule.premise[i].value, index = content[rule.premise[i].content];\n    const v0 = !(value = val0.value);\n    for (value in v0 ? index : { [value]: index[value] }) {\n      if (index1 = index[value]) {\n        if (v0) val0.value = Number(value);\n        v1 = !(value = val1.value);\n        for (value in v1 ? index1 : { [value]: index1[value] }) {\n          if (index2 = index1[value]) {\n            if (v1) val1.value = Number(value);\n            v2 = !(value = val2.value);\n            for (value in v2 ? index2 : { [value]: index2[value] }) {\n              if (v2) val2.value = Number(value);\n\n              if (i === rule.premise.length - 1)\n                rule.conclusion.forEach(c => {\n                  // eslint-disable-next-line max-nested-callbacks\n                  this._add(c.subject.value, c.predicate.value, c.object.value, content, () => { cb(c); });\n                });\n              else\n                this._evaluatePremise(rule, content, cb, i + 1);\n            }\n            if (v2) val2.value = null;\n          }\n        }\n        if (v1) val1.value = null;\n      }\n    }\n    if (v0) val0.value = null;\n  }\n\n  _evaluateRules(rules, content, cb) {\n    for (let i = 0; i < rules.length; i++) {\n      this._evaluatePremise(rules[i], content, cb);\n    }\n  }\n\n  // A naive reasoning algorithm where rules are just applied by repeatedly applying rules\n  // until no more evaluations are made\n  _reasonGraphNaive(rules, content) {\n    const newRules = [];\n\n    function addRule(conclusion) {\n      if (conclusion.next)\n        conclusion.next.forEach(rule => {\n          newRules.push([conclusion.subject.value, conclusion.predicate.value, conclusion.object.value, rule]);\n        });\n    }\n\n    // eslint-disable-next-line func-style\n    const addConclusions = conclusion => {\n      conclusion.forEach(c => {\n        // eslint-disable-next-line max-nested-callbacks\n        this._add(c.subject.value, c.predicate.value, c.object.value, content, () => { addRule(c); });\n      });\n    };\n\n    this._evaluateRules(rules, content, addRule);\n\n    let r;\n    while ((r = newRules.pop()) !== undefined) {\n      const [subject, predicate, object, rule] = r;\n      const v1 = rule.basePremise.subject.value;\n      if (!v1) rule.basePremise.subject.value = subject;\n      const v2 = rule.basePremise.predicate.value;\n      if (!v2) rule.basePremise.predicate.value = predicate;\n      const v3 = rule.basePremise.object.value;\n      if (!v3) rule.basePremise.object.value = object;\n\n      if (rule.premise.length === 0) {\n        addConclusions(rule.conclusion);\n      }\n      else {\n        this._evaluatePremise(rule, content, addRule);\n      }\n\n      if (!v1) rule.basePremise.subject.value = null;\n      if (!v2) rule.basePremise.predicate.value = null;\n      if (!v3) rule.basePremise.object.value = null;\n    }\n  }\n\n  _createRule({ premise, conclusion }) {\n    const varMapping = {};\n\n    const toId = value => value.termType === 'Variable' ?\n      // If the term is a variable, then create an empty object that values can be placed into\n      (varMapping[value.value] = varMapping[value.value] || {}) :\n      // If the term is not a variable, then set the ID value\n      { value: this._store._termToNewNumericId(value) };\n\n    // eslint-disable-next-line func-style\n    const t = term => ({ subject: toId(term.subject), predicate: toId(term.predicate), object: toId(term.object) });\n\n    return {\n      premise: premise.map(p => t(p)),\n      conclusion: conclusion.map(p => t(p)),\n      variables: Object.values(varMapping),\n    };\n  }\n\n  reason(rules) {\n    if (!Array.isArray(rules)) {\n      rules = getRulesFromDataset(rules);\n    }\n    rules = rules.map(rule => this._createRule(rule));\n\n    for (const r1 of rules) {\n      for (const r2 of rules) {\n        for (let i = 0; i < r2.premise.length; i++) {\n          const p = r2.premise[i];\n          for (const c of r1.conclusion) {\n            if (termEq(p.subject, c.subject) && termEq(p.predicate, c.predicate) && termEq(p.object, c.object)) {\n              const set = new Set();\n\n              const premise = [];\n\n              // Since these *will* be substituted when we apply the rule,\n              // we need to do this, so that we index correctly in the subsequent section\n              p.subject.value = p.subject.value || 1;\n              p.object.value = p.object.value || 1;\n              p.predicate.value = p.predicate.value || 1;\n\n              for (let j = 0; j < r2.premise.length; j++) {\n                if (j !== i) {\n                  premise.push(getIndex(r2.premise[j], set));\n                }\n              }\n\n              // eslint-disable-next-line no-warning-comments\n              // TODO: Create new rule, with new indexing\n              //       Future, 'collapse' the next statements when they share a premise/base-premise\n              (c.next = c.next || []).push({\n                premise,\n                conclusion: r2.conclusion,\n                // This is a single premise of the form { subject, predicate, object },\n                // which we can use to instantiate the rule using the new data that was emitted\n                basePremise: p,\n              });\n            }\n            r2.variables.forEach(v => { v.value = null; });\n          }\n        }\n      }\n    }\n\n    for (const rule of rules) {\n      const set = new Set();\n      rule.premise = rule.premise.map(p => getIndex(p, set));\n    }\n\n    const graphs = this._store._getGraphs();\n    for (const graphId in graphs) {\n      this._reasonGraphNaive(rules, graphs[graphId]);\n    }\n\n    this._store._size = null;\n  }\n}\n\nfunction getIndex({ subject, predicate, object }, set) {\n  const s = subject.value   || set.has(subject)   || (set.add(subject), false);\n  const p = predicate.value || set.has(predicate) || (set.add(predicate), false);\n  const o = object.value    || set.has(object)    || (set.add(object), false);\n\n  return (!s && p) ? { content: 'predicates', value: [predicate, object, subject] } :\n    o ? { content: 'objects', value: [object, subject, predicate] } :\n        { content: 'subjects', value: [subject, predicate, object] };\n}\n\nfunction termEq(t1, t2) {\n  if (t1.value === null) {\n    t1.value = t2.value;\n  }\n  return t1.value === t2.value;\n}\n","// **N3StreamParser** parses a text stream into a quad stream.\nimport { Transform } from 'readable-stream';\nimport N3Parser from './N3Parser';\n\n// ## Constructor\nexport default class N3StreamParser extends Transform {\n  constructor(options) {\n    super({ decodeStrings: true });\n    this._readableState.objectMode = true;\n\n    // Set up parser with dummy stream to obtain `data` and `end` callbacks\n    const parser = new N3Parser(options);\n    let onData, onEnd;\n\n    const callbacks = {\n        // Handle quads by pushing them down the pipeline\n      onQuad: (error, quad) => { error && this.emit('error', error) || quad && this.push(quad); },\n        // Emit prefixes through the `prefix` event\n      onPrefix: (prefix, uri) => { this.emit('prefix', prefix, uri); },\n    };\n\n    if (options && options.comments)\n      callbacks.onComment = comment => { this.emit('comment', comment); };\n\n    parser.parse({\n      on: (event, callback) => {\n        switch (event) {\n        case 'data': onData = callback; break;\n        case 'end':   onEnd = callback; break;\n        }\n      },\n    }, callbacks);\n\n    // Implement Transform methods through parser callbacks\n    this._transform = (chunk, encoding, done) => { onData(chunk); done(); };\n    this._flush = done => { onEnd(); done(); };\n  }\n\n  // ### Parses a stream of strings\n  import(stream) {\n    stream.on('data',  chunk => { this.write(chunk); });\n    stream.on('end',   ()      => { this.end(); });\n    stream.on('error', error => { this.emit('error', error); });\n    return this;\n  }\n}\n","// **N3StreamWriter** serializes a quad stream into a text stream.\nimport { Transform } from 'readable-stream';\nimport N3Writer from './N3Writer';\n\n// ## Constructor\nexport default class N3StreamWriter extends Transform {\n  constructor(options) {\n    super({ encoding: 'utf8', writableObjectMode: true });\n\n    // Set up writer with a dummy stream object\n    const writer = this._writer = new N3Writer({\n      write: (quad, encoding, callback) => { this.push(quad); callback && callback(); },\n      end: callback => { this.push(null); callback && callback(); },\n    }, options);\n\n    // Implement Transform methods on top of writer\n    this._transform = (quad, encoding, done) => { writer.addQuad(quad, done); };\n    this._flush = done => { writer.end(done); };\n  }\n\n// ### Serializes a stream of quads\n  import(stream) {\n    stream.on('data',   quad => { this.write(quad); });\n    stream.on('end',    () => { this.end(); });\n    stream.on('error',  error => { this.emit('error', error); });\n    stream.on('prefix', (prefix, iri) => { this._writer.addPrefix(prefix, iri); });\n    return this;\n  }\n}\n","import Lexer from './N3Lexer';\nimport Parser from './N3Parser';\nimport Writer from './N3Writer';\nimport Store, { N3EntityIndex as EntityIndex } from './N3Store';\nimport StoreFactory from './N3StoreFactory';\nimport Reasoner, { getRulesFromDataset } from './N3Reasoner';\nimport StreamParser from './N3StreamParser';\nimport StreamWriter from './N3StreamWriter';\nimport * as Util from './N3Util';\nimport BaseIRI from './BaseIRI';\n\nimport {\n  default as DataFactory,\n\n  Term,\n  NamedNode,\n  Literal,\n  BlankNode,\n  Variable,\n  DefaultGraph,\n  Quad,\n  Triple,\n\n  termFromId,\n  termToId,\n} from './N3DataFactory';\n\n// Named exports\nexport {\n  Lexer,\n  Parser,\n  Writer,\n  Store,\n  StoreFactory,\n  EntityIndex,\n  StreamParser,\n  StreamWriter,\n  Util,\n  Reasoner,\n  BaseIRI,\n\n  DataFactory,\n\n  Term,\n  NamedNode,\n  Literal,\n  BlankNode,\n  Variable,\n  DefaultGraph,\n  Quad,\n  Triple,\n\n  termFromId,\n  termToId,\n  getRulesFromDataset,\n};\n\n// Export all named exports as a default object for backward compatibility\nexport default {\n  Lexer,\n  Parser,\n  Writer,\n  Store,\n  StoreFactory,\n  EntityIndex,\n  StreamParser,\n  StreamWriter,\n  Util,\n  Reasoner,\n  BaseIRI,\n\n  DataFactory,\n\n  Term,\n  NamedNode,\n  Literal,\n  BlankNode,\n  Variable,\n  DefaultGraph,\n  Quad,\n  Triple,\n\n  termFromId,\n  termToId,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseN3 = void 0;\nconst bus_rdf_parse_1 = require(\"@comunica/bus-rdf-parse\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst n3_1 = require(\"n3\");\n/**\n * An N3 RDF Parse actor that listens on the 'rdf-parse' bus.\n *\n * It is able to parse N3-based RDF serializations and announce the presence of them by media type.\n */\nclass ActorRdfParseN3 extends bus_rdf_parse_1.ActorRdfParseFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"application/n-quads\": 1.0,\n     *       \"application/trig\": 0.95,\n     *       \"application/n-triples\": 0.8,\n     *       \"text/turtle\": 0.6,\n     *       \"text/n3\": 0.35\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"application/n-quads\": \"http://www.w3.org/ns/formats/N-Quads\",\n     *       \"application/trig\": \"http://www.w3.org/ns/formats/TriG\",\n     *       \"application/n-triples\": \"http://www.w3.org/ns/formats/N-Triples\",\n     *       \"text/turtle\": \"http://www.w3.org/ns/formats/Turtle\",\n     *       \"text/n3\": \"http://www.w3.org/ns/formats/N3\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async runHandle(action, mediaType, _context) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        action.data.on('error', error => data.emit('error', error));\n        const data = action.data.pipe(new n3_1.StreamParser({\n            factory: dataFactory,\n            baseIRI: action.metadata?.baseIRI,\n            // Enable RDF-star-mode on all formats, except N3, where this is not supported.\n            format: mediaType.endsWith('n3') ? mediaType : `${mediaType}*`,\n        }));\n        return {\n            data,\n            metadata: {\n                triples: mediaType === 'text/turtle' ||\n                    mediaType === 'application/n-triples' ||\n                    mediaType === 'text/n3',\n            },\n        };\n    }\n}\nexports.ActorRdfParseN3 = ActorRdfParseN3;\n//# sourceMappingURL=ActorRdfParseN3.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParseN3\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\n/**\n * Character classes and associated utilities for the 5th edition of XML 1.0.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//\n// Fragments.\n//\nexports.CHAR = \"\\t\\n\\r -\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\";\nexports.S = \" \\t\\r\\n\";\n// tslint:disable-next-line:max-line-length\nexports.NAME_START_CHAR = \":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NAME_CHAR = \"-\" + exports.NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.CHAR_RE = new RegExp(\"^[\" + exports.CHAR + \"]$\", \"u\");\nexports.S_RE = new RegExp(\"^[\" + exports.S + \"]+$\", \"u\");\nexports.NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"]$\", \"u\");\nexports.NAME_CHAR_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]$\", \"u\");\nexports.NAME_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"][\" + exports.NAME_CHAR + \"]*$\", \"u\");\nexports.NMTOKEN_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]+$\", \"u\");\nvar TAB = 9;\nvar NL = 0xA;\nvar CR = 0xD;\nvar SPACE = 0x20;\n//\n// Lists.\n//\n/** All characters in the ``S`` production. */\nexports.S_LIST = [SPACE, NL, CR, TAB];\n/**\n * Determines whether a codepoint matches the ``CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR``.\n */\nfunction isChar(c) {\n    return (c >= SPACE && c <= 0xD7FF) ||\n        c === NL || c === CR || c === TAB ||\n        (c >= 0xE000 && c <= 0xFFFD) ||\n        (c >= 0x10000 && c <= 0x10FFFF);\n}\nexports.isChar = isChar;\n/**\n * Determines whether a codepoint matches the ``S`` (space) production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``S``.\n */\nfunction isS(c) {\n    return c === SPACE || c === NL || c === CR || c === TAB;\n}\nexports.isS = isS;\n/**\n * Determines whether a codepoint matches the ``NAME_START_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_START_CHAR``.\n */\nfunction isNameStartChar(c) {\n    return ((c >= 0x41 && c <= 0x5A) ||\n        (c >= 0x61 && c <= 0x7A) ||\n        c === 0x3A ||\n        c === 0x5F ||\n        c === 0x200C ||\n        c === 0x200D ||\n        (c >= 0xC0 && c <= 0xD6) ||\n        (c >= 0xD8 && c <= 0xF6) ||\n        (c >= 0x00F8 && c <= 0x02FF) ||\n        (c >= 0x0370 && c <= 0x037D) ||\n        (c >= 0x037F && c <= 0x1FFF) ||\n        (c >= 0x2070 && c <= 0x218F) ||\n        (c >= 0x2C00 && c <= 0x2FEF) ||\n        (c >= 0x3001 && c <= 0xD7FF) ||\n        (c >= 0xF900 && c <= 0xFDCF) ||\n        (c >= 0xFDF0 && c <= 0xFFFD) ||\n        (c >= 0x10000 && c <= 0xEFFFF));\n}\nexports.isNameStartChar = isNameStartChar;\n/**\n * Determines whether a codepoint matches the ``NAME_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_CHAR``.\n */\nfunction isNameChar(c) {\n    return isNameStartChar(c) ||\n        (c >= 0x30 && c <= 0x39) ||\n        c === 0x2D ||\n        c === 0x2E ||\n        c === 0xB7 ||\n        (c >= 0x0300 && c <= 0x036F) ||\n        (c >= 0x203F && c <= 0x2040);\n}\nexports.isNameChar = isNameChar;\n//# sourceMappingURL=ed5.js.map","\"use strict\";\n/**\n * Character classes and associated utilities for the 2nd edition of XML 1.1.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//\n// Fragments.\n//\nexports.CHAR = \"\\u0001-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\";\nexports.RESTRICTED_CHAR = \"\\u0001-\\u0008\\u000B\\u000C\\u000E-\\u001F\\u007F-\\u0084\\u0086-\\u009F\";\nexports.S = \" \\t\\r\\n\";\n// tslint:disable-next-line:max-line-length\nexports.NAME_START_CHAR = \":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NAME_CHAR = \"-\" + exports.NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.CHAR_RE = new RegExp(\"^[\" + exports.CHAR + \"]$\", \"u\");\nexports.RESTRICTED_CHAR_RE = new RegExp(\"^[\" + exports.RESTRICTED_CHAR + \"]$\", \"u\");\nexports.S_RE = new RegExp(\"^[\" + exports.S + \"]+$\", \"u\");\nexports.NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"]$\", \"u\");\nexports.NAME_CHAR_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]$\", \"u\");\nexports.NAME_RE = new RegExp(\"^[\" + exports.NAME_START_CHAR + \"][\" + exports.NAME_CHAR + \"]*$\", \"u\");\nexports.NMTOKEN_RE = new RegExp(\"^[\" + exports.NAME_CHAR + \"]+$\", \"u\");\nvar TAB = 9;\nvar NL = 0xA;\nvar CR = 0xD;\nvar SPACE = 0x20;\n//\n// Lists.\n//\n/** All characters in the ``S`` production. */\nexports.S_LIST = [SPACE, NL, CR, TAB];\n/**\n * Determines whether a codepoint matches the ``CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR``.\n */\nfunction isChar(c) {\n    return (c >= 0x0001 && c <= 0xD7FF) ||\n        (c >= 0xE000 && c <= 0xFFFD) ||\n        (c >= 0x10000 && c <= 0x10FFFF);\n}\nexports.isChar = isChar;\n/**\n * Determines whether a codepoint matches the ``RESTRICTED_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``RESTRICTED_CHAR``.\n */\nfunction isRestrictedChar(c) {\n    return (c >= 0x1 && c <= 0x8) ||\n        c === 0xB ||\n        c === 0xC ||\n        (c >= 0xE && c <= 0x1F) ||\n        (c >= 0x7F && c <= 0x84) ||\n        (c >= 0x86 && c <= 0x9F);\n}\nexports.isRestrictedChar = isRestrictedChar;\n/**\n * Determines whether a codepoint matches the ``CHAR`` production and does not\n * match the ``RESTRICTED_CHAR`` production. ``isCharAndNotRestricted(x)`` is\n * equivalent to ``isChar(x) && !isRestrictedChar(x)``. This function is faster\n * than running the two-call equivalent.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``CHAR`` and does not match\n * ``RESTRICTED_CHAR``.\n */\nfunction isCharAndNotRestricted(c) {\n    return (c === 0x9) ||\n        (c === 0xA) ||\n        (c === 0xD) ||\n        (c > 0x1F && c < 0x7F) ||\n        (c === 0x85) ||\n        (c > 0x9F && c <= 0xD7FF) ||\n        (c >= 0xE000 && c <= 0xFFFD) ||\n        (c >= 0x10000 && c <= 0x10FFFF);\n}\nexports.isCharAndNotRestricted = isCharAndNotRestricted;\n/**\n * Determines whether a codepoint matches the ``S`` (space) production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``S``.\n */\nfunction isS(c) {\n    return c === SPACE || c === NL || c === CR || c === TAB;\n}\nexports.isS = isS;\n/**\n * Determines whether a codepoint matches the ``NAME_START_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_START_CHAR``.\n */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction isNameStartChar(c) {\n    return ((c >= 0x41 && c <= 0x5A) ||\n        (c >= 0x61 && c <= 0x7A) ||\n        c === 0x3A ||\n        c === 0x5F ||\n        c === 0x200C ||\n        c === 0x200D ||\n        (c >= 0xC0 && c <= 0xD6) ||\n        (c >= 0xD8 && c <= 0xF6) ||\n        (c >= 0x00F8 && c <= 0x02FF) ||\n        (c >= 0x0370 && c <= 0x037D) ||\n        (c >= 0x037F && c <= 0x1FFF) ||\n        (c >= 0x2070 && c <= 0x218F) ||\n        (c >= 0x2C00 && c <= 0x2FEF) ||\n        (c >= 0x3001 && c <= 0xD7FF) ||\n        (c >= 0xF900 && c <= 0xFDCF) ||\n        (c >= 0xFDF0 && c <= 0xFFFD) ||\n        (c >= 0x10000 && c <= 0xEFFFF));\n}\nexports.isNameStartChar = isNameStartChar;\n/**\n * Determines whether a codepoint matches the ``NAME_CHAR`` production.\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches ``NAME_CHAR``.\n */\nfunction isNameChar(c) {\n    return isNameStartChar(c) ||\n        (c >= 0x30 && c <= 0x39) ||\n        c === 0x2D ||\n        c === 0x2E ||\n        c === 0xB7 ||\n        (c >= 0x0300 && c <= 0x036F) ||\n        (c >= 0x203F && c <= 0x2040);\n}\nexports.isNameChar = isNameChar;\n//# sourceMappingURL=ed2.js.map","\"use strict\";\n/**\n * Character class utilities for XML NS 1.0 edition 3.\n *\n * @author Louis-Dominique Dubeau\n * @license MIT\n * @copyright Louis-Dominique Dubeau\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//\n// Fragments.\n//\n// tslint:disable-next-line:max-line-length\nexports.NC_NAME_START_CHAR = \"A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\uD800\\uDC00-\\uDB7F\\uDFFF\";\nexports.NC_NAME_CHAR = \"-\" + exports.NC_NAME_START_CHAR + \".0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040\";\n//\n// Regular expressions.\n//\nexports.NC_NAME_START_CHAR_RE = new RegExp(\"^[\" + exports.NC_NAME_START_CHAR + \"]$\", \"u\");\nexports.NC_NAME_CHAR_RE = new RegExp(\"^[\" + exports.NC_NAME_CHAR + \"]$\", \"u\");\nexports.NC_NAME_RE = new RegExp(\"^[\" + exports.NC_NAME_START_CHAR + \"][\" + exports.NC_NAME_CHAR + \"]*$\", \"u\");\n/**\n * Determines whether a codepoint matches [[NC_NAME_START_CHAR]].\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches.\n */\n// tslint:disable-next-line:cyclomatic-complexity\nfunction isNCNameStartChar(c) {\n    return ((c >= 0x41 && c <= 0x5A) ||\n        c === 0x5F ||\n        (c >= 0x61 && c <= 0x7A) ||\n        (c >= 0xC0 && c <= 0xD6) ||\n        (c >= 0xD8 && c <= 0xF6) ||\n        (c >= 0x00F8 && c <= 0x02FF) ||\n        (c >= 0x0370 && c <= 0x037D) ||\n        (c >= 0x037F && c <= 0x1FFF) ||\n        (c >= 0x200C && c <= 0x200D) ||\n        (c >= 0x2070 && c <= 0x218F) ||\n        (c >= 0x2C00 && c <= 0x2FEF) ||\n        (c >= 0x3001 && c <= 0xD7FF) ||\n        (c >= 0xF900 && c <= 0xFDCF) ||\n        (c >= 0xFDF0 && c <= 0xFFFD) ||\n        (c >= 0x10000 && c <= 0xEFFFF));\n}\nexports.isNCNameStartChar = isNCNameStartChar;\n/**\n * Determines whether a codepoint matches [[NC_NAME_CHAR]].\n *\n * @param c The code point.\n *\n * @returns ``true`` if the codepoint matches.\n */\nfunction isNCNameChar(c) {\n    return isNCNameStartChar(c) ||\n        (c === 0x2D ||\n            c === 0x2E ||\n            (c >= 0x30 && c <= 0x39) ||\n            c === 0x00B7 ||\n            (c >= 0x0300 && c <= 0x036F) ||\n            (c >= 0x203F && c <= 0x2040));\n}\nexports.isNCNameChar = isNCNameChar;\n//# sourceMappingURL=ed3.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SaxesParser = exports.EVENTS = void 0;\nconst ed5 = require(\"xmlchars/xml/1.0/ed5\");\nconst ed2 = require(\"xmlchars/xml/1.1/ed2\");\nconst NSed3 = require(\"xmlchars/xmlns/1.0/ed3\");\nvar isS = ed5.isS;\nvar isChar10 = ed5.isChar;\nvar isNameStartChar = ed5.isNameStartChar;\nvar isNameChar = ed5.isNameChar;\nvar S_LIST = ed5.S_LIST;\nvar NAME_RE = ed5.NAME_RE;\nvar isChar11 = ed2.isChar;\nvar isNCNameStartChar = NSed3.isNCNameStartChar;\nvar isNCNameChar = NSed3.isNCNameChar;\nvar NC_NAME_RE = NSed3.NC_NAME_RE;\nconst XML_NAMESPACE = \"http://www.w3.org/XML/1998/namespace\";\nconst XMLNS_NAMESPACE = \"http://www.w3.org/2000/xmlns/\";\nconst rootNS = {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n    __proto__: null,\n    xml: XML_NAMESPACE,\n    xmlns: XMLNS_NAMESPACE,\n};\nconst XML_ENTITIES = {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n    __proto__: null,\n    amp: \"&\",\n    gt: \">\",\n    lt: \"<\",\n    quot: \"\\\"\",\n    apos: \"'\",\n};\n// EOC: end-of-chunk\nconst EOC = -1;\nconst NL_LIKE = -2;\nconst S_BEGIN = 0; // Initial state.\nconst S_BEGIN_WHITESPACE = 1; // leading whitespace\nconst S_DOCTYPE = 2; // <!DOCTYPE\nconst S_DOCTYPE_QUOTE = 3; // <!DOCTYPE \"//blah\nconst S_DTD = 4; // <!DOCTYPE \"//blah\" [ ...\nconst S_DTD_QUOTED = 5; // <!DOCTYPE \"//blah\" [ \"foo\nconst S_DTD_OPEN_WAKA = 6;\nconst S_DTD_OPEN_WAKA_BANG = 7;\nconst S_DTD_COMMENT = 8; // <!--\nconst S_DTD_COMMENT_ENDING = 9; // <!-- blah -\nconst S_DTD_COMMENT_ENDED = 10; // <!-- blah --\nconst S_DTD_PI = 11; // <?\nconst S_DTD_PI_ENDING = 12; // <?hi \"there\" ?\nconst S_TEXT = 13; // general stuff\nconst S_ENTITY = 14; // &amp and such\nconst S_OPEN_WAKA = 15; // <\nconst S_OPEN_WAKA_BANG = 16; // <!...\nconst S_COMMENT = 17; // <!--\nconst S_COMMENT_ENDING = 18; // <!-- blah -\nconst S_COMMENT_ENDED = 19; // <!-- blah --\nconst S_CDATA = 20; // <![CDATA[ something\nconst S_CDATA_ENDING = 21; // ]\nconst S_CDATA_ENDING_2 = 22; // ]]\nconst S_PI_FIRST_CHAR = 23; // <?hi, first char\nconst S_PI_REST = 24; // <?hi, rest of the name\nconst S_PI_BODY = 25; // <?hi there\nconst S_PI_ENDING = 26; // <?hi \"there\" ?\nconst S_XML_DECL_NAME_START = 27; // <?xml\nconst S_XML_DECL_NAME = 28; // <?xml foo\nconst S_XML_DECL_EQ = 29; // <?xml foo=\nconst S_XML_DECL_VALUE_START = 30; // <?xml foo=\nconst S_XML_DECL_VALUE = 31; // <?xml foo=\"bar\"\nconst S_XML_DECL_SEPARATOR = 32; // <?xml foo=\"bar\"\nconst S_XML_DECL_ENDING = 33; // <?xml ... ?\nconst S_OPEN_TAG = 34; // <strong\nconst S_OPEN_TAG_SLASH = 35; // <strong /\nconst S_ATTRIB = 36; // <a\nconst S_ATTRIB_NAME = 37; // <a foo\nconst S_ATTRIB_NAME_SAW_WHITE = 38; // <a foo _\nconst S_ATTRIB_VALUE = 39; // <a foo=\nconst S_ATTRIB_VALUE_QUOTED = 40; // <a foo=\"bar\nconst S_ATTRIB_VALUE_CLOSED = 41; // <a foo=\"bar\"\nconst S_ATTRIB_VALUE_UNQUOTED = 42; // <a foo=bar\nconst S_CLOSE_TAG = 43; // </a\nconst S_CLOSE_TAG_SAW_WHITE = 44; // </a   >\nconst TAB = 9;\nconst NL = 0xA;\nconst CR = 0xD;\nconst SPACE = 0x20;\nconst BANG = 0x21;\nconst DQUOTE = 0x22;\nconst AMP = 0x26;\nconst SQUOTE = 0x27;\nconst MINUS = 0x2D;\nconst FORWARD_SLASH = 0x2F;\nconst SEMICOLON = 0x3B;\nconst LESS = 0x3C;\nconst EQUAL = 0x3D;\nconst GREATER = 0x3E;\nconst QUESTION = 0x3F;\nconst OPEN_BRACKET = 0x5B;\nconst CLOSE_BRACKET = 0x5D;\nconst NEL = 0x85;\nconst LS = 0x2028; // Line Separator\nconst isQuote = (c) => c === DQUOTE || c === SQUOTE;\nconst QUOTES = [DQUOTE, SQUOTE];\nconst DOCTYPE_TERMINATOR = [...QUOTES, OPEN_BRACKET, GREATER];\nconst DTD_TERMINATOR = [...QUOTES, LESS, CLOSE_BRACKET];\nconst XML_DECL_NAME_TERMINATOR = [EQUAL, QUESTION, ...S_LIST];\nconst ATTRIB_VALUE_UNQUOTED_TERMINATOR = [...S_LIST, GREATER, AMP, LESS];\nfunction nsPairCheck(parser, prefix, uri) {\n    switch (prefix) {\n        case \"xml\":\n            if (uri !== XML_NAMESPACE) {\n                parser.fail(`xml prefix must be bound to ${XML_NAMESPACE}.`);\n            }\n            break;\n        case \"xmlns\":\n            if (uri !== XMLNS_NAMESPACE) {\n                parser.fail(`xmlns prefix must be bound to ${XMLNS_NAMESPACE}.`);\n            }\n            break;\n        default:\n    }\n    switch (uri) {\n        case XMLNS_NAMESPACE:\n            parser.fail(prefix === \"\" ?\n                `the default namespace may not be set to ${uri}.` :\n                `may not assign a prefix (even \"xmlns\") to the URI \\\n${XMLNS_NAMESPACE}.`);\n            break;\n        case XML_NAMESPACE:\n            switch (prefix) {\n                case \"xml\":\n                    // Assinging the XML namespace to \"xml\" is fine.\n                    break;\n                case \"\":\n                    parser.fail(`the default namespace may not be set to ${uri}.`);\n                    break;\n                default:\n                    parser.fail(\"may not assign the xml namespace to another prefix.\");\n            }\n            break;\n        default:\n    }\n}\nfunction nsMappingCheck(parser, mapping) {\n    for (const local of Object.keys(mapping)) {\n        nsPairCheck(parser, local, mapping[local]);\n    }\n}\nconst isNCName = (name) => NC_NAME_RE.test(name);\nconst isName = (name) => NAME_RE.test(name);\nconst FORBIDDEN_START = 0;\nconst FORBIDDEN_BRACKET = 1;\nconst FORBIDDEN_BRACKET_BRACKET = 2;\n/**\n * The list of supported events.\n */\nexports.EVENTS = [\n    \"xmldecl\",\n    \"text\",\n    \"processinginstruction\",\n    \"doctype\",\n    \"comment\",\n    \"opentagstart\",\n    \"attribute\",\n    \"opentag\",\n    \"closetag\",\n    \"cdata\",\n    \"error\",\n    \"end\",\n    \"ready\",\n];\nconst EVENT_NAME_TO_HANDLER_NAME = {\n    xmldecl: \"xmldeclHandler\",\n    text: \"textHandler\",\n    processinginstruction: \"piHandler\",\n    doctype: \"doctypeHandler\",\n    comment: \"commentHandler\",\n    opentagstart: \"openTagStartHandler\",\n    attribute: \"attributeHandler\",\n    opentag: \"openTagHandler\",\n    closetag: \"closeTagHandler\",\n    cdata: \"cdataHandler\",\n    error: \"errorHandler\",\n    end: \"endHandler\",\n    ready: \"readyHandler\",\n};\n// eslint-disable-next-line @typescript-eslint/ban-types\nclass SaxesParser {\n    /**\n     * Indicates whether or not the parser is closed. If ``true``, wait for\n     * the ``ready`` event to write again.\n     */\n    get closed() {\n        return this._closed;\n    }\n    /**\n     * @param opt The parser options.\n     */\n    constructor(opt) {\n        this.opt = opt !== null && opt !== void 0 ? opt : {};\n        this.fragmentOpt = !!this.opt.fragment;\n        const xmlnsOpt = this.xmlnsOpt = !!this.opt.xmlns;\n        this.trackPosition = this.opt.position !== false;\n        this.fileName = this.opt.fileName;\n        if (xmlnsOpt) {\n            // This is the function we use to perform name checks on PIs and entities.\n            // When namespaces are used, colons are not allowed in PI target names or\n            // entity names. So the check depends on whether namespaces are used. See:\n            //\n            // https://www.w3.org/XML/xml-names-19990114-errata.html\n            // NE08\n            //\n            this.nameStartCheck = isNCNameStartChar;\n            this.nameCheck = isNCNameChar;\n            this.isName = isNCName;\n            // eslint-disable-next-line @typescript-eslint/unbound-method\n            this.processAttribs = this.processAttribsNS;\n            // eslint-disable-next-line @typescript-eslint/unbound-method\n            this.pushAttrib = this.pushAttribNS;\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment\n            this.ns = Object.assign({ __proto__: null }, rootNS);\n            const additional = this.opt.additionalNamespaces;\n            if (additional != null) {\n                nsMappingCheck(this, additional);\n                Object.assign(this.ns, additional);\n            }\n        }\n        else {\n            this.nameStartCheck = isNameStartChar;\n            this.nameCheck = isNameChar;\n            this.isName = isName;\n            // eslint-disable-next-line @typescript-eslint/unbound-method\n            this.processAttribs = this.processAttribsPlain;\n            // eslint-disable-next-line @typescript-eslint/unbound-method\n            this.pushAttrib = this.pushAttribPlain;\n        }\n        //\n        // The order of the members in this table needs to correspond to the state\n        // numbers given to the states that correspond to the methods being recorded\n        // here.\n        //\n        this.stateTable = [\n            /* eslint-disable @typescript-eslint/unbound-method */\n            this.sBegin,\n            this.sBeginWhitespace,\n            this.sDoctype,\n            this.sDoctypeQuote,\n            this.sDTD,\n            this.sDTDQuoted,\n            this.sDTDOpenWaka,\n            this.sDTDOpenWakaBang,\n            this.sDTDComment,\n            this.sDTDCommentEnding,\n            this.sDTDCommentEnded,\n            this.sDTDPI,\n            this.sDTDPIEnding,\n            this.sText,\n            this.sEntity,\n            this.sOpenWaka,\n            this.sOpenWakaBang,\n            this.sComment,\n            this.sCommentEnding,\n            this.sCommentEnded,\n            this.sCData,\n            this.sCDataEnding,\n            this.sCDataEnding2,\n            this.sPIFirstChar,\n            this.sPIRest,\n            this.sPIBody,\n            this.sPIEnding,\n            this.sXMLDeclNameStart,\n            this.sXMLDeclName,\n            this.sXMLDeclEq,\n            this.sXMLDeclValueStart,\n            this.sXMLDeclValue,\n            this.sXMLDeclSeparator,\n            this.sXMLDeclEnding,\n            this.sOpenTag,\n            this.sOpenTagSlash,\n            this.sAttrib,\n            this.sAttribName,\n            this.sAttribNameSawWhite,\n            this.sAttribValue,\n            this.sAttribValueQuoted,\n            this.sAttribValueClosed,\n            this.sAttribValueUnquoted,\n            this.sCloseTag,\n            this.sCloseTagSawWhite,\n            /* eslint-enable @typescript-eslint/unbound-method */\n        ];\n        this._init();\n    }\n    _init() {\n        var _a;\n        this.openWakaBang = \"\";\n        this.text = \"\";\n        this.name = \"\";\n        this.piTarget = \"\";\n        this.entity = \"\";\n        this.q = null;\n        this.tags = [];\n        this.tag = null;\n        this.topNS = null;\n        this.chunk = \"\";\n        this.chunkPosition = 0;\n        this.i = 0;\n        this.prevI = 0;\n        this.carriedFromPrevious = undefined;\n        this.forbiddenState = FORBIDDEN_START;\n        this.attribList = [];\n        // The logic is organized so as to minimize the need to check\n        // this.opt.fragment while parsing.\n        const { fragmentOpt } = this;\n        this.state = fragmentOpt ? S_TEXT : S_BEGIN;\n        // We want these to be all true if we are dealing with a fragment.\n        this.reportedTextBeforeRoot = this.reportedTextAfterRoot = this.closedRoot =\n            this.sawRoot = fragmentOpt;\n        // An XML declaration is intially possible only when parsing whole\n        // documents.\n        this.xmlDeclPossible = !fragmentOpt;\n        this.xmlDeclExpects = [\"version\"];\n        this.entityReturnState = undefined;\n        let { defaultXMLVersion } = this.opt;\n        if (defaultXMLVersion === undefined) {\n            if (this.opt.forceXMLVersion === true) {\n                throw new Error(\"forceXMLVersion set but defaultXMLVersion is not set\");\n            }\n            defaultXMLVersion = \"1.0\";\n        }\n        this.setXMLVersion(defaultXMLVersion);\n        this.positionAtNewLine = 0;\n        this.doctype = false;\n        this._closed = false;\n        this.xmlDecl = {\n            version: undefined,\n            encoding: undefined,\n            standalone: undefined,\n        };\n        this.line = 1;\n        this.column = 0;\n        this.ENTITIES = Object.create(XML_ENTITIES);\n        (_a = this.readyHandler) === null || _a === void 0 ? void 0 : _a.call(this);\n    }\n    /**\n     * The stream position the parser is currently looking at. This field is\n     * zero-based.\n     *\n     * This field is not based on counting Unicode characters but is to be\n     * interpreted as a plain index into a JavaScript string.\n     */\n    get position() {\n        return this.chunkPosition + this.i;\n    }\n    /**\n     * The column number of the next character to be read by the parser.  *\n     * This field is zero-based. (The first column in a line is 0.)\n     *\n     * This field reports the index at which the next character would be in the\n     * line if the line were represented as a JavaScript string.  Note that this\n     * *can* be different to a count based on the number of *Unicode characters*\n     * due to how JavaScript handles astral plane characters.\n     *\n     * See [[column]] for a number that corresponds to a count of Unicode\n     * characters.\n     */\n    get columnIndex() {\n        return this.position - this.positionAtNewLine;\n    }\n    /**\n     * Set an event listener on an event. The parser supports one handler per\n     * event type. If you try to set an event handler over an existing handler,\n     * the old handler is silently overwritten.\n     *\n     * @param name The event to listen to.\n     *\n     * @param handler The handler to set.\n     */\n    on(name, handler) {\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n        this[EVENT_NAME_TO_HANDLER_NAME[name]] = handler;\n    }\n    /**\n     * Unset an event handler.\n     *\n     * @parma name The event to stop listening to.\n     */\n    off(name) {\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n        this[EVENT_NAME_TO_HANDLER_NAME[name]] = undefined;\n    }\n    /**\n     * Make an error object. The error object will have a message that contains\n     * the ``fileName`` option passed at the creation of the parser. If position\n     * tracking was turned on, it will also have line and column number\n     * information.\n     *\n     * @param message The message describing the error to report.\n     *\n     * @returns An error object with a properly formatted message.\n     */\n    makeError(message) {\n        var _a;\n        let msg = (_a = this.fileName) !== null && _a !== void 0 ? _a : \"\";\n        if (this.trackPosition) {\n            if (msg.length > 0) {\n                msg += \":\";\n            }\n            msg += `${this.line}:${this.column}`;\n        }\n        if (msg.length > 0) {\n            msg += \": \";\n        }\n        return new Error(msg + message);\n    }\n    /**\n     * Report a parsing error. This method is made public so that client code may\n     * check for issues that are outside the scope of this project and can report\n     * errors.\n     *\n     * @param message The error to report.\n     *\n     * @returns this\n     */\n    fail(message) {\n        const err = this.makeError(message);\n        const handler = this.errorHandler;\n        if (handler === undefined) {\n            throw err;\n        }\n        else {\n            handler(err);\n        }\n        return this;\n    }\n    /**\n     * Write a XML data to the parser.\n     *\n     * @param chunk The XML data to write.\n     *\n     * @returns this\n     */\n    // We do need object for the type here. Yes, it often causes problems\n    // but not in this case.\n    write(chunk) {\n        if (this.closed) {\n            return this.fail(\"cannot write after close; assign an onready handler.\");\n        }\n        let end = false;\n        if (chunk === null) {\n            // We cannot return immediately because carriedFromPrevious may need\n            // processing.\n            end = true;\n            chunk = \"\";\n        }\n        else if (typeof chunk === \"object\") {\n            chunk = chunk.toString();\n        }\n        // We checked if performing a pre-decomposition of the string into an array\n        // of single complete characters (``Array.from(chunk)``) would be faster\n        // than the current repeated calls to ``charCodeAt``. As of August 2018, it\n        // isn't. (There may be Node-specific code that would perform faster than\n        // ``Array.from`` but don't want to be dependent on Node.)\n        if (this.carriedFromPrevious !== undefined) {\n            // The previous chunk had char we must carry over.\n            chunk = `${this.carriedFromPrevious}${chunk}`;\n            this.carriedFromPrevious = undefined;\n        }\n        let limit = chunk.length;\n        const lastCode = chunk.charCodeAt(limit - 1);\n        if (!end &&\n            // A trailing CR or surrogate must be carried over to the next\n            // chunk.\n            (lastCode === CR || (lastCode >= 0xD800 && lastCode <= 0xDBFF))) {\n            // The chunk ends with a character that must be carried over. We cannot\n            // know how to handle it until we get the next chunk or the end of the\n            // stream. So save it for later.\n            this.carriedFromPrevious = chunk[limit - 1];\n            limit--;\n            chunk = chunk.slice(0, limit);\n        }\n        const { stateTable } = this;\n        this.chunk = chunk;\n        this.i = 0;\n        while (this.i < limit) {\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument\n            stateTable[this.state].call(this);\n        }\n        this.chunkPosition += limit;\n        return end ? this.end() : this;\n    }\n    /**\n     * Close the current stream. Perform final well-formedness checks and reset\n     * the parser tstate.\n     *\n     * @returns this\n     */\n    close() {\n        return this.write(null);\n    }\n    /**\n     * Get a single code point out of the current chunk. This updates the current\n     * position if we do position tracking.\n     *\n     * This is the algorithm to use for XML 1.0.\n     *\n     * @returns The character read.\n     */\n    getCode10() {\n        const { chunk, i } = this;\n        this.prevI = i;\n        // Yes, we do this instead of doing this.i++. Doing it this way, we do not\n        // read this.i again, which is a bit faster.\n        this.i = i + 1;\n        if (i >= chunk.length) {\n            return EOC;\n        }\n        // Using charCodeAt and handling the surrogates ourselves is faster\n        // than using codePointAt.\n        const code = chunk.charCodeAt(i);\n        this.column++;\n        if (code < 0xD800) {\n            if (code >= SPACE || code === TAB) {\n                return code;\n            }\n            switch (code) {\n                case NL:\n                    this.line++;\n                    this.column = 0;\n                    this.positionAtNewLine = this.position;\n                    return NL;\n                case CR:\n                    // We may get NaN if we read past the end of the chunk, which is fine.\n                    if (chunk.charCodeAt(i + 1) === NL) {\n                        // A \\r\\n sequence is converted to \\n so we have to skip over the\n                        // next character. We already know it has a size of 1 so ++ is fine\n                        // here.\n                        this.i = i + 2;\n                    }\n                    // Otherwise, a \\r is just converted to \\n, so we don't have to skip\n                    // ahead.\n                    // In either case, \\r becomes \\n.\n                    this.line++;\n                    this.column = 0;\n                    this.positionAtNewLine = this.position;\n                    return NL_LIKE;\n                default:\n                    // If we get here, then code < SPACE and it is not NL CR or TAB.\n                    this.fail(\"disallowed character.\");\n                    return code;\n            }\n        }\n        if (code > 0xDBFF) {\n            // This is a specialized version of isChar10 that takes into account\n            // that in this context code > 0xDBFF and code <= 0xFFFF. So it does not\n            // test cases that don't need testing.\n            if (!(code >= 0xE000 && code <= 0xFFFD)) {\n                this.fail(\"disallowed character.\");\n            }\n            return code;\n        }\n        const final = 0x10000 + ((code - 0xD800) * 0x400) +\n            (chunk.charCodeAt(i + 1) - 0xDC00);\n        this.i = i + 2;\n        // This is a specialized version of isChar10 that takes into account that in\n        // this context necessarily final >= 0x10000.\n        if (final > 0x10FFFF) {\n            this.fail(\"disallowed character.\");\n        }\n        return final;\n    }\n    /**\n     * Get a single code point out of the current chunk. This updates the current\n     * position if we do position tracking.\n     *\n     * This is the algorithm to use for XML 1.1.\n     *\n     * @returns {number} The character read.\n     */\n    getCode11() {\n        const { chunk, i } = this;\n        this.prevI = i;\n        // Yes, we do this instead of doing this.i++. Doing it this way, we do not\n        // read this.i again, which is a bit faster.\n        this.i = i + 1;\n        if (i >= chunk.length) {\n            return EOC;\n        }\n        // Using charCodeAt and handling the surrogates ourselves is faster\n        // than using codePointAt.\n        const code = chunk.charCodeAt(i);\n        this.column++;\n        if (code < 0xD800) {\n            if ((code > 0x1F && code < 0x7F) || (code > 0x9F && code !== LS) ||\n                code === TAB) {\n                return code;\n            }\n            switch (code) {\n                case NL: // 0xA\n                    this.line++;\n                    this.column = 0;\n                    this.positionAtNewLine = this.position;\n                    return NL;\n                case CR: { // 0xD\n                    // We may get NaN if we read past the end of the chunk, which is\n                    // fine.\n                    const next = chunk.charCodeAt(i + 1);\n                    if (next === NL || next === NEL) {\n                        // A CR NL or CR NEL sequence is converted to NL so we have to skip\n                        // over the next character. We already know it has a size of 1.\n                        this.i = i + 2;\n                    }\n                    // Otherwise, a CR is just converted to NL, no skip.\n                }\n                /* yes, fall through */\n                case NEL: // 0x85\n                case LS: // Ox2028\n                    this.line++;\n                    this.column = 0;\n                    this.positionAtNewLine = this.position;\n                    return NL_LIKE;\n                default:\n                    this.fail(\"disallowed character.\");\n                    return code;\n            }\n        }\n        if (code > 0xDBFF) {\n            // This is a specialized version of isCharAndNotRestricted that takes into\n            // account that in this context code > 0xDBFF and code <= 0xFFFF. So it\n            // does not test cases that don't need testing.\n            if (!(code >= 0xE000 && code <= 0xFFFD)) {\n                this.fail(\"disallowed character.\");\n            }\n            return code;\n        }\n        const final = 0x10000 + ((code - 0xD800) * 0x400) +\n            (chunk.charCodeAt(i + 1) - 0xDC00);\n        this.i = i + 2;\n        // This is a specialized version of isCharAndNotRestricted that takes into\n        // account that in this context necessarily final >= 0x10000.\n        if (final > 0x10FFFF) {\n            this.fail(\"disallowed character.\");\n        }\n        return final;\n    }\n    /**\n     * Like ``getCode`` but with the return value normalized so that ``NL`` is\n     * returned for ``NL_LIKE``.\n     */\n    getCodeNorm() {\n        const c = this.getCode();\n        return c === NL_LIKE ? NL : c;\n    }\n    unget() {\n        this.i = this.prevI;\n        this.column--;\n    }\n    /**\n     * Capture characters into a buffer until encountering one of a set of\n     * characters.\n     *\n     * @param chars An array of codepoints. Encountering a character in the array\n     * ends the capture. (``chars`` may safely contain ``NL``.)\n     *\n     * @return The character code that made the capture end, or ``EOC`` if we hit\n     * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n     * instead.\n     */\n    captureTo(chars) {\n        let { i: start } = this;\n        const { chunk } = this;\n        // eslint-disable-next-line no-constant-condition\n        while (true) {\n            const c = this.getCode();\n            const isNLLike = c === NL_LIKE;\n            const final = isNLLike ? NL : c;\n            if (final === EOC || chars.includes(final)) {\n                this.text += chunk.slice(start, this.prevI);\n                return final;\n            }\n            if (isNLLike) {\n                this.text += `${chunk.slice(start, this.prevI)}\\n`;\n                start = this.i;\n            }\n        }\n    }\n    /**\n     * Capture characters into a buffer until encountering a character.\n     *\n     * @param char The codepoint that ends the capture. **NOTE ``char`` MAY NOT\n     * CONTAIN ``NL``.** Passing ``NL`` will result in buggy behavior.\n     *\n     * @return ``true`` if we ran into the character. Otherwise, we ran into the\n     * end of the current chunk.\n     */\n    captureToChar(char) {\n        let { i: start } = this;\n        const { chunk } = this;\n        // eslint-disable-next-line no-constant-condition\n        while (true) {\n            let c = this.getCode();\n            switch (c) {\n                case NL_LIKE:\n                    this.text += `${chunk.slice(start, this.prevI)}\\n`;\n                    start = this.i;\n                    c = NL;\n                    break;\n                case EOC:\n                    this.text += chunk.slice(start);\n                    return false;\n                default:\n            }\n            if (c === char) {\n                this.text += chunk.slice(start, this.prevI);\n                return true;\n            }\n        }\n    }\n    /**\n     * Capture characters that satisfy ``isNameChar`` into the ``name`` field of\n     * this parser.\n     *\n     * @return The character code that made the test fail, or ``EOC`` if we hit\n     * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n     * instead.\n     */\n    captureNameChars() {\n        const { chunk, i: start } = this;\n        // eslint-disable-next-line no-constant-condition\n        while (true) {\n            const c = this.getCode();\n            if (c === EOC) {\n                this.name += chunk.slice(start);\n                return EOC;\n            }\n            // NL is not a name char so we don't have to test specifically for it.\n            if (!isNameChar(c)) {\n                this.name += chunk.slice(start, this.prevI);\n                return c === NL_LIKE ? NL : c;\n            }\n        }\n    }\n    /**\n     * Skip white spaces.\n     *\n     * @return The character that ended the skip, or ``EOC`` if we hit\n     * the end of the chunk. The return value cannot be NL_LIKE: NL is returned\n     * instead.\n     */\n    skipSpaces() {\n        // eslint-disable-next-line no-constant-condition\n        while (true) {\n            const c = this.getCodeNorm();\n            if (c === EOC || !isS(c)) {\n                return c;\n            }\n        }\n    }\n    setXMLVersion(version) {\n        this.currentXMLVersion = version;\n        /*  eslint-disable @typescript-eslint/unbound-method */\n        if (version === \"1.0\") {\n            this.isChar = isChar10;\n            this.getCode = this.getCode10;\n        }\n        else {\n            this.isChar = isChar11;\n            this.getCode = this.getCode11;\n        }\n        /* eslint-enable @typescript-eslint/unbound-method */\n    }\n    // STATE ENGINE METHODS\n    // This needs to be a state separate from S_BEGIN_WHITESPACE because we want\n    // to be sure never to come back to this state later.\n    sBegin() {\n        // We are essentially peeking at the first character of the chunk. Since\n        // S_BEGIN can be in effect only when we start working on the first chunk,\n        // the index at which we must look is necessarily 0. Note also that the\n        // following test does not depend on decoding surrogates.\n        // If the initial character is 0xFEFF, ignore it.\n        if (this.chunk.charCodeAt(0) === 0xFEFF) {\n            this.i++;\n            this.column++;\n        }\n        this.state = S_BEGIN_WHITESPACE;\n    }\n    sBeginWhitespace() {\n        // We need to know whether we've encountered spaces or not because as soon\n        // as we run into a space, an XML declaration is no longer possible. Rather\n        // than slow down skipSpaces even in places where we don't care whether it\n        // skipped anything or not, we check whether prevI is equal to the value of\n        // i from before we skip spaces.\n        const iBefore = this.i;\n        const c = this.skipSpaces();\n        if (this.prevI !== iBefore) {\n            this.xmlDeclPossible = false;\n        }\n        switch (c) {\n            case LESS:\n                this.state = S_OPEN_WAKA;\n                // We could naively call closeText but in this state, it is not normal\n                // to have text be filled with any data.\n                if (this.text.length !== 0) {\n                    throw new Error(\"no-empty text at start\");\n                }\n                break;\n            case EOC:\n                break;\n            default:\n                this.unget();\n                this.state = S_TEXT;\n                this.xmlDeclPossible = false;\n        }\n    }\n    sDoctype() {\n        var _a;\n        const c = this.captureTo(DOCTYPE_TERMINATOR);\n        switch (c) {\n            case GREATER: {\n                (_a = this.doctypeHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n                this.text = \"\";\n                this.state = S_TEXT;\n                this.doctype = true; // just remember that we saw it.\n                break;\n            }\n            case EOC:\n                break;\n            default:\n                this.text += String.fromCodePoint(c);\n                if (c === OPEN_BRACKET) {\n                    this.state = S_DTD;\n                }\n                else if (isQuote(c)) {\n                    this.state = S_DOCTYPE_QUOTE;\n                    this.q = c;\n                }\n        }\n    }\n    sDoctypeQuote() {\n        const q = this.q;\n        if (this.captureToChar(q)) {\n            this.text += String.fromCodePoint(q);\n            this.q = null;\n            this.state = S_DOCTYPE;\n        }\n    }\n    sDTD() {\n        const c = this.captureTo(DTD_TERMINATOR);\n        if (c === EOC) {\n            return;\n        }\n        this.text += String.fromCodePoint(c);\n        if (c === CLOSE_BRACKET) {\n            this.state = S_DOCTYPE;\n        }\n        else if (c === LESS) {\n            this.state = S_DTD_OPEN_WAKA;\n        }\n        else if (isQuote(c)) {\n            this.state = S_DTD_QUOTED;\n            this.q = c;\n        }\n    }\n    sDTDQuoted() {\n        const q = this.q;\n        if (this.captureToChar(q)) {\n            this.text += String.fromCodePoint(q);\n            this.state = S_DTD;\n            this.q = null;\n        }\n    }\n    sDTDOpenWaka() {\n        const c = this.getCodeNorm();\n        this.text += String.fromCodePoint(c);\n        switch (c) {\n            case BANG:\n                this.state = S_DTD_OPEN_WAKA_BANG;\n                this.openWakaBang = \"\";\n                break;\n            case QUESTION:\n                this.state = S_DTD_PI;\n                break;\n            default:\n                this.state = S_DTD;\n        }\n    }\n    sDTDOpenWakaBang() {\n        const char = String.fromCodePoint(this.getCodeNorm());\n        const owb = this.openWakaBang += char;\n        this.text += char;\n        if (owb !== \"-\") {\n            this.state = owb === \"--\" ? S_DTD_COMMENT : S_DTD;\n            this.openWakaBang = \"\";\n        }\n    }\n    sDTDComment() {\n        if (this.captureToChar(MINUS)) {\n            this.text += \"-\";\n            this.state = S_DTD_COMMENT_ENDING;\n        }\n    }\n    sDTDCommentEnding() {\n        const c = this.getCodeNorm();\n        this.text += String.fromCodePoint(c);\n        this.state = c === MINUS ? S_DTD_COMMENT_ENDED : S_DTD_COMMENT;\n    }\n    sDTDCommentEnded() {\n        const c = this.getCodeNorm();\n        this.text += String.fromCodePoint(c);\n        if (c === GREATER) {\n            this.state = S_DTD;\n        }\n        else {\n            this.fail(\"malformed comment.\");\n            // <!-- blah -- bloo --> will be recorded as\n            // a comment of \" blah -- bloo \"\n            this.state = S_DTD_COMMENT;\n        }\n    }\n    sDTDPI() {\n        if (this.captureToChar(QUESTION)) {\n            this.text += \"?\";\n            this.state = S_DTD_PI_ENDING;\n        }\n    }\n    sDTDPIEnding() {\n        const c = this.getCodeNorm();\n        this.text += String.fromCodePoint(c);\n        if (c === GREATER) {\n            this.state = S_DTD;\n        }\n    }\n    sText() {\n        //\n        // We did try a version of saxes where the S_TEXT state was split in two\n        // states: one for text inside the root element, and one for text\n        // outside. This was avoiding having to test this.tags.length to decide\n        // what implementation to actually use.\n        //\n        // Peformance testing on gigabyte-size files did not show any advantage to\n        // using the two states solution instead of the current one. Conversely, it\n        // made the code a bit more complicated elsewhere. For instance, a comment\n        // can appear before the root element so when a comment ended it was\n        // necessary to determine whether to return to the S_TEXT state or to the\n        // new text-outside-root state.\n        //\n        if (this.tags.length !== 0) {\n            this.handleTextInRoot();\n        }\n        else {\n            this.handleTextOutsideRoot();\n        }\n    }\n    sEntity() {\n        // This is essentially a specialized version of captureToChar(SEMICOLON...)\n        let { i: start } = this;\n        const { chunk } = this;\n        // eslint-disable-next-line no-labels, no-restricted-syntax\n        loop: \n        // eslint-disable-next-line no-constant-condition\n        while (true) {\n            switch (this.getCode()) {\n                case NL_LIKE:\n                    this.entity += `${chunk.slice(start, this.prevI)}\\n`;\n                    start = this.i;\n                    break;\n                case SEMICOLON: {\n                    const { entityReturnState } = this;\n                    const entity = this.entity + chunk.slice(start, this.prevI);\n                    this.state = entityReturnState;\n                    let parsed;\n                    if (entity === \"\") {\n                        this.fail(\"empty entity name.\");\n                        parsed = \"&;\";\n                    }\n                    else {\n                        parsed = this.parseEntity(entity);\n                        this.entity = \"\";\n                    }\n                    if (entityReturnState !== S_TEXT || this.textHandler !== undefined) {\n                        this.text += parsed;\n                    }\n                    // eslint-disable-next-line no-labels\n                    break loop;\n                }\n                case EOC:\n                    this.entity += chunk.slice(start);\n                    // eslint-disable-next-line no-labels\n                    break loop;\n                default:\n            }\n        }\n    }\n    sOpenWaka() {\n        // Reminder: a state handler is called with at least one character\n        // available in the current chunk. So the first call to get code inside of\n        // a state handler cannot return ``EOC``. That's why we don't test\n        // for it.\n        const c = this.getCode();\n        // either a /, ?, !, or text is coming next.\n        if (isNameStartChar(c)) {\n            this.state = S_OPEN_TAG;\n            this.unget();\n            this.xmlDeclPossible = false;\n        }\n        else {\n            switch (c) {\n                case FORWARD_SLASH:\n                    this.state = S_CLOSE_TAG;\n                    this.xmlDeclPossible = false;\n                    break;\n                case BANG:\n                    this.state = S_OPEN_WAKA_BANG;\n                    this.openWakaBang = \"\";\n                    this.xmlDeclPossible = false;\n                    break;\n                case QUESTION:\n                    this.state = S_PI_FIRST_CHAR;\n                    break;\n                default:\n                    this.fail(\"disallowed character in tag name\");\n                    this.state = S_TEXT;\n                    this.xmlDeclPossible = false;\n            }\n        }\n    }\n    sOpenWakaBang() {\n        this.openWakaBang += String.fromCodePoint(this.getCodeNorm());\n        switch (this.openWakaBang) {\n            case \"[CDATA[\":\n                if (!this.sawRoot && !this.reportedTextBeforeRoot) {\n                    this.fail(\"text data outside of root node.\");\n                    this.reportedTextBeforeRoot = true;\n                }\n                if (this.closedRoot && !this.reportedTextAfterRoot) {\n                    this.fail(\"text data outside of root node.\");\n                    this.reportedTextAfterRoot = true;\n                }\n                this.state = S_CDATA;\n                this.openWakaBang = \"\";\n                break;\n            case \"--\":\n                this.state = S_COMMENT;\n                this.openWakaBang = \"\";\n                break;\n            case \"DOCTYPE\":\n                this.state = S_DOCTYPE;\n                if (this.doctype || this.sawRoot) {\n                    this.fail(\"inappropriately located doctype declaration.\");\n                }\n                this.openWakaBang = \"\";\n                break;\n            default:\n                // 7 happens to be the maximum length of the string that can possibly\n                // match one of the cases above.\n                if (this.openWakaBang.length >= 7) {\n                    this.fail(\"incorrect syntax.\");\n                }\n        }\n    }\n    sComment() {\n        if (this.captureToChar(MINUS)) {\n            this.state = S_COMMENT_ENDING;\n        }\n    }\n    sCommentEnding() {\n        var _a;\n        const c = this.getCodeNorm();\n        if (c === MINUS) {\n            this.state = S_COMMENT_ENDED;\n            (_a = this.commentHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n            this.text = \"\";\n        }\n        else {\n            this.text += `-${String.fromCodePoint(c)}`;\n            this.state = S_COMMENT;\n        }\n    }\n    sCommentEnded() {\n        const c = this.getCodeNorm();\n        if (c !== GREATER) {\n            this.fail(\"malformed comment.\");\n            // <!-- blah -- bloo --> will be recorded as\n            // a comment of \" blah -- bloo \"\n            this.text += `--${String.fromCodePoint(c)}`;\n            this.state = S_COMMENT;\n        }\n        else {\n            this.state = S_TEXT;\n        }\n    }\n    sCData() {\n        if (this.captureToChar(CLOSE_BRACKET)) {\n            this.state = S_CDATA_ENDING;\n        }\n    }\n    sCDataEnding() {\n        const c = this.getCodeNorm();\n        if (c === CLOSE_BRACKET) {\n            this.state = S_CDATA_ENDING_2;\n        }\n        else {\n            this.text += `]${String.fromCodePoint(c)}`;\n            this.state = S_CDATA;\n        }\n    }\n    sCDataEnding2() {\n        var _a;\n        const c = this.getCodeNorm();\n        switch (c) {\n            case GREATER: {\n                (_a = this.cdataHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);\n                this.text = \"\";\n                this.state = S_TEXT;\n                break;\n            }\n            case CLOSE_BRACKET:\n                this.text += \"]\";\n                break;\n            default:\n                this.text += `]]${String.fromCodePoint(c)}`;\n                this.state = S_CDATA;\n        }\n    }\n    // We need this separate state to check the first character fo the pi target\n    // with this.nameStartCheck which allows less characters than this.nameCheck.\n    sPIFirstChar() {\n        const c = this.getCodeNorm();\n        // This is first because in the case where the file is well-formed this is\n        // the branch taken. We optimize for well-formedness.\n        if (this.nameStartCheck(c)) {\n            this.piTarget += String.fromCodePoint(c);\n            this.state = S_PI_REST;\n        }\n        else if (c === QUESTION || isS(c)) {\n            this.fail(\"processing instruction without a target.\");\n            this.state = c === QUESTION ? S_PI_ENDING : S_PI_BODY;\n        }\n        else {\n            this.fail(\"disallowed character in processing instruction name.\");\n            this.piTarget += String.fromCodePoint(c);\n            this.state = S_PI_REST;\n        }\n    }\n    sPIRest() {\n        // Capture characters into a piTarget while ``this.nameCheck`` run on the\n        // character read returns true.\n        const { chunk, i: start } = this;\n        // eslint-disable-next-line no-constant-condition\n        while (true) {\n            const c = this.getCodeNorm();\n            if (c === EOC) {\n                this.piTarget += chunk.slice(start);\n                return;\n            }\n            // NL cannot satisfy this.nameCheck so we don't have to test specifically\n            // for it.\n            if (!this.nameCheck(c)) {\n                this.piTarget += chunk.slice(start, this.prevI);\n                const isQuestion = c === QUESTION;\n                if (isQuestion || isS(c)) {\n                    if (this.piTarget === \"xml\") {\n                        if (!this.xmlDeclPossible) {\n                            this.fail(\"an XML declaration must be at the start of the document.\");\n                        }\n                        this.state = isQuestion ? S_XML_DECL_ENDING : S_XML_DECL_NAME_START;\n                    }\n                    else {\n                        this.state = isQuestion ? S_PI_ENDING : S_PI_BODY;\n                    }\n                }\n                else {\n                    this.fail(\"disallowed character in processing instruction name.\");\n                    this.piTarget += String.fromCodePoint(c);\n                }\n                break;\n            }\n        }\n    }\n    sPIBody() {\n        if (this.text.length === 0) {\n            const c = this.getCodeNorm();\n            if (c === QUESTION) {\n                this.state = S_PI_ENDING;\n            }\n            else if (!isS(c)) {\n                this.text = String.fromCodePoint(c);\n            }\n        }\n        // The question mark character is not valid inside any of the XML\n        // declaration name/value pairs.\n        else if (this.captureToChar(QUESTION)) {\n            this.state = S_PI_ENDING;\n        }\n    }\n    sPIEnding() {\n        var _a;\n        const c = this.getCodeNorm();\n        if (c === GREATER) {\n            const { piTarget } = this;\n            if (piTarget.toLowerCase() === \"xml\") {\n                this.fail(\"the XML declaration must appear at the start of the document.\");\n            }\n            (_a = this.piHandler) === null || _a === void 0 ? void 0 : _a.call(this, {\n                target: piTarget,\n                body: this.text,\n            });\n            this.piTarget = this.text = \"\";\n            this.state = S_TEXT;\n        }\n        else if (c === QUESTION) {\n            // We ran into ?? as part of a processing instruction. We initially took\n            // the first ? as a sign that the PI was ending, but it is not. So we have\n            // to add it to the body but we take the new ? as a sign that the PI is\n            // ending.\n            this.text += \"?\";\n        }\n        else {\n            this.text += `?${String.fromCodePoint(c)}`;\n            this.state = S_PI_BODY;\n        }\n        this.xmlDeclPossible = false;\n    }\n    sXMLDeclNameStart() {\n        const c = this.skipSpaces();\n        // The question mark character is not valid inside any of the XML\n        // declaration name/value pairs.\n        if (c === QUESTION) {\n            // It is valid to go to S_XML_DECL_ENDING from this state.\n            this.state = S_XML_DECL_ENDING;\n            return;\n        }\n        if (c !== EOC) {\n            this.state = S_XML_DECL_NAME;\n            this.name = String.fromCodePoint(c);\n        }\n    }\n    sXMLDeclName() {\n        const c = this.captureTo(XML_DECL_NAME_TERMINATOR);\n        // The question mark character is not valid inside any of the XML\n        // declaration name/value pairs.\n        if (c === QUESTION) {\n            this.state = S_XML_DECL_ENDING;\n            this.name += this.text;\n            this.text = \"\";\n            this.fail(\"XML declaration is incomplete.\");\n            return;\n        }\n        if (!(isS(c) || c === EQUAL)) {\n            return;\n        }\n        this.name += this.text;\n        this.text = \"\";\n        if (!this.xmlDeclExpects.includes(this.name)) {\n            switch (this.name.length) {\n                case 0:\n                    this.fail(\"did not expect any more name/value pairs.\");\n                    break;\n                case 1:\n                    this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);\n                    break;\n                default:\n                    this.fail(`expected one of ${this.xmlDeclExpects.join(\", \")}`);\n            }\n        }\n        this.state = c === EQUAL ? S_XML_DECL_VALUE_START : S_XML_DECL_EQ;\n    }\n    sXMLDeclEq() {\n        const c = this.getCodeNorm();\n        // The question mark character is not valid inside any of the XML\n        // declaration name/value pairs.\n        if (c === QUESTION) {\n            this.state = S_XML_DECL_ENDING;\n            this.fail(\"XML declaration is incomplete.\");\n            return;\n        }\n        if (isS(c)) {\n            return;\n        }\n        if (c !== EQUAL) {\n            this.fail(\"value required.\");\n        }\n        this.state = S_XML_DECL_VALUE_START;\n    }\n    sXMLDeclValueStart() {\n        const c = this.getCodeNorm();\n        // The question mark character is not valid inside any of the XML\n        // declaration name/value pairs.\n        if (c === QUESTION) {\n            this.state = S_XML_DECL_ENDING;\n            this.fail(\"XML declaration is incomplete.\");\n            return;\n        }\n        if (isS(c)) {\n            return;\n        }\n        if (!isQuote(c)) {\n            this.fail(\"value must be quoted.\");\n            this.q = SPACE;\n        }\n        else {\n            this.q = c;\n        }\n        this.state = S_XML_DECL_VALUE;\n    }\n    sXMLDeclValue() {\n        const c = this.captureTo([this.q, QUESTION]);\n        // The question mark character is not valid inside any of the XML\n        // declaration name/value pairs.\n        if (c === QUESTION) {\n            this.state = S_XML_DECL_ENDING;\n            this.text = \"\";\n            this.fail(\"XML declaration is incomplete.\");\n            return;\n        }\n        if (c === EOC) {\n            return;\n        }\n        const value = this.text;\n        this.text = \"\";\n        switch (this.name) {\n            case \"version\": {\n                this.xmlDeclExpects = [\"encoding\", \"standalone\"];\n                const version = value;\n                this.xmlDecl.version = version;\n                // This is the test specified by XML 1.0 but it is fine for XML 1.1.\n                if (!/^1\\.[0-9]+$/.test(version)) {\n                    this.fail(\"version number must match /^1\\\\.[0-9]+$/.\");\n                }\n                // When forceXMLVersion is set, the XML declaration is ignored.\n                else if (!this.opt.forceXMLVersion) {\n                    this.setXMLVersion(version);\n                }\n                break;\n            }\n            case \"encoding\":\n                if (!/^[A-Za-z][A-Za-z0-9._-]*$/.test(value)) {\n                    this.fail(\"encoding value must match \\\n/^[A-Za-z0-9][A-Za-z0-9._-]*$/.\");\n                }\n                this.xmlDeclExpects = [\"standalone\"];\n                this.xmlDecl.encoding = value;\n                break;\n            case \"standalone\":\n                if (value !== \"yes\" && value !== \"no\") {\n                    this.fail(\"standalone value must match \\\"yes\\\" or \\\"no\\\".\");\n                }\n                this.xmlDeclExpects = [];\n                this.xmlDecl.standalone = value;\n                break;\n            default:\n            // We don't need to raise an error here since we've already raised one\n            // when checking what name was expected.\n        }\n        this.name = \"\";\n        this.state = S_XML_DECL_SEPARATOR;\n    }\n    sXMLDeclSeparator() {\n        const c = this.getCodeNorm();\n        // The question mark character is not valid inside any of the XML\n        // declaration name/value pairs.\n        if (c === QUESTION) {\n            // It is valid to go to S_XML_DECL_ENDING from this state.\n            this.state = S_XML_DECL_ENDING;\n            return;\n        }\n        if (!isS(c)) {\n            this.fail(\"whitespace required.\");\n            this.unget();\n        }\n        this.state = S_XML_DECL_NAME_START;\n    }\n    sXMLDeclEnding() {\n        var _a;\n        const c = this.getCodeNorm();\n        if (c === GREATER) {\n            if (this.piTarget !== \"xml\") {\n                this.fail(\"processing instructions are not allowed before root.\");\n            }\n            else if (this.name !== \"version\" &&\n                this.xmlDeclExpects.includes(\"version\")) {\n                this.fail(\"XML declaration must contain a version.\");\n            }\n            (_a = this.xmldeclHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.xmlDecl);\n            this.name = \"\";\n            this.piTarget = this.text = \"\";\n            this.state = S_TEXT;\n        }\n        else {\n            // We got here because the previous character was a ?, but the question\n            // mark character is not valid inside any of the XML declaration\n            // name/value pairs.\n            this.fail(\"The character ? is disallowed anywhere in XML declarations.\");\n        }\n        this.xmlDeclPossible = false;\n    }\n    sOpenTag() {\n        var _a;\n        const c = this.captureNameChars();\n        if (c === EOC) {\n            return;\n        }\n        const tag = this.tag = {\n            name: this.name,\n            attributes: Object.create(null),\n        };\n        this.name = \"\";\n        if (this.xmlnsOpt) {\n            this.topNS = tag.ns = Object.create(null);\n        }\n        (_a = this.openTagStartHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n        this.sawRoot = true;\n        if (!this.fragmentOpt && this.closedRoot) {\n            this.fail(\"documents may contain only one root.\");\n        }\n        switch (c) {\n            case GREATER:\n                this.openTag();\n                break;\n            case FORWARD_SLASH:\n                this.state = S_OPEN_TAG_SLASH;\n                break;\n            default:\n                if (!isS(c)) {\n                    this.fail(\"disallowed character in tag name.\");\n                }\n                this.state = S_ATTRIB;\n        }\n    }\n    sOpenTagSlash() {\n        if (this.getCode() === GREATER) {\n            this.openSelfClosingTag();\n        }\n        else {\n            this.fail(\"forward-slash in opening tag not followed by >.\");\n            this.state = S_ATTRIB;\n        }\n    }\n    sAttrib() {\n        const c = this.skipSpaces();\n        if (c === EOC) {\n            return;\n        }\n        if (isNameStartChar(c)) {\n            this.unget();\n            this.state = S_ATTRIB_NAME;\n        }\n        else if (c === GREATER) {\n            this.openTag();\n        }\n        else if (c === FORWARD_SLASH) {\n            this.state = S_OPEN_TAG_SLASH;\n        }\n        else {\n            this.fail(\"disallowed character in attribute name.\");\n        }\n    }\n    sAttribName() {\n        const c = this.captureNameChars();\n        if (c === EQUAL) {\n            this.state = S_ATTRIB_VALUE;\n        }\n        else if (isS(c)) {\n            this.state = S_ATTRIB_NAME_SAW_WHITE;\n        }\n        else if (c === GREATER) {\n            this.fail(\"attribute without value.\");\n            this.pushAttrib(this.name, this.name);\n            this.name = this.text = \"\";\n            this.openTag();\n        }\n        else if (c !== EOC) {\n            this.fail(\"disallowed character in attribute name.\");\n        }\n    }\n    sAttribNameSawWhite() {\n        const c = this.skipSpaces();\n        switch (c) {\n            case EOC:\n                return;\n            case EQUAL:\n                this.state = S_ATTRIB_VALUE;\n                break;\n            default:\n                this.fail(\"attribute without value.\");\n                // Should we do this???\n                // this.tag.attributes[this.name] = \"\";\n                this.text = \"\";\n                this.name = \"\";\n                if (c === GREATER) {\n                    this.openTag();\n                }\n                else if (isNameStartChar(c)) {\n                    this.unget();\n                    this.state = S_ATTRIB_NAME;\n                }\n                else {\n                    this.fail(\"disallowed character in attribute name.\");\n                    this.state = S_ATTRIB;\n                }\n        }\n    }\n    sAttribValue() {\n        const c = this.getCodeNorm();\n        if (isQuote(c)) {\n            this.q = c;\n            this.state = S_ATTRIB_VALUE_QUOTED;\n        }\n        else if (!isS(c)) {\n            this.fail(\"unquoted attribute value.\");\n            this.state = S_ATTRIB_VALUE_UNQUOTED;\n            this.unget();\n        }\n    }\n    sAttribValueQuoted() {\n        // We deliberately do not use captureTo here. The specialized code we use\n        // here is faster than using captureTo.\n        const { q, chunk } = this;\n        let { i: start } = this;\n        // eslint-disable-next-line no-constant-condition\n        while (true) {\n            switch (this.getCode()) {\n                case q:\n                    this.pushAttrib(this.name, this.text + chunk.slice(start, this.prevI));\n                    this.name = this.text = \"\";\n                    this.q = null;\n                    this.state = S_ATTRIB_VALUE_CLOSED;\n                    return;\n                case AMP:\n                    this.text += chunk.slice(start, this.prevI);\n                    this.state = S_ENTITY;\n                    this.entityReturnState = S_ATTRIB_VALUE_QUOTED;\n                    return;\n                case NL:\n                case NL_LIKE:\n                case TAB:\n                    this.text += `${chunk.slice(start, this.prevI)} `;\n                    start = this.i;\n                    break;\n                case LESS:\n                    this.text += chunk.slice(start, this.prevI);\n                    this.fail(\"disallowed character.\");\n                    return;\n                case EOC:\n                    this.text += chunk.slice(start);\n                    return;\n                default:\n            }\n        }\n    }\n    sAttribValueClosed() {\n        const c = this.getCodeNorm();\n        if (isS(c)) {\n            this.state = S_ATTRIB;\n        }\n        else if (c === GREATER) {\n            this.openTag();\n        }\n        else if (c === FORWARD_SLASH) {\n            this.state = S_OPEN_TAG_SLASH;\n        }\n        else if (isNameStartChar(c)) {\n            this.fail(\"no whitespace between attributes.\");\n            this.unget();\n            this.state = S_ATTRIB_NAME;\n        }\n        else {\n            this.fail(\"disallowed character in attribute name.\");\n        }\n    }\n    sAttribValueUnquoted() {\n        // We don't do anything regarding EOL or space handling for unquoted\n        // attributes. We already have failed by the time we get here, and the\n        // contract that saxes upholds states that upon failure, it is not safe to\n        // rely on the data passed to event handlers (other than\n        // ``onerror``). Passing \"bad\" data is not a problem.\n        const c = this.captureTo(ATTRIB_VALUE_UNQUOTED_TERMINATOR);\n        switch (c) {\n            case AMP:\n                this.state = S_ENTITY;\n                this.entityReturnState = S_ATTRIB_VALUE_UNQUOTED;\n                break;\n            case LESS:\n                this.fail(\"disallowed character.\");\n                break;\n            case EOC:\n                break;\n            default:\n                if (this.text.includes(\"]]>\")) {\n                    this.fail(\"the string \\\"]]>\\\" is disallowed in char data.\");\n                }\n                this.pushAttrib(this.name, this.text);\n                this.name = this.text = \"\";\n                if (c === GREATER) {\n                    this.openTag();\n                }\n                else {\n                    this.state = S_ATTRIB;\n                }\n        }\n    }\n    sCloseTag() {\n        const c = this.captureNameChars();\n        if (c === GREATER) {\n            this.closeTag();\n        }\n        else if (isS(c)) {\n            this.state = S_CLOSE_TAG_SAW_WHITE;\n        }\n        else if (c !== EOC) {\n            this.fail(\"disallowed character in closing tag.\");\n        }\n    }\n    sCloseTagSawWhite() {\n        switch (this.skipSpaces()) {\n            case GREATER:\n                this.closeTag();\n                break;\n            case EOC:\n                break;\n            default:\n                this.fail(\"disallowed character in closing tag.\");\n        }\n    }\n    // END OF STATE ENGINE METHODS\n    handleTextInRoot() {\n        // This is essentially a specialized version of captureTo which is optimized\n        // for performing the ]]> check. A previous version of this code, checked\n        // ``this.text`` for the presence of ]]>. It simplified the code but was\n        // very costly when character data contained a lot of entities to be parsed.\n        //\n        // Since we are using a specialized loop, we also keep track of the presence\n        // of ]]> in text data. The sequence ]]> is forbidden to appear as-is.\n        //\n        let { i: start, forbiddenState } = this;\n        const { chunk, textHandler: handler } = this;\n        // eslint-disable-next-line no-labels, no-restricted-syntax\n        scanLoop: \n        // eslint-disable-next-line no-constant-condition\n        while (true) {\n            switch (this.getCode()) {\n                case LESS: {\n                    this.state = S_OPEN_WAKA;\n                    if (handler !== undefined) {\n                        const { text } = this;\n                        const slice = chunk.slice(start, this.prevI);\n                        if (text.length !== 0) {\n                            handler(text + slice);\n                            this.text = \"\";\n                        }\n                        else if (slice.length !== 0) {\n                            handler(slice);\n                        }\n                    }\n                    forbiddenState = FORBIDDEN_START;\n                    // eslint-disable-next-line no-labels\n                    break scanLoop;\n                }\n                case AMP:\n                    this.state = S_ENTITY;\n                    this.entityReturnState = S_TEXT;\n                    if (handler !== undefined) {\n                        this.text += chunk.slice(start, this.prevI);\n                    }\n                    forbiddenState = FORBIDDEN_START;\n                    // eslint-disable-next-line no-labels\n                    break scanLoop;\n                case CLOSE_BRACKET:\n                    switch (forbiddenState) {\n                        case FORBIDDEN_START:\n                            forbiddenState = FORBIDDEN_BRACKET;\n                            break;\n                        case FORBIDDEN_BRACKET:\n                            forbiddenState = FORBIDDEN_BRACKET_BRACKET;\n                            break;\n                        case FORBIDDEN_BRACKET_BRACKET:\n                            break;\n                        default:\n                            throw new Error(\"impossible state\");\n                    }\n                    break;\n                case GREATER:\n                    if (forbiddenState === FORBIDDEN_BRACKET_BRACKET) {\n                        this.fail(\"the string \\\"]]>\\\" is disallowed in char data.\");\n                    }\n                    forbiddenState = FORBIDDEN_START;\n                    break;\n                case NL_LIKE:\n                    if (handler !== undefined) {\n                        this.text += `${chunk.slice(start, this.prevI)}\\n`;\n                    }\n                    start = this.i;\n                    forbiddenState = FORBIDDEN_START;\n                    break;\n                case EOC:\n                    if (handler !== undefined) {\n                        this.text += chunk.slice(start);\n                    }\n                    // eslint-disable-next-line no-labels\n                    break scanLoop;\n                default:\n                    forbiddenState = FORBIDDEN_START;\n            }\n        }\n        this.forbiddenState = forbiddenState;\n    }\n    handleTextOutsideRoot() {\n        // This is essentially a specialized version of captureTo which is optimized\n        // for a specialized task. We keep track of the presence of non-space\n        // characters in the text since these are errors when appearing outside the\n        // document root element.\n        let { i: start } = this;\n        const { chunk, textHandler: handler } = this;\n        let nonSpace = false;\n        // eslint-disable-next-line no-labels, no-restricted-syntax\n        outRootLoop: \n        // eslint-disable-next-line no-constant-condition\n        while (true) {\n            const code = this.getCode();\n            switch (code) {\n                case LESS: {\n                    this.state = S_OPEN_WAKA;\n                    if (handler !== undefined) {\n                        const { text } = this;\n                        const slice = chunk.slice(start, this.prevI);\n                        if (text.length !== 0) {\n                            handler(text + slice);\n                            this.text = \"\";\n                        }\n                        else if (slice.length !== 0) {\n                            handler(slice);\n                        }\n                    }\n                    // eslint-disable-next-line no-labels\n                    break outRootLoop;\n                }\n                case AMP:\n                    this.state = S_ENTITY;\n                    this.entityReturnState = S_TEXT;\n                    if (handler !== undefined) {\n                        this.text += chunk.slice(start, this.prevI);\n                    }\n                    nonSpace = true;\n                    // eslint-disable-next-line no-labels\n                    break outRootLoop;\n                case NL_LIKE:\n                    if (handler !== undefined) {\n                        this.text += `${chunk.slice(start, this.prevI)}\\n`;\n                    }\n                    start = this.i;\n                    break;\n                case EOC:\n                    if (handler !== undefined) {\n                        this.text += chunk.slice(start);\n                    }\n                    // eslint-disable-next-line no-labels\n                    break outRootLoop;\n                default:\n                    if (!isS(code)) {\n                        nonSpace = true;\n                    }\n            }\n        }\n        if (!nonSpace) {\n            return;\n        }\n        // We use the reportedTextBeforeRoot and reportedTextAfterRoot flags\n        // to avoid reporting errors for every single character that is out of\n        // place.\n        if (!this.sawRoot && !this.reportedTextBeforeRoot) {\n            this.fail(\"text data outside of root node.\");\n            this.reportedTextBeforeRoot = true;\n        }\n        if (this.closedRoot && !this.reportedTextAfterRoot) {\n            this.fail(\"text data outside of root node.\");\n            this.reportedTextAfterRoot = true;\n        }\n    }\n    pushAttribNS(name, value) {\n        var _a;\n        const { prefix, local } = this.qname(name);\n        const attr = { name, prefix, local, value };\n        this.attribList.push(attr);\n        (_a = this.attributeHandler) === null || _a === void 0 ? void 0 : _a.call(this, attr);\n        if (prefix === \"xmlns\") {\n            const trimmed = value.trim();\n            if (this.currentXMLVersion === \"1.0\" && trimmed === \"\") {\n                this.fail(\"invalid attempt to undefine prefix in XML 1.0\");\n            }\n            this.topNS[local] = trimmed;\n            nsPairCheck(this, local, trimmed);\n        }\n        else if (name === \"xmlns\") {\n            const trimmed = value.trim();\n            this.topNS[\"\"] = trimmed;\n            nsPairCheck(this, \"\", trimmed);\n        }\n    }\n    pushAttribPlain(name, value) {\n        var _a;\n        const attr = { name, value };\n        this.attribList.push(attr);\n        (_a = this.attributeHandler) === null || _a === void 0 ? void 0 : _a.call(this, attr);\n    }\n    /**\n     * End parsing. This performs final well-formedness checks and resets the\n     * parser to a clean state.\n     *\n     * @returns this\n     */\n    end() {\n        var _a, _b;\n        if (!this.sawRoot) {\n            this.fail(\"document must contain a root element.\");\n        }\n        const { tags } = this;\n        while (tags.length > 0) {\n            const tag = tags.pop();\n            this.fail(`unclosed tag: ${tag.name}`);\n        }\n        if ((this.state !== S_BEGIN) && (this.state !== S_TEXT)) {\n            this.fail(\"unexpected end.\");\n        }\n        const { text } = this;\n        if (text.length !== 0) {\n            (_a = this.textHandler) === null || _a === void 0 ? void 0 : _a.call(this, text);\n            this.text = \"\";\n        }\n        this._closed = true;\n        (_b = this.endHandler) === null || _b === void 0 ? void 0 : _b.call(this);\n        this._init();\n        return this;\n    }\n    /**\n     * Resolve a namespace prefix.\n     *\n     * @param prefix The prefix to resolve.\n     *\n     * @returns The namespace URI or ``undefined`` if the prefix is not defined.\n     */\n    resolve(prefix) {\n        var _a, _b;\n        let uri = this.topNS[prefix];\n        if (uri !== undefined) {\n            return uri;\n        }\n        const { tags } = this;\n        for (let index = tags.length - 1; index >= 0; index--) {\n            uri = tags[index].ns[prefix];\n            if (uri !== undefined) {\n                return uri;\n            }\n        }\n        uri = this.ns[prefix];\n        if (uri !== undefined) {\n            return uri;\n        }\n        return (_b = (_a = this.opt).resolvePrefix) === null || _b === void 0 ? void 0 : _b.call(_a, prefix);\n    }\n    /**\n     * Parse a qname into its prefix and local name parts.\n     *\n     * @param name The name to parse\n     *\n     * @returns\n     */\n    qname(name) {\n        // This is faster than using name.split(\":\").\n        const colon = name.indexOf(\":\");\n        if (colon === -1) {\n            return { prefix: \"\", local: name };\n        }\n        const local = name.slice(colon + 1);\n        const prefix = name.slice(0, colon);\n        if (prefix === \"\" || local === \"\" || local.includes(\":\")) {\n            this.fail(`malformed name: ${name}.`);\n        }\n        return { prefix, local };\n    }\n    processAttribsNS() {\n        var _a;\n        const { attribList } = this;\n        const tag = this.tag;\n        {\n            // add namespace info to tag\n            const { prefix, local } = this.qname(tag.name);\n            tag.prefix = prefix;\n            tag.local = local;\n            const uri = tag.uri = (_a = this.resolve(prefix)) !== null && _a !== void 0 ? _a : \"\";\n            if (prefix !== \"\") {\n                if (prefix === \"xmlns\") {\n                    this.fail(\"tags may not have \\\"xmlns\\\" as prefix.\");\n                }\n                if (uri === \"\") {\n                    this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);\n                    tag.uri = prefix;\n                }\n            }\n        }\n        if (attribList.length === 0) {\n            return;\n        }\n        const { attributes } = tag;\n        const seen = new Set();\n        // Note: do not apply default ns to attributes:\n        //   http://www.w3.org/TR/REC-xml-names/#defaulting\n        for (const attr of attribList) {\n            const { name, prefix, local } = attr;\n            let uri;\n            let eqname;\n            if (prefix === \"\") {\n                uri = name === \"xmlns\" ? XMLNS_NAMESPACE : \"\";\n                eqname = name;\n            }\n            else {\n                uri = this.resolve(prefix);\n                // if there's any attributes with an undefined namespace,\n                // then fail on them now.\n                if (uri === undefined) {\n                    this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);\n                    uri = prefix;\n                }\n                eqname = `{${uri}}${local}`;\n            }\n            if (seen.has(eqname)) {\n                this.fail(`duplicate attribute: ${eqname}.`);\n            }\n            seen.add(eqname);\n            attr.uri = uri;\n            attributes[name] = attr;\n        }\n        this.attribList = [];\n    }\n    processAttribsPlain() {\n        const { attribList } = this;\n        // eslint-disable-next-line prefer-destructuring\n        const attributes = this.tag.attributes;\n        for (const { name, value } of attribList) {\n            if (attributes[name] !== undefined) {\n                this.fail(`duplicate attribute: ${name}.`);\n            }\n            attributes[name] = value;\n        }\n        this.attribList = [];\n    }\n    /**\n     * Handle a complete open tag. This parser code calls this once it has seen\n     * the whole tag. This method checks for well-formeness and then emits\n     * ``onopentag``.\n     */\n    openTag() {\n        var _a;\n        this.processAttribs();\n        const { tags } = this;\n        const tag = this.tag;\n        tag.isSelfClosing = false;\n        // There cannot be any pending text here due to the onopentagstart that was\n        // necessarily emitted before we get here. So we do not check text.\n        (_a = this.openTagHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n        tags.push(tag);\n        this.state = S_TEXT;\n        this.name = \"\";\n    }\n    /**\n     * Handle a complete self-closing tag. This parser code calls this once it has\n     * seen the whole tag. This method checks for well-formeness and then emits\n     * ``onopentag`` and ``onclosetag``.\n     */\n    openSelfClosingTag() {\n        var _a, _b, _c;\n        this.processAttribs();\n        const { tags } = this;\n        const tag = this.tag;\n        tag.isSelfClosing = true;\n        // There cannot be any pending text here due to the onopentagstart that was\n        // necessarily emitted before we get here. So we do not check text.\n        (_a = this.openTagHandler) === null || _a === void 0 ? void 0 : _a.call(this, tag);\n        (_b = this.closeTagHandler) === null || _b === void 0 ? void 0 : _b.call(this, tag);\n        const top = this.tag = (_c = tags[tags.length - 1]) !== null && _c !== void 0 ? _c : null;\n        if (top === null) {\n            this.closedRoot = true;\n        }\n        this.state = S_TEXT;\n        this.name = \"\";\n    }\n    /**\n     * Handle a complete close tag. This parser code calls this once it has seen\n     * the whole tag. This method checks for well-formeness and then emits\n     * ``onclosetag``.\n     */\n    closeTag() {\n        const { tags, name } = this;\n        // Our state after this will be S_TEXT, no matter what, and we can clear\n        // tagName now.\n        this.state = S_TEXT;\n        this.name = \"\";\n        if (name === \"\") {\n            this.fail(\"weird empty close tag.\");\n            this.text += \"</>\";\n            return;\n        }\n        const handler = this.closeTagHandler;\n        let l = tags.length;\n        while (l-- > 0) {\n            const tag = this.tag = tags.pop();\n            this.topNS = tag.ns;\n            handler === null || handler === void 0 ? void 0 : handler(tag);\n            if (tag.name === name) {\n                break;\n            }\n            this.fail(\"unexpected close tag.\");\n        }\n        if (l === 0) {\n            this.closedRoot = true;\n        }\n        else if (l < 0) {\n            this.fail(`unmatched closing tag: ${name}.`);\n            this.text += `</${name}>`;\n        }\n    }\n    /**\n     * Resolves an entity. Makes any necessary well-formedness checks.\n     *\n     * @param entity The entity to resolve.\n     *\n     * @returns The parsed entity.\n     */\n    parseEntity(entity) {\n        // startsWith would be significantly slower for this test.\n        if (entity[0] !== \"#\") {\n            const defined = this.ENTITIES[entity];\n            if (defined !== undefined) {\n                return defined;\n            }\n            this.fail(this.isName(entity) ? \"undefined entity.\" :\n                \"disallowed character in entity name.\");\n            return `&${entity};`;\n        }\n        let num = NaN;\n        if (entity[1] === \"x\" && /^#x[0-9a-f]+$/i.test(entity)) {\n            num = parseInt(entity.slice(2), 16);\n        }\n        else if (/^#[0-9]+$/.test(entity)) {\n            num = parseInt(entity.slice(1), 10);\n        }\n        // The character reference is required to match the CHAR production.\n        if (!this.isChar(num)) {\n            this.fail(\"malformed character entity.\");\n            return `&${entity};`;\n        }\n        return String.fromCodePoint(num);\n    }\n}\nexports.SaxesParser = SaxesParser;\n//# sourceMappingURL=saxes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParseError = void 0;\n/**\n * An error that includes line and column in the error message.\n */\nclass ParseError extends Error {\n    constructor(parser, message) {\n        const saxParser = parser.saxParser;\n        super(parser.trackPosition ? `Line ${saxParser.line} column ${saxParser.column + 1}: ${message}` : message);\n    }\n}\nexports.ParseError = ParseError;\n//# sourceMappingURL=ParseError.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateIri = exports.IriValidationStrategy = void 0;\nfunction buildAbsoluteIriRfc3987Regex() {\n    // The syntax is defined in https://www.rfc-editor.org/rfc/rfc3987#section-2.2\n    // Rules are defined in reversed order\n    const sub_delims_raw = `!$&'()*+,;=`;\n    const sub_delims = `[${sub_delims_raw}]`;\n    const pct_encoded = `%[a-fA-F0-9]{2}`;\n    const dec_octet = '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\n    const ipv4address = `${dec_octet}\\\\.${dec_octet}\\\\.${dec_octet}\\\\.${dec_octet}`;\n    const h16 = `[a-fA-F0-9]{1,4}`;\n    const ls32 = `(${h16}:${h16}|${ipv4address})`;\n    const ipv6address = `((${h16}:){6}${ls32}|::(${h16}:){5}${ls32}|(${h16})?::(${h16}:){4}${ls32}|((${h16}:){0,1}${h16})?::(${h16}:){3}${ls32}|((${h16}:){0,2}${h16})?::(${h16}:){2}${ls32}|((${h16}:){0,3}${h16})?::${h16}:${ls32}|((${h16}:){0,4}${h16})?::${ls32}|((${h16}:){0,5}${h16})?::${h16}|((${h16}:){0,6}${h16})?::)`;\n    const ipvfuture = `v[a-fA-F0-9]+\\\\.(${sub_delims}|${sub_delims}|\":)+`;\n    const ip_literal = `\\\\[(${ipv6address}|${ipvfuture})\\\\]`;\n    const port = `[0-9]*`;\n    const scheme = `[a-zA-Z][a-zA-Z0-9+\\\\-.]*`;\n    const iprivate_raw = `\\u{E000}-\\u{F8FF}\\u{F0000}-\\u{FFFFD}\\u{100000}-\\u{10FFFD}`;\n    const iprivate = `[${iprivate_raw}]`;\n    const ucschar_raw = `\\u{A0}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFEF}\\u{10000}-\\u{1FFFD}\\u{20000}-\\u{2FFFD}\\u{30000}-\\u{3FFFD}\\u{40000}-\\u{4FFFD}\\u{50000}-\\u{5FFFD}\\u{60000}-\\u{6FFFD}\\u{70000}-\\u{7FFFD}\\u{80000}-\\u{8FFFD}\\u{90000}-\\u{9FFFD}\\u{A0000}-\\u{AFFFD}\\u{B0000}-\\u{BFFFD}\\u{C0000}-\\u{CFFFD}\\u{D0000}-\\u{DFFFD}\\u{E1000}-\\u{EFFFD}`;\n    const iunreserved_raw = `a-zA-Z0-9\\\\-._~${ucschar_raw}`;\n    const iunreserved = `[${iunreserved_raw}]`;\n    const ipchar = `(${iunreserved}|${pct_encoded}|${sub_delims}|[:@])*`;\n    const ifragment = `(${ipchar}|[\\\\/?])*`;\n    const iquery = `(${ipchar}|${iprivate}|[\\\\/?])*`;\n    const isegment_nz = `(${ipchar})+`;\n    const isegment = `(${ipchar})*`;\n    const ipath_empty = '';\n    const ipath_rootless = `${isegment_nz}(\\\\/${isegment})*`;\n    const ipath_absolute = `\\\\/(${isegment_nz}(\\\\/${isegment})*)?`;\n    const ipath_abempty = `(\\\\/${isegment})*`;\n    const ireg_name = `(${iunreserved}|${pct_encoded}|${sub_delims})*`;\n    const ihost = `(${ip_literal}|${ipv4address}|${ireg_name})`;\n    const iuserinfo = `(${iunreserved}|${pct_encoded}|${sub_delims}|:)*`;\n    const iauthority = `(${iuserinfo}@)?${ihost}(:${port})?`;\n    const ihier_part = `(\\\\/\\\\/${iauthority}${ipath_abempty}|${ipath_absolute}|${ipath_rootless}|${ipath_empty})`;\n    const iri = `^${scheme}:${ihier_part}(\\\\?${iquery})?(#${ifragment})?$`;\n    return new RegExp(iri, 'u');\n}\nconst STRICT_IRI_REGEX = buildAbsoluteIriRfc3987Regex();\n// eslint-disable-next-line no-control-regex\nconst PRAGMATIC_IRI_REGEX = /^[A-Za-z][\\d+-.A-Za-z]*:[^\\u0000-\\u0020\"<>\\\\^`{|}]*$/u;\n/**\n * Possible ways of validating an IRI\n */\nvar IriValidationStrategy;\n(function (IriValidationStrategy) {\n    /**\n     * Validates the IRI according to RFC 3987.\n     */\n    IriValidationStrategy[\"Strict\"] = \"strict\";\n    /**\n     * Validates that the IRI has a valid scheme and does not contain any character forbidden by the Turtle specification.\n     */\n    IriValidationStrategy[\"Pragmatic\"] = \"pragmatic\";\n    /**\n     * Does not validate the IRI at all.\n     */\n    IriValidationStrategy[\"None\"] = \"none\";\n})(IriValidationStrategy = exports.IriValidationStrategy || (exports.IriValidationStrategy = {}));\n/**\n * Validate a given IRI according to the given strategy.\n *\n * By default the IRI is fully validated according to RFC 3987.\n * But it is possible to do a lighter a faster validation using the \"pragmatic\" strategy.\n *\n * @param {string} iri a string that may be an IRI.\n * @param {IriValidationStrategy} strategy IRI validation strategy.\n * @return {Error | undefined} An error if the IRI is invalid, or undefined if it is valid.\n */\nfunction validateIri(iri, strategy = IriValidationStrategy.Strict) {\n    switch (strategy) {\n        case IriValidationStrategy.Strict:\n            return STRICT_IRI_REGEX.test(iri) ? undefined : new Error(`Invalid IRI according to RFC 3987: '${iri}'`);\n        case IriValidationStrategy.Pragmatic:\n            return PRAGMATIC_IRI_REGEX.test(iri) ? undefined : new Error(`Invalid IRI according to RDF Turtle: '${iri}'`);\n        case IriValidationStrategy.None:\n            return undefined;\n        default:\n            return new Error(`Not supported validation strategy \"${strategy}\"`);\n    }\n}\nexports.validateIri = validateIri;\n//# sourceMappingURL=Validate.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/Validate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParseType = exports.RdfXmlParser = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst saxes_1 = require(\"@rubensworks/saxes\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst ParseError_1 = require(\"./ParseError\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst validate_iri_1 = require(\"validate-iri\");\nclass RdfXmlParser extends readable_stream_1.Transform {\n    constructor(args) {\n        super({ readableObjectMode: true });\n        this.activeTagStack = [];\n        this.nodeIds = {};\n        if (args) {\n            Object.assign(this, args);\n            this.options = args;\n        }\n        if (!this.dataFactory) {\n            this.dataFactory = new rdf_data_factory_1.DataFactory();\n        }\n        if (!this.baseIRI) {\n            this.baseIRI = '';\n        }\n        if (!this.defaultGraph) {\n            this.defaultGraph = this.dataFactory.defaultGraph();\n        }\n        if (this.validateUri !== false) {\n            this.validateUri = true;\n        }\n        if (!this.iriValidationStrategy) {\n            this.iriValidationStrategy = this.validateUri ? validate_iri_1.IriValidationStrategy.Pragmatic : validate_iri_1.IriValidationStrategy.None;\n        }\n        this.saxParser = new saxes_1.SaxesParser({ xmlns: true, position: this.trackPosition });\n        this.attachSaxListeners();\n    }\n    /**\n     * Parses the given text stream into a quad stream.\n     * @param {NodeJS.EventEmitter} stream A text stream.\n     * @return {RDF.Stream} A quad stream.\n     */\n    import(stream) {\n        const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n        stream.on('error', (error) => parsed.emit('error', error));\n        stream.on('data', (data) => output.push(data));\n        stream.on('end', () => output.push(null));\n        const parsed = output.pipe(new RdfXmlParser(this.options));\n        return parsed;\n    }\n    _transform(chunk, encoding, callback) {\n        try {\n            this.saxParser.write(chunk);\n        }\n        catch (e) {\n            return callback(e);\n        }\n        callback();\n    }\n    /**\n     * Create a new parse error instance.\n     * @param {string} message An error message.\n     * @return {Error} An error instance.\n     */\n    newParseError(message) {\n        return new ParseError_1.ParseError(this, message);\n    }\n    /**\n     * Convert the given value to a IRI by taking into account the baseIRI.\n     *\n     * This will follow the RDF/XML spec for converting values with baseIRIs to a IRI.\n     *\n     * @param {string} value The value to convert to an IRI.\n     * @param {IActiveTag} activeTag The active tag.\n     * @return {NamedNode} an IRI.\n     */\n    valueToUri(value, activeTag) {\n        return this.uriToNamedNode((0, relative_to_absolute_iri_1.resolve)(value, activeTag.baseIRI));\n    }\n    /**\n     * Convert the given value URI string to a named node.\n     *\n     * This throw an error if the URI is invalid.\n     *\n     * @param {string} uri A URI string.\n     * @return {NamedNode} a named node.\n     */\n    uriToNamedNode(uri) {\n        // Validate URI\n        const uriValidationResult = (0, validate_iri_1.validateIri)(uri, this.iriValidationStrategy);\n        if (uriValidationResult instanceof Error) {\n            throw this.newParseError(uriValidationResult.message);\n        }\n        return this.dataFactory.namedNode(uri);\n    }\n    /**\n     * Validate the given value as an NCName: https://www.w3.org/TR/xml-names/#NT-NCName\n     * If it is invalid, an error will thrown emitted.\n     * @param {string} value A value.\n     */\n    validateNcname(value) {\n        // Validate term as an NCName: https://www.w3.org/TR/xml-names/#NT-NCName\n        if (!RdfXmlParser.NCNAME_MATCHER.test(value)) {\n            throw this.newParseError(`Not a valid NCName: ${value}`);\n        }\n    }\n    attachSaxListeners() {\n        this.saxParser.on('error', (error) => this.emit('error', error));\n        this.saxParser.on('opentag', this.onTag.bind(this));\n        this.saxParser.on('text', this.onText.bind(this));\n        this.saxParser.on('cdata', this.onText.bind(this));\n        this.saxParser.on('closetag', this.onCloseTag.bind(this));\n        this.saxParser.on('doctype', this.onDoctype.bind(this));\n    }\n    /**\n     * Handle the given tag.\n     * @param {SaxesTagNS} tag A SAX tag.\n     */\n    onTag(tag) {\n        // Get parent tag\n        const parentTag = this.activeTagStack.length\n            ? this.activeTagStack[this.activeTagStack.length - 1] : null;\n        let currentParseType = ParseType.RESOURCE;\n        if (parentTag) {\n            parentTag.hadChildren = true;\n            currentParseType = parentTag.childrenParseType;\n        }\n        // Check if this tag needs to be converted to a string\n        if (parentTag && parentTag.childrenStringTags) {\n            // Convert this tag to a string\n            const tagName = tag.name;\n            let attributes = '';\n            for (const attributeKey in tag.attributes) {\n                attributes += ` ${attributeKey}=\"${tag.attributes[attributeKey].value}\"`;\n            }\n            const tagContents = `${tagName}${attributes}`;\n            const tagString = `<${tagContents}>`;\n            parentTag.childrenStringTags.push(tagString);\n            // Inherit the array, so that deeper tags are appended to this same array\n            const stringActiveTag = { childrenStringTags: parentTag.childrenStringTags };\n            stringActiveTag.childrenStringEmitClosingTag = `</${tagName}>`;\n            this.activeTagStack.push(stringActiveTag);\n            // Halt any further processing\n            return;\n        }\n        const activeTag = {};\n        if (parentTag) {\n            // Inherit language scope and baseIRI from parent\n            activeTag.language = parentTag.language;\n            activeTag.baseIRI = parentTag.baseIRI;\n        }\n        else {\n            activeTag.baseIRI = this.baseIRI;\n        }\n        this.activeTagStack.push(activeTag);\n        if (currentParseType === ParseType.RESOURCE) {\n            this.onTagResource(tag, activeTag, parentTag, !parentTag);\n        }\n        else { // currentParseType === ParseType.PROPERTY\n            this.onTagProperty(tag, activeTag, parentTag);\n        }\n    }\n    /**\n     * Handle the given node element in resource-mode.\n     * @param {SaxesTagNS} tag A SAX tag.\n     * @param {IActiveTag} activeTag The currently active tag.\n     * @param {IActiveTag} parentTag The parent tag or null.\n     * @param {boolean} rootTag If we are currently processing the root tag.\n     */\n    onTagResource(tag, activeTag, parentTag, rootTag) {\n        activeTag.childrenParseType = ParseType.PROPERTY;\n        // Assume that the current node is a _typed_ node (2.13), unless we find an rdf:Description as node name\n        let typedNode = true;\n        if (tag.uri === RdfXmlParser.RDF) {\n            // Check forbidden property element names\n            if (!rootTag && RdfXmlParser.FORBIDDEN_NODE_ELEMENTS.indexOf(tag.local) >= 0) {\n                throw this.newParseError(`Illegal node element name: ${tag.local}`);\n            }\n            switch (tag.local) {\n                case 'RDF':\n                    // Tags under <rdf:RDF> must always be resources\n                    activeTag.childrenParseType = ParseType.RESOURCE;\n                case 'Description':\n                    typedNode = false;\n            }\n        }\n        const predicates = [];\n        const objects = [];\n        // Collect all attributes as triples\n        // Assign subject value only after all attributes have been processed, because baseIRI may change the final val\n        let activeSubjectValue = null;\n        let claimSubjectNodeId = false;\n        let subjectValueBlank = false;\n        let explicitType = null;\n        for (const attributeKey in tag.attributes) {\n            const attribute = tag.attributes[attributeKey];\n            if (parentTag && attribute.uri === RdfXmlParser.RDF) {\n                switch (attribute.local) {\n                    case 'about':\n                        if (activeSubjectValue) {\n                            throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, \\\nwhile ${attribute.value} and ${activeSubjectValue} where found.`);\n                        }\n                        activeSubjectValue = attribute.value;\n                        continue;\n                    case 'ID':\n                        if (activeSubjectValue) {\n                            throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, \\\nwhile ${attribute.value} and ${activeSubjectValue} where found.`);\n                        }\n                        this.validateNcname(attribute.value);\n                        activeSubjectValue = '#' + attribute.value;\n                        claimSubjectNodeId = true;\n                        continue;\n                    case 'nodeID':\n                        if (activeSubjectValue) {\n                            throw this.newParseError(`Only one of rdf:about, rdf:nodeID and rdf:ID can be present, \\\nwhile ${attribute.value} and ${activeSubjectValue} where found.`);\n                        }\n                        this.validateNcname(attribute.value);\n                        activeSubjectValue = attribute.value;\n                        subjectValueBlank = true;\n                        continue;\n                    case 'bagID':\n                        throw this.newParseError(`rdf:bagID is not supported.`);\n                    case 'type':\n                        // Emit the rdf:type later as named node instead of the default literal\n                        explicitType = attribute.value;\n                        continue;\n                    case 'aboutEach':\n                        throw this.newParseError(`rdf:aboutEach is not supported.`);\n                    case 'aboutEachPrefix':\n                        throw this.newParseError(`rdf:aboutEachPrefix is not supported.`);\n                    case 'li':\n                        throw this.newParseError(`rdf:li on node elements are not supported.`);\n                }\n            }\n            else if (attribute.uri === RdfXmlParser.XML) {\n                if (attribute.local === 'lang') {\n                    activeTag.language = attribute.value === '' ? null : attribute.value.toLowerCase();\n                    continue;\n                }\n                else if (attribute.local === 'base') {\n                    // SAX Parser does not expand xml:base, based on DOCTYPE, so we have to do it manually\n                    activeTag.baseIRI = (0, relative_to_absolute_iri_1.resolve)(attribute.value, activeTag.baseIRI);\n                    continue;\n                }\n            }\n            // Interpret attributes at this point as properties on this node,\n            // but we ignore attributes that have no prefix or known expanded URI\n            if (attribute.prefix !== 'xml' && attribute.prefix !== 'xmlns'\n                && (attribute.prefix !== '' || attribute.local !== 'xmlns')\n                && attribute.uri) {\n                predicates.push(this.uriToNamedNode(attribute.uri + attribute.local));\n                objects.push(attribute.value);\n            }\n        }\n        // Create the subject value _after_ all attributes have been processed\n        if (activeSubjectValue !== null) {\n            activeTag.subject = subjectValueBlank\n                ? this.dataFactory.blankNode(activeSubjectValue) : this.valueToUri(activeSubjectValue, activeTag);\n            if (claimSubjectNodeId) {\n                this.claimNodeId(activeTag.subject);\n            }\n        }\n        // Force the creation of a subject if it doesn't exist yet\n        if (!activeTag.subject) {\n            activeTag.subject = this.dataFactory.blankNode();\n        }\n        // Emit the type if we're at a typed node\n        if (typedNode) {\n            const type = this.uriToNamedNode(tag.uri + tag.local);\n            this.emitTriple(activeTag.subject, this.dataFactory.namedNode(RdfXmlParser.RDF + 'type'), type, parentTag ? parentTag.reifiedStatementId : null);\n        }\n        if (parentTag) {\n            // If the parent tag defined a predicate, add the current tag as property value\n            if (parentTag.predicate) {\n                if (parentTag.childrenCollectionSubject) {\n                    // RDF:List-based properties\n                    const linkTerm = this.dataFactory.blankNode();\n                    // Emit <x> <p> <current-chain> OR <previous-chain> <rdf:rest> <current-chain>\n                    this.emitTriple(parentTag.childrenCollectionSubject, parentTag.childrenCollectionPredicate, linkTerm, parentTag.reifiedStatementId);\n                    // Emit <current-chain> <rdf:first> value\n                    this.emitTriple(linkTerm, this.dataFactory.namedNode(RdfXmlParser.RDF + 'first'), activeTag.subject, activeTag.reifiedStatementId);\n                    // Store <current-chain> in the parent node\n                    parentTag.childrenCollectionSubject = linkTerm;\n                    parentTag.childrenCollectionPredicate = this.dataFactory.namedNode(RdfXmlParser.RDF + 'rest');\n                }\n                else { // !parentTag.predicateEmitted\n                    // Set-based properties\n                    this.emitTriple(parentTag.subject, parentTag.predicate, activeTag.subject, parentTag.reifiedStatementId);\n                    // Emit pending properties on the parent tag that had no defined subject yet.\n                    for (let i = 0; i < parentTag.predicateSubPredicates.length; i++) {\n                        this.emitTriple(activeTag.subject, parentTag.predicateSubPredicates[i], parentTag.predicateSubObjects[i], null);\n                    }\n                    // Cleanup so we don't emit them again when the parent tag is closed\n                    parentTag.predicateSubPredicates = [];\n                    parentTag.predicateSubObjects = [];\n                    parentTag.predicateEmitted = true;\n                }\n            }\n            // Emit all collected triples\n            for (let i = 0; i < predicates.length; i++) {\n                const object = this.dataFactory.literal(objects[i], activeTag.datatype || activeTag.language);\n                this.emitTriple(activeTag.subject, predicates[i], object, parentTag.reifiedStatementId);\n            }\n            // Emit the rdf:type as named node instead of literal\n            if (explicitType) {\n                this.emitTriple(activeTag.subject, this.dataFactory.namedNode(RdfXmlParser.RDF + 'type'), this.uriToNamedNode(explicitType), null);\n            }\n        }\n    }\n    /**\n     * Handle the given property element in property-mode.\n     * @param {SaxesTagNS} tag A SAX tag.\n     * @param {IActiveTag} activeTag The currently active tag.\n     * @param {IActiveTag} parentTag The parent tag or null.\n     */\n    onTagProperty(tag, activeTag, parentTag) {\n        activeTag.childrenParseType = ParseType.RESOURCE;\n        activeTag.subject = parentTag.subject; // Inherit parent subject\n        if (tag.uri === RdfXmlParser.RDF && tag.local === 'li') {\n            // Convert rdf:li to rdf:_x\n            if (!parentTag.listItemCounter) {\n                parentTag.listItemCounter = 1;\n            }\n            activeTag.predicate = this.uriToNamedNode(tag.uri + '_' + parentTag.listItemCounter++);\n        }\n        else {\n            activeTag.predicate = this.uriToNamedNode(tag.uri + tag.local);\n        }\n        // Check forbidden property element names\n        if (tag.uri === RdfXmlParser.RDF\n            && RdfXmlParser.FORBIDDEN_PROPERTY_ELEMENTS.indexOf(tag.local) >= 0) {\n            throw this.newParseError(`Illegal property element name: ${tag.local}`);\n        }\n        activeTag.predicateSubPredicates = [];\n        activeTag.predicateSubObjects = [];\n        let parseType = false;\n        let attributedProperty = false;\n        // Collect all attributes as triples\n        // Assign subject value only after all attributes have been processed, because baseIRI may change the final val\n        let activeSubSubjectValue = null;\n        let subSubjectValueBlank = true;\n        const predicates = [];\n        const objects = [];\n        for (const propertyAttributeKey in tag.attributes) {\n            const propertyAttribute = tag.attributes[propertyAttributeKey];\n            if (propertyAttribute.uri === RdfXmlParser.RDF) {\n                switch (propertyAttribute.local) {\n                    case 'resource':\n                        if (activeSubSubjectValue) {\n                            throw this.newParseError(`Found both rdf:resource (${propertyAttribute.value}) and rdf:nodeID (${activeSubSubjectValue}).`);\n                        }\n                        if (parseType) {\n                            throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:resource (${propertyAttribute.value})`);\n                        }\n                        activeTag.hadChildren = true;\n                        activeSubSubjectValue = propertyAttribute.value;\n                        subSubjectValueBlank = false;\n                        continue;\n                    case 'datatype':\n                        if (attributedProperty) {\n                            throw this.newParseError(`Found both non-rdf:* property attributes and rdf:datatype (${propertyAttribute.value}).`);\n                        }\n                        if (parseType) {\n                            throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${propertyAttribute.value})`);\n                        }\n                        activeTag.datatype = this.valueToUri(propertyAttribute.value, activeTag);\n                        continue;\n                    case 'nodeID':\n                        if (attributedProperty) {\n                            throw this.newParseError(`Found both non-rdf:* property attributes and rdf:nodeID (${propertyAttribute.value}).`);\n                        }\n                        if (activeTag.hadChildren) {\n                            throw this.newParseError(`Found both rdf:resource and rdf:nodeID (${propertyAttribute.value}).`);\n                        }\n                        if (parseType) {\n                            throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID (${propertyAttribute.value})`);\n                        }\n                        this.validateNcname(propertyAttribute.value);\n                        activeTag.hadChildren = true;\n                        activeSubSubjectValue = propertyAttribute.value;\n                        subSubjectValueBlank = true;\n                        continue;\n                    case 'bagID':\n                        throw this.newParseError(`rdf:bagID is not supported.`);\n                    case 'parseType':\n                        // Validation\n                        if (attributedProperty) {\n                            throw this.newParseError(`rdf:parseType is not allowed when non-rdf:* property attributes are present`);\n                        }\n                        if (activeTag.datatype) {\n                            throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:datatype (${activeTag.datatype.value})`);\n                        }\n                        if (activeSubSubjectValue) {\n                            throw this.newParseError(`rdf:parseType is not allowed on property elements with rdf:nodeID or rdf:resource (${activeSubSubjectValue})`);\n                        }\n                        if (propertyAttribute.value === 'Resource') {\n                            parseType = true;\n                            activeTag.childrenParseType = ParseType.PROPERTY;\n                            // Turn this property element into a node element\n                            const nestedBNode = this.dataFactory.blankNode();\n                            this.emitTriple(activeTag.subject, activeTag.predicate, nestedBNode, activeTag.reifiedStatementId);\n                            activeTag.subject = nestedBNode;\n                            activeTag.predicate = null;\n                        }\n                        else if (propertyAttribute.value === 'Collection') {\n                            parseType = true;\n                            // Interpret children as being part of an rdf:List\n                            activeTag.hadChildren = true;\n                            activeTag.childrenCollectionSubject = activeTag.subject;\n                            activeTag.childrenCollectionPredicate = activeTag.predicate;\n                            subSubjectValueBlank = false;\n                        }\n                        else if (propertyAttribute.value === 'Literal') {\n                            parseType = true;\n                            // Interpret children as being part of a literal string\n                            activeTag.childrenTagsToString = true;\n                            activeTag.childrenStringTags = [];\n                        }\n                        continue;\n                    case 'ID':\n                        this.validateNcname(propertyAttribute.value);\n                        activeTag.reifiedStatementId = this.valueToUri('#' + propertyAttribute.value, activeTag);\n                        this.claimNodeId(activeTag.reifiedStatementId);\n                        continue;\n                }\n            }\n            else if (propertyAttribute.uri === RdfXmlParser.XML && propertyAttribute.local === 'lang') {\n                activeTag.language = propertyAttribute.value === ''\n                    ? null : propertyAttribute.value.toLowerCase();\n                continue;\n            }\n            // Interpret attributes at this point as properties via implicit blank nodes on the property,\n            // but we ignore attributes that have no prefix or known expanded URI\n            if (propertyAttribute.prefix !== 'xml' && propertyAttribute.prefix !== 'xmlns'\n                && (propertyAttribute.prefix !== '' || propertyAttribute.local !== 'xmlns')\n                && propertyAttribute.uri) {\n                if (parseType || activeTag.datatype) {\n                    throw this.newParseError(`Found illegal rdf:* properties on property element with attribute: ${propertyAttribute.value}`);\n                }\n                activeTag.hadChildren = true;\n                attributedProperty = true;\n                predicates.push(this.uriToNamedNode(propertyAttribute.uri + propertyAttribute.local));\n                objects.push(this.dataFactory.literal(propertyAttribute.value, activeTag.datatype || activeTag.language));\n            }\n        }\n        // Create the subject value _after_ all attributes have been processed\n        if (activeSubSubjectValue !== null) {\n            const subjectParent = activeTag.subject;\n            activeTag.subject = subSubjectValueBlank\n                ? this.dataFactory.blankNode(activeSubSubjectValue) : this.valueToUri(activeSubSubjectValue, activeTag);\n            this.emitTriple(subjectParent, activeTag.predicate, activeTag.subject, activeTag.reifiedStatementId);\n            // Emit our buffered triples\n            for (let i = 0; i < predicates.length; i++) {\n                this.emitTriple(activeTag.subject, predicates[i], objects[i], null);\n            }\n            activeTag.predicateEmitted = true;\n        }\n        else if (subSubjectValueBlank) {\n            // The current property element has no defined subject\n            // Let's buffer the properties until the child node defines a subject,\n            // or if the tag closes.\n            activeTag.predicateSubPredicates = predicates;\n            activeTag.predicateSubObjects = objects;\n            activeTag.predicateEmitted = false;\n        }\n    }\n    /**\n     * Emit the given triple to the stream.\n     * @param {Term} subject A subject term.\n     * @param {Term} predicate A predicate term.\n     * @param {Term} object An object term.\n     * @param {Term} statementId An optional resource that identifies the triple.\n     *                           If truthy, then the given triple will also be emitted reified.\n     */\n    emitTriple(subject, predicate, object, statementId) {\n        this.push(this.dataFactory.quad(subject, predicate, object, this.defaultGraph));\n        // Reify triple\n        if (statementId) {\n            this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'type'), this.dataFactory.namedNode(RdfXmlParser.RDF + 'Statement'), this.defaultGraph));\n            this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'subject'), subject, this.defaultGraph));\n            this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'predicate'), predicate, this.defaultGraph));\n            this.push(this.dataFactory.quad(statementId, this.dataFactory.namedNode(RdfXmlParser.RDF + 'object'), object, this.defaultGraph));\n        }\n    }\n    /**\n     * Register the given term as a node ID.\n     * If one was already registered, this will emit an error.\n     *\n     * This is used to check duplicate occurrences of rdf:ID in scope of the baseIRI.\n     * @param {Term} term An RDF term.\n     */\n    claimNodeId(term) {\n        if (!this.allowDuplicateRdfIds) {\n            if (this.nodeIds[term.value]) {\n                throw this.newParseError(`Found multiple occurrences of rdf:ID='${term.value}'.`);\n            }\n            this.nodeIds[term.value] = true;\n        }\n    }\n    /**\n     * Handle the given text string.\n     * @param {string} text A parsed text string.\n     */\n    onText(text) {\n        const activeTag = this.activeTagStack.length\n            ? this.activeTagStack[this.activeTagStack.length - 1] : null;\n        if (activeTag) {\n            if (activeTag.childrenStringTags) {\n                activeTag.childrenStringTags.push(text);\n            }\n            else if (activeTag.predicate) {\n                activeTag.text = text;\n            }\n        }\n    }\n    /**\n     * Handle the closing of the last tag.\n     */\n    onCloseTag() {\n        const poppedTag = this.activeTagStack.pop();\n        // If we were converting a tag to a string, and the tag was not self-closing, close it here.\n        if (poppedTag.childrenStringEmitClosingTag) {\n            poppedTag.childrenStringTags.push(poppedTag.childrenStringEmitClosingTag);\n        }\n        // Set the literal value if we were collecting XML tags to string\n        if (poppedTag.childrenTagsToString) {\n            poppedTag.datatype = this.dataFactory.namedNode(RdfXmlParser.RDF + 'XMLLiteral');\n            poppedTag.text = poppedTag.childrenStringTags.join('');\n            poppedTag.hadChildren = false; // Force a literal triple to be emitted hereafter\n        }\n        if (poppedTag.childrenCollectionSubject) {\n            // Terminate the rdf:List\n            this.emitTriple(poppedTag.childrenCollectionSubject, poppedTag.childrenCollectionPredicate, this.dataFactory.namedNode(RdfXmlParser.RDF + 'nil'), poppedTag.reifiedStatementId);\n        }\n        else if (poppedTag.predicate) {\n            if (!poppedTag.hadChildren && poppedTag.childrenParseType !== ParseType.PROPERTY) {\n                // Property element contains text\n                this.emitTriple(poppedTag.subject, poppedTag.predicate, this.dataFactory.literal(poppedTag.text || '', poppedTag.datatype || poppedTag.language), poppedTag.reifiedStatementId);\n            }\n            else if (!poppedTag.predicateEmitted) {\n                // Emit remaining properties on an anonymous property element\n                const subject = this.dataFactory.blankNode();\n                this.emitTriple(poppedTag.subject, poppedTag.predicate, subject, poppedTag.reifiedStatementId);\n                for (let i = 0; i < poppedTag.predicateSubPredicates.length; i++) {\n                    this.emitTriple(subject, poppedTag.predicateSubPredicates[i], poppedTag.predicateSubObjects[i], null);\n                }\n            }\n        }\n    }\n    /**\n     * Fetch local DOCTYPE ENTITY's and make the parser recognise them.\n     * @param {string} doctype The read doctype.\n     */\n    onDoctype(doctype) {\n        doctype.replace(/<!ENTITY\\s+([^\\s]+)\\s+[\"']([^\"']+)[\"']\\s*>/g, (match, prefix, uri) => {\n            this.saxParser.ENTITIES[prefix] = uri;\n            return '';\n        });\n    }\n}\nexports.RdfXmlParser = RdfXmlParser;\nRdfXmlParser.MIME_TYPE = 'application/rdf+xml';\nRdfXmlParser.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nRdfXmlParser.XML = 'http://www.w3.org/XML/1998/namespace';\nRdfXmlParser.FORBIDDEN_NODE_ELEMENTS = [\n    'RDF',\n    'ID',\n    'about',\n    'bagID',\n    'parseType',\n    'resource',\n    'nodeID',\n    'li',\n    'aboutEach',\n    'aboutEachPrefix',\n];\nRdfXmlParser.FORBIDDEN_PROPERTY_ELEMENTS = [\n    'Description',\n    'RDF',\n    'ID',\n    'about',\n    'bagID',\n    'parseType',\n    'resource',\n    'nodeID',\n    'aboutEach',\n    'aboutEachPrefix',\n];\n// tslint:disable-next-line:max-line-length\nRdfXmlParser.NCNAME_MATCHER = /^([A-Za-z\\xC0-\\xD6\\xD8-\\xF6\\u{F8}-\\u{2FF}\\u{370}-\\u{37D}\\u{37F}-\\u{1FFF}\\u{200C}-\\u{200D}\\u{2070}-\\u{218F}\\u{2C00}-\\u{2FEF}\\u{3001}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFFD}\\u{10000}-\\u{EFFFF}_])([A-Za-z\\xC0-\\xD6\\xD8-\\xF6\\u{F8}-\\u{2FF}\\u{370}-\\u{37D}\\u{37F}-\\u{1FFF}\\u{200C}-\\u{200D}\\u{2070}-\\u{218F}\\u{2C00}-\\u{2FEF}\\u{3001}-\\u{D7FF}\\u{F900}-\\u{FDCF}\\u{FDF0}-\\u{FFFD}\\u{10000}-\\u{EFFFF}_\\-.0-9#xB7\\u{0300}-\\u{036F}\\u{203F}-\\u{2040}])*$/u;\nvar ParseType;\n(function (ParseType) {\n    ParseType[ParseType[\"RESOURCE\"] = 0] = \"RESOURCE\";\n    ParseType[ParseType[\"PROPERTY\"] = 1] = \"PROPERTY\";\n})(ParseType || (exports.ParseType = ParseType = {}));\n//# sourceMappingURL=RdfXmlParser.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/RdfXmlParser\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseRdfXml = void 0;\nconst bus_rdf_parse_1 = require(\"@comunica/bus-rdf-parse\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst rdfxml_streaming_parser_1 = require(\"rdfxml-streaming-parser\");\n/**\n * A comunica RDF/XML RDF Parse Actor.\n */\nclass ActorRdfParseRdfXml extends bus_rdf_parse_1.ActorRdfParseFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"application/rdf+xml\": 1.0\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"application/rdf+xml\": \"http://www.w3.org/ns/formats/RDF_XML\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async runHandle(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        action.data.on('error', error => data.emit('error', error));\n        const data = action.data.pipe(new rdfxml_streaming_parser_1.RdfXmlParser({\n            dataFactory,\n            baseIRI: action.metadata?.baseIRI,\n        }));\n        return {\n            data,\n            metadata: { triples: true },\n        };\n    }\n}\nexports.ActorRdfParseRdfXml = ActorRdfParseRdfXml;\n//# sourceMappingURL=ActorRdfParseRdfXml.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParseRdfXml\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IActiveTag.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IHtmlParseListener.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IRdfaPattern.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n    .split(\"\")\n    .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n    .split(\"\")\n    .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n    [0, 65533],\n    // C1 Unicode control character reference replacements\n    [128, 8364],\n    [130, 8218],\n    [131, 402],\n    [132, 8222],\n    [133, 8230],\n    [134, 8224],\n    [135, 8225],\n    [136, 710],\n    [137, 8240],\n    [138, 352],\n    [139, 8249],\n    [140, 338],\n    [142, 381],\n    [145, 8216],\n    [146, 8217],\n    [147, 8220],\n    [148, 8221],\n    [149, 8226],\n    [150, 8211],\n    [151, 8212],\n    [152, 732],\n    [153, 8482],\n    [154, 353],\n    [155, 8250],\n    [156, 339],\n    [158, 382],\n    [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n    var output = \"\";\n    if (codePoint > 0xffff) {\n        codePoint -= 0x10000;\n        output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n        codePoint = 0xdc00 | (codePoint & 0x3ff);\n    }\n    output += String.fromCharCode(codePoint);\n    return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n    var _a;\n    if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n        return 0xfffd;\n    }\n    return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n    return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n    CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n    CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n    CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n    CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n    CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n    CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n    CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n    CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n    CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n    CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n    CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n    CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n    BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n    return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n        isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n    return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n    EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n    EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n    EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n    /** Entities in text nodes that can end with any character. */\n    DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n    /** Only allow entities terminated with a semicolon. */\n    DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n    /** Entities in attributes have limitations on ending characters. */\n    DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n    function EntityDecoder(\n    /** The tree used to decode entities. */\n    decodeTree, \n    /**\n     * The function that is called when a codepoint is decoded.\n     *\n     * For multi-byte named entities, this will be called multiple times,\n     * with the second codepoint, and the same `consumed` value.\n     *\n     * @param codepoint The decoded codepoint.\n     * @param consumed The number of bytes consumed by the decoder.\n     */\n    emitCodePoint, \n    /** An object that is used to produce errors. */\n    errors) {\n        this.decodeTree = decodeTree;\n        this.emitCodePoint = emitCodePoint;\n        this.errors = errors;\n        /** The current state of the decoder. */\n        this.state = EntityDecoderState.EntityStart;\n        /** Characters that were consumed while parsing an entity. */\n        this.consumed = 1;\n        /**\n         * The result of the entity.\n         *\n         * Either the result index of a numeric entity, or the codepoint of a\n         * numeric entity.\n         */\n        this.result = 0;\n        /** The current index in the decode tree. */\n        this.treeIndex = 0;\n        /** The number of characters that were consumed in excess. */\n        this.excess = 1;\n        /** The mode in which the decoder is operating. */\n        this.decodeMode = DecodingMode.Strict;\n    }\n    /** Resets the instance to make it reusable. */\n    EntityDecoder.prototype.startEntity = function (decodeMode) {\n        this.decodeMode = decodeMode;\n        this.state = EntityDecoderState.EntityStart;\n        this.result = 0;\n        this.treeIndex = 0;\n        this.excess = 1;\n        this.consumed = 1;\n    };\n    /**\n     * Write an entity to the decoder. This can be called multiple times with partial entities.\n     * If the entity is incomplete, the decoder will return -1.\n     *\n     * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n     * entity is incomplete, and resume when the next string is written.\n     *\n     * @param string The string containing the entity (or a continuation of the entity).\n     * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.write = function (str, offset) {\n        switch (this.state) {\n            case EntityDecoderState.EntityStart: {\n                if (str.charCodeAt(offset) === CharCodes.NUM) {\n                    this.state = EntityDecoderState.NumericStart;\n                    this.consumed += 1;\n                    return this.stateNumericStart(str, offset + 1);\n                }\n                this.state = EntityDecoderState.NamedEntity;\n                return this.stateNamedEntity(str, offset);\n            }\n            case EntityDecoderState.NumericStart: {\n                return this.stateNumericStart(str, offset);\n            }\n            case EntityDecoderState.NumericDecimal: {\n                return this.stateNumericDecimal(str, offset);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.stateNumericHex(str, offset);\n            }\n            case EntityDecoderState.NamedEntity: {\n                return this.stateNamedEntity(str, offset);\n            }\n        }\n    };\n    /**\n     * Switches between the numeric decimal and hexadecimal states.\n     *\n     * Equivalent to the `Numeric character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n        if (offset >= str.length) {\n            return -1;\n        }\n        if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n            this.state = EntityDecoderState.NumericHex;\n            this.consumed += 1;\n            return this.stateNumericHex(str, offset + 1);\n        }\n        this.state = EntityDecoderState.NumericDecimal;\n        return this.stateNumericDecimal(str, offset);\n    };\n    EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n        if (start !== end) {\n            var digitCount = end - start;\n            this.result =\n                this.result * Math.pow(base, digitCount) +\n                    parseInt(str.substr(start, digitCount), base);\n            this.consumed += digitCount;\n        }\n    };\n    /**\n     * Parses a hexadecimal numeric entity.\n     *\n     * Equivalent to the `Hexademical character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n        var startIdx = offset;\n        while (offset < str.length) {\n            var char = str.charCodeAt(offset);\n            if (isNumber(char) || isHexadecimalCharacter(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(str, startIdx, offset, 16);\n                return this.emitNumericEntity(char, 3);\n            }\n        }\n        this.addToNumericResult(str, startIdx, offset, 16);\n        return -1;\n    };\n    /**\n     * Parses a decimal numeric entity.\n     *\n     * Equivalent to the `Decimal character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n        var startIdx = offset;\n        while (offset < str.length) {\n            var char = str.charCodeAt(offset);\n            if (isNumber(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(str, startIdx, offset, 10);\n                return this.emitNumericEntity(char, 2);\n            }\n        }\n        this.addToNumericResult(str, startIdx, offset, 10);\n        return -1;\n    };\n    /**\n     * Validate and emit a numeric entity.\n     *\n     * Implements the logic from the `Hexademical character reference start\n     * state` and `Numeric character reference end state` in the HTML spec.\n     *\n     * @param lastCp The last code point of the entity. Used to see if the\n     *               entity was terminated with a semicolon.\n     * @param expectedLength The minimum number of characters that should be\n     *                       consumed. Used to validate that at least one digit\n     *                       was consumed.\n     * @returns The number of characters that were consumed.\n     */\n    EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n        var _a;\n        // Ensure we consumed at least one digit.\n        if (this.consumed <= expectedLength) {\n            (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n            return 0;\n        }\n        // Figure out if this is a legit end of the entity\n        if (lastCp === CharCodes.SEMI) {\n            this.consumed += 1;\n        }\n        else if (this.decodeMode === DecodingMode.Strict) {\n            return 0;\n        }\n        this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n        if (this.errors) {\n            if (lastCp !== CharCodes.SEMI) {\n                this.errors.missingSemicolonAfterCharacterReference();\n            }\n            this.errors.validateNumericCharacterReference(this.result);\n        }\n        return this.consumed;\n    };\n    /**\n     * Parses a named entity.\n     *\n     * Equivalent to the `Named character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n        var decodeTree = this.decodeTree;\n        var current = decodeTree[this.treeIndex];\n        // The mask is the number of bytes of the value, including the current byte.\n        var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n        for (; offset < str.length; offset++, this.excess++) {\n            var char = str.charCodeAt(offset);\n            this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n            if (this.treeIndex < 0) {\n                return this.result === 0 ||\n                    // If we are parsing an attribute\n                    (this.decodeMode === DecodingMode.Attribute &&\n                        // We shouldn't have consumed any characters after the entity,\n                        (valueLength === 0 ||\n                            // And there should be no invalid characters.\n                            isEntityInAttributeInvalidEnd(char)))\n                    ? 0\n                    : this.emitNotTerminatedNamedEntity();\n            }\n            current = decodeTree[this.treeIndex];\n            valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n            // If the branch is a value, store it and continue\n            if (valueLength !== 0) {\n                // If the entity is terminated by a semicolon, we are done.\n                if (char === CharCodes.SEMI) {\n                    return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n                }\n                // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n                if (this.decodeMode !== DecodingMode.Strict) {\n                    this.result = this.treeIndex;\n                    this.consumed += this.excess;\n                    this.excess = 0;\n                }\n            }\n        }\n        return -1;\n    };\n    /**\n     * Emit a named entity that was not terminated with a semicolon.\n     *\n     * @returns The number of characters consumed.\n     */\n    EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n        var _a;\n        var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n        var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n        this.emitNamedEntityData(result, valueLength, this.consumed);\n        (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n        return this.consumed;\n    };\n    /**\n     * Emit a named entity.\n     *\n     * @param result The index of the entity in the decode tree.\n     * @param valueLength The number of bytes in the entity.\n     * @param consumed The number of characters consumed.\n     *\n     * @returns The number of characters consumed.\n     */\n    EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n        var decodeTree = this.decodeTree;\n        this.emitCodePoint(valueLength === 1\n            ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n            : decodeTree[result + 1], consumed);\n        if (valueLength === 3) {\n            // For multi-byte values, we need to emit the second byte.\n            this.emitCodePoint(decodeTree[result + 2], consumed);\n        }\n        return consumed;\n    };\n    /**\n     * Signal to the parser that the end of the input was reached.\n     *\n     * Remaining data will be emitted and relevant errors will be produced.\n     *\n     * @returns The number of characters consumed.\n     */\n    EntityDecoder.prototype.end = function () {\n        var _a;\n        switch (this.state) {\n            case EntityDecoderState.NamedEntity: {\n                // Emit a named entity if we have one.\n                return this.result !== 0 &&\n                    (this.decodeMode !== DecodingMode.Attribute ||\n                        this.result === this.treeIndex)\n                    ? this.emitNotTerminatedNamedEntity()\n                    : 0;\n            }\n            // Otherwise, emit a numeric entity if we have one.\n            case EntityDecoderState.NumericDecimal: {\n                return this.emitNumericEntity(0, 2);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.emitNumericEntity(0, 3);\n            }\n            case EntityDecoderState.NumericStart: {\n                (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n                return 0;\n            }\n            case EntityDecoderState.EntityStart: {\n                // Return 0 if we have no entity.\n                return 0;\n            }\n        }\n    };\n    return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n    var ret = \"\";\n    var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n    return function decodeWithTrie(str, decodeMode) {\n        var lastIndex = 0;\n        var offset = 0;\n        while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n            ret += str.slice(lastIndex, offset);\n            decoder.startEntity(decodeMode);\n            var len = decoder.write(str, \n            // Skip the \"&\"\n            offset + 1);\n            if (len < 0) {\n                lastIndex = offset + decoder.end();\n                break;\n            }\n            lastIndex = offset + len;\n            // If `len` is 0, skip the current `&` and continue.\n            offset = len === 0 ? lastIndex + 1 : lastIndex;\n        }\n        var result = ret + str.slice(lastIndex);\n        // Make sure we don't keep a reference to the final string.\n        ret = \"\";\n        return result;\n    };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n    var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n    var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n    // Case 1: Single branch encoded in jump offset\n    if (branchCount === 0) {\n        return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n    }\n    // Case 2: Multiple branches encoded in jump table\n    if (jumpOffset) {\n        var value = char - jumpOffset;\n        return value < 0 || value >= branchCount\n            ? -1\n            : decodeTree[nodeIdx + value] - 1;\n    }\n    // Case 3: Multiple branches encoded in dictionary\n    // Binary search for the character.\n    var lo = nodeIdx;\n    var hi = lo + branchCount - 1;\n    while (lo <= hi) {\n        var mid = (lo + hi) >>> 1;\n        var midVal = decodeTree[mid];\n        if (midVal < char) {\n            lo = mid + 1;\n        }\n        else if (midVal > char) {\n            hi = mid - 1;\n        }\n        else {\n            return decodeTree[mid + branchCount];\n        }\n    }\n    return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n    if (mode === void 0) { mode = DecodingMode.Legacy; }\n    return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n    return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n    return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n    return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar CharCodes;\n(function (CharCodes) {\n    CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n    CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n    CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n    CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n    CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n    CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n    CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n    CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n    CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n    CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n    CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n    CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n    CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n    CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n    CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n    CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n    CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n    CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n    CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n    CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n    CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n    CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n    CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n    CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n    CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n    CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n    CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n    State[State[\"Text\"] = 1] = \"Text\";\n    State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n    State[State[\"InTagName\"] = 3] = \"InTagName\";\n    State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n    State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n    State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n    State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n    // Attributes\n    State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n    State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n    State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n    State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n    State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n    State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n    State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n    // Declarations\n    State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n    State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n    // Processing instructions\n    State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n    // Comments & CDATA\n    State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n    State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n    State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n    State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n    // Special tags\n    State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n    State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n    State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n    State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n    State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n    State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n    State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n    State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n    return (c === CharCodes.Space ||\n        c === CharCodes.NewLine ||\n        c === CharCodes.Tab ||\n        c === CharCodes.FormFeed ||\n        c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n    return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n    return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n    return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n        (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n    return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n        (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nvar QuoteType;\n(function (QuoteType) {\n    QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n    QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n    QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n    QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType = exports.QuoteType || (exports.QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nvar Sequences = {\n    Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n    CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n    CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n    ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n    StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n    TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n};\nvar Tokenizer = /** @class */ (function () {\n    function Tokenizer(_a, cbs) {\n        var _b = _a.xmlMode, xmlMode = _b === void 0 ? false : _b, _c = _a.decodeEntities, decodeEntities = _c === void 0 ? true : _c;\n        this.cbs = cbs;\n        /** The current state the tokenizer is in. */\n        this.state = State.Text;\n        /** The read buffer. */\n        this.buffer = \"\";\n        /** The beginning of the section that is currently being read. */\n        this.sectionStart = 0;\n        /** The index within the buffer that we are currently looking at. */\n        this.index = 0;\n        /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n        this.baseState = State.Text;\n        /** For special parsing behavior inside of script and style tags. */\n        this.isSpecial = false;\n        /** Indicates whether the tokenizer has been paused. */\n        this.running = true;\n        /** The offset of the current buffer. */\n        this.offset = 0;\n        this.currentSequence = undefined;\n        this.sequenceIndex = 0;\n        this.trieIndex = 0;\n        this.trieCurrent = 0;\n        /** For named entities, the index of the value. For numeric entities, the code point. */\n        this.entityResult = 0;\n        this.entityExcess = 0;\n        this.xmlMode = xmlMode;\n        this.decodeEntities = decodeEntities;\n        this.entityTrie = xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree;\n    }\n    Tokenizer.prototype.reset = function () {\n        this.state = State.Text;\n        this.buffer = \"\";\n        this.sectionStart = 0;\n        this.index = 0;\n        this.baseState = State.Text;\n        this.currentSequence = undefined;\n        this.running = true;\n        this.offset = 0;\n    };\n    Tokenizer.prototype.write = function (chunk) {\n        this.offset += this.buffer.length;\n        this.buffer = chunk;\n        this.parse();\n    };\n    Tokenizer.prototype.end = function () {\n        if (this.running)\n            this.finish();\n    };\n    Tokenizer.prototype.pause = function () {\n        this.running = false;\n    };\n    Tokenizer.prototype.resume = function () {\n        this.running = true;\n        if (this.index < this.buffer.length + this.offset) {\n            this.parse();\n        }\n    };\n    /**\n     * The current index within all of the written data.\n     */\n    Tokenizer.prototype.getIndex = function () {\n        return this.index;\n    };\n    /**\n     * The start of the current section.\n     */\n    Tokenizer.prototype.getSectionStart = function () {\n        return this.sectionStart;\n    };\n    Tokenizer.prototype.stateText = function (c) {\n        if (c === CharCodes.Lt ||\n            (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n            if (this.index > this.sectionStart) {\n                this.cbs.ontext(this.sectionStart, this.index);\n            }\n            this.state = State.BeforeTagName;\n            this.sectionStart = this.index;\n        }\n        else if (this.decodeEntities && c === CharCodes.Amp) {\n            this.state = State.BeforeEntity;\n        }\n    };\n    Tokenizer.prototype.stateSpecialStartSequence = function (c) {\n        var isEnd = this.sequenceIndex === this.currentSequence.length;\n        var isMatch = isEnd\n            ? // If we are at the end of the sequence, make sure the tag name has ended\n                isEndOfTagSection(c)\n            : // Otherwise, do a case-insensitive comparison\n                (c | 0x20) === this.currentSequence[this.sequenceIndex];\n        if (!isMatch) {\n            this.isSpecial = false;\n        }\n        else if (!isEnd) {\n            this.sequenceIndex++;\n            return;\n        }\n        this.sequenceIndex = 0;\n        this.state = State.InTagName;\n        this.stateInTagName(c);\n    };\n    /** Look for an end tag. For <title> tags, also decode entities. */\n    Tokenizer.prototype.stateInSpecialTag = function (c) {\n        if (this.sequenceIndex === this.currentSequence.length) {\n            if (c === CharCodes.Gt || isWhitespace(c)) {\n                var endOfText = this.index - this.currentSequence.length;\n                if (this.sectionStart < endOfText) {\n                    // Spoof the index so that reported locations match up.\n                    var actualIndex = this.index;\n                    this.index = endOfText;\n                    this.cbs.ontext(this.sectionStart, endOfText);\n                    this.index = actualIndex;\n                }\n                this.isSpecial = false;\n                this.sectionStart = endOfText + 2; // Skip over the `</`\n                this.stateInClosingTagName(c);\n                return; // We are done; skip the rest of the function.\n            }\n            this.sequenceIndex = 0;\n        }\n        if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n            this.sequenceIndex += 1;\n        }\n        else if (this.sequenceIndex === 0) {\n            if (this.currentSequence === Sequences.TitleEnd) {\n                // We have to parse entities in <title> tags.\n                if (this.decodeEntities && c === CharCodes.Amp) {\n                    this.state = State.BeforeEntity;\n                }\n            }\n            else if (this.fastForwardTo(CharCodes.Lt)) {\n                // Outside of <title> tags, we can fast-forward.\n                this.sequenceIndex = 1;\n            }\n        }\n        else {\n            // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n            this.sequenceIndex = Number(c === CharCodes.Lt);\n        }\n    };\n    Tokenizer.prototype.stateCDATASequence = function (c) {\n        if (c === Sequences.Cdata[this.sequenceIndex]) {\n            if (++this.sequenceIndex === Sequences.Cdata.length) {\n                this.state = State.InCommentLike;\n                this.currentSequence = Sequences.CdataEnd;\n                this.sequenceIndex = 0;\n                this.sectionStart = this.index + 1;\n            }\n        }\n        else {\n            this.sequenceIndex = 0;\n            this.state = State.InDeclaration;\n            this.stateInDeclaration(c); // Reconsume the character\n        }\n    };\n    /**\n     * When we wait for one specific character, we can speed things up\n     * by skipping through the buffer until we find it.\n     *\n     * @returns Whether the character was found.\n     */\n    Tokenizer.prototype.fastForwardTo = function (c) {\n        while (++this.index < this.buffer.length + this.offset) {\n            if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n                return true;\n            }\n        }\n        /*\n         * We increment the index at the end of the `parse` loop,\n         * so set it to `buffer.length - 1` here.\n         *\n         * TODO: Refactor `parse` to increment index before calling states.\n         */\n        this.index = this.buffer.length + this.offset - 1;\n        return false;\n    };\n    /**\n     * Comments and CDATA end with `-->` and `]]>`.\n     *\n     * Their common qualities are:\n     * - Their end sequences have a distinct character they start with.\n     * - That character is then repeated, so we have to check multiple repeats.\n     * - All characters but the start character of the sequence can be skipped.\n     */\n    Tokenizer.prototype.stateInCommentLike = function (c) {\n        if (c === this.currentSequence[this.sequenceIndex]) {\n            if (++this.sequenceIndex === this.currentSequence.length) {\n                if (this.currentSequence === Sequences.CdataEnd) {\n                    this.cbs.oncdata(this.sectionStart, this.index, 2);\n                }\n                else {\n                    this.cbs.oncomment(this.sectionStart, this.index, 2);\n                }\n                this.sequenceIndex = 0;\n                this.sectionStart = this.index + 1;\n                this.state = State.Text;\n            }\n        }\n        else if (this.sequenceIndex === 0) {\n            // Fast-forward to the first character of the sequence\n            if (this.fastForwardTo(this.currentSequence[0])) {\n                this.sequenceIndex = 1;\n            }\n        }\n        else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n            // Allow long sequences, eg. --->, ]]]>\n            this.sequenceIndex = 0;\n        }\n    };\n    /**\n     * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n     *\n     * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n     * We allow anything that wouldn't end the tag.\n     */\n    Tokenizer.prototype.isTagStartChar = function (c) {\n        return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n    };\n    Tokenizer.prototype.startSpecial = function (sequence, offset) {\n        this.isSpecial = true;\n        this.currentSequence = sequence;\n        this.sequenceIndex = offset;\n        this.state = State.SpecialStartSequence;\n    };\n    Tokenizer.prototype.stateBeforeTagName = function (c) {\n        if (c === CharCodes.ExclamationMark) {\n            this.state = State.BeforeDeclaration;\n            this.sectionStart = this.index + 1;\n        }\n        else if (c === CharCodes.Questionmark) {\n            this.state = State.InProcessingInstruction;\n            this.sectionStart = this.index + 1;\n        }\n        else if (this.isTagStartChar(c)) {\n            var lower = c | 0x20;\n            this.sectionStart = this.index;\n            if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n                this.startSpecial(Sequences.TitleEnd, 3);\n            }\n            else {\n                this.state =\n                    !this.xmlMode && lower === Sequences.ScriptEnd[2]\n                        ? State.BeforeSpecialS\n                        : State.InTagName;\n            }\n        }\n        else if (c === CharCodes.Slash) {\n            this.state = State.BeforeClosingTagName;\n        }\n        else {\n            this.state = State.Text;\n            this.stateText(c);\n        }\n    };\n    Tokenizer.prototype.stateInTagName = function (c) {\n        if (isEndOfTagSection(c)) {\n            this.cbs.onopentagname(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n    };\n    Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n        if (isWhitespace(c)) {\n            // Ignore\n        }\n        else if (c === CharCodes.Gt) {\n            this.state = State.Text;\n        }\n        else {\n            this.state = this.isTagStartChar(c)\n                ? State.InClosingTagName\n                : State.InSpecialComment;\n            this.sectionStart = this.index;\n        }\n    };\n    Tokenizer.prototype.stateInClosingTagName = function (c) {\n        if (c === CharCodes.Gt || isWhitespace(c)) {\n            this.cbs.onclosetag(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.state = State.AfterClosingTagName;\n            this.stateAfterClosingTagName(c);\n        }\n    };\n    Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n        // Skip everything until \">\"\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.state = State.Text;\n            this.baseState = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    };\n    Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n        if (c === CharCodes.Gt) {\n            this.cbs.onopentagend(this.index);\n            if (this.isSpecial) {\n                this.state = State.InSpecialTag;\n                this.sequenceIndex = 0;\n            }\n            else {\n                this.state = State.Text;\n            }\n            this.baseState = this.state;\n            this.sectionStart = this.index + 1;\n        }\n        else if (c === CharCodes.Slash) {\n            this.state = State.InSelfClosingTag;\n        }\n        else if (!isWhitespace(c)) {\n            this.state = State.InAttributeName;\n            this.sectionStart = this.index;\n        }\n    };\n    Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n        if (c === CharCodes.Gt) {\n            this.cbs.onselfclosingtag(this.index);\n            this.state = State.Text;\n            this.baseState = State.Text;\n            this.sectionStart = this.index + 1;\n            this.isSpecial = false; // Reset special state, in case of self-closing special tags\n        }\n        else if (!isWhitespace(c)) {\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n    };\n    Tokenizer.prototype.stateInAttributeName = function (c) {\n        if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n            this.cbs.onattribname(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.state = State.AfterAttributeName;\n            this.stateAfterAttributeName(c);\n        }\n    };\n    Tokenizer.prototype.stateAfterAttributeName = function (c) {\n        if (c === CharCodes.Eq) {\n            this.state = State.BeforeAttributeValue;\n        }\n        else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n            this.cbs.onattribend(QuoteType.NoValue, this.index);\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n        else if (!isWhitespace(c)) {\n            this.cbs.onattribend(QuoteType.NoValue, this.index);\n            this.state = State.InAttributeName;\n            this.sectionStart = this.index;\n        }\n    };\n    Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n        if (c === CharCodes.DoubleQuote) {\n            this.state = State.InAttributeValueDq;\n            this.sectionStart = this.index + 1;\n        }\n        else if (c === CharCodes.SingleQuote) {\n            this.state = State.InAttributeValueSq;\n            this.sectionStart = this.index + 1;\n        }\n        else if (!isWhitespace(c)) {\n            this.sectionStart = this.index;\n            this.state = State.InAttributeValueNq;\n            this.stateInAttributeValueNoQuotes(c); // Reconsume token\n        }\n    };\n    Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n        if (c === quote ||\n            (!this.decodeEntities && this.fastForwardTo(quote))) {\n            this.cbs.onattribdata(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.cbs.onattribend(quote === CharCodes.DoubleQuote\n                ? QuoteType.Double\n                : QuoteType.Single, this.index);\n            this.state = State.BeforeAttributeName;\n        }\n        else if (this.decodeEntities && c === CharCodes.Amp) {\n            this.baseState = this.state;\n            this.state = State.BeforeEntity;\n        }\n    };\n    Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n        this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n    };\n    Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n        this.handleInAttributeValue(c, CharCodes.SingleQuote);\n    };\n    Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n        if (isWhitespace(c) || c === CharCodes.Gt) {\n            this.cbs.onattribdata(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.cbs.onattribend(QuoteType.Unquoted, this.index);\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n        else if (this.decodeEntities && c === CharCodes.Amp) {\n            this.baseState = this.state;\n            this.state = State.BeforeEntity;\n        }\n    };\n    Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n        if (c === CharCodes.OpeningSquareBracket) {\n            this.state = State.CDATASequence;\n            this.sequenceIndex = 0;\n        }\n        else {\n            this.state =\n                c === CharCodes.Dash\n                    ? State.BeforeComment\n                    : State.InDeclaration;\n        }\n    };\n    Tokenizer.prototype.stateInDeclaration = function (c) {\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.cbs.ondeclaration(this.sectionStart, this.index);\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    };\n    Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    };\n    Tokenizer.prototype.stateBeforeComment = function (c) {\n        if (c === CharCodes.Dash) {\n            this.state = State.InCommentLike;\n            this.currentSequence = Sequences.CommentEnd;\n            // Allow short comments (eg. <!-->)\n            this.sequenceIndex = 2;\n            this.sectionStart = this.index + 1;\n        }\n        else {\n            this.state = State.InDeclaration;\n        }\n    };\n    Tokenizer.prototype.stateInSpecialComment = function (c) {\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.cbs.oncomment(this.sectionStart, this.index, 0);\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    };\n    Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n        var lower = c | 0x20;\n        if (lower === Sequences.ScriptEnd[3]) {\n            this.startSpecial(Sequences.ScriptEnd, 4);\n        }\n        else if (lower === Sequences.StyleEnd[3]) {\n            this.startSpecial(Sequences.StyleEnd, 4);\n        }\n        else {\n            this.state = State.InTagName;\n            this.stateInTagName(c); // Consume the token again\n        }\n    };\n    Tokenizer.prototype.stateBeforeEntity = function (c) {\n        // Start excess with 1 to include the '&'\n        this.entityExcess = 1;\n        this.entityResult = 0;\n        if (c === CharCodes.Number) {\n            this.state = State.BeforeNumericEntity;\n        }\n        else if (c === CharCodes.Amp) {\n            // We have two `&` characters in a row. Stay in the current state.\n        }\n        else {\n            this.trieIndex = 0;\n            this.trieCurrent = this.entityTrie[0];\n            this.state = State.InNamedEntity;\n            this.stateInNamedEntity(c);\n        }\n    };\n    Tokenizer.prototype.stateInNamedEntity = function (c) {\n        this.entityExcess += 1;\n        this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n        if (this.trieIndex < 0) {\n            this.emitNamedEntity();\n            this.index--;\n            return;\n        }\n        this.trieCurrent = this.entityTrie[this.trieIndex];\n        var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n        // If the branch is a value, store it and continue\n        if (masked) {\n            // The mask is the number of bytes of the value, including the current byte.\n            var valueLength = (masked >> 14) - 1;\n            // If we have a legacy entity while parsing strictly, just skip the number of bytes\n            if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n                this.trieIndex += valueLength;\n            }\n            else {\n                // Add 1 as we have already incremented the excess\n                var entityStart = this.index - this.entityExcess + 1;\n                if (entityStart > this.sectionStart) {\n                    this.emitPartial(this.sectionStart, entityStart);\n                }\n                // If this is a surrogate pair, consume the next two bytes\n                this.entityResult = this.trieIndex;\n                this.trieIndex += valueLength;\n                this.entityExcess = 0;\n                this.sectionStart = this.index + 1;\n                if (valueLength === 0) {\n                    this.emitNamedEntity();\n                }\n            }\n        }\n    };\n    Tokenizer.prototype.emitNamedEntity = function () {\n        this.state = this.baseState;\n        if (this.entityResult === 0) {\n            return;\n        }\n        var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n            14;\n        switch (valueLength) {\n            case 1: {\n                this.emitCodePoint(this.entityTrie[this.entityResult] &\n                    ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n                break;\n            }\n            case 2: {\n                this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n                break;\n            }\n            case 3: {\n                this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n                this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n            }\n        }\n    };\n    Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n        if ((c | 0x20) === CharCodes.LowerX) {\n            this.entityExcess++;\n            this.state = State.InHexEntity;\n        }\n        else {\n            this.state = State.InNumericEntity;\n            this.stateInNumericEntity(c);\n        }\n    };\n    Tokenizer.prototype.emitNumericEntity = function (strict) {\n        var entityStart = this.index - this.entityExcess - 1;\n        var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n        if (numberStart !== this.index) {\n            // Emit leading data if any\n            if (entityStart > this.sectionStart) {\n                this.emitPartial(this.sectionStart, entityStart);\n            }\n            this.sectionStart = this.index + Number(strict);\n            this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n        }\n        this.state = this.baseState;\n    };\n    Tokenizer.prototype.stateInNumericEntity = function (c) {\n        if (c === CharCodes.Semi) {\n            this.emitNumericEntity(true);\n        }\n        else if (isNumber(c)) {\n            this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n            this.entityExcess++;\n        }\n        else {\n            if (this.allowLegacyEntity()) {\n                this.emitNumericEntity(false);\n            }\n            else {\n                this.state = this.baseState;\n            }\n            this.index--;\n        }\n    };\n    Tokenizer.prototype.stateInHexEntity = function (c) {\n        if (c === CharCodes.Semi) {\n            this.emitNumericEntity(true);\n        }\n        else if (isNumber(c)) {\n            this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n            this.entityExcess++;\n        }\n        else if (isHexDigit(c)) {\n            this.entityResult =\n                this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n            this.entityExcess++;\n        }\n        else {\n            if (this.allowLegacyEntity()) {\n                this.emitNumericEntity(false);\n            }\n            else {\n                this.state = this.baseState;\n            }\n            this.index--;\n        }\n    };\n    Tokenizer.prototype.allowLegacyEntity = function () {\n        return (!this.xmlMode &&\n            (this.baseState === State.Text ||\n                this.baseState === State.InSpecialTag));\n    };\n    /**\n     * Remove data that has already been consumed from the buffer.\n     */\n    Tokenizer.prototype.cleanup = function () {\n        // If we are inside of text or attributes, emit what we already have.\n        if (this.running && this.sectionStart !== this.index) {\n            if (this.state === State.Text ||\n                (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n                this.cbs.ontext(this.sectionStart, this.index);\n                this.sectionStart = this.index;\n            }\n            else if (this.state === State.InAttributeValueDq ||\n                this.state === State.InAttributeValueSq ||\n                this.state === State.InAttributeValueNq) {\n                this.cbs.onattribdata(this.sectionStart, this.index);\n                this.sectionStart = this.index;\n            }\n        }\n    };\n    Tokenizer.prototype.shouldContinue = function () {\n        return this.index < this.buffer.length + this.offset && this.running;\n    };\n    /**\n     * Iterates through the buffer, calling the function corresponding to the current state.\n     *\n     * States that are more likely to be hit are higher up, as a performance improvement.\n     */\n    Tokenizer.prototype.parse = function () {\n        while (this.shouldContinue()) {\n            var c = this.buffer.charCodeAt(this.index - this.offset);\n            switch (this.state) {\n                case State.Text: {\n                    this.stateText(c);\n                    break;\n                }\n                case State.SpecialStartSequence: {\n                    this.stateSpecialStartSequence(c);\n                    break;\n                }\n                case State.InSpecialTag: {\n                    this.stateInSpecialTag(c);\n                    break;\n                }\n                case State.CDATASequence: {\n                    this.stateCDATASequence(c);\n                    break;\n                }\n                case State.InAttributeValueDq: {\n                    this.stateInAttributeValueDoubleQuotes(c);\n                    break;\n                }\n                case State.InAttributeName: {\n                    this.stateInAttributeName(c);\n                    break;\n                }\n                case State.InCommentLike: {\n                    this.stateInCommentLike(c);\n                    break;\n                }\n                case State.InSpecialComment: {\n                    this.stateInSpecialComment(c);\n                    break;\n                }\n                case State.BeforeAttributeName: {\n                    this.stateBeforeAttributeName(c);\n                    break;\n                }\n                case State.InTagName: {\n                    this.stateInTagName(c);\n                    break;\n                }\n                case State.InClosingTagName: {\n                    this.stateInClosingTagName(c);\n                    break;\n                }\n                case State.BeforeTagName: {\n                    this.stateBeforeTagName(c);\n                    break;\n                }\n                case State.AfterAttributeName: {\n                    this.stateAfterAttributeName(c);\n                    break;\n                }\n                case State.InAttributeValueSq: {\n                    this.stateInAttributeValueSingleQuotes(c);\n                    break;\n                }\n                case State.BeforeAttributeValue: {\n                    this.stateBeforeAttributeValue(c);\n                    break;\n                }\n                case State.BeforeClosingTagName: {\n                    this.stateBeforeClosingTagName(c);\n                    break;\n                }\n                case State.AfterClosingTagName: {\n                    this.stateAfterClosingTagName(c);\n                    break;\n                }\n                case State.BeforeSpecialS: {\n                    this.stateBeforeSpecialS(c);\n                    break;\n                }\n                case State.InAttributeValueNq: {\n                    this.stateInAttributeValueNoQuotes(c);\n                    break;\n                }\n                case State.InSelfClosingTag: {\n                    this.stateInSelfClosingTag(c);\n                    break;\n                }\n                case State.InDeclaration: {\n                    this.stateInDeclaration(c);\n                    break;\n                }\n                case State.BeforeDeclaration: {\n                    this.stateBeforeDeclaration(c);\n                    break;\n                }\n                case State.BeforeComment: {\n                    this.stateBeforeComment(c);\n                    break;\n                }\n                case State.InProcessingInstruction: {\n                    this.stateInProcessingInstruction(c);\n                    break;\n                }\n                case State.InNamedEntity: {\n                    this.stateInNamedEntity(c);\n                    break;\n                }\n                case State.BeforeEntity: {\n                    this.stateBeforeEntity(c);\n                    break;\n                }\n                case State.InHexEntity: {\n                    this.stateInHexEntity(c);\n                    break;\n                }\n                case State.InNumericEntity: {\n                    this.stateInNumericEntity(c);\n                    break;\n                }\n                default: {\n                    // `this._state === State.BeforeNumericEntity`\n                    this.stateBeforeNumericEntity(c);\n                }\n            }\n            this.index++;\n        }\n        this.cleanup();\n    };\n    Tokenizer.prototype.finish = function () {\n        if (this.state === State.InNamedEntity) {\n            this.emitNamedEntity();\n        }\n        // If there is remaining data, emit it in a reasonable way\n        if (this.sectionStart < this.index) {\n            this.handleTrailingData();\n        }\n        this.cbs.onend();\n    };\n    /** Handle any trailing data. */\n    Tokenizer.prototype.handleTrailingData = function () {\n        var endIndex = this.buffer.length + this.offset;\n        if (this.state === State.InCommentLike) {\n            if (this.currentSequence === Sequences.CdataEnd) {\n                this.cbs.oncdata(this.sectionStart, endIndex, 0);\n            }\n            else {\n                this.cbs.oncomment(this.sectionStart, endIndex, 0);\n            }\n        }\n        else if (this.state === State.InNumericEntity &&\n            this.allowLegacyEntity()) {\n            this.emitNumericEntity(false);\n            // All trailing data will have been consumed\n        }\n        else if (this.state === State.InHexEntity &&\n            this.allowLegacyEntity()) {\n            this.emitNumericEntity(false);\n            // All trailing data will have been consumed\n        }\n        else if (this.state === State.InTagName ||\n            this.state === State.BeforeAttributeName ||\n            this.state === State.BeforeAttributeValue ||\n            this.state === State.AfterAttributeName ||\n            this.state === State.InAttributeName ||\n            this.state === State.InAttributeValueSq ||\n            this.state === State.InAttributeValueDq ||\n            this.state === State.InAttributeValueNq ||\n            this.state === State.InClosingTagName) {\n            /*\n             * If we are currently in an opening or closing tag, us not calling the\n             * respective callback signals that the tag should be ignored.\n             */\n        }\n        else {\n            this.cbs.ontext(this.sectionStart, endIndex);\n        }\n    };\n    Tokenizer.prototype.emitPartial = function (start, endIndex) {\n        if (this.baseState !== State.Text &&\n            this.baseState !== State.InSpecialTag) {\n            this.cbs.onattribdata(start, endIndex);\n        }\n        else {\n            this.cbs.ontext(start, endIndex);\n        }\n    };\n    Tokenizer.prototype.emitCodePoint = function (cp) {\n        if (this.baseState !== State.Text &&\n            this.baseState !== State.InSpecialTag) {\n            this.cbs.onattribentity(cp);\n        }\n        else {\n            this.cbs.ontextentity(cp);\n        }\n    };\n    return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar formTags = new Set([\n    \"input\",\n    \"option\",\n    \"optgroup\",\n    \"select\",\n    \"button\",\n    \"datalist\",\n    \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar tableSectionTags = new Set([\"thead\", \"tbody\"]);\nvar ddtTags = new Set([\"dd\", \"dt\"]);\nvar rtpTags = new Set([\"rt\", \"rp\"]);\nvar openImpliesClose = new Map([\n    [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n    [\"th\", new Set([\"th\"])],\n    [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n    [\"body\", new Set([\"head\", \"link\", \"script\"])],\n    [\"li\", new Set([\"li\"])],\n    [\"p\", pTag],\n    [\"h1\", pTag],\n    [\"h2\", pTag],\n    [\"h3\", pTag],\n    [\"h4\", pTag],\n    [\"h5\", pTag],\n    [\"h6\", pTag],\n    [\"select\", formTags],\n    [\"input\", formTags],\n    [\"output\", formTags],\n    [\"button\", formTags],\n    [\"datalist\", formTags],\n    [\"textarea\", formTags],\n    [\"option\", new Set([\"option\"])],\n    [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n    [\"dd\", ddtTags],\n    [\"dt\", ddtTags],\n    [\"address\", pTag],\n    [\"article\", pTag],\n    [\"aside\", pTag],\n    [\"blockquote\", pTag],\n    [\"details\", pTag],\n    [\"div\", pTag],\n    [\"dl\", pTag],\n    [\"fieldset\", pTag],\n    [\"figcaption\", pTag],\n    [\"figure\", pTag],\n    [\"footer\", pTag],\n    [\"form\", pTag],\n    [\"header\", pTag],\n    [\"hr\", pTag],\n    [\"main\", pTag],\n    [\"nav\", pTag],\n    [\"ol\", pTag],\n    [\"pre\", pTag],\n    [\"section\", pTag],\n    [\"table\", pTag],\n    [\"ul\", pTag],\n    [\"rt\", rtpTags],\n    [\"rp\", rtpTags],\n    [\"tbody\", tableSectionTags],\n    [\"tfoot\", tableSectionTags],\n]);\nvar voidElements = new Set([\n    \"area\",\n    \"base\",\n    \"basefont\",\n    \"br\",\n    \"col\",\n    \"command\",\n    \"embed\",\n    \"frame\",\n    \"hr\",\n    \"img\",\n    \"input\",\n    \"isindex\",\n    \"keygen\",\n    \"link\",\n    \"meta\",\n    \"param\",\n    \"source\",\n    \"track\",\n    \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n    \"mi\",\n    \"mo\",\n    \"mn\",\n    \"ms\",\n    \"mtext\",\n    \"annotation-xml\",\n    \"foreignobject\",\n    \"desc\",\n    \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n    function Parser(cbs, options) {\n        if (options === void 0) { options = {}; }\n        var _a, _b, _c, _d, _e;\n        this.options = options;\n        /** The start index of the last event. */\n        this.startIndex = 0;\n        /** The end index of the last event. */\n        this.endIndex = 0;\n        /**\n         * Store the start index of the current open tag,\n         * so we can update the start index for attributes.\n         */\n        this.openTagStart = 0;\n        this.tagname = \"\";\n        this.attribname = \"\";\n        this.attribvalue = \"\";\n        this.attribs = null;\n        this.stack = [];\n        this.foreignContext = [];\n        this.buffers = [];\n        this.bufferOffset = 0;\n        /** The index of the last written buffer. Used when resuming after a `pause()`. */\n        this.writeIndex = 0;\n        /** Indicates whether the parser has finished running / `.end` has been called. */\n        this.ended = false;\n        this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n        this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n        this.lowerCaseAttributeNames =\n            (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n        this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);\n        (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n    }\n    // Tokenizer event handlers\n    /** @internal */\n    Parser.prototype.ontext = function (start, endIndex) {\n        var _a, _b;\n        var data = this.getSlice(start, endIndex);\n        this.endIndex = endIndex - 1;\n        (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n        this.startIndex = endIndex;\n    };\n    /** @internal */\n    Parser.prototype.ontextentity = function (cp) {\n        var _a, _b;\n        /*\n         * Entities can be emitted on the character, or directly after.\n         * We use the section start here to get accurate indices.\n         */\n        var index = this.tokenizer.getSectionStart();\n        this.endIndex = index - 1;\n        (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));\n        this.startIndex = index;\n    };\n    Parser.prototype.isVoidElement = function (name) {\n        return !this.options.xmlMode && voidElements.has(name);\n    };\n    /** @internal */\n    Parser.prototype.onopentagname = function (start, endIndex) {\n        this.endIndex = endIndex;\n        var name = this.getSlice(start, endIndex);\n        if (this.lowerCaseTagNames) {\n            name = name.toLowerCase();\n        }\n        this.emitOpenTag(name);\n    };\n    Parser.prototype.emitOpenTag = function (name) {\n        var _a, _b, _c, _d;\n        this.openTagStart = this.startIndex;\n        this.tagname = name;\n        var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n        if (impliesClose) {\n            while (this.stack.length > 0 &&\n                impliesClose.has(this.stack[this.stack.length - 1])) {\n                var element = this.stack.pop();\n                (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n            }\n        }\n        if (!this.isVoidElement(name)) {\n            this.stack.push(name);\n            if (foreignContextElements.has(name)) {\n                this.foreignContext.push(true);\n            }\n            else if (htmlIntegrationElements.has(name)) {\n                this.foreignContext.push(false);\n            }\n        }\n        (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n        if (this.cbs.onopentag)\n            this.attribs = {};\n    };\n    Parser.prototype.endOpenTag = function (isImplied) {\n        var _a, _b;\n        this.startIndex = this.openTagStart;\n        if (this.attribs) {\n            (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n            this.attribs = null;\n        }\n        if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n            this.cbs.onclosetag(this.tagname, true);\n        }\n        this.tagname = \"\";\n    };\n    /** @internal */\n    Parser.prototype.onopentagend = function (endIndex) {\n        this.endIndex = endIndex;\n        this.endOpenTag(false);\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.onclosetag = function (start, endIndex) {\n        var _a, _b, _c, _d, _e, _f;\n        this.endIndex = endIndex;\n        var name = this.getSlice(start, endIndex);\n        if (this.lowerCaseTagNames) {\n            name = name.toLowerCase();\n        }\n        if (foreignContextElements.has(name) ||\n            htmlIntegrationElements.has(name)) {\n            this.foreignContext.pop();\n        }\n        if (!this.isVoidElement(name)) {\n            var pos = this.stack.lastIndexOf(name);\n            if (pos !== -1) {\n                if (this.cbs.onclosetag) {\n                    var count = this.stack.length - pos;\n                    while (count--) {\n                        // We know the stack has sufficient elements.\n                        this.cbs.onclosetag(this.stack.pop(), count !== 0);\n                    }\n                }\n                else\n                    this.stack.length = pos;\n            }\n            else if (!this.options.xmlMode && name === \"p\") {\n                // Implicit open before close\n                this.emitOpenTag(\"p\");\n                this.closeCurrentTag(true);\n            }\n        }\n        else if (!this.options.xmlMode && name === \"br\") {\n            // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n            (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n            (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n            (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.onselfclosingtag = function (endIndex) {\n        this.endIndex = endIndex;\n        if (this.options.xmlMode ||\n            this.options.recognizeSelfClosing ||\n            this.foreignContext[this.foreignContext.length - 1]) {\n            this.closeCurrentTag(false);\n            // Set `startIndex` for next node\n            this.startIndex = endIndex + 1;\n        }\n        else {\n            // Ignore the fact that the tag is self-closing.\n            this.onopentagend(endIndex);\n        }\n    };\n    Parser.prototype.closeCurrentTag = function (isOpenImplied) {\n        var _a, _b;\n        var name = this.tagname;\n        this.endOpenTag(isOpenImplied);\n        // Self-closing tags will be on the top of the stack\n        if (this.stack[this.stack.length - 1] === name) {\n            // If the opening tag isn't implied, the closing tag has to be implied.\n            (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n            this.stack.pop();\n        }\n    };\n    /** @internal */\n    Parser.prototype.onattribname = function (start, endIndex) {\n        this.startIndex = start;\n        var name = this.getSlice(start, endIndex);\n        this.attribname = this.lowerCaseAttributeNames\n            ? name.toLowerCase()\n            : name;\n    };\n    /** @internal */\n    Parser.prototype.onattribdata = function (start, endIndex) {\n        this.attribvalue += this.getSlice(start, endIndex);\n    };\n    /** @internal */\n    Parser.prototype.onattribentity = function (cp) {\n        this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);\n    };\n    /** @internal */\n    Parser.prototype.onattribend = function (quote, endIndex) {\n        var _a, _b;\n        this.endIndex = endIndex;\n        (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double\n            ? '\"'\n            : quote === Tokenizer_js_1.QuoteType.Single\n                ? \"'\"\n                : quote === Tokenizer_js_1.QuoteType.NoValue\n                    ? undefined\n                    : null);\n        if (this.attribs &&\n            !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n            this.attribs[this.attribname] = this.attribvalue;\n        }\n        this.attribvalue = \"\";\n    };\n    Parser.prototype.getInstructionName = function (value) {\n        var index = value.search(reNameEnd);\n        var name = index < 0 ? value : value.substr(0, index);\n        if (this.lowerCaseTagNames) {\n            name = name.toLowerCase();\n        }\n        return name;\n    };\n    /** @internal */\n    Parser.prototype.ondeclaration = function (start, endIndex) {\n        this.endIndex = endIndex;\n        var value = this.getSlice(start, endIndex);\n        if (this.cbs.onprocessinginstruction) {\n            var name = this.getInstructionName(value);\n            this.cbs.onprocessinginstruction(\"!\".concat(name), \"!\".concat(value));\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.onprocessinginstruction = function (start, endIndex) {\n        this.endIndex = endIndex;\n        var value = this.getSlice(start, endIndex);\n        if (this.cbs.onprocessinginstruction) {\n            var name = this.getInstructionName(value);\n            this.cbs.onprocessinginstruction(\"?\".concat(name), \"?\".concat(value));\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.oncomment = function (start, endIndex, offset) {\n        var _a, _b, _c, _d;\n        this.endIndex = endIndex;\n        (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n        (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.oncdata = function (start, endIndex, offset) {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n        this.endIndex = endIndex;\n        var value = this.getSlice(start, endIndex - offset);\n        if (this.options.xmlMode || this.options.recognizeCDATA) {\n            (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n            (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n            (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n        }\n        else {\n            (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, \"[CDATA[\".concat(value, \"]]\"));\n            (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.onend = function () {\n        var _a, _b;\n        if (this.cbs.onclosetag) {\n            // Set the end index for all remaining tags\n            this.endIndex = this.startIndex;\n            for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n                ;\n        }\n        (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n    };\n    /**\n     * Resets the parser to a blank state, ready to parse a new HTML document\n     */\n    Parser.prototype.reset = function () {\n        var _a, _b, _c, _d;\n        (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n        this.tokenizer.reset();\n        this.tagname = \"\";\n        this.attribname = \"\";\n        this.attribs = null;\n        this.stack.length = 0;\n        this.startIndex = 0;\n        this.endIndex = 0;\n        (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n        this.buffers.length = 0;\n        this.bufferOffset = 0;\n        this.writeIndex = 0;\n        this.ended = false;\n    };\n    /**\n     * Resets the parser, then parses a complete document and\n     * pushes it to the handler.\n     *\n     * @param data Document to parse.\n     */\n    Parser.prototype.parseComplete = function (data) {\n        this.reset();\n        this.end(data);\n    };\n    Parser.prototype.getSlice = function (start, end) {\n        while (start - this.bufferOffset >= this.buffers[0].length) {\n            this.shiftBuffer();\n        }\n        var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n        while (end - this.bufferOffset > this.buffers[0].length) {\n            this.shiftBuffer();\n            slice += this.buffers[0].slice(0, end - this.bufferOffset);\n        }\n        return slice;\n    };\n    Parser.prototype.shiftBuffer = function () {\n        this.bufferOffset += this.buffers[0].length;\n        this.writeIndex--;\n        this.buffers.shift();\n    };\n    /**\n     * Parses a chunk of data and calls the corresponding callbacks.\n     *\n     * @param chunk Chunk to parse.\n     */\n    Parser.prototype.write = function (chunk) {\n        var _a, _b;\n        if (this.ended) {\n            (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n            return;\n        }\n        this.buffers.push(chunk);\n        if (this.tokenizer.running) {\n            this.tokenizer.write(chunk);\n            this.writeIndex++;\n        }\n    };\n    /**\n     * Parses the end of the buffer and clears the stack, calls onend.\n     *\n     * @param chunk Optional final chunk to parse.\n     */\n    Parser.prototype.end = function (chunk) {\n        var _a, _b;\n        if (this.ended) {\n            (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n            return;\n        }\n        if (chunk)\n            this.write(chunk);\n        this.ended = true;\n        this.tokenizer.end();\n    };\n    /**\n     * Pauses parsing. The parser won't emit events until `resume` is called.\n     */\n    Parser.prototype.pause = function () {\n        this.tokenizer.pause();\n    };\n    /**\n     * Resumes parsing after `pause` was called.\n     */\n    Parser.prototype.resume = function () {\n        this.tokenizer.resume();\n        while (this.tokenizer.running &&\n            this.writeIndex < this.buffers.length) {\n            this.tokenizer.write(this.buffers[this.writeIndex++]);\n        }\n        if (this.ended)\n            this.tokenizer.end();\n    };\n    /**\n     * Alias of `write`, for backwards compatibility.\n     *\n     * @param chunk Chunk to parse.\n     * @deprecated\n     */\n    Parser.prototype.parseChunk = function (chunk) {\n        this.write(chunk);\n    };\n    /**\n     * Alias of `end`, for backwards compatibility.\n     *\n     * @param chunk Optional final chunk to parse.\n     * @deprecated\n     */\n    Parser.prototype.done = function (chunk) {\n        this.end(chunk);\n    };\n    return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n    /** Type for the root element of a document */\n    ElementType[\"Root\"] = \"root\";\n    /** Type for Text */\n    ElementType[\"Text\"] = \"text\";\n    /** Type for <? ... ?> */\n    ElementType[\"Directive\"] = \"directive\";\n    /** Type for <!-- ... --> */\n    ElementType[\"Comment\"] = \"comment\";\n    /** Type for <script> tags */\n    ElementType[\"Script\"] = \"script\";\n    /** Type for <style> tags */\n    ElementType[\"Style\"] = \"style\";\n    /** Type for Any tag */\n    ElementType[\"Tag\"] = \"tag\";\n    /** Type for <![CDATA[ ... ]]> */\n    ElementType[\"CDATA\"] = \"cdata\";\n    /** Type for <!doctype ...> */\n    ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n    return (elem.type === ElementType.Tag ||\n        elem.type === ElementType.Script ||\n        elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n    function Node() {\n        /** Parent of the node */\n        this.parent = null;\n        /** Previous sibling */\n        this.prev = null;\n        /** Next sibling */\n        this.next = null;\n        /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n        this.startIndex = null;\n        /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n        this.endIndex = null;\n    }\n    Object.defineProperty(Node.prototype, \"parentNode\", {\n        // Read-write aliases for properties\n        /**\n         * Same as {@link parent}.\n         * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n         */\n        get: function () {\n            return this.parent;\n        },\n        set: function (parent) {\n            this.parent = parent;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Node.prototype, \"previousSibling\", {\n        /**\n         * Same as {@link prev}.\n         * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n         */\n        get: function () {\n            return this.prev;\n        },\n        set: function (prev) {\n            this.prev = prev;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Node.prototype, \"nextSibling\", {\n        /**\n         * Same as {@link next}.\n         * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n         */\n        get: function () {\n            return this.next;\n        },\n        set: function (next) {\n            this.next = next;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * Clone this node, and optionally its children.\n     *\n     * @param recursive Clone child nodes as well.\n     * @returns A clone of the node.\n     */\n    Node.prototype.cloneNode = function (recursive) {\n        if (recursive === void 0) { recursive = false; }\n        return cloneNode(this, recursive);\n    };\n    return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n    __extends(DataNode, _super);\n    /**\n     * @param data The content of the data node\n     */\n    function DataNode(data) {\n        var _this = _super.call(this) || this;\n        _this.data = data;\n        return _this;\n    }\n    Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n        /**\n         * Same as {@link data}.\n         * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n         */\n        get: function () {\n            return this.data;\n        },\n        set: function (data) {\n            this.data = data;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n    __extends(Text, _super);\n    function Text() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = domelementtype_1.ElementType.Text;\n        return _this;\n    }\n    Object.defineProperty(Text.prototype, \"nodeType\", {\n        get: function () {\n            return 3;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n    __extends(Comment, _super);\n    function Comment() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = domelementtype_1.ElementType.Comment;\n        return _this;\n    }\n    Object.defineProperty(Comment.prototype, \"nodeType\", {\n        get: function () {\n            return 8;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n    __extends(ProcessingInstruction, _super);\n    function ProcessingInstruction(name, data) {\n        var _this = _super.call(this, data) || this;\n        _this.name = name;\n        _this.type = domelementtype_1.ElementType.Directive;\n        return _this;\n    }\n    Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n        get: function () {\n            return 1;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n    __extends(NodeWithChildren, _super);\n    /**\n     * @param children Children of the node. Only certain node types can have children.\n     */\n    function NodeWithChildren(children) {\n        var _this = _super.call(this) || this;\n        _this.children = children;\n        return _this;\n    }\n    Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n        // Aliases\n        /** First child of the node. */\n        get: function () {\n            var _a;\n            return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n        /** Last child of the node. */\n        get: function () {\n            return this.children.length > 0\n                ? this.children[this.children.length - 1]\n                : null;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n        /**\n         * Same as {@link children}.\n         * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n         */\n        get: function () {\n            return this.children;\n        },\n        set: function (children) {\n            this.children = children;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n    __extends(CDATA, _super);\n    function CDATA() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = domelementtype_1.ElementType.CDATA;\n        return _this;\n    }\n    Object.defineProperty(CDATA.prototype, \"nodeType\", {\n        get: function () {\n            return 4;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n    __extends(Document, _super);\n    function Document() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = domelementtype_1.ElementType.Root;\n        return _this;\n    }\n    Object.defineProperty(Document.prototype, \"nodeType\", {\n        get: function () {\n            return 9;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n    __extends(Element, _super);\n    /**\n     * @param name Name of the tag, eg. `div`, `span`.\n     * @param attribs Object mapping attribute names to attribute values.\n     * @param children Children of the node.\n     */\n    function Element(name, attribs, children, type) {\n        if (children === void 0) { children = []; }\n        if (type === void 0) { type = name === \"script\"\n            ? domelementtype_1.ElementType.Script\n            : name === \"style\"\n                ? domelementtype_1.ElementType.Style\n                : domelementtype_1.ElementType.Tag; }\n        var _this = _super.call(this, children) || this;\n        _this.name = name;\n        _this.attribs = attribs;\n        _this.type = type;\n        return _this;\n    }\n    Object.defineProperty(Element.prototype, \"nodeType\", {\n        get: function () {\n            return 1;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Element.prototype, \"tagName\", {\n        // DOM Level 1 aliases\n        /**\n         * Same as {@link name}.\n         * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n         */\n        get: function () {\n            return this.name;\n        },\n        set: function (name) {\n            this.name = name;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Element.prototype, \"attributes\", {\n        get: function () {\n            var _this = this;\n            return Object.keys(this.attribs).map(function (name) {\n                var _a, _b;\n                return ({\n                    name: name,\n                    value: _this.attribs[name],\n                    namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n                    prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n                });\n            });\n        },\n        enumerable: false,\n        configurable: true\n    });\n    return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n    return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n    return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n    return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n    return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n    return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n    return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n    return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n    if (recursive === void 0) { recursive = false; }\n    var result;\n    if (isText(node)) {\n        result = new Text(node.data);\n    }\n    else if (isComment(node)) {\n        result = new Comment(node.data);\n    }\n    else if (isTag(node)) {\n        var children = recursive ? cloneChildren(node.children) : [];\n        var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n        children.forEach(function (child) { return (child.parent = clone_1); });\n        if (node.namespace != null) {\n            clone_1.namespace = node.namespace;\n        }\n        if (node[\"x-attribsNamespace\"]) {\n            clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n        }\n        if (node[\"x-attribsPrefix\"]) {\n            clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n        }\n        result = clone_1;\n    }\n    else if (isCDATA(node)) {\n        var children = recursive ? cloneChildren(node.children) : [];\n        var clone_2 = new CDATA(children);\n        children.forEach(function (child) { return (child.parent = clone_2); });\n        result = clone_2;\n    }\n    else if (isDocument(node)) {\n        var children = recursive ? cloneChildren(node.children) : [];\n        var clone_3 = new Document(children);\n        children.forEach(function (child) { return (child.parent = clone_3); });\n        if (node[\"x-mode\"]) {\n            clone_3[\"x-mode\"] = node[\"x-mode\"];\n        }\n        result = clone_3;\n    }\n    else if (isDirective(node)) {\n        var instruction = new ProcessingInstruction(node.name, node.data);\n        if (node[\"x-name\"] != null) {\n            instruction[\"x-name\"] = node[\"x-name\"];\n            instruction[\"x-publicId\"] = node[\"x-publicId\"];\n            instruction[\"x-systemId\"] = node[\"x-systemId\"];\n        }\n        result = instruction;\n    }\n    else {\n        throw new Error(\"Not implemented yet: \".concat(node.type));\n    }\n    result.startIndex = node.startIndex;\n    result.endIndex = node.endIndex;\n    if (node.sourceCodeLocation != null) {\n        result.sourceCodeLocation = node.sourceCodeLocation;\n    }\n    return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n    var children = childs.map(function (child) { return cloneNode(child, true); });\n    for (var i = 1; i < children.length; i++) {\n        children[i].prev = children[i - 1];\n        children[i - 1].next = children[i];\n    }\n    return children;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n    withStartIndices: false,\n    withEndIndices: false,\n    xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n    /**\n     * @param callback Called once parsing has completed.\n     * @param options Settings for the handler.\n     * @param elementCB Callback whenever a tag is closed.\n     */\n    function DomHandler(callback, options, elementCB) {\n        /** The elements of the DOM */\n        this.dom = [];\n        /** The root element for the DOM */\n        this.root = new node_js_1.Document(this.dom);\n        /** Indicated whether parsing has been completed. */\n        this.done = false;\n        /** Stack of open tags. */\n        this.tagStack = [this.root];\n        /** A data node that is still being written to. */\n        this.lastNode = null;\n        /** Reference to the parser instance. Used for location information. */\n        this.parser = null;\n        // Make it possible to skip arguments, for backwards-compatibility\n        if (typeof options === \"function\") {\n            elementCB = options;\n            options = defaultOpts;\n        }\n        if (typeof callback === \"object\") {\n            options = callback;\n            callback = undefined;\n        }\n        this.callback = callback !== null && callback !== void 0 ? callback : null;\n        this.options = options !== null && options !== void 0 ? options : defaultOpts;\n        this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n    }\n    DomHandler.prototype.onparserinit = function (parser) {\n        this.parser = parser;\n    };\n    // Resets the handler back to starting state\n    DomHandler.prototype.onreset = function () {\n        this.dom = [];\n        this.root = new node_js_1.Document(this.dom);\n        this.done = false;\n        this.tagStack = [this.root];\n        this.lastNode = null;\n        this.parser = null;\n    };\n    // Signals the handler that parsing is done\n    DomHandler.prototype.onend = function () {\n        if (this.done)\n            return;\n        this.done = true;\n        this.parser = null;\n        this.handleCallback(null);\n    };\n    DomHandler.prototype.onerror = function (error) {\n        this.handleCallback(error);\n    };\n    DomHandler.prototype.onclosetag = function () {\n        this.lastNode = null;\n        var elem = this.tagStack.pop();\n        if (this.options.withEndIndices) {\n            elem.endIndex = this.parser.endIndex;\n        }\n        if (this.elementCB)\n            this.elementCB(elem);\n    };\n    DomHandler.prototype.onopentag = function (name, attribs) {\n        var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n        var element = new node_js_1.Element(name, attribs, undefined, type);\n        this.addNode(element);\n        this.tagStack.push(element);\n    };\n    DomHandler.prototype.ontext = function (data) {\n        var lastNode = this.lastNode;\n        if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n            lastNode.data += data;\n            if (this.options.withEndIndices) {\n                lastNode.endIndex = this.parser.endIndex;\n            }\n        }\n        else {\n            var node = new node_js_1.Text(data);\n            this.addNode(node);\n            this.lastNode = node;\n        }\n    };\n    DomHandler.prototype.oncomment = function (data) {\n        if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n            this.lastNode.data += data;\n            return;\n        }\n        var node = new node_js_1.Comment(data);\n        this.addNode(node);\n        this.lastNode = node;\n    };\n    DomHandler.prototype.oncommentend = function () {\n        this.lastNode = null;\n    };\n    DomHandler.prototype.oncdatastart = function () {\n        var text = new node_js_1.Text(\"\");\n        var node = new node_js_1.CDATA([text]);\n        this.addNode(node);\n        text.parent = node;\n        this.lastNode = text;\n    };\n    DomHandler.prototype.oncdataend = function () {\n        this.lastNode = null;\n    };\n    DomHandler.prototype.onprocessinginstruction = function (name, data) {\n        var node = new node_js_1.ProcessingInstruction(name, data);\n        this.addNode(node);\n    };\n    DomHandler.prototype.handleCallback = function (error) {\n        if (typeof this.callback === \"function\") {\n            this.callback(error, this.dom);\n        }\n        else if (error) {\n            throw error;\n        }\n    };\n    DomHandler.prototype.addNode = function (node) {\n        var parent = this.tagStack[this.tagStack.length - 1];\n        var previousSibling = parent.children[parent.children.length - 1];\n        if (this.options.withStartIndices) {\n            node.startIndex = this.parser.startIndex;\n        }\n        if (this.options.withEndIndices) {\n            node.endIndex = this.parser.endIndex;\n        }\n        parent.children.push(node);\n        if (previousSibling) {\n            node.prev = previousSibling;\n            previousSibling.next = node;\n        }\n        node.parent = parent;\n        this.lastNode = null;\n    };\n    return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n    .split(\"\")\n    .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n    .split(\"\")\n    .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n    [0, 65533],\n    // C1 Unicode control character reference replacements\n    [128, 8364],\n    [130, 8218],\n    [131, 402],\n    [132, 8222],\n    [133, 8230],\n    [134, 8224],\n    [135, 8225],\n    [136, 710],\n    [137, 8240],\n    [138, 352],\n    [139, 8249],\n    [140, 338],\n    [142, 381],\n    [145, 8216],\n    [146, 8217],\n    [147, 8220],\n    [148, 8221],\n    [149, 8226],\n    [150, 8211],\n    [151, 8212],\n    [152, 732],\n    [153, 8482],\n    [154, 353],\n    [155, 8250],\n    [156, 339],\n    [158, 382],\n    [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n    var output = \"\";\n    if (codePoint > 0xffff) {\n        codePoint -= 0x10000;\n        output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n        codePoint = 0xdc00 | (codePoint & 0x3ff);\n    }\n    output += String.fromCharCode(codePoint);\n    return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n    var _a;\n    if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n        return 0xfffd;\n    }\n    return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n    return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n    CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n    CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n    CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n    CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n    CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n    CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n    CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n    CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n    CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n    CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n    CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n    CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n    BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n    return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n        isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n    return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n    EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n    EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n    EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n    /** Entities in text nodes that can end with any character. */\n    DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n    /** Only allow entities terminated with a semicolon. */\n    DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n    /** Entities in attributes have limitations on ending characters. */\n    DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n    function EntityDecoder(\n    /** The tree used to decode entities. */\n    decodeTree, \n    /**\n     * The function that is called when a codepoint is decoded.\n     *\n     * For multi-byte named entities, this will be called multiple times,\n     * with the second codepoint, and the same `consumed` value.\n     *\n     * @param codepoint The decoded codepoint.\n     * @param consumed The number of bytes consumed by the decoder.\n     */\n    emitCodePoint, \n    /** An object that is used to produce errors. */\n    errors) {\n        this.decodeTree = decodeTree;\n        this.emitCodePoint = emitCodePoint;\n        this.errors = errors;\n        /** The current state of the decoder. */\n        this.state = EntityDecoderState.EntityStart;\n        /** Characters that were consumed while parsing an entity. */\n        this.consumed = 1;\n        /**\n         * The result of the entity.\n         *\n         * Either the result index of a numeric entity, or the codepoint of a\n         * numeric entity.\n         */\n        this.result = 0;\n        /** The current index in the decode tree. */\n        this.treeIndex = 0;\n        /** The number of characters that were consumed in excess. */\n        this.excess = 1;\n        /** The mode in which the decoder is operating. */\n        this.decodeMode = DecodingMode.Strict;\n    }\n    /** Resets the instance to make it reusable. */\n    EntityDecoder.prototype.startEntity = function (decodeMode) {\n        this.decodeMode = decodeMode;\n        this.state = EntityDecoderState.EntityStart;\n        this.result = 0;\n        this.treeIndex = 0;\n        this.excess = 1;\n        this.consumed = 1;\n    };\n    /**\n     * Write an entity to the decoder. This can be called multiple times with partial entities.\n     * If the entity is incomplete, the decoder will return -1.\n     *\n     * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n     * entity is incomplete, and resume when the next string is written.\n     *\n     * @param string The string containing the entity (or a continuation of the entity).\n     * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.write = function (str, offset) {\n        switch (this.state) {\n            case EntityDecoderState.EntityStart: {\n                if (str.charCodeAt(offset) === CharCodes.NUM) {\n                    this.state = EntityDecoderState.NumericStart;\n                    this.consumed += 1;\n                    return this.stateNumericStart(str, offset + 1);\n                }\n                this.state = EntityDecoderState.NamedEntity;\n                return this.stateNamedEntity(str, offset);\n            }\n            case EntityDecoderState.NumericStart: {\n                return this.stateNumericStart(str, offset);\n            }\n            case EntityDecoderState.NumericDecimal: {\n                return this.stateNumericDecimal(str, offset);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.stateNumericHex(str, offset);\n            }\n            case EntityDecoderState.NamedEntity: {\n                return this.stateNamedEntity(str, offset);\n            }\n        }\n    };\n    /**\n     * Switches between the numeric decimal and hexadecimal states.\n     *\n     * Equivalent to the `Numeric character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n        if (offset >= str.length) {\n            return -1;\n        }\n        if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n            this.state = EntityDecoderState.NumericHex;\n            this.consumed += 1;\n            return this.stateNumericHex(str, offset + 1);\n        }\n        this.state = EntityDecoderState.NumericDecimal;\n        return this.stateNumericDecimal(str, offset);\n    };\n    EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n        if (start !== end) {\n            var digitCount = end - start;\n            this.result =\n                this.result * Math.pow(base, digitCount) +\n                    parseInt(str.substr(start, digitCount), base);\n            this.consumed += digitCount;\n        }\n    };\n    /**\n     * Parses a hexadecimal numeric entity.\n     *\n     * Equivalent to the `Hexademical character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n        var startIdx = offset;\n        while (offset < str.length) {\n            var char = str.charCodeAt(offset);\n            if (isNumber(char) || isHexadecimalCharacter(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(str, startIdx, offset, 16);\n                return this.emitNumericEntity(char, 3);\n            }\n        }\n        this.addToNumericResult(str, startIdx, offset, 16);\n        return -1;\n    };\n    /**\n     * Parses a decimal numeric entity.\n     *\n     * Equivalent to the `Decimal character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n        var startIdx = offset;\n        while (offset < str.length) {\n            var char = str.charCodeAt(offset);\n            if (isNumber(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(str, startIdx, offset, 10);\n                return this.emitNumericEntity(char, 2);\n            }\n        }\n        this.addToNumericResult(str, startIdx, offset, 10);\n        return -1;\n    };\n    /**\n     * Validate and emit a numeric entity.\n     *\n     * Implements the logic from the `Hexademical character reference start\n     * state` and `Numeric character reference end state` in the HTML spec.\n     *\n     * @param lastCp The last code point of the entity. Used to see if the\n     *               entity was terminated with a semicolon.\n     * @param expectedLength The minimum number of characters that should be\n     *                       consumed. Used to validate that at least one digit\n     *                       was consumed.\n     * @returns The number of characters that were consumed.\n     */\n    EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n        var _a;\n        // Ensure we consumed at least one digit.\n        if (this.consumed <= expectedLength) {\n            (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n            return 0;\n        }\n        // Figure out if this is a legit end of the entity\n        if (lastCp === CharCodes.SEMI) {\n            this.consumed += 1;\n        }\n        else if (this.decodeMode === DecodingMode.Strict) {\n            return 0;\n        }\n        this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n        if (this.errors) {\n            if (lastCp !== CharCodes.SEMI) {\n                this.errors.missingSemicolonAfterCharacterReference();\n            }\n            this.errors.validateNumericCharacterReference(this.result);\n        }\n        return this.consumed;\n    };\n    /**\n     * Parses a named entity.\n     *\n     * Equivalent to the `Named character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n        var decodeTree = this.decodeTree;\n        var current = decodeTree[this.treeIndex];\n        // The mask is the number of bytes of the value, including the current byte.\n        var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n        for (; offset < str.length; offset++, this.excess++) {\n            var char = str.charCodeAt(offset);\n            this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n            if (this.treeIndex < 0) {\n                return this.result === 0 ||\n                    // If we are parsing an attribute\n                    (this.decodeMode === DecodingMode.Attribute &&\n                        // We shouldn't have consumed any characters after the entity,\n                        (valueLength === 0 ||\n                            // And there should be no invalid characters.\n                            isEntityInAttributeInvalidEnd(char)))\n                    ? 0\n                    : this.emitNotTerminatedNamedEntity();\n            }\n            current = decodeTree[this.treeIndex];\n            valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n            // If the branch is a value, store it and continue\n            if (valueLength !== 0) {\n                // If the entity is terminated by a semicolon, we are done.\n                if (char === CharCodes.SEMI) {\n                    return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n                }\n                // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n                if (this.decodeMode !== DecodingMode.Strict) {\n                    this.result = this.treeIndex;\n                    this.consumed += this.excess;\n                    this.excess = 0;\n                }\n            }\n        }\n        return -1;\n    };\n    /**\n     * Emit a named entity that was not terminated with a semicolon.\n     *\n     * @returns The number of characters consumed.\n     */\n    EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n        var _a;\n        var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n        var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n        this.emitNamedEntityData(result, valueLength, this.consumed);\n        (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n        return this.consumed;\n    };\n    /**\n     * Emit a named entity.\n     *\n     * @param result The index of the entity in the decode tree.\n     * @param valueLength The number of bytes in the entity.\n     * @param consumed The number of characters consumed.\n     *\n     * @returns The number of characters consumed.\n     */\n    EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n        var decodeTree = this.decodeTree;\n        this.emitCodePoint(valueLength === 1\n            ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n            : decodeTree[result + 1], consumed);\n        if (valueLength === 3) {\n            // For multi-byte values, we need to emit the second byte.\n            this.emitCodePoint(decodeTree[result + 2], consumed);\n        }\n        return consumed;\n    };\n    /**\n     * Signal to the parser that the end of the input was reached.\n     *\n     * Remaining data will be emitted and relevant errors will be produced.\n     *\n     * @returns The number of characters consumed.\n     */\n    EntityDecoder.prototype.end = function () {\n        var _a;\n        switch (this.state) {\n            case EntityDecoderState.NamedEntity: {\n                // Emit a named entity if we have one.\n                return this.result !== 0 &&\n                    (this.decodeMode !== DecodingMode.Attribute ||\n                        this.result === this.treeIndex)\n                    ? this.emitNotTerminatedNamedEntity()\n                    : 0;\n            }\n            // Otherwise, emit a numeric entity if we have one.\n            case EntityDecoderState.NumericDecimal: {\n                return this.emitNumericEntity(0, 2);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.emitNumericEntity(0, 3);\n            }\n            case EntityDecoderState.NumericStart: {\n                (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n                return 0;\n            }\n            case EntityDecoderState.EntityStart: {\n                // Return 0 if we have no entity.\n                return 0;\n            }\n        }\n    };\n    return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n    var ret = \"\";\n    var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n    return function decodeWithTrie(str, decodeMode) {\n        var lastIndex = 0;\n        var offset = 0;\n        while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n            ret += str.slice(lastIndex, offset);\n            decoder.startEntity(decodeMode);\n            var len = decoder.write(str, \n            // Skip the \"&\"\n            offset + 1);\n            if (len < 0) {\n                lastIndex = offset + decoder.end();\n                break;\n            }\n            lastIndex = offset + len;\n            // If `len` is 0, skip the current `&` and continue.\n            offset = len === 0 ? lastIndex + 1 : lastIndex;\n        }\n        var result = ret + str.slice(lastIndex);\n        // Make sure we don't keep a reference to the final string.\n        ret = \"\";\n        return result;\n    };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n    var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n    var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n    // Case 1: Single branch encoded in jump offset\n    if (branchCount === 0) {\n        return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n    }\n    // Case 2: Multiple branches encoded in jump table\n    if (jumpOffset) {\n        var value = char - jumpOffset;\n        return value < 0 || value >= branchCount\n            ? -1\n            : decodeTree[nodeIdx + value] - 1;\n    }\n    // Case 3: Multiple branches encoded in dictionary\n    // Binary search for the character.\n    var lo = nodeIdx;\n    var hi = lo + branchCount - 1;\n    while (lo <= hi) {\n        var mid = (lo + hi) >>> 1;\n        var midVal = decodeTree[mid];\n        if (midVal < char) {\n            lo = mid + 1;\n        }\n        else if (midVal > char) {\n            hi = mid - 1;\n        }\n        else {\n            return decodeTree[mid + branchCount];\n        }\n    }\n    return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n    if (mode === void 0) { mode = DecodingMode.Legacy; }\n    return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n    return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n    return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n    return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n    for (var i = 1; i < arr.length; i++) {\n        arr[i][0] += arr[i - 1][0] + 1;\n    }\n    return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \"&Tab;\"], [0, \"&NewLine;\"], [22, \"&excl;\"], [0, \"&quot;\"], [0, \"&num;\"], [0, \"&dollar;\"], [0, \"&percnt;\"], [0, \"&amp;\"], [0, \"&apos;\"], [0, \"&lpar;\"], [0, \"&rpar;\"], [0, \"&ast;\"], [0, \"&plus;\"], [0, \"&comma;\"], [1, \"&period;\"], [0, \"&sol;\"], [10, \"&colon;\"], [0, \"&semi;\"], [0, { v: \"&lt;\", n: 8402, o: \"&nvlt;\" }], [0, { v: \"&equals;\", n: 8421, o: \"&bne;\" }], [0, { v: \"&gt;\", n: 8402, o: \"&nvgt;\" }], [0, \"&quest;\"], [0, \"&commat;\"], [26, \"&lbrack;\"], [0, \"&bsol;\"], [0, \"&rbrack;\"], [0, \"&Hat;\"], [0, \"&lowbar;\"], [0, \"&DiacriticalGrave;\"], [5, { n: 106, o: \"&fjlig;\" }], [20, \"&lbrace;\"], [0, \"&verbar;\"], [0, \"&rbrace;\"], [34, \"&nbsp;\"], [0, \"&iexcl;\"], [0, \"&cent;\"], [0, \"&pound;\"], [0, \"&curren;\"], [0, \"&yen;\"], [0, \"&brvbar;\"], [0, \"&sect;\"], [0, \"&die;\"], [0, \"&copy;\"], [0, \"&ordf;\"], [0, \"&laquo;\"], [0, \"&not;\"], [0, \"&shy;\"], [0, \"&circledR;\"], [0, \"&macr;\"], [0, \"&deg;\"], [0, \"&PlusMinus;\"], [0, \"&sup2;\"], [0, \"&sup3;\"], [0, \"&acute;\"], [0, \"&micro;\"], [0, \"&para;\"], [0, \"&centerdot;\"], [0, \"&cedil;\"], [0, \"&sup1;\"], [0, \"&ordm;\"], [0, \"&raquo;\"], [0, \"&frac14;\"], [0, \"&frac12;\"], [0, \"&frac34;\"], [0, \"&iquest;\"], [0, \"&Agrave;\"], [0, \"&Aacute;\"], [0, \"&Acirc;\"], [0, \"&Atilde;\"], [0, \"&Auml;\"], [0, \"&angst;\"], [0, \"&AElig;\"], [0, \"&Ccedil;\"], [0, \"&Egrave;\"], [0, \"&Eacute;\"], [0, \"&Ecirc;\"], [0, \"&Euml;\"], [0, \"&Igrave;\"], [0, \"&Iacute;\"], [0, \"&Icirc;\"], [0, \"&Iuml;\"], [0, \"&ETH;\"], [0, \"&Ntilde;\"], [0, \"&Ograve;\"], [0, \"&Oacute;\"], [0, \"&Ocirc;\"], [0, \"&Otilde;\"], [0, \"&Ouml;\"], [0, \"&times;\"], [0, \"&Oslash;\"], [0, \"&Ugrave;\"], [0, \"&Uacute;\"], [0, \"&Ucirc;\"], [0, \"&Uuml;\"], [0, \"&Yacute;\"], [0, \"&THORN;\"], [0, \"&szlig;\"], [0, \"&agrave;\"], [0, \"&aacute;\"], [0, \"&acirc;\"], [0, \"&atilde;\"], [0, \"&auml;\"], [0, \"&aring;\"], [0, \"&aelig;\"], [0, \"&ccedil;\"], [0, \"&egrave;\"], [0, \"&eacute;\"], [0, \"&ecirc;\"], [0, \"&euml;\"], [0, \"&igrave;\"], [0, \"&iacute;\"], [0, \"&icirc;\"], [0, \"&iuml;\"], [0, \"&eth;\"], [0, \"&ntilde;\"], [0, \"&ograve;\"], [0, \"&oacute;\"], [0, \"&ocirc;\"], [0, \"&otilde;\"], [0, \"&ouml;\"], [0, \"&div;\"], [0, \"&oslash;\"], [0, \"&ugrave;\"], [0, \"&uacute;\"], [0, \"&ucirc;\"], [0, \"&uuml;\"], [0, \"&yacute;\"], [0, \"&thorn;\"], [0, \"&yuml;\"], [0, \"&Amacr;\"], [0, \"&amacr;\"], [0, \"&Abreve;\"], [0, \"&abreve;\"], [0, \"&Aogon;\"], [0, \"&aogon;\"], [0, \"&Cacute;\"], [0, \"&cacute;\"], [0, \"&Ccirc;\"], [0, \"&ccirc;\"], [0, \"&Cdot;\"], [0, \"&cdot;\"], [0, \"&Ccaron;\"], [0, \"&ccaron;\"], [0, \"&Dcaron;\"], [0, \"&dcaron;\"], [0, \"&Dstrok;\"], [0, \"&dstrok;\"], [0, \"&Emacr;\"], [0, \"&emacr;\"], [2, \"&Edot;\"], [0, \"&edot;\"], [0, \"&Eogon;\"], [0, \"&eogon;\"], [0, \"&Ecaron;\"], [0, \"&ecaron;\"], [0, \"&Gcirc;\"], [0, \"&gcirc;\"], [0, \"&Gbreve;\"], [0, \"&gbreve;\"], [0, \"&Gdot;\"], [0, \"&gdot;\"], [0, \"&Gcedil;\"], [1, \"&Hcirc;\"], [0, \"&hcirc;\"], [0, \"&Hstrok;\"], [0, \"&hstrok;\"], [0, \"&Itilde;\"], [0, \"&itilde;\"], [0, \"&Imacr;\"], [0, \"&imacr;\"], [2, \"&Iogon;\"], [0, \"&iogon;\"], [0, \"&Idot;\"], [0, \"&imath;\"], [0, \"&IJlig;\"], [0, \"&ijlig;\"], [0, \"&Jcirc;\"], [0, \"&jcirc;\"], [0, \"&Kcedil;\"], [0, \"&kcedil;\"], [0, \"&kgreen;\"], [0, \"&Lacute;\"], [0, \"&lacute;\"], [0, \"&Lcedil;\"], [0, \"&lcedil;\"], [0, \"&Lcaron;\"], [0, \"&lcaron;\"], [0, \"&Lmidot;\"], [0, \"&lmidot;\"], [0, \"&Lstrok;\"], [0, \"&lstrok;\"], [0, \"&Nacute;\"], [0, \"&nacute;\"], [0, \"&Ncedil;\"], [0, \"&ncedil;\"], [0, \"&Ncaron;\"], [0, \"&ncaron;\"], [0, \"&napos;\"], [0, \"&ENG;\"], [0, \"&eng;\"], [0, \"&Omacr;\"], [0, \"&omacr;\"], [2, \"&Odblac;\"], [0, \"&odblac;\"], [0, \"&OElig;\"], [0, \"&oelig;\"], [0, \"&Racute;\"], [0, \"&racute;\"], [0, \"&Rcedil;\"], [0, \"&rcedil;\"], [0, \"&Rcaron;\"], [0, \"&rcaron;\"], [0, \"&Sacute;\"], [0, \"&sacute;\"], [0, \"&Scirc;\"], [0, \"&scirc;\"], [0, \"&Scedil;\"], [0, \"&scedil;\"], [0, \"&Scaron;\"], [0, \"&scaron;\"], [0, \"&Tcedil;\"], [0, \"&tcedil;\"], [0, \"&Tcaron;\"], [0, \"&tcaron;\"], [0, \"&Tstrok;\"], [0, \"&tstrok;\"], [0, \"&Utilde;\"], [0, \"&utilde;\"], [0, \"&Umacr;\"], [0, \"&umacr;\"], [0, \"&Ubreve;\"], [0, \"&ubreve;\"], [0, \"&Uring;\"], [0, \"&uring;\"], [0, \"&Udblac;\"], [0, \"&udblac;\"], [0, \"&Uogon;\"], [0, \"&uogon;\"], [0, \"&Wcirc;\"], [0, \"&wcirc;\"], [0, \"&Ycirc;\"], [0, \"&ycirc;\"], [0, \"&Yuml;\"], [0, \"&Zacute;\"], [0, \"&zacute;\"], [0, \"&Zdot;\"], [0, \"&zdot;\"], [0, \"&Zcaron;\"], [0, \"&zcaron;\"], [19, \"&fnof;\"], [34, \"&imped;\"], [63, \"&gacute;\"], [65, \"&jmath;\"], [142, \"&circ;\"], [0, \"&caron;\"], [16, \"&breve;\"], [0, \"&DiacriticalDot;\"], [0, \"&ring;\"], [0, \"&ogon;\"], [0, \"&DiacriticalTilde;\"], [0, \"&dblac;\"], [51, \"&DownBreve;\"], [127, \"&Alpha;\"], [0, \"&Beta;\"], [0, \"&Gamma;\"], [0, \"&Delta;\"], [0, \"&Epsilon;\"], [0, \"&Zeta;\"], [0, \"&Eta;\"], [0, \"&Theta;\"], [0, \"&Iota;\"], [0, \"&Kappa;\"], [0, \"&Lambda;\"], [0, \"&Mu;\"], [0, \"&Nu;\"], [0, \"&Xi;\"], [0, \"&Omicron;\"], [0, \"&Pi;\"], [0, \"&Rho;\"], [1, \"&Sigma;\"], [0, \"&Tau;\"], [0, \"&Upsilon;\"], [0, \"&Phi;\"], [0, \"&Chi;\"], [0, \"&Psi;\"], [0, \"&ohm;\"], [7, \"&alpha;\"], [0, \"&beta;\"], [0, \"&gamma;\"], [0, \"&delta;\"], [0, \"&epsi;\"], [0, \"&zeta;\"], [0, \"&eta;\"], [0, \"&theta;\"], [0, \"&iota;\"], [0, \"&kappa;\"], [0, \"&lambda;\"], [0, \"&mu;\"], [0, \"&nu;\"], [0, \"&xi;\"], [0, \"&omicron;\"], [0, \"&pi;\"], [0, \"&rho;\"], [0, \"&sigmaf;\"], [0, \"&sigma;\"], [0, \"&tau;\"], [0, \"&upsi;\"], [0, \"&phi;\"], [0, \"&chi;\"], [0, \"&psi;\"], [0, \"&omega;\"], [7, \"&thetasym;\"], [0, \"&Upsi;\"], [2, \"&phiv;\"], [0, \"&piv;\"], [5, \"&Gammad;\"], [0, \"&digamma;\"], [18, \"&kappav;\"], [0, \"&rhov;\"], [3, \"&epsiv;\"], [0, \"&backepsilon;\"], [10, \"&IOcy;\"], [0, \"&DJcy;\"], [0, \"&GJcy;\"], [0, \"&Jukcy;\"], [0, \"&DScy;\"], [0, \"&Iukcy;\"], [0, \"&YIcy;\"], [0, \"&Jsercy;\"], [0, \"&LJcy;\"], [0, \"&NJcy;\"], [0, \"&TSHcy;\"], [0, \"&KJcy;\"], [1, \"&Ubrcy;\"], [0, \"&DZcy;\"], [0, \"&Acy;\"], [0, \"&Bcy;\"], [0, \"&Vcy;\"], [0, \"&Gcy;\"], [0, \"&Dcy;\"], [0, \"&IEcy;\"], [0, \"&ZHcy;\"], [0, \"&Zcy;\"], [0, \"&Icy;\"], [0, \"&Jcy;\"], [0, \"&Kcy;\"], [0, \"&Lcy;\"], [0, \"&Mcy;\"], [0, \"&Ncy;\"], [0, \"&Ocy;\"], [0, \"&Pcy;\"], [0, \"&Rcy;\"], [0, \"&Scy;\"], [0, \"&Tcy;\"], [0, \"&Ucy;\"], [0, \"&Fcy;\"], [0, \"&KHcy;\"], [0, \"&TScy;\"], [0, \"&CHcy;\"], [0, \"&SHcy;\"], [0, \"&SHCHcy;\"], [0, \"&HARDcy;\"], [0, \"&Ycy;\"], [0, \"&SOFTcy;\"], [0, \"&Ecy;\"], [0, \"&YUcy;\"], [0, \"&YAcy;\"], [0, \"&acy;\"], [0, \"&bcy;\"], [0, \"&vcy;\"], [0, \"&gcy;\"], [0, \"&dcy;\"], [0, \"&iecy;\"], [0, \"&zhcy;\"], [0, \"&zcy;\"], [0, \"&icy;\"], [0, \"&jcy;\"], [0, \"&kcy;\"], [0, \"&lcy;\"], [0, \"&mcy;\"], [0, \"&ncy;\"], [0, \"&ocy;\"], [0, \"&pcy;\"], [0, \"&rcy;\"], [0, \"&scy;\"], [0, \"&tcy;\"], [0, \"&ucy;\"], [0, \"&fcy;\"], [0, \"&khcy;\"], [0, \"&tscy;\"], [0, \"&chcy;\"], [0, \"&shcy;\"], [0, \"&shchcy;\"], [0, \"&hardcy;\"], [0, \"&ycy;\"], [0, \"&softcy;\"], [0, \"&ecy;\"], [0, \"&yucy;\"], [0, \"&yacy;\"], [1, \"&iocy;\"], [0, \"&djcy;\"], [0, \"&gjcy;\"], [0, \"&jukcy;\"], [0, \"&dscy;\"], [0, \"&iukcy;\"], [0, \"&yicy;\"], [0, \"&jsercy;\"], [0, \"&ljcy;\"], [0, \"&njcy;\"], [0, \"&tshcy;\"], [0, \"&kjcy;\"], [1, \"&ubrcy;\"], [0, \"&dzcy;\"], [7074, \"&ensp;\"], [0, \"&emsp;\"], [0, \"&emsp13;\"], [0, \"&emsp14;\"], [1, \"&numsp;\"], [0, \"&puncsp;\"], [0, \"&ThinSpace;\"], [0, \"&hairsp;\"], [0, \"&NegativeMediumSpace;\"], [0, \"&zwnj;\"], [0, \"&zwj;\"], [0, \"&lrm;\"], [0, \"&rlm;\"], [0, \"&dash;\"], [2, \"&ndash;\"], [0, \"&mdash;\"], [0, \"&horbar;\"], [0, \"&Verbar;\"], [1, \"&lsquo;\"], [0, \"&CloseCurlyQuote;\"], [0, \"&lsquor;\"], [1, \"&ldquo;\"], [0, \"&CloseCurlyDoubleQuote;\"], [0, \"&bdquo;\"], [1, \"&dagger;\"], [0, \"&Dagger;\"], [0, \"&bull;\"], [2, \"&nldr;\"], [0, \"&hellip;\"], [9, \"&permil;\"], [0, \"&pertenk;\"], [0, \"&prime;\"], [0, \"&Prime;\"], [0, \"&tprime;\"], [0, \"&backprime;\"], [3, \"&lsaquo;\"], [0, \"&rsaquo;\"], [3, \"&oline;\"], [2, \"&caret;\"], [1, \"&hybull;\"], [0, \"&frasl;\"], [10, \"&bsemi;\"], [7, \"&qprime;\"], [7, { v: \"&MediumSpace;\", n: 8202, o: \"&ThickSpace;\" }], [0, \"&NoBreak;\"], [0, \"&af;\"], [0, \"&InvisibleTimes;\"], [0, \"&ic;\"], [72, \"&euro;\"], [46, \"&tdot;\"], [0, \"&DotDot;\"], [37, \"&complexes;\"], [2, \"&incare;\"], [4, \"&gscr;\"], [0, \"&hamilt;\"], [0, \"&Hfr;\"], [0, \"&Hopf;\"], [0, \"&planckh;\"], [0, \"&hbar;\"], [0, \"&imagline;\"], [0, \"&Ifr;\"], [0, \"&lagran;\"], [0, \"&ell;\"], [1, \"&naturals;\"], [0, \"&numero;\"], [0, \"&copysr;\"], [0, \"&weierp;\"], [0, \"&Popf;\"], [0, \"&Qopf;\"], [0, \"&realine;\"], [0, \"&real;\"], [0, \"&reals;\"], [0, \"&rx;\"], [3, \"&trade;\"], [1, \"&integers;\"], [2, \"&mho;\"], [0, \"&zeetrf;\"], [0, \"&iiota;\"], [2, \"&bernou;\"], [0, \"&Cayleys;\"], [1, \"&escr;\"], [0, \"&Escr;\"], [0, \"&Fouriertrf;\"], [1, \"&Mellintrf;\"], [0, \"&order;\"], [0, \"&alefsym;\"], [0, \"&beth;\"], [0, \"&gimel;\"], [0, \"&daleth;\"], [12, \"&CapitalDifferentialD;\"], [0, \"&dd;\"], [0, \"&ee;\"], [0, \"&ii;\"], [10, \"&frac13;\"], [0, \"&frac23;\"], [0, \"&frac15;\"], [0, \"&frac25;\"], [0, \"&frac35;\"], [0, \"&frac45;\"], [0, \"&frac16;\"], [0, \"&frac56;\"], [0, \"&frac18;\"], [0, \"&frac38;\"], [0, \"&frac58;\"], [0, \"&frac78;\"], [49, \"&larr;\"], [0, \"&ShortUpArrow;\"], [0, \"&rarr;\"], [0, \"&darr;\"], [0, \"&harr;\"], [0, \"&updownarrow;\"], [0, \"&nwarr;\"], [0, \"&nearr;\"], [0, \"&LowerRightArrow;\"], [0, \"&LowerLeftArrow;\"], [0, \"&nlarr;\"], [0, \"&nrarr;\"], [1, { v: \"&rarrw;\", n: 824, o: \"&nrarrw;\" }], [0, \"&Larr;\"], [0, \"&Uarr;\"], [0, \"&Rarr;\"], [0, \"&Darr;\"], [0, \"&larrtl;\"], [0, \"&rarrtl;\"], [0, \"&LeftTeeArrow;\"], [0, \"&mapstoup;\"], [0, \"&map;\"], [0, \"&DownTeeArrow;\"], [1, \"&hookleftarrow;\"], [0, \"&hookrightarrow;\"], [0, \"&larrlp;\"], [0, \"&looparrowright;\"], [0, \"&harrw;\"], [0, \"&nharr;\"], [1, \"&lsh;\"], [0, \"&rsh;\"], [0, \"&ldsh;\"], [0, \"&rdsh;\"], [1, \"&crarr;\"], [0, \"&cularr;\"], [0, \"&curarr;\"], [2, \"&circlearrowleft;\"], [0, \"&circlearrowright;\"], [0, \"&leftharpoonup;\"], [0, \"&DownLeftVector;\"], [0, \"&RightUpVector;\"], [0, \"&LeftUpVector;\"], [0, \"&rharu;\"], [0, \"&DownRightVector;\"], [0, \"&dharr;\"], [0, \"&dharl;\"], [0, \"&RightArrowLeftArrow;\"], [0, \"&udarr;\"], [0, \"&LeftArrowRightArrow;\"], [0, \"&leftleftarrows;\"], [0, \"&upuparrows;\"], [0, \"&rightrightarrows;\"], [0, \"&ddarr;\"], [0, \"&leftrightharpoons;\"], [0, \"&Equilibrium;\"], [0, \"&nlArr;\"], [0, \"&nhArr;\"], [0, \"&nrArr;\"], [0, \"&DoubleLeftArrow;\"], [0, \"&DoubleUpArrow;\"], [0, \"&DoubleRightArrow;\"], [0, \"&dArr;\"], [0, \"&DoubleLeftRightArrow;\"], [0, \"&DoubleUpDownArrow;\"], [0, \"&nwArr;\"], [0, \"&neArr;\"], [0, \"&seArr;\"], [0, \"&swArr;\"], [0, \"&lAarr;\"], [0, \"&rAarr;\"], [1, \"&zigrarr;\"], [6, \"&larrb;\"], [0, \"&rarrb;\"], [15, \"&DownArrowUpArrow;\"], [7, \"&loarr;\"], [0, \"&roarr;\"], [0, \"&hoarr;\"], [0, \"&forall;\"], [0, \"&comp;\"], [0, { v: \"&part;\", n: 824, o: \"&npart;\" }], [0, \"&exist;\"], [0, \"&nexist;\"], [0, \"&empty;\"], [1, \"&Del;\"], [0, \"&Element;\"], [0, \"&NotElement;\"], [1, \"&ni;\"], [0, \"&notni;\"], [2, \"&prod;\"], [0, \"&coprod;\"], [0, \"&sum;\"], [0, \"&minus;\"], [0, \"&MinusPlus;\"], [0, \"&dotplus;\"], [1, \"&Backslash;\"], [0, \"&lowast;\"], [0, \"&compfn;\"], [1, \"&radic;\"], [2, \"&prop;\"], [0, \"&infin;\"], [0, \"&angrt;\"], [0, { v: \"&ang;\", n: 8402, o: \"&nang;\" }], [0, \"&angmsd;\"], [0, \"&angsph;\"], [0, \"&mid;\"], [0, \"&nmid;\"], [0, \"&DoubleVerticalBar;\"], [0, \"&NotDoubleVerticalBar;\"], [0, \"&and;\"], [0, \"&or;\"], [0, { v: \"&cap;\", n: 65024, o: \"&caps;\" }], [0, { v: \"&cup;\", n: 65024, o: \"&cups;\" }], [0, \"&int;\"], [0, \"&Int;\"], [0, \"&iiint;\"], [0, \"&conint;\"], [0, \"&Conint;\"], [0, \"&Cconint;\"], [0, \"&cwint;\"], [0, \"&ClockwiseContourIntegral;\"], [0, \"&awconint;\"], [0, \"&there4;\"], [0, \"&becaus;\"], [0, \"&ratio;\"], [0, \"&Colon;\"], [0, \"&dotminus;\"], [1, \"&mDDot;\"], [0, \"&homtht;\"], [0, { v: \"&sim;\", n: 8402, o: \"&nvsim;\" }], [0, { v: \"&backsim;\", n: 817, o: \"&race;\" }], [0, { v: \"&ac;\", n: 819, o: \"&acE;\" }], [0, \"&acd;\"], [0, \"&VerticalTilde;\"], [0, \"&NotTilde;\"], [0, { v: \"&eqsim;\", n: 824, o: \"&nesim;\" }], [0, \"&sime;\"], [0, \"&NotTildeEqual;\"], [0, \"&cong;\"], [0, \"&simne;\"], [0, \"&ncong;\"], [0, \"&ap;\"], [0, \"&nap;\"], [0, \"&ape;\"], [0, { v: \"&apid;\", n: 824, o: \"&napid;\" }], [0, \"&backcong;\"], [0, { v: \"&asympeq;\", n: 8402, o: \"&nvap;\" }], [0, { v: \"&bump;\", n: 824, o: \"&nbump;\" }], [0, { v: \"&bumpe;\", n: 824, o: \"&nbumpe;\" }], [0, { v: \"&doteq;\", n: 824, o: \"&nedot;\" }], [0, \"&doteqdot;\"], [0, \"&efDot;\"], [0, \"&erDot;\"], [0, \"&Assign;\"], [0, \"&ecolon;\"], [0, \"&ecir;\"], [0, \"&circeq;\"], [1, \"&wedgeq;\"], [0, \"&veeeq;\"], [1, \"&triangleq;\"], [2, \"&equest;\"], [0, \"&ne;\"], [0, { v: \"&Congruent;\", n: 8421, o: \"&bnequiv;\" }], [0, \"&nequiv;\"], [1, { v: \"&le;\", n: 8402, o: \"&nvle;\" }], [0, { v: \"&ge;\", n: 8402, o: \"&nvge;\" }], [0, { v: \"&lE;\", n: 824, o: \"&nlE;\" }], [0, { v: \"&gE;\", n: 824, o: \"&ngE;\" }], [0, { v: \"&lnE;\", n: 65024, o: \"&lvertneqq;\" }], [0, { v: \"&gnE;\", n: 65024, o: \"&gvertneqq;\" }], [0, { v: \"&ll;\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"&nLtv;\"], [7577, \"&nLt;\"]])) }], [0, { v: \"&gg;\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"&nGtv;\"], [7577, \"&nGt;\"]])) }], [0, \"&between;\"], [0, \"&NotCupCap;\"], [0, \"&nless;\"], [0, \"&ngt;\"], [0, \"&nle;\"], [0, \"&nge;\"], [0, \"&lesssim;\"], [0, \"&GreaterTilde;\"], [0, \"&nlsim;\"], [0, \"&ngsim;\"], [0, \"&LessGreater;\"], [0, \"&gl;\"], [0, \"&NotLessGreater;\"], [0, \"&NotGreaterLess;\"], [0, \"&pr;\"], [0, \"&sc;\"], [0, \"&prcue;\"], [0, \"&sccue;\"], [0, \"&PrecedesTilde;\"], [0, { v: \"&scsim;\", n: 824, o: \"&NotSucceedsTilde;\" }], [0, \"&NotPrecedes;\"], [0, \"&NotSucceeds;\"], [0, { v: \"&sub;\", n: 8402, o: \"&NotSubset;\" }], [0, { v: \"&sup;\", n: 8402, o: \"&NotSuperset;\" }], [0, \"&nsub;\"], [0, \"&nsup;\"], [0, \"&sube;\"], [0, \"&supe;\"], [0, \"&NotSubsetEqual;\"], [0, \"&NotSupersetEqual;\"], [0, { v: \"&subne;\", n: 65024, o: \"&varsubsetneq;\" }], [0, { v: \"&supne;\", n: 65024, o: \"&varsupsetneq;\" }], [1, \"&cupdot;\"], [0, \"&UnionPlus;\"], [0, { v: \"&sqsub;\", n: 824, o: \"&NotSquareSubset;\" }], [0, { v: \"&sqsup;\", n: 824, o: \"&NotSquareSuperset;\" }], [0, \"&sqsube;\"], [0, \"&sqsupe;\"], [0, { v: \"&sqcap;\", n: 65024, o: \"&sqcaps;\" }], [0, { v: \"&sqcup;\", n: 65024, o: \"&sqcups;\" }], [0, \"&CirclePlus;\"], [0, \"&CircleMinus;\"], [0, \"&CircleTimes;\"], [0, \"&osol;\"], [0, \"&CircleDot;\"], [0, \"&circledcirc;\"], [0, \"&circledast;\"], [1, \"&circleddash;\"], [0, \"&boxplus;\"], [0, \"&boxminus;\"], [0, \"&boxtimes;\"], [0, \"&dotsquare;\"], [0, \"&RightTee;\"], [0, \"&dashv;\"], [0, \"&DownTee;\"], [0, \"&bot;\"], [1, \"&models;\"], [0, \"&DoubleRightTee;\"], [0, \"&Vdash;\"], [0, \"&Vvdash;\"], [0, \"&VDash;\"], [0, \"&nvdash;\"], [0, \"&nvDash;\"], [0, \"&nVdash;\"], [0, \"&nVDash;\"], [0, \"&prurel;\"], [1, \"&LeftTriangle;\"], [0, \"&RightTriangle;\"], [0, { v: \"&LeftTriangleEqual;\", n: 8402, o: \"&nvltrie;\" }], [0, { v: \"&RightTriangleEqual;\", n: 8402, o: \"&nvrtrie;\" }], [0, \"&origof;\"], [0, \"&imof;\"], [0, \"&multimap;\"], [0, \"&hercon;\"], [0, \"&intcal;\"], [0, \"&veebar;\"], [1, \"&barvee;\"], [0, \"&angrtvb;\"], [0, \"&lrtri;\"], [0, \"&bigwedge;\"], [0, \"&bigvee;\"], [0, \"&bigcap;\"], [0, \"&bigcup;\"], [0, \"&diam;\"], [0, \"&sdot;\"], [0, \"&sstarf;\"], [0, \"&divideontimes;\"], [0, \"&bowtie;\"], [0, \"&ltimes;\"], [0, \"&rtimes;\"], [0, \"&leftthreetimes;\"], [0, \"&rightthreetimes;\"], [0, \"&backsimeq;\"], [0, \"&curlyvee;\"], [0, \"&curlywedge;\"], [0, \"&Sub;\"], [0, \"&Sup;\"], [0, \"&Cap;\"], [0, \"&Cup;\"], [0, \"&fork;\"], [0, \"&epar;\"], [0, \"&lessdot;\"], [0, \"&gtdot;\"], [0, { v: \"&Ll;\", n: 824, o: \"&nLl;\" }], [0, { v: \"&Gg;\", n: 824, o: \"&nGg;\" }], [0, { v: \"&leg;\", n: 65024, o: \"&lesg;\" }], [0, { v: \"&gel;\", n: 65024, o: \"&gesl;\" }], [2, \"&cuepr;\"], [0, \"&cuesc;\"], [0, \"&NotPrecedesSlantEqual;\"], [0, \"&NotSucceedsSlantEqual;\"], [0, \"&NotSquareSubsetEqual;\"], [0, \"&NotSquareSupersetEqual;\"], [2, \"&lnsim;\"], [0, \"&gnsim;\"], [0, \"&precnsim;\"], [0, \"&scnsim;\"], [0, \"&nltri;\"], [0, \"&NotRightTriangle;\"], [0, \"&nltrie;\"], [0, \"&NotRightTriangleEqual;\"], [0, \"&vellip;\"], [0, \"&ctdot;\"], [0, \"&utdot;\"], [0, \"&dtdot;\"], [0, \"&disin;\"], [0, \"&isinsv;\"], [0, \"&isins;\"], [0, { v: \"&isindot;\", n: 824, o: \"&notindot;\" }], [0, \"&notinvc;\"], [0, \"&notinvb;\"], [1, { v: \"&isinE;\", n: 824, o: \"&notinE;\" }], [0, \"&nisd;\"], [0, \"&xnis;\"], [0, \"&nis;\"], [0, \"&notnivc;\"], [0, \"&notnivb;\"], [6, \"&barwed;\"], [0, \"&Barwed;\"], [1, \"&lceil;\"], [0, \"&rceil;\"], [0, \"&LeftFloor;\"], [0, \"&rfloor;\"], [0, \"&drcrop;\"], [0, \"&dlcrop;\"], [0, \"&urcrop;\"], [0, \"&ulcrop;\"], [0, \"&bnot;\"], [1, \"&profline;\"], [0, \"&profsurf;\"], [1, \"&telrec;\"], [0, \"&target;\"], [5, \"&ulcorn;\"], [0, \"&urcorn;\"], [0, \"&dlcorn;\"], [0, \"&drcorn;\"], [2, \"&frown;\"], [0, \"&smile;\"], [9, \"&cylcty;\"], [0, \"&profalar;\"], [7, \"&topbot;\"], [6, \"&ovbar;\"], [1, \"&solbar;\"], [60, \"&angzarr;\"], [51, \"&lmoustache;\"], [0, \"&rmoustache;\"], [2, \"&OverBracket;\"], [0, \"&bbrk;\"], [0, \"&bbrktbrk;\"], [37, \"&OverParenthesis;\"], [0, \"&UnderParenthesis;\"], [0, \"&OverBrace;\"], [0, \"&UnderBrace;\"], [2, \"&trpezium;\"], [4, \"&elinters;\"], [59, \"&blank;\"], [164, \"&circledS;\"], [55, \"&boxh;\"], [1, \"&boxv;\"], [9, \"&boxdr;\"], [3, \"&boxdl;\"], [3, \"&boxur;\"], [3, \"&boxul;\"], [3, \"&boxvr;\"], [7, \"&boxvl;\"], [7, \"&boxhd;\"], [7, \"&boxhu;\"], [7, \"&boxvh;\"], [19, \"&boxH;\"], [0, \"&boxV;\"], [0, \"&boxdR;\"], [0, \"&boxDr;\"], [0, \"&boxDR;\"], [0, \"&boxdL;\"], [0, \"&boxDl;\"], [0, \"&boxDL;\"], [0, \"&boxuR;\"], [0, \"&boxUr;\"], [0, \"&boxUR;\"], [0, \"&boxuL;\"], [0, \"&boxUl;\"], [0, \"&boxUL;\"], [0, \"&boxvR;\"], [0, \"&boxVr;\"], [0, \"&boxVR;\"], [0, \"&boxvL;\"], [0, \"&boxVl;\"], [0, \"&boxVL;\"], [0, \"&boxHd;\"], [0, \"&boxhD;\"], [0, \"&boxHD;\"], [0, \"&boxHu;\"], [0, \"&boxhU;\"], [0, \"&boxHU;\"], [0, \"&boxvH;\"], [0, \"&boxVh;\"], [0, \"&boxVH;\"], [19, \"&uhblk;\"], [3, \"&lhblk;\"], [3, \"&block;\"], [8, \"&blk14;\"], [0, \"&blk12;\"], [0, \"&blk34;\"], [13, \"&square;\"], [8, \"&blacksquare;\"], [0, \"&EmptyVerySmallSquare;\"], [1, \"&rect;\"], [0, \"&marker;\"], [2, \"&fltns;\"], [1, \"&bigtriangleup;\"], [0, \"&blacktriangle;\"], [0, \"&triangle;\"], [2, \"&blacktriangleright;\"], [0, \"&rtri;\"], [3, \"&bigtriangledown;\"], [0, \"&blacktriangledown;\"], [0, \"&dtri;\"], [2, \"&blacktriangleleft;\"], [0, \"&ltri;\"], [6, \"&loz;\"], [0, \"&cir;\"], [32, \"&tridot;\"], [2, \"&bigcirc;\"], [8, \"&ultri;\"], [0, \"&urtri;\"], [0, \"&lltri;\"], [0, \"&EmptySmallSquare;\"], [0, \"&FilledSmallSquare;\"], [8, \"&bigstar;\"], [0, \"&star;\"], [7, \"&phone;\"], [49, \"&female;\"], [1, \"&male;\"], [29, \"&spades;\"], [2, \"&clubs;\"], [1, \"&hearts;\"], [0, \"&diamondsuit;\"], [3, \"&sung;\"], [2, \"&flat;\"], [0, \"&natural;\"], [0, \"&sharp;\"], [163, \"&check;\"], [3, \"&cross;\"], [8, \"&malt;\"], [21, \"&sext;\"], [33, \"&VerticalSeparator;\"], [25, \"&lbbrk;\"], [0, \"&rbbrk;\"], [84, \"&bsolhsub;\"], [0, \"&suphsol;\"], [28, \"&LeftDoubleBracket;\"], [0, \"&RightDoubleBracket;\"], [0, \"&lang;\"], [0, \"&rang;\"], [0, \"&Lang;\"], [0, \"&Rang;\"], [0, \"&loang;\"], [0, \"&roang;\"], [7, \"&longleftarrow;\"], [0, \"&longrightarrow;\"], [0, \"&longleftrightarrow;\"], [0, \"&DoubleLongLeftArrow;\"], [0, \"&DoubleLongRightArrow;\"], [0, \"&DoubleLongLeftRightArrow;\"], [1, \"&longmapsto;\"], [2, \"&dzigrarr;\"], [258, \"&nvlArr;\"], [0, \"&nvrArr;\"], [0, \"&nvHarr;\"], [0, \"&Map;\"], [6, \"&lbarr;\"], [0, \"&bkarow;\"], [0, \"&lBarr;\"], [0, \"&dbkarow;\"], [0, \"&drbkarow;\"], [0, \"&DDotrahd;\"], [0, \"&UpArrowBar;\"], [0, \"&DownArrowBar;\"], [2, \"&Rarrtl;\"], [2, \"&latail;\"], [0, \"&ratail;\"], [0, \"&lAtail;\"], [0, \"&rAtail;\"], [0, \"&larrfs;\"], [0, \"&rarrfs;\"], [0, \"&larrbfs;\"], [0, \"&rarrbfs;\"], [2, \"&nwarhk;\"], [0, \"&nearhk;\"], [0, \"&hksearow;\"], [0, \"&hkswarow;\"], [0, \"&nwnear;\"], [0, \"&nesear;\"], [0, \"&seswar;\"], [0, \"&swnwar;\"], [8, { v: \"&rarrc;\", n: 824, o: \"&nrarrc;\" }], [1, \"&cudarrr;\"], [0, \"&ldca;\"], [0, \"&rdca;\"], [0, \"&cudarrl;\"], [0, \"&larrpl;\"], [2, \"&curarrm;\"], [0, \"&cularrp;\"], [7, \"&rarrpl;\"], [2, \"&harrcir;\"], [0, \"&Uarrocir;\"], [0, \"&lurdshar;\"], [0, \"&ldrushar;\"], [2, \"&LeftRightVector;\"], [0, \"&RightUpDownVector;\"], [0, \"&DownLeftRightVector;\"], [0, \"&LeftUpDownVector;\"], [0, \"&LeftVectorBar;\"], [0, \"&RightVectorBar;\"], [0, \"&RightUpVectorBar;\"], [0, \"&RightDownVectorBar;\"], [0, \"&DownLeftVectorBar;\"], [0, \"&DownRightVectorBar;\"], [0, \"&LeftUpVectorBar;\"], [0, \"&LeftDownVectorBar;\"], [0, \"&LeftTeeVector;\"], [0, \"&RightTeeVector;\"], [0, \"&RightUpTeeVector;\"], [0, \"&RightDownTeeVector;\"], [0, \"&DownLeftTeeVector;\"], [0, \"&DownRightTeeVector;\"], [0, \"&LeftUpTeeVector;\"], [0, \"&LeftDownTeeVector;\"], [0, \"&lHar;\"], [0, \"&uHar;\"], [0, \"&rHar;\"], [0, \"&dHar;\"], [0, \"&luruhar;\"], [0, \"&ldrdhar;\"], [0, \"&ruluhar;\"], [0, \"&rdldhar;\"], [0, \"&lharul;\"], [0, \"&llhard;\"], [0, \"&rharul;\"], [0, \"&lrhard;\"], [0, \"&udhar;\"], [0, \"&duhar;\"], [0, \"&RoundImplies;\"], [0, \"&erarr;\"], [0, \"&simrarr;\"], [0, \"&larrsim;\"], [0, \"&rarrsim;\"], [0, \"&rarrap;\"], [0, \"&ltlarr;\"], [1, \"&gtrarr;\"], [0, \"&subrarr;\"], [1, \"&suplarr;\"], [0, \"&lfisht;\"], [0, \"&rfisht;\"], [0, \"&ufisht;\"], [0, \"&dfisht;\"], [5, \"&lopar;\"], [0, \"&ropar;\"], [4, \"&lbrke;\"], [0, \"&rbrke;\"], [0, \"&lbrkslu;\"], [0, \"&rbrksld;\"], [0, \"&lbrksld;\"], [0, \"&rbrkslu;\"], [0, \"&langd;\"], [0, \"&rangd;\"], [0, \"&lparlt;\"], [0, \"&rpargt;\"], [0, \"&gtlPar;\"], [0, \"&ltrPar;\"], [3, \"&vzigzag;\"], [1, \"&vangrt;\"], [0, \"&angrtvbd;\"], [6, \"&ange;\"], [0, \"&range;\"], [0, \"&dwangle;\"], [0, \"&uwangle;\"], [0, \"&angmsdaa;\"], [0, \"&angmsdab;\"], [0, \"&angmsdac;\"], [0, \"&angmsdad;\"], [0, \"&angmsdae;\"], [0, \"&angmsdaf;\"], [0, \"&angmsdag;\"], [0, \"&angmsdah;\"], [0, \"&bemptyv;\"], [0, \"&demptyv;\"], [0, \"&cemptyv;\"], [0, \"&raemptyv;\"], [0, \"&laemptyv;\"], [0, \"&ohbar;\"], [0, \"&omid;\"], [0, \"&opar;\"], [1, \"&operp;\"], [1, \"&olcross;\"], [0, \"&odsold;\"], [1, \"&olcir;\"], [0, \"&ofcir;\"], [0, \"&olt;\"], [0, \"&ogt;\"], [0, \"&cirscir;\"], [0, \"&cirE;\"], [0, \"&solb;\"], [0, \"&bsolb;\"], [3, \"&boxbox;\"], [3, \"&trisb;\"], [0, \"&rtriltri;\"], [0, { v: \"&LeftTriangleBar;\", n: 824, o: \"&NotLeftTriangleBar;\" }], [0, { v: \"&RightTriangleBar;\", n: 824, o: \"&NotRightTriangleBar;\" }], [11, \"&iinfin;\"], [0, \"&infintie;\"], [0, \"&nvinfin;\"], [4, \"&eparsl;\"], [0, \"&smeparsl;\"], [0, \"&eqvparsl;\"], [5, \"&blacklozenge;\"], [8, \"&RuleDelayed;\"], [1, \"&dsol;\"], [9, \"&bigodot;\"], [0, \"&bigoplus;\"], [0, \"&bigotimes;\"], [1, \"&biguplus;\"], [1, \"&bigsqcup;\"], [5, \"&iiiint;\"], [0, \"&fpartint;\"], [2, \"&cirfnint;\"], [0, \"&awint;\"], [0, \"&rppolint;\"], [0, \"&scpolint;\"], [0, \"&npolint;\"], [0, \"&pointint;\"], [0, \"&quatint;\"], [0, \"&intlarhk;\"], [10, \"&pluscir;\"], [0, \"&plusacir;\"], [0, \"&simplus;\"], [0, \"&plusdu;\"], [0, \"&plussim;\"], [0, \"&plustwo;\"], [1, \"&mcomma;\"], [0, \"&minusdu;\"], [2, \"&loplus;\"], [0, \"&roplus;\"], [0, \"&Cross;\"], [0, \"&timesd;\"], [0, \"&timesbar;\"], [1, \"&smashp;\"], [0, \"&lotimes;\"], [0, \"&rotimes;\"], [0, \"&otimesas;\"], [0, \"&Otimes;\"], [0, \"&odiv;\"], [0, \"&triplus;\"], [0, \"&triminus;\"], [0, \"&tritime;\"], [0, \"&intprod;\"], [2, \"&amalg;\"], [0, \"&capdot;\"], [1, \"&ncup;\"], [0, \"&ncap;\"], [0, \"&capand;\"], [0, \"&cupor;\"], [0, \"&cupcap;\"], [0, \"&capcup;\"], [0, \"&cupbrcap;\"], [0, \"&capbrcup;\"], [0, \"&cupcup;\"], [0, \"&capcap;\"], [0, \"&ccups;\"], [0, \"&ccaps;\"], [2, \"&ccupssm;\"], [2, \"&And;\"], [0, \"&Or;\"], [0, \"&andand;\"], [0, \"&oror;\"], [0, \"&orslope;\"], [0, \"&andslope;\"], [1, \"&andv;\"], [0, \"&orv;\"], [0, \"&andd;\"], [0, \"&ord;\"], [1, \"&wedbar;\"], [6, \"&sdote;\"], [3, \"&simdot;\"], [2, { v: \"&congdot;\", n: 824, o: \"&ncongdot;\" }], [0, \"&easter;\"], [0, \"&apacir;\"], [0, { v: \"&apE;\", n: 824, o: \"&napE;\" }], [0, \"&eplus;\"], [0, \"&pluse;\"], [0, \"&Esim;\"], [0, \"&Colone;\"], [0, \"&Equal;\"], [1, \"&ddotseq;\"], [0, \"&equivDD;\"], [0, \"&ltcir;\"], [0, \"&gtcir;\"], [0, \"&ltquest;\"], [0, \"&gtquest;\"], [0, { v: \"&leqslant;\", n: 824, o: \"&nleqslant;\" }], [0, { v: \"&geqslant;\", n: 824, o: \"&ngeqslant;\" }], [0, \"&lesdot;\"], [0, \"&gesdot;\"], [0, \"&lesdoto;\"], [0, \"&gesdoto;\"], [0, \"&lesdotor;\"], [0, \"&gesdotol;\"], [0, \"&lap;\"], [0, \"&gap;\"], [0, \"&lne;\"], [0, \"&gne;\"], [0, \"&lnap;\"], [0, \"&gnap;\"], [0, \"&lEg;\"], [0, \"&gEl;\"], [0, \"&lsime;\"], [0, \"&gsime;\"], [0, \"&lsimg;\"], [0, \"&gsiml;\"], [0, \"&lgE;\"], [0, \"&glE;\"], [0, \"&lesges;\"], [0, \"&gesles;\"], [0, \"&els;\"], [0, \"&egs;\"], [0, \"&elsdot;\"], [0, \"&egsdot;\"], [0, \"&el;\"], [0, \"&eg;\"], [2, \"&siml;\"], [0, \"&simg;\"], [0, \"&simlE;\"], [0, \"&simgE;\"], [0, { v: \"&LessLess;\", n: 824, o: \"&NotNestedLessLess;\" }], [0, { v: \"&GreaterGreater;\", n: 824, o: \"&NotNestedGreaterGreater;\" }], [1, \"&glj;\"], [0, \"&gla;\"], [0, \"&ltcc;\"], [0, \"&gtcc;\"], [0, \"&lescc;\"], [0, \"&gescc;\"], [0, \"&smt;\"], [0, \"&lat;\"], [0, { v: \"&smte;\", n: 65024, o: \"&smtes;\" }], [0, { v: \"&late;\", n: 65024, o: \"&lates;\" }], [0, \"&bumpE;\"], [0, { v: \"&PrecedesEqual;\", n: 824, o: \"&NotPrecedesEqual;\" }], [0, { v: \"&sce;\", n: 824, o: \"&NotSucceedsEqual;\" }], [2, \"&prE;\"], [0, \"&scE;\"], [0, \"&precneqq;\"], [0, \"&scnE;\"], [0, \"&prap;\"], [0, \"&scap;\"], [0, \"&precnapprox;\"], [0, \"&scnap;\"], [0, \"&Pr;\"], [0, \"&Sc;\"], [0, \"&subdot;\"], [0, \"&supdot;\"], [0, \"&subplus;\"], [0, \"&supplus;\"], [0, \"&submult;\"], [0, \"&supmult;\"], [0, \"&subedot;\"], [0, \"&supedot;\"], [0, { v: \"&subE;\", n: 824, o: \"&nsubE;\" }], [0, { v: \"&supE;\", n: 824, o: \"&nsupE;\" }], [0, \"&subsim;\"], [0, \"&supsim;\"], [2, { v: \"&subnE;\", n: 65024, o: \"&varsubsetneqq;\" }], [0, { v: \"&supnE;\", n: 65024, o: \"&varsupsetneqq;\" }], [2, \"&csub;\"], [0, \"&csup;\"], [0, \"&csube;\"], [0, \"&csupe;\"], [0, \"&subsup;\"], [0, \"&supsub;\"], [0, \"&subsub;\"], [0, \"&supsup;\"], [0, \"&suphsub;\"], [0, \"&supdsub;\"], [0, \"&forkv;\"], [0, \"&topfork;\"], [0, \"&mlcp;\"], [8, \"&Dashv;\"], [1, \"&Vdashl;\"], [0, \"&Barv;\"], [0, \"&vBar;\"], [0, \"&vBarv;\"], [1, \"&Vbar;\"], [0, \"&Not;\"], [0, \"&bNot;\"], [0, \"&rnmid;\"], [0, \"&cirmid;\"], [0, \"&midcir;\"], [0, \"&topcir;\"], [0, \"&nhpar;\"], [0, \"&parsim;\"], [9, { v: \"&parsl;\", n: 8421, o: \"&nparsl;\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"&Ascr;\"], [1, \"&Cscr;\"], [0, \"&Dscr;\"], [2, \"&Gscr;\"], [2, \"&Jscr;\"], [0, \"&Kscr;\"], [2, \"&Nscr;\"], [0, \"&Oscr;\"], [0, \"&Pscr;\"], [0, \"&Qscr;\"], [1, \"&Sscr;\"], [0, \"&Tscr;\"], [0, \"&Uscr;\"], [0, \"&Vscr;\"], [0, \"&Wscr;\"], [0, \"&Xscr;\"], [0, \"&Yscr;\"], [0, \"&Zscr;\"], [0, \"&ascr;\"], [0, \"&bscr;\"], [0, \"&cscr;\"], [0, \"&dscr;\"], [1, \"&fscr;\"], [1, \"&hscr;\"], [0, \"&iscr;\"], [0, \"&jscr;\"], [0, \"&kscr;\"], [0, \"&lscr;\"], [0, \"&mscr;\"], [0, \"&nscr;\"], [1, \"&pscr;\"], [0, \"&qscr;\"], [0, \"&rscr;\"], [0, \"&sscr;\"], [0, \"&tscr;\"], [0, \"&uscr;\"], [0, \"&vscr;\"], [0, \"&wscr;\"], [0, \"&xscr;\"], [0, \"&yscr;\"], [0, \"&zscr;\"], [52, \"&Afr;\"], [0, \"&Bfr;\"], [1, \"&Dfr;\"], [0, \"&Efr;\"], [0, \"&Ffr;\"], [0, \"&Gfr;\"], [2, \"&Jfr;\"], [0, \"&Kfr;\"], [0, \"&Lfr;\"], [0, \"&Mfr;\"], [0, \"&Nfr;\"], [0, \"&Ofr;\"], [0, \"&Pfr;\"], [0, \"&Qfr;\"], [1, \"&Sfr;\"], [0, \"&Tfr;\"], [0, \"&Ufr;\"], [0, \"&Vfr;\"], [0, \"&Wfr;\"], [0, \"&Xfr;\"], [0, \"&Yfr;\"], [1, \"&afr;\"], [0, \"&bfr;\"], [0, \"&cfr;\"], [0, \"&dfr;\"], [0, \"&efr;\"], [0, \"&ffr;\"], [0, \"&gfr;\"], [0, \"&hfr;\"], [0, \"&ifr;\"], [0, \"&jfr;\"], [0, \"&kfr;\"], [0, \"&lfr;\"], [0, \"&mfr;\"], [0, \"&nfr;\"], [0, \"&ofr;\"], [0, \"&pfr;\"], [0, \"&qfr;\"], [0, \"&rfr;\"], [0, \"&sfr;\"], [0, \"&tfr;\"], [0, \"&ufr;\"], [0, \"&vfr;\"], [0, \"&wfr;\"], [0, \"&xfr;\"], [0, \"&yfr;\"], [0, \"&zfr;\"], [0, \"&Aopf;\"], [0, \"&Bopf;\"], [1, \"&Dopf;\"], [0, \"&Eopf;\"], [0, \"&Fopf;\"], [0, \"&Gopf;\"], [1, \"&Iopf;\"], [0, \"&Jopf;\"], [0, \"&Kopf;\"], [0, \"&Lopf;\"], [0, \"&Mopf;\"], [1, \"&Oopf;\"], [3, \"&Sopf;\"], [0, \"&Topf;\"], [0, \"&Uopf;\"], [0, \"&Vopf;\"], [0, \"&Wopf;\"], [0, \"&Xopf;\"], [0, \"&Yopf;\"], [1, \"&aopf;\"], [0, \"&bopf;\"], [0, \"&copf;\"], [0, \"&dopf;\"], [0, \"&eopf;\"], [0, \"&fopf;\"], [0, \"&gopf;\"], [0, \"&hopf;\"], [0, \"&iopf;\"], [0, \"&jopf;\"], [0, \"&kopf;\"], [0, \"&lopf;\"], [0, \"&mopf;\"], [0, \"&nopf;\"], [0, \"&oopf;\"], [0, \"&popf;\"], [0, \"&qopf;\"], [0, \"&ropf;\"], [0, \"&sopf;\"], [0, \"&topf;\"], [0, \"&uopf;\"], [0, \"&vopf;\"], [0, \"&wopf;\"], [0, \"&xopf;\"], [0, \"&yopf;\"], [0, \"&zopf;\"]])) }], [8906, \"&fflig;\"], [0, \"&filig;\"], [0, \"&fllig;\"], [0, \"&ffilig;\"], [0, \"&ffllig;\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n    [34, \"&quot;\"],\n    [38, \"&amp;\"],\n    [39, \"&apos;\"],\n    [60, \"&lt;\"],\n    [62, \"&gt;\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n    ? function (str, index) { return str.codePointAt(index); }\n    : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n        function (c, index) {\n            return (c.charCodeAt(index) & 0xfc00) === 0xd800\n                ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n                    c.charCodeAt(index + 1) -\n                    0xdc00 +\n                    0x10000\n                : c.charCodeAt(index);\n        };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nfunction encodeXML(str) {\n    var ret = \"\";\n    var lastIdx = 0;\n    var match;\n    while ((match = exports.xmlReplacer.exec(str)) !== null) {\n        var i = match.index;\n        var char = str.charCodeAt(i);\n        var next = xmlCodeMap.get(char);\n        if (next !== undefined) {\n            ret += str.substring(lastIdx, i) + next;\n            lastIdx = i + 1;\n        }\n        else {\n            ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n            // Increase by 1 if we have a surrogate pair\n            lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n        }\n    }\n    return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `&#xfc;`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n    return function escape(data) {\n        var match;\n        var lastIdx = 0;\n        var result = \"\";\n        while ((match = regex.exec(data))) {\n            if (lastIdx !== match.index) {\n                result += data.substring(lastIdx, match.index);\n            }\n            // We know that this character will be in the map.\n            result += map.get(match[0].charCodeAt(0));\n            // Every match will be of length 1\n            lastIdx = match.index + 1;\n        }\n        return result + data.substring(lastIdx);\n    };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n    [34, \"&quot;\"],\n    [38, \"&amp;\"],\n    [160, \"&nbsp;\"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n    [38, \"&amp;\"],\n    [60, \"&lt;\"],\n    [62, \"&gt;\"],\n    [160, \"&nbsp;\"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `&#xfc;`) will be used.\n */\nfunction encodeHTML(data) {\n    return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `&#xfc;`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n    return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n    var ret = \"\";\n    var lastIdx = 0;\n    var match;\n    while ((match = regExp.exec(str)) !== null) {\n        var i = match.index;\n        ret += str.substring(lastIdx, i);\n        var char = str.charCodeAt(i);\n        var next = encode_html_js_1.default.get(char);\n        if (typeof next === \"object\") {\n            // We are in a branch. Try to match the next char.\n            if (i + 1 < str.length) {\n                var nextChar = str.charCodeAt(i + 1);\n                var value = typeof next.n === \"number\"\n                    ? next.n === nextChar\n                        ? next.o\n                        : undefined\n                    : next.n.get(nextChar);\n                if (value !== undefined) {\n                    ret += value;\n                    lastIdx = regExp.lastIndex += 1;\n                    continue;\n                }\n            }\n            next = next.v;\n        }\n        // We might have a tree node without a value; skip and use a numeric entity.\n        if (next !== undefined) {\n            ret += next;\n            lastIdx = i + 1;\n        }\n        else {\n            var cp = (0, escape_js_1.getCodePoint)(str, i);\n            ret += \"&#x\".concat(cp.toString(16), \";\");\n            // Increase by 1 if we have a surrogate pair\n            lastIdx = regExp.lastIndex += Number(cp !== char);\n        }\n    }\n    return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n    /** Support only XML entities. */\n    EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n    /** Support HTML entities, which are a superset of XML entities. */\n    EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n    /**\n     * The output is UTF-8 encoded. Only characters that need escaping within\n     * XML will be escaped.\n     */\n    EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n    /**\n     * The output consists only of ASCII characters. Characters that need\n     * escaping within HTML, and characters that aren't ASCII characters will\n     * be escaped.\n     */\n    EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n    /**\n     * Encode all characters that have an equivalent entity, as well as all\n     * characters that are not ASCII characters.\n     */\n    EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n    /**\n     * Encode all characters that have to be escaped in HTML attributes,\n     * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n     */\n    EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n    /**\n     * Encode all characters that have to be escaped in HTML text,\n     * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n     */\n    EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n    if (options === void 0) { options = EntityLevel.XML; }\n    var level = typeof options === \"number\" ? options : options.level;\n    if (level === EntityLevel.HTML) {\n        var mode = typeof options === \"object\" ? options.mode : undefined;\n        return (0, decode_js_1.decodeHTML)(data, mode);\n    }\n    return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n    var _a;\n    if (options === void 0) { options = EntityLevel.XML; }\n    var opts = typeof options === \"number\" ? { level: options } : options;\n    (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n    return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n    if (options === void 0) { options = EntityLevel.XML; }\n    var opts = typeof options === \"number\" ? { level: options } : options;\n    // Mode `UTF8` just escapes XML entities\n    if (opts.mode === EncodingMode.UTF8)\n        return (0, escape_js_1.escapeUTF8)(data);\n    if (opts.mode === EncodingMode.Attribute)\n        return (0, escape_js_1.escapeAttribute)(data);\n    if (opts.mode === EncodingMode.Text)\n        return (0, escape_js_1.escapeText)(data);\n    if (opts.level === EntityLevel.HTML) {\n        if (opts.mode === EncodingMode.ASCII) {\n            return (0, encode_js_1.encodeNonAsciiHTML)(data);\n        }\n        return (0, encode_js_1.encodeHTML)(data);\n    }\n    // ASCII and Extensive are equivalent\n    return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n    \"altGlyph\",\n    \"altGlyphDef\",\n    \"altGlyphItem\",\n    \"animateColor\",\n    \"animateMotion\",\n    \"animateTransform\",\n    \"clipPath\",\n    \"feBlend\",\n    \"feColorMatrix\",\n    \"feComponentTransfer\",\n    \"feComposite\",\n    \"feConvolveMatrix\",\n    \"feDiffuseLighting\",\n    \"feDisplacementMap\",\n    \"feDistantLight\",\n    \"feDropShadow\",\n    \"feFlood\",\n    \"feFuncA\",\n    \"feFuncB\",\n    \"feFuncG\",\n    \"feFuncR\",\n    \"feGaussianBlur\",\n    \"feImage\",\n    \"feMerge\",\n    \"feMergeNode\",\n    \"feMorphology\",\n    \"feOffset\",\n    \"fePointLight\",\n    \"feSpecularLighting\",\n    \"feSpotLight\",\n    \"feTile\",\n    \"feTurbulence\",\n    \"foreignObject\",\n    \"glyphRef\",\n    \"linearGradient\",\n    \"radialGradient\",\n    \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n    \"definitionURL\",\n    \"attributeName\",\n    \"attributeType\",\n    \"baseFrequency\",\n    \"baseProfile\",\n    \"calcMode\",\n    \"clipPathUnits\",\n    \"diffuseConstant\",\n    \"edgeMode\",\n    \"filterUnits\",\n    \"glyphRef\",\n    \"gradientTransform\",\n    \"gradientUnits\",\n    \"kernelMatrix\",\n    \"kernelUnitLength\",\n    \"keyPoints\",\n    \"keySplines\",\n    \"keyTimes\",\n    \"lengthAdjust\",\n    \"limitingConeAngle\",\n    \"markerHeight\",\n    \"markerUnits\",\n    \"markerWidth\",\n    \"maskContentUnits\",\n    \"maskUnits\",\n    \"numOctaves\",\n    \"pathLength\",\n    \"patternContentUnits\",\n    \"patternTransform\",\n    \"patternUnits\",\n    \"pointsAtX\",\n    \"pointsAtY\",\n    \"pointsAtZ\",\n    \"preserveAlpha\",\n    \"preserveAspectRatio\",\n    \"primitiveUnits\",\n    \"refX\",\n    \"refY\",\n    \"repeatCount\",\n    \"repeatDur\",\n    \"requiredExtensions\",\n    \"requiredFeatures\",\n    \"specularConstant\",\n    \"specularExponent\",\n    \"spreadMethod\",\n    \"startOffset\",\n    \"stdDeviation\",\n    \"stitchTiles\",\n    \"surfaceScale\",\n    \"systemLanguage\",\n    \"tableValues\",\n    \"targetX\",\n    \"targetY\",\n    \"textLength\",\n    \"viewBox\",\n    \"viewTarget\",\n    \"xChannelSelector\",\n    \"yChannelSelector\",\n    \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n    \"style\",\n    \"script\",\n    \"xmp\",\n    \"iframe\",\n    \"noembed\",\n    \"noframes\",\n    \"plaintext\",\n    \"noscript\",\n]);\nfunction replaceQuotes(value) {\n    return value.replace(/\"/g, \"&quot;\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n    var _a;\n    if (!attributes)\n        return;\n    var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n        ? replaceQuotes\n        : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n            ? entities_1.encodeXML\n            : entities_1.escapeAttribute;\n    return Object.keys(attributes)\n        .map(function (key) {\n        var _a, _b;\n        var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n        if (opts.xmlMode === \"foreign\") {\n            /* Fix up mixed-case attribute names */\n            key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n        }\n        if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n            return key;\n        }\n        return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n    })\n        .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n    \"area\",\n    \"base\",\n    \"basefont\",\n    \"br\",\n    \"col\",\n    \"command\",\n    \"embed\",\n    \"frame\",\n    \"hr\",\n    \"img\",\n    \"input\",\n    \"isindex\",\n    \"keygen\",\n    \"link\",\n    \"meta\",\n    \"param\",\n    \"source\",\n    \"track\",\n    \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n    if (options === void 0) { options = {}; }\n    var nodes = \"length\" in node ? node : [node];\n    var output = \"\";\n    for (var i = 0; i < nodes.length; i++) {\n        output += renderNode(nodes[i], options);\n    }\n    return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n    switch (node.type) {\n        case ElementType.Root:\n            return render(node.children, options);\n        // @ts-expect-error We don't use `Doctype` yet\n        case ElementType.Doctype:\n        case ElementType.Directive:\n            return renderDirective(node);\n        case ElementType.Comment:\n            return renderComment(node);\n        case ElementType.CDATA:\n            return renderCdata(node);\n        case ElementType.Script:\n        case ElementType.Style:\n        case ElementType.Tag:\n            return renderTag(node, options);\n        case ElementType.Text:\n            return renderText(node, options);\n    }\n}\nvar foreignModeIntegrationPoints = new Set([\n    \"mi\",\n    \"mo\",\n    \"mn\",\n    \"ms\",\n    \"mtext\",\n    \"annotation-xml\",\n    \"foreignObject\",\n    \"desc\",\n    \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n    var _a;\n    // Handle SVG / MathML in HTML\n    if (opts.xmlMode === \"foreign\") {\n        /* Fix up mixed-case element names */\n        elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n        /* Exit foreign mode at integration points */\n        if (elem.parent &&\n            foreignModeIntegrationPoints.has(elem.parent.name)) {\n            opts = __assign(__assign({}, opts), { xmlMode: false });\n        }\n    }\n    if (!opts.xmlMode && foreignElements.has(elem.name)) {\n        opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n    }\n    var tag = \"<\".concat(elem.name);\n    var attribs = formatAttributes(elem.attribs, opts);\n    if (attribs) {\n        tag += \" \".concat(attribs);\n    }\n    if (elem.children.length === 0 &&\n        (opts.xmlMode\n            ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n                opts.selfClosingTags !== false\n            : // User explicitly asked for self-closing tags, even in HTML mode\n                opts.selfClosingTags && singleTag.has(elem.name))) {\n        if (!opts.xmlMode)\n            tag += \" \";\n        tag += \"/>\";\n    }\n    else {\n        tag += \">\";\n        if (elem.children.length > 0) {\n            tag += render(elem.children, opts);\n        }\n        if (opts.xmlMode || !singleTag.has(elem.name)) {\n            tag += \"</\".concat(elem.name, \">\");\n        }\n    }\n    return tag;\n}\nfunction renderDirective(elem) {\n    return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n    var _a;\n    var data = elem.data || \"\";\n    // If entities weren't decoded, no need to encode them back\n    if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n        !(!opts.xmlMode &&\n            elem.parent &&\n            unencodedElements.has(elem.parent.name))) {\n        data =\n            opts.xmlMode || opts.encodeEntities !== \"utf8\"\n                ? (0, entities_1.encodeXML)(data)\n                : (0, entities_1.escapeText)(data);\n    }\n    return data;\n}\nfunction renderCdata(elem) {\n    return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n    return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getOuterHTML = getOuterHTML;\nexports.getInnerHTML = getInnerHTML;\nexports.getText = getText;\nexports.textContent = textContent;\nexports.innerText = innerText;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n    return (0, dom_serializer_1.default)(node, options);\n}\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n    return (0, domhandler_1.hasChildren)(node)\n        ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n        : \"\";\n}\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags. Ignores comments.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n    if (Array.isArray(node))\n        return node.map(getText).join(\"\");\n    if ((0, domhandler_1.isTag)(node))\n        return node.name === \"br\" ? \"\\n\" : getText(node.children);\n    if ((0, domhandler_1.isCDATA)(node))\n        return getText(node.children);\n    if ((0, domhandler_1.isText)(node))\n        return node.data;\n    return \"\";\n}\n/**\n * Get a node's text content. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n    if (Array.isArray(node))\n        return node.map(textContent).join(\"\");\n    if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n        return textContent(node.children);\n    }\n    if ((0, domhandler_1.isText)(node))\n        return node.data;\n    return \"\";\n}\n/**\n * Get a node's inner text, ignoring `<script>` and `<style>` tags. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n    if (Array.isArray(node))\n        return node.map(innerText).join(\"\");\n    if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n        return innerText(node.children);\n    }\n    if ((0, domhandler_1.isText)(node))\n        return node.data;\n    return \"\";\n}\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getChildren = getChildren;\nexports.getParent = getParent;\nexports.getSiblings = getSiblings;\nexports.getAttributeValue = getAttributeValue;\nexports.hasAttrib = hasAttrib;\nexports.getName = getName;\nexports.nextElementSibling = nextElementSibling;\nexports.prevElementSibling = prevElementSibling;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n    return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nfunction getParent(elem) {\n    return elem.parent || null;\n}\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nfunction getSiblings(elem) {\n    var _a, _b;\n    var parent = getParent(elem);\n    if (parent != null)\n        return getChildren(parent);\n    var siblings = [elem];\n    var prev = elem.prev, next = elem.next;\n    while (prev != null) {\n        siblings.unshift(prev);\n        (_a = prev, prev = _a.prev);\n    }\n    while (next != null) {\n        siblings.push(next);\n        (_b = next, next = _b.next);\n    }\n    return siblings;\n}\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n    var _a;\n    return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n    return (elem.attribs != null &&\n        Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n        elem.attribs[name] != null);\n}\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n    return elem.name;\n}\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nfunction nextElementSibling(elem) {\n    var _a;\n    var next = elem.next;\n    while (next !== null && !(0, domhandler_1.isTag)(next))\n        (_a = next, next = _a.next);\n    return next;\n}\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nfunction prevElementSibling(elem) {\n    var _a;\n    var prev = elem.prev;\n    while (prev !== null && !(0, domhandler_1.isTag)(prev))\n        (_a = prev, prev = _a.prev);\n    return prev;\n}\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.removeElement = removeElement;\nexports.replaceElement = replaceElement;\nexports.appendChild = appendChild;\nexports.append = append;\nexports.prependChild = prependChild;\nexports.prepend = prepend;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n    if (elem.prev)\n        elem.prev.next = elem.next;\n    if (elem.next)\n        elem.next.prev = elem.prev;\n    if (elem.parent) {\n        var childs = elem.parent.children;\n        var childsIndex = childs.lastIndexOf(elem);\n        if (childsIndex >= 0) {\n            childs.splice(childsIndex, 1);\n        }\n    }\n    elem.next = null;\n    elem.prev = null;\n    elem.parent = null;\n}\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n    var prev = (replacement.prev = elem.prev);\n    if (prev) {\n        prev.next = replacement;\n    }\n    var next = (replacement.next = elem.next);\n    if (next) {\n        next.prev = replacement;\n    }\n    var parent = (replacement.parent = elem.parent);\n    if (parent) {\n        var childs = parent.children;\n        childs[childs.lastIndexOf(elem)] = replacement;\n        elem.parent = null;\n    }\n}\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(parent, child) {\n    removeElement(child);\n    child.next = null;\n    child.parent = parent;\n    if (parent.children.push(child) > 1) {\n        var sibling = parent.children[parent.children.length - 2];\n        sibling.next = child;\n        child.prev = sibling;\n    }\n    else {\n        child.prev = null;\n    }\n}\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n    removeElement(next);\n    var parent = elem.parent;\n    var currNext = elem.next;\n    next.next = currNext;\n    next.prev = elem;\n    elem.next = next;\n    next.parent = parent;\n    if (currNext) {\n        currNext.prev = next;\n        if (parent) {\n            var childs = parent.children;\n            childs.splice(childs.lastIndexOf(currNext), 0, next);\n        }\n    }\n    else if (parent) {\n        parent.children.push(next);\n    }\n}\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(parent, child) {\n    removeElement(child);\n    child.parent = parent;\n    child.prev = null;\n    if (parent.children.unshift(child) !== 1) {\n        var sibling = parent.children[1];\n        sibling.prev = child;\n        child.next = sibling;\n    }\n    else {\n        child.next = null;\n    }\n}\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n    removeElement(prev);\n    var parent = elem.parent;\n    if (parent) {\n        var childs = parent.children;\n        childs.splice(childs.indexOf(elem), 0, prev);\n    }\n    if (elem.prev) {\n        elem.prev.next = prev;\n    }\n    prev.parent = parent;\n    prev.prev = elem.prev;\n    prev.next = elem;\n    elem.prev = prev;\n}\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filter = filter;\nexports.find = find;\nexports.findOneChild = findOneChild;\nexports.findOne = findOne;\nexports.existsOne = existsOne;\nexports.findAll = findAll;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function. If `node` is not an array, it will be wrapped in one.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n    if (recurse === void 0) { recurse = true; }\n    if (limit === void 0) { limit = Infinity; }\n    return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\n/**\n * Search an array of nodes and their children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n    var result = [];\n    /** Stack of the arrays we are looking at. */\n    var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n    /** Stack of the indices within the arrays. */\n    var indexStack = [0];\n    for (;;) {\n        // First, check if the current array has any more elements to look at.\n        if (indexStack[0] >= nodeStack[0].length) {\n            // If we have no more arrays to look at, we are done.\n            if (indexStack.length === 1) {\n                return result;\n            }\n            // Otherwise, remove the current array from the stack.\n            nodeStack.shift();\n            indexStack.shift();\n            // Loop back to the start to continue with the next array.\n            continue;\n        }\n        var elem = nodeStack[0][indexStack[0]++];\n        if (test(elem)) {\n            result.push(elem);\n            if (--limit <= 0)\n                return result;\n        }\n        if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n            /*\n             * Add the children to the stack. We are depth-first, so this is\n             * the next array we look at.\n             */\n            indexStack.unshift(0);\n            nodeStack.unshift(elem.children);\n        }\n    }\n}\n/**\n * Finds the first element inside of an array that matches a test function. This is an alias for `Array.prototype.find`.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n    return nodes.find(test);\n}\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Node or array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n    if (recurse === void 0) { recurse = true; }\n    var searchedNodes = Array.isArray(nodes) ? nodes : [nodes];\n    for (var i = 0; i < searchedNodes.length; i++) {\n        var node = searchedNodes[i];\n        if ((0, domhandler_1.isTag)(node) && test(node)) {\n            return node;\n        }\n        if (recurse && (0, domhandler_1.hasChildren)(node) && node.children.length > 0) {\n            var found = findOne(test, node.children, true);\n            if (found)\n                return found;\n        }\n    }\n    return null;\n}\n/**\n * Checks if a tree of nodes contains at least one node passing a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n    return (Array.isArray(nodes) ? nodes : [nodes]).some(function (node) {\n        return ((0, domhandler_1.isTag)(node) && test(node)) ||\n            ((0, domhandler_1.hasChildren)(node) && existsOne(test, node.children));\n    });\n}\n/**\n * Search an array of nodes and their children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n    var result = [];\n    var nodeStack = [Array.isArray(nodes) ? nodes : [nodes]];\n    var indexStack = [0];\n    for (;;) {\n        if (indexStack[0] >= nodeStack[0].length) {\n            if (nodeStack.length === 1) {\n                return result;\n            }\n            // Otherwise, remove the current array from the stack.\n            nodeStack.shift();\n            indexStack.shift();\n            // Loop back to the start to continue with the next array.\n            continue;\n        }\n        var elem = nodeStack[0][indexStack[0]++];\n        if ((0, domhandler_1.isTag)(elem) && test(elem))\n            result.push(elem);\n        if ((0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n            indexStack.unshift(0);\n            nodeStack.unshift(elem.children);\n        }\n    }\n}\n//# sourceMappingURL=querying.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.testElement = testElement;\nexports.getElements = getElements;\nexports.getElementById = getElementById;\nexports.getElementsByTagName = getElementsByTagName;\nexports.getElementsByClassName = getElementsByClassName;\nexports.getElementsByTagType = getElementsByTagType;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n    tag_name: function (name) {\n        if (typeof name === \"function\") {\n            return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n        }\n        else if (name === \"*\") {\n            return domhandler_1.isTag;\n        }\n        return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n    },\n    tag_type: function (type) {\n        if (typeof type === \"function\") {\n            return function (elem) { return type(elem.type); };\n        }\n        return function (elem) { return elem.type === type; };\n    },\n    tag_contains: function (data) {\n        if (typeof data === \"function\") {\n            return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n        }\n        return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n    },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n *   particular value.\n */\nfunction getAttribCheck(attrib, value) {\n    if (typeof value === \"function\") {\n        return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n    }\n    return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n *   functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n    return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n *   if any of them match a node.\n */\nfunction compileTest(options) {\n    var funcs = Object.keys(options).map(function (key) {\n        var value = options[key];\n        return Object.prototype.hasOwnProperty.call(Checks, key)\n            ? Checks[key](value)\n            : getAttribCheck(key, value);\n    });\n    return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n    var test = compileTest(options);\n    return test ? test(node) : true;\n}\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n    if (limit === void 0) { limit = Infinity; }\n    var test = compileTest(options);\n    return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n    if (recurse === void 0) { recurse = true; }\n    if (!Array.isArray(nodes))\n        nodes = [nodes];\n    return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n    if (recurse === void 0) { recurse = true; }\n    if (limit === void 0) { limit = Infinity; }\n    return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `className`.\n *\n * @category Legacy Query Functions\n * @param className Class name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `className`.\n */\nfunction getElementsByClassName(className, nodes, recurse, limit) {\n    if (recurse === void 0) { recurse = true; }\n    if (limit === void 0) { limit = Infinity; }\n    return (0, querying_js_1.filter)(getAttribCheck(\"class\", className), nodes, recurse, limit);\n}\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n    if (recurse === void 0) { recurse = true; }\n    if (limit === void 0) { limit = Infinity; }\n    return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DocumentPosition = void 0;\nexports.removeSubsets = removeSubsets;\nexports.compareDocumentPosition = compareDocumentPosition;\nexports.uniqueSort = uniqueSort;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nfunction removeSubsets(nodes) {\n    var idx = nodes.length;\n    /*\n     * Check if each node (or one of its ancestors) is already contained in the\n     * array.\n     */\n    while (--idx >= 0) {\n        var node = nodes[idx];\n        /*\n         * Remove the node if it is not unique.\n         * We are going through the array from the end, so we only\n         * have to check nodes that preceed the node under consideration in the array.\n         */\n        if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n            nodes.splice(idx, 1);\n            continue;\n        }\n        for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n            if (nodes.includes(ancestor)) {\n                nodes.splice(idx, 1);\n                break;\n            }\n        }\n    }\n    return nodes;\n}\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n    DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n    DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n    DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n    DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n    DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition || (exports.DocumentPosition = DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n    var aParents = [];\n    var bParents = [];\n    if (nodeA === nodeB) {\n        return 0;\n    }\n    var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n    while (current) {\n        aParents.unshift(current);\n        current = current.parent;\n    }\n    current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n    while (current) {\n        bParents.unshift(current);\n        current = current.parent;\n    }\n    var maxIdx = Math.min(aParents.length, bParents.length);\n    var idx = 0;\n    while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n        idx++;\n    }\n    if (idx === 0) {\n        return DocumentPosition.DISCONNECTED;\n    }\n    var sharedParent = aParents[idx - 1];\n    var siblings = sharedParent.children;\n    var aSibling = aParents[idx];\n    var bSibling = bParents[idx];\n    if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n        if (sharedParent === nodeB) {\n            return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n        }\n        return DocumentPosition.FOLLOWING;\n    }\n    if (sharedParent === nodeA) {\n        return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n    }\n    return DocumentPosition.PRECEDING;\n}\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n    nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n    nodes.sort(function (a, b) {\n        var relative = compareDocumentPosition(a, b);\n        if (relative & DocumentPosition.PRECEDING) {\n            return -1;\n        }\n        else if (relative & DocumentPosition.FOLLOWING) {\n            return 1;\n        }\n        return 0;\n    });\n    return nodes;\n}\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = getFeed;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n    var feedRoot = getOneElement(isValidFeed, doc);\n    return !feedRoot\n        ? null\n        : feedRoot.name === \"feed\"\n            ? getAtomFeed(feedRoot)\n            : getRssFeed(feedRoot);\n}\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n    var _a;\n    var childs = feedRoot.children;\n    var feed = {\n        type: \"atom\",\n        items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n            var _a;\n            var children = item.children;\n            var entry = { media: getMediaElements(children) };\n            addConditionally(entry, \"id\", \"id\", children);\n            addConditionally(entry, \"title\", \"title\", children);\n            var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n            if (href) {\n                entry.link = href;\n            }\n            var description = fetch(\"summary\", children) || fetch(\"content\", children);\n            if (description) {\n                entry.description = description;\n            }\n            var pubDate = fetch(\"updated\", children);\n            if (pubDate) {\n                entry.pubDate = new Date(pubDate);\n            }\n            return entry;\n        }),\n    };\n    addConditionally(feed, \"id\", \"id\", childs);\n    addConditionally(feed, \"title\", \"title\", childs);\n    var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n    if (href) {\n        feed.link = href;\n    }\n    addConditionally(feed, \"description\", \"subtitle\", childs);\n    var updated = fetch(\"updated\", childs);\n    if (updated) {\n        feed.updated = new Date(updated);\n    }\n    addConditionally(feed, \"author\", \"email\", childs, true);\n    return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n    var _a, _b;\n    var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n    var feed = {\n        type: feedRoot.name.substr(0, 3),\n        id: \"\",\n        items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n            var children = item.children;\n            var entry = { media: getMediaElements(children) };\n            addConditionally(entry, \"id\", \"guid\", children);\n            addConditionally(entry, \"title\", \"title\", children);\n            addConditionally(entry, \"link\", \"link\", children);\n            addConditionally(entry, \"description\", \"description\", children);\n            var pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n            if (pubDate)\n                entry.pubDate = new Date(pubDate);\n            return entry;\n        }),\n    };\n    addConditionally(feed, \"title\", \"title\", childs);\n    addConditionally(feed, \"link\", \"link\", childs);\n    addConditionally(feed, \"description\", \"description\", childs);\n    var updated = fetch(\"lastBuildDate\", childs);\n    if (updated) {\n        feed.updated = new Date(updated);\n    }\n    addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n    return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n    \"fileSize\",\n    \"bitrate\",\n    \"framerate\",\n    \"samplingrate\",\n    \"channels\",\n    \"duration\",\n    \"height\",\n    \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n    return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n        var attribs = elem.attribs;\n        var media = {\n            medium: attribs[\"medium\"],\n            isDefault: !!attribs[\"isDefault\"],\n        };\n        for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n            var attrib = MEDIA_KEYS_STRING_1[_i];\n            if (attribs[attrib]) {\n                media[attrib] = attribs[attrib];\n            }\n        }\n        for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n            var attrib = MEDIA_KEYS_INT_1[_a];\n            if (attribs[attrib]) {\n                media[attrib] = parseInt(attribs[attrib], 10);\n            }\n        }\n        if (attribs[\"expression\"]) {\n            media.expression = attribs[\"expression\"];\n        }\n        return media;\n    });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n    return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n    if (recurse === void 0) { recurse = false; }\n    return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n    if (recurse === void 0) { recurse = false; }\n    var val = fetch(tagName, where, recurse);\n    if (val)\n        obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n    return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n    var handler = new domhandler_1.DomHandler(undefined, options);\n    new Parser_js_1.Parser(handler, options).end(data);\n    return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n    return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(callback, options, elementCallback) {\n    var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n    return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n    if (options === void 0) { options = parseFeedDefaultOptions; }\n    return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RDFA_CONTENTTYPES = exports.RDFA_FEATURES = void 0;\n/**\n * A mapping of RDFa profile to a features object.\n */\n// tslint:disable:object-literal-sort-keys\nexports.RDFA_FEATURES = {\n    '': {\n        baseTag: true,\n        xmlBase: true,\n        langAttribute: true,\n        onlyAllowUriRelRevIfProperty: true,\n        inheritSubjectInHeadBody: true,\n        datetimeAttribute: true,\n        timeTag: true,\n        htmlDatatype: true,\n        copyRdfaPatterns: true,\n        xmlnsPrefixMappings: true,\n        xhtmlInitialContext: true,\n        roleAttribute: true,\n    },\n    'core': {\n        baseTag: false,\n        xmlBase: false,\n        langAttribute: true,\n        onlyAllowUriRelRevIfProperty: true,\n        inheritSubjectInHeadBody: false,\n        datetimeAttribute: false,\n        timeTag: false,\n        htmlDatatype: false,\n        copyRdfaPatterns: true,\n        xmlnsPrefixMappings: true,\n        xhtmlInitialContext: false,\n        roleAttribute: false,\n    },\n    'html': {\n        baseTag: true,\n        xmlBase: false,\n        langAttribute: true,\n        onlyAllowUriRelRevIfProperty: true,\n        inheritSubjectInHeadBody: true,\n        datetimeAttribute: true,\n        timeTag: true,\n        htmlDatatype: true,\n        copyRdfaPatterns: true,\n        xmlnsPrefixMappings: true,\n        xhtmlInitialContext: false,\n        roleAttribute: true,\n    },\n    'xhtml': {\n        baseTag: true,\n        xmlBase: false,\n        langAttribute: true,\n        onlyAllowUriRelRevIfProperty: true,\n        inheritSubjectInHeadBody: true,\n        datetimeAttribute: true,\n        timeTag: true,\n        htmlDatatype: true,\n        copyRdfaPatterns: true,\n        xmlnsPrefixMappings: true,\n        xhtmlInitialContext: true,\n        roleAttribute: true,\n    },\n    'xml': {\n        baseTag: false,\n        xmlBase: true,\n        langAttribute: true,\n        onlyAllowUriRelRevIfProperty: false,\n        inheritSubjectInHeadBody: false,\n        datetimeAttribute: true,\n        timeTag: true,\n        htmlDatatype: false,\n        copyRdfaPatterns: false,\n        xmlnsPrefixMappings: true,\n        xhtmlInitialContext: false,\n        roleAttribute: true,\n    },\n};\n// tslint:enable:object-literal-sort-keys\n// tslint:disable:object-literal-sort-keys\nexports.RDFA_CONTENTTYPES = {\n    // HTML\n    'text/html': 'html',\n    // XHTML\n    'application/xhtml+xml': 'xhtml',\n    // XML\n    'application/xml': 'xml',\n    'text/xml': 'xml',\n    'image/svg+xml': 'xml',\n};\n// tslint:enable:object-literal-sort-keys\n//# sourceMappingURL=RdfaProfile.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst RdfaProfile_1 = require(\"./RdfaProfile\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\n/**\n * A collection of utility functions.\n */\nclass Util {\n    constructor(dataFactory, baseIRI) {\n        this.dataFactory = dataFactory || new rdf_data_factory_1.DataFactory();\n        this.baseIRI = this.dataFactory.namedNode(baseIRI || '');\n        this.baseIRIDocument = this.baseIRI;\n    }\n    /**\n     * Retrieve the prefixes of the current tag's attributes.\n     * @param {{[p: string]: string}} attributes A tag's attributes.\n     * @param {{[p: string]: string}} parentPrefixes The prefixes from the parent tag.\n     * @param {boolean} xmlnsPrefixMappings If prefixes should be extracted from xmlnsPrefixMappings.\n     * @return {{[p: string]: string}} The new prefixes.\n     */\n    static parsePrefixes(attributes, parentPrefixes, xmlnsPrefixMappings) {\n        const additionalPrefixes = {};\n        if (xmlnsPrefixMappings) {\n            for (const attribute in attributes) {\n                if (attribute.startsWith('xmlns')) {\n                    additionalPrefixes[attribute.substr(6)] = attributes[attribute];\n                }\n            }\n        }\n        if (attributes.prefix || Object.keys(additionalPrefixes).length > 0) {\n            const prefixes = Object.assign(Object.assign({}, parentPrefixes), additionalPrefixes);\n            if (attributes.prefix) {\n                let prefixMatch;\n                // tslint:disable-next-line:no-conditional-assignment\n                while (prefixMatch = Util.PREFIX_REGEX.exec(attributes.prefix)) {\n                    prefixes[prefixMatch[1]] = prefixMatch[2];\n                }\n            }\n            return prefixes;\n        }\n        else {\n            return parentPrefixes;\n        }\n    }\n    /**\n     * Expand the given term value based on the given prefixes.\n     * @param {string} term A term value.\n     * @param {{[p: string]: string}[]} prefixes The available prefixes.\n     * @return {string} An expanded URL, or the term as-is.\n     */\n    static expandPrefixedTerm(term, activeTag) {\n        // Check if the term is prefixed\n        const colonIndex = term.indexOf(':');\n        let prefix;\n        let local;\n        if (colonIndex >= 0) {\n            prefix = term.substr(0, colonIndex);\n            local = term.substr(colonIndex + 1);\n        }\n        // Expand default namespace\n        if (prefix === '') {\n            return 'http://www.w3.org/1999/xhtml/vocab#' + local;\n        }\n        // Try to expand the prefix\n        if (prefix) {\n            const prefixElement = activeTag.prefixesAll[prefix];\n            if (prefixElement) {\n                return prefixElement + local;\n            }\n        }\n        // Try to expand the term\n        if (term) {\n            const expandedTerm = activeTag.prefixesAll[term.toLocaleLowerCase()];\n            if (expandedTerm) {\n                return expandedTerm;\n            }\n        }\n        return term;\n    }\n    /**\n     * Check if the given IRI is valid.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIri(iri) {\n        return Util.IRI_REGEX.test(iri);\n    }\n    /**\n     * Determine the RDFa profile from the given content type.\n     * Defaults to the default RDFa profile (all features enabled) for unknown content types.\n     * @param {string} contentType A content type.\n     * @returns {RdfaProfile} An RDFa profile.\n     */\n    static contentTypeToProfile(contentType) {\n        return RdfaProfile_1.RDFA_CONTENTTYPES[contentType] || '';\n    }\n    /**\n     * Get the base IRI.\n     * @param {string} baseIriValue A base IRI value.\n     * @return A base IRI named node.\n     */\n    getBaseIRI(baseIriValue) {\n        let href = baseIriValue;\n        const fragmentIndex = href.indexOf('#');\n        if (fragmentIndex >= 0) {\n            href = href.substr(0, fragmentIndex);\n        }\n        return this.dataFactory.namedNode((0, relative_to_absolute_iri_1.resolve)(href, this.baseIRI.value));\n    }\n    /**\n     * If the term is a boolean, return the baseIRI, otherwise return the term as-is.\n     * @param {Term | boolean} term A term or boolean, where the boolean indicates the baseIRI.\n     * @param {IActiveTag} activeTag An active tag.\n     * @returns {Term} A term.\n     */\n    getResourceOrBaseIri(term, activeTag) {\n        return term === true ? this.getBaseIriTerm(activeTag) : term;\n    }\n    /**\n     * Get the active base IRI as an RDF term.\n     * @param {IActiveTag} activeTag The active tag.\n     * @return {NamedNode} The base IRI term.\n     */\n    getBaseIriTerm(activeTag) {\n        return activeTag.localBaseIRI || this.baseIRI;\n    }\n    createVocabIris(terms, activeTag, allowTerms, allowBlankNode) {\n        return terms.split(/\\s+/)\n            .filter((term) => term && (allowTerms || term.indexOf(':') >= 0))\n            .map((property) => this.createIri(property, activeTag, true, true, allowBlankNode))\n            .filter((term) => term != null);\n    }\n    /**\n     * Create a new literal node.\n     * @param {string} literal The literal value.\n     * @param {IActiveTag} activeTag The current active tag.\n     * @return {Literal} A new literal node.\n     */\n    createLiteral(literal, activeTag) {\n        if (activeTag.interpretObjectAsTime && !activeTag.datatype) {\n            for (const entry of Util.TIME_REGEXES) {\n                if (literal.match(entry.regex)) {\n                    activeTag.datatype = this.dataFactory.namedNode(Util.XSD + entry.type);\n                    break;\n                }\n            }\n        }\n        return this.dataFactory.literal(literal, activeTag.datatype || activeTag.language);\n    }\n    /**\n     * Create a blank node.\n     * @returns {BlankNode} A new blank node.\n     */\n    createBlankNode() {\n        if (this.blankNodeFactory) {\n            return this.blankNodeFactory();\n        }\n        return this.dataFactory.blankNode();\n    }\n    createIri(term, activeTag, vocab, allowSafeCurie, allowBlankNode) {\n        term = term || '';\n        if (!allowSafeCurie) {\n            if (!vocab) {\n                term = (0, relative_to_absolute_iri_1.resolve)(term, this.getBaseIriTerm(activeTag).value);\n            }\n            if (!Util.isValidIri(term)) {\n                return null;\n            }\n            return this.dataFactory.namedNode(term);\n        }\n        // Handle strict CURIEs\n        if (term.length > 0 && term[0] === '[' && term[term.length - 1] === ']') {\n            term = term.substr(1, term.length - 2);\n            // Strict CURIEs MUST have a prefix separator\n            if (term.indexOf(':') < 0) {\n                return null;\n            }\n        }\n        // Handle blank nodes\n        if (term.startsWith('_:')) {\n            return allowBlankNode ? this.dataFactory.blankNode(term.substr(2) || 'b_identity') : null;\n        }\n        // Handle vocab IRIs\n        if (vocab) {\n            if (activeTag.vocab && term.indexOf(':') < 0) {\n                return this.dataFactory.namedNode(activeTag.vocab + term);\n            }\n        }\n        // Handle prefixed IRIs\n        let iri = Util.expandPrefixedTerm(term, activeTag);\n        // Resolve against baseIRI if in base-mode, or if the term was a prefixed relative IRI\n        if (!vocab) {\n            iri = (0, relative_to_absolute_iri_1.resolve)(iri, this.getBaseIriTerm(activeTag).value);\n        }\n        else if (term !== iri) {\n            iri = (0, relative_to_absolute_iri_1.resolve)(iri, this.baseIRIDocument.value);\n        }\n        if (!Util.isValidIri(iri)) {\n            return null;\n        }\n        return this.dataFactory.namedNode(iri);\n    }\n}\nexports.Util = Util;\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.RDFA = 'http://www.w3.org/ns/rdfa#';\nUtil.PREFIX_REGEX = /\\s*([^:\\s]*)*:\\s*([^\\s]*)*\\s*/g;\nUtil.TIME_REGEXES = [\n    {\n        regex: /^-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9])?S)?)?$/,\n        type: 'duration',\n    },\n    {\n        regex: /^[0-9]+-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]((Z?)|([\\+-][0-9][0-9]:[0-9][0-9]))$/,\n        type: 'dateTime',\n    },\n    { regex: /^[0-9]+-[0-9][0-9]-[0-9][0-9]Z?$/, type: 'date' },\n    { regex: /^[0-9][0-9]:[0-9][0-9]:[0-9][0-9]((Z?)|([\\+-][0-9][0-9]:[0-9][0-9]))$/, type: 'time' },\n    { regex: /^[0-9]+-[0-9][0-9]$/, type: 'gYearMonth' },\n    { regex: /^[0-9]+$/, type: 'gYear' },\n];\nUtil.IRI_REGEX = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^ \"<>{}|\\\\\\[\\]`]*$/;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfaParser = void 0;\nconst htmlparser2_1 = require(\"htmlparser2\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst INITIAL_CONTEXT_XHTML = require(\"./initial-context-xhtml.json\");\nconst INITIAL_CONTEXT = require(\"./initial-context.json\");\nconst RdfaProfile_1 = require(\"./RdfaProfile\");\nconst Util_1 = require(\"./Util\");\n/**\n * A stream transformer that parses RDFa (text) streams to an {@link RDF.Stream}.\n */\nclass RdfaParser extends readable_stream_1.Transform {\n    constructor(options) {\n        super({ readableObjectMode: true });\n        this.activeTagStack = [];\n        options = options || {};\n        this.options = options;\n        this.util = new Util_1.Util(options.dataFactory, options.baseIRI);\n        this.defaultGraph = options.defaultGraph || this.util.dataFactory.defaultGraph();\n        const profile = options.contentType ? Util_1.Util.contentTypeToProfile(options.contentType) : options.profile || '';\n        this.features = options.features || RdfaProfile_1.RDFA_FEATURES[profile];\n        this.htmlParseListener = options.htmlParseListener;\n        this.rdfaPatterns = this.features.copyRdfaPatterns ? {} : null;\n        this.pendingRdfaPatternCopies = this.features.copyRdfaPatterns ? {} : null;\n        this.parser = this.initializeParser(profile === 'xml');\n        this.activeTagStack.push({\n            incompleteTriples: [],\n            inlist: false,\n            language: options.language,\n            listMapping: {},\n            listMappingLocal: {},\n            name: '',\n            prefixesAll: Object.assign(Object.assign({}, INITIAL_CONTEXT['@context']), this.features.xhtmlInitialContext ? INITIAL_CONTEXT_XHTML['@context'] : {}),\n            prefixesCustom: {},\n            skipElement: false,\n            vocab: options.vocab,\n        });\n    }\n    /**\n     * Parses the given text stream into a quad stream.\n     * @param {NodeJS.EventEmitter} stream A text stream.\n     * @return {RDF.Stream} A quad stream.\n     */\n    import(stream) {\n        const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n        stream.on('error', (error) => parsed.emit('error', error));\n        stream.on('data', (data) => output.push(data));\n        stream.on('end', () => output.push(null));\n        const parsed = output.pipe(new RdfaParser(this.options));\n        return parsed;\n    }\n    _transform(chunk, encoding, callback) {\n        this.parser.write(chunk.toString());\n        callback();\n    }\n    _flush(callback) {\n        this.parser.end();\n        callback();\n    }\n    onTagOpen(name, attributes) {\n        // Determine the parent tag (ignore skipped tags)\n        let parentTagI = this.activeTagStack.length - 1;\n        while (parentTagI > 0 && this.activeTagStack[parentTagI].skipElement) {\n            parentTagI--;\n        }\n        let parentTag = this.activeTagStack[parentTagI];\n        // If we skipped a tag, make sure we DO use the lang, prefixes and vocab of the skipped tag\n        if (parentTagI !== this.activeTagStack.length - 1) {\n            parentTag = Object.assign(Object.assign({}, parentTag), { language: this.activeTagStack[this.activeTagStack.length - 1].language, prefixesAll: this.activeTagStack[this.activeTagStack.length - 1].prefixesAll, prefixesCustom: this.activeTagStack[this.activeTagStack.length - 1].prefixesCustom, vocab: this.activeTagStack[this.activeTagStack.length - 1].vocab });\n        }\n        // Create a new active tag and inherit language scope and baseIRI from parent\n        const activeTag = {\n            collectChildTags: parentTag.collectChildTags,\n            incompleteTriples: [],\n            inlist: 'inlist' in attributes,\n            listMapping: [],\n            listMappingLocal: parentTag.listMapping,\n            localBaseIRI: parentTag.localBaseIRI,\n            name,\n            prefixesAll: null,\n            prefixesCustom: null,\n            skipElement: false,\n        };\n        this.activeTagStack.push(activeTag);\n        // Save the tag contents if needed\n        if (activeTag.collectChildTags) {\n            // Add explicitly defined xmlns, xmlns:* and prefixes to attributes, as required by the spec (Step 11, note)\n            // Sort prefixes alphabetically for deterministic namespace declaration order\n            for (const prefix of Object.keys(parentTag.prefixesCustom).sort()) {\n                const suffix = parentTag.prefixesCustom[prefix];\n                const attributeKey = prefix === '' ? 'xmlns' : 'xmlns:' + prefix;\n                if (!(attributeKey in attributes)) {\n                    attributes[attributeKey] = suffix;\n                }\n            }\n            const attributesSerialized = Object.keys(attributes).map((key) => `${key}=\"${attributes[key]}\"`).join(' ');\n            activeTag.text = [`<${name}${attributesSerialized ? ' ' + attributesSerialized : ''}>`];\n            if (this.features.skipHandlingXmlLiteralChildren) {\n                return;\n            }\n        }\n        let allowTermsInRelPredicates = true;\n        let allowTermsInRevPredicates = true;\n        if (this.features.onlyAllowUriRelRevIfProperty) {\n            // Ignore illegal rel/rev values when property is present\n            if ('property' in attributes && 'rel' in attributes) {\n                allowTermsInRelPredicates = false;\n                if (attributes.rel.indexOf(':') < 0) {\n                    delete attributes.rel;\n                }\n            }\n            if ('property' in attributes && 'rev' in attributes) {\n                allowTermsInRevPredicates = false;\n                if (attributes.rev.indexOf(':') < 0) {\n                    delete attributes.rev;\n                }\n            }\n        }\n        if (this.features.copyRdfaPatterns) {\n            // Save the tag if needed\n            if (parentTag.collectedPatternTag) {\n                const patternTag = {\n                    attributes,\n                    children: [],\n                    name,\n                    referenced: false,\n                    rootPattern: false,\n                    text: [],\n                };\n                parentTag.collectedPatternTag.children.push(patternTag);\n                activeTag.collectedPatternTag = patternTag;\n                return;\n            }\n            // Store tags with type rdfa:Pattern as patterns\n            if (attributes.typeof === 'rdfa:Pattern') {\n                activeTag.collectedPatternTag = {\n                    attributes,\n                    children: [],\n                    name,\n                    parentTag,\n                    referenced: false,\n                    rootPattern: true,\n                    text: [],\n                };\n                return;\n            }\n            // Instantiate patterns on rdfa:copy\n            if (attributes.property === 'rdfa:copy') {\n                const copyTargetPatternId = attributes.resource || attributes.href || attributes.src;\n                if (this.rdfaPatterns[copyTargetPatternId]) {\n                    this.emitPatternCopy(parentTag, this.rdfaPatterns[copyTargetPatternId], copyTargetPatternId);\n                }\n                else {\n                    if (!this.pendingRdfaPatternCopies[copyTargetPatternId]) {\n                        this.pendingRdfaPatternCopies[copyTargetPatternId] = [];\n                    }\n                    this.pendingRdfaPatternCopies[copyTargetPatternId].push(parentTag);\n                }\n                return;\n            }\n        }\n        // <base> tags override the baseIRI of the whole document\n        if (this.features.baseTag && name === 'base' && attributes.href) {\n            this.util.baseIRI = this.util.getBaseIRI(attributes.href);\n        }\n        // xml:base attributes override the baseIRI of the current tag and children\n        if (this.features.xmlBase && attributes['xml:base']) {\n            activeTag.localBaseIRI = this.util.getBaseIRI(attributes['xml:base']);\n        }\n        // <time> tags set an initial datatype\n        if (this.features.timeTag && name === 'time' && !attributes.datatype) {\n            activeTag.interpretObjectAsTime = true;\n        }\n        // Processing based on https://www.w3.org/TR/rdfa-core/#s_rdfaindetail\n        // 1: initialize values\n        let newSubject;\n        let currentObjectResource;\n        let typedResource;\n        // 2: handle vocab attribute to set active vocabulary\n        // Vocab sets the active vocabulary\n        if ('vocab' in attributes) {\n            if (attributes.vocab) {\n                activeTag.vocab = attributes.vocab;\n                this.emitTriple(this.util.getBaseIriTerm(activeTag), this.util.dataFactory.namedNode(Util_1.Util.RDFA + 'usesVocabulary'), this.util.dataFactory.namedNode(activeTag.vocab));\n            }\n            else {\n                // If vocab is set to '', then we fallback to the root vocab as defined via the parser constructor\n                activeTag.vocab = this.activeTagStack[0].vocab;\n            }\n        }\n        else {\n            activeTag.vocab = parentTag.vocab;\n        }\n        // 3: handle prefixes\n        activeTag.prefixesCustom = Util_1.Util.parsePrefixes(attributes, parentTag.prefixesCustom, this.features.xmlnsPrefixMappings);\n        activeTag.prefixesAll = Object.keys(activeTag.prefixesCustom).length > 0\n            ? Object.assign(Object.assign({}, parentTag.prefixesAll), activeTag.prefixesCustom) : parentTag.prefixesAll;\n        // Handle role attribute\n        if (this.features.roleAttribute && attributes.role) {\n            const roleSubject = attributes.id\n                ? this.util.createIri('#' + attributes.id, activeTag, false, false, false)\n                : this.util.createBlankNode();\n            // Temporarily override vocab\n            const vocabOld = activeTag.vocab;\n            activeTag.vocab = 'http://www.w3.org/1999/xhtml/vocab#';\n            for (const role of this.util.createVocabIris(attributes.role, activeTag, true, false)) {\n                this.emitTriple(roleSubject, this.util.dataFactory.namedNode('http://www.w3.org/1999/xhtml/vocab#role'), role);\n            }\n            activeTag.vocab = vocabOld;\n        }\n        // 4: handle language\n        // Save language attribute value in active tag\n        if ('xml:lang' in attributes || (this.features.langAttribute && 'lang' in attributes)) {\n            activeTag.language = attributes['xml:lang'] || attributes.lang;\n        }\n        else {\n            activeTag.language = parentTag.language;\n        }\n        const isRootTag = this.activeTagStack.length === 2;\n        if (!('rel' in attributes) && !('rev' in attributes)) {\n            // 5: Determine the new subject when rel and rev are not present\n            if ('property' in attributes && !('content' in attributes) && !('datatype' in attributes)) {\n                // 5.1: property is present, but not content and datatype\n                // Determine new subject\n                if ('about' in attributes) {\n                    newSubject = this.util.createIri(attributes.about, activeTag, false, true, true);\n                    activeTag.explicitNewSubject = !!newSubject;\n                }\n                else if (isRootTag) {\n                    newSubject = true;\n                }\n                else if (parentTag.object) {\n                    newSubject = parentTag.object;\n                }\n                // Determine type\n                if ('typeof' in attributes) {\n                    if ('about' in attributes) {\n                        typedResource = this.util.createIri(attributes.about, activeTag, false, true, true);\n                    }\n                    if (!typedResource && isRootTag) {\n                        typedResource = true;\n                    }\n                    if (!typedResource && 'resource' in attributes) {\n                        typedResource = this.util.createIri(attributes.resource, activeTag, false, true, true);\n                    }\n                    if (!typedResource && ('href' in attributes || 'src' in attributes)) {\n                        typedResource = this.util.createIri(attributes.href || attributes.src, activeTag, false, false, true);\n                    }\n                    if (!typedResource && this.isInheritSubjectInHeadBody(name)) {\n                        typedResource = newSubject;\n                    }\n                    if (!typedResource) {\n                        typedResource = this.util.createBlankNode();\n                    }\n                    currentObjectResource = typedResource;\n                }\n            }\n            else {\n                // 5.2\n                if ('about' in attributes || 'resource' in attributes) {\n                    newSubject = this.util.createIri(attributes.about || attributes.resource, activeTag, false, true, true);\n                    activeTag.explicitNewSubject = !!newSubject;\n                }\n                if (!newSubject && ('href' in attributes || 'src' in attributes)) {\n                    newSubject = this.util.createIri(attributes.href || attributes.src, activeTag, false, false, true);\n                    activeTag.explicitNewSubject = !!newSubject;\n                }\n                if (!newSubject) {\n                    if (isRootTag) {\n                        newSubject = true;\n                    }\n                    else if (this.isInheritSubjectInHeadBody(name)) {\n                        newSubject = parentTag.object;\n                    }\n                    else if ('typeof' in attributes) {\n                        newSubject = this.util.createBlankNode();\n                        activeTag.explicitNewSubject = true;\n                    }\n                    else if (parentTag.object) {\n                        newSubject = parentTag.object;\n                        if (!('property' in attributes)) {\n                            activeTag.skipElement = true;\n                        }\n                    }\n                }\n                // Determine type\n                if ('typeof' in attributes) {\n                    typedResource = newSubject;\n                }\n            }\n        }\n        else { // either rel or rev is present\n            // 6: Determine the new subject when rel or rev are present\n            // Define new subject\n            if ('about' in attributes) {\n                newSubject = this.util.createIri(attributes.about, activeTag, false, true, true);\n                activeTag.explicitNewSubject = !!newSubject;\n                if ('typeof' in attributes) {\n                    typedResource = newSubject;\n                }\n            }\n            else if (isRootTag) {\n                newSubject = true;\n            }\n            else if (parentTag.object) {\n                newSubject = parentTag.object;\n            }\n            // Define object\n            if ('resource' in attributes) {\n                currentObjectResource = this.util.createIri(attributes.resource, activeTag, false, true, true);\n            }\n            if (!currentObjectResource) {\n                if ('href' in attributes || 'src' in attributes) {\n                    currentObjectResource = this.util.createIri(attributes.href || attributes.src, activeTag, false, false, true);\n                }\n                else if ('typeof' in attributes && !('about' in attributes) && !this.isInheritSubjectInHeadBody(name)) {\n                    currentObjectResource = this.util.createBlankNode();\n                }\n            }\n            // Set typed resource\n            if ('typeof' in attributes && !('about' in attributes)) {\n                if (this.isInheritSubjectInHeadBody(name)) {\n                    typedResource = newSubject;\n                }\n                else {\n                    typedResource = currentObjectResource;\n                }\n            }\n        }\n        // 7: If a typed resource was defined, emit it as a triple\n        if (typedResource) {\n            for (const type of this.util.createVocabIris(attributes.typeof, activeTag, true, true)) {\n                this.emitTriple(this.util.getResourceOrBaseIri(typedResource, activeTag), this.util.dataFactory.namedNode(Util_1.Util.RDF + 'type'), type);\n            }\n        }\n        // 8: Reset list mapping if we have a new subject\n        if (newSubject) {\n            activeTag.listMapping = {};\n        }\n        // 9: If an object was defined, emit triples for it\n        if (currentObjectResource) {\n            // Handle list mapping\n            if ('rel' in attributes && 'inlist' in attributes) {\n                for (const predicate of this.util.createVocabIris(attributes.rel, activeTag, allowTermsInRelPredicates, false)) {\n                    this.addListMapping(activeTag, newSubject, predicate, currentObjectResource);\n                }\n            }\n            // Determine predicates using rel or rev (unless rel and inlist are present)\n            if (!('rel' in attributes && 'inlist' in attributes)) {\n                if ('rel' in attributes) {\n                    for (const predicate of this.util.createVocabIris(attributes.rel, activeTag, allowTermsInRelPredicates, false)) {\n                        this.emitTriple(this.util.getResourceOrBaseIri(newSubject, activeTag), predicate, this.util.getResourceOrBaseIri(currentObjectResource, activeTag));\n                    }\n                }\n                if ('rev' in attributes) {\n                    for (const predicate of this.util.createVocabIris(attributes.rev, activeTag, allowTermsInRevPredicates, false)) {\n                        this.emitTriple(this.util.getResourceOrBaseIri(currentObjectResource, activeTag), predicate, this.util.getResourceOrBaseIri(newSubject, activeTag));\n                    }\n                }\n            }\n        }\n        // 10: Store incomplete triples if we don't have an object, but we do have predicates\n        if (!currentObjectResource) {\n            if ('rel' in attributes) {\n                if ('inlist' in attributes) {\n                    for (const predicate of this.util.createVocabIris(attributes.rel, activeTag, allowTermsInRelPredicates, false)) {\n                        this.addListMapping(activeTag, newSubject, predicate, null);\n                        activeTag.incompleteTriples.push({ predicate, reverse: false, list: true });\n                    }\n                }\n                else {\n                    for (const predicate of this.util.createVocabIris(attributes.rel, activeTag, allowTermsInRelPredicates, false)) {\n                        activeTag.incompleteTriples.push({ predicate, reverse: false });\n                    }\n                }\n            }\n            if ('rev' in attributes) {\n                for (const predicate of this.util.createVocabIris(attributes.rev, activeTag, allowTermsInRevPredicates, false)) {\n                    activeTag.incompleteTriples.push({ predicate, reverse: true });\n                }\n            }\n            // Set a blank node object, so the children can make use of this when completing the triples\n            if (activeTag.incompleteTriples.length > 0) {\n                currentObjectResource = this.util.createBlankNode();\n            }\n        }\n        // 11: Determine current property value\n        if ('property' in attributes) {\n            // Create predicates\n            activeTag.predicates = this.util.createVocabIris(attributes.property, activeTag, true, false);\n            // Save datatype attribute value in active tag\n            let localObjectResource;\n            if ('datatype' in attributes) {\n                activeTag.datatype = this.util.createIri(attributes.datatype, activeTag, true, true, false);\n                if (activeTag.datatype\n                    && (activeTag.datatype.value === Util_1.Util.RDF + 'XMLLiteral'\n                        || (this.features.htmlDatatype && activeTag.datatype.value === Util_1.Util.RDF + 'HTML'))) {\n                    activeTag.collectChildTags = true;\n                }\n            }\n            else {\n                // Try to determine resource\n                if (!('rev' in attributes) && !('rel' in attributes) && !('content' in attributes)) {\n                    if ('resource' in attributes) {\n                        localObjectResource = this.util.createIri(attributes.resource, activeTag, false, true, true);\n                    }\n                    if (!localObjectResource && 'href' in attributes) {\n                        localObjectResource = this.util.createIri(attributes.href, activeTag, false, false, true);\n                    }\n                    if (!localObjectResource && 'src' in attributes) {\n                        localObjectResource = this.util.createIri(attributes.src, activeTag, false, false, true);\n                    }\n                }\n                if ('typeof' in attributes && !('about' in attributes)) {\n                    localObjectResource = typedResource;\n                }\n            }\n            if ('content' in attributes) {\n                // Emit triples based on content attribute has preference over text content\n                const object = this.util.createLiteral(attributes.content, activeTag);\n                if ('inlist' in attributes) {\n                    for (const predicate of activeTag.predicates) {\n                        this.addListMapping(activeTag, newSubject, predicate, object);\n                    }\n                }\n                else {\n                    const subject = this.util.getResourceOrBaseIri(newSubject, activeTag);\n                    for (const predicate of activeTag.predicates) {\n                        this.emitTriple(subject, predicate, object);\n                    }\n                }\n                // Unset predicate to avoid text contents to produce new triples\n                activeTag.predicates = null;\n            }\n            else if (this.features.datetimeAttribute && 'datetime' in attributes) {\n                activeTag.interpretObjectAsTime = true;\n                // Datetime attribute on time tag has preference over text content\n                const object = this.util.createLiteral(attributes.datetime, activeTag);\n                if ('inlist' in attributes) {\n                    for (const predicate of activeTag.predicates) {\n                        this.addListMapping(activeTag, newSubject, predicate, object);\n                    }\n                }\n                else {\n                    const subject = this.util.getResourceOrBaseIri(newSubject, activeTag);\n                    for (const predicate of activeTag.predicates) {\n                        this.emitTriple(subject, predicate, object);\n                    }\n                }\n                // Unset predicate to avoid text contents to produce new triples\n                activeTag.predicates = null;\n            }\n            else if (localObjectResource) {\n                // Emit triples for all resource objects\n                const object = this.util.getResourceOrBaseIri(localObjectResource, activeTag);\n                if ('inlist' in attributes) {\n                    for (const predicate of activeTag.predicates) {\n                        this.addListMapping(activeTag, newSubject, predicate, object);\n                    }\n                }\n                else {\n                    const subject = this.util.getResourceOrBaseIri(newSubject, activeTag);\n                    for (const predicate of activeTag.predicates) {\n                        this.emitTriple(subject, predicate, object);\n                    }\n                }\n                // Unset predicate to avoid text contents to produce new triples\n                activeTag.predicates = null;\n            }\n        }\n        // 12: Complete incomplete triples\n        let incompleteTriplesCompleted = false;\n        if (!activeTag.skipElement && newSubject && parentTag.incompleteTriples.length > 0) {\n            incompleteTriplesCompleted = true;\n            const subject = this.util.getResourceOrBaseIri(parentTag.subject, activeTag);\n            const object = this.util.getResourceOrBaseIri(newSubject, activeTag);\n            for (const incompleteTriple of parentTag.incompleteTriples) {\n                if (!incompleteTriple.reverse) {\n                    if (incompleteTriple.list) {\n                        // Find the active tag that defined the list by going up the stack\n                        let firstInListTag = null;\n                        for (let i = this.activeTagStack.length - 1; i >= 0; i--) {\n                            if (this.activeTagStack[i].inlist) {\n                                firstInListTag = this.activeTagStack[i];\n                                break;\n                            }\n                        }\n                        // firstInListTag is guaranteed to be non-null\n                        this.addListMapping(firstInListTag, newSubject, incompleteTriple.predicate, object);\n                    }\n                    else {\n                        this.emitTriple(subject, incompleteTriple.predicate, object);\n                    }\n                }\n                else {\n                    this.emitTriple(object, incompleteTriple.predicate, subject);\n                }\n            }\n        }\n        if (!incompleteTriplesCompleted && parentTag.incompleteTriples.length > 0) {\n            activeTag.incompleteTriples = activeTag.incompleteTriples.concat(parentTag.incompleteTriples);\n        }\n        // 13: Save evaluation context into active tag\n        activeTag.subject = newSubject || parentTag.subject;\n        activeTag.object = currentObjectResource || newSubject;\n    }\n    onText(data) {\n        const activeTag = this.activeTagStack[this.activeTagStack.length - 1];\n        // Collect text in pattern tag if needed\n        if (this.features.copyRdfaPatterns && activeTag.collectedPatternTag) {\n            activeTag.collectedPatternTag.text.push(data);\n            return;\n        }\n        // Save the text inside the active tag\n        if (!activeTag.text) {\n            activeTag.text = [];\n        }\n        activeTag.text.push(data);\n    }\n    onTagClose() {\n        // Get the active tag\n        const activeTag = this.activeTagStack[this.activeTagStack.length - 1];\n        const parentTag = this.activeTagStack[this.activeTagStack.length - 2];\n        if (!(activeTag.collectChildTags && parentTag.collectChildTags && this.features.skipHandlingXmlLiteralChildren)) {\n            // If we detect a finalized rdfa:Pattern tag, store it\n            if (this.features.copyRdfaPatterns && activeTag.collectedPatternTag\n                && activeTag.collectedPatternTag.rootPattern) {\n                const patternId = activeTag.collectedPatternTag.attributes.resource;\n                // Remove resource and typeof attributes to avoid it being seen as a new pattern\n                delete activeTag.collectedPatternTag.attributes.resource;\n                delete activeTag.collectedPatternTag.attributes.typeof;\n                // Store the pattern\n                this.rdfaPatterns[patternId] = activeTag.collectedPatternTag;\n                // Apply all pending copies for this pattern\n                if (this.pendingRdfaPatternCopies[patternId]) {\n                    for (const tag of this.pendingRdfaPatternCopies[patternId]) {\n                        this.emitPatternCopy(tag, activeTag.collectedPatternTag, patternId);\n                    }\n                    delete this.pendingRdfaPatternCopies[patternId];\n                }\n                // Remove the active tag from the stack\n                this.activeTagStack.pop();\n                return;\n            }\n            // Emit all triples that were determined in the active tag\n            if (activeTag.predicates) {\n                const subject = this.util.getResourceOrBaseIri(activeTag.subject, activeTag);\n                let textSegments = activeTag.text || [];\n                if (activeTag.collectChildTags && parentTag.collectChildTags) {\n                    // If we are inside an XMLLiteral child that also has RDFa content, ignore the tag name that was collected.\n                    textSegments = textSegments.slice(1);\n                }\n                const object = this.util.createLiteral(textSegments.join(''), activeTag);\n                if (activeTag.inlist) {\n                    for (const predicate of activeTag.predicates) {\n                        this.addListMapping(activeTag, subject, predicate, object);\n                    }\n                }\n                else {\n                    for (const predicate of activeTag.predicates) {\n                        this.emitTriple(subject, predicate, object);\n                    }\n                }\n                // Reset text, unless the parent is also collecting text\n                if (!parentTag.predicates) {\n                    activeTag.text = null;\n                }\n            }\n            // 14: Handle local list mapping\n            if (activeTag.object && Object.keys(activeTag.listMapping).length > 0) {\n                const subject = this.util.getResourceOrBaseIri(activeTag.object, activeTag);\n                for (const predicateValue in activeTag.listMapping) {\n                    const predicate = this.util.dataFactory.namedNode(predicateValue);\n                    const values = activeTag.listMapping[predicateValue];\n                    if (values.length > 0) {\n                        // Non-empty list, emit linked list of rdf:first and rdf:rest chains\n                        const bnodes = values.map(() => this.util.createBlankNode());\n                        for (let i = 0; i < values.length; i++) {\n                            const object = this.util.getResourceOrBaseIri(values[i], activeTag);\n                            this.emitTriple(bnodes[i], this.util.dataFactory.namedNode(Util_1.Util.RDF + 'first'), object);\n                            this.emitTriple(bnodes[i], this.util.dataFactory.namedNode(Util_1.Util.RDF + 'rest'), (i < values.length - 1) ? bnodes[i + 1] : this.util.dataFactory.namedNode(Util_1.Util.RDF + 'nil'));\n                        }\n                        // Emit triple for the first linked list chain\n                        this.emitTriple(subject, predicate, bnodes[0]);\n                    }\n                    else {\n                        // Empty list, just emit rdf:nil\n                        this.emitTriple(subject, predicate, this.util.dataFactory.namedNode(Util_1.Util.RDF + 'nil'));\n                    }\n                }\n            }\n        }\n        // Remove the active tag from the stack\n        this.activeTagStack.pop();\n        // Save the tag contents if needed\n        if (activeTag.collectChildTags && activeTag.text) {\n            activeTag.text.push(`</${activeTag.name}>`);\n        }\n        // If we still have text contents, try to append it to the parent tag\n        if (activeTag.text && parentTag) {\n            if (!parentTag.text) {\n                parentTag.text = activeTag.text;\n            }\n            else {\n                parentTag.text = parentTag.text.concat(activeTag.text);\n            }\n        }\n    }\n    onEnd() {\n        if (this.features.copyRdfaPatterns) {\n            this.features.copyRdfaPatterns = false;\n            // Emit all unreferenced patterns\n            for (const patternId in this.rdfaPatterns) {\n                const pattern = this.rdfaPatterns[patternId];\n                if (!pattern.referenced) {\n                    pattern.attributes.typeof = 'rdfa:Pattern';\n                    pattern.attributes.resource = patternId;\n                    this.emitPatternCopy(pattern.parentTag, pattern, patternId);\n                    pattern.referenced = false;\n                    delete pattern.attributes.typeof;\n                    delete pattern.attributes.resource;\n                }\n            }\n            // Emit all unreferenced copy links\n            for (const patternId in this.pendingRdfaPatternCopies) {\n                for (const parentTag of this.pendingRdfaPatternCopies[patternId]) {\n                    this.activeTagStack.push(parentTag);\n                    this.onTagOpen('link', { property: 'rdfa:copy', href: patternId });\n                    this.onTagClose();\n                    this.activeTagStack.pop();\n                }\n            }\n            this.features.copyRdfaPatterns = true;\n        }\n    }\n    /**\n     * If the new subject can be inherited from the parent object\n     * if the resource defines no new subject.\n     * @param {string} name The current tag name.\n     * @returns {boolean} If the subject can be inherited.\n     */\n    isInheritSubjectInHeadBody(name) {\n        return this.features.inheritSubjectInHeadBody && (name === 'head' || name === 'body');\n    }\n    /**\n     * Add a list mapping for the given predicate and object in the active tag.\n     * @param {IActiveTag} activeTag The active tag.\n     * @param {Term | boolean} subject A subject term, this will only be used to create a separate list\n     *                                 if activeTag.explicitNewSubject is true.\n     * @param {Term} predicate A predicate term.\n     * @param {Term | boolean} currentObjectResource The current object resource.\n     */\n    addListMapping(activeTag, subject, predicate, currentObjectResource) {\n        if (activeTag.explicitNewSubject) {\n            const bNode = this.util.createBlankNode();\n            this.emitTriple(this.util.getResourceOrBaseIri(subject, activeTag), predicate, bNode);\n            this.emitTriple(bNode, this.util.dataFactory.namedNode(Util_1.Util.RDF + 'first'), this.util.getResourceOrBaseIri(currentObjectResource, activeTag));\n            this.emitTriple(bNode, this.util.dataFactory.namedNode(Util_1.Util.RDF + 'rest'), this.util.dataFactory.namedNode(Util_1.Util.RDF + 'nil'));\n        }\n        else {\n            let predicateList = activeTag.listMappingLocal[predicate.value];\n            if (!predicateList) {\n                activeTag.listMappingLocal[predicate.value] = predicateList = [];\n            }\n            if (currentObjectResource) {\n                predicateList.push(currentObjectResource);\n            }\n        }\n    }\n    /**\n     * Emit the given triple to the stream.\n     * @param {Term} subject A subject term.\n     * @param {Term} predicate A predicate term.\n     * @param {Term} object An object term.\n     */\n    emitTriple(subject, predicate, object) {\n        // Validate IRIs\n        if ((subject.termType === 'NamedNode' && subject.value.indexOf(':') < 0)\n            || (predicate.termType === 'NamedNode' && predicate.value.indexOf(':') < 0)\n            || (object.termType === 'NamedNode' && object.value.indexOf(':') < 0)) {\n            return;\n        }\n        this.push(this.util.dataFactory.quad(subject, predicate, object, this.defaultGraph));\n    }\n    /**\n     * Emit an instantiation of the given pattern with the given parent tag.\n     * @param {IActiveTag} parentTag The parent tag to instantiate in.\n     * @param {IRdfaPattern} pattern The pattern to instantiate.\n     * @param {string} rootPatternId The pattern id.\n     */\n    emitPatternCopy(parentTag, pattern, rootPatternId) {\n        this.activeTagStack.push(parentTag);\n        pattern.referenced = true;\n        // Ensure that blank nodes within patterns are instantiated only once.\n        // All next pattern copies will reuse the instantiated blank nodes from the first pattern.\n        if (!pattern.constructedBlankNodes) {\n            pattern.constructedBlankNodes = [];\n            this.util.blankNodeFactory = () => {\n                const bNode = this.util.dataFactory.blankNode();\n                pattern.constructedBlankNodes.push(bNode);\n                return bNode;\n            };\n        }\n        else {\n            let blankNodeIndex = 0;\n            this.util.blankNodeFactory = () => pattern.constructedBlankNodes[blankNodeIndex++];\n        }\n        // Apply everything within the pattern\n        this.emitPatternCopyAbsolute(pattern, true, rootPatternId);\n        this.util.blankNodeFactory = null;\n        this.activeTagStack.pop();\n    }\n    /**\n     * Emit an instantiation of the given pattern with the given parent tag.\n     *\n     * This should probably not be called directly,\n     * call {@link emitPatternCopy} instead.\n     *\n     * @param {IRdfaPattern} pattern The pattern to instantiate.\n     * @param {boolean} root If this is the root call for the given pattern.\n     * @param {string} rootPatternId The pattern id.\n     */\n    emitPatternCopyAbsolute(pattern, root, rootPatternId) {\n        // Stop on detection of cyclic patterns\n        if (!root && pattern.attributes.property === 'rdfa:copy' && pattern.attributes.href === rootPatternId) {\n            return;\n        }\n        this.onTagOpen(pattern.name, pattern.attributes);\n        for (const text of pattern.text) {\n            this.onText(text);\n        }\n        for (const child of pattern.children) {\n            this.emitPatternCopyAbsolute(child, false, rootPatternId);\n        }\n        this.onTagClose();\n    }\n    initializeParser(xmlMode) {\n        return new htmlparser2_1.Parser({\n            onclosetag: () => {\n                try {\n                    this.onTagClose();\n                    if (this.htmlParseListener) {\n                        this.htmlParseListener.onTagClose();\n                    }\n                }\n                catch (e) {\n                    this.emit('error', e);\n                }\n            },\n            onend: () => {\n                try {\n                    this.onEnd();\n                    if (this.htmlParseListener) {\n                        this.htmlParseListener.onEnd();\n                    }\n                }\n                catch (e) {\n                    this.emit('error', e);\n                }\n            },\n            onopentag: (name, attributes) => {\n                try {\n                    this.onTagOpen(name, attributes);\n                    if (this.htmlParseListener) {\n                        this.htmlParseListener.onTagOpen(name, attributes);\n                    }\n                }\n                catch (e) {\n                    this.emit('error', e);\n                }\n            },\n            ontext: (data) => {\n                try {\n                    this.onText(data);\n                    if (this.htmlParseListener) {\n                        this.htmlParseListener.onText(data);\n                    }\n                }\n                catch (e) {\n                    this.emit('error', e);\n                }\n            },\n        }, {\n            decodeEntities: true,\n            recognizeSelfClosing: true,\n            xmlMode,\n        });\n    }\n}\nexports.RdfaParser = RdfaParser;\n//# sourceMappingURL=RdfaParser.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/IActiveTag\"), exports);\n__exportStar(require(\"./lib/IHtmlParseListener\"), exports);\n__exportStar(require(\"./lib/IRdfaPattern\"), exports);\n__exportStar(require(\"./lib/RdfaParser\"), exports);\n__exportStar(require(\"./lib/RdfaProfile\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseXmlRdfa = void 0;\nconst bus_rdf_parse_1 = require(\"@comunica/bus-rdf-parse\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst rdfa_streaming_parser_1 = require(\"rdfa-streaming-parser\");\n/**\n * A comunica XML RDFa RDF Parse Actor.\n */\nclass ActorRdfParseXmlRdfa extends bus_rdf_parse_1.ActorRdfParseFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"application/xml\": 1.0,\n     *       \"text/xml\": 1.0,\n     *       \"image/svg+xml\": 1.0\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"application/xml\": \"http://www.w3.org/ns/formats/RDFa\",\n     *       \"text/xml\": \"http://www.w3.org/ns/formats/RDFa\",\n     *       \"image/svg+xml\": \"http://www.w3.org/ns/formats/RDFa\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async runHandle(action, _mediaType, _context) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const language = (action.headers && action.headers.get('content-language')) ?? undefined;\n        action.data.on('error', error => data.emit('error', error));\n        const data = action.data.pipe(new rdfa_streaming_parser_1.RdfaParser({\n            dataFactory,\n            baseIRI: action.metadata?.baseIRI,\n            profile: 'xml',\n            language,\n        }));\n        return { data, metadata: { triples: true } };\n    }\n}\nexports.ActorRdfParseXmlRdfa = ActorRdfParseXmlRdfa;\n//# sourceMappingURL=ActorRdfParseXmlRdfa.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParseXmlRdfa\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.promisifyEventEmitter = void 0;\nfunction promisifyEventEmitter(event, result) {\n    return new Promise((resolve, reject) => {\n        event.on('end', () => resolve(result));\n        event.on('error', reject);\n    });\n}\nexports.promisifyEventEmitter = promisifyEventEmitter;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.stringify = stringify;\nconst event_emitter_promisify_1 = require(\"event-emitter-promisify\");\nfunction stringify(ee) {\n    return __awaiter(this, void 0, void 0, function* () {\n        let str = '';\n        ee.on('data', (chunk) => {\n            str += chunk;\n        });\n        yield (0, event_emitter_promisify_1.promisifyEventEmitter)(ee);\n        return str;\n    });\n}\n","/* parser generated by jison 0.4.18 */\n/*\n  Returns a Parser object of the following structure:\n\n  Parser: {\n    yy: {}\n  }\n\n  Parser.prototype: {\n    yy: {},\n    trace: function(),\n    symbols_: {associative list: name ==> number},\n    terminals_: {associative list: number ==> name},\n    productions_: [...],\n    performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n    table: [...],\n    defaultActions: {...},\n    parseError: function(str, hash),\n    parse: function(input),\n\n    lexer: {\n        EOF: 1,\n        parseError: function(str, hash),\n        setInput: function(input),\n        input: function(),\n        unput: function(str),\n        more: function(),\n        less: function(n),\n        pastInput: function(),\n        upcomingInput: function(),\n        showPosition: function(),\n        test_match: function(regex_match_array, rule_index),\n        next: function(),\n        lex: function(),\n        begin: function(condition),\n        popState: function(),\n        _currentRules: function(),\n        topState: function(),\n        pushState: function(condition),\n\n        options: {\n            ranges: boolean           (optional: true ==> token location info will include a .range[] member)\n            flex: boolean             (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n            backtrack_lexer: boolean  (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n        },\n\n        performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n        rules: [...],\n        conditions: {associative list: name ==> set},\n    }\n  }\n\n\n  token location info (@$, _$, etc.): {\n    first_line: n,\n    last_line: n,\n    first_column: n,\n    last_column: n,\n    range: [start_number, end_number]       (where the numbers are indexes into the input string, regular zero-based)\n  }\n\n\n  the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n    text:        (matched text)\n    token:       (the produced terminal token, if any)\n    line:        (yylineno)\n  }\n  while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n    loc:         (yylloc)\n    expected:    (string describing the set of expected tokens)\n    recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n  }\n*/\nvar ShaclcParser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[7,12,13,14,15,16,20,25,115,130],$V1=[7,13,16,20,25,115,130],$V2=[7,13,16,115,130],$V3=[1,25],$V4=[1,29],$V5=[1,27],$V6=[1,28],$V7=[13,16,115,130],$V8=[13,16,28,38,40,42,44,46,48,53,56,61,67,85,87,92,93,95,96,102,110,111,115,119,120,126,128,129,130,131,132,133,134,135,136],$V9=[28,56],$Va=[1,42],$Vb=[46,48,53,56],$Vc=[1,54],$Vd=[1,60],$Ve=[1,56],$Vf=[1,57],$Vg=[1,58],$Vh=[1,63],$Vi=[1,64],$Vj=[1,65],$Vk=[1,66],$Vl=[1,67],$Vm=[1,68],$Vn=[1,75],$Vo=[28,46,48,53,56],$Vp=[28,42,46,48,53,56],$Vq=[13,16,28,38,40,42,44,46,48,53,56,92,115,119,120,130,131,132,133,134,135,136],$Vr=[13,16,28,38,40,42,44,46,48,53,56,67,85,87,92,95,96,115,119,120,126,128,129,130,131,132,133,134,135,136],$Vs=[13,16,38,40,44,92,115,119,120,130,131,132,133,134,135,136],$Vt=[13,16,28,38,40,42,44,46,48,53,56,67,85,87,92,95,96,115,117,118,119,120,126,128,129,130,131,132,133,134,135,136],$Vu=[13,16,28,56,115,130],$Vv=[13,16,38,58,87,96,109,115,126,130],$Vw=[1,116],$Vx=[1,112],$Vy=[1,108],$Vz=[1,114],$VA=[1,111],$VB=[7,13,16,20,25,44,48,53,56,67,85,87,95,96,115,128,129,130],$VC=[48,53],$VD=[48,53,87,96,126],$VE=[13,16,44,48,53,56,85,87,95,96,115,128,129,130],$VF=[1,126],$VG=[13,16,40,44,48,53,56,85,87,95,96,115,128,129,130],$VH=[1,129],$VI=[48,53,67,87,96,126],$VJ=[13,16,40,44,48,53,56,67,85,87,95,96,115,128,129,130],$VK=[1,133],$VL=[13,16,40,44,48,53,56,67,85,87,95,96,102,115,128,129,130],$VM=[13,16,40,44,48,53,56,67,85,87,93,95,96,102,110,111,115,128,129,130],$VN=[1,151],$VO=[1,153],$VP=[1,156],$VQ=[1,157],$VR=[1,158],$VS=[1,167],$VT=[1,175],$VU=[13,16,44,48,53,56,67,85,87,95,96,115,128,129,130],$VV=[13,16,44,48,53,56,67,85,87,95,96,115,126,128,129,130],$VW=[13,16,46,92,115,119,120,130,131,132,133,134,135,136];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"shaclDoc\":3,\"shaclDoc_repetition0\":4,\"shaclDoc_repetition1\":5,\"ttlSection\":6,\"EOF\":7,\"directive\":8,\"baseDecl\":9,\"importsDecl\":10,\"prefixDecl\":11,\"KW_BASE\":12,\"IRIREF\":13,\"KW_IMPORTS\":14,\"KW_PREFIX\":15,\"PNAME_NS\":16,\"nodeShapeIri\":17,\"iri\":18,\"nodeShape\":19,\"KW_SHAPE\":20,\"nodeShape_option0\":21,\"nodeShape_option1\":22,\"nodeShapeBody\":23,\"shapeClass\":24,\"KW_SHAPE_CLASS\":25,\"shapeClass_option0\":26,\"turtleAnnotation\":27,\";\":28,\"turtleAnnotation2\":29,\"predicate\":30,\"turtleAnnotation2_option0\":31,\"objectList\":32,\"object\":33,\"objectList_repetition0\":34,\"iriOrLiteral\":35,\"blankNodeSection\":36,\"list\":37,\"(\":38,\"list_repetition0\":39,\")\":40,\"objectTail\":41,\",\":42,\"LB\":43,\"[\":44,\"RB\":45,\"]\":46,\"LP\":47,\"%\":48,\"RP\":49,\"pcSection\":50,\"iriHead\":51,\"ttlStatement\":52,\".\":53,\"ttlSection_repetition0\":54,\"startNodeShape\":55,\"{\":56,\"endNodeShape\":57,\"}\":58,\"nodeShapeBody_repetition0\":59,\"targetClass\":60,\"->\":61,\"targetClass_repetition_plus0\":62,\"constraint\":63,\"constraint_group0\":64,\"constraint_option0\":65,\"orNotComponent\":66,\"|\":67,\"nodeNot\":68,\"nodeOrEmit\":69,\"nodeOr\":70,\"nodeOr_repetition_plus0\":71,\"nodeValue\":72,\"negation\":73,\"nodeValue_group0\":74,\"=\":75,\"iriOrLiteralOrArray\":76,\"propertyShape\":77,\"path\":78,\"propertyShape_repetition0\":79,\"propertyOrComponent\":80,\"propertyNot\":81,\"propertyOr\":82,\"propertyOr_repetition_plus0\":83,\"propertyAtom\":84,\"NODEKIND\":85,\"shapeRef\":86,\"PARAM\":87,\"propertyCount\":88,\"propertyMinCount\":89,\"..\":90,\"propertyMaxCount\":91,\"INTEGER\":92,\"*\":93,\"shapeRef_group0\":94,\"@\":95,\"!\":96,\"pathAlternative\":97,\"additionalAlternative\":98,\"pathSequence\":99,\"pathAlternative_repetition_plus0\":100,\"additionalSequence\":101,\"/\":102,\"pathEltOrInverse\":103,\"pathSequence_repetition_plus0\":104,\"pathElt\":105,\"pathPrimary\":106,\"pathMod\":107,\"pathInverse\":108,\"^\":109,\"?\":110,\"+\":111,\"iriOrLiteralOrArray_repetition0\":112,\"literal\":113,\"iri_group0\":114,\"a\":115,\"string\":116,\"LANGTAG\":117,\"^^\":118,\"DECIMAL\":119,\"DOUBLE\":120,\"literal_group0\":121,\"string_group0\":122,\"string_group1\":123,\"shaclDoc_repetition1_group0\":124,\"constraint_group0_repetition_plus0\":125,\"TARGET\":126,\"propertyShape_repetition0_group0\":127,\"ATPNAME_LN\":128,\"ATPNAME_NS\":129,\"PNAME_LN\":130,\"KW_TRUE\":131,\"KW_FALSE\":132,\"STRING_LITERAL1\":133,\"STRING_LITERAL2\":134,\"STRING_LITERAL_LONG1\":135,\"STRING_LITERAL_LONG2\":136,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",7:\"EOF\",12:\"KW_BASE\",13:\"IRIREF\",14:\"KW_IMPORTS\",15:\"KW_PREFIX\",16:\"PNAME_NS\",20:\"KW_SHAPE\",25:\"KW_SHAPE_CLASS\",28:\";\",38:\"(\",40:\")\",42:\",\",44:\"[\",46:\"]\",48:\"%\",53:\".\",56:\"{\",58:\"}\",61:\"->\",67:\"|\",75:\"=\",85:\"NODEKIND\",87:\"PARAM\",90:\"..\",92:\"INTEGER\",93:\"*\",95:\"@\",96:\"!\",102:\"/\",109:\"^\",110:\"?\",111:\"+\",115:\"a\",117:\"LANGTAG\",118:\"^^\",119:\"DECIMAL\",120:\"DOUBLE\",126:\"TARGET\",128:\"ATPNAME_LN\",129:\"ATPNAME_NS\",130:\"PNAME_LN\",131:\"KW_TRUE\",132:\"KW_FALSE\",133:\"STRING_LITERAL1\",134:\"STRING_LITERAL2\",135:\"STRING_LITERAL_LONG1\",136:\"STRING_LITERAL_LONG2\"},\nproductions_: [0,[3,4],[8,1],[8,1],[8,1],[9,2],[10,2],[11,3],[17,1],[19,5],[24,4],[27,2],[29,2],[30,2],[32,2],[33,1],[33,1],[33,1],[37,3],[41,2],[43,1],[45,1],[36,3],[47,1],[49,1],[50,3],[51,1],[52,3],[6,1],[55,1],[57,1],[23,3],[60,2],[63,3],[66,2],[69,1],[70,1],[70,2],[68,1],[68,2],[72,3],[77,2],[80,2],[82,1],[82,2],[81,1],[81,2],[84,1],[84,1],[84,1],[84,3],[84,1],[88,5],[89,1],[91,1],[91,1],[86,1],[86,2],[73,1],[78,1],[98,2],[97,1],[97,2],[101,2],[99,1],[99,2],[105,1],[105,2],[103,1],[103,2],[108,1],[107,1],[107,1],[107,1],[106,1],[106,3],[76,1],[76,3],[35,1],[35,1],[18,1],[18,1],[18,1],[113,1],[113,2],[113,3],[113,1],[113,1],[113,1],[113,1],[116,1],[116,1],[4,0],[4,2],[124,1],[124,1],[5,0],[5,2],[21,0],[21,1],[22,0],[22,1],[26,0],[26,1],[31,0],[31,1],[34,0],[34,2],[39,0],[39,2],[54,0],[54,2],[59,0],[59,2],[62,1],[62,2],[125,1],[125,2],[64,1],[64,1],[65,0],[65,1],[71,1],[71,2],[74,1],[74,1],[127,1],[127,1],[79,0],[79,2],[83,1],[83,2],[94,1],[94,1],[100,1],[100,2],[104,1],[104,2],[112,0],[112,2],[114,1],[114,1],[121,1],[121,1],[122,1],[122,1],[123,1],[123,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 1:\nthis.$ = emit(Parser.factory.namedNode(resolveIRI('')), Parser.factory.namedNode(RDF_TYPE), Parser.factory.namedNode(OWL + 'Ontology'));\nbreak;\ncase 5:\n\n                      Parser.base = Parser.factory.namedNode($$[$0].slice(1, -1));\n                      Parser.n3Parser._setBase(resolveIRI(Parser.base.value));\n                    \nbreak;\ncase 6:\nthis.$ = emit(Parser.base, Parser.factory.namedNode(OWL + 'imports'), Parser.factory.namedNode($$[$0].slice(1, -1)));\nbreak;\ncase 7:\nthis.$ = Parser.prefixes[$$[$0-1].substr(0, $$[$0-1].length - 1)] = resolveIRI($$[$0]);\nbreak;\ncase 8:\n\n                      Parser.nodeShapeStack = false\n                      emit(Parser.currentNodeShape = $$[$0], Parser.factory.namedNode(RDF_TYPE), Parser.factory.namedNode(SH + 'NodeShape'))\n                    \nbreak;\ncase 10:\nthis.$ = emit(Parser.currentNodeShape, Parser.factory.namedNode(RDF_TYPE), Parser.factory.namedNode(RDFS + 'Class'));\nbreak;\ncase 11:\nthis.$ = ensureExtended();\nbreak;\ncase 13:\nthis.$ = $$[$0].forEach(e => emit(Parser.currentNodeShape, $$[$0-1], e));\nbreak;\ncase 14:\nthis.$ = [$$[$0-1], ...$$[$0]];\nbreak;\ncase 18:\nthis.$ = addList($$[$0-1], true);\nbreak;\ncase 19: case 34: case 42: case 60: case 63:\nthis.$ = $$[$0];\nbreak;\ncase 20:\n\n                      Parser.tempCurrentNodeShape = Parser.currentNodeShape;\n                      this.$ = Parser.currentNodeShape = blank();\n                    \nbreak;\ncase 21:\n\n                      Parser.currentNodeShape = Parser.tempCurrentNodeShape;\n                    \nbreak;\ncase 22: case 31:\nthis.$ = $$[$0-2];\nbreak;\ncase 23:\n\n                      Parser.tempCurrentNodeShape = Parser.currentNodeShape;\n                      Parser.currentNodeShape = Parser.currentPropertyNode;\n                    \nbreak;\ncase 24:\n\n                      Parser.currentNodeShape = Parser.tempCurrentNodeShape\n                    \nbreak;\ncase 26:\n\n                      Parser.currentNodeShape = $$[$0]\n                    \nbreak;\ncase 29:\n\n                      if (!Parser.nodeShapeStack) {\n                        Parser.nodeShapeStack = [];\n                      } else {\n                        Parser.nodeShapeStack.push(Parser.currentNodeShape);\n                        emit(\n                          // In the grammar a path signals the start of a new property declaration\n                          Parser.currentPropertyNode,\n                          Parser.factory.namedNode(SH + 'node'),\n                          Parser.currentNodeShape = blank(),\n                        )\n                      }\n          \n                      this.$ = Parser.currentNodeShape;\n                    \nbreak;\ncase 30:\n\n                      if (Parser.nodeShapeStack.length > 0) {\n                        Parser.currentNodeShape = Parser.nodeShapeStack.pop();\n                      }\n                    \nbreak;\ncase 32:\nthis.$ = $$[$0].forEach(node => { emit(Parser.currentNodeShape, Parser.factory.namedNode(SH + 'targetClass'), node) });\nbreak;\ncase 35:\nthis.$ = emit(Parser.currentNodeShape, Parser.factory.namedNode(SH + $$[$0][0]), $$[$0][1]);\nbreak;\ncase 36:\n\n                      // console.log('ndoe not')\n                    \nbreak;\ncase 37:\n\n                      const o = addList([$$[$0-1], ...$$[$0]].map(elem => {\n                        const x = blank();\n                        emit(x, Parser.factory.namedNode(SH + elem[0]), elem[1]);\n                        return x;\n                      }))\n\n                      this.$ = ['or',  o]\n                    \nbreak;\ncase 39: case 46:\nthis.$ = chainProperty('not', ...$$[$0]);\nbreak;\ncase 40: case 50:\nthis.$ = [$$[$0-2], $$[$0]];\nbreak;\ncase 43:\nthis.$ = $$[$0] && emitProperty(...$$[$0]);\nbreak;\ncase 44:\n\n                      this.$ = emitProperty(\n                        'or',\n                        addList([$$[$0-1], ...$$[$0]].map(elem => {\n                          const x = blank();\n                          emit(x, Parser.factory.namedNode(SH + elem[0]), elem[1]);\n                          return x;\n                        }))\n                      )\n                    \nbreak;\ncase 47:\nthis.$ = [datatypes[$$[$0].value] ? 'datatype' : 'class', $$[$0]];\nbreak;\ncase 48:\nthis.$ = ['nodeKind', Parser.factory.namedNode(SH + $$[$0])];\nbreak;\ncase 49:\nthis.$ = ['node', Parser.factory.namedNode($$[$0])];\nbreak;\ncase 51:\nthis.$ = undefined //['node', $$[$0]];\nbreak;\ncase 53:\nthis.$ = $$[$0] > 0 && emitProperty('minCount', createTypedLiteral($$[$0], XSD_INTEGER));\nbreak;\ncase 54:\nthis.$ = emitProperty('maxCount', createTypedLiteral($$[$0], XSD_INTEGER));\nbreak;\ncase 56:\nthis.$ = expandPrefix($$[$0].slice(1));\nbreak;\ncase 57:\nthis.$ = resolveIRI($$[$0]);\nbreak;\ncase 59:\n\n                      emit(\n                        // In the grammar a path signals the start of a new property declaration\n                        Parser.currentNodeShape,\n                        Parser.factory.namedNode(SH + 'property'),\n                        Parser.currentPropertyNode = blank(),\n                      )\n                      \n                      emitProperty('path', $$[$0])\n                    \nbreak;\ncase 62:\n\n                      const n = blank();\n                      emit(\n                        n,\n                        Parser.factory.namedNode(SH + 'alternativePath'),\n                        addList([$$[$0-1], ...$$[$0]])\n                      )\n                      this.$ = n\n                    \nbreak;\ncase 65:\nthis.$ = addList([$$[$0-1], ...$$[$0]]);\nbreak;\ncase 67:\n\n                      emit(this.$ = blank(), Parser.factory.namedNode(SH + $$[$0]), $$[$0-1])\n                    \nbreak;\ncase 69:\n\n                      emit(this.$ = blank(), Parser.factory.namedNode(SH + 'inversePath'), $$[$0])\n                    \nbreak;\ncase 71:\nthis.$ = 'zeroOrOnePath';\nbreak;\ncase 72:\nthis.$ = 'zeroOrMorePath';\nbreak;\ncase 73:\nthis.$ = 'oneOrMorePath';\nbreak;\ncase 75:\nthis.$ = $$[$0-1];\nbreak;\ncase 77:\nthis.$ = addList($$[$0-1]);\nbreak;\ncase 80:\nthis.$ = Parser.factory.namedNode(resolveIRI($$[$0]));\nbreak;\ncase 81:\nthis.$ = Parser.factory.namedNode(expandPrefix($$[$0]));\nbreak;\ncase 82:\nthis.$ = ensureExtended(Parser.factory.namedNode(RDF_TYPE));\nbreak;\ncase 83:\nthis.$ = createTypedLiteral($$[$0]);\nbreak;\ncase 84:\nthis.$ = createLangLiteral($$[$0-1], $$[$0].substr(1).toLowerCase());\nbreak;\ncase 85:\nthis.$ = createTypedLiteral($$[$0-2], $$[$0]);\nbreak;\ncase 86:\nthis.$ = createTypedLiteral($$[$0], XSD_INTEGER);\nbreak;\ncase 87:\nthis.$ = createTypedLiteral($$[$0], XSD_DECIMAL);\nbreak;\ncase 88:\nthis.$ = createTypedLiteral($$[$0].toLowerCase(), XSD_DOUBLE);\nbreak;\ncase 89:\nthis.$ = createTypedLiteral($$[$0].toLowerCase(), XSD_BOOLEAN);\nbreak;\ncase 90:\nthis.$ = unescapeString($$[$0], 1);\nbreak;\ncase 91:\nthis.$ = unescapeString($$[$0], 3);\nbreak;\ncase 92: case 96: case 106: case 108: case 110: case 112: case 128: case 138:\nthis.$ = [];\nbreak;\ncase 93: case 97: case 107: case 109: case 111: case 113: case 115: case 117: case 123: case 129: case 131: case 135: case 137: case 139:\n$$[$0-1].push($$[$0]);\nbreak;\ncase 114: case 116: case 122: case 130: case 134: case 136:\nthis.$ = [$$[$0]];\nbreak;\n}\n},\ntable: [o($V0,[2,92],{3:1,4:2}),{1:[3]},o($V1,[2,96],{5:3,8:4,9:5,10:6,11:7,12:[1,8],14:[1,9],15:[1,10]}),o($V2,[2,110],{6:11,124:12,54:13,19:14,24:15,20:[1,16],25:[1,17]}),o($V0,[2,93]),o($V0,[2,2]),o($V0,[2,3]),o($V0,[2,4]),{13:[1,18]},{13:[1,19]},{16:[1,20]},{7:[1,21]},o($V1,[2,97]),{7:[2,28],13:$V3,16:$V4,18:24,51:23,52:22,114:26,115:$V5,130:$V6},o($V1,[2,94]),o($V1,[2,95]),{13:$V3,16:$V4,17:30,18:31,114:26,115:$V5,130:$V6},{13:$V3,16:$V4,17:32,18:31,114:26,115:$V5,130:$V6},o($V0,[2,5]),o($V0,[2,6]),{13:[1,33]},{1:[2,1]},o($V2,[2,111]),{13:$V3,16:$V4,18:36,29:34,30:35,114:26,115:$V5,130:$V6},o($V7,[2,26]),o($V8,[2,80]),o($V8,[2,81]),o($V8,[2,82]),o($V8,[2,140]),o($V8,[2,141]),o($V9,[2,98],{21:37,60:38,61:[1,39]}),o([28,56,61],[2,8]),{26:40,27:41,28:$Va,56:[2,102]},o($V0,[2,7]),{53:[1,43]},o($Vb,[2,104],{31:44,27:45,28:$Va}),{13:$V3,16:$V4,18:51,32:46,33:47,35:48,36:49,37:50,38:$Vc,43:53,44:$Vd,92:$Ve,113:52,114:26,115:$V5,116:55,119:$Vf,120:$Vg,121:59,122:61,123:62,130:$V6,131:$Vh,132:$Vi,133:$Vj,134:$Vk,135:$Vl,136:$Vm},{22:69,27:70,28:$Va,56:[2,100]},o($V9,[2,99]),{13:$V3,16:$V4,18:72,62:71,114:26,115:$V5,130:$V6},{23:73,55:74,56:$Vn},{56:[2,103]},{13:$V3,16:$V4,18:36,29:76,30:35,114:26,115:$V5,130:$V6},o($V2,[2,27]),o($Vb,[2,12]),o($Vb,[2,105]),o($Vo,[2,13]),o($Vp,[2,106],{34:77}),o($Vq,[2,15]),o($Vq,[2,16]),o($Vq,[2,17]),o($Vr,[2,78]),o($Vr,[2,79]),{13:$V3,16:$V4,18:36,29:78,30:35,114:26,115:$V5,130:$V6},o($Vs,[2,108],{39:79}),o($Vr,[2,83],{117:[1,80],118:[1,81]}),o($Vr,[2,86]),o($Vr,[2,87]),o($Vr,[2,88]),o($Vr,[2,89]),o($V7,[2,20]),o($Vt,[2,90]),o($Vt,[2,91]),o($Vr,[2,142]),o($Vr,[2,143]),o($Vt,[2,144]),o($Vt,[2,145]),o($Vt,[2,146]),o($Vt,[2,147]),{23:82,55:74,56:$Vn},{56:[2,101]},o($V9,[2,32],{114:26,18:83,13:$V3,16:$V4,115:$V5,130:$V6}),o($Vu,[2,114]),o($V1,[2,10]),o($Vv,[2,112],{59:84}),o($Vv,[2,29]),o($Vb,[2,11]),o($Vo,[2,14],{41:85,42:[1,86]}),{45:87,46:[1,88]},{13:$V3,16:$V4,18:51,33:90,35:48,36:49,37:50,38:$Vc,40:[1,89],43:53,44:$Vd,92:$Ve,113:52,114:26,115:$V5,116:55,119:$Vf,120:$Vg,121:59,122:61,123:62,130:$V6,131:$Vh,132:$Vi,133:$Vj,134:$Vk,135:$Vl,136:$Vm},o($Vr,[2,84]),{13:$V3,16:$V4,18:91,114:26,115:$V5,130:$V6},o($V1,[2,9]),o($Vu,[2,115]),{13:$V3,16:$V4,18:115,38:$Vw,57:92,58:[1,94],63:93,64:95,68:102,69:98,70:100,72:104,73:105,74:107,77:97,78:99,87:$Vx,96:$Vy,97:101,99:103,103:106,105:109,106:113,108:110,109:$Vz,114:26,115:$V5,125:96,126:$VA,130:$V6},o($Vp,[2,107]),{13:$V3,16:$V4,18:51,33:117,35:48,36:49,37:50,38:$Vc,43:53,44:$Vd,92:$Ve,113:52,114:26,115:$V5,116:55,119:$Vf,120:$Vg,121:59,122:61,123:62,130:$V6,131:$Vh,132:$Vi,133:$Vj,134:$Vk,135:$Vl,136:$Vm},o($Vq,[2,22]),o($Vq,[2,21]),o($Vq,[2,18]),o($Vs,[2,109]),o($Vr,[2,85]),o($VB,[2,31]),o($Vv,[2,113]),o($VB,[2,30]),{47:120,48:[1,121],50:119,53:[2,120],65:118},o($VC,[2,118],{70:100,68:102,72:104,73:105,74:107,69:122,87:$Vx,96:$Vy,126:$VA}),o($VC,[2,119]),o($VD,[2,116]),o($VE,[2,128],{79:123}),o($VD,[2,35]),o($VE,[2,59]),o($VD,[2,36],{71:124,66:125,67:$VF}),o($VG,[2,61],{100:127,98:128,67:$VH}),o($VI,[2,38]),{72:130,74:107,87:$Vx,126:$VA},o($VJ,[2,64],{104:131,101:132,102:$VK}),{75:[1,134]},o([13,16,56,85,87,95,115,126,128,129,130],[2,58]),o($VL,[2,68]),{13:$V3,16:$V4,18:115,38:$Vw,105:135,106:113,114:26,115:$V5,130:$V6},{75:[2,124]},{75:[2,125]},o($VL,[2,66],{107:136,93:[1,138],110:[1,137],111:[1,139]}),o([13,16,38,115,130],[2,70]),o($VM,[2,74]),{13:$V3,16:$V4,18:115,38:$Vw,97:140,99:103,103:106,105:109,106:113,108:110,109:$Vz,114:26,115:$V5,130:$V6},o($Vp,[2,19]),{53:[1,141]},{53:[2,121]},{13:$V3,16:$V4,18:36,29:142,30:35,114:26,115:$V5,130:$V6},o($V7,[2,23]),o($VD,[2,117]),o($VC,[2,41],{114:26,55:74,127:143,88:144,82:145,81:147,84:148,73:149,18:150,86:152,23:154,94:155,13:$V3,16:$V4,44:[1,146],56:$Vn,85:$VN,87:$VO,95:$VP,96:$Vy,115:$V5,128:$VQ,129:$VR,130:$V6}),o($VD,[2,37],{66:159,67:$VF}),o($VI,[2,122]),{68:160,72:104,73:105,74:107,87:$Vx,96:$Vy,126:$VA},o($VG,[2,62],{98:161,67:$VH}),o($VJ,[2,134]),{13:$V3,16:$V4,18:115,38:$Vw,99:162,103:106,105:109,106:113,108:110,109:$Vz,114:26,115:$V5,130:$V6},o($VI,[2,39]),o($VJ,[2,65],{101:163,102:$VK}),o($VL,[2,136]),{13:$V3,16:$V4,18:115,38:$Vw,103:164,105:109,106:113,108:110,109:$Vz,114:26,115:$V5,130:$V6},{13:$V3,16:$V4,18:51,35:166,44:$VS,76:165,92:$Ve,113:52,114:26,115:$V5,116:55,119:$Vf,120:$Vg,121:59,122:61,123:62,130:$V6,131:$Vh,132:$Vi,133:$Vj,134:$Vk,135:$Vl,136:$Vm},o($VL,[2,69]),o($VL,[2,67]),o($VL,[2,71]),o($VL,[2,72]),o($VL,[2,73]),{40:[1,168]},o($Vv,[2,33]),{48:[1,170],49:169},o($VE,[2,129]),o($VE,[2,126]),o($VE,[2,127]),{89:171,92:[1,172]},o($VE,[2,43],{83:173,80:174,67:$VT}),o($VU,[2,45]),{13:$V3,16:$V4,18:150,23:154,55:74,56:$Vn,84:176,85:$VN,86:152,87:$VO,94:155,95:$VP,114:26,115:$V5,128:$VQ,129:$VR,130:$V6},o($VU,[2,47]),o($VU,[2,48]),o($VU,[2,49]),{75:[1,177]},o($VU,[2,51]),o($VU,[2,56]),{13:[1,178]},o($VU,[2,132]),o($VU,[2,133]),o($VI,[2,123]),o($VI,[2,34]),o($VJ,[2,135]),o($VJ,[2,60]),o($VL,[2,137]),o($VL,[2,63]),o($VI,[2,40]),o($VV,[2,76]),o($VW,[2,138],{112:179}),o($VM,[2,75]),{53:[2,25]},{53:[2,24]},{90:[1,180]},{90:[2,53]},o($VE,[2,44],{80:181,67:$VT}),o($VU,[2,130]),{13:$V3,16:$V4,18:150,23:154,55:74,56:$Vn,73:149,81:182,84:148,85:$VN,86:152,87:$VO,94:155,95:$VP,96:$Vy,114:26,115:$V5,128:$VQ,129:$VR,130:$V6},o($VU,[2,46]),{13:$V3,16:$V4,18:51,35:166,44:$VS,76:183,92:$Ve,113:52,114:26,115:$V5,116:55,119:$Vf,120:$Vg,121:59,122:61,123:62,130:$V6,131:$Vh,132:$Vi,133:$Vj,134:$Vk,135:$Vl,136:$Vm},o($VU,[2,57]),{13:$V3,16:$V4,18:51,35:185,46:[1,184],92:$Ve,113:52,114:26,115:$V5,116:55,119:$Vf,120:$Vg,121:59,122:61,123:62,130:$V6,131:$Vh,132:$Vi,133:$Vj,134:$Vk,135:$Vl,136:$Vm},{91:186,92:[1,187],93:[1,188]},o($VU,[2,131]),o($VU,[2,42]),o($VU,[2,50]),o($VV,[2,77]),o($VW,[2,139]),{46:[1,189]},{46:[2,54]},{46:[2,55]},o($VE,[2,52])],\ndefaultActions: {21:[2,1],41:[2,103],70:[2,101],111:[2,124],112:[2,125],119:[2,121],169:[2,25],170:[2,24],172:[2,53],187:[2,54],188:[2,55]},\nparseError: function parseError (str, hash) {\n    if (hash.recoverable) {\n        this.trace(str);\n    } else {\n        var error = new Error(str);\n        error.hash = hash;\n        throw error;\n    }\n},\nparse: function parse(input) {\n    var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n    var args = lstack.slice.call(arguments, 1);\n    var lexer = Object.create(this.lexer);\n    var sharedState = { yy: {} };\n    for (var k in this.yy) {\n        if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n            sharedState.yy[k] = this.yy[k];\n        }\n    }\n    lexer.setInput(input, sharedState.yy);\n    sharedState.yy.lexer = lexer;\n    sharedState.yy.parser = this;\n    if (typeof lexer.yylloc == 'undefined') {\n        lexer.yylloc = {};\n    }\n    var yyloc = lexer.yylloc;\n    lstack.push(yyloc);\n    var ranges = lexer.options && lexer.options.ranges;\n    if (typeof sharedState.yy.parseError === 'function') {\n        this.parseError = sharedState.yy.parseError;\n    } else {\n        this.parseError = Object.getPrototypeOf(this).parseError;\n    }\n    function popStack(n) {\n        stack.length = stack.length - 2 * n;\n        vstack.length = vstack.length - n;\n        lstack.length = lstack.length - n;\n    }\n    _token_stack:\n        var lex = function () {\n            var token;\n            token = lexer.lex() || EOF;\n            if (typeof token !== 'number') {\n                token = self.symbols_[token] || token;\n            }\n            return token;\n        };\n    var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n    while (true) {\n        state = stack[stack.length - 1];\n        if (this.defaultActions[state]) {\n            action = this.defaultActions[state];\n        } else {\n            if (symbol === null || typeof symbol == 'undefined') {\n                symbol = lex();\n            }\n            action = table[state] && table[state][symbol];\n        }\n                    if (typeof action === 'undefined' || !action.length || !action[0]) {\n                var errStr = '';\n                expected = [];\n                for (p in table[state]) {\n                    if (this.terminals_[p] && p > TERROR) {\n                        expected.push('\\'' + this.terminals_[p] + '\\'');\n                    }\n                }\n                if (lexer.showPosition) {\n                    errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n                } else {\n                    errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n                }\n                this.parseError(errStr, {\n                    text: lexer.match,\n                    token: this.terminals_[symbol] || symbol,\n                    line: lexer.yylineno,\n                    loc: yyloc,\n                    expected: expected\n                });\n            }\n        if (action[0] instanceof Array && action.length > 1) {\n            throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n        }\n        switch (action[0]) {\n        case 1:\n            stack.push(symbol);\n            vstack.push(lexer.yytext);\n            lstack.push(lexer.yylloc);\n            stack.push(action[1]);\n            symbol = null;\n            if (!preErrorSymbol) {\n                yyleng = lexer.yyleng;\n                yytext = lexer.yytext;\n                yylineno = lexer.yylineno;\n                yyloc = lexer.yylloc;\n                if (recovering > 0) {\n                    recovering--;\n                }\n            } else {\n                symbol = preErrorSymbol;\n                preErrorSymbol = null;\n            }\n            break;\n        case 2:\n            len = this.productions_[action[1]][1];\n            yyval.$ = vstack[vstack.length - len];\n            yyval._$ = {\n                first_line: lstack[lstack.length - (len || 1)].first_line,\n                last_line: lstack[lstack.length - 1].last_line,\n                first_column: lstack[lstack.length - (len || 1)].first_column,\n                last_column: lstack[lstack.length - 1].last_column\n            };\n            if (ranges) {\n                yyval._$.range = [\n                    lstack[lstack.length - (len || 1)].range[0],\n                    lstack[lstack.length - 1].range[1]\n                ];\n            }\n            r = this.performAction.apply(yyval, [\n                yytext,\n                yyleng,\n                yylineno,\n                sharedState.yy,\n                action[1],\n                vstack,\n                lstack\n            ].concat(args));\n            if (typeof r !== 'undefined') {\n                return r;\n            }\n            if (len) {\n                stack = stack.slice(0, -1 * len * 2);\n                vstack = vstack.slice(0, -1 * len);\n                lstack = lstack.slice(0, -1 * len);\n            }\n            stack.push(this.productions_[action[1]][0]);\n            vstack.push(yyval.$);\n            lstack.push(yyval._$);\n            newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n            stack.push(newState);\n            break;\n        case 3:\n            return true;\n        }\n    }\n    return true;\n}};\n\n/*\n    Grammar specification for a SHACL compact\n    syntax parser.\n    Several functions are from <https://github.com/RubenVerborgh/SPARQL.js/>\n*/\n\n  // Common namespaces and entities\n  const RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n      RDF_TYPE  = RDF + 'type',\n      RDF_FIRST = RDF + 'first',\n      RDF_REST  = RDF + 'rest',\n      RDF_NIL   = RDF + 'nil',\n      XSD = 'http://www.w3.org/2001/XMLSchema#',\n      XSD_INTEGER  = XSD + 'integer',\n      XSD_DECIMAL  = XSD + 'decimal',\n      XSD_DOUBLE   = XSD + 'double',\n      XSD_BOOLEAN  = XSD + 'boolean',\n      SH = 'http://www.w3.org/ns/shacl#',\n      OWL = 'http://www.w3.org/2002/07/owl#',\n      RDFS = 'http://www.w3.org/2000/01/rdf-schema#';\n\n    // TODO: Make sure all SPARQL supported datatypes are here\n    const datatypes = {\n      [XSD_INTEGER]: true,\n      [XSD_DECIMAL]: true,\n      [XSD + 'float']: true,\n      [XSD_DOUBLE]: true,\n      [XSD + 'string']: true,\n      [XSD_BOOLEAN]: true,\n      [XSD + 'dateTime']: true,\n      [XSD + 'nonPositiveInteger']: true,\n      [XSD + 'negativeInteger']: true,\n      [XSD + 'long']: true,\n      [XSD + 'int']: true,\n      [XSD + 'short']: true,\n      [XSD + 'byte']: true,\n      [XSD + 'nonNegativeInteger']: true,\n      [XSD + 'unsignedLong']: true,\n      [XSD + 'unsignedShort']: true,\n      [XSD + 'unsignedByte']: true,\n      [XSD + 'positiveInteger']: true,\n      [RDF + 'langString']: true\n    }\n\n    function addList(elems, ttlList = false) {   \n      let i = 0, l = elems.length;\n\n      // TODO: Double check this behavior and see why it differes from the other l == 0 case\n      if (ttlList && l === 0) {\n        return Parser.factory.namedNode(RDF_NIL)\n      }\n\n      const list = head = blank();\n\n      if (l === 0) {\n        // TODO: see if this should be here \n        emit(head, Parser.factory.namedNode(RDF_REST),  Parser.factory.namedNode(RDF_NIL))\n      }\n\n      elems.forEach(elem => {\n        if (elem === undefined) {\n          throw new Error('b')\n        }\n        emit(head, Parser.factory.namedNode(RDF_FIRST), elem)\n        emit(head, Parser.factory.namedNode(RDF_REST),  head = ++i < l ? blank() : Parser.factory.namedNode(RDF_NIL))\n      })\n\n      return list;\n    }\n\n  // TODO: Port over any updates to this from SPARLQL.js\n  // Resolves an IRI against a base path\n  function resolveIRI(iri) {\n     // Strip off possible angular brackets and resolve the IRI\n    return Parser.n3Parser._resolveIRI(iri[0] === '<' ? iri.substring(1, iri.length - 1) : iri)\n  }\n\n  function expandPrefix(iri) {\n    const namePos = iri.indexOf(':'),\n          prefix = iri.substr(0, namePos),\n          expansion = Parser.prefixes[prefix];\n    \n    if (!expansion) throw new Error('Unknown prefix: ' + prefix);\n    \n    return resolveIRI(expansion + iri.substr(namePos + 1));\n  }\n  \n  // Converts the string to a number\n  function toInt(string) {\n    return parseInt(string, 10);\n  }\n  // Creates a literal with the given value and type\n  function createTypedLiteral(value, type) {\n    if (type && type.termType !== 'NamedNode'){\n      type = Parser.factory.namedNode(type);\n    }\n    return Parser.factory.literal(value, type);\n  }\n  // Creates a literal with the given value and language\n  function createLangLiteral(value, lang) {\n    return Parser.factory.literal(value, lang);\n  }\n  // Creates a new blank node\n  function blank(name) {\n    if (typeof name === 'string') {  // Only use name if a name is given\n      if (name.startsWith('e_')) return Parser.factory.blankNode(name);\n      return Parser.factory.blankNode('e_' + name);\n    }\n    return Parser.factory.blankNode('g_' + blankId++);\n  };\n  var blankId = 0;\n  Parser._resetBlanks = function () { blankId = 0; }\n  // Regular expression and replacement strings to escape strings\n  var escapeSequence = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{8})|\\\\(.)/g,\n      escapeReplacements = { '\\\\': '\\\\', \"'\": \"'\", '\"': '\"',\n                             't': '\\t', 'b': '\\b', 'n': '\\n', 'r': '\\r', 'f': '\\f' },\n      fromCharCode = String.fromCharCode;\n  // Translates escape codes in the string into their textual equivalent\n  function unescapeString(string, trimLength) {\n    return Parser.n3Parser._lexer._unescape(string.substring(trimLength, string.length - trimLength));\n  }\n\n  function emit(s, p, o) {\n    if (!s.termType || !p.termType || p.value.includes(',') || !o.termType) {\n      throw new Error(`boo ${s.value} ${p.value} ${o.value}`)\n    }\n    Parser.onQuad(Parser.factory.quad(s, p, o))\n  }\n\n  function emitProperty(p, o) {\n    emit(Parser.currentPropertyNode, Parser.factory.namedNode(SH + p), o)\n  }\n\n  function chainProperty(name, p, o) {\n    const b = blank();\n    emit(b, Parser.factory.namedNode(SH + p), o);\n    return [name, b];\n  }\n\n  function ensureExtended(input) {\n    if (!Parser.extended) {\n      throw new Error('Encountered extended SHACLC syntax; but extended parsing is disabled')\n    }\n    return input\n  }\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n        if (this.yy.parser) {\n            this.yy.parser.parseError(str, hash);\n        } else {\n            throw new Error(str);\n        }\n    },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n        this.yy = yy || this.yy || {};\n        this._input = input;\n        this._more = this._backtrack = this.done = false;\n        this.yylineno = this.yyleng = 0;\n        this.yytext = this.matched = this.match = '';\n        this.conditionStack = ['INITIAL'];\n        this.yylloc = {\n            first_line: 1,\n            first_column: 0,\n            last_line: 1,\n            last_column: 0\n        };\n        if (this.options.ranges) {\n            this.yylloc.range = [0,0];\n        }\n        this.offset = 0;\n        return this;\n    },\n\n// consumes and returns one char from the input\ninput:function () {\n        var ch = this._input[0];\n        this.yytext += ch;\n        this.yyleng++;\n        this.offset++;\n        this.match += ch;\n        this.matched += ch;\n        var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n        if (lines) {\n            this.yylineno++;\n            this.yylloc.last_line++;\n        } else {\n            this.yylloc.last_column++;\n        }\n        if (this.options.ranges) {\n            this.yylloc.range[1]++;\n        }\n\n        this._input = this._input.slice(1);\n        return ch;\n    },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n        var len = ch.length;\n        var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n        this._input = ch + this._input;\n        this.yytext = this.yytext.substr(0, this.yytext.length - len);\n        //this.yyleng -= len;\n        this.offset -= len;\n        var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n        this.match = this.match.substr(0, this.match.length - 1);\n        this.matched = this.matched.substr(0, this.matched.length - 1);\n\n        if (lines.length - 1) {\n            this.yylineno -= lines.length - 1;\n        }\n        var r = this.yylloc.range;\n\n        this.yylloc = {\n            first_line: this.yylloc.first_line,\n            last_line: this.yylineno + 1,\n            first_column: this.yylloc.first_column,\n            last_column: lines ?\n                (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n                 + oldLines[oldLines.length - lines.length].length - lines[0].length :\n              this.yylloc.first_column - len\n        };\n\n        if (this.options.ranges) {\n            this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n        }\n        this.yyleng = this.yytext.length;\n        return this;\n    },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n        this._more = true;\n        return this;\n    },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n        if (this.options.backtrack_lexer) {\n            this._backtrack = true;\n        } else {\n            return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n                text: \"\",\n                token: null,\n                line: this.yylineno\n            });\n\n        }\n        return this;\n    },\n\n// retain first n characters of the match\nless:function (n) {\n        this.unput(this.match.slice(n));\n    },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n        var past = this.matched.substr(0, this.matched.length - this.match.length);\n        return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n    },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n        var next = this.match;\n        if (next.length < 20) {\n            next += this._input.substr(0, 20-next.length);\n        }\n        return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n    },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n        var pre = this.pastInput();\n        var c = new Array(pre.length + 1).join(\"-\");\n        return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n    },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n        var token,\n            lines,\n            backup;\n\n        if (this.options.backtrack_lexer) {\n            // save context\n            backup = {\n                yylineno: this.yylineno,\n                yylloc: {\n                    first_line: this.yylloc.first_line,\n                    last_line: this.last_line,\n                    first_column: this.yylloc.first_column,\n                    last_column: this.yylloc.last_column\n                },\n                yytext: this.yytext,\n                match: this.match,\n                matches: this.matches,\n                matched: this.matched,\n                yyleng: this.yyleng,\n                offset: this.offset,\n                _more: this._more,\n                _input: this._input,\n                yy: this.yy,\n                conditionStack: this.conditionStack.slice(0),\n                done: this.done\n            };\n            if (this.options.ranges) {\n                backup.yylloc.range = this.yylloc.range.slice(0);\n            }\n        }\n\n        lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n        if (lines) {\n            this.yylineno += lines.length;\n        }\n        this.yylloc = {\n            first_line: this.yylloc.last_line,\n            last_line: this.yylineno + 1,\n            first_column: this.yylloc.last_column,\n            last_column: lines ?\n                         lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n                         this.yylloc.last_column + match[0].length\n        };\n        this.yytext += match[0];\n        this.match += match[0];\n        this.matches = match;\n        this.yyleng = this.yytext.length;\n        if (this.options.ranges) {\n            this.yylloc.range = [this.offset, this.offset += this.yyleng];\n        }\n        this._more = false;\n        this._backtrack = false;\n        this._input = this._input.slice(match[0].length);\n        this.matched += match[0];\n        token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n        if (this.done && this._input) {\n            this.done = false;\n        }\n        if (token) {\n            return token;\n        } else if (this._backtrack) {\n            // recover context\n            for (var k in backup) {\n                this[k] = backup[k];\n            }\n            return false; // rule action called reject() implying the next rule should be tested instead.\n        }\n        return false;\n    },\n\n// return next match in input\nnext:function () {\n        if (this.done) {\n            return this.EOF;\n        }\n        if (!this._input) {\n            this.done = true;\n        }\n\n        var token,\n            match,\n            tempMatch,\n            index;\n        if (!this._more) {\n            this.yytext = '';\n            this.match = '';\n        }\n        var rules = this._currentRules();\n        for (var i = 0; i < rules.length; i++) {\n            tempMatch = this._input.match(this.rules[rules[i]]);\n            if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n                match = tempMatch;\n                index = i;\n                if (this.options.backtrack_lexer) {\n                    token = this.test_match(tempMatch, rules[i]);\n                    if (token !== false) {\n                        return token;\n                    } else if (this._backtrack) {\n                        match = false;\n                        continue; // rule action called reject() implying a rule MISmatch.\n                    } else {\n                        // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n                        return false;\n                    }\n                } else if (!this.options.flex) {\n                    break;\n                }\n            }\n        }\n        if (match) {\n            token = this.test_match(match, rules[index]);\n            if (token !== false) {\n                return token;\n            }\n            // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n            return false;\n        }\n        if (this._input === \"\") {\n            return this.EOF;\n        } else {\n            return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n                text: \"\",\n                token: null,\n                line: this.yylineno\n            });\n        }\n    },\n\n// return next match that has a token\nlex:function lex () {\n        var r = this.next();\n        if (r) {\n            return r;\n        } else {\n            return this.lex();\n        }\n    },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n        this.conditionStack.push(condition);\n    },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n        var n = this.conditionStack.length - 1;\n        if (n > 0) {\n            return this.conditionStack.pop();\n        } else {\n            return this.conditionStack[0];\n        }\n    },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n        if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n            return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n        } else {\n            return this.conditions[\"INITIAL\"].rules;\n        }\n    },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n        n = this.conditionStack.length - 1 - Math.abs(n || 0);\n        if (n >= 0) {\n            return this.conditionStack[n];\n        } else {\n            return \"INITIAL\";\n        }\n    },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n        this.begin(condition);\n    },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n        return this.conditionStack.length;\n    },\noptions: {\"flex\":true,\"case-insensitive\":true},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0:/* ignore */\nbreak;\ncase 1:return 12\nbreak;\ncase 2:return 14\nbreak;\ncase 3:return 15\nbreak;\ncase 4:return 25\nbreak;\ncase 5:return 20\nbreak;\ncase 6:return 131\nbreak;\ncase 7:return 132\nbreak;\ncase 8:return 85\nbreak;\ncase 9:return 126\nbreak;\ncase 10:return 87\nbreak;\ncase 11:return 'PASS'\nbreak;\ncase 12:return 'COMMENT'\nbreak;\ncase 13:return 13\nbreak;\ncase 14:return 16\nbreak;\ncase 15:return 130\nbreak;\ncase 16:return 129\nbreak;\ncase 17:return 128\nbreak;\ncase 18:return 117\nbreak;\ncase 19:return 92\nbreak;\ncase 20:return 119\nbreak;\ncase 21:return 120\nbreak;\ncase 22:return 'EXPONENT'\nbreak;\ncase 23:return 133\nbreak;\ncase 24:return 134\nbreak;\ncase 25:return 135\nbreak;\ncase 26:return 136\nbreak;\ncase 27:return 61\nbreak;\ncase 28:return 90\nbreak;\ncase 29:return 58\nbreak;\ncase 30:return 56\nbreak;\ncase 31:return 38\nbreak;\ncase 32:return 40\nbreak;\ncase 33:return 44\nbreak;\ncase 34:return 46\nbreak;\ncase 35:return 110\nbreak;\ncase 36:return 93\nbreak;\ncase 37:return 111\nbreak;\ncase 38:return 67\nbreak;\ncase 39:return 118\nbreak;\ncase 40:return 53\nbreak;\ncase 41:return 96\nbreak;\ncase 42:return 102\nbreak;\ncase 43:return 75\nbreak;\ncase 44:return 95\nbreak;\ncase 45:return 109\nbreak;\ncase 46:return 28\nbreak;\ncase 47:return 42\nbreak;\ncase 48:return 48\nbreak;\ncase 49:return 115\nbreak;\ncase 50:return 7\nbreak;\ncase 51:console.log(yy_.yytext);\nbreak;\n}\n},\nrules: [/^(?:\\s+|#[^\\n\\r]*)/i,/^(?:BASE)/i,/^(?:IMPORTS)/i,/^(?:PREFIX)/i,/^(?:shapeClass)/i,/^(?:shape)/i,/^(?:true)/i,/^(?:false)/i,/^(?:(BlankNode|IRI|Literal|BlankNodeOrIRI|BlankNodeOrLiteral|IRIOrLiteral\\b))/i,/^(?:(targetNode|targetObjectsOf|targetSubjectsOf\\b))/i,/^(?:(deactivated|severity|message|class|datatype|nodeKind|minExclusive|minInclusive|maxExclusive|maxInclusive|minLength|maxLength|pattern|flags|languageIn|uniqueLang|equals|disjoint|lessThan|lessThanOrEquals|qualifiedValueShape|qualifiedMinCount|qualifiedMaxCount|qualifiedValueShapesDisjoint|closed|ignoredProperties|hasValue|in))/i,/^(?:([ \\t\\r\\n]+))/i,/^(?:(#[\\r\\n]*))/i,/^(?:(<([^=<>\\\"\\{\\}\\|\\^`\\\\\\u0000-\\u0020]|(\\\\u([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])|\\\\U([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f])))*>))/i,/^(?:((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])((((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040])|\\.)*((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040]))?)?:))/i,/^(?:(((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])((((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040])|\\.)*((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040]))?)?:)(((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|:|[0-9]|((%([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))|(\\\\(_|~|\\.|-|!|\\$|&|'|\\(|\\)|\\*|\\+|,|;|=|\\/|\\?|#|@|%))))((((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040])|\\.|:|((%([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))|(\\\\(_|~|\\.|-|!|\\$|&|'|\\(|\\)|\\*|\\+|,|;|=|\\/|\\?|#|@|%))))*(((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040])|:|((%([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))|(\\\\(_|~|\\.|-|!|\\$|&|'|\\(|\\)|\\*|\\+|,|;|=|\\/|\\?|#|@|%)))))?)))/i,/^(?:(@(([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])((((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040])|\\.)*((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040]))?)?:))/i,/^(?:(@((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])((((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040])|\\.)*((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040]))?)?:)(((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|:|[0-9]|((%([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))|(\\\\(_|~|\\.|-|!|\\$|&|'|\\(|\\)|\\*|\\+|,|;|=|\\/|\\?|#|@|%))))((((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040])|\\.|:|((%([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))|(\\\\(_|~|\\.|-|!|\\$|&|'|\\(|\\)|\\*|\\+|,|;|=|\\/|\\?|#|@|%))))*(((([A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD])|_\\b)|-|[0-9]|[\\u00B7]|[\\u0300-\\u036F]|[\\u203F-\\u2040])|:|((%([0-9]|[A-F]|[a-f])([0-9]|[A-F]|[a-f]))|(\\\\(_|~|\\.|-|!|\\$|&|'|\\(|\\)|\\*|\\+|,|;|=|\\/|\\?|#|@|%)))))?)))/i,/^(?:(@[a-zA-Z]+(-[a-zA-Z0-9]+)*))/i,/^(?:([+-]?[0-9]+))/i,/^(?:([+-]?[0-9]*\\.[0-9]+))/i,/^(?:([+-]?([0-9]+\\.[0-9]*([eE][+-]?[0-9]+)|\\.?[0-9]+([eE][+-]?[0-9]+))))/i,/^(?:([eE][+-]?[0-9]+))/i,/^(?:('(?:(?:[^\\u0027\\u005C\\u000A\\u000D])|(\\\\[tbnrf\\\\\\\"\\']))*'))/i,/^(?:(\"(?:(?:[^\\u0022\\u005C\\u000A\\u000D])|(\\\\[tbnrf\\\\\\\"\\']))*\"))/i,/^(?:('''(?:(?:'|'')?(?:[^'\\\\]|(\\\\[tbnrf\\\\\\\"\\'])))*'''))/i,/^(?:(\"\"\"(?:(?:\"|\"\")?(?:[^\\\"\\\\]|(\\\\[tbnrf\\\\\\\"\\'])))*\"\"\"))/i,/^(?:->)/i,/^(?:\\.\\.)/i,/^(?:\\})/i,/^(?:\\{)/i,/^(?:\\()/i,/^(?:\\))/i,/^(?:\\[)/i,/^(?:\\])/i,/^(?:\\?)/i,/^(?:\\*)/i,/^(?:\\+)/i,/^(?:\\|)/i,/^(?:\\^\\^)/i,/^(?:\\.)/i,/^(?:!)/i,/^(?:\\/)/i,/^(?:=)/i,/^(?:@)/i,/^(?:\\^)/i,/^(?:;)/i,/^(?:,)/i,/^(?:%)/i,/^(?:a)/i,/^(?:$)/i,/^(?:.)/i],\nconditions: {\"INITIAL\":{\"rules\":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n  this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\nmodule.exports=ShaclcParser\n","const ShaclcParser = require('./ShaclcParser').Parser;\nconst N3 = require('n3');\n\nclass Parser {\n  constructor() {\n  }\n\n  parse(str, { extendedSyntax, baseIRI } = {}) {\n    this._parser = new ShaclcParser();\n\n    this._parser.Parser.factory = N3.DataFactory;\n    this._parser.Parser.base = N3.DataFactory.namedNode(baseIRI || 'urn:x-base:default');\n    this._parser.Parser.extended = extendedSyntax === true;\n    this._parser.Parser.prefixes = {\n      rdf: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n      rdfs: 'http://www.w3.org/2000/01/rdf-schema#',\n      sh: 'http://www.w3.org/ns/shacl#',\n      xsd: 'http://www.w3.org/2001/XMLSchema#',\n      owl: 'http://www.w3.org/2002/07/owl#'\n    }\n    this._parser.Parser.currentNodeShape = undefined;\n    this._parser.Parser.currentPropertyNode = undefined;\n    this._parser.Parser.nodeShapeStack = [];\n    this._parser.Parser.tempCurrentNodeShape = undefined;\n    this._parser.Parser.n3Parser = new N3.Parser({ baseIRI: baseIRI || 'urn:x-base:default' });\n\n    const arr = []\n    this._parser.Parser.onQuad = (quad) => { arr.push(quad) };\n    this._parser.parse(str);\n    arr.prefixes = this._parser.Parser.prefixes;\n    return arr;\n  }\n}\n\nmodule.exports.Parser = Parser;\n\nmodule.exports.parse = function parse(str, options) {\n  const parser = new Parser();\n  return parser.parse(str, options)\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PrefixWrappingIterator = void 0;\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * An iterator that emits prefixes on the first read call where prefixes are available\n */\nclass PrefixWrappingIterator extends asynciterator_1.WrappingIterator {\n    constructor(source) {\n        super(source?.then((src) => {\n            this.prefixes = src.prefixes;\n            return src;\n        }));\n    }\n    read() {\n        // On the first read where the prefixes are available, emit them\n        if (this.prefixes) {\n            for (const args of Object.entries(this.prefixes)) {\n                this.emit('prefix', ...args);\n            }\n            delete this.prefixes;\n        }\n        return super.read();\n    }\n}\nexports.PrefixWrappingIterator = PrefixWrappingIterator;\n//# sourceMappingURL=PrefixWrappingIterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseShaclc = void 0;\nconst bus_rdf_parse_1 = require(\"@comunica/bus-rdf-parse\");\nconst stream_to_string_1 = require(\"@jeswr/stream-to-string\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst shaclc_parse_1 = require(\"shaclc-parse\");\nconst PrefixWrappingIterator_1 = require(\"./PrefixWrappingIterator\");\n/**\n * A comunica SHACL Compact Syntax RDF Parse Actor.\n */\nclass ActorRdfParseShaclc extends bus_rdf_parse_1.ActorRdfParseFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"text/shaclc\": 1.0,\n     *       \"text/shaclc-ext\": 0.5\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"text/shaclc\": \"http://www.w3.org/ns/formats/Shaclc\",\n     *       \"text/shaclc-ext\": \"http://www.w3.org/ns/formats/ShaclcExtended\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async runHandle(action, mediaType, _context) {\n        const prefixIterator = new PrefixWrappingIterator_1.PrefixWrappingIterator(\n        // TODO: pass data factory\n        (0, stream_to_string_1.stringify)(action.data).then(str => (0, shaclc_parse_1.parse)(str, {\n            extendedSyntax: mediaType === 'text/shaclc-ext',\n            baseIRI: action.metadata?.baseIRI,\n        })));\n        const readable = new readable_stream_1.Readable({ objectMode: true });\n        prefixIterator.on('prefix', (...args) => readable.emit('prefix', ...args));\n        return {\n            data: readable.wrap(prefixIterator),\n            metadata: { triples: true },\n        };\n    }\n}\nexports.ActorRdfParseShaclc = ActorRdfParseShaclc;\n//# sourceMappingURL=ActorRdfParseShaclc.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParseShaclc\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.htmlDecodeTree = void 0;\nexports.htmlDecodeTree = new Uint16Array(\n// prettier-ignore\n/* #__PURE__ */ \"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n    .split(\"\")\n    .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.xmlDecodeTree = void 0;\nexports.xmlDecodeTree = new Uint16Array(\n// prettier-ignore\n/* #__PURE__ */ \"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n    .split(\"\")\n    .map((c) => c.charCodeAt(0)));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCodePoint = void 0;\nexports.replaceCodePoint = replaceCodePoint;\nexports.decodeCodePoint = decodeCodePoint;\nconst decodeMap = new Map([\n    [0, 65533],\n    // C1 Unicode control character reference replacements\n    [128, 8364],\n    [130, 8218],\n    [131, 402],\n    [132, 8222],\n    [133, 8230],\n    [134, 8224],\n    [135, 8225],\n    [136, 710],\n    [137, 8240],\n    [138, 352],\n    [139, 8249],\n    [140, 338],\n    [142, 381],\n    [145, 8216],\n    [146, 8217],\n    [147, 8220],\n    [148, 8221],\n    [149, 8226],\n    [150, 8211],\n    [151, 8212],\n    [152, 732],\n    [153, 8482],\n    [154, 353],\n    [155, 8250],\n    [156, 339],\n    [158, 382],\n    [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n    let output = \"\";\n    if (codePoint > 65535) {\n        codePoint -= 65536;\n        output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296);\n        codePoint = 56320 | (codePoint & 1023);\n    }\n    output += String.fromCharCode(codePoint);\n    return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n    var _a;\n    if ((codePoint >= 55296 && codePoint <= 57343) ||\n        codePoint > 1114111) {\n        return 65533;\n    }\n    return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n    return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode-codepoint.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = void 0;\nexports.determineBranch = determineBranch;\nexports.decodeHTML = decodeHTML;\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\nexports.decodeHTMLStrict = decodeHTMLStrict;\nexports.decodeXML = decodeXML;\nconst decode_data_html_js_1 = require(\"./generated/decode-data-html.js\");\nconst decode_data_xml_js_1 = require(\"./generated/decode-data-xml.js\");\nconst decode_codepoint_js_1 = require(\"./decode-codepoint.js\");\nvar CharCodes;\n(function (CharCodes) {\n    CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n    CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n    CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n    CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n    CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n    CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n    CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n    CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n    CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n    CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n    CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n    CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n    BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (exports.BinTrieFlags = BinTrieFlags = {}));\nfunction isNumber(code) {\n    return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n        isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n    return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n    EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n    EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n    EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n    /** Entities in text nodes that can end with any character. */\n    DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n    /** Only allow entities terminated with a semicolon. */\n    DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n    /** Entities in attributes have limitations on ending characters. */\n    DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (exports.DecodingMode = DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nclass EntityDecoder {\n    constructor(\n    /** The tree used to decode entities. */\n    decodeTree, \n    /**\n     * The function that is called when a codepoint is decoded.\n     *\n     * For multi-byte named entities, this will be called multiple times,\n     * with the second codepoint, and the same `consumed` value.\n     *\n     * @param codepoint The decoded codepoint.\n     * @param consumed The number of bytes consumed by the decoder.\n     */\n    emitCodePoint, \n    /** An object that is used to produce errors. */\n    errors) {\n        this.decodeTree = decodeTree;\n        this.emitCodePoint = emitCodePoint;\n        this.errors = errors;\n        /** The current state of the decoder. */\n        this.state = EntityDecoderState.EntityStart;\n        /** Characters that were consumed while parsing an entity. */\n        this.consumed = 1;\n        /**\n         * The result of the entity.\n         *\n         * Either the result index of a numeric entity, or the codepoint of a\n         * numeric entity.\n         */\n        this.result = 0;\n        /** The current index in the decode tree. */\n        this.treeIndex = 0;\n        /** The number of characters that were consumed in excess. */\n        this.excess = 1;\n        /** The mode in which the decoder is operating. */\n        this.decodeMode = DecodingMode.Strict;\n    }\n    /** Resets the instance to make it reusable. */\n    startEntity(decodeMode) {\n        this.decodeMode = decodeMode;\n        this.state = EntityDecoderState.EntityStart;\n        this.result = 0;\n        this.treeIndex = 0;\n        this.excess = 1;\n        this.consumed = 1;\n    }\n    /**\n     * Write an entity to the decoder. This can be called multiple times with partial entities.\n     * If the entity is incomplete, the decoder will return -1.\n     *\n     * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n     * entity is incomplete, and resume when the next string is written.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    write(input, offset) {\n        switch (this.state) {\n            case EntityDecoderState.EntityStart: {\n                if (input.charCodeAt(offset) === CharCodes.NUM) {\n                    this.state = EntityDecoderState.NumericStart;\n                    this.consumed += 1;\n                    return this.stateNumericStart(input, offset + 1);\n                }\n                this.state = EntityDecoderState.NamedEntity;\n                return this.stateNamedEntity(input, offset);\n            }\n            case EntityDecoderState.NumericStart: {\n                return this.stateNumericStart(input, offset);\n            }\n            case EntityDecoderState.NumericDecimal: {\n                return this.stateNumericDecimal(input, offset);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.stateNumericHex(input, offset);\n            }\n            case EntityDecoderState.NamedEntity: {\n                return this.stateNamedEntity(input, offset);\n            }\n        }\n    }\n    /**\n     * Switches between the numeric decimal and hexadecimal states.\n     *\n     * Equivalent to the `Numeric character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericStart(input, offset) {\n        if (offset >= input.length) {\n            return -1;\n        }\n        if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n            this.state = EntityDecoderState.NumericHex;\n            this.consumed += 1;\n            return this.stateNumericHex(input, offset + 1);\n        }\n        this.state = EntityDecoderState.NumericDecimal;\n        return this.stateNumericDecimal(input, offset);\n    }\n    addToNumericResult(input, start, end, base) {\n        if (start !== end) {\n            const digitCount = end - start;\n            this.result =\n                this.result * Math.pow(base, digitCount) +\n                    Number.parseInt(input.substr(start, digitCount), base);\n            this.consumed += digitCount;\n        }\n    }\n    /**\n     * Parses a hexadecimal numeric entity.\n     *\n     * Equivalent to the `Hexademical character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericHex(input, offset) {\n        const startIndex = offset;\n        while (offset < input.length) {\n            const char = input.charCodeAt(offset);\n            if (isNumber(char) || isHexadecimalCharacter(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(input, startIndex, offset, 16);\n                return this.emitNumericEntity(char, 3);\n            }\n        }\n        this.addToNumericResult(input, startIndex, offset, 16);\n        return -1;\n    }\n    /**\n     * Parses a decimal numeric entity.\n     *\n     * Equivalent to the `Decimal character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericDecimal(input, offset) {\n        const startIndex = offset;\n        while (offset < input.length) {\n            const char = input.charCodeAt(offset);\n            if (isNumber(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(input, startIndex, offset, 10);\n                return this.emitNumericEntity(char, 2);\n            }\n        }\n        this.addToNumericResult(input, startIndex, offset, 10);\n        return -1;\n    }\n    /**\n     * Validate and emit a numeric entity.\n     *\n     * Implements the logic from the `Hexademical character reference start\n     * state` and `Numeric character reference end state` in the HTML spec.\n     *\n     * @param lastCp The last code point of the entity. Used to see if the\n     *               entity was terminated with a semicolon.\n     * @param expectedLength The minimum number of characters that should be\n     *                       consumed. Used to validate that at least one digit\n     *                       was consumed.\n     * @returns The number of characters that were consumed.\n     */\n    emitNumericEntity(lastCp, expectedLength) {\n        var _a;\n        // Ensure we consumed at least one digit.\n        if (this.consumed <= expectedLength) {\n            (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n            return 0;\n        }\n        // Figure out if this is a legit end of the entity\n        if (lastCp === CharCodes.SEMI) {\n            this.consumed += 1;\n        }\n        else if (this.decodeMode === DecodingMode.Strict) {\n            return 0;\n        }\n        this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n        if (this.errors) {\n            if (lastCp !== CharCodes.SEMI) {\n                this.errors.missingSemicolonAfterCharacterReference();\n            }\n            this.errors.validateNumericCharacterReference(this.result);\n        }\n        return this.consumed;\n    }\n    /**\n     * Parses a named entity.\n     *\n     * Equivalent to the `Named character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNamedEntity(input, offset) {\n        const { decodeTree } = this;\n        let current = decodeTree[this.treeIndex];\n        // The mask is the number of bytes of the value, including the current byte.\n        let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n        for (; offset < input.length; offset++, this.excess++) {\n            const char = input.charCodeAt(offset);\n            this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n            if (this.treeIndex < 0) {\n                return this.result === 0 ||\n                    // If we are parsing an attribute\n                    (this.decodeMode === DecodingMode.Attribute &&\n                        // We shouldn't have consumed any characters after the entity,\n                        (valueLength === 0 ||\n                            // And there should be no invalid characters.\n                            isEntityInAttributeInvalidEnd(char)))\n                    ? 0\n                    : this.emitNotTerminatedNamedEntity();\n            }\n            current = decodeTree[this.treeIndex];\n            valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n            // If the branch is a value, store it and continue\n            if (valueLength !== 0) {\n                // If the entity is terminated by a semicolon, we are done.\n                if (char === CharCodes.SEMI) {\n                    return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n                }\n                // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n                if (this.decodeMode !== DecodingMode.Strict) {\n                    this.result = this.treeIndex;\n                    this.consumed += this.excess;\n                    this.excess = 0;\n                }\n            }\n        }\n        return -1;\n    }\n    /**\n     * Emit a named entity that was not terminated with a semicolon.\n     *\n     * @returns The number of characters consumed.\n     */\n    emitNotTerminatedNamedEntity() {\n        var _a;\n        const { result, decodeTree } = this;\n        const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n        this.emitNamedEntityData(result, valueLength, this.consumed);\n        (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n        return this.consumed;\n    }\n    /**\n     * Emit a named entity.\n     *\n     * @param result The index of the entity in the decode tree.\n     * @param valueLength The number of bytes in the entity.\n     * @param consumed The number of characters consumed.\n     *\n     * @returns The number of characters consumed.\n     */\n    emitNamedEntityData(result, valueLength, consumed) {\n        const { decodeTree } = this;\n        this.emitCodePoint(valueLength === 1\n            ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n            : decodeTree[result + 1], consumed);\n        if (valueLength === 3) {\n            // For multi-byte values, we need to emit the second byte.\n            this.emitCodePoint(decodeTree[result + 2], consumed);\n        }\n        return consumed;\n    }\n    /**\n     * Signal to the parser that the end of the input was reached.\n     *\n     * Remaining data will be emitted and relevant errors will be produced.\n     *\n     * @returns The number of characters consumed.\n     */\n    end() {\n        var _a;\n        switch (this.state) {\n            case EntityDecoderState.NamedEntity: {\n                // Emit a named entity if we have one.\n                return this.result !== 0 &&\n                    (this.decodeMode !== DecodingMode.Attribute ||\n                        this.result === this.treeIndex)\n                    ? this.emitNotTerminatedNamedEntity()\n                    : 0;\n            }\n            // Otherwise, emit a numeric entity if we have one.\n            case EntityDecoderState.NumericDecimal: {\n                return this.emitNumericEntity(0, 2);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.emitNumericEntity(0, 3);\n            }\n            case EntityDecoderState.NumericStart: {\n                (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n                return 0;\n            }\n            case EntityDecoderState.EntityStart: {\n                // Return 0 if we have no entity.\n                return 0;\n            }\n        }\n    }\n}\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n    let returnValue = \"\";\n    const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += (0, decode_codepoint_js_1.fromCodePoint)(data)));\n    return function decodeWithTrie(input, decodeMode) {\n        let lastIndex = 0;\n        let offset = 0;\n        while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n            returnValue += input.slice(lastIndex, offset);\n            decoder.startEntity(decodeMode);\n            const length = decoder.write(input, \n            // Skip the \"&\"\n            offset + 1);\n            if (length < 0) {\n                lastIndex = offset + decoder.end();\n                break;\n            }\n            lastIndex = offset + length;\n            // If `length` is 0, skip the current `&` and continue.\n            offset = length === 0 ? lastIndex + 1 : lastIndex;\n        }\n        const result = returnValue + input.slice(lastIndex);\n        // Make sure we don't keep a reference to the final string.\n        returnValue = \"\";\n        return result;\n    };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIndex, char) {\n    const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n    const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n    // Case 1: Single branch encoded in jump offset\n    if (branchCount === 0) {\n        return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n    }\n    // Case 2: Multiple branches encoded in jump table\n    if (jumpOffset) {\n        const value = char - jumpOffset;\n        return value < 0 || value >= branchCount\n            ? -1\n            : decodeTree[nodeIndex + value] - 1;\n    }\n    // Case 3: Multiple branches encoded in dictionary\n    // Binary search for the character.\n    let lo = nodeIndex;\n    let hi = lo + branchCount - 1;\n    while (lo <= hi) {\n        const mid = (lo + hi) >>> 1;\n        const midValue = decodeTree[mid];\n        if (midValue < char) {\n            lo = mid + 1;\n        }\n        else if (midValue > char) {\n            hi = mid - 1;\n        }\n        else {\n            return decodeTree[mid + branchCount];\n        }\n    }\n    return -1;\n}\nconst htmlDecoder = /* #__PURE__ */ getDecoder(decode_data_html_js_1.htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(decode_data_xml_js_1.xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param htmlString The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(htmlString, mode = DecodingMode.Legacy) {\n    return htmlDecoder(htmlString, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param htmlAttribute The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(htmlAttribute) {\n    return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param htmlString The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(htmlString) {\n    return htmlDecoder(htmlString, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param xmlString The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(xmlString) {\n    return xmlDecoder(xmlString, DecodingMode.Strict);\n}\n// Re-export for use by eg. htmlparser2\nvar decode_data_html_js_2 = require(\"./generated/decode-data-html.js\");\nObject.defineProperty(exports, \"htmlDecodeTree\", { enumerable: true, get: function () { return decode_data_html_js_2.htmlDecodeTree; } });\nvar decode_data_xml_js_2 = require(\"./generated/decode-data-xml.js\");\nObject.defineProperty(exports, \"xmlDecodeTree\", { enumerable: true, get: function () { return decode_data_xml_js_2.xmlDecodeTree; } });\nvar decode_codepoint_js_2 = require(\"./decode-codepoint.js\");\nObject.defineProperty(exports, \"decodeCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.decodeCodePoint; } });\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\n//# sourceMappingURL=decode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nconst decode_1 = require(\"entities/decode\");\nvar CharCodes;\n(function (CharCodes) {\n    CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n    CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n    CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n    CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n    CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n    CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n    CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n    CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n    CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n    CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n    CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n    CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n    CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n    CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n    CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n    CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n    CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n    CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n    CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n    CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n    CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n    CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n    CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n    CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n    CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n    CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n    CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n    State[State[\"Text\"] = 1] = \"Text\";\n    State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n    State[State[\"InTagName\"] = 3] = \"InTagName\";\n    State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n    State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n    State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n    State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n    // Attributes\n    State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n    State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n    State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n    State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n    State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n    State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n    State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n    // Declarations\n    State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n    State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n    // Processing instructions\n    State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n    // Comments & CDATA\n    State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n    State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n    State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n    State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n    // Special tags\n    State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n    State[State[\"BeforeSpecialT\"] = 23] = \"BeforeSpecialT\";\n    State[State[\"SpecialStartSequence\"] = 24] = \"SpecialStartSequence\";\n    State[State[\"InSpecialTag\"] = 25] = \"InSpecialTag\";\n    State[State[\"InEntity\"] = 26] = \"InEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n    return (c === CharCodes.Space ||\n        c === CharCodes.NewLine ||\n        c === CharCodes.Tab ||\n        c === CharCodes.FormFeed ||\n        c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n    return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isASCIIAlpha(c) {\n    return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n        (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nvar QuoteType;\n(function (QuoteType) {\n    QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n    QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n    QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n    QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType || (exports.QuoteType = QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nconst Sequences = {\n    Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]), // CDATA[\n    CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]), // ]]>\n    CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]), // `-->`\n    ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]), // `</script`\n    StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]), // `</style`\n    TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n    TextareaEnd: new Uint8Array([\n        0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61,\n    ]), // `</textarea`\n    XmpEnd: new Uint8Array([0x3c, 0x2f, 0x78, 0x6d, 0x70]), // `</xmp`\n};\nclass Tokenizer {\n    constructor({ xmlMode = false, decodeEntities = true, }, cbs) {\n        this.cbs = cbs;\n        /** The current state the tokenizer is in. */\n        this.state = State.Text;\n        /** The read buffer. */\n        this.buffer = \"\";\n        /** The beginning of the section that is currently being read. */\n        this.sectionStart = 0;\n        /** The index within the buffer that we are currently looking at. */\n        this.index = 0;\n        /** The start of the last entity. */\n        this.entityStart = 0;\n        /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n        this.baseState = State.Text;\n        /** For special parsing behavior inside of script and style tags. */\n        this.isSpecial = false;\n        /** Indicates whether the tokenizer has been paused. */\n        this.running = true;\n        /** The offset of the current buffer. */\n        this.offset = 0;\n        this.currentSequence = undefined;\n        this.sequenceIndex = 0;\n        this.xmlMode = xmlMode;\n        this.decodeEntities = decodeEntities;\n        this.entityDecoder = new decode_1.EntityDecoder(xmlMode ? decode_1.xmlDecodeTree : decode_1.htmlDecodeTree, (cp, consumed) => this.emitCodePoint(cp, consumed));\n    }\n    reset() {\n        this.state = State.Text;\n        this.buffer = \"\";\n        this.sectionStart = 0;\n        this.index = 0;\n        this.baseState = State.Text;\n        this.currentSequence = undefined;\n        this.running = true;\n        this.offset = 0;\n    }\n    write(chunk) {\n        this.offset += this.buffer.length;\n        this.buffer = chunk;\n        this.parse();\n    }\n    end() {\n        if (this.running)\n            this.finish();\n    }\n    pause() {\n        this.running = false;\n    }\n    resume() {\n        this.running = true;\n        if (this.index < this.buffer.length + this.offset) {\n            this.parse();\n        }\n    }\n    stateText(c) {\n        if (c === CharCodes.Lt ||\n            (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n            if (this.index > this.sectionStart) {\n                this.cbs.ontext(this.sectionStart, this.index);\n            }\n            this.state = State.BeforeTagName;\n            this.sectionStart = this.index;\n        }\n        else if (this.decodeEntities && c === CharCodes.Amp) {\n            this.startEntity();\n        }\n    }\n    stateSpecialStartSequence(c) {\n        const isEnd = this.sequenceIndex === this.currentSequence.length;\n        const isMatch = isEnd\n            ? // If we are at the end of the sequence, make sure the tag name has ended\n                isEndOfTagSection(c)\n            : // Otherwise, do a case-insensitive comparison\n                (c | 0x20) === this.currentSequence[this.sequenceIndex];\n        if (!isMatch) {\n            this.isSpecial = false;\n        }\n        else if (!isEnd) {\n            this.sequenceIndex++;\n            return;\n        }\n        this.sequenceIndex = 0;\n        this.state = State.InTagName;\n        this.stateInTagName(c);\n    }\n    /** Look for an end tag. For <title> tags, also decode entities. */\n    stateInSpecialTag(c) {\n        if (this.sequenceIndex === this.currentSequence.length) {\n            if (c === CharCodes.Gt || isWhitespace(c)) {\n                const endOfText = this.index - this.currentSequence.length;\n                if (this.sectionStart < endOfText) {\n                    // Spoof the index so that reported locations match up.\n                    const actualIndex = this.index;\n                    this.index = endOfText;\n                    this.cbs.ontext(this.sectionStart, endOfText);\n                    this.index = actualIndex;\n                }\n                this.isSpecial = false;\n                this.sectionStart = endOfText + 2; // Skip over the `</`\n                this.stateInClosingTagName(c);\n                return; // We are done; skip the rest of the function.\n            }\n            this.sequenceIndex = 0;\n        }\n        if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n            this.sequenceIndex += 1;\n        }\n        else if (this.sequenceIndex === 0) {\n            if (this.currentSequence === Sequences.TitleEnd) {\n                // We have to parse entities in <title> tags.\n                if (this.decodeEntities && c === CharCodes.Amp) {\n                    this.startEntity();\n                }\n            }\n            else if (this.fastForwardTo(CharCodes.Lt)) {\n                // Outside of <title> tags, we can fast-forward.\n                this.sequenceIndex = 1;\n            }\n        }\n        else {\n            // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n            this.sequenceIndex = Number(c === CharCodes.Lt);\n        }\n    }\n    stateCDATASequence(c) {\n        if (c === Sequences.Cdata[this.sequenceIndex]) {\n            if (++this.sequenceIndex === Sequences.Cdata.length) {\n                this.state = State.InCommentLike;\n                this.currentSequence = Sequences.CdataEnd;\n                this.sequenceIndex = 0;\n                this.sectionStart = this.index + 1;\n            }\n        }\n        else {\n            this.sequenceIndex = 0;\n            this.state = State.InDeclaration;\n            this.stateInDeclaration(c); // Reconsume the character\n        }\n    }\n    /**\n     * When we wait for one specific character, we can speed things up\n     * by skipping through the buffer until we find it.\n     *\n     * @returns Whether the character was found.\n     */\n    fastForwardTo(c) {\n        while (++this.index < this.buffer.length + this.offset) {\n            if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n                return true;\n            }\n        }\n        /*\n         * We increment the index at the end of the `parse` loop,\n         * so set it to `buffer.length - 1` here.\n         *\n         * TODO: Refactor `parse` to increment index before calling states.\n         */\n        this.index = this.buffer.length + this.offset - 1;\n        return false;\n    }\n    /**\n     * Comments and CDATA end with `-->` and `]]>`.\n     *\n     * Their common qualities are:\n     * - Their end sequences have a distinct character they start with.\n     * - That character is then repeated, so we have to check multiple repeats.\n     * - All characters but the start character of the sequence can be skipped.\n     */\n    stateInCommentLike(c) {\n        if (c === this.currentSequence[this.sequenceIndex]) {\n            if (++this.sequenceIndex === this.currentSequence.length) {\n                if (this.currentSequence === Sequences.CdataEnd) {\n                    this.cbs.oncdata(this.sectionStart, this.index, 2);\n                }\n                else {\n                    this.cbs.oncomment(this.sectionStart, this.index, 2);\n                }\n                this.sequenceIndex = 0;\n                this.sectionStart = this.index + 1;\n                this.state = State.Text;\n            }\n        }\n        else if (this.sequenceIndex === 0) {\n            // Fast-forward to the first character of the sequence\n            if (this.fastForwardTo(this.currentSequence[0])) {\n                this.sequenceIndex = 1;\n            }\n        }\n        else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n            // Allow long sequences, eg. --->, ]]]>\n            this.sequenceIndex = 0;\n        }\n    }\n    /**\n     * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n     *\n     * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n     * We allow anything that wouldn't end the tag.\n     */\n    isTagStartChar(c) {\n        return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n    }\n    startSpecial(sequence, offset) {\n        this.isSpecial = true;\n        this.currentSequence = sequence;\n        this.sequenceIndex = offset;\n        this.state = State.SpecialStartSequence;\n    }\n    stateBeforeTagName(c) {\n        if (c === CharCodes.ExclamationMark) {\n            this.state = State.BeforeDeclaration;\n            this.sectionStart = this.index + 1;\n        }\n        else if (c === CharCodes.Questionmark) {\n            this.state = State.InProcessingInstruction;\n            this.sectionStart = this.index + 1;\n        }\n        else if (this.isTagStartChar(c)) {\n            const lower = c | 0x20;\n            this.sectionStart = this.index;\n            if (this.xmlMode) {\n                this.state = State.InTagName;\n            }\n            else if (lower === Sequences.ScriptEnd[2]) {\n                this.state = State.BeforeSpecialS;\n            }\n            else if (lower === Sequences.TitleEnd[2] ||\n                lower === Sequences.XmpEnd[2]) {\n                this.state = State.BeforeSpecialT;\n            }\n            else {\n                this.state = State.InTagName;\n            }\n        }\n        else if (c === CharCodes.Slash) {\n            this.state = State.BeforeClosingTagName;\n        }\n        else {\n            this.state = State.Text;\n            this.stateText(c);\n        }\n    }\n    stateInTagName(c) {\n        if (isEndOfTagSection(c)) {\n            this.cbs.onopentagname(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n    }\n    stateBeforeClosingTagName(c) {\n        if (isWhitespace(c)) {\n            // Ignore\n        }\n        else if (c === CharCodes.Gt) {\n            this.state = State.Text;\n        }\n        else {\n            this.state = this.isTagStartChar(c)\n                ? State.InClosingTagName\n                : State.InSpecialComment;\n            this.sectionStart = this.index;\n        }\n    }\n    stateInClosingTagName(c) {\n        if (c === CharCodes.Gt || isWhitespace(c)) {\n            this.cbs.onclosetag(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.state = State.AfterClosingTagName;\n            this.stateAfterClosingTagName(c);\n        }\n    }\n    stateAfterClosingTagName(c) {\n        // Skip everything until \">\"\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    }\n    stateBeforeAttributeName(c) {\n        if (c === CharCodes.Gt) {\n            this.cbs.onopentagend(this.index);\n            if (this.isSpecial) {\n                this.state = State.InSpecialTag;\n                this.sequenceIndex = 0;\n            }\n            else {\n                this.state = State.Text;\n            }\n            this.sectionStart = this.index + 1;\n        }\n        else if (c === CharCodes.Slash) {\n            this.state = State.InSelfClosingTag;\n        }\n        else if (!isWhitespace(c)) {\n            this.state = State.InAttributeName;\n            this.sectionStart = this.index;\n        }\n    }\n    stateInSelfClosingTag(c) {\n        if (c === CharCodes.Gt) {\n            this.cbs.onselfclosingtag(this.index);\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n            this.isSpecial = false; // Reset special state, in case of self-closing special tags\n        }\n        else if (!isWhitespace(c)) {\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n    }\n    stateInAttributeName(c) {\n        if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n            this.cbs.onattribname(this.sectionStart, this.index);\n            this.sectionStart = this.index;\n            this.state = State.AfterAttributeName;\n            this.stateAfterAttributeName(c);\n        }\n    }\n    stateAfterAttributeName(c) {\n        if (c === CharCodes.Eq) {\n            this.state = State.BeforeAttributeValue;\n        }\n        else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n            this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n            this.sectionStart = -1;\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n        else if (!isWhitespace(c)) {\n            this.cbs.onattribend(QuoteType.NoValue, this.sectionStart);\n            this.state = State.InAttributeName;\n            this.sectionStart = this.index;\n        }\n    }\n    stateBeforeAttributeValue(c) {\n        if (c === CharCodes.DoubleQuote) {\n            this.state = State.InAttributeValueDq;\n            this.sectionStart = this.index + 1;\n        }\n        else if (c === CharCodes.SingleQuote) {\n            this.state = State.InAttributeValueSq;\n            this.sectionStart = this.index + 1;\n        }\n        else if (!isWhitespace(c)) {\n            this.sectionStart = this.index;\n            this.state = State.InAttributeValueNq;\n            this.stateInAttributeValueNoQuotes(c); // Reconsume token\n        }\n    }\n    handleInAttributeValue(c, quote) {\n        if (c === quote ||\n            (!this.decodeEntities && this.fastForwardTo(quote))) {\n            this.cbs.onattribdata(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.cbs.onattribend(quote === CharCodes.DoubleQuote\n                ? QuoteType.Double\n                : QuoteType.Single, this.index + 1);\n            this.state = State.BeforeAttributeName;\n        }\n        else if (this.decodeEntities && c === CharCodes.Amp) {\n            this.startEntity();\n        }\n    }\n    stateInAttributeValueDoubleQuotes(c) {\n        this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n    }\n    stateInAttributeValueSingleQuotes(c) {\n        this.handleInAttributeValue(c, CharCodes.SingleQuote);\n    }\n    stateInAttributeValueNoQuotes(c) {\n        if (isWhitespace(c) || c === CharCodes.Gt) {\n            this.cbs.onattribdata(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.cbs.onattribend(QuoteType.Unquoted, this.index);\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n        else if (this.decodeEntities && c === CharCodes.Amp) {\n            this.startEntity();\n        }\n    }\n    stateBeforeDeclaration(c) {\n        if (c === CharCodes.OpeningSquareBracket) {\n            this.state = State.CDATASequence;\n            this.sequenceIndex = 0;\n        }\n        else {\n            this.state =\n                c === CharCodes.Dash\n                    ? State.BeforeComment\n                    : State.InDeclaration;\n        }\n    }\n    stateInDeclaration(c) {\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.cbs.ondeclaration(this.sectionStart, this.index);\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    }\n    stateInProcessingInstruction(c) {\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    }\n    stateBeforeComment(c) {\n        if (c === CharCodes.Dash) {\n            this.state = State.InCommentLike;\n            this.currentSequence = Sequences.CommentEnd;\n            // Allow short comments (eg. <!-->)\n            this.sequenceIndex = 2;\n            this.sectionStart = this.index + 1;\n        }\n        else {\n            this.state = State.InDeclaration;\n        }\n    }\n    stateInSpecialComment(c) {\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.cbs.oncomment(this.sectionStart, this.index, 0);\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    }\n    stateBeforeSpecialS(c) {\n        const lower = c | 0x20;\n        if (lower === Sequences.ScriptEnd[3]) {\n            this.startSpecial(Sequences.ScriptEnd, 4);\n        }\n        else if (lower === Sequences.StyleEnd[3]) {\n            this.startSpecial(Sequences.StyleEnd, 4);\n        }\n        else {\n            this.state = State.InTagName;\n            this.stateInTagName(c); // Consume the token again\n        }\n    }\n    stateBeforeSpecialT(c) {\n        const lower = c | 0x20;\n        switch (lower) {\n            case Sequences.TitleEnd[3]: {\n                this.startSpecial(Sequences.TitleEnd, 4);\n                break;\n            }\n            case Sequences.TextareaEnd[3]: {\n                this.startSpecial(Sequences.TextareaEnd, 4);\n                break;\n            }\n            case Sequences.XmpEnd[3]: {\n                this.startSpecial(Sequences.XmpEnd, 4);\n                break;\n            }\n            default: {\n                this.state = State.InTagName;\n                this.stateInTagName(c); // Consume the token again\n            }\n        }\n    }\n    startEntity() {\n        this.baseState = this.state;\n        this.state = State.InEntity;\n        this.entityStart = this.index;\n        this.entityDecoder.startEntity(this.xmlMode\n            ? decode_1.DecodingMode.Strict\n            : this.baseState === State.Text ||\n                this.baseState === State.InSpecialTag\n                ? decode_1.DecodingMode.Legacy\n                : decode_1.DecodingMode.Attribute);\n    }\n    stateInEntity() {\n        const length = this.entityDecoder.write(this.buffer, this.index - this.offset);\n        // If `length` is positive, we are done with the entity.\n        if (length >= 0) {\n            this.state = this.baseState;\n            if (length === 0) {\n                this.index = this.entityStart;\n            }\n        }\n        else {\n            // Mark buffer as consumed.\n            this.index = this.offset + this.buffer.length - 1;\n        }\n    }\n    /**\n     * Remove data that has already been consumed from the buffer.\n     */\n    cleanup() {\n        // If we are inside of text or attributes, emit what we already have.\n        if (this.running && this.sectionStart !== this.index) {\n            if (this.state === State.Text ||\n                (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n                this.cbs.ontext(this.sectionStart, this.index);\n                this.sectionStart = this.index;\n            }\n            else if (this.state === State.InAttributeValueDq ||\n                this.state === State.InAttributeValueSq ||\n                this.state === State.InAttributeValueNq) {\n                this.cbs.onattribdata(this.sectionStart, this.index);\n                this.sectionStart = this.index;\n            }\n        }\n    }\n    shouldContinue() {\n        return this.index < this.buffer.length + this.offset && this.running;\n    }\n    /**\n     * Iterates through the buffer, calling the function corresponding to the current state.\n     *\n     * States that are more likely to be hit are higher up, as a performance improvement.\n     */\n    parse() {\n        while (this.shouldContinue()) {\n            const c = this.buffer.charCodeAt(this.index - this.offset);\n            switch (this.state) {\n                case State.Text: {\n                    this.stateText(c);\n                    break;\n                }\n                case State.SpecialStartSequence: {\n                    this.stateSpecialStartSequence(c);\n                    break;\n                }\n                case State.InSpecialTag: {\n                    this.stateInSpecialTag(c);\n                    break;\n                }\n                case State.CDATASequence: {\n                    this.stateCDATASequence(c);\n                    break;\n                }\n                case State.InAttributeValueDq: {\n                    this.stateInAttributeValueDoubleQuotes(c);\n                    break;\n                }\n                case State.InAttributeName: {\n                    this.stateInAttributeName(c);\n                    break;\n                }\n                case State.InCommentLike: {\n                    this.stateInCommentLike(c);\n                    break;\n                }\n                case State.InSpecialComment: {\n                    this.stateInSpecialComment(c);\n                    break;\n                }\n                case State.BeforeAttributeName: {\n                    this.stateBeforeAttributeName(c);\n                    break;\n                }\n                case State.InTagName: {\n                    this.stateInTagName(c);\n                    break;\n                }\n                case State.InClosingTagName: {\n                    this.stateInClosingTagName(c);\n                    break;\n                }\n                case State.BeforeTagName: {\n                    this.stateBeforeTagName(c);\n                    break;\n                }\n                case State.AfterAttributeName: {\n                    this.stateAfterAttributeName(c);\n                    break;\n                }\n                case State.InAttributeValueSq: {\n                    this.stateInAttributeValueSingleQuotes(c);\n                    break;\n                }\n                case State.BeforeAttributeValue: {\n                    this.stateBeforeAttributeValue(c);\n                    break;\n                }\n                case State.BeforeClosingTagName: {\n                    this.stateBeforeClosingTagName(c);\n                    break;\n                }\n                case State.AfterClosingTagName: {\n                    this.stateAfterClosingTagName(c);\n                    break;\n                }\n                case State.BeforeSpecialS: {\n                    this.stateBeforeSpecialS(c);\n                    break;\n                }\n                case State.BeforeSpecialT: {\n                    this.stateBeforeSpecialT(c);\n                    break;\n                }\n                case State.InAttributeValueNq: {\n                    this.stateInAttributeValueNoQuotes(c);\n                    break;\n                }\n                case State.InSelfClosingTag: {\n                    this.stateInSelfClosingTag(c);\n                    break;\n                }\n                case State.InDeclaration: {\n                    this.stateInDeclaration(c);\n                    break;\n                }\n                case State.BeforeDeclaration: {\n                    this.stateBeforeDeclaration(c);\n                    break;\n                }\n                case State.BeforeComment: {\n                    this.stateBeforeComment(c);\n                    break;\n                }\n                case State.InProcessingInstruction: {\n                    this.stateInProcessingInstruction(c);\n                    break;\n                }\n                case State.InEntity: {\n                    this.stateInEntity();\n                    break;\n                }\n            }\n            this.index++;\n        }\n        this.cleanup();\n    }\n    finish() {\n        if (this.state === State.InEntity) {\n            this.entityDecoder.end();\n            this.state = this.baseState;\n        }\n        this.handleTrailingData();\n        this.cbs.onend();\n    }\n    /** Handle any trailing data. */\n    handleTrailingData() {\n        const endIndex = this.buffer.length + this.offset;\n        // If there is no remaining data, we are done.\n        if (this.sectionStart >= endIndex) {\n            return;\n        }\n        if (this.state === State.InCommentLike) {\n            if (this.currentSequence === Sequences.CdataEnd) {\n                this.cbs.oncdata(this.sectionStart, endIndex, 0);\n            }\n            else {\n                this.cbs.oncomment(this.sectionStart, endIndex, 0);\n            }\n        }\n        else if (this.state === State.InTagName ||\n            this.state === State.BeforeAttributeName ||\n            this.state === State.BeforeAttributeValue ||\n            this.state === State.AfterAttributeName ||\n            this.state === State.InAttributeName ||\n            this.state === State.InAttributeValueSq ||\n            this.state === State.InAttributeValueDq ||\n            this.state === State.InAttributeValueNq ||\n            this.state === State.InClosingTagName) {\n            /*\n             * If we are currently in an opening or closing tag, us not calling the\n             * respective callback signals that the tag should be ignored.\n             */\n        }\n        else {\n            this.cbs.ontext(this.sectionStart, endIndex);\n        }\n    }\n    emitCodePoint(cp, consumed) {\n        if (this.baseState !== State.Text &&\n            this.baseState !== State.InSpecialTag) {\n            if (this.sectionStart < this.entityStart) {\n                this.cbs.onattribdata(this.sectionStart, this.entityStart);\n            }\n            this.sectionStart = this.entityStart + consumed;\n            this.index = this.sectionStart - 1;\n            this.cbs.onattribentity(cp);\n        }\n        else {\n            if (this.sectionStart < this.entityStart) {\n                this.cbs.ontext(this.sectionStart, this.entityStart);\n            }\n            this.sectionStart = this.entityStart + consumed;\n            this.index = this.sectionStart - 1;\n            this.cbs.ontextentity(cp, this.sectionStart);\n        }\n    }\n}\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n    var ownKeys = function(o) {\n        ownKeys = Object.getOwnPropertyNames || function (o) {\n            var ar = [];\n            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n            return ar;\n        };\n        return ownKeys(o);\n    };\n    return function (mod) {\n        if (mod && mod.__esModule) return mod;\n        var result = {};\n        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n        __setModuleDefault(result, mod);\n        return result;\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nconst Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nconst decode_1 = require(\"entities/decode\");\nconst formTags = new Set([\n    \"input\",\n    \"option\",\n    \"optgroup\",\n    \"select\",\n    \"button\",\n    \"datalist\",\n    \"textarea\",\n]);\nconst pTag = new Set([\"p\"]);\nconst tableSectionTags = new Set([\"thead\", \"tbody\"]);\nconst ddtTags = new Set([\"dd\", \"dt\"]);\nconst rtpTags = new Set([\"rt\", \"rp\"]);\nconst openImpliesClose = new Map([\n    [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n    [\"th\", new Set([\"th\"])],\n    [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n    [\"body\", new Set([\"head\", \"link\", \"script\"])],\n    [\"li\", new Set([\"li\"])],\n    [\"p\", pTag],\n    [\"h1\", pTag],\n    [\"h2\", pTag],\n    [\"h3\", pTag],\n    [\"h4\", pTag],\n    [\"h5\", pTag],\n    [\"h6\", pTag],\n    [\"select\", formTags],\n    [\"input\", formTags],\n    [\"output\", formTags],\n    [\"button\", formTags],\n    [\"datalist\", formTags],\n    [\"textarea\", formTags],\n    [\"option\", new Set([\"option\"])],\n    [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n    [\"dd\", ddtTags],\n    [\"dt\", ddtTags],\n    [\"address\", pTag],\n    [\"article\", pTag],\n    [\"aside\", pTag],\n    [\"blockquote\", pTag],\n    [\"details\", pTag],\n    [\"div\", pTag],\n    [\"dl\", pTag],\n    [\"fieldset\", pTag],\n    [\"figcaption\", pTag],\n    [\"figure\", pTag],\n    [\"footer\", pTag],\n    [\"form\", pTag],\n    [\"header\", pTag],\n    [\"hr\", pTag],\n    [\"main\", pTag],\n    [\"nav\", pTag],\n    [\"ol\", pTag],\n    [\"pre\", pTag],\n    [\"section\", pTag],\n    [\"table\", pTag],\n    [\"ul\", pTag],\n    [\"rt\", rtpTags],\n    [\"rp\", rtpTags],\n    [\"tbody\", tableSectionTags],\n    [\"tfoot\", tableSectionTags],\n]);\nconst voidElements = new Set([\n    \"area\",\n    \"base\",\n    \"basefont\",\n    \"br\",\n    \"col\",\n    \"command\",\n    \"embed\",\n    \"frame\",\n    \"hr\",\n    \"img\",\n    \"input\",\n    \"isindex\",\n    \"keygen\",\n    \"link\",\n    \"meta\",\n    \"param\",\n    \"source\",\n    \"track\",\n    \"wbr\",\n]);\nconst foreignContextElements = new Set([\"math\", \"svg\"]);\nconst htmlIntegrationElements = new Set([\n    \"mi\",\n    \"mo\",\n    \"mn\",\n    \"ms\",\n    \"mtext\",\n    \"annotation-xml\",\n    \"foreignobject\",\n    \"desc\",\n    \"title\",\n]);\nconst reNameEnd = /\\s|\\//;\nclass Parser {\n    constructor(cbs, options = {}) {\n        var _a, _b, _c, _d, _e, _f;\n        this.options = options;\n        /** The start index of the last event. */\n        this.startIndex = 0;\n        /** The end index of the last event. */\n        this.endIndex = 0;\n        /**\n         * Store the start index of the current open tag,\n         * so we can update the start index for attributes.\n         */\n        this.openTagStart = 0;\n        this.tagname = \"\";\n        this.attribname = \"\";\n        this.attribvalue = \"\";\n        this.attribs = null;\n        this.stack = [];\n        this.buffers = [];\n        this.bufferOffset = 0;\n        /** The index of the last written buffer. Used when resuming after a `pause()`. */\n        this.writeIndex = 0;\n        /** Indicates whether the parser has finished running / `.end` has been called. */\n        this.ended = false;\n        this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n        this.htmlMode = !this.options.xmlMode;\n        this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : this.htmlMode;\n        this.lowerCaseAttributeNames =\n            (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : this.htmlMode;\n        this.recognizeSelfClosing =\n            (_c = options.recognizeSelfClosing) !== null && _c !== void 0 ? _c : !this.htmlMode;\n        this.tokenizer = new ((_d = options.Tokenizer) !== null && _d !== void 0 ? _d : Tokenizer_js_1.default)(this.options, this);\n        this.foreignContext = [!this.htmlMode];\n        (_f = (_e = this.cbs).onparserinit) === null || _f === void 0 ? void 0 : _f.call(_e, this);\n    }\n    // Tokenizer event handlers\n    /** @internal */\n    ontext(start, endIndex) {\n        var _a, _b;\n        const data = this.getSlice(start, endIndex);\n        this.endIndex = endIndex - 1;\n        (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n        this.startIndex = endIndex;\n    }\n    /** @internal */\n    ontextentity(cp, endIndex) {\n        var _a, _b;\n        this.endIndex = endIndex - 1;\n        (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_1.fromCodePoint)(cp));\n        this.startIndex = endIndex;\n    }\n    /**\n     * Checks if the current tag is a void element. Override this if you want\n     * to specify your own additional void elements.\n     */\n    isVoidElement(name) {\n        return this.htmlMode && voidElements.has(name);\n    }\n    /** @internal */\n    onopentagname(start, endIndex) {\n        this.endIndex = endIndex;\n        let name = this.getSlice(start, endIndex);\n        if (this.lowerCaseTagNames) {\n            name = name.toLowerCase();\n        }\n        this.emitOpenTag(name);\n    }\n    emitOpenTag(name) {\n        var _a, _b, _c, _d;\n        this.openTagStart = this.startIndex;\n        this.tagname = name;\n        const impliesClose = this.htmlMode && openImpliesClose.get(name);\n        if (impliesClose) {\n            while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {\n                const element = this.stack.shift();\n                (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n            }\n        }\n        if (!this.isVoidElement(name)) {\n            this.stack.unshift(name);\n            if (this.htmlMode) {\n                if (foreignContextElements.has(name)) {\n                    this.foreignContext.unshift(true);\n                }\n                else if (htmlIntegrationElements.has(name)) {\n                    this.foreignContext.unshift(false);\n                }\n            }\n        }\n        (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n        if (this.cbs.onopentag)\n            this.attribs = {};\n    }\n    endOpenTag(isImplied) {\n        var _a, _b;\n        this.startIndex = this.openTagStart;\n        if (this.attribs) {\n            (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n            this.attribs = null;\n        }\n        if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n            this.cbs.onclosetag(this.tagname, true);\n        }\n        this.tagname = \"\";\n    }\n    /** @internal */\n    onopentagend(endIndex) {\n        this.endIndex = endIndex;\n        this.endOpenTag(false);\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    }\n    /** @internal */\n    onclosetag(start, endIndex) {\n        var _a, _b, _c, _d, _e, _f, _g, _h;\n        this.endIndex = endIndex;\n        let name = this.getSlice(start, endIndex);\n        if (this.lowerCaseTagNames) {\n            name = name.toLowerCase();\n        }\n        if (this.htmlMode &&\n            (foreignContextElements.has(name) ||\n                htmlIntegrationElements.has(name))) {\n            this.foreignContext.shift();\n        }\n        if (!this.isVoidElement(name)) {\n            const pos = this.stack.indexOf(name);\n            if (pos !== -1) {\n                for (let index = 0; index <= pos; index++) {\n                    const element = this.stack.shift();\n                    // We know the stack has sufficient elements.\n                    (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, index !== pos);\n                }\n            }\n            else if (this.htmlMode && name === \"p\") {\n                // Implicit open before close\n                this.emitOpenTag(\"p\");\n                this.closeCurrentTag(true);\n            }\n        }\n        else if (this.htmlMode && name === \"br\") {\n            // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n            (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\");\n            (_f = (_e = this.cbs).onopentag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", {}, true);\n            (_h = (_g = this.cbs).onclosetag) === null || _h === void 0 ? void 0 : _h.call(_g, \"br\", false);\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    }\n    /** @internal */\n    onselfclosingtag(endIndex) {\n        this.endIndex = endIndex;\n        if (this.recognizeSelfClosing || this.foreignContext[0]) {\n            this.closeCurrentTag(false);\n            // Set `startIndex` for next node\n            this.startIndex = endIndex + 1;\n        }\n        else {\n            // Ignore the fact that the tag is self-closing.\n            this.onopentagend(endIndex);\n        }\n    }\n    closeCurrentTag(isOpenImplied) {\n        var _a, _b;\n        const name = this.tagname;\n        this.endOpenTag(isOpenImplied);\n        // Self-closing tags will be on the top of the stack\n        if (this.stack[0] === name) {\n            // If the opening tag isn't implied, the closing tag has to be implied.\n            (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n            this.stack.shift();\n        }\n    }\n    /** @internal */\n    onattribname(start, endIndex) {\n        this.startIndex = start;\n        const name = this.getSlice(start, endIndex);\n        this.attribname = this.lowerCaseAttributeNames\n            ? name.toLowerCase()\n            : name;\n    }\n    /** @internal */\n    onattribdata(start, endIndex) {\n        this.attribvalue += this.getSlice(start, endIndex);\n    }\n    /** @internal */\n    onattribentity(cp) {\n        this.attribvalue += (0, decode_1.fromCodePoint)(cp);\n    }\n    /** @internal */\n    onattribend(quote, endIndex) {\n        var _a, _b;\n        this.endIndex = endIndex;\n        (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double\n            ? '\"'\n            : quote === Tokenizer_js_1.QuoteType.Single\n                ? \"'\"\n                : quote === Tokenizer_js_1.QuoteType.NoValue\n                    ? undefined\n                    : null);\n        if (this.attribs &&\n            !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n            this.attribs[this.attribname] = this.attribvalue;\n        }\n        this.attribvalue = \"\";\n    }\n    getInstructionName(value) {\n        const index = value.search(reNameEnd);\n        let name = index < 0 ? value : value.substr(0, index);\n        if (this.lowerCaseTagNames) {\n            name = name.toLowerCase();\n        }\n        return name;\n    }\n    /** @internal */\n    ondeclaration(start, endIndex) {\n        this.endIndex = endIndex;\n        const value = this.getSlice(start, endIndex);\n        if (this.cbs.onprocessinginstruction) {\n            const name = this.getInstructionName(value);\n            this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    }\n    /** @internal */\n    onprocessinginstruction(start, endIndex) {\n        this.endIndex = endIndex;\n        const value = this.getSlice(start, endIndex);\n        if (this.cbs.onprocessinginstruction) {\n            const name = this.getInstructionName(value);\n            this.cbs.onprocessinginstruction(`?${name}`, `?${value}`);\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    }\n    /** @internal */\n    oncomment(start, endIndex, offset) {\n        var _a, _b, _c, _d;\n        this.endIndex = endIndex;\n        (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n        (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    }\n    /** @internal */\n    oncdata(start, endIndex, offset) {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n        this.endIndex = endIndex;\n        const value = this.getSlice(start, endIndex - offset);\n        if (!this.htmlMode || this.options.recognizeCDATA) {\n            (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n            (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n            (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n        }\n        else {\n            (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);\n            (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    }\n    /** @internal */\n    onend() {\n        var _a, _b;\n        if (this.cbs.onclosetag) {\n            // Set the end index for all remaining tags\n            this.endIndex = this.startIndex;\n            for (let index = 0; index < this.stack.length; index++) {\n                this.cbs.onclosetag(this.stack[index], true);\n            }\n        }\n        (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n    }\n    /**\n     * Resets the parser to a blank state, ready to parse a new HTML document\n     */\n    reset() {\n        var _a, _b, _c, _d;\n        (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n        this.tokenizer.reset();\n        this.tagname = \"\";\n        this.attribname = \"\";\n        this.attribs = null;\n        this.stack.length = 0;\n        this.startIndex = 0;\n        this.endIndex = 0;\n        (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n        this.buffers.length = 0;\n        this.foreignContext.length = 0;\n        this.foreignContext.unshift(!this.htmlMode);\n        this.bufferOffset = 0;\n        this.writeIndex = 0;\n        this.ended = false;\n    }\n    /**\n     * Resets the parser, then parses a complete document and\n     * pushes it to the handler.\n     *\n     * @param data Document to parse.\n     */\n    parseComplete(data) {\n        this.reset();\n        this.end(data);\n    }\n    getSlice(start, end) {\n        while (start - this.bufferOffset >= this.buffers[0].length) {\n            this.shiftBuffer();\n        }\n        let slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n        while (end - this.bufferOffset > this.buffers[0].length) {\n            this.shiftBuffer();\n            slice += this.buffers[0].slice(0, end - this.bufferOffset);\n        }\n        return slice;\n    }\n    shiftBuffer() {\n        this.bufferOffset += this.buffers[0].length;\n        this.writeIndex--;\n        this.buffers.shift();\n    }\n    /**\n     * Parses a chunk of data and calls the corresponding callbacks.\n     *\n     * @param chunk Chunk to parse.\n     */\n    write(chunk) {\n        var _a, _b;\n        if (this.ended) {\n            (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n            return;\n        }\n        this.buffers.push(chunk);\n        if (this.tokenizer.running) {\n            this.tokenizer.write(chunk);\n            this.writeIndex++;\n        }\n    }\n    /**\n     * Parses the end of the buffer and clears the stack, calls onend.\n     *\n     * @param chunk Optional final chunk to parse.\n     */\n    end(chunk) {\n        var _a, _b;\n        if (this.ended) {\n            (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n            return;\n        }\n        if (chunk)\n            this.write(chunk);\n        this.ended = true;\n        this.tokenizer.end();\n    }\n    /**\n     * Pauses parsing. The parser won't emit events until `resume` is called.\n     */\n    pause() {\n        this.tokenizer.pause();\n    }\n    /**\n     * Resumes parsing after `pause` was called.\n     */\n    resume() {\n        this.tokenizer.resume();\n        while (this.tokenizer.running &&\n            this.writeIndex < this.buffers.length) {\n            this.tokenizer.write(this.buffers[this.writeIndex++]);\n        }\n        if (this.ended)\n            this.tokenizer.end();\n    }\n    /**\n     * Alias of `write`, for backwards compatibility.\n     *\n     * @param chunk Chunk to parse.\n     * @deprecated\n     */\n    parseChunk(chunk) {\n        this.write(chunk);\n    }\n    /**\n     * Alias of `end`, for backwards compatibility.\n     *\n     * @param chunk Optional final chunk to parse.\n     * @deprecated\n     */\n    done(chunk) {\n        this.end(chunk);\n    }\n}\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n    var ownKeys = function(o) {\n        ownKeys = Object.getOwnPropertyNames || function (o) {\n            var ar = [];\n            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n            return ar;\n        };\n        return ownKeys(o);\n    };\n    return function (mod) {\n        if (mod && mod.__esModule) return mod;\n        var result = {};\n        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n        __setModuleDefault(result, mod);\n        return result;\n    };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.getFeed = exports.ElementType = exports.QuoteType = exports.Tokenizer = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nexports.parseDocument = parseDocument;\nexports.parseDOM = parseDOM;\nexports.createDocumentStream = createDocumentStream;\nexports.createDomStream = createDomStream;\nexports.parseFeed = parseFeed;\nconst Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nconst domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM handler.\n */\nfunction parseDocument(data, options) {\n    const handler = new domhandler_1.DomHandler(undefined, options);\n    new Parser_js_1.Parser(handler, options).end(data);\n    return handler.root;\n}\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM handler.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n    return parseDocument(data, options).children;\n}\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed, with the resulting document.\n * @param options Optional options for the parser and DOM handler.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDocumentStream(callback, options, elementCallback) {\n    const handler = new domhandler_1.DomHandler((error) => callback(error, handler.root), options, elementCallback);\n    return new Parser_js_1.Parser(handler, options);\n}\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed, with an array of root nodes.\n * @param options Optional options for the parser and DOM handler.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n * @deprecated Use `createDocumentStream` instead.\n */\nfunction createDomStream(callback, options, elementCallback) {\n    const handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n    return new Parser_js_1.Parser(handler, options);\n}\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\nObject.defineProperty(exports, \"QuoteType\", { enumerable: true, get: function () { return Tokenizer_js_1.QuoteType; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nconst domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nconst parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options = parseFeedDefaultOptions) {\n    return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseHtml = void 0;\nconst bus_rdf_parse_1 = require(\"@comunica/bus-rdf-parse\");\nconst htmlparser2_1 = require(\"htmlparser2\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A comunica HTML RDF Parse Actor.\n * It creates an HTML parser, and delegates its events via the bus-rdf-parse-html bus to other HTML parsing actors.\n */\nclass ActorRdfParseHtml extends bus_rdf_parse_1.ActorRdfParseFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"text/html\": 1.0,\n     *       \"application/xhtml+xml\": 0.9\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"text/html\": \"http://www.w3.org/ns/formats/HTML\",\n     *       \"application/xhtml+xml\": \"http://www.w3.org/ns/formats/HTML\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async runHandle(action, mediaType, context) {\n        const data = new readable_stream_1.Readable({ objectMode: true });\n        data._read = () => {\n            // Do nothing\n        };\n        let maxSize = 0;\n        // Create callbacks action\n        let endBarrier = 1;\n        function error(subError) {\n            data.emit('error', subError);\n        }\n        function end() {\n            if (--endBarrier === 0) {\n                data.push(null);\n            }\n        }\n        const htmlAction = {\n            baseIRI: action.metadata?.baseIRI ?? '',\n            context,\n            emit: (quad) => {\n                maxSize--;\n                data.push(quad);\n            },\n            end,\n            error,\n            headers: action.headers,\n        };\n        try {\n            const outputs = await Promise.all(this.busRdfParseHtml.publish(htmlAction));\n            endBarrier += outputs.length;\n            const htmlParseListeners = [];\n            for (const output of outputs) {\n                // eslint-disable-next-line unicorn/no-useless-undefined\n                const { htmlParseListener } = await output.actor.run(htmlAction, undefined);\n                htmlParseListeners.push(htmlParseListener);\n            }\n            // Create parser\n            const parser = new htmlparser2_1.Parser({\n                onclosetag() {\n                    try {\n                        for (const htmlParseListener of htmlParseListeners) {\n                            htmlParseListener.onTagClose();\n                        }\n                    }\n                    catch (error_) {\n                        error(error_);\n                    }\n                },\n                onend() {\n                    try {\n                        for (const htmlParseListener of htmlParseListeners) {\n                            htmlParseListener.onEnd();\n                        }\n                    }\n                    catch (error_) {\n                        error(error_);\n                    }\n                    end();\n                },\n                onopentag(name, attributes) {\n                    try {\n                        for (const htmlParseListener of htmlParseListeners) {\n                            htmlParseListener.onTagOpen(name, attributes);\n                        }\n                    }\n                    catch (error_) {\n                        error(error_);\n                    }\n                },\n                ontext(text) {\n                    try {\n                        for (const htmlParseListener of htmlParseListeners) {\n                            htmlParseListener.onText(text);\n                        }\n                    }\n                    catch (error_) {\n                        error(error_);\n                    }\n                },\n            }, {\n                decodeEntities: true,\n                recognizeSelfClosing: true,\n                xmlMode: false,\n            });\n            const read = data._read = (size) => {\n                maxSize = Math.max(size, maxSize);\n                // eslint-disable-next-line no-unmodified-loop-condition\n                while (maxSize > 0) {\n                    const item = action.data.read();\n                    if (item === null) {\n                        action.data.once('readable', () => read(0));\n                        return;\n                    }\n                    parser.write(item.toString());\n                }\n            };\n            action.data\n                .on('error', error)\n                .on('end', () => parser.end());\n        }\n        catch (e) {\n            setTimeout(() => {\n                data.emit('error', e);\n            });\n        }\n        return { data };\n    }\n}\nexports.ActorRdfParseHtml = ActorRdfParseHtml;\n//# sourceMappingURL=ActorRdfParseHtml.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParseHtml\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseHtml = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for rdf-parse-html events.\n *\n * Actor types:\n * * Input:  IActionRdfParseHtml:      Callbacks for parsing results.\n * * Test:   <none>\n * * Output: IActorRdfParseHtmlOutput: An HTML event listeners.\n *\n * @see IActionRdfParseHtml\n * @see IActorRdfParseHtmlOutput\n */\nclass ActorRdfParseHtml extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {RDF HTML parsing failed: none of the configured parsers were able to parse RDF in HTML} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfParseHtml = ActorRdfParseHtml;\n//# sourceMappingURL=ActorRdfParseHtml.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParseHtml\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IItemPropertyHandler.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ItemPropertyHandlerContent = void 0;\n/**\n * Handler for an item property with the 'content' attribute.\n */\nclass ItemPropertyHandlerContent {\n    canHandle(tagName, attributes) {\n        return 'content' in attributes;\n    }\n    getObject(attributes, util, itemScope) {\n        return util.createLiteral(attributes.content, itemScope);\n    }\n}\nexports.ItemPropertyHandlerContent = ItemPropertyHandlerContent;\n//# sourceMappingURL=ItemPropertyHandlerContent.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * A collection of utility functions.\n */\nclass Util {\n    constructor(dataFactory, baseIRI) {\n        this.dataFactory = dataFactory || new rdf_data_factory_1.DataFactory();\n        this.baseIRI = baseIRI || '';\n    }\n    /**\n     * Check if the given IRI is valid.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIri(iri) {\n        return Util.IRI_REGEX.test(iri);\n    }\n    /**\n     * Create vocab terms for the given terms attribute.\n     *\n     * Relative IRIs will be based on the active vocab or baseIRI if `allowRelativeIris` is true.\n     *\n     * @param {string} terms An attribute value.\n     * @param {IItemScope} itemScope The active item scope.\n     * @param {boolean} allowRelativeIris If relative IRIs are allowed.\n     * @return {Term[]} The IRI terms.\n     */\n    createVocabIris(terms, itemScope, allowRelativeIris) {\n        return terms.split(/\\s+/u)\n            .filter(term => !!term)\n            .map(property => {\n            if (!Util.isValidIri(property)) {\n                if (!allowRelativeIris) {\n                    return;\n                }\n                property = `${itemScope.vocab || `${this.baseIRI}#`}${property}`;\n            }\n            return this.dataFactory.namedNode(property);\n        })\n            .filter(term => !!term);\n    }\n    /**\n     * Get the predicates for which the given itemprop value should cause vocabulary expansion.\n     * @param terms An attribute value.\n     * @param itemScope The active item scope.\n     * @param vocabRegistry The active vocabulary registry.\n     */\n    getVocabularyExpansionType(terms, itemScope, vocabRegistry) {\n        // Check the presence of subPropertyOf or equivalentProperty\n        const parts = terms.split(/\\s+/u);\n        if (parts.includes('subPropertyOf') || parts.includes('equivalentProperty')) {\n            return [this.dataFactory.namedNode(`${Util.RDF}type`)];\n        }\n        // Check in the item scope's vocab\n        if (itemScope.vocab && itemScope.vocab in vocabRegistry && vocabRegistry[itemScope.vocab].properties) {\n            let predicates = [];\n            for (const [property, expansions] of Object\n                .entries(vocabRegistry[itemScope.vocab].properties)) {\n                if (parts.includes(property)) {\n                    predicates = [...Object.values(expansions).map(iri => this.dataFactory.namedNode(iri))];\n                }\n            }\n            return predicates;\n        }\n        return [];\n    }\n    /**\n     * Create a named node for the given term, which can be relative to the document base.\n     * @param {string} iri A term string.\n     * @return {Term} An RDF term, or undefined if invalid.\n     */\n    createSubject(iri) {\n        if (!Util.isValidIri(iri)) {\n            try {\n                iri = (0, relative_to_absolute_iri_1.resolve)(iri, this.baseIRI);\n            }\n            catch (_a) {\n                return;\n            }\n        }\n        return this.dataFactory.namedNode(iri);\n    }\n    /**\n     * Create a new literal node.\n     * @param {string} literal The literal value.\n     * @param {IActiveTag} activeTag The current active tag.\n     * @return {Literal} A new literal node.\n     */\n    createLiteral(literal, activeTag) {\n        return this.dataFactory.literal(literal, activeTag.language);\n    }\n    /**\n     * Determine the vocab IRI from a given type IRI.\n     * @link https://w3c.github.io/microdata-rdf/#property-uri-generation\n     * @param typeIri A type IRI.\n     * @param vocabRegistry The active vocabulary registry.\n     */\n    deriveVocab(typeIri, vocabRegistry) {\n        let vocab;\n        // First check if we find a prefix in the vocab registry\n        for (const uriPrefix in vocabRegistry) {\n            if (typeIri.startsWith(uriPrefix)) {\n                vocab = uriPrefix;\n                // Append fragment if prefix does not end with a slash\n                if (!vocab.endsWith('/')) {\n                    vocab += '#';\n                }\n                break;\n            }\n        }\n        // If no match was found, remove the last path segment from the URI\n        if (!vocab) {\n            const hashPos = typeIri.indexOf('#');\n            if (hashPos > 0) {\n                vocab = typeIri.slice(0, hashPos + 1);\n            }\n            else {\n                vocab = (0, relative_to_absolute_iri_1.resolve)('.', typeIri);\n            }\n        }\n        return vocab;\n    }\n}\nexports.Util = Util;\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.RDFA = 'http://www.w3.org/ns/rdfa#';\nUtil.IRI_REGEX = /^([A-Za-z][\\d+-.A-Za-z]*|_):[^ \"<>[\\\\\\]`{|}]*$/u;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ItemPropertyHandlerNumber = void 0;\nconst Util_1 = require(\"../Util\");\n/**\n * Handler for an item property with a number attribute.\n */\nclass ItemPropertyHandlerNumber {\n    constructor(tagName, attributeName) {\n        this.tagName = tagName;\n        this.attributeName = attributeName;\n    }\n    canHandle(tagName, attributes) {\n        return this.tagName === tagName && this.attributeName in attributes;\n    }\n    getObject(attributes, util, itemScope) {\n        const value = attributes[this.attributeName];\n        let datatype;\n        if (!Number.isNaN(Number.parseInt(value, 10)) && !value.includes('.')) {\n            datatype = `${Util_1.Util.XSD}integer`;\n        }\n        else if (!Number.isNaN(Number.parseFloat(value))) {\n            datatype = `${Util_1.Util.XSD}double`;\n        }\n        return util.dataFactory.literal(value, datatype && util.dataFactory.namedNode(datatype));\n    }\n}\nexports.ItemPropertyHandlerNumber = ItemPropertyHandlerNumber;\n//# sourceMappingURL=ItemPropertyHandlerNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ItemPropertyHandlerTime = void 0;\nconst Util_1 = require(\"../Util\");\n/**\n * Handler for an item property for time tags.\n */\nclass ItemPropertyHandlerTime {\n    canHandle(tagName, attributes) {\n        return tagName === 'time' && 'datetime' in attributes;\n    }\n    getObject(attributes, util, itemScope) {\n        const value = attributes.datetime;\n        let datatype;\n        for (const entry of ItemPropertyHandlerTime.TIME_REGEXES) {\n            if (entry.regex.test(value)) {\n                datatype = util.dataFactory.namedNode(Util_1.Util.XSD + entry.type);\n                break;\n            }\n        }\n        return util.dataFactory.literal(value, datatype);\n    }\n}\nexports.ItemPropertyHandlerTime = ItemPropertyHandlerTime;\nItemPropertyHandlerTime.TIME_REGEXES = [\n    {\n        regex: /^-?P(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+(\\.\\d)?S)?)?$/u,\n        type: 'duration',\n    },\n    {\n        regex: /^\\d+-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d((Z?)|([+-]\\d\\d:\\d\\d))$/u,\n        type: 'dateTime',\n    },\n    { regex: /^\\d+-\\d\\d-\\d\\dZ?$/u, type: 'date' },\n    { regex: /^\\d\\d:\\d\\d:\\d\\d((Z?)|([+-]\\d\\d:\\d\\d))$/u, type: 'time' },\n    { regex: /^\\d+-\\d\\d$/u, type: 'gYearMonth' },\n    { regex: /^\\d+$/u, type: 'gYear' },\n];\n//# sourceMappingURL=ItemPropertyHandlerTime.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ItemPropertyHandlerUrl = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * Handler for an item property with a URL attribute.\n */\nclass ItemPropertyHandlerUrl {\n    constructor(tagName, attributeName) {\n        this.tagName = tagName;\n        this.attributeName = attributeName;\n    }\n    canHandle(tagName, attributes) {\n        return this.tagName === tagName && this.attributeName in attributes;\n    }\n    getObject(attributes, util, itemScope) {\n        return util.dataFactory.namedNode((0, relative_to_absolute_iri_1.resolve)(attributes[this.attributeName], util.baseIRI));\n    }\n}\nexports.ItemPropertyHandlerUrl = ItemPropertyHandlerUrl;\n//# sourceMappingURL=ItemPropertyHandlerUrl.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IHtmlParseListener.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IItemScope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IVocabRegistry.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n    .split(\"\")\n    .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n    .split(\"\")\n    .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n    [0, 65533],\n    // C1 Unicode control character reference replacements\n    [128, 8364],\n    [130, 8218],\n    [131, 402],\n    [132, 8222],\n    [133, 8230],\n    [134, 8224],\n    [135, 8225],\n    [136, 710],\n    [137, 8240],\n    [138, 352],\n    [139, 8249],\n    [140, 338],\n    [142, 381],\n    [145, 8216],\n    [146, 8217],\n    [147, 8220],\n    [148, 8221],\n    [149, 8226],\n    [150, 8211],\n    [151, 8212],\n    [152, 732],\n    [153, 8482],\n    [154, 353],\n    [155, 8250],\n    [156, 339],\n    [158, 382],\n    [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n    var output = \"\";\n    if (codePoint > 0xffff) {\n        codePoint -= 0x10000;\n        output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n        codePoint = 0xdc00 | (codePoint & 0x3ff);\n    }\n    output += String.fromCharCode(codePoint);\n    return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n    var _a;\n    if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n        return 0xfffd;\n    }\n    return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n    return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n    CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n    CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n    CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n    CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n    CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n    CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n    CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n    CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n    CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n    CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n    CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n    CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n    BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n    return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n        isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n    return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n    EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n    EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n    EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n    /** Entities in text nodes that can end with any character. */\n    DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n    /** Only allow entities terminated with a semicolon. */\n    DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n    /** Entities in attributes have limitations on ending characters. */\n    DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n    function EntityDecoder(\n    /** The tree used to decode entities. */\n    decodeTree, \n    /**\n     * The function that is called when a codepoint is decoded.\n     *\n     * For multi-byte named entities, this will be called multiple times,\n     * with the second codepoint, and the same `consumed` value.\n     *\n     * @param codepoint The decoded codepoint.\n     * @param consumed The number of bytes consumed by the decoder.\n     */\n    emitCodePoint, \n    /** An object that is used to produce errors. */\n    errors) {\n        this.decodeTree = decodeTree;\n        this.emitCodePoint = emitCodePoint;\n        this.errors = errors;\n        /** The current state of the decoder. */\n        this.state = EntityDecoderState.EntityStart;\n        /** Characters that were consumed while parsing an entity. */\n        this.consumed = 1;\n        /**\n         * The result of the entity.\n         *\n         * Either the result index of a numeric entity, or the codepoint of a\n         * numeric entity.\n         */\n        this.result = 0;\n        /** The current index in the decode tree. */\n        this.treeIndex = 0;\n        /** The number of characters that were consumed in excess. */\n        this.excess = 1;\n        /** The mode in which the decoder is operating. */\n        this.decodeMode = DecodingMode.Strict;\n    }\n    /** Resets the instance to make it reusable. */\n    EntityDecoder.prototype.startEntity = function (decodeMode) {\n        this.decodeMode = decodeMode;\n        this.state = EntityDecoderState.EntityStart;\n        this.result = 0;\n        this.treeIndex = 0;\n        this.excess = 1;\n        this.consumed = 1;\n    };\n    /**\n     * Write an entity to the decoder. This can be called multiple times with partial entities.\n     * If the entity is incomplete, the decoder will return -1.\n     *\n     * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n     * entity is incomplete, and resume when the next string is written.\n     *\n     * @param string The string containing the entity (or a continuation of the entity).\n     * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.write = function (str, offset) {\n        switch (this.state) {\n            case EntityDecoderState.EntityStart: {\n                if (str.charCodeAt(offset) === CharCodes.NUM) {\n                    this.state = EntityDecoderState.NumericStart;\n                    this.consumed += 1;\n                    return this.stateNumericStart(str, offset + 1);\n                }\n                this.state = EntityDecoderState.NamedEntity;\n                return this.stateNamedEntity(str, offset);\n            }\n            case EntityDecoderState.NumericStart: {\n                return this.stateNumericStart(str, offset);\n            }\n            case EntityDecoderState.NumericDecimal: {\n                return this.stateNumericDecimal(str, offset);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.stateNumericHex(str, offset);\n            }\n            case EntityDecoderState.NamedEntity: {\n                return this.stateNamedEntity(str, offset);\n            }\n        }\n    };\n    /**\n     * Switches between the numeric decimal and hexadecimal states.\n     *\n     * Equivalent to the `Numeric character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n        if (offset >= str.length) {\n            return -1;\n        }\n        if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n            this.state = EntityDecoderState.NumericHex;\n            this.consumed += 1;\n            return this.stateNumericHex(str, offset + 1);\n        }\n        this.state = EntityDecoderState.NumericDecimal;\n        return this.stateNumericDecimal(str, offset);\n    };\n    EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n        if (start !== end) {\n            var digitCount = end - start;\n            this.result =\n                this.result * Math.pow(base, digitCount) +\n                    parseInt(str.substr(start, digitCount), base);\n            this.consumed += digitCount;\n        }\n    };\n    /**\n     * Parses a hexadecimal numeric entity.\n     *\n     * Equivalent to the `Hexademical character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n        var startIdx = offset;\n        while (offset < str.length) {\n            var char = str.charCodeAt(offset);\n            if (isNumber(char) || isHexadecimalCharacter(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(str, startIdx, offset, 16);\n                return this.emitNumericEntity(char, 3);\n            }\n        }\n        this.addToNumericResult(str, startIdx, offset, 16);\n        return -1;\n    };\n    /**\n     * Parses a decimal numeric entity.\n     *\n     * Equivalent to the `Decimal character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n        var startIdx = offset;\n        while (offset < str.length) {\n            var char = str.charCodeAt(offset);\n            if (isNumber(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(str, startIdx, offset, 10);\n                return this.emitNumericEntity(char, 2);\n            }\n        }\n        this.addToNumericResult(str, startIdx, offset, 10);\n        return -1;\n    };\n    /**\n     * Validate and emit a numeric entity.\n     *\n     * Implements the logic from the `Hexademical character reference start\n     * state` and `Numeric character reference end state` in the HTML spec.\n     *\n     * @param lastCp The last code point of the entity. Used to see if the\n     *               entity was terminated with a semicolon.\n     * @param expectedLength The minimum number of characters that should be\n     *                       consumed. Used to validate that at least one digit\n     *                       was consumed.\n     * @returns The number of characters that were consumed.\n     */\n    EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n        var _a;\n        // Ensure we consumed at least one digit.\n        if (this.consumed <= expectedLength) {\n            (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n            return 0;\n        }\n        // Figure out if this is a legit end of the entity\n        if (lastCp === CharCodes.SEMI) {\n            this.consumed += 1;\n        }\n        else if (this.decodeMode === DecodingMode.Strict) {\n            return 0;\n        }\n        this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n        if (this.errors) {\n            if (lastCp !== CharCodes.SEMI) {\n                this.errors.missingSemicolonAfterCharacterReference();\n            }\n            this.errors.validateNumericCharacterReference(this.result);\n        }\n        return this.consumed;\n    };\n    /**\n     * Parses a named entity.\n     *\n     * Equivalent to the `Named character reference state` in the HTML spec.\n     *\n     * @param str The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n        var decodeTree = this.decodeTree;\n        var current = decodeTree[this.treeIndex];\n        // The mask is the number of bytes of the value, including the current byte.\n        var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n        for (; offset < str.length; offset++, this.excess++) {\n            var char = str.charCodeAt(offset);\n            this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n            if (this.treeIndex < 0) {\n                return this.result === 0 ||\n                    // If we are parsing an attribute\n                    (this.decodeMode === DecodingMode.Attribute &&\n                        // We shouldn't have consumed any characters after the entity,\n                        (valueLength === 0 ||\n                            // And there should be no invalid characters.\n                            isEntityInAttributeInvalidEnd(char)))\n                    ? 0\n                    : this.emitNotTerminatedNamedEntity();\n            }\n            current = decodeTree[this.treeIndex];\n            valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n            // If the branch is a value, store it and continue\n            if (valueLength !== 0) {\n                // If the entity is terminated by a semicolon, we are done.\n                if (char === CharCodes.SEMI) {\n                    return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n                }\n                // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n                if (this.decodeMode !== DecodingMode.Strict) {\n                    this.result = this.treeIndex;\n                    this.consumed += this.excess;\n                    this.excess = 0;\n                }\n            }\n        }\n        return -1;\n    };\n    /**\n     * Emit a named entity that was not terminated with a semicolon.\n     *\n     * @returns The number of characters consumed.\n     */\n    EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n        var _a;\n        var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n        var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n        this.emitNamedEntityData(result, valueLength, this.consumed);\n        (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n        return this.consumed;\n    };\n    /**\n     * Emit a named entity.\n     *\n     * @param result The index of the entity in the decode tree.\n     * @param valueLength The number of bytes in the entity.\n     * @param consumed The number of characters consumed.\n     *\n     * @returns The number of characters consumed.\n     */\n    EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n        var decodeTree = this.decodeTree;\n        this.emitCodePoint(valueLength === 1\n            ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n            : decodeTree[result + 1], consumed);\n        if (valueLength === 3) {\n            // For multi-byte values, we need to emit the second byte.\n            this.emitCodePoint(decodeTree[result + 2], consumed);\n        }\n        return consumed;\n    };\n    /**\n     * Signal to the parser that the end of the input was reached.\n     *\n     * Remaining data will be emitted and relevant errors will be produced.\n     *\n     * @returns The number of characters consumed.\n     */\n    EntityDecoder.prototype.end = function () {\n        var _a;\n        switch (this.state) {\n            case EntityDecoderState.NamedEntity: {\n                // Emit a named entity if we have one.\n                return this.result !== 0 &&\n                    (this.decodeMode !== DecodingMode.Attribute ||\n                        this.result === this.treeIndex)\n                    ? this.emitNotTerminatedNamedEntity()\n                    : 0;\n            }\n            // Otherwise, emit a numeric entity if we have one.\n            case EntityDecoderState.NumericDecimal: {\n                return this.emitNumericEntity(0, 2);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.emitNumericEntity(0, 3);\n            }\n            case EntityDecoderState.NumericStart: {\n                (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n                return 0;\n            }\n            case EntityDecoderState.EntityStart: {\n                // Return 0 if we have no entity.\n                return 0;\n            }\n        }\n    };\n    return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n    var ret = \"\";\n    var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n    return function decodeWithTrie(str, decodeMode) {\n        var lastIndex = 0;\n        var offset = 0;\n        while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n            ret += str.slice(lastIndex, offset);\n            decoder.startEntity(decodeMode);\n            var len = decoder.write(str, \n            // Skip the \"&\"\n            offset + 1);\n            if (len < 0) {\n                lastIndex = offset + decoder.end();\n                break;\n            }\n            lastIndex = offset + len;\n            // If `len` is 0, skip the current `&` and continue.\n            offset = len === 0 ? lastIndex + 1 : lastIndex;\n        }\n        var result = ret + str.slice(lastIndex);\n        // Make sure we don't keep a reference to the final string.\n        ret = \"\";\n        return result;\n    };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n    var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n    var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n    // Case 1: Single branch encoded in jump offset\n    if (branchCount === 0) {\n        return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n    }\n    // Case 2: Multiple branches encoded in jump table\n    if (jumpOffset) {\n        var value = char - jumpOffset;\n        return value < 0 || value >= branchCount\n            ? -1\n            : decodeTree[nodeIdx + value] - 1;\n    }\n    // Case 3: Multiple branches encoded in dictionary\n    // Binary search for the character.\n    var lo = nodeIdx;\n    var hi = lo + branchCount - 1;\n    while (lo <= hi) {\n        var mid = (lo + hi) >>> 1;\n        var midVal = decodeTree[mid];\n        if (midVal < char) {\n            lo = mid + 1;\n        }\n        else if (midVal > char) {\n            hi = mid - 1;\n        }\n        else {\n            return decodeTree[mid + branchCount];\n        }\n    }\n    return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n    if (mode === void 0) { mode = DecodingMode.Legacy; }\n    return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n    return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n    return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n    return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar CharCodes;\n(function (CharCodes) {\n    CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n    CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n    CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n    CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n    CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n    CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n    CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n    CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n    CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n    CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n    CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n    CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n    CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n    CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n    CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n    CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n    CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n    CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n    CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n    CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n    CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n    CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n    CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n    CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n    CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n    CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n    CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n    State[State[\"Text\"] = 1] = \"Text\";\n    State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n    State[State[\"InTagName\"] = 3] = \"InTagName\";\n    State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n    State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n    State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n    State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n    // Attributes\n    State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n    State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n    State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n    State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n    State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n    State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n    State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n    // Declarations\n    State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n    State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n    // Processing instructions\n    State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n    // Comments & CDATA\n    State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n    State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n    State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n    State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n    // Special tags\n    State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n    State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n    State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n    State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n    State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n    State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n    State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n    State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n    return (c === CharCodes.Space ||\n        c === CharCodes.NewLine ||\n        c === CharCodes.Tab ||\n        c === CharCodes.FormFeed ||\n        c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n    return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n    return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n    return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n        (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n    return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n        (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nvar QuoteType;\n(function (QuoteType) {\n    QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n    QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n    QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n    QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType = exports.QuoteType || (exports.QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nvar Sequences = {\n    Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n    CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n    CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n    ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n    StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n    TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n};\nvar Tokenizer = /** @class */ (function () {\n    function Tokenizer(_a, cbs) {\n        var _b = _a.xmlMode, xmlMode = _b === void 0 ? false : _b, _c = _a.decodeEntities, decodeEntities = _c === void 0 ? true : _c;\n        this.cbs = cbs;\n        /** The current state the tokenizer is in. */\n        this.state = State.Text;\n        /** The read buffer. */\n        this.buffer = \"\";\n        /** The beginning of the section that is currently being read. */\n        this.sectionStart = 0;\n        /** The index within the buffer that we are currently looking at. */\n        this.index = 0;\n        /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n        this.baseState = State.Text;\n        /** For special parsing behavior inside of script and style tags. */\n        this.isSpecial = false;\n        /** Indicates whether the tokenizer has been paused. */\n        this.running = true;\n        /** The offset of the current buffer. */\n        this.offset = 0;\n        this.currentSequence = undefined;\n        this.sequenceIndex = 0;\n        this.trieIndex = 0;\n        this.trieCurrent = 0;\n        /** For named entities, the index of the value. For numeric entities, the code point. */\n        this.entityResult = 0;\n        this.entityExcess = 0;\n        this.xmlMode = xmlMode;\n        this.decodeEntities = decodeEntities;\n        this.entityTrie = xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree;\n    }\n    Tokenizer.prototype.reset = function () {\n        this.state = State.Text;\n        this.buffer = \"\";\n        this.sectionStart = 0;\n        this.index = 0;\n        this.baseState = State.Text;\n        this.currentSequence = undefined;\n        this.running = true;\n        this.offset = 0;\n    };\n    Tokenizer.prototype.write = function (chunk) {\n        this.offset += this.buffer.length;\n        this.buffer = chunk;\n        this.parse();\n    };\n    Tokenizer.prototype.end = function () {\n        if (this.running)\n            this.finish();\n    };\n    Tokenizer.prototype.pause = function () {\n        this.running = false;\n    };\n    Tokenizer.prototype.resume = function () {\n        this.running = true;\n        if (this.index < this.buffer.length + this.offset) {\n            this.parse();\n        }\n    };\n    /**\n     * The current index within all of the written data.\n     */\n    Tokenizer.prototype.getIndex = function () {\n        return this.index;\n    };\n    /**\n     * The start of the current section.\n     */\n    Tokenizer.prototype.getSectionStart = function () {\n        return this.sectionStart;\n    };\n    Tokenizer.prototype.stateText = function (c) {\n        if (c === CharCodes.Lt ||\n            (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n            if (this.index > this.sectionStart) {\n                this.cbs.ontext(this.sectionStart, this.index);\n            }\n            this.state = State.BeforeTagName;\n            this.sectionStart = this.index;\n        }\n        else if (this.decodeEntities && c === CharCodes.Amp) {\n            this.state = State.BeforeEntity;\n        }\n    };\n    Tokenizer.prototype.stateSpecialStartSequence = function (c) {\n        var isEnd = this.sequenceIndex === this.currentSequence.length;\n        var isMatch = isEnd\n            ? // If we are at the end of the sequence, make sure the tag name has ended\n                isEndOfTagSection(c)\n            : // Otherwise, do a case-insensitive comparison\n                (c | 0x20) === this.currentSequence[this.sequenceIndex];\n        if (!isMatch) {\n            this.isSpecial = false;\n        }\n        else if (!isEnd) {\n            this.sequenceIndex++;\n            return;\n        }\n        this.sequenceIndex = 0;\n        this.state = State.InTagName;\n        this.stateInTagName(c);\n    };\n    /** Look for an end tag. For <title> tags, also decode entities. */\n    Tokenizer.prototype.stateInSpecialTag = function (c) {\n        if (this.sequenceIndex === this.currentSequence.length) {\n            if (c === CharCodes.Gt || isWhitespace(c)) {\n                var endOfText = this.index - this.currentSequence.length;\n                if (this.sectionStart < endOfText) {\n                    // Spoof the index so that reported locations match up.\n                    var actualIndex = this.index;\n                    this.index = endOfText;\n                    this.cbs.ontext(this.sectionStart, endOfText);\n                    this.index = actualIndex;\n                }\n                this.isSpecial = false;\n                this.sectionStart = endOfText + 2; // Skip over the `</`\n                this.stateInClosingTagName(c);\n                return; // We are done; skip the rest of the function.\n            }\n            this.sequenceIndex = 0;\n        }\n        if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n            this.sequenceIndex += 1;\n        }\n        else if (this.sequenceIndex === 0) {\n            if (this.currentSequence === Sequences.TitleEnd) {\n                // We have to parse entities in <title> tags.\n                if (this.decodeEntities && c === CharCodes.Amp) {\n                    this.state = State.BeforeEntity;\n                }\n            }\n            else if (this.fastForwardTo(CharCodes.Lt)) {\n                // Outside of <title> tags, we can fast-forward.\n                this.sequenceIndex = 1;\n            }\n        }\n        else {\n            // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n            this.sequenceIndex = Number(c === CharCodes.Lt);\n        }\n    };\n    Tokenizer.prototype.stateCDATASequence = function (c) {\n        if (c === Sequences.Cdata[this.sequenceIndex]) {\n            if (++this.sequenceIndex === Sequences.Cdata.length) {\n                this.state = State.InCommentLike;\n                this.currentSequence = Sequences.CdataEnd;\n                this.sequenceIndex = 0;\n                this.sectionStart = this.index + 1;\n            }\n        }\n        else {\n            this.sequenceIndex = 0;\n            this.state = State.InDeclaration;\n            this.stateInDeclaration(c); // Reconsume the character\n        }\n    };\n    /**\n     * When we wait for one specific character, we can speed things up\n     * by skipping through the buffer until we find it.\n     *\n     * @returns Whether the character was found.\n     */\n    Tokenizer.prototype.fastForwardTo = function (c) {\n        while (++this.index < this.buffer.length + this.offset) {\n            if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n                return true;\n            }\n        }\n        /*\n         * We increment the index at the end of the `parse` loop,\n         * so set it to `buffer.length - 1` here.\n         *\n         * TODO: Refactor `parse` to increment index before calling states.\n         */\n        this.index = this.buffer.length + this.offset - 1;\n        return false;\n    };\n    /**\n     * Comments and CDATA end with `-->` and `]]>`.\n     *\n     * Their common qualities are:\n     * - Their end sequences have a distinct character they start with.\n     * - That character is then repeated, so we have to check multiple repeats.\n     * - All characters but the start character of the sequence can be skipped.\n     */\n    Tokenizer.prototype.stateInCommentLike = function (c) {\n        if (c === this.currentSequence[this.sequenceIndex]) {\n            if (++this.sequenceIndex === this.currentSequence.length) {\n                if (this.currentSequence === Sequences.CdataEnd) {\n                    this.cbs.oncdata(this.sectionStart, this.index, 2);\n                }\n                else {\n                    this.cbs.oncomment(this.sectionStart, this.index, 2);\n                }\n                this.sequenceIndex = 0;\n                this.sectionStart = this.index + 1;\n                this.state = State.Text;\n            }\n        }\n        else if (this.sequenceIndex === 0) {\n            // Fast-forward to the first character of the sequence\n            if (this.fastForwardTo(this.currentSequence[0])) {\n                this.sequenceIndex = 1;\n            }\n        }\n        else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n            // Allow long sequences, eg. --->, ]]]>\n            this.sequenceIndex = 0;\n        }\n    };\n    /**\n     * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n     *\n     * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n     * We allow anything that wouldn't end the tag.\n     */\n    Tokenizer.prototype.isTagStartChar = function (c) {\n        return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n    };\n    Tokenizer.prototype.startSpecial = function (sequence, offset) {\n        this.isSpecial = true;\n        this.currentSequence = sequence;\n        this.sequenceIndex = offset;\n        this.state = State.SpecialStartSequence;\n    };\n    Tokenizer.prototype.stateBeforeTagName = function (c) {\n        if (c === CharCodes.ExclamationMark) {\n            this.state = State.BeforeDeclaration;\n            this.sectionStart = this.index + 1;\n        }\n        else if (c === CharCodes.Questionmark) {\n            this.state = State.InProcessingInstruction;\n            this.sectionStart = this.index + 1;\n        }\n        else if (this.isTagStartChar(c)) {\n            var lower = c | 0x20;\n            this.sectionStart = this.index;\n            if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n                this.startSpecial(Sequences.TitleEnd, 3);\n            }\n            else {\n                this.state =\n                    !this.xmlMode && lower === Sequences.ScriptEnd[2]\n                        ? State.BeforeSpecialS\n                        : State.InTagName;\n            }\n        }\n        else if (c === CharCodes.Slash) {\n            this.state = State.BeforeClosingTagName;\n        }\n        else {\n            this.state = State.Text;\n            this.stateText(c);\n        }\n    };\n    Tokenizer.prototype.stateInTagName = function (c) {\n        if (isEndOfTagSection(c)) {\n            this.cbs.onopentagname(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n    };\n    Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n        if (isWhitespace(c)) {\n            // Ignore\n        }\n        else if (c === CharCodes.Gt) {\n            this.state = State.Text;\n        }\n        else {\n            this.state = this.isTagStartChar(c)\n                ? State.InClosingTagName\n                : State.InSpecialComment;\n            this.sectionStart = this.index;\n        }\n    };\n    Tokenizer.prototype.stateInClosingTagName = function (c) {\n        if (c === CharCodes.Gt || isWhitespace(c)) {\n            this.cbs.onclosetag(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.state = State.AfterClosingTagName;\n            this.stateAfterClosingTagName(c);\n        }\n    };\n    Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n        // Skip everything until \">\"\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.state = State.Text;\n            this.baseState = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    };\n    Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n        if (c === CharCodes.Gt) {\n            this.cbs.onopentagend(this.index);\n            if (this.isSpecial) {\n                this.state = State.InSpecialTag;\n                this.sequenceIndex = 0;\n            }\n            else {\n                this.state = State.Text;\n            }\n            this.baseState = this.state;\n            this.sectionStart = this.index + 1;\n        }\n        else if (c === CharCodes.Slash) {\n            this.state = State.InSelfClosingTag;\n        }\n        else if (!isWhitespace(c)) {\n            this.state = State.InAttributeName;\n            this.sectionStart = this.index;\n        }\n    };\n    Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n        if (c === CharCodes.Gt) {\n            this.cbs.onselfclosingtag(this.index);\n            this.state = State.Text;\n            this.baseState = State.Text;\n            this.sectionStart = this.index + 1;\n            this.isSpecial = false; // Reset special state, in case of self-closing special tags\n        }\n        else if (!isWhitespace(c)) {\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n    };\n    Tokenizer.prototype.stateInAttributeName = function (c) {\n        if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n            this.cbs.onattribname(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.state = State.AfterAttributeName;\n            this.stateAfterAttributeName(c);\n        }\n    };\n    Tokenizer.prototype.stateAfterAttributeName = function (c) {\n        if (c === CharCodes.Eq) {\n            this.state = State.BeforeAttributeValue;\n        }\n        else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n            this.cbs.onattribend(QuoteType.NoValue, this.index);\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n        else if (!isWhitespace(c)) {\n            this.cbs.onattribend(QuoteType.NoValue, this.index);\n            this.state = State.InAttributeName;\n            this.sectionStart = this.index;\n        }\n    };\n    Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n        if (c === CharCodes.DoubleQuote) {\n            this.state = State.InAttributeValueDq;\n            this.sectionStart = this.index + 1;\n        }\n        else if (c === CharCodes.SingleQuote) {\n            this.state = State.InAttributeValueSq;\n            this.sectionStart = this.index + 1;\n        }\n        else if (!isWhitespace(c)) {\n            this.sectionStart = this.index;\n            this.state = State.InAttributeValueNq;\n            this.stateInAttributeValueNoQuotes(c); // Reconsume token\n        }\n    };\n    Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n        if (c === quote ||\n            (!this.decodeEntities && this.fastForwardTo(quote))) {\n            this.cbs.onattribdata(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.cbs.onattribend(quote === CharCodes.DoubleQuote\n                ? QuoteType.Double\n                : QuoteType.Single, this.index);\n            this.state = State.BeforeAttributeName;\n        }\n        else if (this.decodeEntities && c === CharCodes.Amp) {\n            this.baseState = this.state;\n            this.state = State.BeforeEntity;\n        }\n    };\n    Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n        this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n    };\n    Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n        this.handleInAttributeValue(c, CharCodes.SingleQuote);\n    };\n    Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n        if (isWhitespace(c) || c === CharCodes.Gt) {\n            this.cbs.onattribdata(this.sectionStart, this.index);\n            this.sectionStart = -1;\n            this.cbs.onattribend(QuoteType.Unquoted, this.index);\n            this.state = State.BeforeAttributeName;\n            this.stateBeforeAttributeName(c);\n        }\n        else if (this.decodeEntities && c === CharCodes.Amp) {\n            this.baseState = this.state;\n            this.state = State.BeforeEntity;\n        }\n    };\n    Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n        if (c === CharCodes.OpeningSquareBracket) {\n            this.state = State.CDATASequence;\n            this.sequenceIndex = 0;\n        }\n        else {\n            this.state =\n                c === CharCodes.Dash\n                    ? State.BeforeComment\n                    : State.InDeclaration;\n        }\n    };\n    Tokenizer.prototype.stateInDeclaration = function (c) {\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.cbs.ondeclaration(this.sectionStart, this.index);\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    };\n    Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    };\n    Tokenizer.prototype.stateBeforeComment = function (c) {\n        if (c === CharCodes.Dash) {\n            this.state = State.InCommentLike;\n            this.currentSequence = Sequences.CommentEnd;\n            // Allow short comments (eg. <!-->)\n            this.sequenceIndex = 2;\n            this.sectionStart = this.index + 1;\n        }\n        else {\n            this.state = State.InDeclaration;\n        }\n    };\n    Tokenizer.prototype.stateInSpecialComment = function (c) {\n        if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n            this.cbs.oncomment(this.sectionStart, this.index, 0);\n            this.state = State.Text;\n            this.sectionStart = this.index + 1;\n        }\n    };\n    Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n        var lower = c | 0x20;\n        if (lower === Sequences.ScriptEnd[3]) {\n            this.startSpecial(Sequences.ScriptEnd, 4);\n        }\n        else if (lower === Sequences.StyleEnd[3]) {\n            this.startSpecial(Sequences.StyleEnd, 4);\n        }\n        else {\n            this.state = State.InTagName;\n            this.stateInTagName(c); // Consume the token again\n        }\n    };\n    Tokenizer.prototype.stateBeforeEntity = function (c) {\n        // Start excess with 1 to include the '&'\n        this.entityExcess = 1;\n        this.entityResult = 0;\n        if (c === CharCodes.Number) {\n            this.state = State.BeforeNumericEntity;\n        }\n        else if (c === CharCodes.Amp) {\n            // We have two `&` characters in a row. Stay in the current state.\n        }\n        else {\n            this.trieIndex = 0;\n            this.trieCurrent = this.entityTrie[0];\n            this.state = State.InNamedEntity;\n            this.stateInNamedEntity(c);\n        }\n    };\n    Tokenizer.prototype.stateInNamedEntity = function (c) {\n        this.entityExcess += 1;\n        this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n        if (this.trieIndex < 0) {\n            this.emitNamedEntity();\n            this.index--;\n            return;\n        }\n        this.trieCurrent = this.entityTrie[this.trieIndex];\n        var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n        // If the branch is a value, store it and continue\n        if (masked) {\n            // The mask is the number of bytes of the value, including the current byte.\n            var valueLength = (masked >> 14) - 1;\n            // If we have a legacy entity while parsing strictly, just skip the number of bytes\n            if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n                this.trieIndex += valueLength;\n            }\n            else {\n                // Add 1 as we have already incremented the excess\n                var entityStart = this.index - this.entityExcess + 1;\n                if (entityStart > this.sectionStart) {\n                    this.emitPartial(this.sectionStart, entityStart);\n                }\n                // If this is a surrogate pair, consume the next two bytes\n                this.entityResult = this.trieIndex;\n                this.trieIndex += valueLength;\n                this.entityExcess = 0;\n                this.sectionStart = this.index + 1;\n                if (valueLength === 0) {\n                    this.emitNamedEntity();\n                }\n            }\n        }\n    };\n    Tokenizer.prototype.emitNamedEntity = function () {\n        this.state = this.baseState;\n        if (this.entityResult === 0) {\n            return;\n        }\n        var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n            14;\n        switch (valueLength) {\n            case 1: {\n                this.emitCodePoint(this.entityTrie[this.entityResult] &\n                    ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n                break;\n            }\n            case 2: {\n                this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n                break;\n            }\n            case 3: {\n                this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n                this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n            }\n        }\n    };\n    Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n        if ((c | 0x20) === CharCodes.LowerX) {\n            this.entityExcess++;\n            this.state = State.InHexEntity;\n        }\n        else {\n            this.state = State.InNumericEntity;\n            this.stateInNumericEntity(c);\n        }\n    };\n    Tokenizer.prototype.emitNumericEntity = function (strict) {\n        var entityStart = this.index - this.entityExcess - 1;\n        var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n        if (numberStart !== this.index) {\n            // Emit leading data if any\n            if (entityStart > this.sectionStart) {\n                this.emitPartial(this.sectionStart, entityStart);\n            }\n            this.sectionStart = this.index + Number(strict);\n            this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n        }\n        this.state = this.baseState;\n    };\n    Tokenizer.prototype.stateInNumericEntity = function (c) {\n        if (c === CharCodes.Semi) {\n            this.emitNumericEntity(true);\n        }\n        else if (isNumber(c)) {\n            this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n            this.entityExcess++;\n        }\n        else {\n            if (this.allowLegacyEntity()) {\n                this.emitNumericEntity(false);\n            }\n            else {\n                this.state = this.baseState;\n            }\n            this.index--;\n        }\n    };\n    Tokenizer.prototype.stateInHexEntity = function (c) {\n        if (c === CharCodes.Semi) {\n            this.emitNumericEntity(true);\n        }\n        else if (isNumber(c)) {\n            this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n            this.entityExcess++;\n        }\n        else if (isHexDigit(c)) {\n            this.entityResult =\n                this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n            this.entityExcess++;\n        }\n        else {\n            if (this.allowLegacyEntity()) {\n                this.emitNumericEntity(false);\n            }\n            else {\n                this.state = this.baseState;\n            }\n            this.index--;\n        }\n    };\n    Tokenizer.prototype.allowLegacyEntity = function () {\n        return (!this.xmlMode &&\n            (this.baseState === State.Text ||\n                this.baseState === State.InSpecialTag));\n    };\n    /**\n     * Remove data that has already been consumed from the buffer.\n     */\n    Tokenizer.prototype.cleanup = function () {\n        // If we are inside of text or attributes, emit what we already have.\n        if (this.running && this.sectionStart !== this.index) {\n            if (this.state === State.Text ||\n                (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n                this.cbs.ontext(this.sectionStart, this.index);\n                this.sectionStart = this.index;\n            }\n            else if (this.state === State.InAttributeValueDq ||\n                this.state === State.InAttributeValueSq ||\n                this.state === State.InAttributeValueNq) {\n                this.cbs.onattribdata(this.sectionStart, this.index);\n                this.sectionStart = this.index;\n            }\n        }\n    };\n    Tokenizer.prototype.shouldContinue = function () {\n        return this.index < this.buffer.length + this.offset && this.running;\n    };\n    /**\n     * Iterates through the buffer, calling the function corresponding to the current state.\n     *\n     * States that are more likely to be hit are higher up, as a performance improvement.\n     */\n    Tokenizer.prototype.parse = function () {\n        while (this.shouldContinue()) {\n            var c = this.buffer.charCodeAt(this.index - this.offset);\n            switch (this.state) {\n                case State.Text: {\n                    this.stateText(c);\n                    break;\n                }\n                case State.SpecialStartSequence: {\n                    this.stateSpecialStartSequence(c);\n                    break;\n                }\n                case State.InSpecialTag: {\n                    this.stateInSpecialTag(c);\n                    break;\n                }\n                case State.CDATASequence: {\n                    this.stateCDATASequence(c);\n                    break;\n                }\n                case State.InAttributeValueDq: {\n                    this.stateInAttributeValueDoubleQuotes(c);\n                    break;\n                }\n                case State.InAttributeName: {\n                    this.stateInAttributeName(c);\n                    break;\n                }\n                case State.InCommentLike: {\n                    this.stateInCommentLike(c);\n                    break;\n                }\n                case State.InSpecialComment: {\n                    this.stateInSpecialComment(c);\n                    break;\n                }\n                case State.BeforeAttributeName: {\n                    this.stateBeforeAttributeName(c);\n                    break;\n                }\n                case State.InTagName: {\n                    this.stateInTagName(c);\n                    break;\n                }\n                case State.InClosingTagName: {\n                    this.stateInClosingTagName(c);\n                    break;\n                }\n                case State.BeforeTagName: {\n                    this.stateBeforeTagName(c);\n                    break;\n                }\n                case State.AfterAttributeName: {\n                    this.stateAfterAttributeName(c);\n                    break;\n                }\n                case State.InAttributeValueSq: {\n                    this.stateInAttributeValueSingleQuotes(c);\n                    break;\n                }\n                case State.BeforeAttributeValue: {\n                    this.stateBeforeAttributeValue(c);\n                    break;\n                }\n                case State.BeforeClosingTagName: {\n                    this.stateBeforeClosingTagName(c);\n                    break;\n                }\n                case State.AfterClosingTagName: {\n                    this.stateAfterClosingTagName(c);\n                    break;\n                }\n                case State.BeforeSpecialS: {\n                    this.stateBeforeSpecialS(c);\n                    break;\n                }\n                case State.InAttributeValueNq: {\n                    this.stateInAttributeValueNoQuotes(c);\n                    break;\n                }\n                case State.InSelfClosingTag: {\n                    this.stateInSelfClosingTag(c);\n                    break;\n                }\n                case State.InDeclaration: {\n                    this.stateInDeclaration(c);\n                    break;\n                }\n                case State.BeforeDeclaration: {\n                    this.stateBeforeDeclaration(c);\n                    break;\n                }\n                case State.BeforeComment: {\n                    this.stateBeforeComment(c);\n                    break;\n                }\n                case State.InProcessingInstruction: {\n                    this.stateInProcessingInstruction(c);\n                    break;\n                }\n                case State.InNamedEntity: {\n                    this.stateInNamedEntity(c);\n                    break;\n                }\n                case State.BeforeEntity: {\n                    this.stateBeforeEntity(c);\n                    break;\n                }\n                case State.InHexEntity: {\n                    this.stateInHexEntity(c);\n                    break;\n                }\n                case State.InNumericEntity: {\n                    this.stateInNumericEntity(c);\n                    break;\n                }\n                default: {\n                    // `this._state === State.BeforeNumericEntity`\n                    this.stateBeforeNumericEntity(c);\n                }\n            }\n            this.index++;\n        }\n        this.cleanup();\n    };\n    Tokenizer.prototype.finish = function () {\n        if (this.state === State.InNamedEntity) {\n            this.emitNamedEntity();\n        }\n        // If there is remaining data, emit it in a reasonable way\n        if (this.sectionStart < this.index) {\n            this.handleTrailingData();\n        }\n        this.cbs.onend();\n    };\n    /** Handle any trailing data. */\n    Tokenizer.prototype.handleTrailingData = function () {\n        var endIndex = this.buffer.length + this.offset;\n        if (this.state === State.InCommentLike) {\n            if (this.currentSequence === Sequences.CdataEnd) {\n                this.cbs.oncdata(this.sectionStart, endIndex, 0);\n            }\n            else {\n                this.cbs.oncomment(this.sectionStart, endIndex, 0);\n            }\n        }\n        else if (this.state === State.InNumericEntity &&\n            this.allowLegacyEntity()) {\n            this.emitNumericEntity(false);\n            // All trailing data will have been consumed\n        }\n        else if (this.state === State.InHexEntity &&\n            this.allowLegacyEntity()) {\n            this.emitNumericEntity(false);\n            // All trailing data will have been consumed\n        }\n        else if (this.state === State.InTagName ||\n            this.state === State.BeforeAttributeName ||\n            this.state === State.BeforeAttributeValue ||\n            this.state === State.AfterAttributeName ||\n            this.state === State.InAttributeName ||\n            this.state === State.InAttributeValueSq ||\n            this.state === State.InAttributeValueDq ||\n            this.state === State.InAttributeValueNq ||\n            this.state === State.InClosingTagName) {\n            /*\n             * If we are currently in an opening or closing tag, us not calling the\n             * respective callback signals that the tag should be ignored.\n             */\n        }\n        else {\n            this.cbs.ontext(this.sectionStart, endIndex);\n        }\n    };\n    Tokenizer.prototype.emitPartial = function (start, endIndex) {\n        if (this.baseState !== State.Text &&\n            this.baseState !== State.InSpecialTag) {\n            this.cbs.onattribdata(start, endIndex);\n        }\n        else {\n            this.cbs.ontext(start, endIndex);\n        }\n    };\n    Tokenizer.prototype.emitCodePoint = function (cp) {\n        if (this.baseState !== State.Text &&\n            this.baseState !== State.InSpecialTag) {\n            this.cbs.onattribentity(cp);\n        }\n        else {\n            this.cbs.ontextentity(cp);\n        }\n    };\n    return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar formTags = new Set([\n    \"input\",\n    \"option\",\n    \"optgroup\",\n    \"select\",\n    \"button\",\n    \"datalist\",\n    \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar tableSectionTags = new Set([\"thead\", \"tbody\"]);\nvar ddtTags = new Set([\"dd\", \"dt\"]);\nvar rtpTags = new Set([\"rt\", \"rp\"]);\nvar openImpliesClose = new Map([\n    [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n    [\"th\", new Set([\"th\"])],\n    [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n    [\"body\", new Set([\"head\", \"link\", \"script\"])],\n    [\"li\", new Set([\"li\"])],\n    [\"p\", pTag],\n    [\"h1\", pTag],\n    [\"h2\", pTag],\n    [\"h3\", pTag],\n    [\"h4\", pTag],\n    [\"h5\", pTag],\n    [\"h6\", pTag],\n    [\"select\", formTags],\n    [\"input\", formTags],\n    [\"output\", formTags],\n    [\"button\", formTags],\n    [\"datalist\", formTags],\n    [\"textarea\", formTags],\n    [\"option\", new Set([\"option\"])],\n    [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n    [\"dd\", ddtTags],\n    [\"dt\", ddtTags],\n    [\"address\", pTag],\n    [\"article\", pTag],\n    [\"aside\", pTag],\n    [\"blockquote\", pTag],\n    [\"details\", pTag],\n    [\"div\", pTag],\n    [\"dl\", pTag],\n    [\"fieldset\", pTag],\n    [\"figcaption\", pTag],\n    [\"figure\", pTag],\n    [\"footer\", pTag],\n    [\"form\", pTag],\n    [\"header\", pTag],\n    [\"hr\", pTag],\n    [\"main\", pTag],\n    [\"nav\", pTag],\n    [\"ol\", pTag],\n    [\"pre\", pTag],\n    [\"section\", pTag],\n    [\"table\", pTag],\n    [\"ul\", pTag],\n    [\"rt\", rtpTags],\n    [\"rp\", rtpTags],\n    [\"tbody\", tableSectionTags],\n    [\"tfoot\", tableSectionTags],\n]);\nvar voidElements = new Set([\n    \"area\",\n    \"base\",\n    \"basefont\",\n    \"br\",\n    \"col\",\n    \"command\",\n    \"embed\",\n    \"frame\",\n    \"hr\",\n    \"img\",\n    \"input\",\n    \"isindex\",\n    \"keygen\",\n    \"link\",\n    \"meta\",\n    \"param\",\n    \"source\",\n    \"track\",\n    \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n    \"mi\",\n    \"mo\",\n    \"mn\",\n    \"ms\",\n    \"mtext\",\n    \"annotation-xml\",\n    \"foreignobject\",\n    \"desc\",\n    \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n    function Parser(cbs, options) {\n        if (options === void 0) { options = {}; }\n        var _a, _b, _c, _d, _e;\n        this.options = options;\n        /** The start index of the last event. */\n        this.startIndex = 0;\n        /** The end index of the last event. */\n        this.endIndex = 0;\n        /**\n         * Store the start index of the current open tag,\n         * so we can update the start index for attributes.\n         */\n        this.openTagStart = 0;\n        this.tagname = \"\";\n        this.attribname = \"\";\n        this.attribvalue = \"\";\n        this.attribs = null;\n        this.stack = [];\n        this.foreignContext = [];\n        this.buffers = [];\n        this.bufferOffset = 0;\n        /** The index of the last written buffer. Used when resuming after a `pause()`. */\n        this.writeIndex = 0;\n        /** Indicates whether the parser has finished running / `.end` has been called. */\n        this.ended = false;\n        this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n        this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n        this.lowerCaseAttributeNames =\n            (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n        this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);\n        (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n    }\n    // Tokenizer event handlers\n    /** @internal */\n    Parser.prototype.ontext = function (start, endIndex) {\n        var _a, _b;\n        var data = this.getSlice(start, endIndex);\n        this.endIndex = endIndex - 1;\n        (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n        this.startIndex = endIndex;\n    };\n    /** @internal */\n    Parser.prototype.ontextentity = function (cp) {\n        var _a, _b;\n        /*\n         * Entities can be emitted on the character, or directly after.\n         * We use the section start here to get accurate indices.\n         */\n        var index = this.tokenizer.getSectionStart();\n        this.endIndex = index - 1;\n        (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));\n        this.startIndex = index;\n    };\n    Parser.prototype.isVoidElement = function (name) {\n        return !this.options.xmlMode && voidElements.has(name);\n    };\n    /** @internal */\n    Parser.prototype.onopentagname = function (start, endIndex) {\n        this.endIndex = endIndex;\n        var name = this.getSlice(start, endIndex);\n        if (this.lowerCaseTagNames) {\n            name = name.toLowerCase();\n        }\n        this.emitOpenTag(name);\n    };\n    Parser.prototype.emitOpenTag = function (name) {\n        var _a, _b, _c, _d;\n        this.openTagStart = this.startIndex;\n        this.tagname = name;\n        var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n        if (impliesClose) {\n            while (this.stack.length > 0 &&\n                impliesClose.has(this.stack[this.stack.length - 1])) {\n                var element = this.stack.pop();\n                (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n            }\n        }\n        if (!this.isVoidElement(name)) {\n            this.stack.push(name);\n            if (foreignContextElements.has(name)) {\n                this.foreignContext.push(true);\n            }\n            else if (htmlIntegrationElements.has(name)) {\n                this.foreignContext.push(false);\n            }\n        }\n        (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n        if (this.cbs.onopentag)\n            this.attribs = {};\n    };\n    Parser.prototype.endOpenTag = function (isImplied) {\n        var _a, _b;\n        this.startIndex = this.openTagStart;\n        if (this.attribs) {\n            (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n            this.attribs = null;\n        }\n        if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n            this.cbs.onclosetag(this.tagname, true);\n        }\n        this.tagname = \"\";\n    };\n    /** @internal */\n    Parser.prototype.onopentagend = function (endIndex) {\n        this.endIndex = endIndex;\n        this.endOpenTag(false);\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.onclosetag = function (start, endIndex) {\n        var _a, _b, _c, _d, _e, _f;\n        this.endIndex = endIndex;\n        var name = this.getSlice(start, endIndex);\n        if (this.lowerCaseTagNames) {\n            name = name.toLowerCase();\n        }\n        if (foreignContextElements.has(name) ||\n            htmlIntegrationElements.has(name)) {\n            this.foreignContext.pop();\n        }\n        if (!this.isVoidElement(name)) {\n            var pos = this.stack.lastIndexOf(name);\n            if (pos !== -1) {\n                if (this.cbs.onclosetag) {\n                    var count = this.stack.length - pos;\n                    while (count--) {\n                        // We know the stack has sufficient elements.\n                        this.cbs.onclosetag(this.stack.pop(), count !== 0);\n                    }\n                }\n                else\n                    this.stack.length = pos;\n            }\n            else if (!this.options.xmlMode && name === \"p\") {\n                // Implicit open before close\n                this.emitOpenTag(\"p\");\n                this.closeCurrentTag(true);\n            }\n        }\n        else if (!this.options.xmlMode && name === \"br\") {\n            // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n            (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n            (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n            (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.onselfclosingtag = function (endIndex) {\n        this.endIndex = endIndex;\n        if (this.options.xmlMode ||\n            this.options.recognizeSelfClosing ||\n            this.foreignContext[this.foreignContext.length - 1]) {\n            this.closeCurrentTag(false);\n            // Set `startIndex` for next node\n            this.startIndex = endIndex + 1;\n        }\n        else {\n            // Ignore the fact that the tag is self-closing.\n            this.onopentagend(endIndex);\n        }\n    };\n    Parser.prototype.closeCurrentTag = function (isOpenImplied) {\n        var _a, _b;\n        var name = this.tagname;\n        this.endOpenTag(isOpenImplied);\n        // Self-closing tags will be on the top of the stack\n        if (this.stack[this.stack.length - 1] === name) {\n            // If the opening tag isn't implied, the closing tag has to be implied.\n            (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n            this.stack.pop();\n        }\n    };\n    /** @internal */\n    Parser.prototype.onattribname = function (start, endIndex) {\n        this.startIndex = start;\n        var name = this.getSlice(start, endIndex);\n        this.attribname = this.lowerCaseAttributeNames\n            ? name.toLowerCase()\n            : name;\n    };\n    /** @internal */\n    Parser.prototype.onattribdata = function (start, endIndex) {\n        this.attribvalue += this.getSlice(start, endIndex);\n    };\n    /** @internal */\n    Parser.prototype.onattribentity = function (cp) {\n        this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);\n    };\n    /** @internal */\n    Parser.prototype.onattribend = function (quote, endIndex) {\n        var _a, _b;\n        this.endIndex = endIndex;\n        (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double\n            ? '\"'\n            : quote === Tokenizer_js_1.QuoteType.Single\n                ? \"'\"\n                : quote === Tokenizer_js_1.QuoteType.NoValue\n                    ? undefined\n                    : null);\n        if (this.attribs &&\n            !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n            this.attribs[this.attribname] = this.attribvalue;\n        }\n        this.attribvalue = \"\";\n    };\n    Parser.prototype.getInstructionName = function (value) {\n        var index = value.search(reNameEnd);\n        var name = index < 0 ? value : value.substr(0, index);\n        if (this.lowerCaseTagNames) {\n            name = name.toLowerCase();\n        }\n        return name;\n    };\n    /** @internal */\n    Parser.prototype.ondeclaration = function (start, endIndex) {\n        this.endIndex = endIndex;\n        var value = this.getSlice(start, endIndex);\n        if (this.cbs.onprocessinginstruction) {\n            var name = this.getInstructionName(value);\n            this.cbs.onprocessinginstruction(\"!\".concat(name), \"!\".concat(value));\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.onprocessinginstruction = function (start, endIndex) {\n        this.endIndex = endIndex;\n        var value = this.getSlice(start, endIndex);\n        if (this.cbs.onprocessinginstruction) {\n            var name = this.getInstructionName(value);\n            this.cbs.onprocessinginstruction(\"?\".concat(name), \"?\".concat(value));\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.oncomment = function (start, endIndex, offset) {\n        var _a, _b, _c, _d;\n        this.endIndex = endIndex;\n        (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n        (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.oncdata = function (start, endIndex, offset) {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n        this.endIndex = endIndex;\n        var value = this.getSlice(start, endIndex - offset);\n        if (this.options.xmlMode || this.options.recognizeCDATA) {\n            (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n            (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n            (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n        }\n        else {\n            (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, \"[CDATA[\".concat(value, \"]]\"));\n            (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n        }\n        // Set `startIndex` for next node\n        this.startIndex = endIndex + 1;\n    };\n    /** @internal */\n    Parser.prototype.onend = function () {\n        var _a, _b;\n        if (this.cbs.onclosetag) {\n            // Set the end index for all remaining tags\n            this.endIndex = this.startIndex;\n            for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n                ;\n        }\n        (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n    };\n    /**\n     * Resets the parser to a blank state, ready to parse a new HTML document\n     */\n    Parser.prototype.reset = function () {\n        var _a, _b, _c, _d;\n        (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n        this.tokenizer.reset();\n        this.tagname = \"\";\n        this.attribname = \"\";\n        this.attribs = null;\n        this.stack.length = 0;\n        this.startIndex = 0;\n        this.endIndex = 0;\n        (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n        this.buffers.length = 0;\n        this.bufferOffset = 0;\n        this.writeIndex = 0;\n        this.ended = false;\n    };\n    /**\n     * Resets the parser, then parses a complete document and\n     * pushes it to the handler.\n     *\n     * @param data Document to parse.\n     */\n    Parser.prototype.parseComplete = function (data) {\n        this.reset();\n        this.end(data);\n    };\n    Parser.prototype.getSlice = function (start, end) {\n        while (start - this.bufferOffset >= this.buffers[0].length) {\n            this.shiftBuffer();\n        }\n        var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n        while (end - this.bufferOffset > this.buffers[0].length) {\n            this.shiftBuffer();\n            slice += this.buffers[0].slice(0, end - this.bufferOffset);\n        }\n        return slice;\n    };\n    Parser.prototype.shiftBuffer = function () {\n        this.bufferOffset += this.buffers[0].length;\n        this.writeIndex--;\n        this.buffers.shift();\n    };\n    /**\n     * Parses a chunk of data and calls the corresponding callbacks.\n     *\n     * @param chunk Chunk to parse.\n     */\n    Parser.prototype.write = function (chunk) {\n        var _a, _b;\n        if (this.ended) {\n            (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n            return;\n        }\n        this.buffers.push(chunk);\n        if (this.tokenizer.running) {\n            this.tokenizer.write(chunk);\n            this.writeIndex++;\n        }\n    };\n    /**\n     * Parses the end of the buffer and clears the stack, calls onend.\n     *\n     * @param chunk Optional final chunk to parse.\n     */\n    Parser.prototype.end = function (chunk) {\n        var _a, _b;\n        if (this.ended) {\n            (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n            return;\n        }\n        if (chunk)\n            this.write(chunk);\n        this.ended = true;\n        this.tokenizer.end();\n    };\n    /**\n     * Pauses parsing. The parser won't emit events until `resume` is called.\n     */\n    Parser.prototype.pause = function () {\n        this.tokenizer.pause();\n    };\n    /**\n     * Resumes parsing after `pause` was called.\n     */\n    Parser.prototype.resume = function () {\n        this.tokenizer.resume();\n        while (this.tokenizer.running &&\n            this.writeIndex < this.buffers.length) {\n            this.tokenizer.write(this.buffers[this.writeIndex++]);\n        }\n        if (this.ended)\n            this.tokenizer.end();\n    };\n    /**\n     * Alias of `write`, for backwards compatibility.\n     *\n     * @param chunk Chunk to parse.\n     * @deprecated\n     */\n    Parser.prototype.parseChunk = function (chunk) {\n        this.write(chunk);\n    };\n    /**\n     * Alias of `end`, for backwards compatibility.\n     *\n     * @param chunk Optional final chunk to parse.\n     * @deprecated\n     */\n    Parser.prototype.done = function (chunk) {\n        this.end(chunk);\n    };\n    return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n    var handler = new domhandler_1.DomHandler(undefined, options);\n    new Parser_js_1.Parser(handler, options).end(data);\n    return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n    return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(callback, options, elementCallback) {\n    var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n    return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n    if (options === void 0) { options = parseFeedDefaultOptions; }\n    return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MicrodataRdfParser = void 0;\nconst htmlparser2_1 = require(\"htmlparser2\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst ItemPropertyHandlerContent_1 = require(\"./propertyhandler/ItemPropertyHandlerContent\");\nconst ItemPropertyHandlerNumber_1 = require(\"./propertyhandler/ItemPropertyHandlerNumber\");\nconst ItemPropertyHandlerTime_1 = require(\"./propertyhandler/ItemPropertyHandlerTime\");\nconst ItemPropertyHandlerUrl_1 = require(\"./propertyhandler/ItemPropertyHandlerUrl\");\nconst Util_1 = require(\"./Util\");\nconst VOCAB_REGISTRY_DEFAULT = require(\"./vocab-registry-default.json\");\n/**\n * A stream transformer that parses Microdata (text) streams to an {@link RDF.Stream}.\n */\nclass MicrodataRdfParser extends readable_stream_1.Transform {\n    constructor(options) {\n        super({ readableObjectMode: true });\n        // Stacks, where the key is the current depth.\n        this.itemScopeStack = [];\n        this.textBufferStack = [];\n        // Variables for managing itemrefs.\n        this.isEmittingReferences = false;\n        this.pendingItemRefsDomain = {};\n        this.pendingItemRefsRangeFinalized = {};\n        // eslint-disable-next-line lines-between-class-members\n        this.pendingItemRefsRangeCollecting = {};\n        options = options || {};\n        this.options = options;\n        this.util = new Util_1.Util(options.dataFactory, options.baseIRI);\n        this.defaultGraph = options.defaultGraph || this.util.dataFactory.defaultGraph();\n        this.htmlParseListener = options.htmlParseListener;\n        this.vocabRegistry = options.vocabRegistry || VOCAB_REGISTRY_DEFAULT;\n        this.parser = this.initializeParser(!!options.xmlMode);\n    }\n    /**\n     * Parses the given text stream into a quad stream.\n     * @param {NodeJS.EventEmitter} stream A text stream.\n     * @return {RDF.Stream} A quad stream.\n     */\n    import(stream) {\n        const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n        stream.on('error', (error) => parsed.emit('error', error));\n        stream.on('data', (data) => output.push(data));\n        stream.on('end', () => output.push(null));\n        const parsed = output.pipe(new MicrodataRdfParser(this.options));\n        return parsed;\n    }\n    _transform(chunk, encoding, callback) {\n        this.parser.write(chunk.toString());\n        callback();\n    }\n    _flush(callback) {\n        this.parser.end();\n        callback();\n    }\n    /**\n     * Get the current item scope for the current depth.\n     * This will skip all undefined item scopes.\n     * @param parent If we should start looking one level higher in the stack.\n     */\n    getItemScope(parent) {\n        let parentTagI = this.itemScopeStack.length - (parent ? 2 : 1);\n        while (parentTagI > 0 && !this.itemScopeStack[parentTagI]) {\n            parentTagI--;\n        }\n        return this.itemScopeStack[parentTagI];\n    }\n    /**\n     * Get the current stack depth.\n     */\n    getDepth() {\n        return this.itemScopeStack.length;\n    }\n    onTagOpen(name, attributes) {\n        if (!this.isEmittingReferences) {\n            // If the tag has an 'id', start collecting the whole stack in the item reference buffer\n            if ('id' in attributes) {\n                const id = attributes.id;\n                this.pendingItemRefsRangeCollecting[id] = {\n                    events: [],\n                    counter: 0,\n                    ids: [],\n                };\n            }\n            // Store this event in all collecting item reference buffers\n            for (const buffer of Object.values(this.pendingItemRefsRangeCollecting)) {\n                buffer.counter++;\n                buffer.events.push({ type: 'open', name, attributes });\n            }\n        }\n        // Ensure the text buffer stack is in line with the stack depth\n        this.textBufferStack.push(undefined);\n        // Processing steps based on https://w3c.github.io/microdata-rdf/#rdf-conversion-algorithm\n        // 1. Determine the current item scope\n        let itemScope;\n        if ('itemscope' in attributes) {\n            // Create a new item scope\n            let subject;\n            if (this.emittingReferencesItemScopeIdGenerator) {\n                subject = this.emittingReferencesItemScopeIdGenerator();\n            }\n            else {\n                subject = 'itemid' in attributes && this.util.createSubject(attributes.itemid) ||\n                    this.util.dataFactory.blankNode();\n                // Store the genererated id in all collecting item reference buffers\n                for (const buffer of Object.values(this.pendingItemRefsRangeCollecting)) {\n                    buffer.ids.push(subject);\n                }\n            }\n            itemScope = { subject };\n            // If the id was reused from a reference, block any new triples to be generated from it\n            if (this.isEmittingReferences) {\n                itemScope.blockEmission = true;\n            }\n            // Inherit vocab from parent item scope\n            const parentItemScope = this.getItemScope();\n            if (parentItemScope && parentItemScope.vocab) {\n                itemScope.vocab = parentItemScope.vocab;\n            }\n            // 2. Push any changes to the item scope to the stack\n            this.itemScopeStack.push(itemScope);\n        }\n        else {\n            // Determine the parent item scope\n            itemScope = this.getItemScope();\n            // 2. Push any changes to the item scope to the stack\n            this.itemScopeStack.push(undefined);\n        }\n        // If we have a valid item scope, process the current node\n        if (itemScope) {\n            // 3. Handle item types\n            if ('itemtype' in attributes) {\n                for (const type of this.util.createVocabIris(attributes.itemtype, itemScope, false)) {\n                    // 4. Vocab identifier is the first valid item\n                    if (!itemScope.vocab) {\n                        // 5. Modify vocab based on registry\n                        itemScope.vocab = this.util.deriveVocab(type.value, this.vocabRegistry);\n                    }\n                    // Emit item type\n                    if (!itemScope.blockEmission) {\n                        this.emitTriple(itemScope.subject, this.util.dataFactory.namedNode(`${Util_1.Util.RDF}type`), type);\n                    }\n                }\n            }\n            // Save language in item scope\n            if ('lang' in attributes) {\n                itemScope.language = attributes.lang;\n            }\n            if ('xml:lang' in attributes) {\n                itemScope.language = attributes['xml:lang'];\n            }\n            // Handle itemrefs (only if we also had an itemscope)\n            // If we have an itemref, store it in our domain buffer.\n            if ('itemscope' in attributes &&\n                !this.isEmittingReferences && 'itemref' in attributes) {\n                for (const reference of attributes.itemref.split(/\\s+/u)) {\n                    if (!(reference in this.pendingItemRefsDomain)) {\n                        this.pendingItemRefsDomain[reference] = [];\n                    }\n                    this.pendingItemRefsDomain[reference].push(itemScope);\n                    this.tryToEmitReferences(reference, itemScope);\n                }\n            }\n        }\n        // 6. Handle item properties\n        if ('itemprop' in attributes) {\n            this.handleItemProperties(attributes.itemprop, false, itemScope, name, attributes);\n        }\n        // Handle reverse item properties\n        // https://w3c.github.io/microdata-rdf/#reverse-itemprop\n        if ('itemprop-reverse' in attributes) {\n            this.handleItemProperties(attributes['itemprop-reverse'], true, itemScope, name, attributes);\n        }\n    }\n    onText(data) {\n        // Store this event in all collecting item reference buffers\n        if (!this.isEmittingReferences) {\n            for (const buffer of Object.values(this.pendingItemRefsRangeCollecting)) {\n                buffer.events.push({ type: 'text', data });\n            }\n        }\n        // Save the text inside all item scopes that need to collect text\n        for (const textBuffer of this.textBufferStack) {\n            if (textBuffer) {\n                textBuffer.push(data);\n            }\n        }\n    }\n    onTagClose() {\n        // Store this event in all collecting item reference buffers\n        if (!this.isEmittingReferences) {\n            for (const [reference, buffer] of Object.entries(this.pendingItemRefsRangeCollecting)) {\n                buffer.counter--;\n                buffer.events.push({ type: 'close' });\n                // Once the counter becomes zero, the tag is fully buffered, so we finalize it.\n                if (buffer.counter === 0) {\n                    this.pendingItemRefsRangeFinalized[reference] = buffer;\n                    delete this.pendingItemRefsRangeCollecting[reference];\n                    // Try to emit this reference with buffered domain items\n                    this.tryToEmitReferences(reference);\n                }\n            }\n        }\n        // Emit all triples that were determined in the active tag\n        const itemScope = this.getItemScope(true);\n        if (itemScope) {\n            const depth = this.getDepth();\n            if (itemScope.predicates && depth in itemScope.predicates) {\n                for (const [predicateKey, predicates] of Object.entries(itemScope.predicates[depth])) {\n                    // First check if we have a child item scope, otherwise get the text content\n                    // Safely cast textBufferStack, as it is always defined when itemScope.predicates is defined.\n                    const object = this.util.createLiteral(this.textBufferStack[depth].join(''), itemScope);\n                    this.emitPredicateTriples(itemScope, predicates, object, predicateKey === 'reverse');\n                    delete itemScope.predicates[depth][predicateKey];\n                }\n            }\n        }\n        // Remove the active tag from the stack\n        this.itemScopeStack.pop();\n        this.textBufferStack.pop();\n    }\n    onEnd() {\n        // Nothing important should happen here.\n    }\n    /**\n     * Initialize a new HtmlParser.\n     * @param xmlMode If the parser should be setup in strict mode.\n     */\n    initializeParser(xmlMode) {\n        return new htmlparser2_1.Parser({\n            onclosetag: () => {\n                try {\n                    this.onTagClose();\n                    if (this.htmlParseListener) {\n                        this.htmlParseListener.onTagClose();\n                    }\n                }\n                catch (error) {\n                    this.emit('error', error);\n                }\n            },\n            onend: () => {\n                try {\n                    this.onEnd();\n                    if (this.htmlParseListener) {\n                        this.htmlParseListener.onEnd();\n                    }\n                }\n                catch (error) {\n                    this.emit('error', error);\n                }\n            },\n            onopentag: (name, attributes) => {\n                try {\n                    this.onTagOpen(name, attributes);\n                    if (this.htmlParseListener) {\n                        this.htmlParseListener.onTagOpen(name, attributes);\n                    }\n                }\n                catch (error) {\n                    this.emit('error', error);\n                }\n            },\n            ontext: (data) => {\n                try {\n                    this.onText(data);\n                    if (this.htmlParseListener) {\n                        this.htmlParseListener.onText(data);\n                    }\n                }\n                catch (error) {\n                    this.emit('error', error);\n                }\n            },\n        }, {\n            decodeEntities: true,\n            recognizeSelfClosing: true,\n            xmlMode,\n        });\n    }\n    /**\n     * Handle the given item properties.\n     * @param itempropValue The value of itemprop or itemprop-reverse.\n     * @param reverse If the item properties are reversed (itemprop-reverse).\n     * @param itemScope The current item scope.\n     * @param tagName The current tag name.\n     * @param tagAttributes The current tag attributes.\n     */\n    handleItemProperties(itempropValue, reverse, itemScope, tagName, tagAttributes) {\n        const parentItemScope = this.getItemScope(true);\n        if (parentItemScope) {\n            // Set predicates in the scope, and handle them on tag close.\n            const depth = this.getDepth();\n            const predicates = this.util.createVocabIris(itempropValue, parentItemScope, true);\n            if (!parentItemScope.predicates) {\n                parentItemScope.predicates = {};\n            }\n            if (!parentItemScope.predicates[depth]) {\n                parentItemScope.predicates[depth] = {};\n            }\n            const predicatesKey = reverse ? 'reverse' : 'forward';\n            parentItemScope.predicates[depth][predicatesKey] = predicates;\n            // Append rdf:type predicate if vocabulary expansion applies\n            for (const vocabularyExpansionType of this.util.getVocabularyExpansionType(itempropValue, parentItemScope, this.vocabRegistry)) {\n                predicates.push(vocabularyExpansionType);\n            }\n            // Check if a property handler that applies, forcefully use that as predicate value.\n            // But DON'T call handlers in this prop is a direct (nested) itemscope.\n            if (itemScope && 'itemscope' in tagAttributes) {\n                this.emitPredicateTriples(parentItemScope, predicates, itemScope.subject, reverse);\n                // Finalize the predicates, so text values do not apply to them.\n                delete parentItemScope.predicates[depth][predicatesKey];\n            }\n            else {\n                for (const handler of MicrodataRdfParser.ITEM_PROPERTY_HANDLERS) {\n                    if (handler.canHandle(tagName, tagAttributes)) {\n                        const object = handler.getObject(tagAttributes, this.util, parentItemScope);\n                        this.emitPredicateTriples(parentItemScope, predicates, object, reverse);\n                        // Finalize the predicates, so text values do not apply to them.\n                        delete parentItemScope.predicates[depth][predicatesKey];\n                    }\n                }\n            }\n            // If no valid handler was found, indicate that we should collect text at this depth.\n            if (parentItemScope.predicates[depth][predicatesKey]) {\n                this.textBufferStack[depth] = [];\n            }\n        }\n    }\n    /**\n     * Emit the given object for the given predicates.\n     * @param itemScope The current item scope.\n     * @param predicates An array of predicates.\n     * @param object An object.\n     * @param reverse If the triples should be reversed.\n     */\n    emitPredicateTriples(itemScope, predicates, object, reverse) {\n        if (!itemScope.blockEmission) {\n            for (const predicate of predicates) {\n                if (reverse) {\n                    // Literals can not exist in subject position, so they must be ignored.\n                    if (object.termType !== 'Literal') {\n                        this.emitTriple(object, predicate, itemScope.subject);\n                    }\n                }\n                else {\n                    this.emitTriple(itemScope.subject, predicate, object);\n                }\n            }\n        }\n    }\n    /**\n     * Emit the given triple to the stream.\n     * @param {Quad_Subject} subject A subject term.\n     * @param {Quad_Predicate} predicate A predicate term.\n     * @param {Quad_Object} object An object term.\n     */\n    emitTriple(subject, predicate, object) {\n        this.push(this.util.dataFactory.quad(subject, predicate, object, this.defaultGraph));\n    }\n    /**\n     * Attempt to emit all pending itemrefs for the given reference.\n     * @param reference An item reference id.\n     * @param itemScopeDomain An optional item scope. If defined, only refs from this scope will be emitted.\n     */\n    tryToEmitReferences(reference, itemScopeDomain) {\n        const range = this.pendingItemRefsRangeFinalized[reference];\n        if (range) {\n            // Determine the item scope domains to emit\n            let applicableItemScopes;\n            if (itemScopeDomain) {\n                applicableItemScopes = [itemScopeDomain];\n                // Remove the item from the pending array\n                // Element is guaranteed to exist in buffer\n                const itemScopeDomainIndex = this.pendingItemRefsDomain[reference].indexOf(itemScopeDomain);\n                this.pendingItemRefsDomain[reference].splice(itemScopeDomainIndex, 1);\n            }\n            else {\n                applicableItemScopes = this.pendingItemRefsDomain[reference];\n                // Remove all items from the pending array\n                delete this.pendingItemRefsDomain[reference];\n            }\n            if (applicableItemScopes) {\n                // Save the stack state\n                const itemScopeStackOld = this.itemScopeStack;\n                const textBufferStackOld = this.textBufferStack;\n                this.isEmittingReferences = true;\n                // For all applicable item scopes, emit the buffered events.\n                for (const itemScope of applicableItemScopes) {\n                    this.itemScopeStack = [itemScope];\n                    this.textBufferStack = [undefined];\n                    const pendingIds = [...range.ids];\n                    this.emittingReferencesItemScopeIdGenerator = () => pendingIds.shift();\n                    for (const event of range.events) {\n                        switch (event.type) {\n                            case 'open':\n                                this.onTagOpen(event.name, event.attributes);\n                                break;\n                            case 'text':\n                                this.onText(event.data);\n                                break;\n                            case 'close':\n                                this.onTagClose();\n                                break;\n                        }\n                    }\n                }\n                // Restore the stack state\n                this.emittingReferencesItemScopeIdGenerator = undefined;\n                this.itemScopeStack = itemScopeStackOld;\n                this.textBufferStack = textBufferStackOld;\n                this.isEmittingReferences = false;\n            }\n        }\n    }\n}\nexports.MicrodataRdfParser = MicrodataRdfParser;\nMicrodataRdfParser.ITEM_PROPERTY_HANDLERS = [\n    new ItemPropertyHandlerContent_1.ItemPropertyHandlerContent(),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('a', 'href'),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('area', 'href'),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('audio', 'src'),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('embed', 'src'),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('iframe', 'src'),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('img', 'src'),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('link', 'href'),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('object', 'data'),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('source', 'src'),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('track', 'src'),\n    new ItemPropertyHandlerUrl_1.ItemPropertyHandlerUrl('video', 'src'),\n    new ItemPropertyHandlerNumber_1.ItemPropertyHandlerNumber('data', 'value'),\n    new ItemPropertyHandlerNumber_1.ItemPropertyHandlerNumber('meter', 'value'),\n    new ItemPropertyHandlerTime_1.ItemPropertyHandlerTime(),\n];\n//# sourceMappingURL=MicrodataRdfParser.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/propertyhandler/IItemPropertyHandler\"), exports);\n__exportStar(require(\"./lib/propertyhandler/ItemPropertyHandlerContent\"), exports);\n__exportStar(require(\"./lib/propertyhandler/ItemPropertyHandlerNumber\"), exports);\n__exportStar(require(\"./lib/propertyhandler/ItemPropertyHandlerTime\"), exports);\n__exportStar(require(\"./lib/propertyhandler/ItemPropertyHandlerUrl\"), exports);\n__exportStar(require(\"./lib/IHtmlParseListener\"), exports);\n__exportStar(require(\"./lib/IItemScope\"), exports);\n__exportStar(require(\"./lib/IVocabRegistry\"), exports);\n__exportStar(require(\"./lib/MicrodataRdfParser\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseHtmlMicrodata = void 0;\nconst bus_rdf_parse_html_1 = require(\"@comunica/bus-rdf-parse-html\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst microdata_rdf_streaming_parser_1 = require(\"microdata-rdf-streaming-parser\");\n/**\n * A comunica Microdata RDF Parse Html Actor.\n */\nclass ActorRdfParseHtmlMicrodata extends bus_rdf_parse_html_1.ActorRdfParseHtml {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const mediaType = action.headers ? action.headers.get('content-type') : null;\n        const xmlMode = mediaType?.includes('xml');\n        const htmlParseListener = new microdata_rdf_streaming_parser_1.MicrodataRdfParser({ dataFactory, baseIRI: action.baseIRI, xmlMode });\n        htmlParseListener.on('error', action.error);\n        htmlParseListener.on('data', action.emit);\n        // eslint-disable-next-line ts/unbound-method\n        const onTagEndOld = htmlParseListener.onEnd;\n        htmlParseListener.onEnd = () => {\n            onTagEndOld.call(htmlParseListener);\n            action.end();\n        };\n        return { htmlParseListener };\n    }\n}\nexports.ActorRdfParseHtmlMicrodata = ActorRdfParseHtmlMicrodata;\n//# sourceMappingURL=ActorRdfParseHtmlMicrodata.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParseHtmlMicrodata\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseHtmlRdfa = void 0;\nconst bus_rdf_parse_html_1 = require(\"@comunica/bus-rdf-parse-html\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst rdfa_streaming_parser_1 = require(\"rdfa-streaming-parser\");\n/**\n * A comunica RDFa RDF Parse Html Actor.\n */\nclass ActorRdfParseHtmlRdfa extends bus_rdf_parse_html_1.ActorRdfParseHtml {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const mediaType = action.headers ? action.headers.get('content-type') : null;\n        const language = (action.headers && action.headers.get('content-language')) ?? undefined;\n        const profile = mediaType && mediaType.includes('xml') ? 'xhtml' : 'html';\n        const htmlParseListener = new rdfa_streaming_parser_1.RdfaParser({ dataFactory, baseIRI: action.baseIRI, profile, language });\n        htmlParseListener.on('error', action.error);\n        htmlParseListener.on('data', action.emit);\n        // eslint-disable-next-line ts/unbound-method\n        const onTagEndOld = htmlParseListener.onEnd;\n        htmlParseListener.onEnd = () => {\n            onTagEndOld.call(htmlParseListener);\n            action.end();\n        };\n        return { htmlParseListener };\n    }\n}\nexports.ActorRdfParseHtmlRdfa = ActorRdfParseHtmlRdfa;\n//# sourceMappingURL=ActorRdfParseHtmlRdfa.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParseHtmlRdfa\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfResolveHypermediaLinks = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for rdf-resolve-hypermedia-links events.\n *\n * Actor types:\n * * Input:  IActionRdfResolveHypermediaLinks:      The metadata from which the links should be extracted.\n * * Test:   <none>\n * * Output: IActorRdfResolveHypermediaLinksOutput: The URLs that were detected.\n *\n * @see IActionRdfResolveHypermediaLinks\n * @see IActorRdfResolveHypermediaLinksOutput\n */\nclass ActorRdfResolveHypermediaLinks extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Hypermedia link resolution failed: none of the configured actors were able to resolve links from metadata} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfResolveHypermediaLinks = ActorRdfResolveHypermediaLinks;\n//# sourceMappingURL=ActorRdfResolveHypermediaLinks.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfResolveHypermediaLinks\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfResolveHypermediaLinksNext = void 0;\nconst bus_rdf_resolve_hypermedia_links_1 = require(\"@comunica/bus-rdf-resolve-hypermedia-links\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Next RDF Resolve Hypermedia Links Actor.\n */\nclass ActorRdfResolveHypermediaLinksNext extends bus_rdf_resolve_hypermedia_links_1.ActorRdfResolveHypermediaLinks {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (!action.metadata.next || action.metadata.next.length === 0) {\n            return (0, core_1.failTest)(`Actor ${this.name} requires a 'next' metadata entry.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        return { links: action.metadata.next.map((url) => ({ url })) };\n    }\n}\nexports.ActorRdfResolveHypermediaLinksNext = ActorRdfResolveHypermediaLinksNext;\n//# sourceMappingURL=ActorRdfResolveHypermediaLinksNext.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfResolveHypermediaLinksNext\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfResolveHypermediaLinksQueue = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for rdf-resolve-hypermedia-links-queue events.\n *\n * Actor types:\n * * Input:  IActionRdfResolveHypermediaLinksQueue:      Creates a new {@link ILinkQueue} for the given seed URL.\n * * Test:   <none>\n * * Output: IActorRdfResolveHypermediaLinksQueueOutput: The created {@link ILinkQueue}.\n *\n * @see IActionRdfResolveHypermediaLinksQueue\n * @see IActorRdfResolveHypermediaLinksQueueOutput\n */\nclass ActorRdfResolveHypermediaLinksQueue extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Link queue creation failed: none of the configured actors were able to create a link queue starting from ${action.firstUrl}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfResolveHypermediaLinksQueue = ActorRdfResolveHypermediaLinksQueue;\n//# sourceMappingURL=ActorRdfResolveHypermediaLinksQueue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ILinkQueue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkQueueWrapper = void 0;\n/**\n * A link queue that wraps a given link queue.\n */\nclass LinkQueueWrapper {\n    constructor(linkQueue) {\n        this.linkQueue = linkQueue;\n    }\n    push(link, parent) {\n        return this.linkQueue.push(link, parent);\n    }\n    getSize() {\n        return this.linkQueue.getSize();\n    }\n    isEmpty() {\n        return this.linkQueue.isEmpty();\n    }\n    pop() {\n        return this.linkQueue.pop();\n    }\n    peek() {\n        return this.linkQueue.peek();\n    }\n}\nexports.LinkQueueWrapper = LinkQueueWrapper;\n//# sourceMappingURL=LinkQueueWrapper.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfResolveHypermediaLinksQueue\"), exports);\n__exportStar(require(\"./ILinkQueue\"), exports);\n__exportStar(require(\"./LinkQueueWrapper\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkQueueFifo = void 0;\n/**\n * A link queue in FIFO (first-in first-out) order.\n */\nclass LinkQueueFifo {\n    constructor() {\n        this.links = [];\n    }\n    push(link) {\n        this.links.push(link);\n        return true;\n    }\n    getSize() {\n        return this.links.length;\n    }\n    isEmpty() {\n        return this.links.length === 0;\n    }\n    pop() {\n        return this.links.shift();\n    }\n    peek() {\n        return this.links[0];\n    }\n}\nexports.LinkQueueFifo = LinkQueueFifo;\n//# sourceMappingURL=LinkQueueFifo.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfResolveHypermediaLinksQueueFifo = void 0;\nconst bus_rdf_resolve_hypermedia_links_queue_1 = require(\"@comunica/bus-rdf-resolve-hypermedia-links-queue\");\nconst core_1 = require(\"@comunica/core\");\nconst LinkQueueFifo_1 = require(\"./LinkQueueFifo\");\n/**\n * A comunica FIFO RDF Resolve Hypermedia Links Queue Actor.\n */\nclass ActorRdfResolveHypermediaLinksQueueFifo extends bus_rdf_resolve_hypermedia_links_queue_1.ActorRdfResolveHypermediaLinksQueue {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(_action) {\n        return { linkQueue: new LinkQueueFifo_1.LinkQueueFifo() };\n    }\n}\nexports.ActorRdfResolveHypermediaLinksQueueFifo = ActorRdfResolveHypermediaLinksQueueFifo;\n//# sourceMappingURL=ActorRdfResolveHypermediaLinksQueueFifo.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfResolveHypermediaLinksQueueFifo\"), exports);\n__exportStar(require(\"./LinkQueueFifo\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfSerialize = void 0;\nconst actor_abstract_mediatyped_1 = require(\"@comunica/actor-abstract-mediatyped\");\n/**\n * A comunica actor for RDF parse events.\n *\n * Actor types:\n * * Input:  IActionRdfSerialize:      A serialize input or a media type input.\n * * Test:   <none>\n * * Output: IActorRdfSerializeOutput: The serialized quads.\n *\n * @see IActionRdfSerialize\n * @see IActorRdfSerializeOutput\n */\nclass ActorRdfSerialize extends actor_abstract_mediatyped_1.ActorAbstractMediaTyped {\n    /**\n     * @param args - @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfSerialize = ActorRdfSerialize;\n//# sourceMappingURL=ActorRdfSerialize.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfSerializeFixedMediaTypes = void 0;\nconst actor_abstract_mediatyped_1 = require(\"@comunica/actor-abstract-mediatyped\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A base actor for listening to RDF serialize events that has fixed media types.\n *\n * Actor types:\n * * Input:  IActionRdfSerializeOrMediaType:      A serialize input or a media type input.\n * * Test:   <none>\n * * Output: IActorRdfSerializeOutputOrMediaType: The serialized quads.\n *\n * @see IActionInit\n */\nclass ActorRdfSerializeFixedMediaTypes extends actor_abstract_mediatyped_1.ActorAbstractMediaTypedFixed {\n    /* eslint-disable max-len */\n    /**\n     * TODO: rm this (and eslint-disable) once we remove the abstract media typed actor\n     * @param args -\n     *   \\ @defaultNested {<cbrs:components/ActorRdfSerialize.jsonld#ActorRdfSerialize_default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {RDF serialization failed: none of the configured serializers were able to handle media type ${action.handleMediaType}} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n    }\n    /* eslint-enable max-len */\n    async testHandleChecked() {\n        return (0, core_1.passTestVoid)();\n    }\n}\nexports.ActorRdfSerializeFixedMediaTypes = ActorRdfSerializeFixedMediaTypes;\n//# sourceMappingURL=ActorRdfSerializeFixedMediaTypes.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfSerialize\"), exports);\n__exportStar(require(\"./ActorRdfSerializeFixedMediaTypes\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfSerializeN3 = void 0;\nconst bus_rdf_serialize_1 = require(\"@comunica/bus-rdf-serialize\");\nconst n3_1 = require(\"n3\");\n/**\n * A comunica N3 RDF Serialize Actor.\n */\nclass ActorRdfSerializeN3 extends bus_rdf_serialize_1.ActorRdfSerializeFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"application/n-quads\": 1.0,\n     *       \"application/trig\": 0.95,\n     *       \"application/n-triples\": 0.8,\n     *       \"text/turtle\": 0.6,\n     *       \"text/n3\": 0.35\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"application/n-quads\": \"http://www.w3.org/ns/formats/N-Quads\",\n     *       \"application/trig\": \"http://www.w3.org/ns/formats/TriG\",\n     *       \"application/n-triples\": \"http://www.w3.org/ns/formats/N-Triples\",\n     *       \"text/turtle\": \"http://www.w3.org/ns/formats/Turtle\",\n     *       \"text/n3\": \"http://www.w3.org/ns/formats/N3\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async runHandle(action, mediaType) {\n        const writer = new n3_1.StreamWriter({ format: mediaType });\n        let data;\n        if ('pipe' in action.quadStream) {\n            // Prefer piping if possible, to maintain backpressure\n            action.quadStream.on('error', error => writer.emit('error', error));\n            data = action.quadStream.pipe(writer);\n        }\n        else {\n            data = writer.import(action.quadStream);\n        }\n        return { data, triples: mediaType === 'text/turtle' ||\n                mediaType === 'application/n-triples' ||\n                mediaType === 'text/n3' };\n    }\n}\nexports.ActorRdfSerializeN3 = ActorRdfSerializeN3;\n//# sourceMappingURL=ActorRdfSerializeN3.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfSerializeN3\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ERROR_CODES = exports.ErrorCoded = void 0;\n/**\n * An error that has a certain error code.\n *\n * The error code can be any string.\n * All standardized error codes are listed in {@link ERROR_CODES}.\n */\nclass ErrorCoded extends Error {\n    /* istanbul ignore next */\n    constructor(message, code) {\n        super(message);\n        this.code = code;\n    }\n}\nexports.ErrorCoded = ErrorCoded;\n/**\n * All standardized JSON-LD error codes.\n * @see https://w3c.github.io/json-ld-api/#dom-jsonlderrorcode\n */\n// tslint:disable:object-literal-sort-keys\nvar ERROR_CODES;\n(function (ERROR_CODES) {\n    ERROR_CODES[\"COLLIDING_KEYWORDS\"] = \"colliding keywords\";\n    ERROR_CODES[\"CONFLICTING_INDEXES\"] = \"conflicting indexes\";\n    ERROR_CODES[\"CYCLIC_IRI_MAPPING\"] = \"cyclic IRI mapping\";\n    ERROR_CODES[\"INVALID_ID_VALUE\"] = \"invalid @id value\";\n    ERROR_CODES[\"INVALID_INDEX_VALUE\"] = \"invalid @index value\";\n    ERROR_CODES[\"INVALID_NEST_VALUE\"] = \"invalid @nest value\";\n    ERROR_CODES[\"INVALID_PREFIX_VALUE\"] = \"invalid @prefix value\";\n    ERROR_CODES[\"INVALID_PROPAGATE_VALUE\"] = \"invalid @propagate value\";\n    ERROR_CODES[\"INVALID_REVERSE_VALUE\"] = \"invalid @reverse value\";\n    ERROR_CODES[\"INVALID_IMPORT_VALUE\"] = \"invalid @import value\";\n    ERROR_CODES[\"INVALID_VERSION_VALUE\"] = \"invalid @version value\";\n    ERROR_CODES[\"INVALID_BASE_IRI\"] = \"invalid base IRI\";\n    ERROR_CODES[\"INVALID_CONTAINER_MAPPING\"] = \"invalid container mapping\";\n    ERROR_CODES[\"INVALID_CONTEXT_ENTRY\"] = \"invalid context entry\";\n    ERROR_CODES[\"INVALID_CONTEXT_NULLIFICATION\"] = \"invalid context nullification\";\n    ERROR_CODES[\"INVALID_DEFAULT_LANGUAGE\"] = \"invalid default language\";\n    ERROR_CODES[\"INVALID_INCLUDED_VALUE\"] = \"invalid @included value\";\n    ERROR_CODES[\"INVALID_IRI_MAPPING\"] = \"invalid IRI mapping\";\n    ERROR_CODES[\"INVALID_JSON_LITERAL\"] = \"invalid JSON literal\";\n    ERROR_CODES[\"INVALID_KEYWORD_ALIAS\"] = \"invalid keyword alias\";\n    ERROR_CODES[\"INVALID_LANGUAGE_MAP_VALUE\"] = \"invalid language map value\";\n    ERROR_CODES[\"INVALID_LANGUAGE_MAPPING\"] = \"invalid language mapping\";\n    ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_STRING\"] = \"invalid language-tagged string\";\n    ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_VALUE\"] = \"invalid language-tagged value\";\n    ERROR_CODES[\"INVALID_LOCAL_CONTEXT\"] = \"invalid local context\";\n    ERROR_CODES[\"INVALID_REMOTE_CONTEXT\"] = \"invalid remote context\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY\"] = \"invalid reverse property\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY_MAP\"] = \"invalid reverse property map\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY_VALUE\"] = \"invalid reverse property value\";\n    ERROR_CODES[\"INVALID_SCOPED_CONTEXT\"] = \"invalid scoped context\";\n    ERROR_CODES[\"INVALID_SCRIPT_ELEMENT\"] = \"invalid script element\";\n    ERROR_CODES[\"INVALID_SET_OR_LIST_OBJECT\"] = \"invalid set or list object\";\n    ERROR_CODES[\"INVALID_TERM_DEFINITION\"] = \"invalid term definition\";\n    ERROR_CODES[\"INVALID_TYPE_MAPPING\"] = \"invalid type mapping\";\n    ERROR_CODES[\"INVALID_TYPE_VALUE\"] = \"invalid type value\";\n    ERROR_CODES[\"INVALID_TYPED_VALUE\"] = \"invalid typed value\";\n    ERROR_CODES[\"INVALID_VALUE_OBJECT\"] = \"invalid value object\";\n    ERROR_CODES[\"INVALID_VALUE_OBJECT_VALUE\"] = \"invalid value object value\";\n    ERROR_CODES[\"INVALID_VOCAB_MAPPING\"] = \"invalid vocab mapping\";\n    ERROR_CODES[\"IRI_CONFUSED_WITH_PREFIX\"] = \"IRI confused with prefix\";\n    ERROR_CODES[\"KEYWORD_REDEFINITION\"] = \"keyword redefinition\";\n    ERROR_CODES[\"LOADING_DOCUMENT_FAILED\"] = \"loading document failed\";\n    ERROR_CODES[\"LOADING_REMOTE_CONTEXT_FAILED\"] = \"loading remote context failed\";\n    ERROR_CODES[\"MULTIPLE_CONTEXT_LINK_HEADERS\"] = \"multiple context link headers\";\n    ERROR_CODES[\"PROCESSING_MODE_CONFLICT\"] = \"processing mode conflict\";\n    ERROR_CODES[\"PROTECTED_TERM_REDEFINITION\"] = \"protected term redefinition\";\n    ERROR_CODES[\"CONTEXT_OVERFLOW\"] = \"context overflow\";\n    ERROR_CODES[\"INVALID_BASE_DIRECTION\"] = \"invalid base direction\";\n    ERROR_CODES[\"RECURSIVE_CONTEXT_INCLUSION\"] = \"recursive context inclusion\";\n    ERROR_CODES[\"INVALID_STREAMING_KEY_ORDER\"] = \"invalid streaming key order\";\n    /**\n     * JSON-LD-star\n     */\n    ERROR_CODES[\"INVALID_EMBEDDED_NODE\"] = \"invalid embedded node\";\n    ERROR_CODES[\"INVALID_ANNOTATION\"] = \"invalid annotation\";\n})(ERROR_CODES = exports.ERROR_CODES || (exports.ERROR_CODES = {}));\n//# sourceMappingURL=ErrorCoded.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchDocumentLoader = void 0;\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst http_link_header_1 = require(\"http-link-header\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * Loads documents via the fetch API.\n */\nclass FetchDocumentLoader {\n    constructor(fetcher) {\n        this.fetcher = fetcher;\n    }\n    async load(url) {\n        const response = await (this.fetcher || fetch)(url, { headers: new Headers({ accept: 'application/ld+json' }) });\n        if (response.ok && response.headers) {\n            let mediaType = response.headers.get('Content-Type');\n            if (mediaType) {\n                const colonPos = mediaType.indexOf(';');\n                if (colonPos > 0) {\n                    mediaType = mediaType.substr(0, colonPos);\n                }\n            }\n            if (mediaType === 'application/ld+json') {\n                // Return JSON-LD if proper content type was returned\n                return (await response.json());\n            }\n            else {\n                // Check for alternate link for a non-JSON-LD response\n                if (response.headers.has('Link')) {\n                    let alternateUrl;\n                    response.headers.forEach((value, key) => {\n                        if (key === 'link') {\n                            const linkHeader = (0, http_link_header_1.parse)(value);\n                            for (const link of linkHeader.get('type', 'application/ld+json')) {\n                                if (link.rel === 'alternate') {\n                                    if (alternateUrl) {\n                                        throw new Error('Multiple JSON-LD alternate links were found on ' + url);\n                                    }\n                                    alternateUrl = (0, relative_to_absolute_iri_1.resolve)(link.uri, url);\n                                }\n                            }\n                        }\n                    });\n                    if (alternateUrl) {\n                        return this.load(alternateUrl);\n                    }\n                }\n                throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, ErrorCoded_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n            }\n        }\n        else {\n            throw new Error(response.statusText || `Status code: ${response.status}`);\n        }\n    }\n}\nexports.FetchDocumentLoader = FetchDocumentLoader;\n//# sourceMappingURL=FetchDocumentLoader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nclass Util {\n    /**\n     * Check if the given term is a valid compact IRI.\n     * Otherwise, it may be an IRI.\n     * @param {string} term A term.\n     * @return {boolean} If it is a compact IRI.\n     */\n    static isCompactIri(term) {\n        return term.indexOf(':') > 0 && !(term && term[0] === '#');\n    }\n    /**\n     * Get the prefix from the given term.\n     * @see https://json-ld.org/spec/latest/json-ld/#compact-iris\n     * @param {string} term A term that is an URL or a prefixed URL.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @return {string} The prefix or null.\n     */\n    static getPrefix(term, context) {\n        // Do not consider relative IRIs starting with a hash as compact IRIs\n        if (term && term[0] === '#') {\n            return null;\n        }\n        const separatorPos = term.indexOf(':');\n        if (separatorPos >= 0) {\n            // Suffix can not begin with two slashes\n            if (term.length > separatorPos + 1\n                && term.charAt(separatorPos + 1) === '/'\n                && term.charAt(separatorPos + 2) === '/') {\n                return null;\n            }\n            const prefix = term.substr(0, separatorPos);\n            // Prefix can not be an underscore (this is a blank node)\n            if (prefix === '_') {\n                return null;\n            }\n            // Prefix must match a term in the active context\n            if (context[prefix]) {\n                return prefix;\n            }\n        }\n        return null;\n    }\n    /**\n     * From a given context entry value, get the string value, or the @id field.\n     * @param contextValue A value for a term in a context.\n     * @return {string} The id value, or null.\n     */\n    static getContextValueId(contextValue) {\n        if (contextValue === null || typeof contextValue === 'string') {\n            return contextValue;\n        }\n        const id = contextValue['@id'];\n        return id ? id : null;\n    }\n    /**\n     * Check if the given simple term definition (string-based value of a context term)\n     * should be considered a prefix.\n     * @param value A simple term definition value.\n     * @param options Options that define the way how expansion must be done.\n     */\n    static isSimpleTermDefinitionPrefix(value, options) {\n        return !Util.isPotentialKeyword(value)\n            && (options.allowPrefixNonGenDelims || (typeof value === 'string' && (value[0] === '_' || Util.isPrefixIriEndingWithGenDelim(value))));\n    }\n    /**\n     * Check if the given keyword is of the keyword format \"@\"1*ALPHA.\n     * @param {string} keyword A potential keyword.\n     * @return {boolean} If the given keyword is of the keyword format.\n     */\n    static isPotentialKeyword(keyword) {\n        return typeof keyword === 'string' && Util.KEYWORD_REGEX.test(keyword);\n    }\n    /**\n     * Check if the given prefix ends with a gen-delim character.\n     * @param {string} prefixIri A prefix IRI.\n     * @return {boolean} If the given prefix IRI is valid.\n     */\n    static isPrefixIriEndingWithGenDelim(prefixIri) {\n        return Util.ENDS_WITH_GEN_DELIM.test(prefixIri);\n    }\n    /**\n     * Check if the given context value can be a prefix value.\n     * @param value A context value.\n     * @return {boolean} If it can be a prefix value.\n     */\n    static isPrefixValue(value) {\n        return value && (typeof value === 'string' || (value && typeof value === 'object'));\n    }\n    /**\n     * Check if the given IRI is valid.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIri(iri) {\n        return Boolean(iri && Util.IRI_REGEX.test(iri));\n    }\n    /**\n     * Check if the given IRI is valid, this includes the possibility of being a relative IRI.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIriWeak(iri) {\n        return !!iri && iri[0] !== ':' && Util.IRI_REGEX_WEAK.test(iri);\n    }\n    /**\n     * Check if the given keyword is a defined according to the JSON-LD specification.\n     * @param {string} keyword A potential keyword.\n     * @return {boolean} If the given keyword is valid.\n     */\n    static isValidKeyword(keyword) {\n        return Util.VALID_KEYWORDS[keyword];\n    }\n    /**\n     * Check if the given term is protected in the context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {string} key A context term.\n     * @return {boolean} If the given term has an @protected flag.\n     */\n    static isTermProtected(context, key) {\n        const value = context[key];\n        return !(typeof value === 'string') && value && value['@protected'];\n    }\n    /**\n     * Check if the given context has at least one protected term.\n     * @param context A context.\n     * @return If the context has a protected term.\n     */\n    static hasProtectedTerms(context) {\n        for (const key of Object.keys(context)) {\n            if (Util.isTermProtected(context, key)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    /**\n     * Check if the given key is an internal reserved keyword.\n     * @param key A context key.\n     */\n    static isReservedInternalKeyword(key) {\n        return key.startsWith('@__');\n    }\n    /**\n     * Check if two objects are deepEqual to on another.\n     * @param object1 The first object to test.\n     * @param object2 The second object to test.\n     */\n    static deepEqual(object1, object2) {\n        const objKeys1 = Object.keys(object1);\n        const objKeys2 = Object.keys(object2);\n        if (objKeys1.length !== objKeys2.length)\n            return false;\n        return objKeys1.every((key) => {\n            const value1 = object1[key];\n            const value2 = object2[key];\n            return (value1 === value2) || (value1 !== null &&\n                value2 !== null &&\n                typeof value1 === \"object\" &&\n                typeof value2 === \"object\" &&\n                this.deepEqual(value1, value2));\n        });\n    }\n    ;\n}\n// Regex for valid IRIs\nUtil.IRI_REGEX = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^ \"<>{}|\\\\\\[\\]`#]*(#[^#]*)?$/;\n// Weaker regex for valid IRIs, this includes relative IRIs\nUtil.IRI_REGEX_WEAK = /(?::[^:])|\\//;\n// Regex for keyword form\nUtil.KEYWORD_REGEX = /^@[a-z]+$/i;\n// Regex to see if an IRI ends with a gen-delim character (see RFC 3986)\nUtil.ENDS_WITH_GEN_DELIM = /[:/?#\\[\\]@]$/;\n// Regex for language tags\nUtil.REGEX_LANGUAGE_TAG = /^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/;\n// Regex for base directions\nUtil.REGEX_DIRECTION_TAG = /^(ltr)|(rtl)$/;\n// All known valid JSON-LD keywords\n// @see https://www.w3.org/TR/json-ld11/#keywords\nUtil.VALID_KEYWORDS = {\n    '@annotation': true,\n    '@base': true,\n    '@container': true,\n    '@context': true,\n    '@direction': true,\n    '@graph': true,\n    '@id': true,\n    '@import': true,\n    '@included': true,\n    '@index': true,\n    '@json': true,\n    '@language': true,\n    '@list': true,\n    '@nest': true,\n    '@none': true,\n    '@prefix': true,\n    '@propagate': true,\n    '@protected': true,\n    '@reverse': true,\n    '@set': true,\n    '@type': true,\n    '@value': true,\n    '@version': true,\n    '@vocab': true,\n};\n// Keys in the contexts that will not be expanded based on the base IRI\nUtil.EXPAND_KEYS_BLACKLIST = [\n    '@base',\n    '@vocab',\n    '@language',\n    '@version',\n    '@direction',\n];\n// Keys in the contexts that may not be aliased from\nUtil.ALIAS_DOMAIN_BLACKLIST = [\n    '@container',\n    '@graph',\n    '@id',\n    '@index',\n    '@list',\n    '@nest',\n    '@none',\n    '@prefix',\n    '@reverse',\n    '@set',\n    '@type',\n    '@value',\n    '@version',\n];\n// Keys in the contexts that may not be aliased to\nUtil.ALIAS_RANGE_BLACKLIST = [\n    '@context',\n    '@preserve',\n];\n// All valid @container values\nUtil.CONTAINERS = [\n    '@list',\n    '@set',\n    '@index',\n    '@language',\n    '@graph',\n    '@id',\n    '@type',\n];\n// All valid @container values under processing mode 1.0\nUtil.CONTAINERS_1_0 = [\n    '@list',\n    '@set',\n    '@index',\n];\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultExpandOptions = exports.JsonLdContextNormalized = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst Util_1 = require(\"./Util\");\n/**\n * A class exposing operations over a normalized JSON-LD context.\n */\nclass JsonLdContextNormalized {\n    constructor(contextRaw) {\n        this.contextRaw = contextRaw;\n    }\n    /**\n     * @return The raw inner context.\n     */\n    getContextRaw() {\n        return this.contextRaw;\n    }\n    /**\n     * Expand the term or prefix of the given term if it has one,\n     * otherwise return the term as-is.\n     *\n     * This will try to expand the IRI as much as possible.\n     *\n     * Iff in vocab-mode, then other references to other terms in the context can be used,\n     * such as to `myTerm`:\n     * ```\n     * {\n     *   \"myTerm\": \"http://example.org/myLongTerm\"\n     * }\n     * ```\n     *\n     * @param {string} term A term that is an URL or a prefixed URL.\n     * @param {boolean} expandVocab If the term is a predicate or type and should be expanded based on @vocab,\n     *                              otherwise it is considered a regular term that is expanded based on @base.\n     * @param {IExpandOptions} options Options that define the way how expansion must be done.\n     * @return {string} The expanded term, the term as-is, or null if it was explicitly disabled in the context.\n     * @throws If the term is aliased to an invalid value (not a string, IRI or keyword).\n     */\n    expandTerm(term, expandVocab, options = exports.defaultExpandOptions) {\n        const contextValue = this.contextRaw[term];\n        // Immediately return if the term was disabled in the context\n        if (contextValue === null || (contextValue && contextValue['@id'] === null)) {\n            return null;\n        }\n        // Check the @id\n        let validIriMapping = true;\n        if (contextValue && expandVocab) {\n            const value = Util_1.Util.getContextValueId(contextValue);\n            if (value && value !== term) {\n                if (typeof value !== 'string' || (!Util_1.Util.isValidIri(value) && !Util_1.Util.isValidKeyword(value))) {\n                    // Don't mark this mapping as invalid if we have an unknown keyword, but of the correct form.\n                    if (!Util_1.Util.isPotentialKeyword(value)) {\n                        validIriMapping = false;\n                    }\n                }\n                else {\n                    return value;\n                }\n            }\n        }\n        // Check if the term is prefixed\n        const prefix = Util_1.Util.getPrefix(term, this.contextRaw);\n        const vocab = this.contextRaw['@vocab'];\n        const vocabRelative = (!!vocab || vocab === '') && vocab.indexOf(':') < 0;\n        const base = this.contextRaw['@base'];\n        const potentialKeyword = Util_1.Util.isPotentialKeyword(term);\n        if (prefix) {\n            const contextPrefixValue = this.contextRaw[prefix];\n            const value = Util_1.Util.getContextValueId(contextPrefixValue);\n            if (value) {\n                if (typeof contextPrefixValue === 'string' || !options.allowPrefixForcing) {\n                    // If we have a simple term definition,\n                    // check the last character of the prefix to determine whether or not it is a prefix.\n                    // Validate that prefix ends with gen-delim character, unless @prefix is true\n                    if (!Util_1.Util.isSimpleTermDefinitionPrefix(value, options)) {\n                        // Treat the term as an absolute IRI\n                        return term;\n                    }\n                }\n                else {\n                    // If we have an expanded term definition, default to @prefix: false\n                    if (value[0] !== '_' && !potentialKeyword && !contextPrefixValue['@prefix'] && !(term in this.contextRaw)) {\n                        // Treat the term as an absolute IRI\n                        return term;\n                    }\n                }\n                return value + term.substr(prefix.length + 1);\n            }\n        }\n        else if (expandVocab && ((vocab || vocab === '') || (options.allowVocabRelativeToBase && (base && vocabRelative)))\n            && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n            if (vocabRelative) {\n                if (options.allowVocabRelativeToBase) {\n                    return ((vocab || base) ? (0, relative_to_absolute_iri_1.resolve)(vocab, base) : '') + term;\n                }\n                else {\n                    throw new ErrorCoded_1.ErrorCoded(`Relative vocab expansion for term '${term}' with vocab '${vocab}' is not allowed.`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n                }\n            }\n            else {\n                return vocab + term;\n            }\n        }\n        else if (!expandVocab && base && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n            return (0, relative_to_absolute_iri_1.resolve)(term, base);\n        }\n        // Return the term as-is, unless we discovered an invalid IRI mapping for this term in the context earlier.\n        if (validIriMapping) {\n            return term;\n        }\n        else {\n            throw new ErrorCoded_1.ErrorCoded(`Invalid IRI mapping found for context entry '${term}': '${JSON.stringify(contextValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n        }\n    }\n    /**\n     * Compact the given term using @base, @vocab, an aliased term, or a prefixed term.\n     *\n     * This will try to compact the IRI as much as possible.\n     *\n     * @param {string} iri An IRI to compact.\n     * @param {boolean} vocab If the term is a predicate or type and should be compacted based on @vocab,\n     *                        otherwise it is considered a regular term that is compacted based on @base.\n     * @return {string} The compacted term or the IRI as-is.\n     */\n    compactIri(iri, vocab) {\n        // Try @vocab compacting\n        if (vocab && this.contextRaw['@vocab'] && iri.startsWith(this.contextRaw['@vocab'])) {\n            return iri.substr(this.contextRaw['@vocab'].length);\n        }\n        // Try @base compacting\n        if (!vocab && this.contextRaw['@base'] && iri.startsWith(this.contextRaw['@base'])) {\n            return iri.substr(this.contextRaw['@base'].length);\n        }\n        // Loop over all terms in the context\n        // This will try to prefix as short as possible.\n        // Once a fully compacted alias is found, return immediately, as we can not go any shorter.\n        const shortestPrefixing = { prefix: '', suffix: iri };\n        for (const key in this.contextRaw) {\n            const value = this.contextRaw[key];\n            if (value && !Util_1.Util.isPotentialKeyword(key)) {\n                const contextIri = Util_1.Util.getContextValueId(value);\n                if (iri.startsWith(contextIri)) {\n                    const suffix = iri.substr(contextIri.length);\n                    if (!suffix) {\n                        if (vocab) {\n                            // Immediately return on compacted alias\n                            return key;\n                        }\n                    }\n                    else if (suffix.length < shortestPrefixing.suffix.length) {\n                        // Overwrite the shortest prefix\n                        shortestPrefixing.prefix = key;\n                        shortestPrefixing.suffix = suffix;\n                    }\n                }\n            }\n        }\n        // Return the shortest prefix\n        if (shortestPrefixing.prefix) {\n            return shortestPrefixing.prefix + ':' + shortestPrefixing.suffix;\n        }\n        return iri;\n    }\n}\nexports.JsonLdContextNormalized = JsonLdContextNormalized;\nexports.defaultExpandOptions = {\n    allowPrefixForcing: true,\n    allowPrefixNonGenDelims: false,\n    allowVocabRelativeToBase: true,\n};\n//# sourceMappingURL=JsonLdContextNormalized.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextParser = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst FetchDocumentLoader_1 = require(\"./FetchDocumentLoader\");\nconst JsonLdContextNormalized_1 = require(\"./JsonLdContextNormalized\");\nconst Util_1 = require(\"./Util\");\n/**\n * Parses JSON-LD contexts.\n */\nclass ContextParser {\n    constructor(options) {\n        options = options || {};\n        this.documentLoader = options.documentLoader || new FetchDocumentLoader_1.FetchDocumentLoader();\n        this.documentCache = {};\n        this.validateContext = !options.skipValidation;\n        this.expandContentTypeToBase = !!options.expandContentTypeToBase;\n        this.remoteContextsDepthLimit = options.remoteContextsDepthLimit || 32;\n        this.redirectSchemaOrgHttps = 'redirectSchemaOrgHttps' in options ? !!options.redirectSchemaOrgHttps : true;\n    }\n    /**\n     * Validate the given @language value.\n     * An error will be thrown if it is invalid.\n     * @param value An @language value.\n     * @param {boolean} strictRange If the string value should be strictly checked against a regex.\n     * @param {string} errorCode The error code to emit on errors.\n     * @return {boolean} If validation passed.\n     *                   Can only be false if strictRange is false and the string value did not pass the regex.\n     */\n    static validateLanguage(value, strictRange, errorCode) {\n        if (typeof value !== 'string') {\n            throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a string, got '${JSON.stringify(value)}'`, errorCode);\n        }\n        if (!Util_1.Util.REGEX_LANGUAGE_TAG.test(value)) {\n            if (strictRange) {\n                throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a valid language tag, got '${JSON.stringify(value)}'`, errorCode);\n            }\n            else {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Validate the given @direction value.\n     * An error will be thrown if it is invalid.\n     * @param value An @direction value.\n     * @param {boolean} strictValues If the string value should be strictly checked against a regex.\n     * @return {boolean} If validation passed.\n     *                   Can only be false if strictRange is false and the string value did not pass the regex.\n     */\n    static validateDirection(value, strictValues) {\n        if (typeof value !== 'string') {\n            throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be a string, got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n        }\n        if (!Util_1.Util.REGEX_DIRECTION_TAG.test(value)) {\n            if (strictValues) {\n                throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be 'ltr' or 'rtl', got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n            }\n            else {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Add an @id term for all @reverse terms.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n     */\n    idifyReverseTerms(context) {\n        for (const key of Object.keys(context)) {\n            let value = context[key];\n            if (value && typeof value === 'object') {\n                if (value['@reverse'] && !value['@id']) {\n                    if (typeof value['@reverse'] !== 'string' || Util_1.Util.isValidKeyword(value['@reverse'])) {\n                        throw new ErrorCoded_1.ErrorCoded(`Invalid @reverse value, must be absolute IRI or blank node: '${value['@reverse']}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                    }\n                    value = context[key] = Object.assign(Object.assign({}, value), { '@id': value['@reverse'] });\n                    value['@id'] = value['@reverse'];\n                    if (Util_1.Util.isPotentialKeyword(value['@reverse'])) {\n                        delete value['@reverse'];\n                    }\n                    else {\n                        value['@reverse'] = true;\n                    }\n                }\n            }\n        }\n        return context;\n    }\n    /**\n     * Expand all prefixed terms in the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {boolean} expandContentTypeToBase If @type inside the context may be expanded\n     *                                          via @base if @vocab is set to null.\n     * @param {string[]} keys Optional set of keys from the context to expand. If left undefined, all\n     * keys in the context will be expanded.\n     */\n    expandPrefixedTerms(context, expandContentTypeToBase, keys) {\n        const contextRaw = context.getContextRaw();\n        for (const key of (keys || Object.keys(contextRaw))) {\n            // Only expand allowed keys\n            if (Util_1.Util.EXPAND_KEYS_BLACKLIST.indexOf(key) < 0 && !Util_1.Util.isReservedInternalKeyword(key)) {\n                // Error if we try to alias a keyword to something else.\n                const keyValue = contextRaw[key];\n                if (Util_1.Util.isPotentialKeyword(key) && Util_1.Util.ALIAS_DOMAIN_BLACKLIST.indexOf(key) >= 0) {\n                    if (key !== '@type' || typeof contextRaw[key] === 'object'\n                        && !(contextRaw[key]['@protected'] || contextRaw[key]['@container'] === '@set')) {\n                        throw new ErrorCoded_1.ErrorCoded(`Keywords can not be aliased to something else.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n                    }\n                }\n                // Error if we try to alias to an illegal keyword\n                if (Util_1.Util.ALIAS_RANGE_BLACKLIST.indexOf(Util_1.Util.getContextValueId(keyValue)) >= 0) {\n                    throw new ErrorCoded_1.ErrorCoded(`Aliasing to certain keywords is not allowed.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.INVALID_KEYWORD_ALIAS);\n                }\n                // Error if this term was marked as prefix as well\n                if (keyValue && Util_1.Util.isPotentialKeyword(Util_1.Util.getContextValueId(keyValue))\n                    && keyValue['@prefix'] === true) {\n                    throw new ErrorCoded_1.ErrorCoded(`Tried to use keyword aliases as prefix: '${key}': '${JSON.stringify(keyValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                }\n                // Loop because prefixes might be nested\n                while (Util_1.Util.isPrefixValue(contextRaw[key])) {\n                    const value = contextRaw[key];\n                    let changed = false;\n                    if (typeof value === 'string') {\n                        contextRaw[key] = context.expandTerm(value, true);\n                        changed = changed || value !== contextRaw[key];\n                    }\n                    else {\n                        const id = value['@id'];\n                        const type = value['@type'];\n                        // If @id is missing, don't allow @id to be added if @prefix: true and key not being a valid IRI.\n                        const canAddIdEntry = !('@prefix' in value) || Util_1.Util.isValidIri(key);\n                        if ('@id' in value) {\n                            // Use @id value for expansion\n                            if (id !== undefined && id !== null && typeof id === 'string') {\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': context.expandTerm(id, true) });\n                                changed = changed || id !== contextRaw[key]['@id'];\n                            }\n                        }\n                        else if (!Util_1.Util.isPotentialKeyword(key) && canAddIdEntry) {\n                            // Add an explicit @id value based on the expanded key value\n                            const newId = context.expandTerm(key, true);\n                            if (newId !== key) {\n                                // Don't set @id if expansion failed\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': newId });\n                                changed = true;\n                            }\n                        }\n                        if (type && typeof type === 'string' && type !== '@vocab'\n                            && (!value['@container'] || !value['@container']['@type'])\n                            && canAddIdEntry) {\n                            // First check @vocab, then fallback to @base\n                            let expandedType = context.expandTerm(type, true);\n                            if (expandContentTypeToBase && type === expandedType) {\n                                expandedType = context.expandTerm(type, false);\n                            }\n                            if (expandedType !== type) {\n                                changed = true;\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@type': expandedType });\n                            }\n                        }\n                    }\n                    if (!changed) {\n                        break;\n                    }\n                }\n            }\n        }\n    }\n    /**\n     * Normalize the @language entries in the given context to lowercase.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} parseOptions The parsing options.\n     */\n    normalize(context, { processingMode, normalizeLanguageTags }) {\n        // Lowercase language keys in 1.0\n        if (normalizeLanguageTags || processingMode === 1.0) {\n            for (const key of Object.keys(context)) {\n                if (key === '@language' && typeof context[key] === 'string') {\n                    context[key] = context[key].toLowerCase();\n                }\n                else {\n                    const value = context[key];\n                    if (value && typeof value === 'object') {\n                        if (typeof value['@language'] === 'string') {\n                            const lowercase = value['@language'].toLowerCase();\n                            if (lowercase !== value['@language']) {\n                                context[key] = Object.assign(Object.assign({}, value), { '@language': lowercase });\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n    /**\n     * Convert all @container strings and array values to hash-based values.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     */\n    containersToHash(context) {\n        for (const key of Object.keys(context)) {\n            const value = context[key];\n            if (value && typeof value === 'object') {\n                if (typeof value['@container'] === 'string') {\n                    context[key] = Object.assign(Object.assign({}, value), { '@container': { [value['@container']]: true } });\n                }\n                else if (Array.isArray(value['@container'])) {\n                    const newValue = {};\n                    for (const containerValue of value['@container']) {\n                        newValue[containerValue] = true;\n                    }\n                    context[key] = Object.assign(Object.assign({}, value), { '@container': newValue });\n                }\n            }\n        }\n    }\n    /**\n     * Normalize and apply context-level @protected terms onto each term separately.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {number} processingMode The processing mode.\n     */\n    applyScopedProtected(context, { processingMode }, expandOptions) {\n        if (processingMode && processingMode >= 1.1) {\n            if (context['@protected']) {\n                for (const key of Object.keys(context)) {\n                    if (Util_1.Util.isReservedInternalKeyword(key)) {\n                        continue;\n                    }\n                    if (!Util_1.Util.isPotentialKeyword(key) && !Util_1.Util.isTermProtected(context, key)) {\n                        const value = context[key];\n                        if (value && typeof value === 'object') {\n                            if (!('@protected' in context[key])) {\n                                // Mark terms with object values as protected if they don't have an @protected: false annotation\n                                context[key] = Object.assign(Object.assign({}, context[key]), { '@protected': true });\n                            }\n                        }\n                        else {\n                            // Convert string-based term values to object-based values with @protected: true\n                            context[key] = {\n                                '@id': value,\n                                '@protected': true,\n                            };\n                            if (Util_1.Util.isSimpleTermDefinitionPrefix(value, expandOptions)) {\n                                context[key] = Object.assign(Object.assign({}, context[key]), { '@prefix': true });\n                            }\n                        }\n                    }\n                }\n                delete context['@protected'];\n            }\n        }\n    }\n    /**\n     * Check if the given context inheritance does not contain any overrides of protected terms.\n     * @param {IJsonLdContextNormalizedRaw} contextBefore The context that may contain some protected terms.\n     * @param {IJsonLdContextNormalizedRaw} contextAfter A new context that is being applied on the first one.\n     * @param {IExpandOptions} expandOptions Options that are needed for any expansions during this validation.\n     * @param {string[]} keys Optional set of keys from the context to validate. If left undefined, all\n     * keys defined in contextAfter will be checked.\n     */\n    validateKeywordRedefinitions(contextBefore, contextAfter, expandOptions, keys) {\n        for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(contextAfter))) {\n            if (Util_1.Util.isTermProtected(contextBefore, key)) {\n                // The entry in the context before will always be in object-mode\n                // If the new entry is in string-mode, convert it to object-mode\n                // before checking if it is identical.\n                if (typeof contextAfter[key] === 'string') {\n                    contextAfter[key] = { '@id': contextAfter[key], '@protected': true };\n                }\n                else {\n                    // We modify this deliberately,\n                    // as we need it for the value comparison (they must be identical modulo '@protected')),\n                    // and for the fact that this new value will override the first one.\n                    contextAfter[key] = Object.assign(Object.assign({}, contextAfter[key]), { '@protected': true });\n                }\n                // Error if they are not identical\n                if (!Util_1.Util.deepEqual(contextBefore[key], contextAfter[key])) {\n                    throw new ErrorCoded_1.ErrorCoded(`Attempted to override the protected keyword ${key} from ${JSON.stringify(Util_1.Util.getContextValueId(contextBefore[key]))} to ${JSON.stringify(Util_1.Util.getContextValueId(contextAfter[key]))}`, ErrorCoded_1.ERROR_CODES.PROTECTED_TERM_REDEFINITION);\n                }\n            }\n        }\n    }\n    /**\n     * Validate the entries of the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} options The parse options.\n     */\n    validate(context, { processingMode }) {\n        for (const key of Object.keys(context)) {\n            // Ignore reserved internal keywords.\n            if (Util_1.Util.isReservedInternalKeyword(key)) {\n                continue;\n            }\n            // Do not allow empty term\n            if (key === '') {\n                throw new ErrorCoded_1.ErrorCoded(`The empty term is not allowed, got: '${key}': '${JSON.stringify(context[key])}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n            }\n            const value = context[key];\n            const valueType = typeof value;\n            // First check if the key is a keyword\n            if (Util_1.Util.isPotentialKeyword(key)) {\n                switch (key.substr(1)) {\n                    case 'vocab':\n                        if (value !== null && valueType !== 'string') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @vocab IRI: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n                        }\n                        break;\n                    case 'base':\n                        if (value !== null && valueType !== 'string') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @base IRI: ${context[key]}`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_IRI);\n                        }\n                        break;\n                    case 'language':\n                        if (value !== null) {\n                            ContextParser.validateLanguage(value, true, ErrorCoded_1.ERROR_CODES.INVALID_DEFAULT_LANGUAGE);\n                        }\n                        break;\n                    case 'version':\n                        if (value !== null && valueType !== 'number') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @version number: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n                        }\n                        break;\n                    case 'direction':\n                        if (value !== null) {\n                            ContextParser.validateDirection(value, true);\n                        }\n                        break;\n                    case 'propagate':\n                        if (processingMode === 1.0) {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an illegal @propagate keyword: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n                        }\n                        if (value !== null && valueType !== 'boolean') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @propagate value: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_PROPAGATE_VALUE);\n                        }\n                        break;\n                }\n                // Don't allow keywords to be overridden\n                if (Util_1.Util.isValidKeyword(key) && Util_1.Util.isValidKeyword(Util_1.Util.getContextValueId(value))) {\n                    throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${Util_1.Util\n                        .getContextValueId(value)}'`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n                }\n                continue;\n            }\n            // Otherwise, consider the key a term\n            if (value !== null) {\n                switch (valueType) {\n                    case 'string':\n                        if (Util_1.Util.getPrefix(value, context) === key) {\n                            throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n                                .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n                        }\n                        if (Util_1.Util.isValidIriWeak(key)) {\n                            if (value === '@type') {\n                                throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                            }\n                            else if (Util_1.Util.isValidIri(value) && value !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n                                throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                            }\n                        }\n                        break;\n                    case 'object':\n                        if (!Util_1.Util.isCompactIri(key) && !('@id' in value)\n                            && (value['@type'] === '@id' ? !context['@base'] : !context['@vocab'])) {\n                            throw new ErrorCoded_1.ErrorCoded(`Missing @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                        }\n                        for (const objectKey of Object.keys(value)) {\n                            const objectValue = value[objectKey];\n                            if (!objectValue) {\n                                continue;\n                            }\n                            switch (objectKey) {\n                                case '@id':\n                                    if (Util_1.Util.isValidKeyword(objectValue)\n                                        && objectValue !== '@type' && objectValue !== '@id' && objectValue !== '@graph' && objectValue !== '@nest') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                    }\n                                    if (Util_1.Util.isValidIriWeak(key)) {\n                                        if (objectValue === '@type') {\n                                            throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                        }\n                                        else if (Util_1.Util.isValidIri(objectValue)\n                                            && objectValue !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n                                            throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                        }\n                                    }\n                                    if (typeof objectValue !== 'string') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Detected non-string @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                    }\n                                    if (Util_1.Util.getPrefix(objectValue, context) === key) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n                                            .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n                                    }\n                                    break;\n                                case '@type':\n                                    if (value['@container'] === '@type' && objectValue !== '@id' && objectValue !== '@vocab') {\n                                        throw new ErrorCoded_1.ErrorCoded(`@container: @type only allows @type: @id or @vocab, but got: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    if (typeof objectValue !== 'string') {\n                                        throw new ErrorCoded_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    if (objectValue !== '@id' && objectValue !== '@vocab'\n                                        && (processingMode === 1.0 || objectValue !== '@json')\n                                        && (processingMode === 1.0 || objectValue !== '@none')\n                                        && (objectValue[0] === '_' || !Util_1.Util.isValidIri(objectValue))) {\n                                        throw new ErrorCoded_1.ErrorCoded(`A context @type must be an absolute IRI, found: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    break;\n                                case '@reverse':\n                                    if (typeof objectValue === 'string' && value['@id'] && value['@id'] !== objectValue) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found non-matching @id and @reverse term values in '${key}':\\\n'${objectValue}' and '${value['@id']}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                    }\n                                    if ('@nest' in value) {\n                                        throw new ErrorCoded_1.ErrorCoded(`@nest is not allowed in the reverse property '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                    }\n                                    break;\n                                case '@container':\n                                    if (processingMode === 1.0) {\n                                        if (Object.keys(objectValue).length > 1\n                                            || Util_1.Util.CONTAINERS_1_0.indexOf(Object.keys(objectValue)[0]) < 0) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${Object.keys(objectValue)}') in 1.0, \\\nmust be only one of ${Util_1.Util.CONTAINERS_1_0.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n                                        }\n                                    }\n                                    for (const containerValue of Object.keys(objectValue)) {\n                                        if (containerValue === '@list' && value['@reverse']) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Term value can not be @container: @list and @reverse at the same time on '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                        }\n                                        if (Util_1.Util.CONTAINERS.indexOf(containerValue) < 0) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${containerValue}'), \\\nmust be one of ${Util_1.Util.CONTAINERS.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n                                        }\n                                    }\n                                    break;\n                                case '@language':\n                                    ContextParser.validateLanguage(objectValue, true, ErrorCoded_1.ERROR_CODES.INVALID_LANGUAGE_MAPPING);\n                                    break;\n                                case '@direction':\n                                    ContextParser.validateDirection(objectValue, true);\n                                    break;\n                                case '@prefix':\n                                    if (objectValue !== null && typeof objectValue !== 'boolean') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @prefix boolean in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_PREFIX_VALUE);\n                                    }\n                                    if (!('@id' in value) && !Util_1.Util.isValidIri(key)) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Invalid @prefix definition for '${key}' ('${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                                    }\n                                    break;\n                                case '@index':\n                                    if (processingMode === 1.0 || !value['@container'] || !value['@container']['@index']) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Attempt to add illegal key to value object: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                                    }\n                                    break;\n                                case '@nest':\n                                    if (Util_1.Util.isPotentialKeyword(objectValue) && objectValue !== '@nest') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @nest value in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_NEST_VALUE);\n                                    }\n                            }\n                        }\n                        break;\n                    default:\n                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term value: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                }\n            }\n        }\n    }\n    /**\n     * Apply the @base context entry to the given context under certain circumstances.\n     * @param context A context.\n     * @param options Parsing options.\n     * @param inheritFromParent If the @base value from the parent context can be inherited.\n     * @return The given context.\n     */\n    applyBaseEntry(context, options, inheritFromParent) {\n        // In some special cases, this can be a string, so ignore those.\n        if (typeof context === 'string') {\n            return context;\n        }\n        // Give priority to @base in the parent context\n        if (inheritFromParent && !('@base' in context) && options.parentContext\n            && typeof options.parentContext === 'object' && '@base' in options.parentContext) {\n            context['@base'] = options.parentContext['@base'];\n            if (options.parentContext['@__baseDocument']) {\n                context['@__baseDocument'] = true;\n            }\n        }\n        // Override the base IRI if provided.\n        if (options.baseIRI && !options.external) {\n            if (!('@base' in context)) {\n                // The context base is the document base\n                context['@base'] = options.baseIRI;\n                context['@__baseDocument'] = true;\n            }\n            else if (context['@base'] !== null && typeof context['@base'] === 'string'\n                && !Util_1.Util.isValidIri(context['@base'])) {\n                // The context base is relative to the document base\n                context['@base'] = (0, relative_to_absolute_iri_1.resolve)(context['@base'], options.parentContext && options.parentContext['@base'] || options.baseIRI);\n            }\n        }\n        return context;\n    }\n    /**\n     * Resolve relative context IRIs, or return full IRIs as-is.\n     * @param {string} contextIri A context IRI.\n     * @param {string} baseIRI A base IRI.\n     * @return {string} The normalized context IRI.\n     */\n    normalizeContextIri(contextIri, baseIRI) {\n        if (!Util_1.Util.isValidIri(contextIri)) {\n            try {\n                contextIri = (0, relative_to_absolute_iri_1.resolve)(contextIri, baseIRI);\n            }\n            catch (_a) {\n                throw new Error(`Invalid context IRI: ${contextIri}`);\n            }\n        }\n        // TODO: Temporary workaround for fixing schema.org CORS issues (https://github.com/schemaorg/schemaorg/issues/2578#issuecomment-652324465)\n        if (this.redirectSchemaOrgHttps && contextIri.startsWith('http://schema.org')) {\n            contextIri = 'https://schema.org/';\n        }\n        return contextIri;\n    }\n    /**\n     * Parse scoped contexts in the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} options Parsing options.\n     * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n     * @param {string[]} keys Optional set of keys from the context to parseInnerContexts of. If left undefined, all\n     * keys in the context will be iterated over.\n     */\n    async parseInnerContexts(context, options, keys) {\n        for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(context))) {\n            const value = context[key];\n            if (value && typeof value === 'object') {\n                if ('@context' in value && value['@context'] !== null && !options.ignoreScopedContexts) {\n                    // Simulate a processing based on the parent context to check if there are any (potential errors).\n                    // Honestly, I find it a bit weird to do this here, as the context may be unused,\n                    // and the final effective context may differ based on any other embedded/scoped contexts.\n                    // But hey, it's part of the spec, so we have no choice...\n                    // https://w3c.github.io/json-ld-api/#h-note-10\n                    if (this.validateContext) {\n                        try {\n                            const parentContext = Object.assign(Object.assign({}, context), { [key]: Object.assign({}, context[key]) });\n                            delete parentContext[key]['@context'];\n                            await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, parentContext, ignoreProtection: true, ignoreRemoteScopedContexts: true, ignoreScopedContexts: true }));\n                        }\n                        catch (e) {\n                            throw new ErrorCoded_1.ErrorCoded(e.message, ErrorCoded_1.ERROR_CODES.INVALID_SCOPED_CONTEXT);\n                        }\n                    }\n                    context[key] = Object.assign(Object.assign({}, value), { '@context': (await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, minimalProcessing: true, ignoreRemoteScopedContexts: true, parentContext: context })))\n                            .getContextRaw() });\n                }\n            }\n        }\n        return context;\n    }\n    async parse(context, options = {}, \n    // These options are only for internal use on recursive calls and should not be used by\n    // libraries consuming this function\n    internalOptions = {}) {\n        const { baseIRI, parentContext, external, processingMode = ContextParser.DEFAULT_PROCESSING_MODE, normalizeLanguageTags, ignoreProtection, minimalProcessing, } = options;\n        const remoteContexts = options.remoteContexts || {};\n        // Avoid remote context overflows\n        if (Object.keys(remoteContexts).length >= this.remoteContextsDepthLimit) {\n            throw new ErrorCoded_1.ErrorCoded('Detected an overflow in remote context inclusions: ' + Object.keys(remoteContexts), ErrorCoded_1.ERROR_CODES.CONTEXT_OVERFLOW);\n        }\n        if (context === null || context === undefined) {\n            // Don't allow context nullification and there are protected terms\n            if (!ignoreProtection && parentContext && Util_1.Util.hasProtectedTerms(parentContext)) {\n                throw new ErrorCoded_1.ErrorCoded('Illegal context nullification when terms are protected', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_NULLIFICATION);\n            }\n            // Context that are explicitly set to null are empty.\n            return new JsonLdContextNormalized_1.JsonLdContextNormalized(this.applyBaseEntry({}, options, false));\n        }\n        else if (typeof context === 'string') {\n            const contextIri = this.normalizeContextIri(context, baseIRI);\n            const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n            if (overriddenLoad) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(overriddenLoad);\n            }\n            const parsedStringContext = await this.parse(await this.load(contextIri), Object.assign(Object.assign({}, options), { baseIRI: contextIri, external: true, remoteContexts: Object.assign(Object.assign({}, remoteContexts), { [contextIri]: true }) }));\n            this.applyBaseEntry(parsedStringContext.getContextRaw(), options, true);\n            return parsedStringContext;\n        }\n        else if (Array.isArray(context)) {\n            // As a performance consideration, first load all external contexts in parallel.\n            const contextIris = [];\n            const contexts = await Promise.all(context.map((subContext, i) => {\n                if (typeof subContext === 'string') {\n                    const contextIri = this.normalizeContextIri(subContext, baseIRI);\n                    contextIris[i] = contextIri;\n                    const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n                    if (overriddenLoad) {\n                        return overriddenLoad;\n                    }\n                    return this.load(contextIri);\n                }\n                else {\n                    return subContext;\n                }\n            }));\n            // Don't apply inheritance logic on minimal processing\n            if (minimalProcessing) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(contexts);\n            }\n            const reducedContexts = await contexts.reduce((accContextPromise, contextEntry, i) => accContextPromise\n                .then((accContext) => this.parse(contextEntry, Object.assign(Object.assign({}, options), { baseIRI: contextIris[i] || options.baseIRI, external: !!contextIris[i] || options.external, parentContext: accContext.getContextRaw(), remoteContexts: contextIris[i] ? Object.assign(Object.assign({}, remoteContexts), { [contextIris[i]]: true }) : remoteContexts }), \n            // @ts-expect-error: This third argument causes a type error because we have hidden it from consumers\n            {\n                skipValidation: i < contexts.length - 1,\n            })), Promise.resolve(new JsonLdContextNormalized_1.JsonLdContextNormalized(parentContext || {})));\n            // Override the base IRI if provided.\n            this.applyBaseEntry(reducedContexts.getContextRaw(), options, true);\n            return reducedContexts;\n        }\n        else if (typeof context === 'object') {\n            if ('@context' in context) {\n                return await this.parse(context['@context'], options);\n            }\n            // Make a deep clone of the given context, to avoid modifying it.\n            context = Object.assign({}, context);\n            // According to the JSON-LD spec, @base must be ignored from external contexts.\n            if (external) {\n                delete context['@base'];\n            }\n            // Override the base IRI if provided.\n            this.applyBaseEntry(context, options, true);\n            // Hashify container entries\n            // Do this before protected term validation as that influences term format\n            this.containersToHash(context);\n            // Don't perform any other modifications if only minimal processing is needed.\n            if (minimalProcessing) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(context);\n            }\n            // In JSON-LD 1.1, load @import'ed context prior to processing.\n            let importContext = {};\n            if ('@import' in context) {\n                if (processingMode >= 1.1) {\n                    // Only accept string values\n                    if (typeof context['@import'] !== 'string') {\n                        throw new ErrorCoded_1.ErrorCoded('An @import value must be a string, but got ' + typeof context['@import'], ErrorCoded_1.ERROR_CODES.INVALID_IMPORT_VALUE);\n                    }\n                    // Load context\n                    importContext = await this.loadImportContext(this.normalizeContextIri(context['@import'], baseIRI));\n                    delete context['@import'];\n                }\n                else {\n                    throw new ErrorCoded_1.ErrorCoded('Context importing is not supported in JSON-LD 1.0', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n                }\n            }\n            this.applyScopedProtected(importContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n            const newContext = Object.assign(importContext, context);\n            // Handle terms (before protection checks)\n            this.idifyReverseTerms(newContext);\n            this.normalize(newContext, { processingMode, normalizeLanguageTags });\n            this.applyScopedProtected(newContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n            const keys = Object.keys(newContext);\n            const overlappingKeys = [];\n            if (typeof parentContext === 'object') {\n                // Merge different parts of the final context in order\n                for (const key in parentContext) {\n                    if (key in newContext) {\n                        overlappingKeys.push(key);\n                    }\n                    else {\n                        newContext[key] = parentContext[key];\n                    }\n                }\n            }\n            // Parse inner contexts with minimal processing\n            await this.parseInnerContexts(newContext, options, keys);\n            const newContextWrapped = new JsonLdContextNormalized_1.JsonLdContextNormalized(newContext);\n            // In JSON-LD 1.1, @vocab can be relative to @vocab in the parent context, or a compact IRI.\n            if ((newContext && newContext['@version'] || ContextParser.DEFAULT_PROCESSING_MODE) >= 1.1\n                && ((context['@vocab'] && typeof context['@vocab'] === 'string') || context['@vocab'] === '')) {\n                if (parentContext && '@vocab' in parentContext && context['@vocab'].indexOf(':') < 0) {\n                    newContext['@vocab'] = parentContext['@vocab'] + context['@vocab'];\n                }\n                else if (Util_1.Util.isCompactIri(context['@vocab']) || context['@vocab'] in newContext) {\n                    // @vocab is a compact IRI or refers exactly to a prefix\n                    newContext['@vocab'] = newContextWrapped.expandTerm(context['@vocab'], true);\n                }\n            }\n            this.expandPrefixedTerms(newContextWrapped, this.expandContentTypeToBase, keys);\n            // In JSON-LD 1.1, check if we are not redefining any protected keywords\n            if (!ignoreProtection && parentContext && processingMode >= 1.1) {\n                this.validateKeywordRedefinitions(parentContext, newContext, JsonLdContextNormalized_1.defaultExpandOptions, overlappingKeys);\n            }\n            if (this.validateContext && !internalOptions.skipValidation) {\n                this.validate(newContext, { processingMode });\n            }\n            return newContextWrapped;\n        }\n        else {\n            throw new ErrorCoded_1.ErrorCoded(`Tried parsing a context that is not a string, array or object, but got ${context}`, ErrorCoded_1.ERROR_CODES.INVALID_LOCAL_CONTEXT);\n        }\n    }\n    /**\n     * Fetch the given URL as a raw JSON-LD context.\n     * @param url An URL.\n     * @return A promise resolving to a raw JSON-LD context.\n     */\n    async load(url) {\n        // First try to retrieve the context from cache\n        const cached = this.documentCache[url];\n        if (cached) {\n            return cached;\n        }\n        // If not in cache, load it\n        let document;\n        try {\n            document = await this.documentLoader.load(url);\n        }\n        catch (e) {\n            throw new ErrorCoded_1.ErrorCoded(`Failed to load remote context ${url}: ${e.message}`, ErrorCoded_1.ERROR_CODES.LOADING_REMOTE_CONTEXT_FAILED);\n        }\n        // Validate the context\n        if (!('@context' in document)) {\n            throw new ErrorCoded_1.ErrorCoded(`Missing @context in remote context at ${url}`, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n        }\n        return this.documentCache[url] = document['@context'];\n    }\n    /**\n     * Override the given context that may be loaded.\n     *\n     * This will check whether or not the url is recursively being loaded.\n     * @param url An URL.\n     * @param options Parsing options.\n     * @return An overridden context, or null.\n     *         Optionally an error can be thrown if a cyclic context is detected.\n     */\n    getOverriddenLoad(url, options) {\n        if (url in (options.remoteContexts || {})) {\n            if (options.ignoreRemoteScopedContexts) {\n                return url;\n            }\n            else {\n                throw new ErrorCoded_1.ErrorCoded('Detected a cyclic context inclusion of ' + url, ErrorCoded_1.ERROR_CODES.RECURSIVE_CONTEXT_INCLUSION);\n            }\n        }\n        return null;\n    }\n    /**\n     * Load an @import'ed context.\n     * @param importContextIri The full URI of an @import value.\n     */\n    async loadImportContext(importContextIri) {\n        // Load the context - and do a deep clone since we are about to mutate it\n        let importContext = await this.load(importContextIri);\n        // Require the context to be a non-array object\n        if (typeof importContext !== 'object' || Array.isArray(importContext)) {\n            throw new ErrorCoded_1.ErrorCoded('An imported context must be a single object: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n        }\n        // Error if the context contains another @import\n        if ('@import' in importContext) {\n            throw new ErrorCoded_1.ErrorCoded('An imported context can not import another context: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n        }\n        importContext = Object.assign({}, importContext);\n        // Containers have to be converted into hash values the same way as for the importing context\n        // Otherwise context validation will fail for container values\n        this.containersToHash(importContext);\n        return importContext;\n    }\n}\nContextParser.DEFAULT_PROCESSING_MODE = 1.1;\nexports.ContextParser = ContextParser;\n//# sourceMappingURL=ContextParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IDocumentLoader.js.map","\"use strict\";\n// tslint:disable:max-line-length\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=JsonLdContext.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/ContextParser\"), exports);\n__exportStar(require(\"./lib/ErrorCoded\"), exports);\n__exportStar(require(\"./lib/FetchDocumentLoader\"), exports);\n__exportStar(require(\"./lib/IDocumentLoader\"), exports);\n__exportStar(require(\"./lib/JsonLdContext\"), exports);\n__exportStar(require(\"./lib/JsonLdContextNormalized\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeparatorType = void 0;\n/**\n * A type of JSON separator.\n */\nclass SeparatorType {\n    constructor(label) {\n        this.label = label;\n    }\n}\nexports.SeparatorType = SeparatorType;\nSeparatorType.COMMA = new SeparatorType(',');\nSeparatorType.OBJECT_START = new SeparatorType('{');\nSeparatorType.OBJECT_END = new SeparatorType('}');\nSeparatorType.OBJECT_END_COMMA = new SeparatorType('},');\nSeparatorType.ARRAY_START = new SeparatorType('[');\nSeparatorType.ARRAY_END = new SeparatorType(']');\nSeparatorType.ARRAY_END_COMMA = new SeparatorType('],');\nSeparatorType.GRAPH_FIELD_NONCOMPACT = new SeparatorType('\"@graph\": [');\nSeparatorType.GRAPH_FIELD_COMPACT = new SeparatorType('\"@graph\":[');\nSeparatorType.CONTEXT_FIELD = new SeparatorType('\"@context\":');\n//# sourceMappingURL=SeparatorType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Utility functions and methods.\n */\nclass Util {\n    /**\n     * Convert an RDF term to a JSON value.\n     * @param {Term} term An RDF term.\n     * @param {JsonLdContextNormalized} context The context.\n     * @param {ITermToValueOptions} options Conversion options.\n     * @return {any} A JSON value.\n     */\n    static termToValue(term, context, options = {\n        compactIds: false,\n        useNativeTypes: false,\n    }) {\n        switch (term.termType) {\n            case 'NamedNode':\n                const compacted = context.compactIri(term.value, options.vocab);\n                return options.compactIds ? compacted : { '@id': compacted };\n            case 'DefaultGraph':\n                return options.compactIds ? term.value : { '@id': term.value };\n            case 'BlankNode':\n                const id = `_:${term.value}`;\n                return options.compactIds ? id : { '@id': id };\n            case 'Literal':\n                // Handle JSON datatype\n                if (term.datatype.value === Util.RDF_JSON) {\n                    let parsedJson;\n                    try {\n                        parsedJson = JSON.parse(term.value);\n                    }\n                    catch (e) {\n                        throw new jsonld_context_parser_1.ErrorCoded('Invalid JSON literal: ' + e.message, jsonld_context_parser_1.ERROR_CODES.INVALID_JSON_LITERAL);\n                    }\n                    return {\n                        '@value': parsedJson,\n                        '@type': '@json',\n                    };\n                }\n                // Handle rdfDirection: i18n-datatype\n                if (options.rdfDirection === 'i18n-datatype' && term.datatype.value.startsWith(Util.I18N)) {\n                    const [language, direction] = term.datatype.value\n                        .substr(Util.I18N.length, term.datatype.value.length)\n                        .split('_');\n                    return Object.assign(Object.assign({ '@value': term.value }, language ? { '@language': language } : {}), direction ? { '@direction': direction } : {});\n                }\n                const stringType = term.datatype.value === Util.XSD_STRING;\n                const rawValue = {\n                    '@value': !stringType && options.useNativeTypes\n                        ? Util.stringToNativeType(term.value, term.datatype.value) : term.value,\n                };\n                if (term.language) {\n                    return Object.assign(Object.assign({}, rawValue), { '@language': term.language });\n                }\n                else if (!stringType && typeof rawValue['@value'] === 'string') {\n                    return Object.assign(Object.assign({}, rawValue), { '@type': term.datatype.value });\n                }\n                else {\n                    return rawValue;\n                }\n        }\n    }\n    /**\n     * Convert a string term to a native type.\n     * If no conversion is possible, the original string will be returned.\n     * @param {string} value An RDF term's string value.\n     * @param {string} type\n     * @return {any}\n     */\n    static stringToNativeType(value, type) {\n        if (type.startsWith(Util.XSD)) {\n            const xsdType = type.substr(Util.XSD.length);\n            switch (xsdType) {\n                case 'boolean':\n                    if (value === 'true') {\n                        return true;\n                    }\n                    else if (value === 'false') {\n                        return false;\n                    }\n                    throw new Error(`Invalid xsd:boolean value '${value}'`);\n                case 'integer':\n                case 'number':\n                case 'int':\n                case 'byte':\n                case 'long':\n                    const parsedInt = parseInt(value, 10);\n                    if (isNaN(parsedInt)) {\n                        throw new Error(`Invalid xsd:integer value '${value}'`);\n                    }\n                    return parsedInt;\n                case 'float':\n                case 'double':\n                    const parsedFloat = parseFloat(value);\n                    if (isNaN(parsedFloat)) {\n                        throw new Error(`Invalid xsd:float value '${value}'`);\n                    }\n                    return parsedFloat;\n            }\n        }\n        return value;\n    }\n}\nexports.Util = Util;\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.XSD_STRING = Util.XSD + 'string';\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nUtil.RDF_TYPE = Util.RDF + 'type';\nUtil.RDF_JSON = Util.RDF + 'JSON';\nUtil.I18N = 'https://www.w3.org/ns/i18n#';\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonLdSerializer = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst SeparatorType_1 = require(\"./SeparatorType\");\nconst Util_1 = require(\"./Util\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A stream transformer that transforms an {@link RDF.Stream} into a JSON-LD (text) stream.\n */\nclass JsonLdSerializer extends readable_stream_1.Transform {\n    constructor(options = {}) {\n        super({ objectMode: true });\n        this.indentation = 0;\n        this.options = options;\n        // Parse the context\n        if (this.options.baseIRI && !this.options.context) {\n            this.options.context = { '@base': this.options.baseIRI };\n        }\n        if (this.options.context) {\n            this.originalContext = this.options.context;\n            this.context = new jsonld_context_parser_1.ContextParser().parse(this.options.context, { baseIRI: this.options.baseIRI });\n        }\n        else {\n            this.context = Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized({}));\n        }\n    }\n    /**\n     * Parses the given text stream into a quad stream.\n     * @param {NodeJS.EventEmitter} stream A text stream.\n     * @return {NodeJS.EventEmitter} A quad stream.\n     */\n    import(stream) {\n        const output = new readable_stream_1.PassThrough({ objectMode: true });\n        stream.on('error', (error) => parsed.emit('error', error));\n        stream.on('data', (data) => output.push(data));\n        stream.on('end', () => output.push(null));\n        const parsed = output.pipe(new JsonLdSerializer(this.options));\n        return parsed;\n    }\n    /**\n     * Transforms a quad into the text stream.\n     * @param {Quad} quad An RDF quad.\n     * @param {string} encoding An (ignored) encoding.\n     * @param {module:stream.internal.TransformCallback} callback Callback that is invoked when the transformation is done\n     * @private\n     */\n    _transform(quad, encoding, callback) {\n        this.context.then((context) => {\n            this.transformQuad(quad, context);\n            callback();\n        }).catch(callback);\n    }\n    /**\n     * Construct a list in an RDF.Term object that can be used\n     * inside a quad's object to write into the serializer\n     * as a list using the @list keyword.\n     * @param {RDF.Quad_Object[]} values A list of values, can be empty.\n     * @return {RDF.Quad_Object} A term that should be used in the object position of the quad that is written to the serializer.\n     */\n    async list(values) {\n        const context = await this.context;\n        return {\n            '@list': values.map((value) => Util_1.Util.termToValue(value, context, this.options)),\n        };\n    }\n    /**\n     * Called when the incoming stream is closed.\n     * @param {module:stream.internal.TransformCallback} callback Callback that is invoked when the flushing is done.\n     * @private\n     */\n    _flush(callback) {\n        // If the stream was empty, ensure that we push the opening array\n        if (!this.opened) {\n            this.pushDocumentStart();\n        }\n        if (this.lastPredicate) {\n            this.endPredicate();\n        }\n        if (this.lastSubject) {\n            this.endSubject();\n        }\n        if (this.lastGraph && this.lastGraph.termType !== 'DefaultGraph') {\n            this.endGraph();\n        }\n        this.endDocument();\n        return callback(null, null);\n    }\n    /**\n     * Transforms a quad into the text stream.\n     * @param {Quad} quad An RDF quad.\n     * @param {JsonLdContextNormalized} context A context for compacting.\n     */\n    transformQuad(quad, context) {\n        // Open the array before the first quad\n        if (!this.opened) {\n            this.pushDocumentStart();\n        }\n        // Check if the subject equals the last named graph\n        // In that case, we can reuse the already-existing @id node\n        const lastGraphMatchesSubject = this.lastGraph && this.lastGraph.termType !== 'DefaultGraph'\n            && this.lastGraph.equals(quad.subject);\n        // Write graph\n        if (!lastGraphMatchesSubject && (!this.lastGraph || !quad.graph.equals(this.lastGraph))) {\n            // Check if the named graph equals the last subject\n            // In that case, we can reuse the already-existing @id node\n            let lastSubjectMatchesGraph = quad.graph.termType !== 'DefaultGraph'\n                && this.lastSubject && this.lastSubject.equals(quad.graph);\n            if (this.lastGraph) {\n                if (this.lastGraph.termType !== 'DefaultGraph') {\n                    // The last graph was named\n                    this.endPredicate();\n                    this.endSubject();\n                    this.endGraph(true);\n                    lastSubjectMatchesGraph = false; // Special-case to avoid deeper nesting\n                }\n                else {\n                    // The last graph was default\n                    if (!lastSubjectMatchesGraph) {\n                        this.endPredicate();\n                        this.endSubject(true);\n                    }\n                    else {\n                        this.endPredicate(true);\n                        this.lastSubject = null;\n                    }\n                }\n            }\n            // Push the graph\n            if (quad.graph.termType !== 'DefaultGraph') {\n                if (!lastSubjectMatchesGraph) {\n                    this.pushId(quad.graph, true, context);\n                }\n                this.pushSeparator(this.options.space\n                    ? SeparatorType_1.SeparatorType.GRAPH_FIELD_NONCOMPACT : SeparatorType_1.SeparatorType.GRAPH_FIELD_COMPACT);\n                this.indentation++;\n            }\n            this.lastGraph = quad.graph;\n        }\n        // Write subject\n        if (!this.lastSubject || !quad.subject.equals(this.lastSubject)) {\n            if (lastGraphMatchesSubject) {\n                this.endPredicate();\n                this.endSubject();\n                this.indentation--;\n                this.pushSeparator(SeparatorType_1.SeparatorType.ARRAY_END_COMMA);\n                this.lastGraph = quad.graph;\n            }\n            else {\n                if (this.lastSubject) {\n                    this.endPredicate();\n                    this.endSubject(true);\n                }\n                // Open a new node for the new subject\n                this.pushId(quad.subject, true, context);\n            }\n            this.lastSubject = quad.subject;\n        }\n        // Write predicate\n        if (!this.lastPredicate || !quad.predicate.equals(this.lastPredicate)) {\n            if (this.lastPredicate) {\n                this.endPredicate(true);\n            }\n            // Open a new array for the new predicate\n            this.pushPredicate(quad.predicate, context);\n        }\n        // Write the object value\n        this.pushObject(quad.object, context);\n    }\n    pushDocumentStart() {\n        this.opened = true;\n        if (this.originalContext && !this.options.excludeContext) {\n            this.pushSeparator(SeparatorType_1.SeparatorType.OBJECT_START);\n            this.indentation++;\n            this.pushSeparator(SeparatorType_1.SeparatorType.CONTEXT_FIELD);\n            this.pushIndented(JSON.stringify(this.originalContext, null, this.options.space) + ',');\n            this.pushSeparator(this.options.space\n                ? SeparatorType_1.SeparatorType.GRAPH_FIELD_NONCOMPACT : SeparatorType_1.SeparatorType.GRAPH_FIELD_COMPACT);\n            this.indentation++;\n        }\n        else {\n            this.pushSeparator(SeparatorType_1.SeparatorType.ARRAY_START);\n            this.indentation++;\n        }\n    }\n    /**\n     * Push the given term as an @id field.\n     * @param {Term} term An RDF term.\n     * @param startOnNewLine If `{` should start on a new line\n     * @param {JsonLdContextNormalized} context The context.\n     */\n    pushId(term, startOnNewLine, context) {\n        if (term.termType === 'Quad') {\n            this.pushNestedQuad(term, true, context);\n        }\n        else {\n            const subjectValue = term.termType === 'BlankNode'\n                ? '_:' + term.value : context.compactIri(term.value, false);\n            if (startOnNewLine) {\n                this.pushSeparator(SeparatorType_1.SeparatorType.OBJECT_START);\n            }\n            else {\n                this.push(SeparatorType_1.SeparatorType.OBJECT_START.label);\n                if (this.options.space) {\n                    this.push('\\n');\n                }\n            }\n            this.indentation++;\n            this.pushIndented(this.options.space ? `\"@id\": \"${subjectValue}\",` : `\"@id\":\"${subjectValue}\",`);\n        }\n    }\n    /**\n     * Push the given predicate field.\n     * @param {Term} predicate An RDF term.\n     * @param {JsonLdContextNormalized} context The context.\n     */\n    pushPredicate(predicate, context) {\n        let property = predicate.value;\n        // Convert rdf:type into @type if not disabled.\n        if (!this.options.useRdfType && property === Util_1.Util.RDF_TYPE) {\n            property = '@type';\n            this.objectOptions = Object.assign(Object.assign({}, this.options), { compactIds: true, vocab: true });\n        }\n        // Open array for following objects\n        const compactedProperty = context.compactIri(property, true);\n        this.pushIndented(this.options.space ? `\"${compactedProperty}\": [` : `\"${compactedProperty}\":[`);\n        this.indentation++;\n        this.lastPredicate = predicate;\n    }\n    /**\n     * Push the given object value.\n     * @param {Term} object An RDF term.\n     * @param {JsonLdContextNormalized} context The context.\n     */\n    pushObject(object, context) {\n        // Add a comma if we already had an object for this predicate\n        if (!this.hadObjectForPredicate) {\n            this.hadObjectForPredicate = true;\n        }\n        else {\n            this.pushSeparator(SeparatorType_1.SeparatorType.COMMA);\n        }\n        // Handle nested quad\n        if (object.termType === 'Quad') {\n            const lastLastSubject = this.lastSubject;\n            const lastLastPredicate = this.lastPredicate;\n            this.hadObjectForPredicate = false;\n            this.pushNestedQuad(object, false, context);\n            this.endSubject(false); // Terminate identifier node of nested quad again, since we won't attach additional information to it.\n            this.hadObjectForPredicate = true;\n            this.lastPredicate = lastLastPredicate;\n            this.lastSubject = lastLastSubject;\n            return;\n        }\n        // Convert the object into a value and push it\n        let value;\n        try {\n            if (object['@list']) {\n                value = object;\n            }\n            else {\n                value = Util_1.Util.termToValue(object, context, this.objectOptions || this.options);\n            }\n        }\n        catch (e) {\n            return this.emit('error', e);\n        }\n        this.pushIndented(JSON.stringify(value, null, this.options.space));\n    }\n    pushNestedQuad(nestedQuad, commaAfterSubject, context) {\n        // Start a nested quad\n        this.pushSeparator(SeparatorType_1.SeparatorType.OBJECT_START);\n        this.indentation++;\n        this.pushIndented(this.options.space ? `\"@id\": ` : `\"@id\":`, false);\n        // Print the nested quad\n        if (nestedQuad.graph.termType !== 'DefaultGraph') {\n            this.emit('error', new Error(`Found a nested quad with the non-default graph: ${nestedQuad.graph.value}`));\n        }\n        this.pushId(nestedQuad.subject, false, context);\n        this.pushPredicate(nestedQuad.predicate, context);\n        this.pushObject(nestedQuad.object, context);\n        this.endPredicate(false);\n        this.endSubject(commaAfterSubject);\n    }\n    endDocument() {\n        this.opened = false;\n        if (this.originalContext && !this.options.excludeContext) {\n            this.indentation--;\n            this.pushSeparator(SeparatorType_1.SeparatorType.ARRAY_END);\n            this.indentation--;\n            this.pushSeparator(SeparatorType_1.SeparatorType.OBJECT_END);\n        }\n        else {\n            this.indentation--;\n            this.pushSeparator(SeparatorType_1.SeparatorType.ARRAY_END);\n        }\n    }\n    /**\n     * Push the end of a predicate and reset the buffers.\n     * @param {boolean} comma If a comma should be appended.\n     */\n    endPredicate(comma) {\n        // Close the predicate array\n        this.indentation--;\n        this.pushSeparator(comma ? SeparatorType_1.SeparatorType.ARRAY_END_COMMA : SeparatorType_1.SeparatorType.ARRAY_END);\n        // Reset object buffer\n        this.hadObjectForPredicate = false;\n        this.objectOptions = null;\n        // Reset predicate buffer\n        this.lastPredicate = null;\n    }\n    /**\n     * Push the end of a subject and reset the buffers.\n     * @param {boolean} comma If a comma should be appended.\n     */\n    endSubject(comma) {\n        // Close the last subject's node;\n        this.indentation--;\n        this.pushSeparator(comma ? SeparatorType_1.SeparatorType.OBJECT_END_COMMA : SeparatorType_1.SeparatorType.OBJECT_END);\n        // Reset subject buffer\n        this.lastSubject = null;\n    }\n    /**\n     * Push the end of a graph and reset the buffers.\n     * @param {boolean} comma If a comma should be appended.\n     */\n    endGraph(comma) {\n        // Close the graph array\n        this.indentation--;\n        this.pushSeparator(SeparatorType_1.SeparatorType.ARRAY_END);\n        // Close the graph id node\n        this.indentation--;\n        this.pushSeparator(comma ? SeparatorType_1.SeparatorType.OBJECT_END_COMMA : SeparatorType_1.SeparatorType.OBJECT_END);\n        // Reset graph buffer\n        this.lastGraph = null;\n    }\n    /**\n     * Puh the given separator.\n     * @param {SeparatorType} type A type of separator.\n     */\n    pushSeparator(type) {\n        this.pushIndented(type.label);\n    }\n    /**\n     * An indentation-aware variant of {@link #push}.\n     * All strings that are pushed here will be prefixed by {@link #indentation} amount of spaces.\n     * @param {string} data A string.\n     * @param pushNewLine If a newline should be pushed afterwards.\n     */\n    pushIndented(data, pushNewLine = true) {\n        const prefix = this.getIndentPrefix();\n        const lines = data.split('\\n').map((line) => prefix + line).join('\\n');\n        this.push(lines);\n        if (this.options.space && pushNewLine) {\n            this.push('\\n');\n        }\n    }\n    /**\n     * @return {string} Get the current indentation prefix based on {@link #indentation}.\n     */\n    getIndentPrefix() {\n        return this.options.space ? this.options.space.repeat(this.indentation) : '';\n    }\n}\nexports.JsonLdSerializer = JsonLdSerializer;\n//# sourceMappingURL=JsonLdSerializer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/JsonLdSerializer\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfSerializeJsonLd = void 0;\nconst bus_rdf_serialize_1 = require(\"@comunica/bus-rdf-serialize\");\nconst jsonld_streaming_serializer_1 = require(\"jsonld-streaming-serializer\");\n/**\n * A comunica Jsonld RDF Serialize Actor.\n */\nclass ActorRdfSerializeJsonLd extends bus_rdf_serialize_1.ActorRdfSerializeFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"application/ld+json\": 1.0\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"application/ld+json\": \"http://www.w3.org/ns/formats/JSON-LD\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async runHandle(action, _mediaType, _context) {\n        const writer = new jsonld_streaming_serializer_1.JsonLdSerializer({ space: ' '.repeat(this.jsonStringifyIndentSpaces) });\n        let data;\n        if ('pipe' in action.quadStream) {\n            // Prefer piping if possible, to maintain backpressure\n            action.quadStream.on('error', error => writer.emit('error', error));\n            data = action.quadStream.pipe(writer);\n        }\n        else {\n            data = writer.import(action.quadStream);\n        }\n        return { data };\n    }\n}\nexports.ActorRdfSerializeJsonLd = ActorRdfSerializeJsonLd;\n//# sourceMappingURL=ActorRdfSerializeJsonLd.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfSerializeJsonLd\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction promisifyEventEmitter(event, result) {\n    return new Promise((resolve, reject) => {\n        event.on('end', () => resolve(result));\n        event.on('error', reject);\n    });\n}\nfunction arrayifyStream(stream) {\n    const array = [];\n    return promisifyEventEmitter(stream.on('data', data => array.push(data)), array);\n}\nexports.default = arrayifyStream;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fragment = void 0;\nfunction getFragment(inputStr) {\n    let str = inputStr;\n    if (str.endsWith('/') || str.endsWith('#')) {\n        str = str.slice(0, str.length - 1);\n    }\n    const args = [];\n    if (str.lastIndexOf('/') > 0) {\n        args.push(str.lastIndexOf('/'));\n    }\n    if (str.lastIndexOf('#') > 0) {\n        args.push(str.lastIndexOf('#'));\n    }\n    const i = Math.max(...args);\n    return str.slice(i + 1);\n}\nfunction camelize(str) {\n    var _a;\n    const res = (_a = str\n        .split(/[^a-z0-9]+/ig)\n        .filter((s) => s !== '')\n        .map((s) => s[0].toUpperCase() + s.slice(1))\n        .join('')\n        // Make sure the prefix does not start with a number\n        .match(/[a-z][a-z0-9]+/ig)) === null || _a === void 0 ? void 0 : _a[0];\n    // Include 'v' so we always return something matching the pattern\n    // [a-z][a-z0-9]+\n    return typeof res === 'undefined' ? undefined : res[0].toLowerCase() + res.slice(1);\n}\nfunction fragment(str) {\n    let value = getFragment(str);\n    value = value ? camelize(value) : undefined;\n    return value || 'v';\n}\nexports.fragment = fragment;\n","// Save global object in a variable\nvar __global__ =\n(typeof globalThis !== 'undefined' && globalThis) ||\n(typeof self !== 'undefined' && self) ||\n(typeof global !== 'undefined' && global);\n// Create an object that extends from __global__ without the fetch function\nvar __globalThis__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = __global__.DOMException\n}\nF.prototype = __global__; // Needed for feature detection on whatwg-fetch's code\nreturn new F();\n})();\n// Wraps whatwg-fetch with a function scope to hijack the global object\n// \"globalThis\" that's going to be patched\n(function(globalThis) {\n\nvar irrelevant = (function (exports) {\n\n  /* eslint-disable no-prototype-builtins */\n  var g =\n    (typeof globalThis !== 'undefined' && globalThis) ||\n    (typeof self !== 'undefined' && self) ||\n    // eslint-disable-next-line no-undef\n    (typeof global !== 'undefined' && global) ||\n    {};\n\n  var support = {\n    searchParams: 'URLSearchParams' in g,\n    iterable: 'Symbol' in g && 'iterator' in Symbol,\n    blob:\n      'FileReader' in g &&\n      'Blob' in g &&\n      (function() {\n        try {\n          new Blob();\n          return true\n        } catch (e) {\n          return false\n        }\n      })(),\n    formData: 'FormData' in g,\n    arrayBuffer: 'ArrayBuffer' in g\n  };\n\n  function isDataView(obj) {\n    return obj && DataView.prototype.isPrototypeOf(obj)\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ];\n\n    var isArrayBufferView =\n      ArrayBuffer.isView ||\n      function(obj) {\n        return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n      };\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name);\n    }\n    if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n      throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value);\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift();\n        return {done: value === undefined, value: value}\n      }\n    };\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      };\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {};\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value);\n      }, this);\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        if (header.length != 2) {\n          throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n        }\n        this.append(header[0], header[1]);\n      }, this);\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name]);\n      }, this);\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name);\n    value = normalizeValue(value);\n    var oldValue = this.map[name];\n    this.map[name] = oldValue ? oldValue + ', ' + value : value;\n  };\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)];\n  };\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name);\n    return this.has(name) ? this.map[name] : null\n  };\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  };\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value);\n  };\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this);\n      }\n    }\n  };\n\n  Headers.prototype.keys = function() {\n    var items = [];\n    this.forEach(function(value, name) {\n      items.push(name);\n    });\n    return iteratorFor(items)\n  };\n\n  Headers.prototype.values = function() {\n    var items = [];\n    this.forEach(function(value) {\n      items.push(value);\n    });\n    return iteratorFor(items)\n  };\n\n  Headers.prototype.entries = function() {\n    var items = [];\n    this.forEach(function(value, name) {\n      items.push([name, value]);\n    });\n    return iteratorFor(items)\n  };\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n  }\n\n  function consumed(body) {\n    if (body._noBody) return\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true;\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result);\n      };\n      reader.onerror = function() {\n        reject(reader.error);\n      };\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader();\n    var promise = fileReaderReady(reader);\n    reader.readAsArrayBuffer(blob);\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader();\n    var promise = fileReaderReady(reader);\n    var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type);\n    var encoding = match ? match[1] : 'utf-8';\n    reader.readAsText(blob, encoding);\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf);\n    var chars = new Array(view.length);\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i]);\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength);\n      view.set(new Uint8Array(buf));\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false;\n\n    this._initBody = function(body) {\n      /*\n        fetch-mock wraps the Response object in an ES6 Proxy to\n        provide useful test harness features such as flush. However, on\n        ES5 browsers without fetch or Proxy support pollyfills must be used;\n        the proxy-pollyfill is unable to proxy an attribute unless it exists\n        on the object before the Proxy is created. This change ensures\n        Response.bodyUsed exists on the instance, while maintaining the\n        semantic of setting Request.bodyUsed in the constructor before\n        _initBody is called.\n      */\n      // eslint-disable-next-line no-self-assign\n      this.bodyUsed = this.bodyUsed;\n      this._bodyInit = body;\n      if (!body) {\n        this._noBody = true;\n        this._bodyText = '';\n      } else if (typeof body === 'string') {\n        this._bodyText = body;\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body;\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body;\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString();\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer);\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer]);\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body);\n      } else {\n        this._bodyText = body = Object.prototype.toString.call(body);\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8');\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type);\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n        }\n      }\n    };\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this);\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      };\n    }\n\n    this.arrayBuffer = function() {\n      if (this._bodyArrayBuffer) {\n        var isConsumed = consumed(this);\n        if (isConsumed) {\n          return isConsumed\n        } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n          return Promise.resolve(\n            this._bodyArrayBuffer.buffer.slice(\n              this._bodyArrayBuffer.byteOffset,\n              this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n            )\n          )\n        } else {\n          return Promise.resolve(this._bodyArrayBuffer)\n        }\n      } else if (support.blob) {\n        return this.blob().then(readBlobAsArrayBuffer)\n      } else {\n        throw new Error('could not read as ArrayBuffer')\n      }\n    };\n\n    this.text = function() {\n      var rejected = consumed(this);\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    };\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      };\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    };\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'];\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase();\n    return methods.indexOf(upcased) > -1 ? upcased : method\n  }\n\n  function Request(input, options) {\n    if (!(this instanceof Request)) {\n      throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n    }\n\n    options = options || {};\n    var body = options.body;\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url;\n      this.credentials = input.credentials;\n      if (!options.headers) {\n        this.headers = new Headers(input.headers);\n      }\n      this.method = input.method;\n      this.mode = input.mode;\n      this.signal = input.signal;\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit;\n        input.bodyUsed = true;\n      }\n    } else {\n      this.url = String(input);\n    }\n\n    this.credentials = options.credentials || this.credentials || 'same-origin';\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers);\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET');\n    this.mode = options.mode || this.mode || null;\n    this.signal = options.signal || this.signal || (function () {\n      if ('AbortController' in g) {\n        var ctrl = new AbortController();\n        return ctrl.signal;\n      }\n    }());\n    this.referrer = null;\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body);\n\n    if (this.method === 'GET' || this.method === 'HEAD') {\n      if (options.cache === 'no-store' || options.cache === 'no-cache') {\n        // Search for a '_' parameter in the query string\n        var reParamSearch = /([?&])_=[^&]*/;\n        if (reParamSearch.test(this.url)) {\n          // If it already exists then set the value with the current time\n          this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n        } else {\n          // Otherwise add a new '_' parameter to the end with the current time\n          var reQueryString = /\\?/;\n          this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n        }\n      }\n    }\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, {body: this._bodyInit})\n  };\n\n  function decode(body) {\n    var form = new FormData();\n    body\n      .trim()\n      .split('&')\n      .forEach(function(bytes) {\n        if (bytes) {\n          var split = bytes.split('=');\n          var name = split.shift().replace(/\\+/g, ' ');\n          var value = split.join('=').replace(/\\+/g, ' ');\n          form.append(decodeURIComponent(name), decodeURIComponent(value));\n        }\n      });\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers();\n    // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n    // https://tools.ietf.org/html/rfc7230#section-3.2\n    var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n    // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n    // https://github.com/github/fetch/issues/748\n    // https://github.com/zloirock/core-js/issues/751\n    preProcessedHeaders\n      .split('\\r')\n      .map(function(header) {\n        return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n      })\n      .forEach(function(line) {\n        var parts = line.split(':');\n        var key = parts.shift().trim();\n        if (key) {\n          var value = parts.join(':').trim();\n          try {\n            headers.append(key, value);\n          } catch (error) {\n            console.warn('Response ' + error.message);\n          }\n        }\n      });\n    return headers\n  }\n\n  Body.call(Request.prototype);\n\n  function Response(bodyInit, options) {\n    if (!(this instanceof Response)) {\n      throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n    }\n    if (!options) {\n      options = {};\n    }\n\n    this.type = 'default';\n    this.status = options.status === undefined ? 200 : options.status;\n    if (this.status < 200 || this.status > 599) {\n      throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n    }\n    this.ok = this.status >= 200 && this.status < 300;\n    this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n    this.headers = new Headers(options.headers);\n    this.url = options.url || '';\n    this._initBody(bodyInit);\n  }\n\n  Body.call(Response.prototype);\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  };\n\n  Response.error = function() {\n    var response = new Response(null, {status: 200, statusText: ''});\n    response.ok = false;\n    response.status = 0;\n    response.type = 'error';\n    return response\n  };\n\n  var redirectStatuses = [301, 302, 303, 307, 308];\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  };\n\n  exports.DOMException = g.DOMException;\n  try {\n    new exports.DOMException();\n  } catch (err) {\n    exports.DOMException = function(message, name) {\n      this.message = message;\n      this.name = name;\n      var error = Error(message);\n      this.stack = error.stack;\n    };\n    exports.DOMException.prototype = Object.create(Error.prototype);\n    exports.DOMException.prototype.constructor = exports.DOMException;\n  }\n\n  function fetch(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init);\n\n      if (request.signal && request.signal.aborted) {\n        return reject(new exports.DOMException('Aborted', 'AbortError'))\n      }\n\n      var xhr = new XMLHttpRequest();\n\n      function abortXhr() {\n        xhr.abort();\n      }\n\n      xhr.onload = function() {\n        var options = {\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        };\n        // This check if specifically for when a user fetches a file locally from the file system\n        // Only if the status is out of a normal range\n        if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n          options.status = 200;\n        } else {\n          options.status = xhr.status;\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n        var body = 'response' in xhr ? xhr.response : xhr.responseText;\n        setTimeout(function() {\n          resolve(new Response(body, options));\n        }, 0);\n      };\n\n      xhr.onerror = function() {\n        setTimeout(function() {\n          reject(new TypeError('Network request failed'));\n        }, 0);\n      };\n\n      xhr.ontimeout = function() {\n        setTimeout(function() {\n          reject(new TypeError('Network request timed out'));\n        }, 0);\n      };\n\n      xhr.onabort = function() {\n        setTimeout(function() {\n          reject(new exports.DOMException('Aborted', 'AbortError'));\n        }, 0);\n      };\n\n      function fixUrl(url) {\n        try {\n          return url === '' && g.location.href ? g.location.href : url\n        } catch (e) {\n          return url\n        }\n      }\n\n      xhr.open(request.method, fixUrl(request.url), true);\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true;\n      } else if (request.credentials === 'omit') {\n        xhr.withCredentials = false;\n      }\n\n      if ('responseType' in xhr) {\n        if (support.blob) {\n          xhr.responseType = 'blob';\n        } else if (\n          support.arrayBuffer\n        ) {\n          xhr.responseType = 'arraybuffer';\n        }\n      }\n\n      if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n        var names = [];\n        Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n          names.push(normalizeName(name));\n          xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n        });\n        request.headers.forEach(function(value, name) {\n          if (names.indexOf(name) === -1) {\n            xhr.setRequestHeader(name, value);\n          }\n        });\n      } else {\n        request.headers.forEach(function(value, name) {\n          xhr.setRequestHeader(name, value);\n        });\n      }\n\n      if (request.signal) {\n        request.signal.addEventListener('abort', abortXhr);\n\n        xhr.onreadystatechange = function() {\n          // DONE (success or failure)\n          if (xhr.readyState === 4) {\n            request.signal.removeEventListener('abort', abortXhr);\n          }\n        };\n      }\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n    })\n  }\n\n  fetch.polyfill = true;\n\n  if (!g.fetch) {\n    g.fetch = fetch;\n    g.Headers = Headers;\n    g.Request = Request;\n    g.Response = Response;\n  }\n\n  exports.Headers = Headers;\n  exports.Request = Request;\n  exports.Response = Response;\n  exports.fetch = fetch;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n\n})({});\n})(__globalThis__);\n// This is a ponyfill, so...\n__globalThis__.fetch.ponyfill = true;\ndelete __globalThis__.fetch.polyfill;\n// Choose between native implementation (__global__) or custom implementation (__globalThis__)\nvar ctx = __global__.fetch ? __global__ : __globalThis__;\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchContext = exports.fetchJson = void 0;\n// TODO: Use universal fetch here\nconst cross_fetch_1 = require(\"cross-fetch\");\nfunction fetchJson(url, options) {\n    var _a;\n    return __awaiter(this, void 0, void 0, function* () {\n        // Select the correct fetch function\n        const fetchFn = (_a = options === null || options === void 0 ? void 0 : options.fetch) !== null && _a !== void 0 ? _a : cross_fetch_1.fetch;\n        return (yield fetchFn(url)).json();\n    });\n}\nexports.fetchJson = fetchJson;\nfunction fetchContext(url, options) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return (yield fetchJson(url, options))['@context'];\n    });\n}\nexports.fetchContext = fetchContext;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookupUri = void 0;\nconst fetchContext_1 = require(\"./fetchContext\");\n/**\n * Use prefix.cc to look up the namespace associated with a given prefix.\n * Errors if one cannot be found.\n *\n * @param prefix The prefix of which to obtain the namespace\n * @param options Optional fetch function to use\n */\nfunction lookupUri(prefix, options) {\n    return __awaiter(this, void 0, void 0, function* () {\n        const uri = (yield (0, fetchContext_1.fetchContext)(`https://prefix.cc/${prefix}.file.jsonld`, options))[prefix];\n        if (typeof uri !== 'string') {\n            throw new Error(`Expected uri to be a string, received: ${uri} of type ${typeof uri}`);\n        }\n        return uri;\n    });\n}\nexports.lookupUri = lookupUri;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookupPrefix = void 0;\nconst fetchContext_1 = require(\"./fetchContext\");\n/**\n * Use prefix.cc to look up the prefix for a URI namespace, rejects if there is an error in\n * looking up the prefix, or if no prefixes are returned\n *\n * @param uri The URI to obtain a prefix for\n * @param options Optional fetch function to use\n */\nfunction lookupPrefix(uri, options) {\n    return __awaiter(this, void 0, void 0, function* () {\n        // Create the correct url to lookup including search parameters\n        const url = new URL('https://prefix.cc/reverse');\n        url.searchParams.append('uri', uri);\n        url.searchParams.append('format', 'jsonld');\n        const prefixes = Object.keys(yield (0, fetchContext_1.fetchContext)(url, options));\n        if (prefixes.length === 0) {\n            throw new Error('No prefixes returned');\n        }\n        return prefixes[0];\n    });\n}\nexports.lookupPrefix = lookupPrefix;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookupAllPrefixes = void 0;\nconst fetchContext_1 = require(\"./fetchContext\");\n/**\n * Use prefix.cc to look up all recorded prefixes\n */\nfunction lookupAllPrefixes(options) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return (0, fetchContext_1.fetchContext)('https://prefix.cc/context', options);\n    });\n}\nexports.lookupAllPrefixes = lookupAllPrefixes;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lookupNamespace\"), exports);\n__exportStar(require(\"./lookupPrefix\"), exports);\n__exportStar(require(\"./lookupAllPrefixes\"), exports);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lookupAllPrefixes = exports.prefixToUri = exports.uriToPrefix = void 0;\nconst fragment_1 = require(\"./fragment\");\nconst lookup_1 = require(\"./lookup\");\nfunction uriToPrefix(uri, options) {\n    return __awaiter(this, void 0, void 0, function* () {\n        let result;\n        // Collect the prefix\n        try {\n            result = yield (0, lookup_1.lookupPrefix)(uri, options);\n        }\n        catch (_a) {\n            if (options === null || options === void 0 ? void 0 : options.mintOnUnknown) {\n                // Keep prefixes at most 4 characters long when minting a new one\n                result = (0, fragment_1.fragment)(uri).slice(0, 4);\n            }\n        }\n        // If there is a bank of existing prefixes make sure to make a unique one\n        // by postfixing a number\n        if (typeof result !== 'undefined'\n            && typeof (options === null || options === void 0 ? void 0 : options.existingPrefixes) === 'object'\n            && result in options.existingPrefixes) {\n            let i = 0;\n            while (`${result}${i}` in options.existingPrefixes) {\n                i += 1;\n            }\n            result = `${result}${i}`;\n        }\n        return result;\n    });\n}\nexports.uriToPrefix = uriToPrefix;\n/**\n * Lookup the namespace commonly associated with a given prefix\n * @param prefix The prefix to lookup the namespace for\n * @param options You can optionally pass a custom fetch function\n */\nfunction prefixToUri(prefix, options) {\n    return __awaiter(this, void 0, void 0, function* () {\n        try {\n            // The await needs to be here so that we can return undefined on rejection\n            return yield (0, lookup_1.lookupUri)(prefix, options);\n        }\n        catch (_a) {\n            return undefined;\n        }\n    });\n}\nexports.prefixToUri = prefixToUri;\nvar lookup_2 = require(\"./lookup\");\nObject.defineProperty(exports, \"lookupAllPrefixes\", { enumerable: true, get: function () { return lookup_2.lookupAllPrefixes; } });\n","\"use strict\";\n/**\n  * Get the frame of an IRI that we expect to be in the SHACL namespace\n  */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getShaclName = void 0;\n// eslint-disable-next-line import/prefer-default-export\nfunction getShaclName(term) {\n    if (term.termType !== 'NamedNode' || !term.value.startsWith(\"http://www.w3.org/ns/shacl#\" /* sh._ */)) {\n        throw new Error(`Term ${term.value} is not part of the SHACL namespace`);\n    }\n    return term.value.slice(27);\n}\nexports.getShaclName = getShaclName;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Allowed parameters for a PropertyShape\n */\nexports.default = {\n    deactivated: true,\n    severity: true,\n    message: true,\n    class: true,\n    datatype: true,\n    nodeKind: true,\n    minExclusive: true,\n    minInclusive: true,\n    maxExclusive: true,\n    maxInclusive: true,\n    minLength: true,\n    maxLength: true,\n    pattern: true,\n    flags: true,\n    languageIn: true,\n    uniqueLang: true,\n    equals: true,\n    disjoint: true,\n    lessThan: true,\n    lessThanOrEquals: true,\n    qualifiedValueShape: true,\n    qualifiedMinCount: true,\n    qualifiedMaxCount: true,\n    qualifiedValueShapesDisjoint: true,\n    closed: true,\n    ignoredProperties: true,\n    hasValue: true,\n    in: true,\n    // This is here so that we can exract it from alts\n    node: true,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * The base prefixes default to SHACLC syntax\n */\n// TODO: Double check the defaults\nexports.default = {\n    owl: 'http://www.w3.org/2002/07/owl#',\n    rdf: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n    rdfs: 'http://www.w3.org/2000/01/rdf-schema#',\n    sh: 'http://www.w3.org/ns/shacl#',\n    xsd: 'http://www.w3.org/2001/XMLSchema#',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Allowed parameters for a NodeShape\n */\nexports.default = {\n    targetNode: true,\n    targetObjectsOf: true,\n    targetSubjectsOf: true,\n    deactivated: true,\n    severity: true,\n    message: true,\n    class: true,\n    datatype: true,\n    nodeKind: true,\n    minExclusive: true,\n    minInclusive: true,\n    maxExclusive: true,\n    maxInclusive: true,\n    minLength: true,\n    maxLength: true,\n    pattern: true,\n    flags: true,\n    languageIn: true,\n    equals: true,\n    disjoint: true,\n    closed: true,\n    ignoredProperties: true,\n    hasValue: true,\n    in: true,\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable no-unused-vars */\n/* eslint-disable lines-between-class-members */\n/* eslint-disable no-dupe-class-members */\n/**\n * Generates a SHACLC file stream from a quad stream, since SHACLC is\n * lossy with respect to N3, a stream of quads that could not be\n * written is also output.\n */\nconst n3_1 = require(\"n3\");\nconst prefixcc_1 = require(\"@jeswr/prefixcc\");\nconst rdf_string_ttl_1 = require(\"rdf-string-ttl\");\nconst utils_1 = require(\"./utils\");\nconst property_param_1 = __importDefault(require(\"./property-param \"));\nconst base_prefixes_1 = __importDefault(require(\"./base-prefixes\"));\nconst node_param_1 = __importDefault(require(\"./node-param\"));\nfunction getNamespace(str) {\n    var _a;\n    return (_a = /^[^]*[#/]/.exec(str)) === null || _a === void 0 ? void 0 : _a[0];\n}\nconst knownNamespaces = {\n    'http://www.w3.org/1999/02/22-rdf-syntax-ns#': 'rdf',\n    'http://www.w3.org/2000/01/rdf-schema#': 'rdfs',\n    'http://www.w3.org/ns/shacl#': 'sh',\n    'http://www.w3.org/2001/XMLSchema#': 'xsd',\n};\nconst knownPrefixes = {\n    rdf: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n    rdfs: 'http://www.w3.org/2000/01/rdf-schema#',\n    sh: 'http://www.w3.org/ns/shacl#',\n    xsd: 'http://www.w3.org/2001/XMLSchema#',\n};\nclass SHACLCWriter {\n    constructor(\n    // eslint-disable-next-line no-unused-vars\n    store, \n    // eslint-disable-next-line no-unused-vars\n    writer, prefixes = {}, \n    // eslint-disable-next-line no-unused-vars\n    base = undefined, errorOnExtraQuads = true, mintUnspecifiedPrefixes = false, fetch, extendedSyntax = false) {\n        this.store = store;\n        this.base = base;\n        this.errorOnExtraQuads = errorOnExtraQuads;\n        this.mintUnspecifiedPrefixes = mintUnspecifiedPrefixes;\n        this.fetch = fetch;\n        this.extendedSyntax = extendedSyntax;\n        this.prefixes = {};\n        this.prefixRev = {};\n        for (const key of Object.keys(prefixes)) {\n            const iri = prefixes[key];\n            const value = typeof iri === 'string' ? iri : iri.value;\n            if (!(value in knownNamespaces) && !(key in knownPrefixes)) {\n                this.prefixRev[value] = key;\n                this.prefixes[key] = value;\n            }\n        }\n        this.writer = writer;\n    }\n    /**\n     * Used to initiate the flow of data through the writer.\n     */\n    // TODO: Make initialisation async\n    write() {\n        return __awaiter(this, void 0, void 0, function* () {\n            const onotology = this.store.getQuads(null, \"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\" /* rdf.type */, \"http://www.w3.org/2002/07/owl#Ontology\" /* owl.Ontology */, null);\n            if (onotology.length === 1 && onotology[0].subject.termType === 'NamedNode') {\n                const base = onotology[0].subject;\n                this.store.removeQuads(onotology);\n                // Don't write default\n                if (!base.equals(new n3_1.NamedNode('urn:x-base:default')))\n                    this.writer.add(`BASE ${(0, rdf_string_ttl_1.termToString)(base)}`);\n                yield this.writeImports(base);\n            }\n            else {\n                throw new Error('Base expected');\n            }\n            if (this.mintUnspecifiedPrefixes) {\n                const namespaces = new Set();\n                for (const term of [\n                    ...this.store.getSubjects(null, null, null),\n                    ...this.store.getPredicates(null, null, null),\n                    ...this.store.getObjects(null, null, null),\n                ]) {\n                    if (term.termType === 'NamedNode') {\n                        const namespace = getNamespace(term.value);\n                        if (namespace && !(namespace in this.prefixRev) && !(namespace in knownNamespaces)) {\n                            namespaces.add(namespace);\n                        }\n                    }\n                }\n                const existingPrefixes = Object.assign(Object.assign({}, this.prefixes), knownPrefixes);\n                yield Promise.all([...namespaces].map((ns) => (0, prefixcc_1.uriToPrefix)(ns, {\n                    fetch: this.fetch,\n                    mintOnUnknown: true,\n                    existingPrefixes,\n                }).then((pref) => {\n                    this.prefixes[pref] = ns;\n                    existingPrefixes[pref] = ns;\n                    this.prefixRev[ns] = pref;\n                })));\n            }\n            const allNamespaces = new Set([\n                ...this.store.getSubjects(null, null, null),\n                ...this.store.getPredicates(null, null, null),\n                ...this.store.getObjects(null, null, null),\n            ]\n                .filter((term) => term.termType === 'NamedNode')\n                .map((term) => getNamespace(term.value))\n                .filter((str) => typeof str === 'string'));\n            for (const key in this.prefixRev) {\n                if (!allNamespaces.has(key)) {\n                    delete this.prefixes[this.prefixRev[key]];\n                    delete this.prefixRev[key];\n                }\n            }\n            yield this.writePrefixes();\n            this.prefixes = Object.assign(Object.assign({}, this.prefixes), knownPrefixes);\n            this.prefixRev = Object.assign(Object.assign({}, this.prefixRev), knownNamespaces);\n            this.writer.newLine();\n            yield this.writeShapes();\n            if (this.extendedSyntax) {\n                const subjects = this.store.getSubjects(null, null, null);\n                if (subjects.length > 0) {\n                    this.writer.newLine(1);\n                }\n                for (const subject of subjects) {\n                    this.writer.add(yield this.termToString(subject, true, true));\n                    this.writer.add(' ');\n                    this.writer.indent();\n                    yield this.writeTurtlePredicates(subject);\n                    this.writer.deindent();\n                }\n                if (subjects.length > 0) {\n                    this.writer.add(' .');\n                    this.writer.newLine();\n                }\n            }\n            if (this.errorOnExtraQuads && this.store.size > 0) {\n                throw new Error(`Dataset contains quads that cannot be written in SHACLC [\\n${new n3_1.Writer({ prefixes: this.prefixes }).quadsToString(this.store.getQuads(null, null, null, null))}]`);\n            }\n            this.writer.end();\n            // this.failedQuads.append(this.store.getQuads(null, null, null, null))\n        });\n    }\n    writeImports(base) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const imports = this.store.getObjectsOnce(base, new n3_1.NamedNode(\"http://www.w3.org/2002/07/owl#imports\" /* owl.imports */), null);\n            if (imports.length > 0) {\n                for (const imp of imports) {\n                    this.writer.add(`IMPORTS <${imp.value}>`, true);\n                }\n            }\n        });\n    }\n    writePrefixes() {\n        return __awaiter(this, void 0, void 0, function* () {\n            const keys = Object.keys(this.prefixes).filter((key) => !(key in base_prefixes_1.default)).sort();\n            if (keys.length > 0) {\n                for (const key of keys) {\n                    this.writer.add(`PREFIX ${key}: <${this.prefixes[key]}>`, true);\n                }\n            }\n        });\n    }\n    termToString(term, disableShaclName = false, allowBlankNodes = false) {\n        return __awaiter(this, void 0, void 0, function* () {\n            // TODO: Make sure this does not introduce any errors\n            try {\n                if (disableShaclName) {\n                    throw new Error('Shacl name disabled');\n                }\n                return (0, utils_1.getShaclName)(term);\n                // eslint-disable-next-line no-empty\n            }\n            catch (e) { }\n            if (term.termType === 'NamedNode') {\n                const namespace = getNamespace(term.value);\n                if (namespace && namespace in this.prefixRev) {\n                    if (namespace in this.prefixRev) {\n                        return `${this.prefixRev[namespace]}:${term.value.slice(namespace.length)}`;\n                    }\n                }\n                return (0, rdf_string_ttl_1.termToString)(term);\n            }\n            if (term.termType === 'Literal') {\n                if (term.datatypeString === 'http://www.w3.org/2001/XMLSchema#integer'\n                    || term.datatypeString === 'http://www.w3.org/2001/XMLSchema#boolean') {\n                    return term.value;\n                }\n                return (0, rdf_string_ttl_1.termToString)(term);\n            }\n            if (term.termType === 'BlankNode' && allowBlankNodes) {\n                (0, rdf_string_ttl_1.termToString)(term);\n            }\n            throw new Error(`Invalid term type for extra statement ${term.value} (${term.termType})`);\n        });\n    }\n    writeShapes() {\n        return __awaiter(this, void 0, void 0, function* () {\n            // TODO: Determine sorting\n            /**\n             * Get every nodeshape declared at the top level\n             */\n            for (const subject of this.store.getSubjectsOnce(new n3_1.NamedNode(\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\" /* rdf.type */), new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#NodeShape\" /* sh.NodeShape */), null)) {\n                if (this.store.getQuadsOnce(subject, new n3_1.NamedNode(\"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\" /* rdf.type */), new n3_1.NamedNode(\"http://www.w3.org/2000/01/rdf-schema#Class\" /* rdfs.Class */), null).length > 0) {\n                    this.writer.add('shapeClass ');\n                }\n                else {\n                    this.writer.add('shape ');\n                }\n                this.writer.add(yield this.termToString(subject));\n                this.writer.add(' ');\n                const targetClasses = this.store.getObjectsOnce(subject, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#targetClass\" /* sh.targetClass */), null);\n                if (targetClasses.length > 0) {\n                    this.writer.add('-> ');\n                    for (const targetClass of targetClasses) {\n                        if (targetClass.termType === 'NamedNode') {\n                            this.writer.add(yield this.termToString(targetClass));\n                        }\n                        else {\n                            this.writer.add('!');\n                            this.writer.add(yield this.termToString(this.singleObject(targetClass, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#not\" /* sh.not */), true)));\n                        }\n                        this.writer.add(' ');\n                    }\n                }\n                const unusedPredicates = this.store.getPredicates(subject, null, null)\n                    .filter((property) => [\n                    new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#targetClass\" /* sh.targetClass */),\n                    new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#property\" /* sh.property */),\n                    // TODO: See if \"and\" should be here as well\n                    new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#or\" /* sh.or */),\n                    ...Object.keys(node_param_1.default).map((key) => new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#\" /* sh._ */ + key)),\n                ].every((elem) => !property.equals(elem)));\n                if (unusedPredicates.length > 0) {\n                    this.writer.add(';');\n                    this.writer.indent();\n                    this.writer.newLine(1);\n                }\n                if (this.extendedSyntax) {\n                    yield this.writeGivenTurtlePredicates(subject, unusedPredicates);\n                }\n                if (unusedPredicates.length > 0) {\n                    this.writer.add(' ');\n                    this.writer.deindent();\n                }\n                yield this.writeShapeBody(subject, false);\n            }\n        });\n    }\n    getSingleProperty(quad, allowedPredicates) {\n        // let tempQuad = quad;\n        let examining = [quad];\n        try {\n            let name = (0, utils_1.getShaclName)(quad.predicate);\n            let type = 'pred';\n            if (name === 'not') {\n                const quads = this.store.getQuadsOnce(quad.object, null, null, null);\n                // TODO: See if this line is necessary\n                examining = examining.concat(quads);\n                if (quads.length !== 1) {\n                    throw new Error('Can only handle having one predicate of \\'not\\'');\n                }\n                // eslint-disable-next-line no-param-reassign\n                [quad] = quads;\n                name = (0, utils_1.getShaclName)(quad.predicate);\n                type = 'not';\n            }\n            if (!(name in allowedPredicates)) {\n                throw new Error(`${name} is not allowed`);\n            }\n            return { name, type, object: quad.object };\n        }\n        catch (e) {\n            this.store.addQuads(examining);\n        }\n        return undefined;\n    }\n    singleLayerPropertiesList(term, allowedPredicates) {\n        const result = [];\n        for (const quad of this.store.getQuadsOnce(term, null, null, null)) {\n            const property = this.getSingleProperty(quad, allowedPredicates);\n            if (property) {\n                result.push(property);\n            }\n        }\n        return result;\n    }\n    expectOneProperty(term, allowedPredicates) {\n        const quads = this.store.getQuadsOnce(term, null, null, null);\n        if (quads.length === 1) {\n            const data = this.getSingleProperty(quads[0], allowedPredicates);\n            if (data) {\n                return data;\n            }\n        }\n        this.store.addQuads(quads);\n        return undefined;\n    }\n    orProperties(term, allowedPredicates) {\n        const orProperties = [];\n        for (const quad of this.store.getQuadsOnce(term, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#or\" /* sh.or */), null, null)) {\n            const statement = [];\n            for (const item of this.getList(quad.object)) {\n                const property = this.expectOneProperty(item, allowedPredicates);\n                if (!property) {\n                    // TODO HANDLE THIS CASE BY EXTENDING SHACLC SYNTAX\n                    this.store.addQuad(quad);\n                    throw new Error('Each entry of the \\'or\\' statement must declare exactly one property');\n                }\n                statement.push(property);\n            }\n            orProperties.push(statement);\n        }\n        return orProperties;\n    }\n    /**\n     * Extract an rdf:list\n     */\n    getList(term) {\n        // TODO: Fix gross type casting\n        let termTemp = term;\n        const list = [];\n        // TODO: Handle poorly formed RDF lists\n        while (!termTemp.equals(new n3_1.NamedNode(\"http://www.w3.org/1999/02/22-rdf-syntax-ns#nil\" /* rdf.nil */))) {\n            list.push(this.singleObject(termTemp, new n3_1.NamedNode(\"http://www.w3.org/1999/02/22-rdf-syntax-ns#first\" /* rdf.first */), true));\n            termTemp = this.singleObject(termTemp, new n3_1.NamedNode(\"http://www.w3.org/1999/02/22-rdf-syntax-ns#rest\" /* rdf.rest */), true);\n        }\n        return list;\n    }\n    writeIriLiteralOrArray(object) {\n        return __awaiter(this, void 0, void 0, function* () {\n            if (object.termType === 'BlankNode') {\n                this.writer.add('[');\n                let first = true;\n                for (const term of this.getList(object)) {\n                    if (first) {\n                        first = false;\n                    }\n                    else {\n                        this.writer.add(' ');\n                    }\n                    this.writer.add(yield this.termToString(term));\n                }\n                this.writer.add(']');\n            }\n            else {\n                this.writer.add(yield this.termToString(object));\n            }\n        });\n    }\n    singleObject(subject, predicate, strict) {\n        var _a;\n        return (_a = this.singleQuad(subject, predicate, strict)) === null || _a === void 0 ? void 0 : _a.object;\n    }\n    singleQuad(subject, predicate, strict = false) {\n        const objects = this.store.getQuadsOnce(subject, predicate, null, null);\n        if (strict && objects.length !== 1) {\n            this.store.addQuads(objects);\n            throw new Error(`The subject and predicate ${subject === null || subject === void 0 ? void 0 : subject.value} ${predicate === null || predicate === void 0 ? void 0 : predicate.value} must have exactly one object. Instead has ${objects.length}`);\n        }\n        if (objects.length > 1) {\n            this.store.addQuads(objects);\n            throw new Error(`The subject and predicate ${subject === null || subject === void 0 ? void 0 : subject.value} ${predicate === null || predicate === void 0 ? void 0 : predicate.value} can have at most one object. Instead has ${objects.length}`);\n        }\n        return objects.length === 1 ? objects[0] : undefined;\n    }\n    writeAssigment({ name, type, object }) {\n        return __awaiter(this, void 0, void 0, function* () {\n            if (type === 'not') {\n                this.writer.add('!');\n                // object = this.singleObject(object, DataFactory.namedNode(sh._ + name), true)\n            }\n            this.writer.add(name);\n            this.writer.add('=');\n            yield this.writeIriLiteralOrArray(object);\n        });\n    }\n    writeAtom({ name, type, object }) {\n        return __awaiter(this, void 0, void 0, function* () {\n            if (type === 'not') {\n                this.writer.add('!');\n            }\n            switch (name) {\n                case 'node': {\n                    if (object.termType === 'NamedNode') {\n                        this.writer.add(`@${yield this.termToString(object)}`);\n                    }\n                    else if (object.termType === 'BlankNode') {\n                        yield this.writeShapeBody(object);\n                    }\n                    else {\n                        throw new Error('Invalid nested shape, must be blank node or IRI');\n                    }\n                    return;\n                }\n                case 'nodeKind': {\n                    this.writer.add((0, utils_1.getShaclName)(object));\n                    return;\n                }\n                case 'class': {\n                    this.writer.add(yield this.termToString(object));\n                    return;\n                }\n                case 'datatype': {\n                    this.writer.add(yield this.termToString(object));\n                    return;\n                }\n                default:\n                    this.writer.add(name);\n                    this.writer.add('=');\n                    yield this.writeIriLiteralOrArray(object);\n            }\n        });\n    }\n    writeAssigments(assignments, divider = ' ', first = true, shortcuts) {\n        return __awaiter(this, void 0, void 0, function* () {\n            for (const assignment of assignments) {\n                if (first) {\n                    // eslint-disable-next-line no-param-reassign\n                    first = false;\n                }\n                else {\n                    this.writer.add(divider);\n                }\n                if (shortcuts) {\n                    yield this.writeAtom(assignment);\n                }\n                else {\n                    yield this.writeAssigment(assignment);\n                }\n            }\n        });\n    }\n    writeParams(term, first = true, allowedParam, shortcuts = false, surroundings = false) {\n        return __awaiter(this, void 0, void 0, function* () {\n            // TODO Stream this part\n            const or = this.orProperties(term, allowedParam);\n            const params = this.singleLayerPropertiesList(term, allowedParam);\n            if (surroundings && (or.length > 0 || params.length > 0)) {\n                this.writer.newLine(1);\n            }\n            for (const statement of or) {\n                if (first) {\n                    // eslint-disable-next-line no-param-reassign\n                    first = false;\n                }\n                else {\n                    this.writer.add(' ');\n                }\n                yield this.writeAssigments(statement, '|', true, shortcuts);\n            }\n            yield this.writeAssigments(params, ' ', first, shortcuts);\n            if (surroundings && (or.length > 0 || params.length > 0)) {\n                this.writer.add(' .');\n            }\n        });\n    }\n    writeShapeBody(term, nested = true) {\n        return __awaiter(this, void 0, void 0, function* () {\n            this.writer.add('{').indent();\n            const properties = this.store.getObjectsOnce(term, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#property\" /* sh.property */), null);\n            yield this.writeParams(term, true, node_param_1.default, false, true);\n            for (const property of properties) {\n                this.writer.newLine(1);\n                yield this.writeProperty(property);\n            }\n            this.writer.deindent().newLine(1);\n            if (nested) {\n                this.writer.add('} .');\n            }\n            else {\n                this.writer.add('}').newLine(1);\n            }\n        });\n    }\n    writeProperty(property) {\n        return __awaiter(this, void 0, void 0, function* () {\n            yield this.writePath(this.singleObject(property, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#path\" /* sh.path */), true));\n            const min = this.singleObject(property, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#minCount\" /* sh.minCount */));\n            const max = this.singleObject(property, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#maxCount\" /* sh.maxCount */));\n            const nodeKind = this.singleObject(property, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#nodeKind\" /* sh.nodeKind */));\n            // eslint-disable-next-line no-underscore-dangle\n            const propertyClass = this.singleObject(property, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#class\" /* sh._class */));\n            const datatype = this.singleObject(property, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#datatype\" /* sh.datatype */));\n            const nodeShapes = this.store.getObjectsOnce(property, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#node\" /* sh.node */), null);\n            if (nodeKind) {\n                this.writer.add(' ');\n                this.writer.add((0, utils_1.getShaclName)(nodeKind));\n            }\n            if (propertyClass) {\n                this.writer.add(' ');\n                this.writer.add(yield this.termToString(propertyClass));\n            }\n            if (datatype) {\n                this.writer.add(' ');\n                this.writer.add(yield this.termToString(datatype));\n            }\n            if (min !== undefined || max !== undefined) {\n                this.writer.add(' [');\n                if (min) {\n                    if (min.termType !== 'Literal' || min.datatypeString !== 'http://www.w3.org/2001/XMLSchema#integer') {\n                        throw new Error('Invalid min value, must me an integer literal');\n                    }\n                    this.writer.add(min.value);\n                }\n                else {\n                    this.writer.add('0');\n                }\n                this.writer.add('..');\n                if (max) {\n                    if (max.termType !== 'Literal' || max.datatypeString !== 'http://www.w3.org/2001/XMLSchema#integer') {\n                        throw new Error('Invalid max value, must me an integer literal');\n                    }\n                    this.store.removeMatches(property, new n3_1.NamedNode(\"http://www.w3.org/ns/shacl#maxCount\" /* sh.maxCount */), undefined, undefined);\n                    this.writer.add(max.value);\n                }\n                else {\n                    this.writer.add('*');\n                }\n                this.writer.add(']');\n            }\n            yield this.writeParams(property, false, property_param_1.default, true);\n            const nestedShapes = [];\n            for (const node of nodeShapes) {\n                if (node.termType === 'NamedNode') {\n                    this.writer.add(' ');\n                    this.writer.add(`@${yield this.termToString(node)}`);\n                }\n                else if (node.termType === 'BlankNode') {\n                    nestedShapes.push(node);\n                }\n                else {\n                    throw new Error('Invalid nested shape, must be blank node or IRI');\n                }\n            }\n            for (const shape of nestedShapes) {\n                this.writer.add(' ');\n                yield this.writeShapeBody(shape);\n            }\n            if (this.extendedSyntax && this.store.getQuads(property, null, null, null).length > 0) {\n                this.writer.add(' %');\n                this.writer.indent();\n                this.writer.newLine(1);\n                yield this.writeTurtlePredicates(property);\n                this.writer.deindent();\n                this.writer.newLine(1);\n                this.writer.add('%');\n            }\n            if (nestedShapes.length === 0) {\n                this.writer.add(' .');\n            }\n        });\n    }\n    writeTurtlePredicates(term) {\n        return __awaiter(this, void 0, void 0, function* () {\n            return this.writeGivenTurtlePredicates(term, this.store.getPredicates(term, null, null));\n        });\n    }\n    writeGivenTurtlePredicates(term, predicates) {\n        return __awaiter(this, void 0, void 0, function* () {\n            let semi = false;\n            if (predicates.some((predicate) => predicate.equals(n3_1.DataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#type')))) {\n                const types = this.store.getObjectsOnce(term, n3_1.DataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'), null);\n                if (types.length > 0) {\n                    semi = true;\n                    this.writer.add('a ');\n                    yield this.writeTurtleObjects(types);\n                }\n            }\n            for (const predicate of predicates) {\n                if (!predicate.equals(n3_1.DataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#type'))) {\n                    if (semi) {\n                        this.writer.add(' ;');\n                        this.writer.newLine(1);\n                    }\n                    else {\n                        semi = true;\n                    }\n                    this.writer.add(yield this.termToString(predicate, true));\n                    this.writer.add(' ');\n                    yield this.writeTurtleObjects(this.store.getObjectsOnce(term, predicate, null));\n                }\n            }\n        });\n    }\n    writeTurtleObjects(objects) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const blankObjects = [];\n            const nonBlankObjects = [];\n            for (const object of objects) {\n                if (object.termType === 'BlankNode'\n                    && [...this.store.match(null, null, object), ...this.store.match(null, object, null)].length === 0) {\n                    blankObjects.push(object);\n                }\n                else {\n                    nonBlankObjects.push(object);\n                }\n            }\n            this.writer.add((yield Promise.all(nonBlankObjects.map((object) => this.termToString(object, true, true)))).join(', '));\n            let comma = nonBlankObjects.length > 0;\n            if (blankObjects.length > 0) {\n                for (const blank of blankObjects) {\n                    if (comma) {\n                        this.writer.add(', ');\n                    }\n                    else {\n                        comma = true;\n                    }\n                    if (!(yield this.writeList(blank))) {\n                        this.writer.add('[');\n                        this.writer.indent();\n                        this.writer.newLine(1);\n                        yield this.writeTurtlePredicates(blank);\n                        this.writer.deindent();\n                        this.writer.newLine(1);\n                        this.writer.add(']');\n                    }\n                }\n            }\n        });\n    }\n    writeList(object) {\n        return __awaiter(this, void 0, void 0, function* () {\n            let node = object;\n            const elems = [];\n            const quads = [];\n            while (!node.equals(n3_1.DataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#nil'))) {\n                const first = this.store.getQuadsOnce(node, n3_1.DataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#first'), null, null);\n                const rest = this.store.getQuadsOnce(node, n3_1.DataFactory.namedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#rest'), null, null);\n                quads.push(...first, ...rest);\n                if (first.length !== 1 || rest.length !== 1 || this.store.getQuads(node, null, null, null).length !== 0) {\n                    this.store.addQuads(quads);\n                    return false;\n                }\n                elems.push(first[0].object);\n                node = rest[0].object;\n            }\n            let space = false;\n            this.writer.add('(');\n            for (const elem of elems) {\n                if (space) {\n                    this.writer.add(' ');\n                }\n                else {\n                    space = true;\n                }\n                yield this.writeTurtleObjects([elem]);\n            }\n            this.writer.add(')');\n            return true;\n        });\n    }\n    writePath(term, braces = false) {\n        return __awaiter(this, void 0, void 0, function* () {\n            if (term.termType === 'NamedNode') {\n                this.writer.add(yield this.termToString(term));\n            }\n            else if (term.termType === 'BlankNode') {\n                const quads = this.store.getQuadsOnce(term, null, null, null);\n                if (quads.length === 1) {\n                    const { predicate, object } = quads[0];\n                    switch (predicate.value) {\n                        case \"http://www.w3.org/ns/shacl#inversePath\" /* sh.inversePath */:\n                            this.writer.add('^');\n                            yield this.writePath(object, true);\n                            return;\n                        case \"http://www.w3.org/ns/shacl#alternativePath\" /* sh.alternativePath */: {\n                            const alternatives = this.getList(object);\n                            if (alternatives.length === 0) {\n                                throw new Error('Invalid Alternative Path - no options');\n                            }\n                            else if (alternatives.length === 1) {\n                                yield this.writePath(alternatives[0]);\n                            }\n                            else {\n                                if (braces) {\n                                    this.writer.add('(');\n                                }\n                                let first = true;\n                                for (const alt of alternatives) {\n                                    if (first) {\n                                        first = false;\n                                    }\n                                    else {\n                                        this.writer.add('|');\n                                    }\n                                    yield this.writePath(alt, true);\n                                }\n                                if (braces) {\n                                    this.writer.add(')');\n                                }\n                            }\n                            return;\n                        }\n                        case \"http://www.w3.org/ns/shacl#zeroOrMorePath\" /* sh.zeroOrMorePath */:\n                            yield this.writePath(object, true);\n                            this.writer.add('*');\n                            return;\n                        case \"http://www.w3.org/ns/shacl#oneOrMorePath\" /* sh.oneOrMorePath */:\n                            yield this.writePath(object, true);\n                            this.writer.add('+');\n                            return;\n                        case \"http://www.w3.org/ns/shacl#zeroOrOnePath\" /* sh.zeroOrOnePath */:\n                            yield this.writePath(object, true);\n                            this.writer.add('?');\n                            return;\n                        default:\n                            throw new Error(`Invalid path type ${term.value}`);\n                    }\n                }\n                else {\n                    // TODO Make more efficient\n                    this.store.addQuads(quads);\n                    const sequence = this.getList(term);\n                    if (sequence.length === 0) {\n                        throw new Error('Invalid Path');\n                        // TODO: See if the following case is necessary\n                        // else if (sequence.length === 1) {\n                        //   await this.writePath(sequence[0]);\n                        // }\n                    }\n                    else {\n                        if (braces) {\n                            this.writer.add('(');\n                        }\n                        let first = true;\n                        for (const alt of sequence) {\n                            if (first) {\n                                first = false;\n                            }\n                            else {\n                                this.writer.add('/');\n                            }\n                            yield this.writePath(alt, true);\n                        }\n                        if (braces) {\n                            this.writer.add(')');\n                        }\n                    }\n                }\n            }\n            else {\n                throw new Error('Path should be named node or blank node');\n            }\n        });\n    }\n}\nexports.default = SHACLCWriter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Convenience class used to write chunks\n */\nclass Writer {\n    constructor(options) {\n        this.indents = 0;\n        this.write = options.write;\n        this.end = options.end;\n    }\n    indent() {\n        this.indents += 1;\n        return this;\n    }\n    deindent() {\n        if (this.indents < 1) {\n            throw new Error(`Trying to deindent when indent is only ${this.indents}`);\n        }\n        this.indents -= 1;\n        return this;\n    }\n    add(s, newLine = false) {\n        this.write(newLine ? `\\n${'\\t'.repeat(this.indents)}${s}` : s, 'utf-8');\n        return this;\n    }\n    newLine(no = 2) {\n        this.write('\\n'.repeat(no) + '\\t'.repeat(this.indents), 'utf-8');\n        return this;\n    }\n}\nexports.default = Writer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/* eslint-disable camelcase */\n/**\n * Convenience class that extends the n3 store API that deletes\n * quads as they are extracted from the store\n */\nconst n3_1 = require(\"n3\");\nclass VolitileStore extends n3_1.Store {\n    getQuadsOnce(s, p, o, g) {\n        const quads = this.getQuads(s, p, o, g);\n        this.removeQuads(quads);\n        return quads;\n    }\n    getSubjectsOnce(p, o, g) {\n        return this.getQuadsOnce(null, p, o, g).map((term) => term.subject);\n    }\n    getObjectsOnce(s, p, g) {\n        return this.getQuadsOnce(s, p, null, g).map((term) => term.object);\n    }\n}\nexports.default = VolitileStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.write = void 0;\nconst n3_1 = require(\"n3\");\nconst ShaclcGenerator_1 = __importDefault(require(\"./ShaclcGenerator\"));\nconst writer_1 = __importDefault(require(\"./writer\"));\nconst volatile_store_1 = __importDefault(require(\"./volatile-store\"));\nfunction write(quads, options) {\n    return __awaiter(this, void 0, void 0, function* () {\n        // eslint-disable-next-line no-async-promise-executor\n        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {\n            try {\n                let s = '';\n                const volatileStore = new volatile_store_1.default(quads);\n                const graphs = volatileStore.getGraphs(null, null, null);\n                if (graphs.length > 1) {\n                    throw new Error('More than one graph found - can serialize in the default graph');\n                }\n                if (graphs.length === 1 && !graphs[0].equals(n3_1.DataFactory.defaultGraph())) {\n                    throw new Error(`Expected all triples to be in the default graph, instead triples were in ${graphs[0].value}`);\n                }\n                const w = new writer_1.default({\n                    write: (chunk) => {\n                        s += chunk;\n                    },\n                    end: () => {\n                        let extraQuads = volatileStore.getQuads(null, null, null, null);\n                        if (extraQuads.length === 0) {\n                            extraQuads = undefined;\n                        }\n                        resolve({\n                            text: s,\n                            extraQuads,\n                        });\n                    },\n                });\n                const writer = new ShaclcGenerator_1.default(volatileStore, w, options === null || options === void 0 ? void 0 : options.prefixes, undefined, (options === null || options === void 0 ? void 0 : options.errorOnUnused) !== false, options === null || options === void 0 ? void 0 : options.mintPrefixes, options === null || options === void 0 ? void 0 : options.fetch, options === null || options === void 0 ? void 0 : options.extendedSyntax);\n                yield writer.write();\n            }\n            catch (e) {\n                reject(e);\n            }\n        }));\n    });\n}\nexports.write = write;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfSerializeShaclc = void 0;\nconst bus_rdf_serialize_1 = require(\"@comunica/bus-rdf-serialize\");\nconst arrayify_stream_1 = require(\"arrayify-stream\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst shaclc_write_1 = require(\"shaclc-write\");\n/**\n * A comunica SHACL Compact Syntax RDF Serialize Actor.\n */\nclass ActorRdfSerializeShaclc extends bus_rdf_serialize_1.ActorRdfSerializeFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"text/shaclc\": 1.0,\n     *       \"text/shaclc-ext\": 0.5\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"text/shaclc\": \"http://www.w3.org/ns/formats/Shaclc\",\n     *       \"text/shaclc-ext\": \"http://www.w3.org/ns/formats/ShaclcExtended\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async runHandle(action, mediaType) {\n        const data = new readable_stream_1.Readable();\n        data._read = () => {\n            // Do nothing\n        };\n        try {\n            const prefixes = {};\n            action.quadStream.on('prefix', (prefix, iri) => {\n                prefixes[prefix] = iri;\n            });\n            const { text } = await (0, shaclc_write_1.write)(await (0, arrayify_stream_1.default)(action.quadStream), { errorOnUnused: true, extendedSyntax: mediaType === 'text/shaclc-ext', prefixes });\n            data.push(text);\n            data.push(null);\n        }\n        catch (error) {\n            // Push the error into the stream\n            data._read = () => {\n                data.emit('error', error);\n            };\n        }\n        return {\n            data,\n            triples: true,\n        };\n    }\n}\nexports.ActorRdfSerializeShaclc = ActorRdfSerializeShaclc;\n//# sourceMappingURL=ActorRdfSerializeShaclc.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfSerializeShaclc\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfUpdateQuads = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for rdf-update-quads events.\n *\n * Actor types:\n * * Input:  IActionRdfUpdateQuads:      Quad insertion and deletion streams.\n * * Test:   <none>\n * * Output: IActorRdfUpdateQuadsOutput: A promise resolving when the update operation is done.\n *\n * @see IActionRdfUpdateQuads\n * @see IActorRdfUpdateQuadsOutput\n */\nclass ActorRdfUpdateQuads extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {RDF updating failed: none of the configured actors were able to handle an update} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorRdfUpdateQuads = ActorRdfUpdateQuads;\n//# sourceMappingURL=ActorRdfUpdateQuads.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfUpdateQuadsDestination = exports.deskolemize = exports.deskolemizeStream = void 0;\nconst actor_context_preprocess_query_source_skolemize_1 = require(\"@comunica/actor-context-preprocess-query-source-skolemize\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst ActorRdfUpdateQuads_1 = require(\"./ActorRdfUpdateQuads\");\nfunction deskolemizeStream(dataFactory, stream, id) {\n    return stream?.map(quad => (0, actor_context_preprocess_query_source_skolemize_1.deskolemizeQuad)(dataFactory, quad, id));\n}\nexports.deskolemizeStream = deskolemizeStream;\nfunction deskolemize(action) {\n    const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n    const destination = action.context.get(context_entries_1.KeysRdfUpdateQuads.destination);\n    const id = action.context.get(context_entries_1.KeysQuerySourceIdentify.sourceIds)?.get(destination);\n    if (!id) {\n        return action;\n    }\n    return {\n        ...action,\n        quadStreamInsert: deskolemizeStream(dataFactory, action.quadStreamInsert, id),\n        quadStreamDelete: deskolemizeStream(dataFactory, action.quadStreamDelete, id),\n    };\n}\nexports.deskolemize = deskolemize;\n/**\n * A base implementation for rdf-update-quads events\n * that wraps around an {@link IQuadDestination}.\n *\n * @see IQuadDestination\n */\nclass ActorRdfUpdateQuadsDestination extends ActorRdfUpdateQuads_1.ActorRdfUpdateQuads {\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const destination = await this.getDestination(action.context);\n        return await this.getOutput(destination, deskolemize(action));\n    }\n    /**\n     * Get the output of the given action on a destination.\n     * @param {IQuadDestination} destination A quad destination, possibly lazy.\n     * @param {IActionRdfUpdateQuads} action The action.\n     */\n    async getOutput(destination, action) {\n        const execute = async () => {\n            await destination.update({ insert: action.quadStreamInsert, delete: action.quadStreamDelete });\n            await (action.deleteGraphs ?\n                destination.deleteGraphs(action.deleteGraphs.graphs, action.deleteGraphs.requireExistence, action.deleteGraphs.dropGraphs) :\n                Promise.resolve());\n            await (action.createGraphs ?\n                destination.createGraphs(action.createGraphs.graphs, action.createGraphs.requireNonExistence) :\n                Promise.resolve());\n        };\n        return { execute };\n    }\n}\nexports.ActorRdfUpdateQuadsDestination = ActorRdfUpdateQuadsDestination;\n//# sourceMappingURL=ActorRdfUpdateQuadsDestination.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IQuadDestination.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getContextDestinationUrl = exports.getContextDestination = exports.getDataDestinationContext = exports.getDataDestinationValue = exports.getDataDestinationType = exports.isDataDestinationRawType = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\n/**\n * Check if the given data destination is a string or RDF store.\n * @param dataDestination A data destination.\n */\nfunction isDataDestinationRawType(dataDestination) {\n    return typeof dataDestination === 'string' || 'remove' in dataDestination;\n}\nexports.isDataDestinationRawType = isDataDestinationRawType;\n/**\n * Get the data destination type.\n * @param dataDestination A data destination.\n */\nfunction getDataDestinationType(dataDestination) {\n    if (typeof dataDestination === 'string') {\n        return '';\n    }\n    return 'remove' in dataDestination ? 'rdfjsStore' : dataDestination.type;\n}\nexports.getDataDestinationType = getDataDestinationType;\n/**\n * Get the data destination value.\n * @param dataDestination A data destination.\n */\nfunction getDataDestinationValue(dataDestination) {\n    return isDataDestinationRawType(dataDestination) ? dataDestination : dataDestination.value;\n}\nexports.getDataDestinationValue = getDataDestinationValue;\n/**\n * Get the context of the given destination, merged with the given context.\n * @param dataDestination A data destination.\n * @param context A context to merge with.\n */\nfunction getDataDestinationContext(dataDestination, context) {\n    if (typeof dataDestination === 'string' || 'remove' in dataDestination || !dataDestination.context) {\n        return context;\n    }\n    return context.merge(dataDestination.context);\n}\nexports.getDataDestinationContext = getDataDestinationContext;\n/**\n * Get the source destination from the given context.\n * @param {ActionContext} context An optional context.\n * @return {IDataDestination} The destination or undefined.\n */\nfunction getContextDestination(context) {\n    return context.get(context_entries_1.KeysRdfUpdateQuads.destination);\n}\nexports.getContextDestination = getContextDestination;\n/**\n * Get the destination's raw URL value from the given context.\n * @param {IDataDestination} destination A destination.\n * @return {string} The URL or undefined.\n */\nfunction getContextDestinationUrl(destination) {\n    if (destination) {\n        let fileUrl = getDataDestinationValue(destination);\n        if (typeof fileUrl === 'string') {\n            // Remove hashes from source\n            const hashPosition = fileUrl.indexOf('#');\n            if (hashPosition >= 0) {\n                fileUrl = fileUrl.slice(0, hashPosition);\n            }\n            return fileUrl;\n        }\n    }\n}\nexports.getContextDestinationUrl = getContextDestinationUrl;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfUpdateQuads\"), exports);\n__exportStar(require(\"./ActorRdfUpdateQuadsDestination\"), exports);\n__exportStar(require(\"./IQuadDestination\"), exports);\n__exportStar(require(\"./utils\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfJsQuadDestination = void 0;\nconst event_emitter_promisify_1 = require(\"event-emitter-promisify\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A quad destination that wraps around an {@link RDF.Store}.\n */\nclass RdfJsQuadDestination {\n    constructor(dataFactory, store) {\n        this.dataFactory = dataFactory;\n        this.store = store;\n    }\n    async update(quadStreams) {\n        if (quadStreams.delete) {\n            await (0, event_emitter_promisify_1.promisifyEventEmitter)(this.store.remove(quadStreams.delete));\n        }\n        if (quadStreams.insert) {\n            await (0, event_emitter_promisify_1.promisifyEventEmitter)(this.store.import(quadStreams.insert));\n        }\n    }\n    async deleteGraphs(graphs, _requireExistence, _dropGraphs) {\n        switch (graphs) {\n            case 'ALL':\n                /* eslint-disable no-fallthrough */\n                // Remove the default graph\n                await (0, event_emitter_promisify_1.promisifyEventEmitter)(this.store.deleteGraph(this.dataFactory.defaultGraph()));\n            // Drop through to remove all named graphs\n            case 'NAMED':\n                /* eslint-enable no-fallthrough */\n                // Warning: this is sub-optimal!\n                // Query ALL quads to determine all named graphs\n                // eslint-disable-next-line no-case-declarations\n                const allQuads = this.store.match();\n                // eslint-disable-next-line no-case-declarations\n                const namedGraphs = {};\n                allQuads.on('data', (quad) => {\n                    if (quad.graph.termType !== 'DefaultGraph') {\n                        namedGraphs[(0, rdf_string_1.termToString)(quad.graph)] = true;\n                    }\n                });\n                await (0, event_emitter_promisify_1.promisifyEventEmitter)(allQuads);\n                // Delete all named graphs\n                await Promise.all(Object.keys(namedGraphs)\n                    .map(namedGraph => (0, event_emitter_promisify_1.promisifyEventEmitter)(this.store\n                    .deleteGraph((0, rdf_string_1.stringToTerm)(namedGraph, this.dataFactory)))));\n                break;\n            default:\n                // Delete the default graph or a named graph\n                for (const graph of Array.isArray(graphs) ? graphs : [graphs]) {\n                    await (0, event_emitter_promisify_1.promisifyEventEmitter)(this.store.deleteGraph(graph));\n                }\n        }\n    }\n    async createGraphs(graphs, requireNonExistence) {\n        // We don't have to create anything, since RDF/JS stores don't record empty graphs.\n        // The only check we have to do is error on existence\n        if (requireNonExistence) {\n            for (const graph of graphs) {\n                const eventEmitter = this.store.match(undefined, undefined, undefined, graph);\n                await new Promise((resolve, reject) => {\n                    eventEmitter.once('data', () => {\n                        reject(new Error(`Unable to create graph ${graph.value} as it already exists`));\n                    });\n                    eventEmitter.on('end', resolve);\n                    eventEmitter.on('error', reject);\n                });\n            }\n        }\n    }\n}\nexports.RdfJsQuadDestination = RdfJsQuadDestination;\n//# sourceMappingURL=RdfJsQuadDestination.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfUpdateQuadsRdfJsStore = void 0;\nconst bus_rdf_update_quads_1 = require(\"@comunica/bus-rdf-update-quads\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst RdfJsQuadDestination_1 = require(\"./RdfJsQuadDestination\");\n/**\n * A comunica RDFJS Store RDF Update Quads Actor.\n */\nclass ActorRdfUpdateQuadsRdfJsStore extends bus_rdf_update_quads_1.ActorRdfUpdateQuadsDestination {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        const destination = (0, bus_rdf_update_quads_1.getContextDestination)(action.context);\n        if (!destination || typeof destination === 'string' ||\n            (!('remove' in destination) && 'value' in destination && !destination.value?.remove)) {\n            return (0, core_1.failTest)(`${this.name} received an invalid rdfjsStore.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async getDestination(context) {\n        const destination = (0, bus_rdf_update_quads_1.getContextDestination)(context);\n        return new RdfJsQuadDestination_1.RdfJsQuadDestination(context.getSafe(context_entries_1.KeysInitQuery.dataFactory), 'remove' in destination ? destination : destination.value);\n    }\n}\nexports.ActorRdfUpdateQuadsRdfJsStore = ActorRdfUpdateQuadsRdfJsStore;\n//# sourceMappingURL=ActorRdfUpdateQuadsRdfJsStore.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfUpdateQuadsRdfJsStore\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionFunctionBnode = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_data_factory_1 = require(\"@comunica/utils-data-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-bnode\n * id has to be distinct over all id's in dataset\n */\nclass ExpressionFunctionBnode extends bus_function_factory_1.ExpressionFunctionBase {\n    constructor() {\n        super({\n            arity: Number.POSITIVE_INFINITY,\n            operator: utils_expression_evaluator_1.SparqlOperator.BNODE,\n            apply: async (context) => {\n                const { args, mapping, exprEval } = context;\n                const input = args.length === 1 ?\n                    await exprEval.evaluatorExpressionEvaluation(args[0], mapping) :\n                    undefined;\n                let strInput;\n                if (input) {\n                    const operation = ExpressionFunctionBnode.bnodeTree.search([input], exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.superTypeProvider), exprEval.context.getSafe(context_entries_1.KeysInitQuery.functionArgumentsCache));\n                    if (!operation) {\n                        throw new utils_expression_evaluator_1.InvalidArgumentTypes(args, utils_expression_evaluator_1.SparqlOperator.BNODE);\n                    }\n                    strInput = operation(exprEval)([input]).str();\n                }\n                const bnode = new utils_data_factory_1.BlankNodeBindingsScoped(strInput ?? `BNODE_${ExpressionFunctionBnode.bnodeCounter++}`);\n                return new utils_expression_evaluator_1.BlankNode(bnode);\n            },\n        });\n    }\n    checkArity(args) {\n        return args.length === 0 || args.length === 1;\n    }\n}\nexports.ExpressionFunctionBnode = ExpressionFunctionBnode;\n/**\n * This OverloadTree with the constant function will handle both type promotion and subtype-substitution\n */\nExpressionFunctionBnode.bnodeTree = (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.BNODE).onString1(() => arg => arg).collect();\n/**\n * A counter that keeps track blank node generated through BNODE() SPARQL\n * expressions.\n */\nExpressionFunctionBnode.bnodeCounter = 0;\n//# sourceMappingURL=ExpressionFunctionBnode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionBnode = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst ExpressionFunctionBnode_1 = require(\"./ExpressionFunctionBnode\");\n/**\n * A comunica ExpressionFunctionBnode Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionBnode extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.BNODE],\n            termFunction: false,\n        });\n    }\n    async run(_) {\n        return new ExpressionFunctionBnode_1.ExpressionFunctionBnode();\n    }\n}\nexports.ActorFunctionFactoryExpressionBnode = ActorFunctionFactoryExpressionBnode;\n//# sourceMappingURL=ActorFunctionFactoryExpressionBnode.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionBnode\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionFunctionBound = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst types_1 = require(\"@comunica/types\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-bound\n * This function doesn't require type promotion or subtype-substitution, everything works on TermExpression\n */\nclass ExpressionFunctionBound extends bus_function_factory_1.ExpressionFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.BOUND,\n            apply: async ({ args, mapping, exprEval }) => {\n                const variable = args[0];\n                if (variable.expressionType !== types_1.ExpressionType.Variable) {\n                    throw new utils_expression_evaluator_1.InvalidArgumentTypes(args, utils_expression_evaluator_1.SparqlOperator.BOUND);\n                }\n                const val = mapping.has((0, utils_expression_evaluator_1.expressionToVar)(exprEval.context.getSafe(context_entries_1.KeysInitQuery.dataFactory), variable));\n                return (0, utils_expression_evaluator_1.bool)(val);\n            },\n        });\n    }\n}\nexports.ExpressionFunctionBound = ExpressionFunctionBound;\n//# sourceMappingURL=ExpressionFunctionBound.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionBound = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst ExpressionFunctionBound_1 = require(\"./ExpressionFunctionBound\");\n/**\n * A comunica ExpressionFunctionBound Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionBound extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.BOUND],\n            termFunction: false,\n        });\n    }\n    async run(_) {\n        return new ExpressionFunctionBound_1.ExpressionFunctionBound();\n    }\n}\nexports.ActorFunctionFactoryExpressionBound = ActorFunctionFactoryExpressionBound;\n//# sourceMappingURL=ActorFunctionFactoryExpressionBound.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionBound\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionFunctionCoalesce = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-coalesce\n * This function doesn't require type promotion or subtype-substitution, everything works on TermExpression\n */\nclass ExpressionFunctionCoalesce extends bus_function_factory_1.ExpressionFunctionBase {\n    constructor() {\n        super({\n            arity: Number.POSITIVE_INFINITY,\n            operator: utils_expression_evaluator_1.SparqlOperator.COALESCE,\n            apply: async ({ args, mapping, exprEval }) => {\n                const errors = [];\n                for (const expr of args) {\n                    try {\n                        return await exprEval.evaluatorExpressionEvaluation(expr, mapping);\n                    }\n                    catch (error) {\n                        errors.push(error);\n                    }\n                }\n                throw new utils_expression_evaluator_1.CoalesceError(errors);\n            },\n        });\n    }\n}\nexports.ExpressionFunctionCoalesce = ExpressionFunctionCoalesce;\n//# sourceMappingURL=ExpressionFunctionCoalesce.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionCoalesce = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst ExpressionFunctionCoalesce_1 = require(\"./ExpressionFunctionCoalesce\");\n/**\n * A comunica ExpressionFunctionCoalesce Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionCoalesce extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.COALESCE],\n            termFunction: false,\n        });\n    }\n    async run(_) {\n        return new ExpressionFunctionCoalesce_1.ExpressionFunctionCoalesce();\n    }\n}\nexports.ActorFunctionFactoryExpressionCoalesce = ActorFunctionFactoryExpressionCoalesce;\n//# sourceMappingURL=ActorFunctionFactoryExpressionCoalesce.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionCoalesce\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionFunctionConcat = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-concat\n */\nclass ExpressionFunctionConcat extends bus_function_factory_1.ExpressionFunctionBase {\n    constructor() {\n        super({\n            arity: Number.POSITIVE_INFINITY,\n            operator: utils_expression_evaluator_1.SparqlOperator.CONCAT,\n            apply: async (context) => {\n                const { args, mapping, exprEval } = context;\n                const pLits = args\n                    .map(async (expr) => exprEval.evaluatorExpressionEvaluation(expr, mapping))\n                    .map(async (pTerm) => {\n                    const operation = ExpressionFunctionConcat.concatTree.search([await pTerm], exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.superTypeProvider), exprEval.context.getSafe(context_entries_1.KeysInitQuery.functionArgumentsCache));\n                    if (!operation) {\n                        throw new utils_expression_evaluator_1.InvalidArgumentTypes(args, utils_expression_evaluator_1.SparqlOperator.CONCAT);\n                    }\n                    return operation(exprEval)([await pTerm]);\n                });\n                const lits = await Promise.all(pLits);\n                const strings = lits.map(lit => lit.typedValue);\n                const joined = strings.join('');\n                const lang = ExpressionFunctionConcat.langAllEqual(lits) ? lits[0].language : undefined;\n                return lang ? (0, utils_expression_evaluator_1.langString)(joined, lang) : (0, utils_expression_evaluator_1.string)(joined);\n            },\n        });\n    }\n    static langAllEqual(lits) {\n        return lits.length > 0 && lits.every(lit => lit.language === lits[0].language);\n    }\n}\nexports.ExpressionFunctionConcat = ExpressionFunctionConcat;\n/**\n * This OverloadTree with the constant function will handle both type promotion and subtype-substitution\n */\nExpressionFunctionConcat.concatTree = (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.CONCAT).onStringly1(() => expr => expr)\n    .collect();\n//# sourceMappingURL=ExpressionFunctionConcat.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionConcat = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst ExpressionFunctionConcat_1 = require(\"./ExpressionFunctionConcat\");\n/**\n * A comunica ExpressionFunctionConcat Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionConcat extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.CONCAT],\n            termFunction: false,\n        });\n    }\n    async run(_) {\n        return new ExpressionFunctionConcat_1.ExpressionFunctionConcat();\n    }\n}\nexports.ActorFunctionFactoryExpressionConcat = ActorFunctionFactoryExpressionConcat;\n//# sourceMappingURL=ActorFunctionFactoryExpressionConcat.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionConcat\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NamedExtension = void 0;\nconst Core_1 = require(\"@comunica/bus-function-factory/lib/implementation/Core\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass NamedExtension extends Core_1.ExpressionFunctionBase {\n    constructor({ operator, functionDefinition }) {\n        super({\n            arity: Number.POSITIVE_INFINITY,\n            operator,\n            apply: async ({ args, exprEval, mapping }) => {\n                const evaluatedArgs = await Promise.all(args.map(arg => exprEval.evaluatorExpressionEvaluation(arg, mapping)));\n                try {\n                    return new utils_expression_evaluator_1.TermTransformer(exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.superTypeProvider))\n                        .transformRDFTermUnsafe(await functionDefinition(evaluatedArgs.map(term => term.toRDF(exprEval.context.getSafe(context_entries_1.KeysInitQuery.dataFactory)))));\n                }\n                catch (error) {\n                    throw new utils_expression_evaluator_1.ExtensionFunctionError(this.operator, error);\n                }\n            },\n        });\n    }\n}\nexports.NamedExtension = NamedExtension;\n//# sourceMappingURL=NamedExtension.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionExtensions = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst NamedExtension_1 = require(\"./NamedExtension\");\n/**\n * A comunica Expression Function Extensions Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionExtensions extends bus_function_factory_1.ActorFunctionFactory {\n    constructor(args) {\n        super(args);\n    }\n    async test({ context, functionName }) {\n        const extensionFinder = context.getSafe(context_entries_1.KeysExpressionEvaluator.extensionFunctionCreator);\n        const definition = await extensionFinder(new rdf_data_factory_1.DataFactory().namedNode(functionName));\n        if (definition) {\n            return (0, core_1.passTestVoid)();\n        }\n        return (0, core_1.failTest)(`Actor ${this.name} can only provide non-termExpression implementations for functions that are provided through config entries like: ${context_entries_1.KeysInitQuery.extensionFunctionCreator.name} or ${context_entries_1.KeysInitQuery.extensionFunctions.name}`);\n    }\n    async run({ context, functionName }) {\n        const extensionFinder = context.getSafe(context_entries_1.KeysExpressionEvaluator.extensionFunctionCreator);\n        const definition = await extensionFinder(new rdf_data_factory_1.DataFactory().namedNode(functionName));\n        return new NamedExtension_1.NamedExtension({\n            operator: functionName,\n            functionDefinition: definition,\n        });\n    }\n}\nexports.ActorFunctionFactoryExpressionExtensions = ActorFunctionFactoryExpressionExtensions;\n//# sourceMappingURL=ActorFunctionFactoryExpressionExtensions.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionExtensions\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionFunctionIf = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-if\n * This function doesn't require type promotion or subtype-substitution, everything works on TermExpression\n */\nclass ExpressionFunctionIf extends bus_function_factory_1.ExpressionFunctionBase {\n    constructor() {\n        super({\n            arity: 3,\n            operator: utils_expression_evaluator_1.SparqlOperator.IF,\n            apply: async ({ args, mapping, exprEval }) => {\n                const valFirst = await exprEval.evaluatorExpressionEvaluation(args[0], mapping);\n                const ebv = valFirst.coerceEBV();\n                return ebv ?\n                    exprEval.evaluatorExpressionEvaluation(args[1], mapping) :\n                    exprEval.evaluatorExpressionEvaluation(args[2], mapping);\n            },\n        });\n    }\n}\nexports.ExpressionFunctionIf = ExpressionFunctionIf;\n//# sourceMappingURL=ExpressionFunctionIf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionIf = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst ExpressionFunctionIf_1 = require(\"./ExpressionFunctionIf\");\n/**\n * A comunica ExpressionFunctionIf Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionIf extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.IF],\n            termFunction: false,\n        });\n    }\n    async run(_) {\n        return new ExpressionFunctionIf_1.ExpressionFunctionIf();\n    }\n}\nexports.ActorFunctionFactoryExpressionIf = ActorFunctionFactoryExpressionIf;\n//# sourceMappingURL=ActorFunctionFactoryExpressionIf.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionIf\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionFunctionLogicalAnd = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-logical-and\n * This function doesn't require type promotion or subtype-substitution, everything works on TermExpression\n */\nclass ExpressionFunctionLogicalAnd extends bus_function_factory_1.ExpressionFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.LOGICAL_AND,\n            apply: async ({ args, mapping, exprEval }) => {\n                const [leftExpr, rightExpr] = args;\n                try {\n                    const leftTerm = await exprEval.evaluatorExpressionEvaluation(leftExpr, mapping);\n                    const left = leftTerm.coerceEBV();\n                    if (!left) {\n                        return (0, utils_expression_evaluator_1.bool)(false);\n                    }\n                    const rightTerm = await exprEval.evaluatorExpressionEvaluation(rightExpr, mapping);\n                    const right = rightTerm.coerceEBV();\n                    return (0, utils_expression_evaluator_1.bool)(right);\n                }\n                catch (error) {\n                    const rightErrorTerm = await exprEval.evaluatorExpressionEvaluation(rightExpr, mapping);\n                    const rightError = rightErrorTerm.coerceEBV();\n                    if (rightError) {\n                        throw error;\n                    }\n                    return (0, utils_expression_evaluator_1.bool)(false);\n                }\n            },\n        });\n    }\n}\nexports.ExpressionFunctionLogicalAnd = ExpressionFunctionLogicalAnd;\n//# sourceMappingURL=ExpressionFunctionLogicalAnd.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionLogicalAnd = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst ExpressionFunctionLogicalAnd_1 = require(\"./ExpressionFunctionLogicalAnd\");\n/**\n * A comunica ExpressionFunctionLogicalAnd Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionLogicalAnd extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.LOGICAL_AND],\n            termFunction: false,\n        });\n    }\n    async run(_) {\n        return new ExpressionFunctionLogicalAnd_1.ExpressionFunctionLogicalAnd();\n    }\n}\nexports.ActorFunctionFactoryExpressionLogicalAnd = ActorFunctionFactoryExpressionLogicalAnd;\n//# sourceMappingURL=ActorFunctionFactoryExpressionLogicalAnd.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionLogicalAnd\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionFunctionLogicalOr = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-logical-or\n * This function doesn't require type promotion or subtype-substitution, everything works on TermExpression\n */\nclass ExpressionFunctionLogicalOr extends bus_function_factory_1.ExpressionFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.LOGICAL_OR,\n            apply: async ({ args, mapping, exprEval }) => {\n                const [leftExpr, rightExpr] = args;\n                try {\n                    const leftTerm = await exprEval.evaluatorExpressionEvaluation(leftExpr, mapping);\n                    const left = leftTerm.coerceEBV();\n                    if (left) {\n                        return (0, utils_expression_evaluator_1.bool)(true);\n                    }\n                    const rightTerm = await exprEval.evaluatorExpressionEvaluation(rightExpr, mapping);\n                    const right = rightTerm.coerceEBV();\n                    return (0, utils_expression_evaluator_1.bool)(right);\n                }\n                catch (error) {\n                    const rightErrorTerm = await exprEval.evaluatorExpressionEvaluation(rightExpr, mapping);\n                    const rightError = rightErrorTerm.coerceEBV();\n                    if (!rightError) {\n                        throw error;\n                    }\n                    return (0, utils_expression_evaluator_1.bool)(true);\n                }\n            },\n        });\n    }\n}\nexports.ExpressionFunctionLogicalOr = ExpressionFunctionLogicalOr;\n//# sourceMappingURL=ExpressionFunctionLogicalOr.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionLogicalOr = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst ExpressionFunctionLogicalOr_1 = require(\"./ExpressionFunctionLogicalOr\");\n/**\n * A comunica ExpressionFunctionLogicalOr Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionLogicalOr extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.LOGICAL_OR],\n            termFunction: false,\n        });\n    }\n    async run(_) {\n        return new ExpressionFunctionLogicalOr_1.ExpressionFunctionLogicalOr();\n    }\n}\nexports.ActorFunctionFactoryExpressionLogicalOr = ActorFunctionFactoryExpressionLogicalOr;\n//# sourceMappingURL=ActorFunctionFactoryExpressionLogicalOr.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionLogicalOr\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionFunctionSameTerm = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-sameTerm\n * This function doesn't require type promotion or subtype-substitution, everything works on TermExpression\n */\nclass ExpressionFunctionSameTerm extends bus_function_factory_1.ExpressionFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.SAME_TERM,\n            apply: async ({ args, mapping, exprEval }) => {\n                const dataFactory = exprEval.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n                const [leftExpr, rightExpr] = args.map(arg => exprEval.evaluatorExpressionEvaluation(arg, mapping));\n                const [left, right] = await Promise.all([leftExpr, rightExpr]);\n                return (0, utils_expression_evaluator_1.bool)(left.toRDF(dataFactory).equals(right.toRDF(dataFactory)));\n            },\n        });\n    }\n}\nexports.ExpressionFunctionSameTerm = ExpressionFunctionSameTerm;\n//# sourceMappingURL=ExpressionFunctionSameTerm.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionSameTerm = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst ExpressionFunctionSameTerm_1 = require(\"./ExpressionFunctionSameTerm\");\n/**\n * A comunica ExpressionFunctionSameTerm Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionSameTerm extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.SAME_TERM],\n            termFunction: false,\n        });\n    }\n    async run(_) {\n        return new ExpressionFunctionSameTerm_1.ExpressionFunctionSameTerm();\n    }\n}\nexports.ActorFunctionFactoryExpressionSameTerm = ActorFunctionFactoryExpressionSameTerm;\n//# sourceMappingURL=ActorFunctionFactoryExpressionSameTerm.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionSameTerm\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionAbs = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-abs\n */\nclass TermFunctionAbs extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.ABS,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.ABS)\n                .numericConverter(() => num => Math.abs(num))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionAbs = TermFunctionAbs;\n//# sourceMappingURL=TermFunctionAbs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermAbs = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionAbs_1 = require(\"./TermFunctionAbs\");\n/**\n * A comunica TermFunctionAbs Function Factory Actor.\n */\nclass ActorFunctionFactoryTermAbs extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.ABS],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionAbs_1.TermFunctionAbs();\n    }\n}\nexports.ActorFunctionFactoryTermAbs = ActorFunctionFactoryTermAbs;\n//# sourceMappingURL=ActorFunctionFactoryTermAbs.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermAbs\"), exports);\n//# sourceMappingURL=index.js.map",";(function (globalObject) {\r\n  'use strict';\r\n\r\n/*\r\n *      bignumber.js v9.3.0\r\n *      A JavaScript library for arbitrary-precision arithmetic.\r\n *      https://github.com/MikeMcl/bignumber.js\r\n *      Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n *      MIT Licensed.\r\n *\r\n *      BigNumber.prototype methods     |  BigNumber methods\r\n *                                      |\r\n *      absoluteValue            abs    |  clone\r\n *      comparedTo                      |  config               set\r\n *      decimalPlaces            dp     |      DECIMAL_PLACES\r\n *      dividedBy                div    |      ROUNDING_MODE\r\n *      dividedToIntegerBy       idiv   |      EXPONENTIAL_AT\r\n *      exponentiatedBy          pow    |      RANGE\r\n *      integerValue                    |      CRYPTO\r\n *      isEqualTo                eq     |      MODULO_MODE\r\n *      isFinite                        |      POW_PRECISION\r\n *      isGreaterThan            gt     |      FORMAT\r\n *      isGreaterThanOrEqualTo   gte    |      ALPHABET\r\n *      isInteger                       |  isBigNumber\r\n *      isLessThan               lt     |  maximum              max\r\n *      isLessThanOrEqualTo      lte    |  minimum              min\r\n *      isNaN                           |  random\r\n *      isNegative                      |  sum\r\n *      isPositive                      |\r\n *      isZero                          |\r\n *      minus                           |\r\n *      modulo                   mod    |\r\n *      multipliedBy             times  |\r\n *      negated                         |\r\n *      plus                            |\r\n *      precision                sd     |\r\n *      shiftedBy                       |\r\n *      squareRoot               sqrt   |\r\n *      toExponential                   |\r\n *      toFixed                         |\r\n *      toFormat                        |\r\n *      toFraction                      |\r\n *      toJSON                          |\r\n *      toNumber                        |\r\n *      toPrecision                     |\r\n *      toString                        |\r\n *      valueOf                         |\r\n *\r\n */\r\n\r\n\r\n  var BigNumber,\r\n    isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n    mathceil = Math.ceil,\r\n    mathfloor = Math.floor,\r\n\r\n    bignumberError = '[BigNumber Error] ',\r\n    tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n    BASE = 1e14,\r\n    LOG_BASE = 14,\r\n    MAX_SAFE_INTEGER = 0x1fffffffffffff,         // 2^53 - 1\r\n    // MAX_INT32 = 0x7fffffff,                   // 2^31 - 1\r\n    POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n    SQRT_BASE = 1e7,\r\n\r\n    // EDITABLE\r\n    // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n    // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n    MAX = 1E9;                                   // 0 to MAX_INT32\r\n\r\n\r\n  /*\r\n   * Create and return a BigNumber constructor.\r\n   */\r\n  function clone(configObject) {\r\n    var div, convertBase, parseNumeric,\r\n      P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n      ONE = new BigNumber(1),\r\n\r\n\r\n      //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n      // The default values below must be integers within the inclusive ranges stated.\r\n      // The values can also be changed at run-time using BigNumber.set.\r\n\r\n      // The maximum number of decimal places for operations involving division.\r\n      DECIMAL_PLACES = 20,                     // 0 to MAX\r\n\r\n      // The rounding mode used when rounding to the above decimal places, and when using\r\n      // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n      // UP         0 Away from zero.\r\n      // DOWN       1 Towards zero.\r\n      // CEIL       2 Towards +Infinity.\r\n      // FLOOR      3 Towards -Infinity.\r\n      // HALF_UP    4 Towards nearest neighbour. If equidistant, up.\r\n      // HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.\r\n      // HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n      // HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n      // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n      ROUNDING_MODE = 4,                       // 0 to 8\r\n\r\n      // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n      // The exponent value at and beneath which toString returns exponential notation.\r\n      // Number type: -7\r\n      TO_EXP_NEG = -7,                         // 0 to -MAX\r\n\r\n      // The exponent value at and above which toString returns exponential notation.\r\n      // Number type: 21\r\n      TO_EXP_POS = 21,                         // 0 to MAX\r\n\r\n      // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n      // The minimum exponent value, beneath which underflow to zero occurs.\r\n      // Number type: -324  (5e-324)\r\n      MIN_EXP = -1e7,                          // -1 to -MAX\r\n\r\n      // The maximum exponent value, above which overflow to Infinity occurs.\r\n      // Number type:  308  (1.7976931348623157e+308)\r\n      // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n      MAX_EXP = 1e7,                           // 1 to MAX\r\n\r\n      // Whether to use cryptographically-secure random number generation, if available.\r\n      CRYPTO = false,                          // true or false\r\n\r\n      // The modulo mode used when calculating the modulus: a mod n.\r\n      // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n      // The remainder (r) is calculated as: r = a - n * q.\r\n      //\r\n      // UP        0 The remainder is positive if the dividend is negative, else is negative.\r\n      // DOWN      1 The remainder has the same sign as the dividend.\r\n      //             This modulo mode is commonly known as 'truncated division' and is\r\n      //             equivalent to (a % n) in JavaScript.\r\n      // FLOOR     3 The remainder has the same sign as the divisor (Python %).\r\n      // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n      // EUCLID    9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n      //             The remainder is always positive.\r\n      //\r\n      // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n      // modes are commonly used for the modulus operation.\r\n      // Although the other rounding modes can also be used, they may not give useful results.\r\n      MODULO_MODE = 1,                         // 0 to 9\r\n\r\n      // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n      // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n      POW_PRECISION = 0,                       // 0 to MAX\r\n\r\n      // The format specification used by the BigNumber.prototype.toFormat method.\r\n      FORMAT = {\r\n        prefix: '',\r\n        groupSize: 3,\r\n        secondaryGroupSize: 0,\r\n        groupSeparator: ',',\r\n        decimalSeparator: '.',\r\n        fractionGroupSize: 0,\r\n        fractionGroupSeparator: '\\xA0',        // non-breaking space\r\n        suffix: ''\r\n      },\r\n\r\n      // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n      // '-', '.', whitespace, or repeated character.\r\n      // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n      ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n      alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n    //------------------------------------------------------------------------------------------\r\n\r\n\r\n    // CONSTRUCTOR\r\n\r\n\r\n    /*\r\n     * The BigNumber constructor and exported function.\r\n     * Create and return a new instance of a BigNumber object.\r\n     *\r\n     * v {number|string|BigNumber} A numeric value.\r\n     * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n     */\r\n    function BigNumber(v, b) {\r\n      var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n        x = this;\r\n\r\n      // Enable constructor call without `new`.\r\n      if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n      if (b == null) {\r\n\r\n        if (v && v._isBigNumber === true) {\r\n          x.s = v.s;\r\n\r\n          if (!v.c || v.e > MAX_EXP) {\r\n            x.c = x.e = null;\r\n          } else if (v.e < MIN_EXP) {\r\n            x.c = [x.e = 0];\r\n          } else {\r\n            x.e = v.e;\r\n            x.c = v.c.slice();\r\n          }\r\n\r\n          return;\r\n        }\r\n\r\n        if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n          // Use `1 / n` to handle minus zero also.\r\n          x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n          // Fast path for integers, where n < 2147483648 (2**31).\r\n          if (v === ~~v) {\r\n            for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n            if (e > MAX_EXP) {\r\n              x.c = x.e = null;\r\n            } else {\r\n              x.e = e;\r\n              x.c = [v];\r\n            }\r\n\r\n            return;\r\n          }\r\n\r\n          str = String(v);\r\n        } else {\r\n\r\n          if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n          x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n        }\r\n\r\n        // Decimal point?\r\n        if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n        // Exponential form?\r\n        if ((i = str.search(/e/i)) > 0) {\r\n\r\n          // Determine exponent.\r\n          if (e < 0) e = i;\r\n          e += +str.slice(i + 1);\r\n          str = str.substring(0, i);\r\n        } else if (e < 0) {\r\n\r\n          // Integer.\r\n          e = str.length;\r\n        }\r\n\r\n      } else {\r\n\r\n        // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n        intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n        // Allow exponential notation to be used with base 10 argument, while\r\n        // also rounding to DECIMAL_PLACES as with other bases.\r\n        if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n          x = new BigNumber(v);\r\n          return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n        }\r\n\r\n        str = String(v);\r\n\r\n        if (isNum = typeof v == 'number') {\r\n\r\n          // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n          if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n          x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n          // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n          if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n            throw Error\r\n             (tooManyDigits + v);\r\n          }\r\n        } else {\r\n          x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n        }\r\n\r\n        alphabet = ALPHABET.slice(0, b);\r\n        e = i = 0;\r\n\r\n        // Check that str is a valid base b number.\r\n        // Don't use RegExp, so alphabet can contain special characters.\r\n        for (len = str.length; i < len; i++) {\r\n          if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n            if (c == '.') {\r\n\r\n              // If '.' is not the first character and it has not be found before.\r\n              if (i > e) {\r\n                e = len;\r\n                continue;\r\n              }\r\n            } else if (!caseChanged) {\r\n\r\n              // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n              if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n                  str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n                caseChanged = true;\r\n                i = -1;\r\n                e = 0;\r\n                continue;\r\n              }\r\n            }\r\n\r\n            return parseNumeric(x, String(v), isNum, b);\r\n          }\r\n        }\r\n\r\n        // Prevent later check for length on converted number.\r\n        isNum = false;\r\n        str = convertBase(str, b, 10, x.s);\r\n\r\n        // Decimal point?\r\n        if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n        else e = str.length;\r\n      }\r\n\r\n      // Determine leading zeros.\r\n      for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n      // Determine trailing zeros.\r\n      for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n      if (str = str.slice(i, ++len)) {\r\n        len -= i;\r\n\r\n        // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n        if (isNum && BigNumber.DEBUG &&\r\n          len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n            throw Error\r\n             (tooManyDigits + (x.s * v));\r\n        }\r\n\r\n         // Overflow?\r\n        if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n          // Infinity.\r\n          x.c = x.e = null;\r\n\r\n        // Underflow?\r\n        } else if (e < MIN_EXP) {\r\n\r\n          // Zero.\r\n          x.c = [x.e = 0];\r\n        } else {\r\n          x.e = e;\r\n          x.c = [];\r\n\r\n          // Transform base\r\n\r\n          // e is the base 10 exponent.\r\n          // i is where to slice str to get the first element of the coefficient array.\r\n          i = (e + 1) % LOG_BASE;\r\n          if (e < 0) i += LOG_BASE;  // i < 1\r\n\r\n          if (i < len) {\r\n            if (i) x.c.push(+str.slice(0, i));\r\n\r\n            for (len -= LOG_BASE; i < len;) {\r\n              x.c.push(+str.slice(i, i += LOG_BASE));\r\n            }\r\n\r\n            i = LOG_BASE - (str = str.slice(i)).length;\r\n          } else {\r\n            i -= len;\r\n          }\r\n\r\n          for (; i--; str += '0');\r\n          x.c.push(+str);\r\n        }\r\n      } else {\r\n\r\n        // Zero.\r\n        x.c = [x.e = 0];\r\n      }\r\n    }\r\n\r\n\r\n    // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n    BigNumber.clone = clone;\r\n\r\n    BigNumber.ROUND_UP = 0;\r\n    BigNumber.ROUND_DOWN = 1;\r\n    BigNumber.ROUND_CEIL = 2;\r\n    BigNumber.ROUND_FLOOR = 3;\r\n    BigNumber.ROUND_HALF_UP = 4;\r\n    BigNumber.ROUND_HALF_DOWN = 5;\r\n    BigNumber.ROUND_HALF_EVEN = 6;\r\n    BigNumber.ROUND_HALF_CEIL = 7;\r\n    BigNumber.ROUND_HALF_FLOOR = 8;\r\n    BigNumber.EUCLID = 9;\r\n\r\n\r\n    /*\r\n     * Configure infrequently-changing library-wide settings.\r\n     *\r\n     * Accept an object with the following optional properties (if the value of a property is\r\n     * a number, it must be an integer within the inclusive range stated):\r\n     *\r\n     *   DECIMAL_PLACES   {number}           0 to MAX\r\n     *   ROUNDING_MODE    {number}           0 to 8\r\n     *   EXPONENTIAL_AT   {number|number[]}  -MAX to MAX  or  [-MAX to 0, 0 to MAX]\r\n     *   RANGE            {number|number[]}  -MAX to MAX (not zero)  or  [-MAX to -1, 1 to MAX]\r\n     *   CRYPTO           {boolean}          true or false\r\n     *   MODULO_MODE      {number}           0 to 9\r\n     *   POW_PRECISION       {number}           0 to MAX\r\n     *   ALPHABET         {string}           A string of two or more unique characters which does\r\n     *                                       not contain '.'.\r\n     *   FORMAT           {object}           An object with some of the following properties:\r\n     *     prefix                 {string}\r\n     *     groupSize              {number}\r\n     *     secondaryGroupSize     {number}\r\n     *     groupSeparator         {string}\r\n     *     decimalSeparator       {string}\r\n     *     fractionGroupSize      {number}\r\n     *     fractionGroupSeparator {string}\r\n     *     suffix                 {string}\r\n     *\r\n     * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n     *\r\n     * E.g.\r\n     * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n     *\r\n     * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n     *\r\n     * Return an object with the properties current values.\r\n     */\r\n    BigNumber.config = BigNumber.set = function (obj) {\r\n      var p, v;\r\n\r\n      if (obj != null) {\r\n\r\n        if (typeof obj == 'object') {\r\n\r\n          // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n          // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, MAX, p);\r\n            DECIMAL_PLACES = v;\r\n          }\r\n\r\n          // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n          // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, 8, p);\r\n            ROUNDING_MODE = v;\r\n          }\r\n\r\n          // EXPONENTIAL_AT {number|number[]}\r\n          // Integer, -MAX to MAX inclusive or\r\n          // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n          // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n            v = obj[p];\r\n            if (v && v.pop) {\r\n              intCheck(v[0], -MAX, 0, p);\r\n              intCheck(v[1], 0, MAX, p);\r\n              TO_EXP_NEG = v[0];\r\n              TO_EXP_POS = v[1];\r\n            } else {\r\n              intCheck(v, -MAX, MAX, p);\r\n              TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n            }\r\n          }\r\n\r\n          // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n          // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n          // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n          if (obj.hasOwnProperty(p = 'RANGE')) {\r\n            v = obj[p];\r\n            if (v && v.pop) {\r\n              intCheck(v[0], -MAX, -1, p);\r\n              intCheck(v[1], 1, MAX, p);\r\n              MIN_EXP = v[0];\r\n              MAX_EXP = v[1];\r\n            } else {\r\n              intCheck(v, -MAX, MAX, p);\r\n              if (v) {\r\n                MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n              } else {\r\n                throw Error\r\n                 (bignumberError + p + ' cannot be zero: ' + v);\r\n              }\r\n            }\r\n          }\r\n\r\n          // CRYPTO {boolean} true or false.\r\n          // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n          // '[BigNumber Error] crypto unavailable'\r\n          if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n            v = obj[p];\r\n            if (v === !!v) {\r\n              if (v) {\r\n                if (typeof crypto != 'undefined' && crypto &&\r\n                 (crypto.getRandomValues || crypto.randomBytes)) {\r\n                  CRYPTO = v;\r\n                } else {\r\n                  CRYPTO = !v;\r\n                  throw Error\r\n                   (bignumberError + 'crypto unavailable');\r\n                }\r\n              } else {\r\n                CRYPTO = v;\r\n              }\r\n            } else {\r\n              throw Error\r\n               (bignumberError + p + ' not true or false: ' + v);\r\n            }\r\n          }\r\n\r\n          // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n          // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, 9, p);\r\n            MODULO_MODE = v;\r\n          }\r\n\r\n          // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n          // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, MAX, p);\r\n            POW_PRECISION = v;\r\n          }\r\n\r\n          // FORMAT {object}\r\n          // '[BigNumber Error] FORMAT not an object: {v}'\r\n          if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n            v = obj[p];\r\n            if (typeof v == 'object') FORMAT = v;\r\n            else throw Error\r\n             (bignumberError + p + ' not an object: ' + v);\r\n          }\r\n\r\n          // ALPHABET {string}\r\n          // '[BigNumber Error] ALPHABET invalid: {v}'\r\n          if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n            v = obj[p];\r\n\r\n            // Disallow if less than two characters,\r\n            // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n            if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n              alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n              ALPHABET = v;\r\n            } else {\r\n              throw Error\r\n               (bignumberError + p + ' invalid: ' + v);\r\n            }\r\n          }\r\n\r\n        } else {\r\n\r\n          // '[BigNumber Error] Object expected: {v}'\r\n          throw Error\r\n           (bignumberError + 'Object expected: ' + obj);\r\n        }\r\n      }\r\n\r\n      return {\r\n        DECIMAL_PLACES: DECIMAL_PLACES,\r\n        ROUNDING_MODE: ROUNDING_MODE,\r\n        EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n        RANGE: [MIN_EXP, MAX_EXP],\r\n        CRYPTO: CRYPTO,\r\n        MODULO_MODE: MODULO_MODE,\r\n        POW_PRECISION: POW_PRECISION,\r\n        FORMAT: FORMAT,\r\n        ALPHABET: ALPHABET\r\n      };\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if v is a BigNumber instance, otherwise return false.\r\n     *\r\n     * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n     *\r\n     * v {any}\r\n     *\r\n     * '[BigNumber Error] Invalid BigNumber: {v}'\r\n     */\r\n    BigNumber.isBigNumber = function (v) {\r\n      if (!v || v._isBigNumber !== true) return false;\r\n      if (!BigNumber.DEBUG) return true;\r\n\r\n      var i, n,\r\n        c = v.c,\r\n        e = v.e,\r\n        s = v.s;\r\n\r\n      out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n        if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n          // If the first element is zero, the BigNumber value must be zero.\r\n          if (c[0] === 0) {\r\n            if (e === 0 && c.length === 1) return true;\r\n            break out;\r\n          }\r\n\r\n          // Calculate number of digits that c[0] should have, based on the exponent.\r\n          i = (e + 1) % LOG_BASE;\r\n          if (i < 1) i += LOG_BASE;\r\n\r\n          // Calculate number of digits of c[0].\r\n          //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n          if (String(c[0]).length == i) {\r\n\r\n            for (i = 0; i < c.length; i++) {\r\n              n = c[i];\r\n              if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n            }\r\n\r\n            // Last element cannot be zero, unless it is the only element.\r\n            if (n !== 0) return true;\r\n          }\r\n        }\r\n\r\n      // Infinity/NaN\r\n      } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n        return true;\r\n      }\r\n\r\n      throw Error\r\n        (bignumberError + 'Invalid BigNumber: ' + v);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the maximum of the arguments.\r\n     *\r\n     * arguments {number|string|BigNumber}\r\n     */\r\n    BigNumber.maximum = BigNumber.max = function () {\r\n      return maxOrMin(arguments, -1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the minimum of the arguments.\r\n     *\r\n     * arguments {number|string|BigNumber}\r\n     */\r\n    BigNumber.minimum = BigNumber.min = function () {\r\n      return maxOrMin(arguments, 1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n     * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n     * zeros are produced).\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n     * '[BigNumber Error] crypto unavailable'\r\n     */\r\n    BigNumber.random = (function () {\r\n      var pow2_53 = 0x20000000000000;\r\n\r\n      // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n      // Check if Math.random() produces more than 32 bits of randomness.\r\n      // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n      // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n      var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n       ? function () { return mathfloor(Math.random() * pow2_53); }\r\n       : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n         (Math.random() * 0x800000 | 0); };\r\n\r\n      return function (dp) {\r\n        var a, b, e, k, v,\r\n          i = 0,\r\n          c = [],\r\n          rand = new BigNumber(ONE);\r\n\r\n        if (dp == null) dp = DECIMAL_PLACES;\r\n        else intCheck(dp, 0, MAX);\r\n\r\n        k = mathceil(dp / LOG_BASE);\r\n\r\n        if (CRYPTO) {\r\n\r\n          // Browsers supporting crypto.getRandomValues.\r\n          if (crypto.getRandomValues) {\r\n\r\n            a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n            for (; i < k;) {\r\n\r\n              // 53 bits:\r\n              // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n              // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n              // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n              //                                     11111 11111111 11111111\r\n              // 0x20000 is 2^21.\r\n              v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n              // Rejection sampling:\r\n              // 0 <= v < 9007199254740992\r\n              // Probability that v >= 9e15, is\r\n              // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n              if (v >= 9e15) {\r\n                b = crypto.getRandomValues(new Uint32Array(2));\r\n                a[i] = b[0];\r\n                a[i + 1] = b[1];\r\n              } else {\r\n\r\n                // 0 <= v <= 8999999999999999\r\n                // 0 <= (v % 1e14) <= 99999999999999\r\n                c.push(v % 1e14);\r\n                i += 2;\r\n              }\r\n            }\r\n            i = k / 2;\r\n\r\n          // Node.js supporting crypto.randomBytes.\r\n          } else if (crypto.randomBytes) {\r\n\r\n            // buffer\r\n            a = crypto.randomBytes(k *= 7);\r\n\r\n            for (; i < k;) {\r\n\r\n              // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n              // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n              // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n              // 0 <= v < 9007199254740992\r\n              v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n                 (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n                 (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n              if (v >= 9e15) {\r\n                crypto.randomBytes(7).copy(a, i);\r\n              } else {\r\n\r\n                // 0 <= (v % 1e14) <= 99999999999999\r\n                c.push(v % 1e14);\r\n                i += 7;\r\n              }\r\n            }\r\n            i = k / 7;\r\n          } else {\r\n            CRYPTO = false;\r\n            throw Error\r\n             (bignumberError + 'crypto unavailable');\r\n          }\r\n        }\r\n\r\n        // Use Math.random.\r\n        if (!CRYPTO) {\r\n\r\n          for (; i < k;) {\r\n            v = random53bitInt();\r\n            if (v < 9e15) c[i++] = v % 1e14;\r\n          }\r\n        }\r\n\r\n        k = c[--i];\r\n        dp %= LOG_BASE;\r\n\r\n        // Convert trailing digits to zeros according to dp.\r\n        if (k && dp) {\r\n          v = POWS_TEN[LOG_BASE - dp];\r\n          c[i] = mathfloor(k / v) * v;\r\n        }\r\n\r\n        // Remove trailing elements which are zero.\r\n        for (; c[i] === 0; c.pop(), i--);\r\n\r\n        // Zero?\r\n        if (i < 0) {\r\n          c = [e = 0];\r\n        } else {\r\n\r\n          // Remove leading elements which are zero and adjust exponent accordingly.\r\n          for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n          // Count the digits of the first element of c to determine leading zeros, and...\r\n          for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n          // adjust the exponent accordingly.\r\n          if (i < LOG_BASE) e -= LOG_BASE - i;\r\n        }\r\n\r\n        rand.e = e;\r\n        rand.c = c;\r\n        return rand;\r\n      };\r\n    })();\r\n\r\n\r\n    /*\r\n     * Return a BigNumber whose value is the sum of the arguments.\r\n     *\r\n     * arguments {number|string|BigNumber}\r\n     */\r\n    BigNumber.sum = function () {\r\n      var i = 1,\r\n        args = arguments,\r\n        sum = new BigNumber(args[0]);\r\n      for (; i < args.length;) sum = sum.plus(args[i++]);\r\n      return sum;\r\n    };\r\n\r\n\r\n    // PRIVATE FUNCTIONS\r\n\r\n\r\n    // Called by BigNumber and BigNumber.prototype.toString.\r\n    convertBase = (function () {\r\n      var decimal = '0123456789';\r\n\r\n      /*\r\n       * Convert string of baseIn to an array of numbers of baseOut.\r\n       * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n       * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n       */\r\n      function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n        var j,\r\n          arr = [0],\r\n          arrL,\r\n          i = 0,\r\n          len = str.length;\r\n\r\n        for (; i < len;) {\r\n          for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n          arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n          for (j = 0; j < arr.length; j++) {\r\n\r\n            if (arr[j] > baseOut - 1) {\r\n              if (arr[j + 1] == null) arr[j + 1] = 0;\r\n              arr[j + 1] += arr[j] / baseOut | 0;\r\n              arr[j] %= baseOut;\r\n            }\r\n          }\r\n        }\r\n\r\n        return arr.reverse();\r\n      }\r\n\r\n      // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n      // If the caller is toString, we are converting from base 10 to baseOut.\r\n      // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n      return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n        var alphabet, d, e, k, r, x, xc, y,\r\n          i = str.indexOf('.'),\r\n          dp = DECIMAL_PLACES,\r\n          rm = ROUNDING_MODE;\r\n\r\n        // Non-integer.\r\n        if (i >= 0) {\r\n          k = POW_PRECISION;\r\n\r\n          // Unlimited precision.\r\n          POW_PRECISION = 0;\r\n          str = str.replace('.', '');\r\n          y = new BigNumber(baseIn);\r\n          x = y.pow(str.length - i);\r\n          POW_PRECISION = k;\r\n\r\n          // Convert str as if an integer, then restore the fraction part by dividing the\r\n          // result by its base raised to a power.\r\n\r\n          y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n           10, baseOut, decimal);\r\n          y.e = y.c.length;\r\n        }\r\n\r\n        // Convert the number as integer.\r\n\r\n        xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n         ? (alphabet = ALPHABET, decimal)\r\n         : (alphabet = decimal, ALPHABET));\r\n\r\n        // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n        e = k = xc.length;\r\n\r\n        // Remove trailing zeros.\r\n        for (; xc[--k] == 0; xc.pop());\r\n\r\n        // Zero?\r\n        if (!xc[0]) return alphabet.charAt(0);\r\n\r\n        // Does str represent an integer? If so, no need for the division.\r\n        if (i < 0) {\r\n          --e;\r\n        } else {\r\n          x.c = xc;\r\n          x.e = e;\r\n\r\n          // The sign is needed for correct rounding.\r\n          x.s = sign;\r\n          x = div(x, y, dp, rm, baseOut);\r\n          xc = x.c;\r\n          r = x.r;\r\n          e = x.e;\r\n        }\r\n\r\n        // xc now represents str converted to baseOut.\r\n\r\n        // The index of the rounding digit.\r\n        d = e + dp + 1;\r\n\r\n        // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n        i = xc[d];\r\n\r\n        // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n        k = baseOut / 2;\r\n        r = r || d < 0 || xc[d + 1] != null;\r\n\r\n        r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n              : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n               rm == (x.s < 0 ? 8 : 7));\r\n\r\n        // If the index of the rounding digit is not greater than zero, or xc represents\r\n        // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n        // such as 0.00001.\r\n        if (d < 1 || !xc[0]) {\r\n\r\n          // 1^-dp or 0\r\n          str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n        } else {\r\n\r\n          // Truncate xc to the required number of decimal places.\r\n          xc.length = d;\r\n\r\n          // Round up?\r\n          if (r) {\r\n\r\n            // Rounding up may mean the previous digit has to be rounded up and so on.\r\n            for (--baseOut; ++xc[--d] > baseOut;) {\r\n              xc[d] = 0;\r\n\r\n              if (!d) {\r\n                ++e;\r\n                xc = [1].concat(xc);\r\n              }\r\n            }\r\n          }\r\n\r\n          // Determine trailing zeros.\r\n          for (k = xc.length; !xc[--k];);\r\n\r\n          // E.g. [4, 11, 15] becomes 4bf.\r\n          for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n          // Add leading zeros, decimal point and trailing zeros as required.\r\n          str = toFixedPoint(str, e, alphabet.charAt(0));\r\n        }\r\n\r\n        // The caller will add the sign.\r\n        return str;\r\n      };\r\n    })();\r\n\r\n\r\n    // Perform division in the specified base. Called by div and convertBase.\r\n    div = (function () {\r\n\r\n      // Assume non-zero x and k.\r\n      function multiply(x, k, base) {\r\n        var m, temp, xlo, xhi,\r\n          carry = 0,\r\n          i = x.length,\r\n          klo = k % SQRT_BASE,\r\n          khi = k / SQRT_BASE | 0;\r\n\r\n        for (x = x.slice(); i--;) {\r\n          xlo = x[i] % SQRT_BASE;\r\n          xhi = x[i] / SQRT_BASE | 0;\r\n          m = khi * xlo + xhi * klo;\r\n          temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n          carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n          x[i] = temp % base;\r\n        }\r\n\r\n        if (carry) x = [carry].concat(x);\r\n\r\n        return x;\r\n      }\r\n\r\n      function compare(a, b, aL, bL) {\r\n        var i, cmp;\r\n\r\n        if (aL != bL) {\r\n          cmp = aL > bL ? 1 : -1;\r\n        } else {\r\n\r\n          for (i = cmp = 0; i < aL; i++) {\r\n\r\n            if (a[i] != b[i]) {\r\n              cmp = a[i] > b[i] ? 1 : -1;\r\n              break;\r\n            }\r\n          }\r\n        }\r\n\r\n        return cmp;\r\n      }\r\n\r\n      function subtract(a, b, aL, base) {\r\n        var i = 0;\r\n\r\n        // Subtract b from a.\r\n        for (; aL--;) {\r\n          a[aL] -= i;\r\n          i = a[aL] < b[aL] ? 1 : 0;\r\n          a[aL] = i * base + a[aL] - b[aL];\r\n        }\r\n\r\n        // Remove leading zeros.\r\n        for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n      }\r\n\r\n      // x: dividend, y: divisor.\r\n      return function (x, y, dp, rm, base) {\r\n        var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n          yL, yz,\r\n          s = x.s == y.s ? 1 : -1,\r\n          xc = x.c,\r\n          yc = y.c;\r\n\r\n        // Either NaN, Infinity or 0?\r\n        if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n          return new BigNumber(\r\n\r\n           // Return NaN if either NaN, or both Infinity or 0.\r\n           !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n            // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n            xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n         );\r\n        }\r\n\r\n        q = new BigNumber(s);\r\n        qc = q.c = [];\r\n        e = x.e - y.e;\r\n        s = dp + e + 1;\r\n\r\n        if (!base) {\r\n          base = BASE;\r\n          e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n          s = s / LOG_BASE | 0;\r\n        }\r\n\r\n        // Result exponent may be one less then the current value of e.\r\n        // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n        for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n        if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n        if (s < 0) {\r\n          qc.push(1);\r\n          more = true;\r\n        } else {\r\n          xL = xc.length;\r\n          yL = yc.length;\r\n          i = 0;\r\n          s += 2;\r\n\r\n          // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n          n = mathfloor(base / (yc[0] + 1));\r\n\r\n          // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n          // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n          if (n > 1) {\r\n            yc = multiply(yc, n, base);\r\n            xc = multiply(xc, n, base);\r\n            yL = yc.length;\r\n            xL = xc.length;\r\n          }\r\n\r\n          xi = yL;\r\n          rem = xc.slice(0, yL);\r\n          remL = rem.length;\r\n\r\n          // Add zeros to make remainder as long as divisor.\r\n          for (; remL < yL; rem[remL++] = 0);\r\n          yz = yc.slice();\r\n          yz = [0].concat(yz);\r\n          yc0 = yc[0];\r\n          if (yc[1] >= base / 2) yc0++;\r\n          // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n          // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n          do {\r\n            n = 0;\r\n\r\n            // Compare divisor and remainder.\r\n            cmp = compare(yc, rem, yL, remL);\r\n\r\n            // If divisor < remainder.\r\n            if (cmp < 0) {\r\n\r\n              // Calculate trial digit, n.\r\n\r\n              rem0 = rem[0];\r\n              if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n              // n is how many times the divisor goes into the current remainder.\r\n              n = mathfloor(rem0 / yc0);\r\n\r\n              //  Algorithm:\r\n              //  product = divisor multiplied by trial digit (n).\r\n              //  Compare product and remainder.\r\n              //  If product is greater than remainder:\r\n              //    Subtract divisor from product, decrement trial digit.\r\n              //  Subtract product from remainder.\r\n              //  If product was less than remainder at the last compare:\r\n              //    Compare new remainder and divisor.\r\n              //    If remainder is greater than divisor:\r\n              //      Subtract divisor from remainder, increment trial digit.\r\n\r\n              if (n > 1) {\r\n\r\n                // n may be > base only when base is 3.\r\n                if (n >= base) n = base - 1;\r\n\r\n                // product = divisor * trial digit.\r\n                prod = multiply(yc, n, base);\r\n                prodL = prod.length;\r\n                remL = rem.length;\r\n\r\n                // Compare product and remainder.\r\n                // If product > remainder then trial digit n too high.\r\n                // n is 1 too high about 5% of the time, and is not known to have\r\n                // ever been more than 1 too high.\r\n                while (compare(prod, rem, prodL, remL) == 1) {\r\n                  n--;\r\n\r\n                  // Subtract divisor from product.\r\n                  subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n                  prodL = prod.length;\r\n                  cmp = 1;\r\n                }\r\n              } else {\r\n\r\n                // n is 0 or 1, cmp is -1.\r\n                // If n is 0, there is no need to compare yc and rem again below,\r\n                // so change cmp to 1 to avoid it.\r\n                // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n                if (n == 0) {\r\n\r\n                  // divisor < remainder, so n must be at least 1.\r\n                  cmp = n = 1;\r\n                }\r\n\r\n                // product = divisor\r\n                prod = yc.slice();\r\n                prodL = prod.length;\r\n              }\r\n\r\n              if (prodL < remL) prod = [0].concat(prod);\r\n\r\n              // Subtract product from remainder.\r\n              subtract(rem, prod, remL, base);\r\n              remL = rem.length;\r\n\r\n               // If product was < remainder.\r\n              if (cmp == -1) {\r\n\r\n                // Compare divisor and new remainder.\r\n                // If divisor < new remainder, subtract divisor from remainder.\r\n                // Trial digit n too low.\r\n                // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n                while (compare(yc, rem, yL, remL) < 1) {\r\n                  n++;\r\n\r\n                  // Subtract divisor from remainder.\r\n                  subtract(rem, yL < remL ? yz : yc, remL, base);\r\n                  remL = rem.length;\r\n                }\r\n              }\r\n            } else if (cmp === 0) {\r\n              n++;\r\n              rem = [0];\r\n            } // else cmp === 1 and n will be 0\r\n\r\n            // Add the next digit, n, to the result array.\r\n            qc[i++] = n;\r\n\r\n            // Update the remainder.\r\n            if (rem[0]) {\r\n              rem[remL++] = xc[xi] || 0;\r\n            } else {\r\n              rem = [xc[xi]];\r\n              remL = 1;\r\n            }\r\n          } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n          more = rem[0] != null;\r\n\r\n          // Leading zero?\r\n          if (!qc[0]) qc.splice(0, 1);\r\n        }\r\n\r\n        if (base == BASE) {\r\n\r\n          // To calculate q.e, first get the number of digits of qc[0].\r\n          for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n          round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n        // Caller is convertBase.\r\n        } else {\r\n          q.e = e;\r\n          q.r = +more;\r\n        }\r\n\r\n        return q;\r\n      };\r\n    })();\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n     * notation rounded to the specified decimal places or significant digits.\r\n     *\r\n     * n: a BigNumber.\r\n     * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n     * rm: the rounding mode.\r\n     * id: 1 (toExponential) or 2 (toPrecision).\r\n     */\r\n    function format(n, i, rm, id) {\r\n      var c0, e, ne, len, str;\r\n\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      if (!n.c) return n.toString();\r\n\r\n      c0 = n.c[0];\r\n      ne = n.e;\r\n\r\n      if (i == null) {\r\n        str = coeffToString(n.c);\r\n        str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n         ? toExponential(str, ne)\r\n         : toFixedPoint(str, ne, '0');\r\n      } else {\r\n        n = round(new BigNumber(n), i, rm);\r\n\r\n        // n.e may have changed if the value was rounded up.\r\n        e = n.e;\r\n\r\n        str = coeffToString(n.c);\r\n        len = str.length;\r\n\r\n        // toPrecision returns exponential notation if the number of significant digits\r\n        // specified is less than the number of digits necessary to represent the integer\r\n        // part of the value in fixed-point notation.\r\n\r\n        // Exponential notation.\r\n        if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n          // Append zeros?\r\n          for (; len < i; str += '0', len++);\r\n          str = toExponential(str, e);\r\n\r\n        // Fixed-point notation.\r\n        } else {\r\n          i -= ne;\r\n          str = toFixedPoint(str, e, '0');\r\n\r\n          // Append zeros?\r\n          if (e + 1 > len) {\r\n            if (--i > 0) for (str += '.'; i--; str += '0');\r\n          } else {\r\n            i += e - len;\r\n            if (i > 0) {\r\n              if (e + 1 == len) str += '.';\r\n              for (; i--; str += '0');\r\n            }\r\n          }\r\n        }\r\n      }\r\n\r\n      return n.s < 0 && c0 ? '-' + str : str;\r\n    }\r\n\r\n\r\n    // Handle BigNumber.max and BigNumber.min.\r\n    // If any number is NaN, return NaN.\r\n    function maxOrMin(args, n) {\r\n      var k, y,\r\n        i = 1,\r\n        x = new BigNumber(args[0]);\r\n\r\n      for (; i < args.length; i++) {\r\n        y = new BigNumber(args[i]);\r\n        if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n          x = y;\r\n        }\r\n      }\r\n\r\n      return x;\r\n    }\r\n\r\n\r\n    /*\r\n     * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n     * Called by minus, plus and times.\r\n     */\r\n    function normalise(n, c, e) {\r\n      var i = 1,\r\n        j = c.length;\r\n\r\n       // Remove trailing zeros.\r\n      for (; !c[--j]; c.pop());\r\n\r\n      // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n      for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n      // Overflow?\r\n      if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n        // Infinity.\r\n        n.c = n.e = null;\r\n\r\n      // Underflow?\r\n      } else if (e < MIN_EXP) {\r\n\r\n        // Zero.\r\n        n.c = [n.e = 0];\r\n      } else {\r\n        n.e = e;\r\n        n.c = c;\r\n      }\r\n\r\n      return n;\r\n    }\r\n\r\n\r\n    // Handle values that fail the validity test in BigNumber.\r\n    parseNumeric = (function () {\r\n      var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n        dotAfter = /^([^.]+)\\.$/,\r\n        dotBefore = /^\\.([^.]+)$/,\r\n        isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n        whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n      return function (x, str, isNum, b) {\r\n        var base,\r\n          s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n        // No exception on ±Infinity or NaN.\r\n        if (isInfinityOrNaN.test(s)) {\r\n          x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n        } else {\r\n          if (!isNum) {\r\n\r\n            // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n            s = s.replace(basePrefix, function (m, p1, p2) {\r\n              base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n              return !b || b == base ? p1 : m;\r\n            });\r\n\r\n            if (b) {\r\n              base = b;\r\n\r\n              // E.g. '1.' to '1', '.1' to '0.1'\r\n              s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n            }\r\n\r\n            if (str != s) return new BigNumber(s, base);\r\n          }\r\n\r\n          // '[BigNumber Error] Not a number: {n}'\r\n          // '[BigNumber Error] Not a base {b} number: {n}'\r\n          if (BigNumber.DEBUG) {\r\n            throw Error\r\n              (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n          }\r\n\r\n          // NaN\r\n          x.s = null;\r\n        }\r\n\r\n        x.c = x.e = null;\r\n      }\r\n    })();\r\n\r\n\r\n    /*\r\n     * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n     * If r is truthy, it is known that there are more digits after the rounding digit.\r\n     */\r\n    function round(x, sd, rm, r) {\r\n      var d, i, j, k, n, ni, rd,\r\n        xc = x.c,\r\n        pows10 = POWS_TEN;\r\n\r\n      // if x is not Infinity or NaN...\r\n      if (xc) {\r\n\r\n        // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n        // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n        // ni is the index of n within x.c.\r\n        // d is the number of digits of n.\r\n        // i is the index of rd within n including leading zeros.\r\n        // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n        out: {\r\n\r\n          // Get the number of digits of the first element of xc.\r\n          for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n          i = sd - d;\r\n\r\n          // If the rounding digit is in the first element of xc...\r\n          if (i < 0) {\r\n            i += LOG_BASE;\r\n            j = sd;\r\n            n = xc[ni = 0];\r\n\r\n            // Get the rounding digit at index j of n.\r\n            rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n          } else {\r\n            ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n            if (ni >= xc.length) {\r\n\r\n              if (r) {\r\n\r\n                // Needed by sqrt.\r\n                for (; xc.length <= ni; xc.push(0));\r\n                n = rd = 0;\r\n                d = 1;\r\n                i %= LOG_BASE;\r\n                j = i - LOG_BASE + 1;\r\n              } else {\r\n                break out;\r\n              }\r\n            } else {\r\n              n = k = xc[ni];\r\n\r\n              // Get the number of digits of n.\r\n              for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n              // Get the index of rd within n.\r\n              i %= LOG_BASE;\r\n\r\n              // Get the index of rd within n, adjusted for leading zeros.\r\n              // The number of leading zeros of n is given by LOG_BASE - d.\r\n              j = i - LOG_BASE + d;\r\n\r\n              // Get the rounding digit at index j of n.\r\n              rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n            }\r\n          }\r\n\r\n          r = r || sd < 0 ||\r\n\r\n          // Are there any non-zero digits after the rounding digit?\r\n          // The expression  n % pows10[d - j - 1]  returns all digits of n to the right\r\n          // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n           xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n          r = rm < 4\r\n           ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n           : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n            // Check whether the digit to the left of the rounding digit is odd.\r\n            ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n             rm == (x.s < 0 ? 8 : 7));\r\n\r\n          if (sd < 1 || !xc[0]) {\r\n            xc.length = 0;\r\n\r\n            if (r) {\r\n\r\n              // Convert sd to decimal places.\r\n              sd -= x.e + 1;\r\n\r\n              // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n              xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n              x.e = -sd || 0;\r\n            } else {\r\n\r\n              // Zero.\r\n              xc[0] = x.e = 0;\r\n            }\r\n\r\n            return x;\r\n          }\r\n\r\n          // Remove excess digits.\r\n          if (i == 0) {\r\n            xc.length = ni;\r\n            k = 1;\r\n            ni--;\r\n          } else {\r\n            xc.length = ni + 1;\r\n            k = pows10[LOG_BASE - i];\r\n\r\n            // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n            // j > 0 means i > number of leading zeros of n.\r\n            xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n          }\r\n\r\n          // Round up?\r\n          if (r) {\r\n\r\n            for (; ;) {\r\n\r\n              // If the digit to be rounded up is in the first element of xc...\r\n              if (ni == 0) {\r\n\r\n                // i will be the length of xc[0] before k is added.\r\n                for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n                j = xc[0] += k;\r\n                for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n                // if i != k the length has increased.\r\n                if (i != k) {\r\n                  x.e++;\r\n                  if (xc[0] == BASE) xc[0] = 1;\r\n                }\r\n\r\n                break;\r\n              } else {\r\n                xc[ni] += k;\r\n                if (xc[ni] != BASE) break;\r\n                xc[ni--] = 0;\r\n                k = 1;\r\n              }\r\n            }\r\n          }\r\n\r\n          // Remove trailing zeros.\r\n          for (i = xc.length; xc[--i] === 0; xc.pop());\r\n        }\r\n\r\n        // Overflow? Infinity.\r\n        if (x.e > MAX_EXP) {\r\n          x.c = x.e = null;\r\n\r\n        // Underflow? Zero.\r\n        } else if (x.e < MIN_EXP) {\r\n          x.c = [x.e = 0];\r\n        }\r\n      }\r\n\r\n      return x;\r\n    }\r\n\r\n\r\n    function valueOf(n) {\r\n      var str,\r\n        e = n.e;\r\n\r\n      if (e === null) return n.toString();\r\n\r\n      str = coeffToString(n.c);\r\n\r\n      str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n        ? toExponential(str, e)\r\n        : toFixedPoint(str, e, '0');\r\n\r\n      return n.s < 0 ? '-' + str : str;\r\n    }\r\n\r\n\r\n    // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n     */\r\n    P.absoluteValue = P.abs = function () {\r\n      var x = new BigNumber(this);\r\n      if (x.s < 0) x.s = 1;\r\n      return x;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return\r\n     *   1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n     *   -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n     *   0 if they have the same value,\r\n     *   or null if the value of either is NaN.\r\n     */\r\n    P.comparedTo = function (y, b) {\r\n      return compare(this, new BigNumber(y, b));\r\n    };\r\n\r\n\r\n    /*\r\n     * If dp is undefined or null or true or false, return the number of decimal places of the\r\n     * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n     *\r\n     * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n     * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n     * ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     */\r\n    P.decimalPlaces = P.dp = function (dp, rm) {\r\n      var c, n, v,\r\n        x = this;\r\n\r\n      if (dp != null) {\r\n        intCheck(dp, 0, MAX);\r\n        if (rm == null) rm = ROUNDING_MODE;\r\n        else intCheck(rm, 0, 8);\r\n\r\n        return round(new BigNumber(x), dp + x.e + 1, rm);\r\n      }\r\n\r\n      if (!(c = x.c)) return null;\r\n      n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n      // Subtract the number of trailing zeros of the last number.\r\n      if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n      if (n < 0) n = 0;\r\n\r\n      return n;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n / 0 = I\r\n     *  n / N = N\r\n     *  n / I = 0\r\n     *  0 / n = 0\r\n     *  0 / 0 = N\r\n     *  0 / N = N\r\n     *  0 / I = 0\r\n     *  N / n = N\r\n     *  N / 0 = N\r\n     *  N / N = N\r\n     *  N / I = N\r\n     *  I / n = I\r\n     *  I / 0 = I\r\n     *  I / N = N\r\n     *  I / I = N\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n     * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n     */\r\n    P.dividedBy = P.div = function (y, b) {\r\n      return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n     * BigNumber by the value of BigNumber(y, b).\r\n     */\r\n    P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n      return div(this, new BigNumber(y, b), 0, 1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n     *\r\n     * If m is present, return the result modulo m.\r\n     * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n     * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n     *\r\n     * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n     * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n     *\r\n     * n {number|string|BigNumber} The exponent. An integer.\r\n     * [m] {number|string|BigNumber} The modulus.\r\n     *\r\n     * '[BigNumber Error] Exponent not an integer: {n}'\r\n     */\r\n    P.exponentiatedBy = P.pow = function (n, m) {\r\n      var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n        x = this;\r\n\r\n      n = new BigNumber(n);\r\n\r\n      // Allow NaN and ±Infinity, but not other non-integers.\r\n      if (n.c && !n.isInteger()) {\r\n        throw Error\r\n          (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n      }\r\n\r\n      if (m != null) m = new BigNumber(m);\r\n\r\n      // Exponent of MAX_SAFE_INTEGER is 15.\r\n      nIsBig = n.e > 14;\r\n\r\n      // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n      if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n        // The sign of the result of pow when x is negative depends on the evenness of n.\r\n        // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n        y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n        return m ? y.mod(m) : y;\r\n      }\r\n\r\n      nIsNeg = n.s < 0;\r\n\r\n      if (m) {\r\n\r\n        // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n        if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n        isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n        if (isModExp) x = x.mod(m);\r\n\r\n      // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n      // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n      } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n        // [1, 240000000]\r\n        ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n        // [80000000000000]  [99999750000000]\r\n        : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n        // If x is negative and n is odd, k = -0, else k = 0.\r\n        k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n        // If x >= 1, k = ±Infinity.\r\n        if (x.e > -1) k = 1 / k;\r\n\r\n        // If n is negative return ±0, else return ±Infinity.\r\n        return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n      } else if (POW_PRECISION) {\r\n\r\n        // Truncating each coefficient array to a length of k after each multiplication\r\n        // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n        // i.e. there will be a minimum of 28 guard digits retained.\r\n        k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n      }\r\n\r\n      if (nIsBig) {\r\n        half = new BigNumber(0.5);\r\n        if (nIsNeg) n.s = 1;\r\n        nIsOdd = isOdd(n);\r\n      } else {\r\n        i = Math.abs(+valueOf(n));\r\n        nIsOdd = i % 2;\r\n      }\r\n\r\n      y = new BigNumber(ONE);\r\n\r\n      // Performs 54 loop iterations for n of 9007199254740991.\r\n      for (; ;) {\r\n\r\n        if (nIsOdd) {\r\n          y = y.times(x);\r\n          if (!y.c) break;\r\n\r\n          if (k) {\r\n            if (y.c.length > k) y.c.length = k;\r\n          } else if (isModExp) {\r\n            y = y.mod(m);    //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n          }\r\n        }\r\n\r\n        if (i) {\r\n          i = mathfloor(i / 2);\r\n          if (i === 0) break;\r\n          nIsOdd = i % 2;\r\n        } else {\r\n          n = n.times(half);\r\n          round(n, n.e + 1, 1);\r\n\r\n          if (n.e > 14) {\r\n            nIsOdd = isOdd(n);\r\n          } else {\r\n            i = +valueOf(n);\r\n            if (i === 0) break;\r\n            nIsOdd = i % 2;\r\n          }\r\n        }\r\n\r\n        x = x.times(x);\r\n\r\n        if (k) {\r\n          if (x.c && x.c.length > k) x.c.length = k;\r\n        } else if (isModExp) {\r\n          x = x.mod(m);    //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n        }\r\n      }\r\n\r\n      if (isModExp) return y;\r\n      if (nIsNeg) y = ONE.div(y);\r\n\r\n      return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n     * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n     */\r\n    P.integerValue = function (rm) {\r\n      var n = new BigNumber(this);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n      return round(n, n.e + 1, rm);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n     * otherwise return false.\r\n     */\r\n    P.isEqualTo = P.eq = function (y, b) {\r\n      return compare(this, new BigNumber(y, b)) === 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n     */\r\n    P.isFinite = function () {\r\n      return !!this.c;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n     * otherwise return false.\r\n     */\r\n    P.isGreaterThan = P.gt = function (y, b) {\r\n      return compare(this, new BigNumber(y, b)) > 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is greater than or equal to the value of\r\n     * BigNumber(y, b), otherwise return false.\r\n     */\r\n    P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n      return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n     */\r\n    P.isInteger = function () {\r\n      return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n     * otherwise return false.\r\n     */\r\n    P.isLessThan = P.lt = function (y, b) {\r\n      return compare(this, new BigNumber(y, b)) < 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is less than or equal to the value of\r\n     * BigNumber(y, b), otherwise return false.\r\n     */\r\n    P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n      return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n     */\r\n    P.isNaN = function () {\r\n      return !this.s;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is negative, otherwise return false.\r\n     */\r\n    P.isNegative = function () {\r\n      return this.s < 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is positive, otherwise return false.\r\n     */\r\n    P.isPositive = function () {\r\n      return this.s > 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n     */\r\n    P.isZero = function () {\r\n      return !!this.c && this.c[0] == 0;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n - 0 = n\r\n     *  n - N = N\r\n     *  n - I = -I\r\n     *  0 - n = -n\r\n     *  0 - 0 = 0\r\n     *  0 - N = N\r\n     *  0 - I = -I\r\n     *  N - n = N\r\n     *  N - 0 = N\r\n     *  N - N = N\r\n     *  N - I = N\r\n     *  I - n = I\r\n     *  I - 0 = I\r\n     *  I - N = N\r\n     *  I - I = N\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n     * BigNumber(y, b).\r\n     */\r\n    P.minus = function (y, b) {\r\n      var i, j, t, xLTy,\r\n        x = this,\r\n        a = x.s;\r\n\r\n      y = new BigNumber(y, b);\r\n      b = y.s;\r\n\r\n      // Either NaN?\r\n      if (!a || !b) return new BigNumber(NaN);\r\n\r\n      // Signs differ?\r\n      if (a != b) {\r\n        y.s = -b;\r\n        return x.plus(y);\r\n      }\r\n\r\n      var xe = x.e / LOG_BASE,\r\n        ye = y.e / LOG_BASE,\r\n        xc = x.c,\r\n        yc = y.c;\r\n\r\n      if (!xe || !ye) {\r\n\r\n        // Either Infinity?\r\n        if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n        // Either zero?\r\n        if (!xc[0] || !yc[0]) {\r\n\r\n          // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n          return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n           // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n           ROUNDING_MODE == 3 ? -0 : 0);\r\n        }\r\n      }\r\n\r\n      xe = bitFloor(xe);\r\n      ye = bitFloor(ye);\r\n      xc = xc.slice();\r\n\r\n      // Determine which is the bigger number.\r\n      if (a = xe - ye) {\r\n\r\n        if (xLTy = a < 0) {\r\n          a = -a;\r\n          t = xc;\r\n        } else {\r\n          ye = xe;\r\n          t = yc;\r\n        }\r\n\r\n        t.reverse();\r\n\r\n        // Prepend zeros to equalise exponents.\r\n        for (b = a; b--; t.push(0));\r\n        t.reverse();\r\n      } else {\r\n\r\n        // Exponents equal. Check digit by digit.\r\n        j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n        for (a = b = 0; b < j; b++) {\r\n\r\n          if (xc[b] != yc[b]) {\r\n            xLTy = xc[b] < yc[b];\r\n            break;\r\n          }\r\n        }\r\n      }\r\n\r\n      // x < y? Point xc to the array of the bigger number.\r\n      if (xLTy) {\r\n        t = xc;\r\n        xc = yc;\r\n        yc = t;\r\n        y.s = -y.s;\r\n      }\r\n\r\n      b = (j = yc.length) - (i = xc.length);\r\n\r\n      // Append zeros to xc if shorter.\r\n      // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n      if (b > 0) for (; b--; xc[i++] = 0);\r\n      b = BASE - 1;\r\n\r\n      // Subtract yc from xc.\r\n      for (; j > a;) {\r\n\r\n        if (xc[--j] < yc[j]) {\r\n          for (i = j; i && !xc[--i]; xc[i] = b);\r\n          --xc[i];\r\n          xc[j] += BASE;\r\n        }\r\n\r\n        xc[j] -= yc[j];\r\n      }\r\n\r\n      // Remove leading zeros and adjust exponent accordingly.\r\n      for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n      // Zero?\r\n      if (!xc[0]) {\r\n\r\n        // Following IEEE 754 (2008) 6.3,\r\n        // n - n = +0  but  n - n = -0  when rounding towards -Infinity.\r\n        y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n        y.c = [y.e = 0];\r\n        return y;\r\n      }\r\n\r\n      // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n      // for finite x and y.\r\n      return normalise(y, xc, ye);\r\n    };\r\n\r\n\r\n    /*\r\n     *   n % 0 =  N\r\n     *   n % N =  N\r\n     *   n % I =  n\r\n     *   0 % n =  0\r\n     *  -0 % n = -0\r\n     *   0 % 0 =  N\r\n     *   0 % N =  N\r\n     *   0 % I =  0\r\n     *   N % n =  N\r\n     *   N % 0 =  N\r\n     *   N % N =  N\r\n     *   N % I =  N\r\n     *   I % n =  N\r\n     *   I % 0 =  N\r\n     *   I % N =  N\r\n     *   I % I =  N\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n     * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n     */\r\n    P.modulo = P.mod = function (y, b) {\r\n      var q, s,\r\n        x = this;\r\n\r\n      y = new BigNumber(y, b);\r\n\r\n      // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n      if (!x.c || !y.s || y.c && !y.c[0]) {\r\n        return new BigNumber(NaN);\r\n\r\n      // Return x if y is Infinity or x is zero.\r\n      } else if (!y.c || x.c && !x.c[0]) {\r\n        return new BigNumber(x);\r\n      }\r\n\r\n      if (MODULO_MODE == 9) {\r\n\r\n        // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n        // r = x - qy    where  0 <= r < abs(y)\r\n        s = y.s;\r\n        y.s = 1;\r\n        q = div(x, y, 0, 3);\r\n        y.s = s;\r\n        q.s *= s;\r\n      } else {\r\n        q = div(x, y, 0, MODULO_MODE);\r\n      }\r\n\r\n      y = x.minus(q.times(y));\r\n\r\n      // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n      if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n      return y;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n * 0 = 0\r\n     *  n * N = N\r\n     *  n * I = I\r\n     *  0 * n = 0\r\n     *  0 * 0 = 0\r\n     *  0 * N = N\r\n     *  0 * I = N\r\n     *  N * n = N\r\n     *  N * 0 = N\r\n     *  N * N = N\r\n     *  N * I = N\r\n     *  I * n = I\r\n     *  I * 0 = N\r\n     *  I * N = N\r\n     *  I * I = I\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n     * of BigNumber(y, b).\r\n     */\r\n    P.multipliedBy = P.times = function (y, b) {\r\n      var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n        base, sqrtBase,\r\n        x = this,\r\n        xc = x.c,\r\n        yc = (y = new BigNumber(y, b)).c;\r\n\r\n      // Either NaN, ±Infinity or ±0?\r\n      if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n        // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n        if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n          y.c = y.e = y.s = null;\r\n        } else {\r\n          y.s *= x.s;\r\n\r\n          // Return ±Infinity if either is ±Infinity.\r\n          if (!xc || !yc) {\r\n            y.c = y.e = null;\r\n\r\n          // Return ±0 if either is ±0.\r\n          } else {\r\n            y.c = [0];\r\n            y.e = 0;\r\n          }\r\n        }\r\n\r\n        return y;\r\n      }\r\n\r\n      e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n      y.s *= x.s;\r\n      xcL = xc.length;\r\n      ycL = yc.length;\r\n\r\n      // Ensure xc points to longer array and xcL to its length.\r\n      if (xcL < ycL) {\r\n        zc = xc;\r\n        xc = yc;\r\n        yc = zc;\r\n        i = xcL;\r\n        xcL = ycL;\r\n        ycL = i;\r\n      }\r\n\r\n      // Initialise the result array with zeros.\r\n      for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n      base = BASE;\r\n      sqrtBase = SQRT_BASE;\r\n\r\n      for (i = ycL; --i >= 0;) {\r\n        c = 0;\r\n        ylo = yc[i] % sqrtBase;\r\n        yhi = yc[i] / sqrtBase | 0;\r\n\r\n        for (k = xcL, j = i + k; j > i;) {\r\n          xlo = xc[--k] % sqrtBase;\r\n          xhi = xc[k] / sqrtBase | 0;\r\n          m = yhi * xlo + xhi * ylo;\r\n          xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n          c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n          zc[j--] = xlo % base;\r\n        }\r\n\r\n        zc[j] = c;\r\n      }\r\n\r\n      if (c) {\r\n        ++e;\r\n      } else {\r\n        zc.splice(0, 1);\r\n      }\r\n\r\n      return normalise(y, zc, e);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n     * i.e. multiplied by -1.\r\n     */\r\n    P.negated = function () {\r\n      var x = new BigNumber(this);\r\n      x.s = -x.s || null;\r\n      return x;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n + 0 = n\r\n     *  n + N = N\r\n     *  n + I = I\r\n     *  0 + n = n\r\n     *  0 + 0 = 0\r\n     *  0 + N = N\r\n     *  0 + I = I\r\n     *  N + n = N\r\n     *  N + 0 = N\r\n     *  N + N = N\r\n     *  N + I = N\r\n     *  I + n = I\r\n     *  I + 0 = I\r\n     *  I + N = N\r\n     *  I + I = I\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n     * BigNumber(y, b).\r\n     */\r\n    P.plus = function (y, b) {\r\n      var t,\r\n        x = this,\r\n        a = x.s;\r\n\r\n      y = new BigNumber(y, b);\r\n      b = y.s;\r\n\r\n      // Either NaN?\r\n      if (!a || !b) return new BigNumber(NaN);\r\n\r\n      // Signs differ?\r\n       if (a != b) {\r\n        y.s = -b;\r\n        return x.minus(y);\r\n      }\r\n\r\n      var xe = x.e / LOG_BASE,\r\n        ye = y.e / LOG_BASE,\r\n        xc = x.c,\r\n        yc = y.c;\r\n\r\n      if (!xe || !ye) {\r\n\r\n        // Return ±Infinity if either ±Infinity.\r\n        if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n        // Either zero?\r\n        // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n        if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n      }\r\n\r\n      xe = bitFloor(xe);\r\n      ye = bitFloor(ye);\r\n      xc = xc.slice();\r\n\r\n      // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n      if (a = xe - ye) {\r\n        if (a > 0) {\r\n          ye = xe;\r\n          t = yc;\r\n        } else {\r\n          a = -a;\r\n          t = xc;\r\n        }\r\n\r\n        t.reverse();\r\n        for (; a--; t.push(0));\r\n        t.reverse();\r\n      }\r\n\r\n      a = xc.length;\r\n      b = yc.length;\r\n\r\n      // Point xc to the longer array, and b to the shorter length.\r\n      if (a - b < 0) {\r\n        t = yc;\r\n        yc = xc;\r\n        xc = t;\r\n        b = a;\r\n      }\r\n\r\n      // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n      for (a = 0; b;) {\r\n        a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n        xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n      }\r\n\r\n      if (a) {\r\n        xc = [a].concat(xc);\r\n        ++ye;\r\n      }\r\n\r\n      // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n      // ye = MAX_EXP + 1 possible\r\n      return normalise(y, xc, ye);\r\n    };\r\n\r\n\r\n    /*\r\n     * If sd is undefined or null or true or false, return the number of significant digits of\r\n     * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n     * If sd is true include integer-part trailing zeros in the count.\r\n     *\r\n     * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n     * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n     * ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n     *                     boolean: whether to count integer-part trailing zeros: true or false.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n     */\r\n    P.precision = P.sd = function (sd, rm) {\r\n      var c, n, v,\r\n        x = this;\r\n\r\n      if (sd != null && sd !== !!sd) {\r\n        intCheck(sd, 1, MAX);\r\n        if (rm == null) rm = ROUNDING_MODE;\r\n        else intCheck(rm, 0, 8);\r\n\r\n        return round(new BigNumber(x), sd, rm);\r\n      }\r\n\r\n      if (!(c = x.c)) return null;\r\n      v = c.length - 1;\r\n      n = v * LOG_BASE + 1;\r\n\r\n      if (v = c[v]) {\r\n\r\n        // Subtract the number of trailing zeros of the last element.\r\n        for (; v % 10 == 0; v /= 10, n--);\r\n\r\n        // Add the number of digits of the first element.\r\n        for (v = c[0]; v >= 10; v /= 10, n++);\r\n      }\r\n\r\n      if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n      return n;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n     * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n     *\r\n     * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n     */\r\n    P.shiftedBy = function (k) {\r\n      intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n      return this.times('1e' + k);\r\n    };\r\n\r\n\r\n    /*\r\n     *  sqrt(-n) =  N\r\n     *  sqrt(N) =  N\r\n     *  sqrt(-I) =  N\r\n     *  sqrt(I) =  I\r\n     *  sqrt(0) =  0\r\n     *  sqrt(-0) = -0\r\n     *\r\n     * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n     * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n     */\r\n    P.squareRoot = P.sqrt = function () {\r\n      var m, n, r, rep, t,\r\n        x = this,\r\n        c = x.c,\r\n        s = x.s,\r\n        e = x.e,\r\n        dp = DECIMAL_PLACES + 4,\r\n        half = new BigNumber('0.5');\r\n\r\n      // Negative/NaN/Infinity/zero?\r\n      if (s !== 1 || !c || !c[0]) {\r\n        return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n      }\r\n\r\n      // Initial estimate.\r\n      s = Math.sqrt(+valueOf(x));\r\n\r\n      // Math.sqrt underflow/overflow?\r\n      // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n      if (s == 0 || s == 1 / 0) {\r\n        n = coeffToString(c);\r\n        if ((n.length + e) % 2 == 0) n += '0';\r\n        s = Math.sqrt(+n);\r\n        e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n        if (s == 1 / 0) {\r\n          n = '5e' + e;\r\n        } else {\r\n          n = s.toExponential();\r\n          n = n.slice(0, n.indexOf('e') + 1) + e;\r\n        }\r\n\r\n        r = new BigNumber(n);\r\n      } else {\r\n        r = new BigNumber(s + '');\r\n      }\r\n\r\n      // Check for zero.\r\n      // r could be zero if MIN_EXP is changed after the this value was created.\r\n      // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n      // coeffToString to throw.\r\n      if (r.c[0]) {\r\n        e = r.e;\r\n        s = e + dp;\r\n        if (s < 3) s = 0;\r\n\r\n        // Newton-Raphson iteration.\r\n        for (; ;) {\r\n          t = r;\r\n          r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n          if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n            // The exponent of r may here be one less than the final result exponent,\r\n            // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n            // are indexed correctly.\r\n            if (r.e < e) --s;\r\n            n = n.slice(s - 3, s + 1);\r\n\r\n            // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n            // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n            // iteration.\r\n            if (n == '9999' || !rep && n == '4999') {\r\n\r\n              // On the first iteration only, check to see if rounding up gives the\r\n              // exact result as the nines may infinitely repeat.\r\n              if (!rep) {\r\n                round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n                if (t.times(t).eq(x)) {\r\n                  r = t;\r\n                  break;\r\n                }\r\n              }\r\n\r\n              dp += 4;\r\n              s += 4;\r\n              rep = 1;\r\n            } else {\r\n\r\n              // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n              // result. If not, then there are further digits and m will be truthy.\r\n              if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n                // Truncate to the first rounding digit.\r\n                round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n                m = !r.times(r).eq(x);\r\n              }\r\n\r\n              break;\r\n            }\r\n          }\r\n        }\r\n      }\r\n\r\n      return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in exponential notation and\r\n     * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     */\r\n    P.toExponential = function (dp, rm) {\r\n      if (dp != null) {\r\n        intCheck(dp, 0, MAX);\r\n        dp++;\r\n      }\r\n      return format(this, dp, rm, 1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n     * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n     * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     */\r\n    P.toFixed = function (dp, rm) {\r\n      if (dp != null) {\r\n        intCheck(dp, 0, MAX);\r\n        dp = dp + this.e + 1;\r\n      }\r\n      return format(this, dp, rm);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n     * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n     * of the format or FORMAT object (see BigNumber.set).\r\n     *\r\n     * The formatting object may contain some or all of the properties shown below.\r\n     *\r\n     * FORMAT = {\r\n     *   prefix: '',\r\n     *   groupSize: 3,\r\n     *   secondaryGroupSize: 0,\r\n     *   groupSeparator: ',',\r\n     *   decimalSeparator: '.',\r\n     *   fractionGroupSize: 0,\r\n     *   fractionGroupSeparator: '\\xA0',      // non-breaking space\r\n     *   suffix: ''\r\n     * };\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     * [format] {object} Formatting options. See FORMAT pbject above.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     * '[BigNumber Error] Argument not an object: {format}'\r\n     */\r\n    P.toFormat = function (dp, rm, format) {\r\n      var str,\r\n        x = this;\r\n\r\n      if (format == null) {\r\n        if (dp != null && rm && typeof rm == 'object') {\r\n          format = rm;\r\n          rm = null;\r\n        } else if (dp && typeof dp == 'object') {\r\n          format = dp;\r\n          dp = rm = null;\r\n        } else {\r\n          format = FORMAT;\r\n        }\r\n      } else if (typeof format != 'object') {\r\n        throw Error\r\n          (bignumberError + 'Argument not an object: ' + format);\r\n      }\r\n\r\n      str = x.toFixed(dp, rm);\r\n\r\n      if (x.c) {\r\n        var i,\r\n          arr = str.split('.'),\r\n          g1 = +format.groupSize,\r\n          g2 = +format.secondaryGroupSize,\r\n          groupSeparator = format.groupSeparator || '',\r\n          intPart = arr[0],\r\n          fractionPart = arr[1],\r\n          isNeg = x.s < 0,\r\n          intDigits = isNeg ? intPart.slice(1) : intPart,\r\n          len = intDigits.length;\r\n\r\n        if (g2) {\r\n          i = g1;\r\n          g1 = g2;\r\n          g2 = i;\r\n          len -= i;\r\n        }\r\n\r\n        if (g1 > 0 && len > 0) {\r\n          i = len % g1 || g1;\r\n          intPart = intDigits.substr(0, i);\r\n          for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n          if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n          if (isNeg) intPart = '-' + intPart;\r\n        }\r\n\r\n        str = fractionPart\r\n         ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n          ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n           '$&' + (format.fractionGroupSeparator || ''))\r\n          : fractionPart)\r\n         : intPart;\r\n      }\r\n\r\n      return (format.prefix || '') + str + (format.suffix || '');\r\n    };\r\n\r\n\r\n    /*\r\n     * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n     * fraction with an integer numerator and an integer denominator.\r\n     * The denominator will be a positive non-zero value less than or equal to the specified\r\n     * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n     * the lowest value necessary to represent the number exactly.\r\n     *\r\n     * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n     *\r\n     * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n     */\r\n    P.toFraction = function (md) {\r\n      var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n        x = this,\r\n        xc = x.c;\r\n\r\n      if (md != null) {\r\n        n = new BigNumber(md);\r\n\r\n        // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n        if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n          throw Error\r\n            (bignumberError + 'Argument ' +\r\n              (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n        }\r\n      }\r\n\r\n      if (!xc) return new BigNumber(x);\r\n\r\n      d = new BigNumber(ONE);\r\n      n1 = d0 = new BigNumber(ONE);\r\n      d1 = n0 = new BigNumber(ONE);\r\n      s = coeffToString(xc);\r\n\r\n      // Determine initial denominator.\r\n      // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n      e = d.e = s.length - x.e - 1;\r\n      d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n      md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n      exp = MAX_EXP;\r\n      MAX_EXP = 1 / 0;\r\n      n = new BigNumber(s);\r\n\r\n      // n0 = d1 = 0\r\n      n0.c[0] = 0;\r\n\r\n      for (; ;)  {\r\n        q = div(n, d, 0, 1);\r\n        d2 = d0.plus(q.times(d1));\r\n        if (d2.comparedTo(md) == 1) break;\r\n        d0 = d1;\r\n        d1 = d2;\r\n        n1 = n0.plus(q.times(d2 = n1));\r\n        n0 = d2;\r\n        d = n.minus(q.times(d2 = d));\r\n        n = d2;\r\n      }\r\n\r\n      d2 = div(md.minus(d0), d1, 0, 1);\r\n      n0 = n0.plus(d2.times(n1));\r\n      d0 = d0.plus(d2.times(d1));\r\n      n0.s = n1.s = x.s;\r\n      e = e * 2;\r\n\r\n      // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n      r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n          div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n      MAX_EXP = exp;\r\n\r\n      return r;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return the value of this BigNumber converted to a number primitive.\r\n     */\r\n    P.toNumber = function () {\r\n      return +valueOf(this);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n     * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n     * necessary to represent the integer part of the value in fixed-point notation, then use\r\n     * exponential notation.\r\n     *\r\n     * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n     */\r\n    P.toPrecision = function (sd, rm) {\r\n      if (sd != null) intCheck(sd, 1, MAX);\r\n      return format(this, sd, rm, 2);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n     * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n     * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n     * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n     * TO_EXP_NEG, return exponential notation.\r\n     *\r\n     * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n     *\r\n     * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n     */\r\n    P.toString = function (b) {\r\n      var str,\r\n        n = this,\r\n        s = n.s,\r\n        e = n.e;\r\n\r\n      // Infinity or NaN?\r\n      if (e === null) {\r\n        if (s) {\r\n          str = 'Infinity';\r\n          if (s < 0) str = '-' + str;\r\n        } else {\r\n          str = 'NaN';\r\n        }\r\n      } else {\r\n        if (b == null) {\r\n          str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n           ? toExponential(coeffToString(n.c), e)\r\n           : toFixedPoint(coeffToString(n.c), e, '0');\r\n        } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n          n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n          str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n        } else {\r\n          intCheck(b, 2, ALPHABET.length, 'Base');\r\n          str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n        }\r\n\r\n        if (s < 0 && n.c[0]) str = '-' + str;\r\n      }\r\n\r\n      return str;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return as toString, but do not accept a base argument, and include the minus sign for\r\n     * negative zero.\r\n     */\r\n    P.valueOf = P.toJSON = function () {\r\n      return valueOf(this);\r\n    };\r\n\r\n\r\n    P._isBigNumber = true;\r\n\r\n    if (configObject != null) BigNumber.set(configObject);\r\n\r\n    return BigNumber;\r\n  }\r\n\r\n\r\n  // PRIVATE HELPER FUNCTIONS\r\n\r\n  // These functions don't need access to variables,\r\n  // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n  function bitFloor(n) {\r\n    var i = n | 0;\r\n    return n > 0 || n === i ? i : i - 1;\r\n  }\r\n\r\n\r\n  // Return a coefficient array as a string of base 10 digits.\r\n  function coeffToString(a) {\r\n    var s, z,\r\n      i = 1,\r\n      j = a.length,\r\n      r = a[0] + '';\r\n\r\n    for (; i < j;) {\r\n      s = a[i++] + '';\r\n      z = LOG_BASE - s.length;\r\n      for (; z--; s = '0' + s);\r\n      r += s;\r\n    }\r\n\r\n    // Determine trailing zeros.\r\n    for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n    return r.slice(0, j + 1 || 1);\r\n  }\r\n\r\n\r\n  // Compare the value of BigNumbers x and y.\r\n  function compare(x, y) {\r\n    var a, b,\r\n      xc = x.c,\r\n      yc = y.c,\r\n      i = x.s,\r\n      j = y.s,\r\n      k = x.e,\r\n      l = y.e;\r\n\r\n    // Either NaN?\r\n    if (!i || !j) return null;\r\n\r\n    a = xc && !xc[0];\r\n    b = yc && !yc[0];\r\n\r\n    // Either zero?\r\n    if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n    // Signs differ?\r\n    if (i != j) return i;\r\n\r\n    a = i < 0;\r\n    b = k == l;\r\n\r\n    // Either Infinity?\r\n    if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n    // Compare exponents.\r\n    if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n    j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n    // Compare digit by digit.\r\n    for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n    // Compare lengths.\r\n    return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n  }\r\n\r\n\r\n  /*\r\n   * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n   */\r\n  function intCheck(n, min, max, name) {\r\n    if (n < min || n > max || n !== mathfloor(n)) {\r\n      throw Error\r\n       (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n         ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n         : ' not a primitive number: ') + String(n));\r\n    }\r\n  }\r\n\r\n\r\n  // Assumes finite n.\r\n  function isOdd(n) {\r\n    var k = n.c.length - 1;\r\n    return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n  }\r\n\r\n\r\n  function toExponential(str, e) {\r\n    return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n     (e < 0 ? 'e' : 'e+') + e;\r\n  }\r\n\r\n\r\n  function toFixedPoint(str, e, z) {\r\n    var len, zs;\r\n\r\n    // Negative exponent?\r\n    if (e < 0) {\r\n\r\n      // Prepend zeros.\r\n      for (zs = z + '.'; ++e; zs += z);\r\n      str = zs + str;\r\n\r\n    // Positive exponent\r\n    } else {\r\n      len = str.length;\r\n\r\n      // Append zeros.\r\n      if (++e > len) {\r\n        for (zs = z, e -= len; --e; zs += z);\r\n        str += zs;\r\n      } else if (e < len) {\r\n        str = str.slice(0, e) + '.' + str.slice(e);\r\n      }\r\n    }\r\n\r\n    return str;\r\n  }\r\n\r\n\r\n  // EXPORT\r\n\r\n\r\n  BigNumber = clone();\r\n  BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n  // AMD.\r\n  if (typeof define == 'function' && define.amd) {\r\n    define(function () { return BigNumber; });\r\n\r\n  // Node.js and other environments that support module.exports.\r\n  } else if (typeof module != 'undefined' && module.exports) {\r\n    module.exports = BigNumber;\r\n\r\n  // Browser.\r\n  } else {\r\n    if (!globalObject) {\r\n      globalObject = typeof self != 'undefined' && self ? self : window;\r\n    }\r\n\r\n    globalObject.BigNumber = BigNumber;\r\n  }\r\n})(this);\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionAddition = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst bignumber_js_1 = require(\"bignumber.js\");\nclass TermFunctionAddition extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.ADDITION,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.ADDITION)\n                .arithmetic(() => (left, right) => new bignumber_js_1.BigNumber(left).plus(right).toNumber())\n                .set([utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION], () => ([date, dur]) => \n            // https://www.w3.org/TR/xpath-functions/#func-add-dayTimeDuration-to-dateTime\n            new utils_expression_evaluator_1.DateTimeLiteral((0, utils_expression_evaluator_1.addDurationToDateTime)(date.typedValue, (0, utils_expression_evaluator_1.defaultedDurationRepresentation)(dur.typedValue))))\n                .copy({\n                from: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION],\n                to: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_YEAR_MONTH_DURATION],\n            })\n                .set([utils_expression_evaluator_1.TypeURL.XSD_DATE, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION], () => ([date, dur]) => \n            // https://www.w3.org/TR/xpath-functions/#func-add-dayTimeDuration-to-date\n            new utils_expression_evaluator_1.DateLiteral((0, utils_expression_evaluator_1.addDurationToDateTime)((0, utils_expression_evaluator_1.defaultedDateTimeRepresentation)(date.typedValue), (0, utils_expression_evaluator_1.defaultedDurationRepresentation)(dur.typedValue))))\n                .copy({\n                from: [utils_expression_evaluator_1.TypeURL.XSD_DATE, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION],\n                to: [utils_expression_evaluator_1.TypeURL.XSD_DATE, utils_expression_evaluator_1.TypeURL.XSD_YEAR_MONTH_DURATION],\n            })\n                .set([utils_expression_evaluator_1.TypeURL.XSD_TIME, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION], () => ([time, dur]) => \n            // https://www.w3.org/TR/xpath-functions/#func-add-dayTimeDuration-to-time\n            new utils_expression_evaluator_1.TimeLiteral((0, utils_expression_evaluator_1.addDurationToDateTime)((0, utils_expression_evaluator_1.defaultedDateTimeRepresentation)(time.typedValue), (0, utils_expression_evaluator_1.defaultedDurationRepresentation)(dur.typedValue))))\n                .copy({\n                from: [utils_expression_evaluator_1.TypeURL.XSD_TIME, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION],\n                to: [utils_expression_evaluator_1.TypeURL.XSD_TIME, utils_expression_evaluator_1.TypeURL.XSD_YEAR_MONTH_DURATION],\n            })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionAddition = TermFunctionAddition;\n//# sourceMappingURL=TermFunctionAddition.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermAddition = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionAddition_1 = require(\"./TermFunctionAddition\");\n/**\n * A comunica TermFunctionAddition Function Factory Actor.\n */\nclass ActorFunctionFactoryTermAddition extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.ADDITION],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionAddition_1.TermFunctionAddition();\n    }\n}\nexports.ActorFunctionFactoryTermAddition = ActorFunctionFactoryTermAddition;\n//# sourceMappingURL=ActorFunctionFactoryTermAddition.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermAddition\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionCeil = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-ceil\n */\nclass TermFunctionCeil extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.CEIL,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.CEIL)\n                .numericConverter(() => num => Math.ceil(num))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionCeil = TermFunctionCeil;\n//# sourceMappingURL=TermFunctionCeil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermCeil = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionCeil_1 = require(\"./TermFunctionCeil\");\n/**\n * A comunica TermFunctionCeil Function Factory Actor.\n */\nclass ActorFunctionFactoryTermCeil extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.CEIL],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionCeil_1.TermFunctionCeil();\n    }\n}\nexports.ActorFunctionFactoryTermCeil = ActorFunctionFactoryTermCeil;\n//# sourceMappingURL=ActorFunctionFactoryTermCeil.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermCeil\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionContains = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-contains\n */\nclass TermFunctionContains extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.CONTAINS,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.CONTAINS)\n                .onBinaryTyped([utils_expression_evaluator_1.TypeAlias.SPARQL_STRINGLY, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (arg1, arg2) => (0, utils_expression_evaluator_1.bool)(arg1.includes(arg2)))\n                .onBinary([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING], () => (arg1, arg2) => {\n                if (arg1.language !== arg2.language) {\n                    throw new utils_expression_evaluator_1.IncompatibleLanguageOperation(arg1, arg2);\n                }\n                return (0, utils_expression_evaluator_1.bool)(arg1.typedValue.includes(arg2.typedValue));\n            })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionContains = TermFunctionContains;\n//# sourceMappingURL=TermFunctionContains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermContains = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionContains_1 = require(\"./TermFunctionContains\");\n/**\n * A comunica TermFunctionContains Function Factory Actor.\n */\nclass ActorFunctionFactoryTermContains extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.CONTAINS],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionContains_1.TermFunctionContains();\n    }\n}\nexports.ActorFunctionFactoryTermContains = ActorFunctionFactoryTermContains;\n//# sourceMappingURL=ActorFunctionFactoryTermContains.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermContains\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionDatatype = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-datatype\n */\nclass TermFunctionDatatype extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.DATATYPE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.DATATYPE)\n                .onLiteral1(() => lit => new utils_expression_evaluator_1.NamedNode(lit.dataType))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionDatatype = TermFunctionDatatype;\n//# sourceMappingURL=TermFunctionDatatype.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermDatatype = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionDatatype_1 = require(\"./TermFunctionDatatype\");\n/**\n * A comunica TermFunctionDatatype Function Factory Actor.\n */\nclass ActorFunctionFactoryTermDatatype extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.DATATYPE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionDatatype_1.TermFunctionDatatype();\n    }\n}\nexports.ActorFunctionFactoryTermDatatype = ActorFunctionFactoryTermDatatype;\n//# sourceMappingURL=ActorFunctionFactoryTermDatatype.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermDatatype\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionDay = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-day\n */\nclass TermFunctionDay extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.DAY,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.DAY)\n                .onDateTime1(() => date => (0, utils_expression_evaluator_1.integer)(date.typedValue.day))\n                .set([utils_expression_evaluator_1.TypeURL.XSD_DATE], () => ([date]) => (0, utils_expression_evaluator_1.integer)(date.typedValue.day))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionDay = TermFunctionDay;\n//# sourceMappingURL=TermFunctionDay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermDay = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionDay_1 = require(\"./TermFunctionDay\");\n/**\n * A comunica TermFunctionDay Function Factory Actor.\n */\nclass ActorFunctionFactoryTermDay extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.DAY],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionDay_1.TermFunctionDay();\n    }\n}\nexports.ActorFunctionFactoryTermDay = ActorFunctionFactoryTermDay;\n//# sourceMappingURL=ActorFunctionFactoryTermDay.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermDay\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionDivision = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst bignumber_js_1 = require(\"bignumber.js\");\nclass TermFunctionDivision extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.DIVISION,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.DIVISION)\n                .arithmetic(() => (left, right) => new bignumber_js_1.BigNumber(left).div(right).toNumber())\n                .onBinaryTyped([utils_expression_evaluator_1.TypeURL.XSD_INTEGER, utils_expression_evaluator_1.TypeURL.XSD_INTEGER], () => (left, right) => {\n                if (right === 0) {\n                    throw new utils_expression_evaluator_1.ExpressionError('Integer division by 0');\n                }\n                return (0, utils_expression_evaluator_1.decimal)(new bignumber_js_1.BigNumber(left).div(right).toNumber());\n            })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionDivision = TermFunctionDivision;\n//# sourceMappingURL=TermFunctionDivision.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermDivision = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionDivision_1 = require(\"./TermFunctionDivision\");\n/**\n * A comunica TermFunctionDivision Function Factory Actor.\n */\nclass ActorFunctionFactoryTermDivision extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.DIVISION],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionDivision_1.TermFunctionDivision();\n    }\n}\nexports.ActorFunctionFactoryTermDivision = ActorFunctionFactoryTermDivision;\n//# sourceMappingURL=ActorFunctionFactoryTermDivision.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermDivision\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionEncodeForUri = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-encode\n */\nclass TermFunctionEncodeForUri extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.ENCODE_FOR_URI,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.ENCODE_FOR_URI)\n                .onStringly1Typed(() => val => (0, utils_expression_evaluator_1.string)(encodeURI(val))).collect(),\n        });\n    }\n}\nexports.TermFunctionEncodeForUri = TermFunctionEncodeForUri;\n//# sourceMappingURL=TermFunctionEncodeForUri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermEncodeForUri = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionEncodeForUri_1 = require(\"./TermFunctionEncodeForUri\");\n/**\n * A comunica TermFunctionEncodeForUri Function Factory Actor.\n */\nclass ActorFunctionFactoryTermEncodeForUri extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.ENCODE_FOR_URI],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionEncodeForUri_1.TermFunctionEncodeForUri();\n    }\n}\nexports.ActorFunctionFactoryTermEncodeForUri = ActorFunctionFactoryTermEncodeForUri;\n//# sourceMappingURL=ActorFunctionFactoryTermEncodeForUri.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermEncodeForUri\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionEquality = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-RDFterm-equal\n */\nclass TermFunctionEquality extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.EQUAL,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.EQUAL)\n                .numberTest(() => (left, right) => left === right)\n                .stringTest(() => (left, right) => left.localeCompare(right) === 0)\n                .set([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING], () => ([left, right]) => (0, utils_expression_evaluator_1.bool)(left.str() === right.str() &&\n                left.language === right.language))\n                // Fall through: a TypeURL.XSD_STRING is never equal to a TypeURL.RDF_LANG_STRING.\n                .set([utils_expression_evaluator_1.TypeAlias.SPARQL_STRINGLY, utils_expression_evaluator_1.TypeAlias.SPARQL_STRINGLY], () => () => (0, utils_expression_evaluator_1.bool)(false))\n                .booleanTest(() => (left, right) => left === right)\n                .dateTimeTest(exprEval => (left, right) => (0, utils_expression_evaluator_1.toUTCDate)(left, exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.defaultTimeZone)).getTime() === (0, utils_expression_evaluator_1.toUTCDate)(right, exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.defaultTimeZone)).getTime())\n                .copy({\n                // https://www.w3.org/TR/xpath-functions/#func-date-equal\n                from: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME],\n                to: [utils_expression_evaluator_1.TypeURL.XSD_DATE, utils_expression_evaluator_1.TypeURL.XSD_DATE],\n            })\n                .set(['quad', 'quad'], exprEval => ([left, right]) => (0, utils_expression_evaluator_1.bool)(this.applyOnTerms([left.subject, right.subject], exprEval)\n                .coerceEBV() &&\n                this.applyOnTerms([left.predicate, right.predicate], exprEval)\n                    .coerceEBV() &&\n                this.applyOnTerms([left.object, right.object], exprEval)\n                    .coerceEBV() &&\n                this.applyOnTerms([left.graph, right.graph], exprEval)\n                    .coerceEBV()), false)\n                .set(['term', 'term'], exprEval => ([_left, _right]) => {\n                const left = _left.toRDF(exprEval.context.getSafe(context_entries_1.KeysInitQuery.dataFactory));\n                const right = _right.toRDF(exprEval.context.getSafe(context_entries_1.KeysInitQuery.dataFactory));\n                const val = left.equals(right);\n                if (!val && (left.termType === 'Literal') && (right.termType === 'Literal')) {\n                    throw new utils_expression_evaluator_1.RDFEqualTypeError([_left, _right]);\n                }\n                return (0, utils_expression_evaluator_1.bool)(val);\n            }, false)\n                .set([utils_expression_evaluator_1.TypeURL.XSD_DURATION, utils_expression_evaluator_1.TypeURL.XSD_DURATION], () => ([dur1, dur2]) => (0, utils_expression_evaluator_1.bool)((0, utils_expression_evaluator_1.yearMonthDurationsToMonths)((0, utils_expression_evaluator_1.defaultedYearMonthDurationRepresentation)(dur1.typedValue)) ===\n                (0, utils_expression_evaluator_1.yearMonthDurationsToMonths)((0, utils_expression_evaluator_1.defaultedYearMonthDurationRepresentation)(dur2.typedValue)) &&\n                (0, utils_expression_evaluator_1.dayTimeDurationsToSeconds)((0, utils_expression_evaluator_1.defaultedDayTimeDurationRepresentation)(dur1.typedValue)) ===\n                    (0, utils_expression_evaluator_1.dayTimeDurationsToSeconds)((0, utils_expression_evaluator_1.defaultedDayTimeDurationRepresentation)(dur2.typedValue))))\n                .set([utils_expression_evaluator_1.TypeURL.XSD_TIME, utils_expression_evaluator_1.TypeURL.XSD_TIME], exprEval => ([time1, time2]) => \n            // https://www.w3.org/TR/xpath-functions/#func-time-equal\n            (0, utils_expression_evaluator_1.bool)((0, utils_expression_evaluator_1.toUTCDate)((0, utils_expression_evaluator_1.defaultedDateTimeRepresentation)(time1.typedValue), exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.defaultTimeZone)).getTime() ===\n                (0, utils_expression_evaluator_1.toUTCDate)((0, utils_expression_evaluator_1.defaultedDateTimeRepresentation)(time2.typedValue), exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.defaultTimeZone)).getTime()))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionEquality = TermFunctionEquality;\n//# sourceMappingURL=TermFunctionEquality.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermEquality = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionEquality_1 = require(\"./TermFunctionEquality\");\n/**\n * A comunica TermFunctionEquality Function Factory Actor.\n */\nclass ActorFunctionFactoryTermEquality extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.EQUAL],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionEquality_1.TermFunctionEquality();\n    }\n}\nexports.ActorFunctionFactoryTermEquality = ActorFunctionFactoryTermEquality;\n//# sourceMappingURL=ActorFunctionFactoryTermEquality.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermEquality\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionFloor = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-floor\n */\nclass TermFunctionFloor extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.FLOOR,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.FLOOR)\n                .numericConverter(() => num => Math.floor(num))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionFloor = TermFunctionFloor;\n//# sourceMappingURL=TermFunctionFloor.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermFloor = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionFloor_1 = require(\"./TermFunctionFloor\");\n/**\n * A comunica TermFunctionFloor Function Factory Actor.\n */\nclass ActorFunctionFactoryTermFloor extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.FLOOR],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionFloor_1.TermFunctionFloor();\n    }\n}\nexports.ActorFunctionFactoryTermFloor = ActorFunctionFactoryTermFloor;\n//# sourceMappingURL=ActorFunctionFactoryTermFloor.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermFloor\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionHours = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-hours\n */\nclass TermFunctionHours extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.HOURS,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.HOURS)\n                .onDateTime1(() => date => (0, utils_expression_evaluator_1.integer)(date.typedValue.hours))\n                .set([utils_expression_evaluator_1.TypeURL.XSD_TIME], () => ([time]) => (0, utils_expression_evaluator_1.integer)(time.typedValue.hours))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionHours = TermFunctionHours;\n//# sourceMappingURL=TermFunctionHours.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermHours = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionHours_1 = require(\"./TermFunctionHours\");\n/**\n * A comunica TermFunctionHours Function Factory Actor.\n */\nclass ActorFunctionFactoryTermHours extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.HOURS],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionHours_1.TermFunctionHours();\n    }\n}\nexports.ActorFunctionFactoryTermHours = ActorFunctionFactoryTermHours;\n//# sourceMappingURL=ActorFunctionFactoryTermHours.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermHours\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionIri = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-iri\n */\nclass TermFunctionIri extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.IRI,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.IRI)\n                .set(['namedNode'], exprEval => (args) => {\n                const lit = args[0];\n                const iri = (0, relative_to_absolute_iri_1.resolve)(lit.str(), exprEval.context.get(context_entries_1.KeysInitQuery.baseIRI) ?? '');\n                return new utils_expression_evaluator_1.NamedNode(iri);\n            })\n                .onString1(exprEval => (lit) => {\n                const iri = (0, relative_to_absolute_iri_1.resolve)(lit.str(), exprEval.context.get(context_entries_1.KeysInitQuery.baseIRI) ?? '');\n                return new utils_expression_evaluator_1.NamedNode(iri);\n            })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionIri = TermFunctionIri;\n//# sourceMappingURL=TermFunctionIri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermIri = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionIri_1 = require(\"./TermFunctionIri\");\n/**\n * A comunica TermFunctionIri Function Factory Actor.\n */\nclass ActorFunctionFactoryTermIri extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.IRI, utils_expression_evaluator_1.SparqlOperator.URI],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionIri_1.TermFunctionIri();\n    }\n}\nexports.ActorFunctionFactoryTermIri = ActorFunctionFactoryTermIri;\n//# sourceMappingURL=ActorFunctionFactoryTermIri.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermIri\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionIsBlank = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-isBlank\n */\nclass TermFunctionIsBlank extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.IS_BLANK,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.IS_BLANK)\n                .onTerm1(() => term => (0, utils_expression_evaluator_1.bool)(term.termType === 'blankNode'))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionIsBlank = TermFunctionIsBlank;\n//# sourceMappingURL=TermFunctionIsBlank.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermIsBlank = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionIsBlank_1 = require(\"./TermFunctionIsBlank\");\n/**\n * A comunica TermFunctionIsBlank Function Factory Actor.\n */\nclass ActorFunctionFactoryTermIsBlank extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.IS_BLANK],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionIsBlank_1.TermFunctionIsBlank();\n    }\n}\nexports.ActorFunctionFactoryTermIsBlank = ActorFunctionFactoryTermIsBlank;\n//# sourceMappingURL=ActorFunctionFactoryTermIsBlank.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermIsBlank\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionIsIri = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-isIRI\n */\nclass TermFunctionIsIri extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.IS_IRI,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.IS_IRI)\n                .onTerm1(() => term => (0, utils_expression_evaluator_1.bool)(term.termType === 'namedNode'))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionIsIri = TermFunctionIsIri;\n//# sourceMappingURL=TermFunctionIsIri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermIsIri = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionIsIri_1 = require(\"./TermFunctionIsIri\");\n/**\n * A comunica TermFunctionIsIri Function Factory Actor.\n */\nclass ActorFunctionFactoryTermIsIri extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.IS_IRI, utils_expression_evaluator_1.SparqlOperator.IS_URI],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionIsIri_1.TermFunctionIsIri();\n    }\n}\nexports.ActorFunctionFactoryTermIsIri = ActorFunctionFactoryTermIsIri;\n//# sourceMappingURL=ActorFunctionFactoryTermIsIri.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermIsIri\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionIsLiteral = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-isLiteral\n */\nclass TermFunctionIsLiteral extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.IS_LITERAL,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.IS_LITERAL)\n                .onTerm1(() => term => (0, utils_expression_evaluator_1.bool)(term.termType === 'literal'))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionIsLiteral = TermFunctionIsLiteral;\n//# sourceMappingURL=TermFunctionIsLiteral.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermIsLiteral = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionIsLiteral_1 = require(\"./TermFunctionIsLiteral\");\n/**\n * A comunica TermFunctionIsLiteral Function Factory Actor.\n */\nclass ActorFunctionFactoryTermIsLiteral extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.IS_LITERAL],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionIsLiteral_1.TermFunctionIsLiteral();\n    }\n}\nexports.ActorFunctionFactoryTermIsLiteral = ActorFunctionFactoryTermIsLiteral;\n//# sourceMappingURL=ActorFunctionFactoryTermIsLiteral.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermIsLiteral\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionIsNumeric = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-isNumeric\n */\nclass TermFunctionIsNumeric extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.IS_NUMERIC,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.IS_NUMERIC)\n                .onNumeric1(() => () => (0, utils_expression_evaluator_1.bool)(true))\n                .onTerm1(() => () => (0, utils_expression_evaluator_1.bool)(false))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionIsNumeric = TermFunctionIsNumeric;\n//# sourceMappingURL=TermFunctionIsNumeric.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermIsNumeric = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionIsNumeric_1 = require(\"./TermFunctionIsNumeric\");\n/**\n * A comunica TermFunctionIsNumeric Function Factory Actor.\n */\nclass ActorFunctionFactoryTermIsNumeric extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.IS_NUMERIC],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionIsNumeric_1.TermFunctionIsNumeric();\n    }\n}\nexports.ActorFunctionFactoryTermIsNumeric = ActorFunctionFactoryTermIsNumeric;\n//# sourceMappingURL=ActorFunctionFactoryTermIsNumeric.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermIsNumeric\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionIsTriple = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#istriple\n */\nclass TermFunctionIsTriple extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.IS_TRIPLE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.IS_TRIPLE)\n                .onTerm1(() => term => (0, utils_expression_evaluator_1.bool)(term.termType === 'quad'))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionIsTriple = TermFunctionIsTriple;\n//# sourceMappingURL=TermFunctionIsTriple.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermIsTriple = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionIsTriple_1 = require(\"./TermFunctionIsTriple\");\n/**\n * A comunica TermFunctionIsTriple Function Factory Actor.\n */\nclass ActorFunctionFactoryTermIsTriple extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.IS_TRIPLE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionIsTriple_1.TermFunctionIsTriple();\n    }\n}\nexports.ActorFunctionFactoryTermIsTriple = ActorFunctionFactoryTermIsTriple;\n//# sourceMappingURL=ActorFunctionFactoryTermIsTriple.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermIsTriple\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionLang = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-lang\n */\nclass TermFunctionLang extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.LANG,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.LANG)\n                .onLiteral1(() => lit => (0, utils_expression_evaluator_1.string)(lit.language ?? ''))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionLang = TermFunctionLang;\n//# sourceMappingURL=TermFunctionLang.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermLang = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionLang_1 = require(\"./TermFunctionLang\");\n/**\n * A comunica TermFunctionLang Function Factory Actor.\n */\nclass ActorFunctionFactoryTermLang extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.LANG],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionLang_1.TermFunctionLang();\n    }\n}\nexports.ActorFunctionFactoryTermLang = ActorFunctionFactoryTermLang;\n//# sourceMappingURL=ActorFunctionFactoryTermLang.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermLang\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionLangmatches = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-langMatches\n */\nclass TermFunctionLangmatches extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.LANG_MATCHES,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.LANG_MATCHES)\n                .onBinaryTyped([utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (tag, range) => (0, utils_expression_evaluator_1.bool)(TermFunctionLangmatches.langMatches(tag, range))).collect(),\n        });\n    }\n    // TODO: Not an XPath function\n    // TODO: Publish as package\n    // https://www.ietf.org/rfc/rfc4647.txt\n    // https://www.w3.org/TR/sparql11-query/#func-langMatches\n    static langMatches(tag, range) {\n        const langTags = tag.split('-');\n        const rangeTags = range.split('-');\n        if (!TermFunctionLangmatches.matchLangTag(rangeTags[0], langTags[0]) &&\n            !TermFunctionLangmatches.isWildCard(langTags[0])) {\n            return false;\n        }\n        let lI = 1;\n        let rI = 1;\n        while (rI < rangeTags.length) {\n            if (TermFunctionLangmatches.isWildCard(rangeTags[rI])) {\n                rI++;\n                continue;\n            }\n            if (lI === langTags.length) {\n                return false;\n            }\n            if (TermFunctionLangmatches.matchLangTag(rangeTags[rI], langTags[lI])) {\n                lI++;\n                rI++;\n                continue;\n            }\n            if (langTags[lI].length === 1) {\n                return false;\n            }\n            lI++;\n        }\n        return true;\n    }\n    static isWildCard(tag) {\n        return tag === '*';\n    }\n    static matchLangTag(left, right) {\n        const matchInitial = new RegExp(`/${left}/`, 'iu');\n        return matchInitial.test(`/${right}/`);\n    }\n}\nexports.TermFunctionLangmatches = TermFunctionLangmatches;\n//# sourceMappingURL=TermFunctionLangmatches.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermLangmatches = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionLangmatches_1 = require(\"./TermFunctionLangmatches\");\n/**\n * A comunica TermFunctionLangmatches Function Factory Actor.\n */\nclass ActorFunctionFactoryTermLangmatches extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.LANG_MATCHES],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionLangmatches_1.TermFunctionLangmatches();\n    }\n}\nexports.ActorFunctionFactoryTermLangmatches = ActorFunctionFactoryTermLangmatches;\n//# sourceMappingURL=ActorFunctionFactoryTermLangmatches.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermLangmatches\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionLcase = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-lcase\n */\nclass TermFunctionLcase extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.LCASE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.LCASE)\n                .onString1Typed(() => lit => (0, utils_expression_evaluator_1.string)(lit.toLowerCase()))\n                .onLangString1(() => lit => (0, utils_expression_evaluator_1.langString)(lit.typedValue.toLowerCase(), lit.language))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionLcase = TermFunctionLcase;\n//# sourceMappingURL=TermFunctionLcase.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermLcase = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionLcase_1 = require(\"./TermFunctionLcase\");\n/**\n * A comunica TermFunctionLcase Function Factory Actor.\n */\nclass ActorFunctionFactoryTermLcase extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.LCASE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionLcase_1.TermFunctionLcase();\n    }\n}\nexports.ActorFunctionFactoryTermLcase = ActorFunctionFactoryTermLcase;\n//# sourceMappingURL=ActorFunctionFactoryTermLcase.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermLcase\"), exports);\n//# sourceMappingURL=index.js.map","(function (factory) {\n    if (typeof exports === 'object') {\n        // Node/CommonJS\n        module.exports = factory();\n    } else if (typeof define === 'function' && define.amd) {\n        // AMD\n        define(factory);\n    } else {\n        // Browser globals (with support for web workers)\n        var glob;\n\n        try {\n            glob = window;\n        } catch (e) {\n            glob = self;\n        }\n\n        glob.SparkMD5 = factory();\n    }\n}(function (undefined) {\n\n    'use strict';\n\n    /*\n     * Fastest md5 implementation around (JKM md5).\n     * Credits: Joseph Myers\n     *\n     * @see http://www.myersdaily.org/joseph/javascript/md5-text.html\n     * @see http://jsperf.com/md5-shootout/7\n     */\n\n    /* this function is much faster,\n      so if possible we use it. Some IEs\n      are the only ones I know of that\n      need the idiotic second function,\n      generated by an if clause.  */\n    var add32 = function (a, b) {\n        return (a + b) & 0xFFFFFFFF;\n    },\n        hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\n\n\n    function cmn(q, a, b, x, s, t) {\n        a = add32(add32(a, q), add32(x, t));\n        return add32((a << s) | (a >>> (32 - s)), b);\n    }\n\n    function md5cycle(x, k) {\n        var a = x[0],\n            b = x[1],\n            c = x[2],\n            d = x[3];\n\n        a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n        a  = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n        d  = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n        c  = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n        b  = (b << 22 | b >>> 10) + c | 0;\n        a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n        a  = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n        d  = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n        c  = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n        b  = (b << 22 | b >>> 10) + c | 0;\n        a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n        a  = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n        d  = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[10] - 42063 | 0;\n        c  = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n        b  = (b << 22 | b >>> 10) + c | 0;\n        a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n        a  = (a << 7 | a >>> 25) + b | 0;\n        d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n        d  = (d << 12 | d >>> 20) + a | 0;\n        c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n        c  = (c << 17 | c >>> 15) + d | 0;\n        b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n        b  = (b << 22 | b >>> 10) + c | 0;\n\n        a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n        a  = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n        d  = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n        c  = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n        b  = (b << 20 | b >>> 12) + c | 0;\n        a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n        a  = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n        d  = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n        c  = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n        b  = (b << 20 | b >>> 12) + c | 0;\n        a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n        a  = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n        d  = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n        c  = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n        b  = (b << 20 | b >>> 12) + c | 0;\n        a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n        a  = (a << 5 | a >>> 27) + b | 0;\n        d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n        d  = (d << 9 | d >>> 23) + a | 0;\n        c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n        c  = (c << 14 | c >>> 18) + d | 0;\n        b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n        b  = (b << 20 | b >>> 12) + c | 0;\n\n        a += (b ^ c ^ d) + k[5] - 378558 | 0;\n        a  = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n        d  = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n        c  = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n        b  = (b << 23 | b >>> 9) + c | 0;\n        a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n        a  = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n        d  = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n        c  = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n        b  = (b << 23 | b >>> 9) + c | 0;\n        a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n        a  = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n        d  = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n        c  = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n        b  = (b << 23 | b >>> 9) + c | 0;\n        a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n        a  = (a << 4 | a >>> 28) + b | 0;\n        d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n        d  = (d << 11 | d >>> 21) + a | 0;\n        c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n        c  = (c << 16 | c >>> 16) + d | 0;\n        b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n        b  = (b << 23 | b >>> 9) + c | 0;\n\n        a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n        a  = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n        d  = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n        c  = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n        b  = (b << 21 |b >>> 11) + c | 0;\n        a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n        a  = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n        d  = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n        c  = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n        b  = (b << 21 |b >>> 11) + c | 0;\n        a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n        a  = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n        d  = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n        c  = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n        b  = (b << 21 |b >>> 11) + c | 0;\n        a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n        a  = (a << 6 | a >>> 26) + b | 0;\n        d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n        d  = (d << 10 | d >>> 22) + a | 0;\n        c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n        c  = (c << 15 | c >>> 17) + d | 0;\n        b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n        b  = (b << 21 | b >>> 11) + c | 0;\n\n        x[0] = a + x[0] | 0;\n        x[1] = b + x[1] | 0;\n        x[2] = c + x[2] | 0;\n        x[3] = d + x[3] | 0;\n    }\n\n    function md5blk(s) {\n        var md5blks = [],\n            i; /* Andy King said do it this way. */\n\n        for (i = 0; i < 64; i += 4) {\n            md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n        }\n        return md5blks;\n    }\n\n    function md5blk_array(a) {\n        var md5blks = [],\n            i; /* Andy King said do it this way. */\n\n        for (i = 0; i < 64; i += 4) {\n            md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n        }\n        return md5blks;\n    }\n\n    function md51(s) {\n        var n = s.length,\n            state = [1732584193, -271733879, -1732584194, 271733878],\n            i,\n            length,\n            tail,\n            tmp,\n            lo,\n            hi;\n\n        for (i = 64; i <= n; i += 64) {\n            md5cycle(state, md5blk(s.substring(i - 64, i)));\n        }\n        s = s.substring(i - 64);\n        length = s.length;\n        tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n        for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n        }\n        tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n        if (i > 55) {\n            md5cycle(state, tail);\n            for (i = 0; i < 16; i += 1) {\n                tail[i] = 0;\n            }\n        }\n\n        // Beware that the final length might not fit in 32 bits so we take care of that\n        tmp = n * 8;\n        tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n        lo = parseInt(tmp[2], 16);\n        hi = parseInt(tmp[1], 16) || 0;\n\n        tail[14] = lo;\n        tail[15] = hi;\n\n        md5cycle(state, tail);\n        return state;\n    }\n\n    function md51_array(a) {\n        var n = a.length,\n            state = [1732584193, -271733879, -1732584194, 271733878],\n            i,\n            length,\n            tail,\n            tmp,\n            lo,\n            hi;\n\n        for (i = 64; i <= n; i += 64) {\n            md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n        }\n\n        // Not sure if it is a bug, however IE10 will always produce a sub array of length 1\n        // containing the last element of the parent array if the sub array specified starts\n        // beyond the length of the parent array - weird.\n        // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue\n        a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);\n\n        length = a.length;\n        tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n        for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= a[i] << ((i % 4) << 3);\n        }\n\n        tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n        if (i > 55) {\n            md5cycle(state, tail);\n            for (i = 0; i < 16; i += 1) {\n                tail[i] = 0;\n            }\n        }\n\n        // Beware that the final length might not fit in 32 bits so we take care of that\n        tmp = n * 8;\n        tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n        lo = parseInt(tmp[2], 16);\n        hi = parseInt(tmp[1], 16) || 0;\n\n        tail[14] = lo;\n        tail[15] = hi;\n\n        md5cycle(state, tail);\n\n        return state;\n    }\n\n    function rhex(n) {\n        var s = '',\n            j;\n        for (j = 0; j < 4; j += 1) {\n            s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];\n        }\n        return s;\n    }\n\n    function hex(x) {\n        var i;\n        for (i = 0; i < x.length; i += 1) {\n            x[i] = rhex(x[i]);\n        }\n        return x.join('');\n    }\n\n    // In some cases the fast add32 function cannot be used..\n    if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {\n        add32 = function (x, y) {\n            var lsw = (x & 0xFFFF) + (y & 0xFFFF),\n                msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n            return (msw << 16) | (lsw & 0xFFFF);\n        };\n    }\n\n    // ---------------------------------------------------\n\n    /**\n     * ArrayBuffer slice polyfill.\n     *\n     * @see https://github.com/ttaubert/node-arraybuffer-slice\n     */\n\n    if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {\n        (function () {\n            function clamp(val, length) {\n                val = (val | 0) || 0;\n\n                if (val < 0) {\n                    return Math.max(val + length, 0);\n                }\n\n                return Math.min(val, length);\n            }\n\n            ArrayBuffer.prototype.slice = function (from, to) {\n                var length = this.byteLength,\n                    begin = clamp(from, length),\n                    end = length,\n                    num,\n                    target,\n                    targetArray,\n                    sourceArray;\n\n                if (to !== undefined) {\n                    end = clamp(to, length);\n                }\n\n                if (begin > end) {\n                    return new ArrayBuffer(0);\n                }\n\n                num = end - begin;\n                target = new ArrayBuffer(num);\n                targetArray = new Uint8Array(target);\n\n                sourceArray = new Uint8Array(this, begin, num);\n                targetArray.set(sourceArray);\n\n                return target;\n            };\n        })();\n    }\n\n    // ---------------------------------------------------\n\n    /**\n     * Helpers.\n     */\n\n    function toUtf8(str) {\n        if (/[\\u0080-\\uFFFF]/.test(str)) {\n            str = unescape(encodeURIComponent(str));\n        }\n\n        return str;\n    }\n\n    function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n        var length = str.length,\n           buff = new ArrayBuffer(length),\n           arr = new Uint8Array(buff),\n           i;\n\n        for (i = 0; i < length; i += 1) {\n            arr[i] = str.charCodeAt(i);\n        }\n\n        return returnUInt8Array ? arr : buff;\n    }\n\n    function arrayBuffer2Utf8Str(buff) {\n        return String.fromCharCode.apply(null, new Uint8Array(buff));\n    }\n\n    function concatenateArrayBuffers(first, second, returnUInt8Array) {\n        var result = new Uint8Array(first.byteLength + second.byteLength);\n\n        result.set(new Uint8Array(first));\n        result.set(new Uint8Array(second), first.byteLength);\n\n        return returnUInt8Array ? result : result.buffer;\n    }\n\n    function hexToBinaryString(hex) {\n        var bytes = [],\n            length = hex.length,\n            x;\n\n        for (x = 0; x < length - 1; x += 2) {\n            bytes.push(parseInt(hex.substr(x, 2), 16));\n        }\n\n        return String.fromCharCode.apply(String, bytes);\n    }\n\n    // ---------------------------------------------------\n\n    /**\n     * SparkMD5 OOP implementation.\n     *\n     * Use this class to perform an incremental md5, otherwise use the\n     * static methods instead.\n     */\n\n    function SparkMD5() {\n        // call reset to init the instance\n        this.reset();\n    }\n\n    /**\n     * Appends a string.\n     * A conversion will be applied if an utf8 string is detected.\n     *\n     * @param {String} str The string to be appended\n     *\n     * @return {SparkMD5} The instance itself\n     */\n    SparkMD5.prototype.append = function (str) {\n        // Converts the string to utf8 bytes if necessary\n        // Then append as binary\n        this.appendBinary(toUtf8(str));\n\n        return this;\n    };\n\n    /**\n     * Appends a binary string.\n     *\n     * @param {String} contents The binary string to be appended\n     *\n     * @return {SparkMD5} The instance itself\n     */\n    SparkMD5.prototype.appendBinary = function (contents) {\n        this._buff += contents;\n        this._length += contents.length;\n\n        var length = this._buff.length,\n            i;\n\n        for (i = 64; i <= length; i += 64) {\n            md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n        }\n\n        this._buff = this._buff.substring(i - 64);\n\n        return this;\n    };\n\n    /**\n     * Finishes the incremental computation, reseting the internal state and\n     * returning the result.\n     *\n     * @param {Boolean} raw True to get the raw string, false to get the hex string\n     *\n     * @return {String} The result\n     */\n    SparkMD5.prototype.end = function (raw) {\n        var buff = this._buff,\n            length = buff.length,\n            i,\n            tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n            ret;\n\n        for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);\n        }\n\n        this._finish(tail, length);\n        ret = hex(this._hash);\n\n        if (raw) {\n            ret = hexToBinaryString(ret);\n        }\n\n        this.reset();\n\n        return ret;\n    };\n\n    /**\n     * Resets the internal state of the computation.\n     *\n     * @return {SparkMD5} The instance itself\n     */\n    SparkMD5.prototype.reset = function () {\n        this._buff = '';\n        this._length = 0;\n        this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n        return this;\n    };\n\n    /**\n     * Gets the internal state of the computation.\n     *\n     * @return {Object} The state\n     */\n    SparkMD5.prototype.getState = function () {\n        return {\n            buff: this._buff,\n            length: this._length,\n            hash: this._hash.slice()\n        };\n    };\n\n    /**\n     * Gets the internal state of the computation.\n     *\n     * @param {Object} state The state\n     *\n     * @return {SparkMD5} The instance itself\n     */\n    SparkMD5.prototype.setState = function (state) {\n        this._buff = state.buff;\n        this._length = state.length;\n        this._hash = state.hash;\n\n        return this;\n    };\n\n    /**\n     * Releases memory used by the incremental buffer and other additional\n     * resources. If you plan to use the instance again, use reset instead.\n     */\n    SparkMD5.prototype.destroy = function () {\n        delete this._hash;\n        delete this._buff;\n        delete this._length;\n    };\n\n    /**\n     * Finish the final calculation based on the tail.\n     *\n     * @param {Array}  tail   The tail (will be modified)\n     * @param {Number} length The length of the remaining buffer\n     */\n    SparkMD5.prototype._finish = function (tail, length) {\n        var i = length,\n            tmp,\n            lo,\n            hi;\n\n        tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n        if (i > 55) {\n            md5cycle(this._hash, tail);\n            for (i = 0; i < 16; i += 1) {\n                tail[i] = 0;\n            }\n        }\n\n        // Do the final computation based on the tail and length\n        // Beware that the final length may not fit in 32 bits so we take care of that\n        tmp = this._length * 8;\n        tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n        lo = parseInt(tmp[2], 16);\n        hi = parseInt(tmp[1], 16) || 0;\n\n        tail[14] = lo;\n        tail[15] = hi;\n        md5cycle(this._hash, tail);\n    };\n\n    /**\n     * Performs the md5 hash on a string.\n     * A conversion will be applied if utf8 string is detected.\n     *\n     * @param {String}  str The string\n     * @param {Boolean} [raw] True to get the raw string, false to get the hex string\n     *\n     * @return {String} The result\n     */\n    SparkMD5.hash = function (str, raw) {\n        // Converts the string to utf8 bytes if necessary\n        // Then compute it using the binary function\n        return SparkMD5.hashBinary(toUtf8(str), raw);\n    };\n\n    /**\n     * Performs the md5 hash on a binary string.\n     *\n     * @param {String}  content The binary string\n     * @param {Boolean} [raw]     True to get the raw string, false to get the hex string\n     *\n     * @return {String} The result\n     */\n    SparkMD5.hashBinary = function (content, raw) {\n        var hash = md51(content),\n            ret = hex(hash);\n\n        return raw ? hexToBinaryString(ret) : ret;\n    };\n\n    // ---------------------------------------------------\n\n    /**\n     * SparkMD5 OOP implementation for array buffers.\n     *\n     * Use this class to perform an incremental md5 ONLY for array buffers.\n     */\n    SparkMD5.ArrayBuffer = function () {\n        // call reset to init the instance\n        this.reset();\n    };\n\n    /**\n     * Appends an array buffer.\n     *\n     * @param {ArrayBuffer} arr The array to be appended\n     *\n     * @return {SparkMD5.ArrayBuffer} The instance itself\n     */\n    SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n        var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n            length = buff.length,\n            i;\n\n        this._length += arr.byteLength;\n\n        for (i = 64; i <= length; i += 64) {\n            md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n        }\n\n        this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n\n        return this;\n    };\n\n    /**\n     * Finishes the incremental computation, reseting the internal state and\n     * returning the result.\n     *\n     * @param {Boolean} raw True to get the raw string, false to get the hex string\n     *\n     * @return {String} The result\n     */\n    SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n        var buff = this._buff,\n            length = buff.length,\n            tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n            i,\n            ret;\n\n        for (i = 0; i < length; i += 1) {\n            tail[i >> 2] |= buff[i] << ((i % 4) << 3);\n        }\n\n        this._finish(tail, length);\n        ret = hex(this._hash);\n\n        if (raw) {\n            ret = hexToBinaryString(ret);\n        }\n\n        this.reset();\n\n        return ret;\n    };\n\n    /**\n     * Resets the internal state of the computation.\n     *\n     * @return {SparkMD5.ArrayBuffer} The instance itself\n     */\n    SparkMD5.ArrayBuffer.prototype.reset = function () {\n        this._buff = new Uint8Array(0);\n        this._length = 0;\n        this._hash = [1732584193, -271733879, -1732584194, 271733878];\n\n        return this;\n    };\n\n    /**\n     * Gets the internal state of the computation.\n     *\n     * @return {Object} The state\n     */\n    SparkMD5.ArrayBuffer.prototype.getState = function () {\n        var state = SparkMD5.prototype.getState.call(this);\n\n        // Convert buffer to a string\n        state.buff = arrayBuffer2Utf8Str(state.buff);\n\n        return state;\n    };\n\n    /**\n     * Gets the internal state of the computation.\n     *\n     * @param {Object} state The state\n     *\n     * @return {SparkMD5.ArrayBuffer} The instance itself\n     */\n    SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n        // Convert string to buffer\n        state.buff = utf8Str2ArrayBuffer(state.buff, true);\n\n        return SparkMD5.prototype.setState.call(this, state);\n    };\n\n    SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n\n    SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n    /**\n     * Performs the md5 hash on an array buffer.\n     *\n     * @param {ArrayBuffer} arr The array buffer\n     * @param {Boolean}     [raw] True to get the raw string, false to get the hex one\n     *\n     * @return {String} The result\n     */\n    SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n        var hash = md51_array(new Uint8Array(arr)),\n            ret = hex(hash);\n\n        return raw ? hexToBinaryString(ret) : ret;\n    };\n\n    return SparkMD5;\n}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionMd5 = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst spark_md5_1 = require(\"spark-md5\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-md5\n */\nclass TermFunctionMd5 extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.MD5,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.MD5)\n                .onString1Typed(() => str => (0, utils_expression_evaluator_1.string)((0, spark_md5_1.hash)(str)))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionMd5 = TermFunctionMd5;\n//# sourceMappingURL=TermFunctionMd5.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermMd5 = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionMd5_1 = require(\"./TermFunctionMd5\");\n/**\n * A comunica TermFunctionMd5 Function Factory Actor.\n */\nclass ActorFunctionFactoryTermMd5 extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.MD5],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionMd5_1.TermFunctionMd5();\n    }\n}\nexports.ActorFunctionFactoryTermMd5 = ActorFunctionFactoryTermMd5;\n//# sourceMappingURL=ActorFunctionFactoryTermMd5.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermMd5\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionMinutes = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-minutes\n */\nclass TermFunctionMinutes extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.MINUTES,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.MINUTES)\n                .onDateTime1(() => date => (0, utils_expression_evaluator_1.integer)(date.typedValue.minutes))\n                .set([utils_expression_evaluator_1.TypeURL.XSD_TIME], () => ([time]) => (0, utils_expression_evaluator_1.integer)(time.typedValue.minutes))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionMinutes = TermFunctionMinutes;\n//# sourceMappingURL=TermFunctionMinutes.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermMinutes = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionMinutes_1 = require(\"./TermFunctionMinutes\");\n/**\n * A comunica TermFunctionMinutes Function Factory Actor.\n */\nclass ActorFunctionFactoryTermMinutes extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.MINUTES],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionMinutes_1.TermFunctionMinutes();\n    }\n}\nexports.ActorFunctionFactoryTermMinutes = ActorFunctionFactoryTermMinutes;\n//# sourceMappingURL=ActorFunctionFactoryTermMinutes.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermMinutes\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionMonth = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-month\n */\nclass TermFunctionMonth extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.MONTH,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.MONTH)\n                .onDateTime1(() => date => (0, utils_expression_evaluator_1.integer)(date.typedValue.month))\n                .set([utils_expression_evaluator_1.TypeURL.XSD_DATE], () => ([date]) => (0, utils_expression_evaluator_1.integer)(date.typedValue.month))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionMonth = TermFunctionMonth;\n//# sourceMappingURL=TermFunctionMonth.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermMonth = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionMonth_1 = require(\"./TermFunctionMonth\");\n/**\n * A comunica TermFunctionMonth Function Factory Actor.\n */\nclass ActorFunctionFactoryTermMonth extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.MONTH],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionMonth_1.TermFunctionMonth();\n    }\n}\nexports.ActorFunctionFactoryTermMonth = ActorFunctionFactoryTermMonth;\n//# sourceMappingURL=ActorFunctionFactoryTermMonth.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermMonth\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionMultiplication = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst bignumber_js_1 = require(\"bignumber.js\");\nclass TermFunctionMultiplication extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.MULTIPLICATION,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.MULTIPLICATION)\n                .arithmetic(() => (left, right) => new bignumber_js_1.BigNumber(left).times(right).toNumber())\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionMultiplication = TermFunctionMultiplication;\n//# sourceMappingURL=TermFunctionMultiplication.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermMultiplication = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionMultiplication_1 = require(\"./TermFunctionMultiplication\");\n/**\n * A comunica TermFunctionMultiplication Function Factory Actor.\n */\nclass ActorFunctionFactoryTermMultiplication extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.MULTIPLICATION],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionMultiplication_1.TermFunctionMultiplication();\n    }\n}\nexports.ActorFunctionFactoryTermMultiplication = ActorFunctionFactoryTermMultiplication;\n//# sourceMappingURL=ActorFunctionFactoryTermMultiplication.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermMultiplication\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionNot = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionNot extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.NOT,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.NOT)\n                .onTerm1(() => val => (0, utils_expression_evaluator_1.bool)(!val.coerceEBV()))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionNot = TermFunctionNot;\n//# sourceMappingURL=TermFunctionNot.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermNot = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionNot_1 = require(\"./TermFunctionNot\");\n/**\n * A comunica TermFunctionNot Function Factory Actor.\n */\nclass ActorFunctionFactoryTermNot extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.NOT],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionNot_1.TermFunctionNot();\n    }\n}\nexports.ActorFunctionFactoryTermNot = ActorFunctionFactoryTermNot;\n//# sourceMappingURL=ActorFunctionFactoryTermNot.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermNot\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionNow = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-now\n */\nclass TermFunctionNow extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 0,\n            operator: utils_expression_evaluator_1.SparqlOperator.NOW,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.NOW).set([], exprEval => () => new utils_expression_evaluator_1.DateTimeLiteral((0, utils_expression_evaluator_1.toDateTimeRepresentation)({\n                date: exprEval.context.getSafe(context_entries_1.KeysInitQuery.queryTimestamp),\n                timeZone: exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.defaultTimeZone),\n            }))).collect(),\n        });\n    }\n}\nexports.TermFunctionNow = TermFunctionNow;\n//# sourceMappingURL=TermFunctionNow.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermNow = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionNow_1 = require(\"./TermFunctionNow\");\n/**\n * A comunica TermFunctionNow Function Factory Actor.\n */\nclass ActorFunctionFactoryTermNow extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.NOW],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionNow_1.TermFunctionNow();\n    }\n}\nexports.ActorFunctionFactoryTermNow = ActorFunctionFactoryTermNow;\n//# sourceMappingURL=ActorFunctionFactoryTermNow.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermNow\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionObject = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#object\n */\nclass TermFunctionObject extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.OBJECT,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.OBJECT)\n                .onQuad1(() => quad => quad.object)\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionObject = TermFunctionObject;\n//# sourceMappingURL=TermFunctionObject.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermObject = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionObject_1 = require(\"./TermFunctionObject\");\n/**\n * A comunica TermFunctionObject Function Factory Actor.\n */\nclass ActorFunctionFactoryTermObject extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.OBJECT],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionObject_1.TermFunctionObject();\n    }\n}\nexports.ActorFunctionFactoryTermObject = ActorFunctionFactoryTermObject;\n//# sourceMappingURL=ActorFunctionFactoryTermObject.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermObject\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionPredicate = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#predicate\n */\nclass TermFunctionPredicate extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.PREDICATE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.PREDICATE)\n                .onQuad1(() => quad => quad.predicate)\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionPredicate = TermFunctionPredicate;\n//# sourceMappingURL=TermFunctionPredicate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermPredicate = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionPredicate_1 = require(\"./TermFunctionPredicate\");\n/**\n * A comunica TermFunctionPredicate Function Factory Actor.\n */\nclass ActorFunctionFactoryTermPredicate extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.PREDICATE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionPredicate_1.TermFunctionPredicate();\n    }\n}\nexports.ActorFunctionFactoryTermPredicate = ActorFunctionFactoryTermPredicate;\n//# sourceMappingURL=ActorFunctionFactoryTermPredicate.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermPredicate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionRand = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#idp2130040\n */\nclass TermFunctionRand extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 0,\n            operator: utils_expression_evaluator_1.SparqlOperator.RAND,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.RAND)\n                .set([], () => () => (0, utils_expression_evaluator_1.double)(Math.random()))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionRand = TermFunctionRand;\n//# sourceMappingURL=TermFunctionRand.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermRand = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionRand_1 = require(\"./TermFunctionRand\");\n/**\n * A comunica TermFunctionRand Function Factory Actor.\n */\nclass ActorFunctionFactoryTermRand extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.RAND],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionRand_1.TermFunctionRand();\n    }\n}\nexports.ActorFunctionFactoryTermRand = ActorFunctionFactoryTermRand;\n//# sourceMappingURL=ActorFunctionFactoryTermRand.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermRand\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionRegex = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-regex\n */\nclass TermFunctionRegex extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: [2, 3],\n            operator: utils_expression_evaluator_1.SparqlOperator.REGEX,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.REGEX)\n                .onBinaryTyped([utils_expression_evaluator_1.TypeAlias.SPARQL_STRINGLY, utils_expression_evaluator_1.TypeURL.XSD_STRING], TermFunctionRegex.regex2)\n                .onTernaryTyped([utils_expression_evaluator_1.TypeAlias.SPARQL_STRINGLY, utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], TermFunctionRegex.regex3)\n                .collect(),\n        });\n    }\n    static regex2() {\n        return (text, pattern) => (0, utils_expression_evaluator_1.bool)(TermFunctionRegex.matches(text, pattern));\n    }\n    static regex3() {\n        return (text, pattern, flags) => (0, utils_expression_evaluator_1.bool)(TermFunctionRegex.matches(text, pattern, flags));\n    }\n    // https://www.w3.org/TR/xpath-functions/#func-matches\n    // https://www.w3.org/TR/xpath-functions/#flags\n    static matches(text, pattern, flags = '') {\n        // Flags:\n        //   i: case-insensitive: same as the 'i' flag in JavaScript\n        //   m: multi-line mode: same as the 'm' flag in JavaScript\n        //   s: dot-all mode: matches 's' flag in JavaScript very well.\n        //   x: whitespace characters (#x9, #xA, #xD and #x20)\n        //      in the regular expression are removed prior to matching with one exception:\n        //        whitespace characters within character class expressions.\n        //   q: regex-no-metacharacters:\n        //      all characters in the regular expression are treated as representing themselves, not as metacharacters\n        //      If it is used together with the m, s, or x flag, that flag has no effect.\n        flags = TermFunctionRegex.cleanFlags(flags);\n        if (flags.includes('x')) {\n            pattern = TermFunctionRegex.flagX(pattern);\n        }\n        if (flags.includes('q')) {\n            pattern = TermFunctionRegex.flagQ(pattern);\n        }\n        const reg = new RegExp(pattern, flags.replaceAll(/[qx]/gu, ''));\n        return reg.test(text);\n    }\n    static cleanFlags(flags) {\n        // Check flag validity\n        if (!/^[imsxq]*$/u.test(flags)) {\n            throw new Error('Invalid flags');\n        }\n        const duplicateFlag = [...flags]\n            .find((value, index, self) => self.indexOf(value) !== index);\n        if (duplicateFlag) {\n            throw new Error(`Duplicate flag: ${duplicateFlag}`);\n        }\n        // If the 'q' flag is used, the 'm', 's', and 'x' flags have no effect\n        if (flags?.includes('q')) {\n            flags = flags.replaceAll(/[msx]/gu, '');\n        }\n        // Add the JS 'u' flag to the flags to allow for safer regex execution.\n        // See reasons given by [ESLint](https://eslint.org/docs/latest/rules/require-unicode-regexp).\n        // Disable [Annex B](https://262.ecma-international.org/6.0/#sec-regular-expressions-patterns)\n        return `${flags}u`;\n    }\n    static flagX(pattern) {\n        if (!pattern) {\n            return pattern;\n        }\n        // Remove all spaces in the pattern, excluding those in character classes\n        let prev = pattern[0];\n        while (['\\u0009', '\\u000A', '\\u000D', '\\u0020'].includes(prev)) {\n            pattern = pattern.slice(1);\n            prev = pattern[0];\n        }\n        let inClass = prev === '[';\n        for (let i = 1; i < pattern.length; i++) {\n            const c = pattern[i];\n            if (['\\u0009', '\\u000A', '\\u000D', '\\u0020'].includes(c) && !inClass) {\n                pattern = pattern.slice(0, i) + pattern.slice(i + 1);\n                i--;\n            }\n            else if (c === '[' && prev !== '\\\\') {\n                inClass = true;\n            }\n            else if (c === ']' && prev !== '\\\\') {\n                inClass = false;\n            }\n            prev = c;\n        }\n        return pattern;\n    }\n    static flagQ(pattern) {\n        // Escape all metacharacters in the pattern\n        return pattern\n            .replaceAll(/([?+*.{}()[\\]\\\\|])/gu, '\\\\$1')\n            .replaceAll(/^\\^/gu, '\\\\^')\n            .replaceAll(/\\$$/gu, '\\\\$');\n    }\n}\nexports.TermFunctionRegex = TermFunctionRegex;\n//# sourceMappingURL=TermFunctionRegex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermRegex = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionRegex_1 = require(\"./TermFunctionRegex\");\n/**\n * A comunica TermFunctionRegex Function Factory Actor.\n */\nclass ActorFunctionFactoryTermRegex extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.REGEX],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionRegex_1.TermFunctionRegex();\n    }\n}\nexports.ActorFunctionFactoryTermRegex = ActorFunctionFactoryTermRegex;\n//# sourceMappingURL=ActorFunctionFactoryTermRegex.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermRegex\"), exports);\n__exportStar(require(\"./TermFunctionRegex\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionReplace = void 0;\nconst actor_function_factory_term_regex_1 = require(\"@comunica/actor-function-factory-term-regex\");\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-replace\n */\nclass TermFunctionReplace extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: [3, 4],\n            operator: utils_expression_evaluator_1.SparqlOperator.REPLACE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.REPLACE)\n                .onTernaryTyped([utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (arg, pattern, replacement) => (0, utils_expression_evaluator_1.string)(TermFunctionReplace.replace(arg, pattern, replacement)))\n                .set([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => ([arg, pattern, replacement]) => {\n                const result = TermFunctionReplace.replace(arg.typedValue, pattern.typedValue, replacement.typedValue);\n                return (0, utils_expression_evaluator_1.langString)(result, arg.language);\n            })\n                .onQuaternaryTyped([utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (arg, pattern, replacement, flags) => (0, utils_expression_evaluator_1.string)(TermFunctionReplace.replace(arg, pattern, replacement, flags)))\n                .set([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => ([arg, pattern, replacement, flags]) => {\n                const result = TermFunctionReplace.replace(arg.typedValue, pattern.typedValue, replacement.typedValue, flags.typedValue);\n                return (0, utils_expression_evaluator_1.langString)(result, arg.language);\n            })\n                .collect(),\n        });\n    }\n    // https://www.w3.org/TR/xpath-functions/#func-replace\n    static replace(arg, pattern, replacement, flags = '') {\n        flags = actor_function_factory_term_regex_1.TermFunctionRegex.cleanFlags(flags);\n        if (flags.includes('x')) {\n            pattern = actor_function_factory_term_regex_1.TermFunctionRegex.flagX(pattern);\n        }\n        if (flags.includes('q')) {\n            pattern = actor_function_factory_term_regex_1.TermFunctionRegex.flagQ(pattern);\n        }\n        else {\n            replacement = replacement.replaceAll('$0', () => '$&');\n        }\n        flags = `${flags.replaceAll(/[qx]/gu, '')}g`;\n        return arg.replaceAll(new RegExp(pattern, flags), replacement);\n    }\n}\nexports.TermFunctionReplace = TermFunctionReplace;\n//# sourceMappingURL=TermFunctionReplace.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermReplace = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionReplace_1 = require(\"./TermFunctionReplace\");\n/**\n * A comunica TermFunctionReplace Function Factory Actor.\n */\nclass ActorFunctionFactoryTermReplace extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.REPLACE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionReplace_1.TermFunctionReplace();\n    }\n}\nexports.ActorFunctionFactoryTermReplace = ActorFunctionFactoryTermReplace;\n//# sourceMappingURL=ActorFunctionFactoryTermReplace.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermReplace\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionRound = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-round\n */\nclass TermFunctionRound extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.ROUND,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.ROUND)\n                .numericConverter(() => num => Math.round(num))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionRound = TermFunctionRound;\n//# sourceMappingURL=TermFunctionRound.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermRound = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionRound_1 = require(\"./TermFunctionRound\");\n/**\n * A comunica TermFunctionRound Function Factory Actor.\n */\nclass ActorFunctionFactoryTermRound extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.ROUND],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionRound_1.TermFunctionRound();\n    }\n}\nexports.ActorFunctionFactoryTermRound = ActorFunctionFactoryTermRound;\n//# sourceMappingURL=ActorFunctionFactoryTermRound.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermRound\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionSeconds = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-seconds\n */\nclass TermFunctionSeconds extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.SECONDS,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.SECONDS)\n                .onDateTime1(() => date => (0, utils_expression_evaluator_1.decimal)(date.typedValue.seconds))\n                .set([utils_expression_evaluator_1.TypeURL.XSD_TIME], () => ([time]) => (0, utils_expression_evaluator_1.integer)(time.typedValue.seconds))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionSeconds = TermFunctionSeconds;\n//# sourceMappingURL=TermFunctionSeconds.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermSeconds = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionSeconds_1 = require(\"./TermFunctionSeconds\");\n/**\n * A comunica TermFunctionSeconds Function Factory Actor.\n */\nclass ActorFunctionFactoryTermSeconds extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.SECONDS],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionSeconds_1.TermFunctionSeconds();\n    }\n}\nexports.ActorFunctionFactoryTermSeconds = ActorFunctionFactoryTermSeconds;\n//# sourceMappingURL=ActorFunctionFactoryTermSeconds.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermSeconds\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionSha1 = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst hash_js_1 = require(\"hash.js\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-sha1\n */\nclass TermFunctionSha1 extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.SHA1,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.SHA1)\n                .onString1Typed(() => str => (0, utils_expression_evaluator_1.string)((0, hash_js_1.sha1)().update(str).digest('hex')))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionSha1 = TermFunctionSha1;\n//# sourceMappingURL=TermFunctionSha1.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermSha1 = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionSha1_1 = require(\"./TermFunctionSha1\");\n/**\n * A comunica TermFunctionSha1 Function Factory Actor.\n */\nclass ActorFunctionFactoryTermSha1 extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.SHA1],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionSha1_1.TermFunctionSha1();\n    }\n}\nexports.ActorFunctionFactoryTermSha1 = ActorFunctionFactoryTermSha1;\n//# sourceMappingURL=ActorFunctionFactoryTermSha1.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermSha1\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionSha256 = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst hash_js_1 = require(\"hash.js\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-sha256\n */\nclass TermFunctionSha256 extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.SHA256,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.SHA256)\n                .onString1Typed(() => str => (0, utils_expression_evaluator_1.string)((0, hash_js_1.sha256)().update(str).digest('hex')))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionSha256 = TermFunctionSha256;\n//# sourceMappingURL=TermFunctionSha256.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermSha256 = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionSha256_1 = require(\"./TermFunctionSha256\");\n/**\n * A comunica TermFunctionSha256 Function Factory Actor.\n */\nclass ActorFunctionFactoryTermSha256 extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.SHA256],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionSha256_1.TermFunctionSha256();\n    }\n}\nexports.ActorFunctionFactoryTermSha256 = ActorFunctionFactoryTermSha256;\n//# sourceMappingURL=ActorFunctionFactoryTermSha256.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermSha256\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionSha384 = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst hash_js_1 = require(\"hash.js\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-sha384\n */\nclass TermFunctionSha384 extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.SHA384,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.SHA384)\n                .onString1Typed(() => str => (0, utils_expression_evaluator_1.string)((0, hash_js_1.sha384)().update(str).digest('hex')))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionSha384 = TermFunctionSha384;\n//# sourceMappingURL=TermFunctionSha384.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermSha384 = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionSha384_1 = require(\"./TermFunctionSha384\");\n/**\n * A comunica TermFunctionSha384 Function Factory Actor.\n */\nclass ActorFunctionFactoryTermSha384 extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.SHA384],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionSha384_1.TermFunctionSha384();\n    }\n}\nexports.ActorFunctionFactoryTermSha384 = ActorFunctionFactoryTermSha384;\n//# sourceMappingURL=ActorFunctionFactoryTermSha384.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermSha384\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionSha512 = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst hash_js_1 = require(\"hash.js\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-sha512\n */\nclass TermFunctionSha512 extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.SHA512,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.SHA512)\n                .onString1Typed(() => str => (0, utils_expression_evaluator_1.string)((0, hash_js_1.sha512)().update(str).digest('hex')))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionSha512 = TermFunctionSha512;\n//# sourceMappingURL=TermFunctionSha512.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermSha512 = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionSha512_1 = require(\"./TermFunctionSha512\");\n/**\n * A comunica TermFunctionSha512 Function Factory Actor.\n */\nclass ActorFunctionFactoryTermSha512 extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.SHA512],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionSha512_1.TermFunctionSha512();\n    }\n}\nexports.ActorFunctionFactoryTermSha512 = ActorFunctionFactoryTermSha512;\n//# sourceMappingURL=ActorFunctionFactoryTermSha512.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermSha512\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionStrAfter = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-strafter\n */\nclass TermFunctionStrAfter extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.STRAFTER,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.STRAFTER)\n                .onBinaryTyped([utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (arg1, arg2) => (0, utils_expression_evaluator_1.string)(arg1.slice(arg1.indexOf(arg2)).slice(arg2.length)))\n                .onBinary([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (arg1, arg2) => {\n                const [a1, a2] = [arg1.typedValue, arg2.typedValue];\n                const sub = a1.slice(a1.indexOf(a2)).slice(a2.length);\n                return sub || !a2 ? (0, utils_expression_evaluator_1.langString)(sub, arg1.language) : (0, utils_expression_evaluator_1.string)(sub);\n            })\n                .onBinary([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING], () => (arg1, arg2) => {\n                if (arg1.language !== arg2.language) {\n                    throw new utils_expression_evaluator_1.IncompatibleLanguageOperation(arg1, arg2);\n                }\n                const [a1, a2] = [arg1.typedValue, arg2.typedValue];\n                const sub = a1.slice(a1.indexOf(a2)).slice(a2.length);\n                return sub || !a2 ? (0, utils_expression_evaluator_1.langString)(sub, arg1.language) : (0, utils_expression_evaluator_1.string)(sub);\n            })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionStrAfter = TermFunctionStrAfter;\n//# sourceMappingURL=TermFunctionStrAfter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermStrAfter = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionStrAfter_1 = require(\"./TermFunctionStrAfter\");\n/**\n * A comunica TermFunctionStrAfter Function Factory Actor.\n */\nclass ActorFunctionFactoryTermStrAfter extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.STRAFTER],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionStrAfter_1.TermFunctionStrAfter();\n    }\n}\nexports.ActorFunctionFactoryTermStrAfter = ActorFunctionFactoryTermStrAfter;\n//# sourceMappingURL=ActorFunctionFactoryTermStrAfter.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermStrAfter\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionStrBefore = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-strbefore\n */\nclass TermFunctionStrBefore extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.STRBEFORE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.STRBEFORE)\n                .onBinaryTyped([utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (arg1, arg2) => (0, utils_expression_evaluator_1.string)(arg1.slice(0, Math.max(0, arg1.indexOf(arg2)))))\n                .onBinary([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (arg1, arg2) => {\n                const [a1, a2] = [arg1.typedValue, arg2.typedValue];\n                const sub = arg1.typedValue.slice(0, Math.max(0, a1.indexOf(a2)));\n                return sub || !a2 ? (0, utils_expression_evaluator_1.langString)(sub, arg1.language) : (0, utils_expression_evaluator_1.string)(sub);\n            })\n                .onBinary([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING], () => (arg1, arg2) => {\n                if (arg1.language !== arg2.language) {\n                    throw new utils_expression_evaluator_1.IncompatibleLanguageOperation(arg1, arg2);\n                }\n                const [a1, a2] = [arg1.typedValue, arg2.typedValue];\n                const sub = arg1.typedValue.slice(0, Math.max(0, a1.indexOf(a2)));\n                return sub || !a2 ? (0, utils_expression_evaluator_1.langString)(sub, arg1.language) : (0, utils_expression_evaluator_1.string)(sub);\n            })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionStrBefore = TermFunctionStrBefore;\n//# sourceMappingURL=TermFunctionStrBefore.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermStrBefore = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionStrBefore_1 = require(\"./TermFunctionStrBefore\");\n/**\n * A comunica TermFunctionStrBefore Function Factory Actor.\n */\nclass ActorFunctionFactoryTermStrBefore extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.STRBEFORE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionStrBefore_1.TermFunctionStrBefore();\n    }\n}\nexports.ActorFunctionFactoryTermStrBefore = ActorFunctionFactoryTermStrBefore;\n//# sourceMappingURL=ActorFunctionFactoryTermStrBefore.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermStrBefore\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionStrDt = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-strdt\n */\nclass TermFunctionStrDt extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.STRDT,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.STRDT).set([utils_expression_evaluator_1.TypeURL.XSD_STRING, 'namedNode'], exprEval => ([str, iri]) => {\n                const dataFactory = exprEval.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n                const lit = dataFactory.literal(str.typedValue, dataFactory.namedNode(iri.value));\n                return new utils_expression_evaluator_1.TermTransformer(exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.superTypeProvider))\n                    .transformLiteral(lit);\n            }).collect(),\n        });\n    }\n}\nexports.TermFunctionStrDt = TermFunctionStrDt;\n//# sourceMappingURL=TermFunctionStrDt.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermStrDt = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionStrDt_1 = require(\"./TermFunctionStrDt\");\n/**\n * A comunica TermFunctionStrDt Function Factory Actor.\n */\nclass ActorFunctionFactoryTermStrDt extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.STRDT],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionStrDt_1.TermFunctionStrDt();\n    }\n}\nexports.ActorFunctionFactoryTermStrDt = ActorFunctionFactoryTermStrDt;\n//# sourceMappingURL=ActorFunctionFactoryTermStrDt.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermStrDt\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionStrEnds = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-strends\n */\nclass TermFunctionStrEnds extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.STRENDS,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.STRENDS)\n                .onBinaryTyped([utils_expression_evaluator_1.TypeAlias.SPARQL_STRINGLY, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (arg1, arg2) => (0, utils_expression_evaluator_1.bool)(arg1.endsWith(arg2)))\n                .onBinary([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING], () => (arg1, arg2) => {\n                if (arg1.language !== arg2.language) {\n                    throw new utils_expression_evaluator_1.IncompatibleLanguageOperation(arg1, arg2);\n                }\n                return (0, utils_expression_evaluator_1.bool)(arg1.typedValue.endsWith(arg2.typedValue));\n            })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionStrEnds = TermFunctionStrEnds;\n//# sourceMappingURL=TermFunctionStrEnds.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermStrEnds = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionStrEnds_1 = require(\"./TermFunctionStrEnds\");\n/**\n * A comunica TermFunctionStrEnds Function Factory Actor.\n */\nclass ActorFunctionFactoryTermStrEnds extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.STRENDS],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionStrEnds_1.TermFunctionStrEnds();\n    }\n}\nexports.ActorFunctionFactoryTermStrEnds = ActorFunctionFactoryTermStrEnds;\n//# sourceMappingURL=ActorFunctionFactoryTermStrEnds.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermStrEnds\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionStrLang = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-strlang\n */\nclass TermFunctionStrLang extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.STRLANG,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.STRLANG)\n                .onBinaryTyped([utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (val, language) => new utils_expression_evaluator_1.LangStringLiteral(val, language.toLowerCase()))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionStrLang = TermFunctionStrLang;\n//# sourceMappingURL=TermFunctionStrLang.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermStrLang = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionStrLang_1 = require(\"./TermFunctionStrLang\");\n/**\n * A comunica TermFunctionStrLang Function Factory Actor.\n */\nclass ActorFunctionFactoryTermStrLang extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.STRLANG],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionStrLang_1.TermFunctionStrLang();\n    }\n}\nexports.ActorFunctionFactoryTermStrLang = ActorFunctionFactoryTermStrLang;\n//# sourceMappingURL=ActorFunctionFactoryTermStrLang.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermStrLang\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionStrLen = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-strlen\n */\nclass TermFunctionStrLen extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.STRLEN,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.STRLEN)\n                .onStringly1(() => str => (0, utils_expression_evaluator_1.integer)([...str.typedValue].length))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionStrLen = TermFunctionStrLen;\n//# sourceMappingURL=TermFunctionStrLen.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermStrLen = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionStrLen_1 = require(\"./TermFunctionStrLen\");\n/**\n * A comunica TermFunctionStrLen Function Factory Actor.\n */\nclass ActorFunctionFactoryTermStrLen extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.STRLEN],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionStrLen_1.TermFunctionStrLen();\n    }\n}\nexports.ActorFunctionFactoryTermStrLen = ActorFunctionFactoryTermStrLen;\n//# sourceMappingURL=ActorFunctionFactoryTermStrLen.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermStrLen\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionStrStarts = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-strstarts\n * for this and the following functions you'll see (string, langstring) is not allowed. This behaviour is defined in:\n * https://www.w3.org/TR/sparql11-query/#func-arg-compatibility\n */\nclass TermFunctionStrStarts extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.STRSTARTS,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.STRSTARTS)\n                .onBinaryTyped([utils_expression_evaluator_1.TypeAlias.SPARQL_STRINGLY, utils_expression_evaluator_1.TypeURL.XSD_STRING], () => (arg1, arg2) => (0, utils_expression_evaluator_1.bool)(arg1.startsWith(arg2)))\n                .onBinary([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING], () => (arg1, arg2) => {\n                if (arg1.language !== arg2.language) {\n                    throw new utils_expression_evaluator_1.IncompatibleLanguageOperation(arg1, arg2);\n                }\n                return (0, utils_expression_evaluator_1.bool)(arg1.typedValue.startsWith(arg2.typedValue));\n            })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionStrStarts = TermFunctionStrStarts;\n//# sourceMappingURL=TermFunctionStrStarts.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermStrStarts = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionStrStarts_1 = require(\"./TermFunctionStrStarts\");\n/**\n * A comunica TermFunctionStrStarts Function Factory Actor.\n */\nclass ActorFunctionFactoryTermStrStarts extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.STRSTARTS],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionStrStarts_1.TermFunctionStrStarts();\n    }\n}\nexports.ActorFunctionFactoryTermStrStarts = ActorFunctionFactoryTermStrStarts;\n//# sourceMappingURL=ActorFunctionFactoryTermStrStarts.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermStrStarts\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = 'ffffffff-ffff-ffff-ffff-ffffffffffff';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = '00000000-0000-0000-0000-000000000000';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst regex_js_1 = require(\"./regex.js\");\nfunction validate(uuid) {\n    return typeof uuid === 'string' && regex_js_1.default.test(uuid);\n}\nexports.default = validate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_js_1 = require(\"./validate.js\");\nfunction parse(uuid) {\n    if (!(0, validate_js_1.default)(uuid)) {\n        throw TypeError('Invalid UUID');\n    }\n    let v;\n    return Uint8Array.of((v = parseInt(uuid.slice(0, 8), 16)) >>> 24, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff, (v = parseInt(uuid.slice(9, 13), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(14, 18), 16)) >>> 8, v & 0xff, (v = parseInt(uuid.slice(19, 23), 16)) >>> 8, v & 0xff, ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff, (v / 0x100000000) & 0xff, (v >>> 24) & 0xff, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff);\n}\nexports.default = parse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unsafeStringify = void 0;\nconst validate_js_1 = require(\"./validate.js\");\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n    byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n    return (byteToHex[arr[offset + 0]] +\n        byteToHex[arr[offset + 1]] +\n        byteToHex[arr[offset + 2]] +\n        byteToHex[arr[offset + 3]] +\n        '-' +\n        byteToHex[arr[offset + 4]] +\n        byteToHex[arr[offset + 5]] +\n        '-' +\n        byteToHex[arr[offset + 6]] +\n        byteToHex[arr[offset + 7]] +\n        '-' +\n        byteToHex[arr[offset + 8]] +\n        byteToHex[arr[offset + 9]] +\n        '-' +\n        byteToHex[arr[offset + 10]] +\n        byteToHex[arr[offset + 11]] +\n        byteToHex[arr[offset + 12]] +\n        byteToHex[arr[offset + 13]] +\n        byteToHex[arr[offset + 14]] +\n        byteToHex[arr[offset + 15]]).toLowerCase();\n}\nexports.unsafeStringify = unsafeStringify;\nfunction stringify(arr, offset = 0) {\n    const uuid = unsafeStringify(arr, offset);\n    if (!(0, validate_js_1.default)(uuid)) {\n        throw TypeError('Stringified UUID is invalid');\n    }\n    return uuid;\n}\nexports.default = stringify;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nfunction rng() {\n    if (!getRandomValues) {\n        if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n            throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n        }\n        getRandomValues = crypto.getRandomValues.bind(crypto);\n    }\n    return getRandomValues(rnds8);\n}\nexports.default = rng;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateV1State = void 0;\nconst rng_js_1 = require(\"./rng.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nconst _state = {};\nfunction v1(options, buf, offset) {\n    let bytes;\n    const isV6 = options?._v6 ?? false;\n    if (options) {\n        const optionsKeys = Object.keys(options);\n        if (optionsKeys.length === 1 && optionsKeys[0] === '_v6') {\n            options = undefined;\n        }\n    }\n    if (options) {\n        bytes = v1Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.nsecs, options.clockseq, options.node, buf, offset);\n    }\n    else {\n        const now = Date.now();\n        const rnds = (0, rng_js_1.default)();\n        updateV1State(_state, now, rnds);\n        bytes = v1Bytes(rnds, _state.msecs, _state.nsecs, isV6 ? undefined : _state.clockseq, isV6 ? undefined : _state.node, buf, offset);\n    }\n    return buf ?? (0, stringify_js_1.unsafeStringify)(bytes);\n}\nfunction updateV1State(state, now, rnds) {\n    state.msecs ??= -Infinity;\n    state.nsecs ??= 0;\n    if (now === state.msecs) {\n        state.nsecs++;\n        if (state.nsecs >= 10000) {\n            state.node = undefined;\n            state.nsecs = 0;\n        }\n    }\n    else if (now > state.msecs) {\n        state.nsecs = 0;\n    }\n    else if (now < state.msecs) {\n        state.node = undefined;\n    }\n    if (!state.node) {\n        state.node = rnds.slice(10, 16);\n        state.node[0] |= 0x01;\n        state.clockseq = ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n    }\n    state.msecs = now;\n    return state;\n}\nexports.updateV1State = updateV1State;\nfunction v1Bytes(rnds, msecs, nsecs, clockseq, node, buf, offset = 0) {\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    if (!buf) {\n        buf = new Uint8Array(16);\n        offset = 0;\n    }\n    else {\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n    }\n    msecs ??= Date.now();\n    nsecs ??= 0;\n    clockseq ??= ((rnds[8] << 8) | rnds[9]) & 0x3fff;\n    node ??= rnds.slice(10, 16);\n    msecs += 12219292800000;\n    const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n    buf[offset++] = (tl >>> 24) & 0xff;\n    buf[offset++] = (tl >>> 16) & 0xff;\n    buf[offset++] = (tl >>> 8) & 0xff;\n    buf[offset++] = tl & 0xff;\n    const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff;\n    buf[offset++] = (tmh >>> 8) & 0xff;\n    buf[offset++] = tmh & 0xff;\n    buf[offset++] = ((tmh >>> 24) & 0xf) | 0x10;\n    buf[offset++] = (tmh >>> 16) & 0xff;\n    buf[offset++] = (clockseq >>> 8) | 0x80;\n    buf[offset++] = clockseq & 0xff;\n    for (let n = 0; n < 6; ++n) {\n        buf[offset++] = node[n];\n    }\n    return buf;\n}\nexports.default = v1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst parse_js_1 = require(\"./parse.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction v1ToV6(uuid) {\n    const v1Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid;\n    const v6Bytes = _v1ToV6(v1Bytes);\n    return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v6Bytes) : v6Bytes;\n}\nexports.default = v1ToV6;\nfunction _v1ToV6(v1Bytes) {\n    return Uint8Array.of(((v1Bytes[6] & 0x0f) << 4) | ((v1Bytes[7] >> 4) & 0x0f), ((v1Bytes[7] & 0x0f) << 4) | ((v1Bytes[4] & 0xf0) >> 4), ((v1Bytes[4] & 0x0f) << 4) | ((v1Bytes[5] & 0xf0) >> 4), ((v1Bytes[5] & 0x0f) << 4) | ((v1Bytes[0] & 0xf0) >> 4), ((v1Bytes[0] & 0x0f) << 4) | ((v1Bytes[1] & 0xf0) >> 4), ((v1Bytes[1] & 0x0f) << 4) | ((v1Bytes[2] & 0xf0) >> 4), 0x60 | (v1Bytes[2] & 0x0f), v1Bytes[3], v1Bytes[8], v1Bytes[9], v1Bytes[10], v1Bytes[11], v1Bytes[12], v1Bytes[13], v1Bytes[14], v1Bytes[15]);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction md5(bytes) {\n    const words = uint8ToUint32(bytes);\n    const md5Bytes = wordsToMd5(words, bytes.length * 8);\n    return uint32ToUint8(md5Bytes);\n}\nfunction uint32ToUint8(input) {\n    const bytes = new Uint8Array(input.length * 4);\n    for (let i = 0; i < input.length * 4; i++) {\n        bytes[i] = (input[i >> 2] >>> ((i % 4) * 8)) & 0xff;\n    }\n    return bytes;\n}\nfunction getOutputLength(inputLength8) {\n    return (((inputLength8 + 64) >>> 9) << 4) + 14 + 1;\n}\nfunction wordsToMd5(x, len) {\n    const xpad = new Uint32Array(getOutputLength(len)).fill(0);\n    xpad.set(x);\n    xpad[len >> 5] |= 0x80 << len % 32;\n    xpad[xpad.length - 1] = len;\n    x = xpad;\n    let a = 1732584193;\n    let b = -271733879;\n    let c = -1732584194;\n    let d = 271733878;\n    for (let i = 0; i < x.length; i += 16) {\n        const olda = a;\n        const oldb = b;\n        const oldc = c;\n        const oldd = d;\n        a = md5ff(a, b, c, d, x[i], 7, -680876936);\n        d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n        c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n        b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n        a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n        d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n        c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n        b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n        a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n        d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n        c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n        b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n        a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n        d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n        c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n        b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n        a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n        d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n        c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n        b = md5gg(b, c, d, a, x[i], 20, -373897302);\n        a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n        d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n        c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n        b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n        a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n        d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n        c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n        b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n        a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n        d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n        c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n        b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n        a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n        d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n        c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n        b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n        a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n        d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n        c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n        b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n        a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n        d = md5hh(d, a, b, c, x[i], 11, -358537222);\n        c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n        b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n        a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n        d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n        c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n        b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n        a = md5ii(a, b, c, d, x[i], 6, -198630844);\n        d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n        c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n        b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n        a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n        d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n        c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n        b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n        a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n        d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n        c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n        b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n        a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n        d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n        c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n        b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n        a = safeAdd(a, olda);\n        b = safeAdd(b, oldb);\n        c = safeAdd(c, oldc);\n        d = safeAdd(d, oldd);\n    }\n    return Uint32Array.of(a, b, c, d);\n}\nfunction uint8ToUint32(input) {\n    if (input.length === 0) {\n        return new Uint32Array();\n    }\n    const output = new Uint32Array(getOutputLength(input.length * 8)).fill(0);\n    for (let i = 0; i < input.length; i++) {\n        output[i >> 2] |= (input[i] & 0xff) << ((i % 4) * 8);\n    }\n    return output;\n}\nfunction safeAdd(x, y) {\n    const lsw = (x & 0xffff) + (y & 0xffff);\n    const msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n    return (msw << 16) | (lsw & 0xffff);\n}\nfunction bitRotateLeft(num, cnt) {\n    return (num << cnt) | (num >>> (32 - cnt));\n}\nfunction md5cmn(q, a, b, x, s, t) {\n    return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\nfunction md5ff(a, b, c, d, x, s, t) {\n    return md5cmn((b & c) | (~b & d), a, b, x, s, t);\n}\nfunction md5gg(a, b, c, d, x, s, t) {\n    return md5cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\nfunction md5hh(a, b, c, d, x, s, t) {\n    return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\nfunction md5ii(a, b, c, d, x, s, t) {\n    return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\nexports.default = md5;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.URL = exports.DNS = exports.stringToBytes = void 0;\nconst parse_js_1 = require(\"./parse.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction stringToBytes(str) {\n    str = unescape(encodeURIComponent(str));\n    const bytes = new Uint8Array(str.length);\n    for (let i = 0; i < str.length; ++i) {\n        bytes[i] = str.charCodeAt(i);\n    }\n    return bytes;\n}\nexports.stringToBytes = stringToBytes;\nexports.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nfunction v35(version, hash, value, namespace, buf, offset) {\n    const valueBytes = typeof value === 'string' ? stringToBytes(value) : value;\n    const namespaceBytes = typeof namespace === 'string' ? (0, parse_js_1.default)(namespace) : namespace;\n    if (typeof namespace === 'string') {\n        namespace = (0, parse_js_1.default)(namespace);\n    }\n    if (namespace?.length !== 16) {\n        throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n    }\n    let bytes = new Uint8Array(16 + valueBytes.length);\n    bytes.set(namespaceBytes);\n    bytes.set(valueBytes, namespaceBytes.length);\n    bytes = hash(bytes);\n    bytes[6] = (bytes[6] & 0x0f) | version;\n    bytes[8] = (bytes[8] & 0x3f) | 0x80;\n    if (buf) {\n        offset = offset || 0;\n        for (let i = 0; i < 16; ++i) {\n            buf[offset + i] = bytes[i];\n        }\n        return buf;\n    }\n    return (0, stringify_js_1.unsafeStringify)(bytes);\n}\nexports.default = v35;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.URL = exports.DNS = void 0;\nconst md5_js_1 = require(\"./md5.js\");\nconst v35_js_1 = require(\"./v35.js\");\nvar v35_js_2 = require(\"./v35.js\");\nObject.defineProperty(exports, \"DNS\", { enumerable: true, get: function () { return v35_js_2.DNS; } });\nObject.defineProperty(exports, \"URL\", { enumerable: true, get: function () { return v35_js_2.URL; } });\nfunction v3(value, namespace, buf, offset) {\n    return (0, v35_js_1.default)(0x30, md5_js_1.default, value, namespace, buf, offset);\n}\nv3.DNS = v35_js_1.DNS;\nv3.URL = v35_js_1.URL;\nexports.default = v3;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexports.default = { randomUUID };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst native_js_1 = require(\"./native.js\");\nconst rng_js_1 = require(\"./rng.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction v4(options, buf, offset) {\n    if (native_js_1.default.randomUUID && !buf && !options) {\n        return native_js_1.default.randomUUID();\n    }\n    options = options || {};\n    const rnds = options.random ?? options.rng?.() ?? (0, rng_js_1.default)();\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    rnds[6] = (rnds[6] & 0x0f) | 0x40;\n    rnds[8] = (rnds[8] & 0x3f) | 0x80;\n    if (buf) {\n        offset = offset || 0;\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n        for (let i = 0; i < 16; ++i) {\n            buf[offset + i] = rnds[i];\n        }\n        return buf;\n    }\n    return (0, stringify_js_1.unsafeStringify)(rnds);\n}\nexports.default = v4;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction f(s, x, y, z) {\n    switch (s) {\n        case 0:\n            return (x & y) ^ (~x & z);\n        case 1:\n            return x ^ y ^ z;\n        case 2:\n            return (x & y) ^ (x & z) ^ (y & z);\n        case 3:\n            return x ^ y ^ z;\n    }\n}\nfunction ROTL(x, n) {\n    return (x << n) | (x >>> (32 - n));\n}\nfunction sha1(bytes) {\n    const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n    const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n    const newBytes = new Uint8Array(bytes.length + 1);\n    newBytes.set(bytes);\n    newBytes[bytes.length] = 0x80;\n    bytes = newBytes;\n    const l = bytes.length / 4 + 2;\n    const N = Math.ceil(l / 16);\n    const M = new Array(N);\n    for (let i = 0; i < N; ++i) {\n        const arr = new Uint32Array(16);\n        for (let j = 0; j < 16; ++j) {\n            arr[j] =\n                (bytes[i * 64 + j * 4] << 24) |\n                    (bytes[i * 64 + j * 4 + 1] << 16) |\n                    (bytes[i * 64 + j * 4 + 2] << 8) |\n                    bytes[i * 64 + j * 4 + 3];\n        }\n        M[i] = arr;\n    }\n    M[N - 1][14] = ((bytes.length - 1) * 8) / Math.pow(2, 32);\n    M[N - 1][14] = Math.floor(M[N - 1][14]);\n    M[N - 1][15] = ((bytes.length - 1) * 8) & 0xffffffff;\n    for (let i = 0; i < N; ++i) {\n        const W = new Uint32Array(80);\n        for (let t = 0; t < 16; ++t) {\n            W[t] = M[i][t];\n        }\n        for (let t = 16; t < 80; ++t) {\n            W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n        }\n        let a = H[0];\n        let b = H[1];\n        let c = H[2];\n        let d = H[3];\n        let e = H[4];\n        for (let t = 0; t < 80; ++t) {\n            const s = Math.floor(t / 20);\n            const T = (ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t]) >>> 0;\n            e = d;\n            d = c;\n            c = ROTL(b, 30) >>> 0;\n            b = a;\n            a = T;\n        }\n        H[0] = (H[0] + a) >>> 0;\n        H[1] = (H[1] + b) >>> 0;\n        H[2] = (H[2] + c) >>> 0;\n        H[3] = (H[3] + d) >>> 0;\n        H[4] = (H[4] + e) >>> 0;\n    }\n    return Uint8Array.of(H[0] >> 24, H[0] >> 16, H[0] >> 8, H[0], H[1] >> 24, H[1] >> 16, H[1] >> 8, H[1], H[2] >> 24, H[2] >> 16, H[2] >> 8, H[2], H[3] >> 24, H[3] >> 16, H[3] >> 8, H[3], H[4] >> 24, H[4] >> 16, H[4] >> 8, H[4]);\n}\nexports.default = sha1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.URL = exports.DNS = void 0;\nconst sha1_js_1 = require(\"./sha1.js\");\nconst v35_js_1 = require(\"./v35.js\");\nvar v35_js_2 = require(\"./v35.js\");\nObject.defineProperty(exports, \"DNS\", { enumerable: true, get: function () { return v35_js_2.DNS; } });\nObject.defineProperty(exports, \"URL\", { enumerable: true, get: function () { return v35_js_2.URL; } });\nfunction v5(value, namespace, buf, offset) {\n    return (0, v35_js_1.default)(0x50, sha1_js_1.default, value, namespace, buf, offset);\n}\nv5.DNS = v35_js_1.DNS;\nv5.URL = v35_js_1.URL;\nexports.default = v5;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst stringify_js_1 = require(\"./stringify.js\");\nconst v1_js_1 = require(\"./v1.js\");\nconst v1ToV6_js_1 = require(\"./v1ToV6.js\");\nfunction v6(options, buf, offset) {\n    options ??= {};\n    offset ??= 0;\n    let bytes = (0, v1_js_1.default)({ ...options, _v6: true }, new Uint8Array(16));\n    bytes = (0, v1ToV6_js_1.default)(bytes);\n    if (buf) {\n        for (let i = 0; i < 16; i++) {\n            buf[offset + i] = bytes[i];\n        }\n        return buf;\n    }\n    return (0, stringify_js_1.unsafeStringify)(bytes);\n}\nexports.default = v6;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst parse_js_1 = require(\"./parse.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nfunction v6ToV1(uuid) {\n    const v6Bytes = typeof uuid === 'string' ? (0, parse_js_1.default)(uuid) : uuid;\n    const v1Bytes = _v6ToV1(v6Bytes);\n    return typeof uuid === 'string' ? (0, stringify_js_1.unsafeStringify)(v1Bytes) : v1Bytes;\n}\nexports.default = v6ToV1;\nfunction _v6ToV1(v6Bytes) {\n    return Uint8Array.of(((v6Bytes[3] & 0x0f) << 4) | ((v6Bytes[4] >> 4) & 0x0f), ((v6Bytes[4] & 0x0f) << 4) | ((v6Bytes[5] & 0xf0) >> 4), ((v6Bytes[5] & 0x0f) << 4) | (v6Bytes[6] & 0x0f), v6Bytes[7], ((v6Bytes[1] & 0x0f) << 4) | ((v6Bytes[2] & 0xf0) >> 4), ((v6Bytes[2] & 0x0f) << 4) | ((v6Bytes[3] & 0xf0) >> 4), 0x10 | ((v6Bytes[0] & 0xf0) >> 4), ((v6Bytes[0] & 0x0f) << 4) | ((v6Bytes[1] & 0xf0) >> 4), v6Bytes[8], v6Bytes[9], v6Bytes[10], v6Bytes[11], v6Bytes[12], v6Bytes[13], v6Bytes[14], v6Bytes[15]);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateV7State = void 0;\nconst rng_js_1 = require(\"./rng.js\");\nconst stringify_js_1 = require(\"./stringify.js\");\nconst _state = {};\nfunction v7(options, buf, offset) {\n    let bytes;\n    if (options) {\n        bytes = v7Bytes(options.random ?? options.rng?.() ?? (0, rng_js_1.default)(), options.msecs, options.seq, buf, offset);\n    }\n    else {\n        const now = Date.now();\n        const rnds = (0, rng_js_1.default)();\n        updateV7State(_state, now, rnds);\n        bytes = v7Bytes(rnds, _state.msecs, _state.seq, buf, offset);\n    }\n    return buf ?? (0, stringify_js_1.unsafeStringify)(bytes);\n}\nfunction updateV7State(state, now, rnds) {\n    state.msecs ??= -Infinity;\n    state.seq ??= 0;\n    if (now > state.msecs) {\n        state.seq = (rnds[6] << 23) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n        state.msecs = now;\n    }\n    else {\n        state.seq = (state.seq + 1) | 0;\n        if (state.seq === 0) {\n            state.msecs++;\n        }\n    }\n    return state;\n}\nexports.updateV7State = updateV7State;\nfunction v7Bytes(rnds, msecs, seq, buf, offset = 0) {\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    if (!buf) {\n        buf = new Uint8Array(16);\n        offset = 0;\n    }\n    else {\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n    }\n    msecs ??= Date.now();\n    seq ??= ((rnds[6] * 0x7f) << 24) | (rnds[7] << 16) | (rnds[8] << 8) | rnds[9];\n    buf[offset++] = (msecs / 0x10000000000) & 0xff;\n    buf[offset++] = (msecs / 0x100000000) & 0xff;\n    buf[offset++] = (msecs / 0x1000000) & 0xff;\n    buf[offset++] = (msecs / 0x10000) & 0xff;\n    buf[offset++] = (msecs / 0x100) & 0xff;\n    buf[offset++] = msecs & 0xff;\n    buf[offset++] = 0x70 | ((seq >>> 28) & 0x0f);\n    buf[offset++] = (seq >>> 20) & 0xff;\n    buf[offset++] = 0x80 | ((seq >>> 14) & 0x3f);\n    buf[offset++] = (seq >>> 6) & 0xff;\n    buf[offset++] = ((seq << 2) & 0xff) | (rnds[10] & 0x03);\n    buf[offset++] = rnds[11];\n    buf[offset++] = rnds[12];\n    buf[offset++] = rnds[13];\n    buf[offset++] = rnds[14];\n    buf[offset++] = rnds[15];\n    return buf;\n}\nexports.default = v7;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_js_1 = require(\"./validate.js\");\nfunction version(uuid) {\n    if (!(0, validate_js_1.default)(uuid)) {\n        throw TypeError('Invalid UUID');\n    }\n    return parseInt(uuid.slice(14, 15), 16);\n}\nexports.default = version;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.version = exports.validate = exports.v7 = exports.v6ToV1 = exports.v6 = exports.v5 = exports.v4 = exports.v3 = exports.v1ToV6 = exports.v1 = exports.stringify = exports.parse = exports.NIL = exports.MAX = void 0;\nvar max_js_1 = require(\"./max.js\");\nObject.defineProperty(exports, \"MAX\", { enumerable: true, get: function () { return max_js_1.default; } });\nvar nil_js_1 = require(\"./nil.js\");\nObject.defineProperty(exports, \"NIL\", { enumerable: true, get: function () { return nil_js_1.default; } });\nvar parse_js_1 = require(\"./parse.js\");\nObject.defineProperty(exports, \"parse\", { enumerable: true, get: function () { return parse_js_1.default; } });\nvar stringify_js_1 = require(\"./stringify.js\");\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return stringify_js_1.default; } });\nvar v1_js_1 = require(\"./v1.js\");\nObject.defineProperty(exports, \"v1\", { enumerable: true, get: function () { return v1_js_1.default; } });\nvar v1ToV6_js_1 = require(\"./v1ToV6.js\");\nObject.defineProperty(exports, \"v1ToV6\", { enumerable: true, get: function () { return v1ToV6_js_1.default; } });\nvar v3_js_1 = require(\"./v3.js\");\nObject.defineProperty(exports, \"v3\", { enumerable: true, get: function () { return v3_js_1.default; } });\nvar v4_js_1 = require(\"./v4.js\");\nObject.defineProperty(exports, \"v4\", { enumerable: true, get: function () { return v4_js_1.default; } });\nvar v5_js_1 = require(\"./v5.js\");\nObject.defineProperty(exports, \"v5\", { enumerable: true, get: function () { return v5_js_1.default; } });\nvar v6_js_1 = require(\"./v6.js\");\nObject.defineProperty(exports, \"v6\", { enumerable: true, get: function () { return v6_js_1.default; } });\nvar v6ToV1_js_1 = require(\"./v6ToV1.js\");\nObject.defineProperty(exports, \"v6ToV1\", { enumerable: true, get: function () { return v6ToV1_js_1.default; } });\nvar v7_js_1 = require(\"./v7.js\");\nObject.defineProperty(exports, \"v7\", { enumerable: true, get: function () { return v7_js_1.default; } });\nvar validate_js_1 = require(\"./validate.js\");\nObject.defineProperty(exports, \"validate\", { enumerable: true, get: function () { return validate_js_1.default; } });\nvar version_js_1 = require(\"./version.js\");\nObject.defineProperty(exports, \"version\", { enumerable: true, get: function () { return version_js_1.default; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionStrUuid = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst uuid = require(\"uuid\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-struuid\n */\nclass TermFunctionStrUuid extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 0,\n            operator: utils_expression_evaluator_1.SparqlOperator.STRUUID,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.STRUUID)\n                .set([], () => () => (0, utils_expression_evaluator_1.string)(uuid.v4()))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionStrUuid = TermFunctionStrUuid;\n//# sourceMappingURL=TermFunctionStrUuid.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermStrUuid = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionStrUuid_1 = require(\"./TermFunctionStrUuid\");\n/**\n * A comunica TermFunctionStrUuid Function Factory Actor.\n */\nclass ActorFunctionFactoryTermStrUuid extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.STRUUID],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionStrUuid_1.TermFunctionStrUuid();\n    }\n}\nexports.ActorFunctionFactoryTermStrUuid = ActorFunctionFactoryTermStrUuid;\n//# sourceMappingURL=ActorFunctionFactoryTermStrUuid.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermStrUuid\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionStr = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-str\n */\nclass TermFunctionStr extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.STR,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.STR)\n                .onTerm1(() => term => (0, utils_expression_evaluator_1.string)(term.str()))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionStr = TermFunctionStr;\n//# sourceMappingURL=TermFunctionStr.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermStr = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionStr_1 = require(\"./TermFunctionStr\");\n/**\n * A comunica TermFunctionStr Function Factory Actor.\n */\nclass ActorFunctionFactoryTermStr extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.STR],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionStr_1.TermFunctionStr();\n    }\n}\nexports.ActorFunctionFactoryTermStr = ActorFunctionFactoryTermStr;\n//# sourceMappingURL=ActorFunctionFactoryTermStr.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermStr\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionSubStr = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-substr\n */\nclass TermFunctionSubStr extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: [2, 3],\n            operator: utils_expression_evaluator_1.SparqlOperator.SUBSTR,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.SUBSTR)\n                .onBinaryTyped([utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_INTEGER], () => (source, startingLoc) => (0, utils_expression_evaluator_1.string)([...source].slice(startingLoc - 1).join('')))\n                .onBinary([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.XSD_INTEGER], () => (source, startingLoc) => {\n                const sub = [...source.typedValue].slice(startingLoc.typedValue - 1).join('');\n                return (0, utils_expression_evaluator_1.langString)(sub, source.language);\n            })\n                .onTernaryTyped([utils_expression_evaluator_1.TypeURL.XSD_STRING, utils_expression_evaluator_1.TypeURL.XSD_INTEGER, utils_expression_evaluator_1.TypeURL.XSD_INTEGER], () => (source, startingLoc, length) => (0, utils_expression_evaluator_1.string)([...source].slice(startingLoc - 1, length + startingLoc - 1).join('')))\n                .onTernary([utils_expression_evaluator_1.TypeURL.RDF_LANG_STRING, utils_expression_evaluator_1.TypeURL.XSD_INTEGER, utils_expression_evaluator_1.TypeURL.XSD_INTEGER], () => (source, startingLoc, length) => {\n                const sub = [...source.typedValue]\n                    .slice(startingLoc.typedValue - 1, length.typedValue + startingLoc.typedValue - 1)\n                    .join('');\n                return (0, utils_expression_evaluator_1.langString)(sub, source.language);\n            })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionSubStr = TermFunctionSubStr;\n//# sourceMappingURL=TermFunctionSubStr.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermSubStr = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionSubStr_1 = require(\"./TermFunctionSubStr\");\n/**\n * A comunica TermFunctionSubStr Function Factory Actor.\n */\nclass ActorFunctionFactoryTermSubStr extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.SUBSTR],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionSubStr_1.TermFunctionSubStr();\n    }\n}\nexports.ActorFunctionFactoryTermSubStr = ActorFunctionFactoryTermSubStr;\n//# sourceMappingURL=ActorFunctionFactoryTermSubStr.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermSubStr\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionSubject = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#subject\n */\nclass TermFunctionSubject extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.SUBJECT,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.SUBJECT)\n                .onQuad1(() => quad => quad.subject)\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionSubject = TermFunctionSubject;\n//# sourceMappingURL=TermFunctionSubject.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermSubject = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionSubject_1 = require(\"./TermFunctionSubject\");\n/**\n * A comunica TermFunctionSubject Function Factory Actor.\n */\nclass ActorFunctionFactoryTermSubject extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.SUBJECT],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionSubject_1.TermFunctionSubject();\n    }\n}\nexports.ActorFunctionFactoryTermSubject = ActorFunctionFactoryTermSubject;\n//# sourceMappingURL=ActorFunctionFactoryTermSubject.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermSubject\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionSubtraction = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst bignumber_js_1 = require(\"bignumber.js\");\nclass TermFunctionSubtraction extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.SUBTRACTION,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.SUBTRACTION)\n                .arithmetic(() => (left, right) => new bignumber_js_1.BigNumber(left).minus(right).toNumber())\n                .set([utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME], exprEval => ([date1, date2]) => \n            // https://www.w3.org/TR/xpath-functions/#func-subtract-dateTimes;\n            new utils_expression_evaluator_1.DayTimeDurationLiteral((0, utils_expression_evaluator_1.elapsedDuration)(date1.typedValue, date2.typedValue, exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.defaultTimeZone))))\n                .copy({ from: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME], to: [utils_expression_evaluator_1.TypeURL.XSD_DATE, utils_expression_evaluator_1.TypeURL.XSD_DATE] })\n                .copy({ from: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME], to: [utils_expression_evaluator_1.TypeURL.XSD_TIME, utils_expression_evaluator_1.TypeURL.XSD_TIME] })\n                .set([utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION], () => ([date, dur]) => \n            // https://www.w3.org/TR/xpath-functions/#func-subtract-dayTimeDuration-from-dateTime\n            new utils_expression_evaluator_1.DateTimeLiteral((0, utils_expression_evaluator_1.addDurationToDateTime)(date.typedValue, (0, utils_expression_evaluator_1.defaultedDurationRepresentation)((0, utils_expression_evaluator_1.negateDuration)(dur.typedValue)))))\n                .copy({\n                from: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION],\n                to: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_YEAR_MONTH_DURATION],\n            })\n                .set([utils_expression_evaluator_1.TypeURL.XSD_DATE, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION], () => ([date, dur]) => \n            // https://www.w3.org/TR/xpath-functions/#func-subtract-dayTimeDuration-from-date\n            new utils_expression_evaluator_1.DateLiteral((0, utils_expression_evaluator_1.addDurationToDateTime)((0, utils_expression_evaluator_1.defaultedDateTimeRepresentation)(date.typedValue), (0, utils_expression_evaluator_1.defaultedDurationRepresentation)((0, utils_expression_evaluator_1.negateDuration)(dur.typedValue)))))\n                .copy({\n                from: [utils_expression_evaluator_1.TypeURL.XSD_DATE, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION],\n                to: [utils_expression_evaluator_1.TypeURL.XSD_DATE, utils_expression_evaluator_1.TypeURL.XSD_YEAR_MONTH_DURATION],\n            })\n                .set([utils_expression_evaluator_1.TypeURL.XSD_TIME, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION], () => ([time, dur]) => \n            // https://www.w3.org/TR/xpath-functions/#func-subtract-dayTimeDuration-from-date\n            new utils_expression_evaluator_1.TimeLiteral((0, utils_expression_evaluator_1.addDurationToDateTime)((0, utils_expression_evaluator_1.defaultedDateTimeRepresentation)(time.typedValue), (0, utils_expression_evaluator_1.defaultedDurationRepresentation)((0, utils_expression_evaluator_1.negateDuration)(dur.typedValue)))))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionSubtraction = TermFunctionSubtraction;\n//# sourceMappingURL=TermFunctionSubtraction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermSubtraction = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionSubtraction_1 = require(\"./TermFunctionSubtraction\");\n/**\n * A comunica TermFunctionSubtraction Function Factory Actor.\n */\nclass ActorFunctionFactoryTermSubtraction extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.SUBTRACTION],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionSubtraction_1.TermFunctionSubtraction();\n    }\n}\nexports.ActorFunctionFactoryTermSubtraction = ActorFunctionFactoryTermSubtraction;\n//# sourceMappingURL=ActorFunctionFactoryTermSubtraction.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermSubtraction\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionTimezone = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-timezone\n */\nclass TermFunctionTimezone extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.TIMEZONE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.TIMEZONE)\n                .onDateTime1(() => (date) => {\n                const duration = {\n                    hours: date.typedValue.zoneHours,\n                    minutes: date.typedValue.zoneMinutes,\n                };\n                if (duration.hours === undefined && duration.minutes === undefined) {\n                    throw new utils_expression_evaluator_1.InvalidTimezoneCall(date.str());\n                }\n                return new utils_expression_evaluator_1.DayTimeDurationLiteral(duration);\n            })\n                .copy({ from: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME], to: [utils_expression_evaluator_1.TypeURL.XSD_DATE] })\n                .copy({ from: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME], to: [utils_expression_evaluator_1.TypeURL.XSD_TIME] })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionTimezone = TermFunctionTimezone;\n//# sourceMappingURL=TermFunctionTimezone.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermTimezone = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionTimezone_1 = require(\"./TermFunctionTimezone\");\n/**\n * A comunica TermFunctionTimezone Function Factory Actor.\n */\nclass ActorFunctionFactoryTermTimezone extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.TIMEZONE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionTimezone_1.TermFunctionTimezone();\n    }\n}\nexports.ActorFunctionFactoryTermTimezone = ActorFunctionFactoryTermTimezone;\n//# sourceMappingURL=ActorFunctionFactoryTermTimezone.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermTimezone\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionTriple = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://w3c.github.io/rdf-star/cg-spec/editors_draft.html#triple-function\n */\nclass TermFunctionTriple extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 3,\n            operator: utils_expression_evaluator_1.SparqlOperator.TRIPLE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.TRIPLE)\n                .onTerm3(_ => (...args) => new utils_expression_evaluator_1.Quad(args[0], args[1], args[2], new utils_expression_evaluator_1.DefaultGraph()))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionTriple = TermFunctionTriple;\n//# sourceMappingURL=TermFunctionTriple.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermTriple = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionTriple_1 = require(\"./TermFunctionTriple\");\n/**\n * A comunica TermFunctionTriple Function Factory Actor.\n */\nclass ActorFunctionFactoryTermTriple extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.TRIPLE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionTriple_1.TermFunctionTriple();\n    }\n}\nexports.ActorFunctionFactoryTermTriple = ActorFunctionFactoryTermTriple;\n//# sourceMappingURL=ActorFunctionFactoryTermTriple.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermTriple\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionTz = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-tz\n */\nclass TermFunctionTz extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.TZ,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.TZ)\n                .onDateTime1(() => date => (0, utils_expression_evaluator_1.string)((0, utils_expression_evaluator_1.extractRawTimeZone)(date.str())))\n                .copy({ from: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME], to: [utils_expression_evaluator_1.TypeURL.XSD_DATE] })\n                .copy({ from: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME], to: [utils_expression_evaluator_1.TypeURL.XSD_TIME] })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionTz = TermFunctionTz;\n//# sourceMappingURL=TermFunctionTz.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermTz = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionTz_1 = require(\"./TermFunctionTz\");\n/**\n * A comunica TermFunctionTz Function Factory Actor.\n */\nclass ActorFunctionFactoryTermTz extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.TZ],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionTz_1.TermFunctionTz();\n    }\n}\nexports.ActorFunctionFactoryTermTz = ActorFunctionFactoryTermTz;\n//# sourceMappingURL=ActorFunctionFactoryTermTz.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermTz\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionUcase = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-ucase\n */\nclass TermFunctionUcase extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.UCASE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.UCASE)\n                .onString1Typed(() => lit => (0, utils_expression_evaluator_1.string)(lit.toUpperCase()))\n                .onLangString1(() => lit => (0, utils_expression_evaluator_1.langString)(lit.typedValue.toUpperCase(), lit.language))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionUcase = TermFunctionUcase;\n//# sourceMappingURL=TermFunctionUcase.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermUcase = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionUcase_1 = require(\"./TermFunctionUcase\");\n/**\n * A comunica TermFunctionUcase Function Factory Actor.\n */\nclass ActorFunctionFactoryTermUcase extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.UCASE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionUcase_1.TermFunctionUcase();\n    }\n}\nexports.ActorFunctionFactoryTermUcase = ActorFunctionFactoryTermUcase;\n//# sourceMappingURL=ActorFunctionFactoryTermUcase.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermUcase\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionUnaryMinus = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionUnaryMinus extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.UMINUS,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.UMINUS)\n                .numericConverter(() => val => -val)\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionUnaryMinus = TermFunctionUnaryMinus;\n//# sourceMappingURL=TermFunctionUnaryMinus.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermUnaryMinus = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionUnaryMinus_1 = require(\"./TermFunctionUnaryMinus\");\n/**\n * A comunica TermFunctionUnaryMinus Function Factory Actor.\n */\nclass ActorFunctionFactoryTermUnaryMinus extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.UMINUS],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionUnaryMinus_1.TermFunctionUnaryMinus();\n    }\n}\nexports.ActorFunctionFactoryTermUnaryMinus = ActorFunctionFactoryTermUnaryMinus;\n//# sourceMappingURL=ActorFunctionFactoryTermUnaryMinus.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermUnaryMinus\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionUnaryPlus = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionUnaryPlus extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.UPLUS,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.UPLUS)\n                .numericConverter(() => val => val)\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionUnaryPlus = TermFunctionUnaryPlus;\n//# sourceMappingURL=TermFunctionUnaryPlus.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermUnaryPlus = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionUnaryPlus_1 = require(\"./TermFunctionUnaryPlus\");\n/**\n * A comunica TermFunctionUnaryPlus Function Factory Actor.\n */\nclass ActorFunctionFactoryTermUnaryPlus extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.UPLUS],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionUnaryPlus_1.TermFunctionUnaryPlus();\n    }\n}\nexports.ActorFunctionFactoryTermUnaryPlus = ActorFunctionFactoryTermUnaryPlus;\n//# sourceMappingURL=ActorFunctionFactoryTermUnaryPlus.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermUnaryPlus\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionUuid = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst uuid = require(\"uuid\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-uuid\n */\nclass TermFunctionUuid extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 0,\n            operator: utils_expression_evaluator_1.SparqlOperator.UUID,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.UUID)\n                .set([], () => () => new utils_expression_evaluator_1.NamedNode(`urn:uuid:${uuid.v4()}`))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionUuid = TermFunctionUuid;\n//# sourceMappingURL=TermFunctionUuid.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermUuid = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionUuid_1 = require(\"./TermFunctionUuid\");\n/**\n * A comunica TermFunctionUuid Function Factory Actor.\n */\nclass ActorFunctionFactoryTermUuid extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.UUID],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionUuid_1.TermFunctionUuid();\n    }\n}\nexports.ActorFunctionFactoryTermUuid = ActorFunctionFactoryTermUuid;\n//# sourceMappingURL=ActorFunctionFactoryTermUuid.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermUuid\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToBoolean = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToBoolean extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_BOOLEAN,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_BOOLEAN)\n                .onNumeric1(() => (val) => (0, utils_expression_evaluator_1.bool)(val.coerceEBV()), true)\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_BOOLEAN, () => (val) => (0, utils_expression_evaluator_1.bool)(val.coerceEBV()), true)\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_STRING, () => (val) => {\n                switch (val.str()) {\n                    case 'true':\n                        return (0, utils_expression_evaluator_1.bool)(true);\n                    case 'false':\n                        return (0, utils_expression_evaluator_1.bool)(false);\n                    case '1':\n                        return (0, utils_expression_evaluator_1.bool)(true);\n                    case '0':\n                        return (0, utils_expression_evaluator_1.bool)(false);\n                    default:\n                        throw new utils_expression_evaluator_1.CastError(val, utils_expression_evaluator_1.TypeURL.XSD_BOOLEAN);\n                }\n            }, false)\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToBoolean = TermFunctionXsdToBoolean;\n//# sourceMappingURL=TermFunctionXsdToBoolean.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToBoolean = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToBoolean_1 = require(\"./TermFunctionXsdToBoolean\");\n/**\n * A comunica TermFunctionXsdToBoolean Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToBoolean extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_BOOLEAN],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToBoolean_1.TermFunctionXsdToBoolean();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToBoolean = ActorFunctionFactoryTermXsdToBoolean;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToBoolean.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToBoolean\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToDate = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToDate extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_DATE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_DATE)\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_DATE, () => (val) => new utils_expression_evaluator_1.DateLiteral(val.typedValue, val.strValue))\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, () => (val) => new utils_expression_evaluator_1.DateLiteral(val.typedValue))\n                .onStringly1(() => (val) => new utils_expression_evaluator_1.DateLiteral((0, utils_expression_evaluator_1.parseDate)(val.str())))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToDate = TermFunctionXsdToDate;\n//# sourceMappingURL=TermFunctionXsdToDate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToDate = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToDate_1 = require(\"./TermFunctionXsdToDate\");\n/**\n * A comunica TermFunctionXsdToDate Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToDate extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_DATE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToDate_1.TermFunctionXsdToDate();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToDate = ActorFunctionFactoryTermXsdToDate;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToDate.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToDate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToDatetime = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToDatetime extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME)\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, () => (val) => val)\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_STRING, () => (val) => (0, utils_expression_evaluator_1.dateTime)((0, utils_expression_evaluator_1.parseDateTime)(val.str()), val.str()), false)\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_DATE, () => (val) => new utils_expression_evaluator_1.DateTimeLiteral({ ...val.typedValue, hours: 0, minutes: 0, seconds: 0 }))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToDatetime = TermFunctionXsdToDatetime;\n//# sourceMappingURL=TermFunctionXsdToDatetime.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToDatetime = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToDatetime_1 = require(\"./TermFunctionXsdToDatetime\");\n/**\n * A comunica TermFunctionXsdToDatetime Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToDatetime extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToDatetime_1.TermFunctionXsdToDatetime();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToDatetime = ActorFunctionFactoryTermXsdToDatetime;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToDatetime.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToDatetime\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToDayTimeDuration = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToDayTimeDuration extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION)\n                // https://www.w3.org/TR/xpath-functions/#casting-to-durations\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_DURATION, () => (val) => \n            // Copy is needed to make sure the dataType is changed, even when the provided type was a subtype\n            new utils_expression_evaluator_1.DayTimeDurationLiteral((0, utils_expression_evaluator_1.trimToDayTimeDuration)(val.typedValue)))\n                .onStringly1(() => (val) => new utils_expression_evaluator_1.DayTimeDurationLiteral((0, utils_expression_evaluator_1.parseDayTimeDuration)(val.str())))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToDayTimeDuration = TermFunctionXsdToDayTimeDuration;\n//# sourceMappingURL=TermFunctionXsdToDayTimeDuration.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToDayTimeDuration = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToDayTimeDuration_1 = require(\"./TermFunctionXsdToDayTimeDuration\");\n/**\n * A comunica TermFunctionXsdToDayTimeDuration Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToDayTimeDuration extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToDayTimeDuration_1.TermFunctionXsdToDayTimeDuration();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToDayTimeDuration = ActorFunctionFactoryTermXsdToDayTimeDuration;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToDayTimeDuration.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToDayTimeDuration\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToDecimal = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToDecimal extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_DECIMAL,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_DECIMAL)\n                .onNumeric1(() => (val) => {\n                const result = (0, utils_expression_evaluator_1.parseXSDDecimal)(val.str());\n                if (result === undefined) {\n                    throw new utils_expression_evaluator_1.CastError(val, utils_expression_evaluator_1.TypeURL.XSD_DECIMAL);\n                }\n                return (0, utils_expression_evaluator_1.decimal)(result);\n            })\n                .onString1(() => (val) => {\n                const str = val.str();\n                const result = /^([+-])?(\\d+(\\.\\d+)?)$/u.test(str) ? (0, utils_expression_evaluator_1.parseXSDDecimal)(str) : undefined;\n                if (result === undefined) {\n                    throw new utils_expression_evaluator_1.CastError(val, utils_expression_evaluator_1.TypeURL.XSD_DECIMAL);\n                }\n                return (0, utils_expression_evaluator_1.decimal)(result);\n            }, false)\n                .onBoolean1Typed(() => val => (0, utils_expression_evaluator_1.decimal)(val ? 1 : 0))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToDecimal = TermFunctionXsdToDecimal;\n//# sourceMappingURL=TermFunctionXsdToDecimal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToDecimal = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToDecimal_1 = require(\"./TermFunctionXsdToDecimal\");\n/**\n * A comunica TermFunctionXsdToDecimal Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToDecimal extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_DECIMAL],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToDecimal_1.TermFunctionXsdToDecimal();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToDecimal = ActorFunctionFactoryTermXsdToDecimal;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToDecimal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToDecimal\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToDouble = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToDouble extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_DOUBLE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_DOUBLE)\n                .onNumeric1(() => (val) => (0, utils_expression_evaluator_1.double)(val.typedValue))\n                .onBoolean1Typed(() => val => (0, utils_expression_evaluator_1.double)(val ? 1 : 0))\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_STRING, () => (val) => {\n                const result = (0, utils_expression_evaluator_1.parseXSDFloat)(val.str());\n                if (result === undefined) {\n                    throw new utils_expression_evaluator_1.CastError(val, utils_expression_evaluator_1.TypeURL.XSD_DOUBLE);\n                }\n                return (0, utils_expression_evaluator_1.double)(result);\n            }, false)\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToDouble = TermFunctionXsdToDouble;\n//# sourceMappingURL=TermFunctionXsdToDouble.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToDouble = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToDouble_1 = require(\"./TermFunctionXsdToDouble\");\n/**\n * A comunica TermFunctionXsdToDouble Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToDouble extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_DOUBLE],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToDouble_1.TermFunctionXsdToDouble();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToDouble = ActorFunctionFactoryTermXsdToDouble;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToDouble.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToDouble\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToDuration = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToDuration extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_DURATION)\n                // https://www.w3.org/TR/xpath-functions/#casting-to-durations\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_DURATION, () => (val) => \n            // Copy is needed to make sure the dataType is changed, even when the provided type was a subtype\n            new utils_expression_evaluator_1.DurationLiteral(val.typedValue, val.strValue))\n                .onStringly1(() => (val) => new utils_expression_evaluator_1.DurationLiteral((0, utils_expression_evaluator_1.parseDuration)(val.str())))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToDuration = TermFunctionXsdToDuration;\n//# sourceMappingURL=TermFunctionXsdToDuration.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToDuration = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToDuration_1 = require(\"./TermFunctionXsdToDuration\");\n/**\n * A comunica TermFunctionXsdToDuration Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToDuration extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_DURATION],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToDuration_1.TermFunctionXsdToDuration();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToDuration = ActorFunctionFactoryTermXsdToDuration;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToDuration.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToDuration\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToFloat = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToFloat extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_FLOAT,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_FLOAT)\n                .onNumeric1(() => (val) => (0, utils_expression_evaluator_1.float)(val.typedValue))\n                .onBoolean1Typed(() => val => (0, utils_expression_evaluator_1.float)(val ? 1 : 0))\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_STRING, () => (val) => {\n                const result = (0, utils_expression_evaluator_1.parseXSDFloat)(val.str());\n                if (result === undefined) {\n                    throw new utils_expression_evaluator_1.CastError(val, utils_expression_evaluator_1.TypeURL.XSD_FLOAT);\n                }\n                return (0, utils_expression_evaluator_1.float)(result);\n            }, false)\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToFloat = TermFunctionXsdToFloat;\n//# sourceMappingURL=TermFunctionXsdToFloat.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToFloat = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToFloat_1 = require(\"./TermFunctionXsdToFloat\");\n/**\n * A comunica TermFunctionXsdToFloat Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToFloat extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_FLOAT],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToFloat_1.TermFunctionXsdToFloat();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToFloat = ActorFunctionFactoryTermXsdToFloat;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToFloat.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToFloat\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToInteger = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToInteger extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_INTEGER,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_INTEGER)\n                .onBoolean1Typed(() => val => (0, utils_expression_evaluator_1.integer)(val ? 1 : 0))\n                .onNumeric1(() => (val) => {\n                if (!Number.isFinite(val.typedValue)) {\n                    throw new utils_expression_evaluator_1.CastError(val, utils_expression_evaluator_1.TypeURL.XSD_INTEGER);\n                }\n                return (0, utils_expression_evaluator_1.integer)(Math.trunc(val.typedValue));\n            })\n                .onString1(() => (val) => {\n                const str = val.str();\n                const result = /^\\d+$/u.test(str) ? Number.parseInt(str, 10) : undefined;\n                if (result === undefined) {\n                    throw new utils_expression_evaluator_1.CastError(val, utils_expression_evaluator_1.TypeURL.XSD_INTEGER);\n                }\n                return (0, utils_expression_evaluator_1.integer)(result);\n            })\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToInteger = TermFunctionXsdToInteger;\n//# sourceMappingURL=TermFunctionXsdToInteger.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToInteger = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToInteger_1 = require(\"./TermFunctionXsdToInteger\");\n/**\n * A comunica TermFunctionXsdToInteger Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToInteger extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_INTEGER],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToInteger_1.TermFunctionXsdToInteger();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToInteger = ActorFunctionFactoryTermXsdToInteger;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToInteger.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToInteger\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToString = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/xpath-functions/#casting-to-string\n */\nclass TermFunctionXsdToString extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_STRING,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_STRING)\n                .onNumeric1(() => (val) => (0, utils_expression_evaluator_1.string)((0, utils_expression_evaluator_1.float)(val.typedValue).str()))\n                .onBoolean1Typed(() => val => (0, utils_expression_evaluator_1.string)((0, utils_expression_evaluator_1.bool)(val).str()))\n                .onTerm1(() => (val) => (0, utils_expression_evaluator_1.string)(val.str()))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToString = TermFunctionXsdToString;\n//# sourceMappingURL=TermFunctionXsdToString.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToString = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToString_1 = require(\"./TermFunctionXsdToString\");\n/**\n * A comunica TermFunctionXsdToString Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToString extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_STRING],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToString_1.TermFunctionXsdToString();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToString = ActorFunctionFactoryTermXsdToString;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToString.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToString\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToTime = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToTime extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_TIME,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_TIME)\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_TIME, () => (val) => new utils_expression_evaluator_1.TimeLiteral(val.typedValue, val.strValue))\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, () => (val) => new utils_expression_evaluator_1.TimeLiteral(val.typedValue))\n                .onStringly1(() => (val) => new utils_expression_evaluator_1.TimeLiteral((0, utils_expression_evaluator_1.parseTime)(val.str())))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToTime = TermFunctionXsdToTime;\n//# sourceMappingURL=TermFunctionXsdToTime.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToTime = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToTime_1 = require(\"./TermFunctionXsdToTime\");\n/**\n * A comunica TermFunctionXsdToTime Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToTime extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_TIME],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToTime_1.TermFunctionXsdToTime();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToTime = ActorFunctionFactoryTermXsdToTime;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToTime.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToTime\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionXsdToYearMonthDuration = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionXsdToYearMonthDuration extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.TypeURL.XSD_YEAR_MONTH_DURATION,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.TypeURL.XSD_YEAR_MONTH_DURATION)\n                // https://www.w3.org/TR/xpath-functions/#casting-to-durations\n                .onUnary(utils_expression_evaluator_1.TypeURL.XSD_DURATION, () => (val) => \n            // Copy is needed to make sure the dataType is changed, even when the provided type was a subtype\n            new utils_expression_evaluator_1.YearMonthDurationLiteral((0, utils_expression_evaluator_1.trimToYearMonthDuration)(val.typedValue)))\n                .onStringly1(() => (val) => new utils_expression_evaluator_1.YearMonthDurationLiteral((0, utils_expression_evaluator_1.parseYearMonthDuration)(val.str())))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionXsdToYearMonthDuration = TermFunctionXsdToYearMonthDuration;\n//# sourceMappingURL=TermFunctionXsdToYearMonthDuration.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermXsdToYearMonthDuration = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionXsdToYearMonthDuration_1 = require(\"./TermFunctionXsdToYearMonthDuration\");\n/**\n * A comunica TermFunctionXsdToYearMonthDuration Function Factory Actor.\n */\nclass ActorFunctionFactoryTermXsdToYearMonthDuration extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.TypeURL.XSD_YEAR_MONTH_DURATION],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionXsdToYearMonthDuration_1.TermFunctionXsdToYearMonthDuration();\n    }\n}\nexports.ActorFunctionFactoryTermXsdToYearMonthDuration = ActorFunctionFactoryTermXsdToYearMonthDuration;\n//# sourceMappingURL=ActorFunctionFactoryTermXsdToYearMonthDuration.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermXsdToYearMonthDuration\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionYear = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-year\n */\nclass TermFunctionYear extends bus_function_factory_1.TermFunctionBase {\n    constructor() {\n        super({\n            arity: 1,\n            operator: utils_expression_evaluator_1.SparqlOperator.YEAR,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.YEAR)\n                .onDateTime1(() => date => (0, utils_expression_evaluator_1.integer)(date.typedValue.year))\n                .set([utils_expression_evaluator_1.TypeURL.XSD_DATE], () => ([date]) => (0, utils_expression_evaluator_1.integer)(date.typedValue.year))\n                .collect(),\n        });\n    }\n}\nexports.TermFunctionYear = TermFunctionYear;\n//# sourceMappingURL=TermFunctionYear.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermYear = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionYear_1 = require(\"./TermFunctionYear\");\n/**\n * A comunica TermFunctionYear Function Factory Actor.\n */\nclass ActorFunctionFactoryTermYear extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.YEAR],\n            termFunction: true,\n        });\n    }\n    async run(_) {\n        return new TermFunctionYear_1.TermFunctionYear();\n    }\n}\nexports.ActorFunctionFactoryTermYear = ActorFunctionFactoryTermYear;\n//# sourceMappingURL=ActorFunctionFactoryTermYear.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermYear\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readableFromWeb = exports.ReadableFromWeb = void 0;\nconst readable_stream_1 = require(\"readable-stream\");\nclass ReadableFromWeb extends readable_stream_1.Readable {\n    constructor(stream, options) {\n        super(options);\n        this.reader = stream.getReader();\n        this.readerClosed = false;\n        this.reader.closed.then(() => {\n            this.readerClosed = true;\n        }).catch((error) => {\n            this.readerClosed = true;\n            this.destroy(error);\n        });\n    }\n    // eslint-disable-next-line ts/naming-convention\n    _read() {\n        this.reader.read()\n            .then(chunk => this.push(chunk.done ? null : chunk.value))\n            .catch((error) => this.destroy(error));\n    }\n    destroy(error) {\n        if (!this.readerClosed) {\n            this.reader.cancel(error).then().catch(() => {\n                // Ideally, the error from cancel should be handled here.\n                // However, an error thrown in cancel does not seem to reach this callback.\n                // Therefore, the error is simply not handled here.\n            });\n        }\n        return super.destroy(error);\n    }\n}\nexports.ReadableFromWeb = ReadableFromWeb;\nfunction readableFromWeb(stream, options) {\n    return new ReadableFromWeb(stream, options);\n}\nexports.readableFromWeb = readableFromWeb;\n//# sourceMappingURL=ReadableFromWeb.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.readableFromWeb = void 0;\nvar ReadableFromWeb_1 = require(\"./ReadableFromWeb\");\nObject.defineProperty(exports, \"readableFromWeb\", { enumerable: true, get: function () { return ReadableFromWeb_1.readableFromWeb; } });\n//# sourceMappingURL=index.js.map","'use strict';\n\nconst isStream = stream =>\n\tstream !== null &&\n\ttypeof stream === 'object' &&\n\ttypeof stream.pipe === 'function';\n\nisStream.writable = stream =>\n\tisStream(stream) &&\n\tstream.writable !== false &&\n\ttypeof stream._write === 'function' &&\n\ttypeof stream._writableState === 'object';\n\nisStream.readable = stream =>\n\tisStream(stream) &&\n\tstream.readable !== false &&\n\ttypeof stream._read === 'function' &&\n\ttypeof stream._readableState === 'object';\n\nisStream.duplex = stream =>\n\tisStream.writable(stream) &&\n\tisStream.readable(stream);\n\nisStream.transform = stream =>\n\tisStream.duplex(stream) &&\n\ttypeof stream._transform === 'function';\n\nmodule.exports = isStream;\n","\n/* global ReadableStream */\n\nmodule.exports = nodeToWeb\nmodule.exports.WEBSTREAM_SUPPORT = typeof ReadableStream !== 'undefined'\n\nfunction nodeToWeb (nodeStream) {\n  // Assumes the nodeStream has not ended/closed\n  if (!module.exports.WEBSTREAM_SUPPORT) throw new Error('No web ReadableStream support')\n\n  var destroyed = false\n  var listeners = {}\n\n  function start (controller) {\n    listeners['data'] = onData\n    listeners['end'] = onData\n    listeners['end'] = onDestroy\n    listeners['close'] = onDestroy\n    listeners['error'] = onDestroy\n    for (var name in listeners) nodeStream.on(name, listeners[name])\n\n    nodeStream.pause()\n\n    function onData (chunk) {\n      if (destroyed) return\n      controller.enqueue(chunk)\n      nodeStream.pause()\n    }\n\n    function onDestroy (err) {\n      if (destroyed) return\n      destroyed = true\n\n      for (var name in listeners) nodeStream.removeListener(name, listeners[name])\n\n      if (err) controller.error(err)\n      else controller.close()\n    }\n  }\n\n  function pull () {\n    if (destroyed) return\n    nodeStream.resume()\n  }\n\n  function cancel () {\n    destroyed = true\n\n    for (var name in listeners) nodeStream.removeListener(name, listeners[name])\n\n    nodeStream.push(null)\n    nodeStream.pause()\n    if (nodeStream.destroy) nodeStream.destroy()\n    else if (nodeStream.close) nodeStream.close()\n  }\n\n  return new ReadableStream({start: start, pull: pull, cancel: cancel})\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHttp = void 0;\nconst core_1 = require(\"@comunica/core\");\nconst readable_from_web_1 = require(\"readable-from-web\");\nconst isStream = require('is-stream');\nconst toWebReadableStream = require('readable-stream-node-to-web');\n/**\n * A base actor for listening to HTTP events.\n *\n * Actor types:\n * * Input:  IActionHttp:      The HTTP request.\n * * Test:   IActorHttpTest:   An estimate for the response time.\n * * Output: IActorHttpOutput: The HTTP response.\n *\n * @see IActionHttp\n * @see IActorHttpTest\n * @see IActorHttpOutput\n */\nclass ActorHttp extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {HTTP request failed: none of the configured actors were able to handle ${action.input}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n    /**\n     * Converts WhatWG streams to Node streams if required.\n     * Returns the input in case the stream already is a Node stream.\n     * @param {ReadableStream} body\n     * @returns {NodeJS.ReadableStream} A node stream.\n     */\n    static toNodeReadable(body) {\n        return isStream(body) || body === null ?\n            body :\n            (0, readable_from_web_1.readableFromWeb)(body);\n    }\n    /**\n     * Converts Node streams to WhatWG streams.\n     * @param {NodeJS.ReadableStream} body\n     * @returns {ReadableStream} A web stream.\n     */\n    static toWebReadableStream(body) {\n        return toWebReadableStream(body);\n    }\n    /**\n     * Convert the given headers object into a raw hash.\n     * @param headers A headers object.\n     */\n    static headersToHash(headers) {\n        const hash = {};\n        // eslint-disable-next-line unicorn/no-array-for-each\n        headers.forEach((value, key) => {\n            hash[key] = value;\n        });\n        return hash;\n    }\n    /**\n     * Extract the requested URL from the action input.\n     * @param {RequestInfo | URL} input The request input.\n     * @returns {URL} The extracted URL.\n     */\n    static getInputUrl(input) {\n        return new URL(input instanceof Request ? input.url : input);\n    }\n    /**\n     * Creates an appropriate User-Agent header string for Node.js or other environments.\n     * Within browsers, returns undefined, because the value should not be overridden due to potential CORS issues.\n     */\n    static createUserAgent(actorName, actorVersion) {\n        if (!ActorHttp.isBrowser()) {\n            const versions = [\n                `Comunica/${actorVersion.split('.')[0]}.0`,\n                `${actorName}/${actorVersion}`,\n            ];\n            if (typeof globalThis.navigator === 'object' && typeof globalThis.navigator.userAgent === 'string') {\n                // Most runtimes like Node.js 21+, Deno and Bun implement navigator.userAgent\n                versions.push(globalThis.navigator.userAgent);\n            }\n            else if (typeof globalThis.process === 'object' &&\n                typeof globalThis.process.versions === 'object' &&\n                typeof globalThis.process.versions.node === 'string') {\n                // TODO: remove this entire 'else if' when support for Node.js 20 is dropped, this only exists for that one\n                versions.push(`Node.js/${globalThis.process.versions.node.split('.')[0]}`);\n            }\n            if (typeof globalThis.process === 'object' &&\n                typeof globalThis.process.platform === 'string' &&\n                typeof globalThis.process.arch === 'string') {\n                versions.splice(1, 0, `(${globalThis.process.platform}; ${globalThis.process.arch})`);\n            }\n            return versions.join(' ');\n        }\n    }\n    /**\n     * Attempts to determine whether the current environment is a browser or not.\n     * @returns {boolean} True for browsers and web workers, false for other runtimes.\n     */\n    static isBrowser() {\n        return (\n        // The window global and the document are available in browsers, but not in web workers\n        // https://developer.mozilla.org/en-US/docs/Glossary/Global_object\n        (typeof globalThis.window === 'object' && typeof globalThis.window.document === 'object') ||\n            // The importScripts function is only available in Web Workers\n            // https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/importScripts\n            (typeof globalThis.importScripts === 'function'));\n    }\n}\nexports.ActorHttp = ActorHttp;\n//# sourceMappingURL=ActorHttp.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAndCloseHttpResponse = void 0;\nconst stream_to_string_1 = require(\"@jeswr/stream-to-string\");\nconst ActorHttp_1 = require(\"./ActorHttp\");\n/**\n * Check if the http response is valid, and throw an error if not.\n * @param url The original URL that was to be updated.\n * @param httpResponse The update response.\n */\nasync function validateAndCloseHttpResponse(url, httpResponse) {\n    // Check if update was successful\n    if (httpResponse.status >= 400) {\n        // Consume the body, to avoid process to hang\n        let bodyString = 'empty response';\n        if (httpResponse.body) {\n            const responseStream = ActorHttp_1.ActorHttp.toNodeReadable(httpResponse.body);\n            bodyString = await (0, stream_to_string_1.stringify)(responseStream);\n        }\n        throw new Error(`Could not update ${url} (HTTP status ${httpResponse.status}):\\n${bodyString}`);\n    }\n    // Close response body, as we don't need it\n    await httpResponse.body?.cancel();\n}\nexports.validateAndCloseHttpResponse = validateAndCloseHttpResponse;\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHttp\"), exports);\n__exportStar(require(\"./utils\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchInitPreprocessor = void 0;\n/**\n * Overrides things for fetch requests in browsers\n */\nclass FetchInitPreprocessor {\n    async handle(init) {\n        // Browsers don't yet support passing ReadableStream as body to requests, see\n        // https://bugs.chromium.org/p/chromium/issues/detail?id=688906\n        // https://bugzilla.mozilla.org/show_bug.cgi?id=1387483\n        // As such, we convert those bodies to a plain string\n        // TODO: remove this once browser support ReadableStream in requests\n        if (init.body && typeof init.body !== 'string' && 'getReader' in init.body) {\n            const reader = init.body.getReader();\n            const chunks = [];\n            while (true) {\n                const { done, value } = await reader.read();\n                if (done) {\n                    break;\n                }\n                chunks.push(value);\n            }\n            init.body = chunks.join('');\n        }\n        // Only enable keepalive functionality if we are not sending a body (some browsers seem to trip over this)\n        return { ...init, keepalive: !init.body };\n    }\n}\nexports.FetchInitPreprocessor = FetchInitPreprocessor;\n//# sourceMappingURL=FetchInitPreprocessor-browser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHttpFetch = void 0;\nconst bus_http_1 = require(\"@comunica/bus-http\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\n// eslint-disable-next-line import/extensions\nconst package_json_1 = require(\"../package.json\");\nconst FetchInitPreprocessor_1 = require(\"./FetchInitPreprocessor\");\nclass ActorHttpFetch extends bus_http_1.ActorHttp {\n    constructor(args) {\n        super(args);\n        this.fetchInitPreprocessor = new FetchInitPreprocessor_1.FetchInitPreprocessor(args.agentOptions);\n    }\n    async test(_action) {\n        return (0, core_1.passTest)({ time: Number.POSITIVE_INFINITY });\n    }\n    async run(action) {\n        const headers = this.prepareRequestHeaders(action);\n        const init = { method: 'GET', ...action.init, headers };\n        this.logInfo(action.context, `Requesting ${bus_http_1.ActorHttp.getInputUrl(action.input).href}`, () => ({\n            headers: bus_http_1.ActorHttp.headersToHash(headers),\n            method: init.method,\n        }));\n        // TODO: remove this workaround once this has a fix: https://github.com/inrupt/solid-client-authn-js/issues/1708\n        if (action.context.has(context_entries_1.KeysHttp.fetch)) {\n            init.headers = bus_http_1.ActorHttp.headersToHash(headers);\n        }\n        if (action.context.get(context_entries_1.KeysHttp.includeCredentials)) {\n            init.credentials = 'include';\n        }\n        const httpTimeout = action.context.get(context_entries_1.KeysHttp.httpTimeout);\n        const httpBodyTimeout = action.context.get(context_entries_1.KeysHttp.httpBodyTimeout);\n        const fetchFunction = action.context.get(context_entries_1.KeysHttp.fetch) ?? fetch;\n        const requestInit = await this.fetchInitPreprocessor.handle(init);\n        let timeoutCallback;\n        let timeoutHandle;\n        if (httpTimeout) {\n            const abortController = new AbortController();\n            requestInit.signal = abortController.signal;\n            timeoutCallback = () => abortController.abort(new Error(`Fetch timed out for ${bus_http_1.ActorHttp.getInputUrl(action.input).href} after ${httpTimeout} ms`));\n            timeoutHandle = setTimeout(() => timeoutCallback(), httpTimeout);\n        }\n        const response = await fetchFunction(action.input, requestInit);\n        if (httpTimeout && (!httpBodyTimeout || !response.body)) {\n            clearTimeout(timeoutHandle);\n        }\n        return response;\n    }\n    /**\n     * Prepares the request headers, taking into account the environment.\n     * @param {IActionHttp} action The HTTP action\n     * @returns {Headers} Headers\n     */\n    prepareRequestHeaders(action) {\n        const headers = new Headers(action.init?.headers);\n        if (bus_http_1.ActorHttp.isBrowser()) {\n            // When running in a browser, the User-Agent header should never be set\n            headers.delete('user-agent');\n        }\n        else if (!headers.has('user-agent')) {\n            // Otherwise, if no header value is provided, use the actor one\n            headers.set('user-agent', ActorHttpFetch.userAgent);\n        }\n        const authString = action.context.get(context_entries_1.KeysHttp.auth);\n        if (authString) {\n            headers.set('Authorization', `Basic ${ActorHttpFetch.stringToBase64(authString)}`);\n        }\n        return headers;\n    }\n    /**\n     * Converts a string, including ones with Unicode symbols, to Base64 encoding.\n     * This function was adapted from the MDN example function here:\n     * https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem\n     * @param {string} value The string value to encode\n     * @returns {string} The Base64-encoded value\n     */\n    static stringToBase64(value) {\n        const bytes = new TextEncoder().encode(value);\n        const binString = Array.from(bytes, byte => String.fromCodePoint(byte)).join('');\n        return btoa(binString);\n    }\n}\nexports.ActorHttpFetch = ActorHttpFetch;\nActorHttpFetch.userAgent = bus_http_1.ActorHttp.createUserAgent('ActorHttpFetch', package_json_1.version);\n//# sourceMappingURL=ActorHttpFetch.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHttpFetch\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationSource = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Source Query Operation Actor.\n */\nclass ActorQueryOperationSource extends bus_query_operation_1.ActorQueryOperation {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (!(0, utils_query_operation_1.getOperationSource)(action.operation)) {\n            return (0, core_1.failTest)(`Actor ${this.name} requires an operation with source annotation.`);\n        }\n        return (0, core_1.passTest)({ httpRequests: 1 });\n    }\n    async run(action) {\n        // Log to physical plan\n        const physicalQueryPlanLogger = action.context\n            .get(context_entries_1.KeysInitQuery.physicalQueryPlanLogger);\n        if (physicalQueryPlanLogger) {\n            physicalQueryPlanLogger.logOperation(action.operation.type, undefined, action.operation, action.context.get(context_entries_1.KeysInitQuery.physicalQueryPlanNode), this.name, {});\n            action.context = action.context.set(context_entries_1.KeysInitQuery.physicalQueryPlanNode, action.operation);\n        }\n        const sourceWrapper = (0, utils_query_operation_1.getOperationSource)(action.operation);\n        const mergedContext = sourceWrapper.context ? action.context.merge(sourceWrapper.context) : action.context;\n        // Check if the operation is a CONSTRUCT query\n        // We recurse because it may be wrapped in other operations such as SLICE and FROM\n        let construct = false;\n        sparqlalgebrajs_1.Util.recurseOperation(action.operation, {\n            construct() {\n                construct = true;\n                return false;\n            },\n        });\n        // If so, delegate to queryQuads\n        if (construct) {\n            const quadStream = sourceWrapper.source.queryQuads(action.operation, mergedContext);\n            const metadata = (0, utils_metadata_1.getMetadataQuads)(quadStream);\n            return {\n                type: 'quads',\n                quadStream,\n                metadata,\n            };\n        }\n        // eslint-disable-next-line ts/switch-exhaustiveness-check\n        switch (action.operation.type) {\n            case sparqlalgebrajs_1.Algebra.types.ASK:\n                return {\n                    type: 'boolean',\n                    execute: () => sourceWrapper.source.queryBoolean(action.operation, mergedContext),\n                };\n            case sparqlalgebrajs_1.Algebra.types.COMPOSITE_UPDATE:\n            case sparqlalgebrajs_1.Algebra.types.DELETE_INSERT:\n            case sparqlalgebrajs_1.Algebra.types.LOAD:\n            case sparqlalgebrajs_1.Algebra.types.CLEAR:\n            case sparqlalgebrajs_1.Algebra.types.CREATE:\n            case sparqlalgebrajs_1.Algebra.types.DROP:\n            case sparqlalgebrajs_1.Algebra.types.ADD:\n            case sparqlalgebrajs_1.Algebra.types.MOVE:\n            case sparqlalgebrajs_1.Algebra.types.COPY:\n                return {\n                    type: 'void',\n                    execute: () => sourceWrapper.source.queryVoid(action.operation, mergedContext),\n                };\n        }\n        const bindingsStream = sourceWrapper.source.queryBindings(action.operation, mergedContext);\n        const metadata = (0, utils_metadata_1.getMetadataBindings)(bindingsStream);\n        return {\n            type: 'bindings',\n            bindingsStream,\n            metadata,\n        };\n    }\n}\nexports.ActorQueryOperationSource = ActorQueryOperationSource;\n//# sourceMappingURL=ActorQueryOperationSource.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationSource\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediatorJoinCoefficientsFixed = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A mediator that mediates over actors implementing the Join Coefficients mediator type and assigns fixed weights\n * to calculate an overall score and pick the actor with the lowest score.\n */\nclass MediatorJoinCoefficientsFixed extends core_1.Mediator {\n    constructor(args) {\n        super(args);\n    }\n    async mediateWith(action, testResults) {\n        // Obtain test results\n        const errors = [];\n        const promises = testResults.map(({ reply }) => reply);\n        const results = (await Promise.all(promises)).map((testResult) => {\n            if (testResult.isFailed()) {\n                errors.push(testResult.getFailMessage());\n                // eslint-disable-next-line array-callback-return\n                return;\n            }\n            return { value: testResult.get(), sideData: testResult.getSideData() };\n        });\n        // Calculate costs\n        let costs = results\n            // eslint-disable-next-line array-callback-return\n            .map((result) => {\n            if (result) {\n                return result.value.iterations * this.cpuWeight +\n                    result.value.persistedItems * this.memoryWeight +\n                    result.value.blockingItems * this.timeWeight +\n                    result.value.requestTime * this.ioWeight;\n            }\n        });\n        const maxCost = Math.max(...costs.filter(cost => cost !== undefined));\n        // If we have a limit indicator in the context,\n        // increase cost of entries that have a number of iterations that is higher than the limit AND block items.\n        // In these cases, join operators that produce results early on will be preferred.\n        const limitIndicator = action.context.get(context_entries_1.KeysQueryOperation.limitIndicator);\n        if (limitIndicator) {\n            costs = costs.map((cost, i) => {\n                if (cost !== undefined && (results[i]?.value).blockingItems > 0 &&\n                    (results[i]?.value).iterations > limitIndicator) {\n                    return cost + maxCost;\n                }\n                return cost;\n            });\n        }\n        // Determine index with lowest cost\n        let minIndex = -1;\n        let minValue = Number.POSITIVE_INFINITY;\n        for (const [i, cost] of costs.entries()) {\n            if (cost !== undefined && (minIndex === -1 || cost < minValue)) {\n                minIndex = i;\n                minValue = cost;\n            }\n        }\n        // Reject if all actors rejected\n        if (minIndex < 0) {\n            return (0, core_1.failTest)(this.constructFailureMessage(action, errors));\n        }\n        // Return actor with lowest cost\n        const bestActor = testResults[minIndex].actor;\n        // Emit calculations in logger\n        if (bestActor.includeInLogs) {\n            core_1.Actor.getContextLogger(action.context)?.debug(`Determined physical join operator '${bestActor.logicalType}-${bestActor.physicalName}'`, {\n                entries: action.entries.length,\n                variables: await Promise.all(action.entries\n                    .map(async (entry) => (await entry.output.metadata()).variables.map(variable => variable.variable.value))),\n                costs: Object.fromEntries(costs.map((coeff, i) => [\n                    `${testResults[i].actor.logicalType}-${testResults[i].actor.physicalName}`,\n                    coeff,\n                ]).filter(entry => entry[1] !== undefined)),\n                coefficients: Object.fromEntries(results.map((result, i) => [\n                    `${testResults[i].actor.logicalType}-${testResults[i].actor.physicalName}`,\n                    result?.value,\n                ]).filter(entry => entry[1] !== undefined)),\n            });\n        }\n        return (0, core_1.passTestWithSideData)(bestActor, results[minIndex].sideData);\n    }\n}\nexports.MediatorJoinCoefficientsFixed = MediatorJoinCoefficientsFixed;\n//# sourceMappingURL=MediatorJoinCoefficientsFixed.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MediatorJoinCoefficientsFixed\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHttpInvalidate = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for http-invalidate events.\n *\n * Actor types:\n * * Input:  IActionHttpInvalidate:      An action for invalidating the cached contents of given URL.\n * * Test:   <none>\n * * Output: IActorHttpInvalidateOutput: An empty response.\n *\n * @see IActionHttpInvalidate\n * @see IActorHttpInvalidateOutput\n */\nclass ActorHttpInvalidate extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {HTTP invalidation failed: none of the configured actors were able to invalidate ${action.url}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorHttpInvalidate = ActorHttpInvalidate;\n//# sourceMappingURL=ActorHttpInvalidate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHttpInvalidateListenable = void 0;\nconst core_1 = require(\"@comunica/core\");\nconst ActorHttpInvalidate_1 = require(\"./ActorHttpInvalidate\");\n/**\n * An ActorHttpInvalidate actor that allows listeners to be attached.\n *\n * @see ActorHttpInvalidate\n */\nclass ActorHttpInvalidateListenable extends ActorHttpInvalidate_1.ActorHttpInvalidate {\n    constructor(args) {\n        super(args);\n        this.invalidateListeners = [];\n        this.invalidateListeners = [];\n    }\n    addInvalidateListener(listener) {\n        this.invalidateListeners.push(listener);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        for (const listener of this.invalidateListeners) {\n            listener(action);\n        }\n        return {};\n    }\n}\nexports.ActorHttpInvalidateListenable = ActorHttpInvalidateListenable;\n//# sourceMappingURL=ActorHttpInvalidateListenable.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHttpInvalidate\"), exports);\n__exportStar(require(\"./ActorHttpInvalidateListenable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediatorAll = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica mediator that runs all actors that resolve their test.\n * This mediator will always resolve to the first actor's output.\n */\nclass MediatorAll extends core_1.Mediator {\n    constructor(args) {\n        super(args);\n    }\n    async mediate(action) {\n        // Collect all actors that resolve their test\n        const passedResults = [];\n        let testResults;\n        try {\n            testResults = this.publish(action);\n        }\n        catch {\n            testResults = [];\n        }\n        for (const testResult of testResults) {\n            const reply = await testResult.reply;\n            if (reply.isPassed()) {\n                passedResults.push({ actor: testResult.actor, sideData: reply.getSideData() });\n            }\n        }\n        // Send action to all valid actors\n        const outputs = await Promise.all(passedResults.map(result => result.actor.runObservable(action, result.sideData)));\n        return outputs[0];\n    }\n    async mediateWith() {\n        throw new Error('Unsupported operation: MediatorAll#mediateWith');\n    }\n}\nexports.MediatorAll = MediatorAll;\n//# sourceMappingURL=MediatorAll.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MediatorAll\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinEntriesSortSelectivity = void 0;\nconst bus_rdf_join_entries_sort_1 = require(\"@comunica/bus-rdf-join-entries-sort\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Selectivity RDF Join Entries Sort Actor.\n */\nclass ActorRdfJoinEntriesSortSelectivity extends bus_rdf_join_entries_sort_1.ActorRdfJoinEntriesSort {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTest)({ accuracy: 0.501 });\n    }\n    async run(action) {\n        const remainingEntries = [...action.entries];\n        const finalEntries = [];\n        while (remainingEntries.length > 0) {\n            let minSelectivity = Number.MAX_VALUE;\n            let minEntryIndex = -1;\n            for (const [remainingEntryIndex, remainingEntry] of remainingEntries.entries()) {\n                const { selectivity } = await this.mediatorJoinSelectivity.mediate({\n                    entries: [remainingEntry, ...finalEntries],\n                    context: action.context,\n                });\n                if (selectivity < minSelectivity) {\n                    minSelectivity = selectivity;\n                    minEntryIndex = remainingEntryIndex;\n                }\n            }\n            finalEntries.push(remainingEntries[minEntryIndex]);\n            remainingEntries.splice(minEntryIndex, 1);\n        }\n        return { entries: finalEntries };\n    }\n}\nexports.ActorRdfJoinEntriesSortSelectivity = ActorRdfJoinEntriesSortSelectivity;\n//# sourceMappingURL=ActorRdfJoinEntriesSortSelectivity.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinEntriesSortSelectivity\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChunkedIterator = void 0;\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * Splits an iterator into chunks based on a given block size.\n */\nclass ChunkedIterator extends asynciterator_1.TransformIterator {\n    constructor(source, blockSize, options) {\n        super(source, options);\n        this.chunk = [];\n        this.blockSize = blockSize;\n    }\n    consumeChunkAsIterator() {\n        const it = new asynciterator_1.ArrayIterator(this.chunk, { autoStart: false });\n        this.chunk = [];\n        return it;\n    }\n    _transform(item, done, push) {\n        this.chunk.push(item);\n        if (this.chunk.length >= this.blockSize) {\n            push(this.consumeChunkAsIterator());\n        }\n        done();\n    }\n    _flush(done) {\n        if (this.chunk.length > 0) {\n            this._push(this.consumeChunkAsIterator());\n        }\n        super._flush(done);\n    }\n}\nexports.ChunkedIterator = ChunkedIterator;\n//# sourceMappingURL=ChunkedIterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClosableIterator = void 0;\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * An AsyncIterator with a callback for when this iterator is closed in any way.\n * In contrast to ClosableTransformIterator, this does not add the overhead of a TransformIterator.\n */\nclass ClosableIterator extends asynciterator_1.AsyncIterator {\n    constructor(source, options) {\n        super();\n        this.onClose = options.onClose;\n        this._source = source;\n        // Wire up the source for reading\n        this._source[asynciterator_1.DESTINATION] = this;\n        this._source.on('end', destinationClose);\n        this._source.on('error', destinationEmitError);\n        this._source.on('readable', destinationSetReadable);\n        this.readable = this._source.readable;\n    }\n    read() {\n        const ret = this._source.read();\n        if (!ret) {\n            // Mark as non-readable if ret was null\n            this.readable = false;\n            // Close this iterator if the source is empty\n            if (this._source.done) {\n                this.close();\n            }\n        }\n        return ret;\n    }\n    _end(destroy) {\n        this.onClose();\n        this._source.removeListener('end', destinationClose);\n        this._source.removeListener('error', destinationEmitError);\n        this._source.removeListener('readable', destinationSetReadable);\n        delete this._source[asynciterator_1.DESTINATION];\n        this._source.destroy();\n        super._end(destroy);\n    }\n}\nexports.ClosableIterator = ClosableIterator;\n// Helpers below are copied from AsyncIterator, as they are not exported from there.\nfunction destinationSetReadable() {\n    this[asynciterator_1.DESTINATION].readable = true;\n}\nfunction destinationEmitError(error) {\n    this[asynciterator_1.DESTINATION].emit('error', error);\n}\nfunction destinationClose() {\n    this[asynciterator_1.DESTINATION].close();\n}\n//# sourceMappingURL=ClosableIterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClosableTransformIterator = void 0;\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * A TransformIterator with a callback for when this iterator is closed in any way.\n */\nclass ClosableTransformIterator extends asynciterator_1.TransformIterator {\n    constructor(source, options) {\n        super(source, options);\n        this.onClose = options.onClose;\n    }\n    _end(destroy) {\n        this.onClose();\n        super._end(destroy);\n    }\n}\nexports.ClosableTransformIterator = ClosableTransformIterator;\n//# sourceMappingURL=ClosableTransformIterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.instrumentIterator = void 0;\n/**\n * Profile an iterator by monkey-patching its `_read` and `read` methods.\n * @param iterator\n */\nfunction instrumentIterator(iterator) {\n    const counters = {\n        count: 0,\n        timeSelf: 0,\n        timeLife: 0,\n    };\n    instrumentIteratorInner(iterator, counters, true);\n    return new Promise((resolve) => {\n        iterator.on('end', () => {\n            resolve(counters);\n        });\n    });\n}\nexports.instrumentIterator = instrumentIterator;\nfunction instrumentIteratorInner(iterator, counter, top) {\n    if (!('_profileInstrumented' in iterator)) {\n        // Only patch an iterator once.\n        iterator._profileInstrumented = true;\n        // Patch _read\n        if ('_read' in iterator) {\n            const readOld = iterator._read;\n            iterator._read = (count, done) => {\n                const startTime = performance.now();\n                readOld.call(iterator, count, () => {\n                    counter.timeSelf += performance.now() - startTime;\n                    done();\n                });\n            };\n        }\n        // Patch read\n        if ('read' in iterator) {\n            // eslint-disable-next-line ts/unbound-method\n            const readOld = iterator.read;\n            iterator.read = () => {\n                const startTime = performance.now();\n                const ret = readOld.call(iterator);\n                if (top && ret) {\n                    counter.count++;\n                }\n                counter.timeSelf += performance.now() - startTime;\n                return ret;\n            };\n        }\n        // Measure total time\n        if (top) {\n            const startTime = performance.now();\n            iterator.on('end', () => {\n                counter.timeLife = performance.now() - startTime;\n            });\n        }\n        // Also patch children\n        if ('_source' in iterator) {\n            instrumentIteratorInner(iterator._source, counter, false);\n        }\n    }\n}\n//# sourceMappingURL=instrumentIterator.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ChunkedIterator\"), exports);\n__exportStar(require(\"./ClosableIterator\"), exports);\n__exportStar(require(\"./ClosableTransformIterator\"), exports);\n__exportStar(require(\"./instrumentIterator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoin = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_iterator_1 = require(\"@comunica/utils-iterator\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\n/**\n * A comunica actor for joining 2 binding streams.\n *\n * Actor types:\n * * Input:  IActionRdfJoin:                The streams that need to be joined.\n * * Test:   IMediatorTypeJoinCoefficients: Join coefficients.\n * * Output: IActorRdfJoinOutput:           The resulting joined stream.\n *\n * @see IActionRdfJoin\n * @see IActorQueryOperationOutput\n */\nclass ActorRdfJoin extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {RDF joining failed: none of the configured actors were able to handle the join type ${action.type}} busFailMessage\n     * @param options - Actor-specific join options.\n     */\n    /* eslint-enable max-len */\n    constructor(args, options) {\n        super(args);\n        /**\n         * If this actor will be logged in the debugger and physical query plan logger\n         */\n        this.includeInLogs = true;\n        this.logicalType = options.logicalType;\n        this.physicalName = options.physicalName;\n        this.limitEntries = options.limitEntries ?? Number.POSITIVE_INFINITY;\n        this.limitEntriesMin = options.limitEntriesMin ?? false;\n        this.canHandleUndefs = options.canHandleUndefs ?? false;\n        this.isLeaf = options.isLeaf ?? true;\n        this.requiresVariableOverlap = options.requiresVariableOverlap ?? false;\n    }\n    /**\n     * Returns an array containing all the variable names that occur in all bindings streams.\n     * @param {MetadataBindings[]} metadatas An array of optional metadata objects for the entries.\n     * @returns {RDF.Variable[]} An array of variables.\n     */\n    static overlappingVariables(metadatas) {\n        const variablesIndexed = {};\n        for (const metadata of metadatas) {\n            for (const variable of metadata.variables) {\n                if (!variablesIndexed[variable.variable.value]) {\n                    variablesIndexed[variable.variable.value] = {\n                        variable: variable.variable,\n                        canBeUndef: variable.canBeUndef,\n                        occurrences: 0,\n                    };\n                }\n                const entry = variablesIndexed[variable.variable.value];\n                entry.canBeUndef = entry.canBeUndef || variable.canBeUndef;\n                entry.occurrences++;\n            }\n        }\n        return Object.values(variablesIndexed)\n            .filter(entry => entry.occurrences === metadatas.length)\n            .map(entry => ({ variable: entry.variable, canBeUndef: entry.canBeUndef }));\n    }\n    /**\n     * Returns the variables that will occur in the joined bindings.\n     * @param dataFactory The data factory.\n     * @param {MetadataBindings[]} metadatas An array of metadata objects for the entries.\n     * @param optional If an optional join is being performed.\n     * @returns {RDF.Variable[]} An array of joined variables.\n     */\n    static joinVariables(dataFactory, metadatas, optional = false) {\n        const variablesIndexed = {};\n        let first = true;\n        for (const metadata of metadatas) {\n            for (const variable of metadata.variables) {\n                variablesIndexed[variable.variable.value] = variablesIndexed[variable.variable.value] || variable.canBeUndef ||\n                    (!first && optional && !(variable.variable.value in variablesIndexed));\n            }\n            first = false;\n        }\n        return Object.entries(variablesIndexed)\n            .map(([variableLabel, canBeUndef]) => ({ variable: dataFactory.variable(variableLabel), canBeUndef }));\n    }\n    /**\n     * Returns the result of joining bindings, or `null` if no join is possible.\n     * @param {Bindings[]} bindings\n     * @returns {Bindings}\n     */\n    static joinBindings(...bindings) {\n        if (bindings.length === 0) {\n            return null;\n        }\n        if (bindings.length === 1) {\n            return bindings[0];\n        }\n        let acc = bindings[0];\n        for (const binding of bindings.slice(1)) {\n            const merged = acc.merge(binding);\n            if (!merged) {\n                return null;\n            }\n            acc = merged;\n        }\n        return acc;\n    }\n    /**\n     * Get the estimated number of items from the given metadata.\n     * @param {Record<string, any>} metadata A metadata object.\n     * @return {number} The estimated number of items, or `Infinity` if cardinality is falsy.\n     */\n    static getCardinality(metadata) {\n        return metadata.cardinality;\n    }\n    /**\n     * Obtain the metadata from all given join entries.\n     * @param entries Join entries.\n     */\n    static async getMetadatas(entries) {\n        return await Promise.all(entries.map(entry => entry.output.metadata()));\n    }\n    /**\n     * Obtain the join entries witt metadata from all given join entries.\n     * @param entries Join entries.\n     */\n    static async getEntriesWithMetadatas(entries) {\n        const metadatas = await ActorRdfJoin.getMetadatas(entries);\n        return entries.map((entry, i) => ({ ...entry, metadata: metadatas[i] }));\n    }\n    /**\n     * Calculate the time to initiate a request for the given metadata entries.\n     * @param metadatas An array of checked metadata.\n     */\n    static getRequestInitialTimes(metadatas) {\n        return metadatas.map(metadata => metadata.pageSize ? 0 : metadata.requestTime ?? 0);\n    }\n    /**\n     * Calculate the time to receive a single item for the given metadata entries.\n     * @param metadatas An array of checked metadata.\n     */\n    static getRequestItemTimes(metadatas) {\n        return metadatas\n            .map(metadata => metadata.pageSize ? (metadata.requestTime ?? 0) / metadata.pageSize : 0);\n    }\n    /**\n     * Construct a metadata validation state for the given metadata entries.\n     * @param metadatas An array of checked metadata.\n     */\n    constructState(metadatas) {\n        // Propagate metadata invalidations\n        const state = new utils_metadata_1.MetadataValidationState();\n        const invalidateListener = () => state.invalidate();\n        for (const metadata of metadatas) {\n            metadata.state.addInvalidateListener(invalidateListener);\n        }\n        return state;\n    }\n    /**\n     * Helper function to create a new metadata object for the join result.\n     * For required metadata entries that are not provided, sane defaults are calculated.\n     * @param entries Join entries.\n     * @param metadatas Metadata of the join entries.\n     * @param context The action context.\n     * @param partialMetadata Partial metadata entries.\n     * @param optional If metadata for an optional operation must be calculated.\n     */\n    async constructResultMetadata(entries, metadatas, context, partialMetadata = {}, optional = false) {\n        let cardinalityJoined;\n        if (partialMetadata.cardinality) {\n            cardinalityJoined = partialMetadata.cardinality;\n        }\n        else {\n            let hasZeroCardinality = false;\n            cardinalityJoined = metadatas\n                .reduce((acc, metadata) => {\n                const cardinalityThis = ActorRdfJoin.getCardinality(metadata);\n                if (cardinalityThis.value === 0) {\n                    hasZeroCardinality = true;\n                }\n                return {\n                    type: cardinalityThis.type === 'estimate' ? 'estimate' : acc.type,\n                    value: acc.value * (optional ? Math.max(1, cardinalityThis.value) : cardinalityThis.value),\n                };\n            }, { type: 'exact', value: 1 });\n            // The cardinality should only be zero if one of the entries has zero cardinality, not due to float overflow\n            if (!hasZeroCardinality || optional) {\n                cardinalityJoined.value *= (await this.mediatorJoinSelectivity.mediate({ entries, context })).selectivity;\n                if (cardinalityJoined.value === 0) {\n                    cardinalityJoined.value = Number.MIN_VALUE;\n                }\n            }\n        }\n        return {\n            state: this.constructState(metadatas),\n            ...partialMetadata,\n            cardinality: {\n                type: cardinalityJoined.type,\n                value: cardinalityJoined.value,\n            },\n            variables: ActorRdfJoin.joinVariables(context.getSafe(context_entries_1.KeysInitQuery.dataFactory), metadatas, optional),\n        };\n    }\n    /**\n     * Order the given join entries using the join-entries-sort bus.\n     * @param {MediatorRdfJoinEntriesSort} mediatorJoinEntriesSort A mediator for sorting join entries.\n     * @param {IJoinEntryWithMetadata[]} entries An array of join entries.\n     * @param context The action context.\n     * @return {IJoinEntryWithMetadata[]} The sorted join entries.\n     */\n    static async sortJoinEntries(mediatorJoinEntriesSort, entries, context) {\n        // If there is a stream that can contain undefs, we don't modify the join order.\n        const hasUndefVars = entries.some(entry => entry.metadata.variables.some(variable => variable.canBeUndef));\n        if (hasUndefVars) {\n            return (0, core_1.passTest)(entries);\n        }\n        // Calculate number of occurrences of each variable\n        const variableOccurrences = {};\n        for (const entry of entries) {\n            for (const variable of entry.metadata.variables) {\n                let counter = variableOccurrences[variable.variable.value];\n                if (!counter) {\n                    counter = 0;\n                }\n                variableOccurrences[variable.variable.value] = ++counter;\n            }\n        }\n        // Determine variables that occur in at least two join entries\n        const multiOccurrenceVariables = [];\n        for (const [variable, count] of Object.entries(variableOccurrences)) {\n            if (count >= 2) {\n                multiOccurrenceVariables.push(variable);\n            }\n        }\n        // Reject if no entries have common variables\n        if (multiOccurrenceVariables.length === 0) {\n            return (0, core_1.failTest)(`Bind join can only join entries with at least one common variable`);\n        }\n        return (0, core_1.passTest)((await mediatorJoinEntriesSort.mediate({ entries, context })).entries);\n    }\n    /**\n     * Default test function for join actors.\n     * Checks whether all iterators have metadata.\n     * If yes: call the abstract getIterations method, if not: return Infinity.\n     * @param {IActionRdfJoin} action The input action containing the relevant iterators\n     * @returns {Promise<IMediatorTypeJoinCoefficients>} The join coefficients.\n     */\n    async test(action) {\n        // Validate logical join type\n        if (action.type !== this.logicalType) {\n            return (0, core_1.failTest)(`${this.name} can only handle logical joins of type '${this.logicalType}', while '${action.type}' was given.`);\n        }\n        // Don't allow joining of one or zero streams\n        if (action.entries.length <= 1) {\n            return (0, core_1.failTest)(`${this.name} requires at least two join entries.`);\n        }\n        // Check if this actor can handle the given number of streams\n        if (this.limitEntriesMin ? action.entries.length < this.limitEntries : action.entries.length > this.limitEntries) {\n            return (0, core_1.failTest)(`${this.name} requires ${this.limitEntries} join entries at ${this.limitEntriesMin ? 'least' : 'most'}. The input contained ${action.entries.length}.`);\n        }\n        // Check if all streams are bindings streams\n        for (const entry of action.entries) {\n            if (entry.output.type !== 'bindings') {\n                // eslint-disable-next-line ts/restrict-template-expressions\n                return (0, core_1.failTest)(`Invalid type of a join entry: Expected 'bindings' but got '${entry.output.type}'`);\n            }\n        }\n        const metadatas = await ActorRdfJoin.getMetadatas(action.entries);\n        // Check if this actor can handle undefs (for overlapping variables)\n        let overlappingVariables;\n        if (!this.canHandleUndefs) {\n            overlappingVariables = ActorRdfJoin.overlappingVariables(metadatas);\n            if (overlappingVariables.some(variable => variable.canBeUndef)) {\n                return (0, core_1.failTest)(`Actor ${this.name} can not join streams containing undefs`);\n            }\n        }\n        // This actor only works with common variables\n        if (this.requiresVariableOverlap &&\n            (overlappingVariables ?? ActorRdfJoin.overlappingVariables(metadatas)).length === 0) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only join entries with at least one common variable`);\n        }\n        return await this.getJoinCoefficients(action, { metadatas });\n    }\n    /**\n     * Returns default input for 0 or 1 entries. Calls the getOutput function otherwise\n     * @param {IActionRdfJoin} action\n     * @param sideData Side data from the test method\n     * @returns {Promise<IQueryOperationResultBindings>} A bindings result.\n     */\n    async run(action, sideData) {\n        // Prepare logging to physical plan\n        // This must be called before getOutput, because we need to override the plan node in the context\n        let parentPhysicalQueryPlanNode;\n        if (action.context.has(context_entries_1.KeysInitQuery.physicalQueryPlanLogger)) {\n            parentPhysicalQueryPlanNode = action.context.get(context_entries_1.KeysInitQuery.physicalQueryPlanNode);\n            action.context = action.context.set(context_entries_1.KeysInitQuery.physicalQueryPlanNode, action);\n        }\n        // Log to physical plan\n        const physicalQueryPlanLogger = action.context.get(context_entries_1.KeysInitQuery\n            .physicalQueryPlanLogger);\n        let planMetadata;\n        if (this.includeInLogs && physicalQueryPlanLogger) {\n            planMetadata = {};\n            // Stash non-join children, as they will be unstashed later in sub-joins.\n            physicalQueryPlanLogger.stashChildren(parentPhysicalQueryPlanNode, node => node.logicalOperator.startsWith('join'));\n            physicalQueryPlanLogger.logOperation(`join-${this.logicalType}`, this.physicalName, action, parentPhysicalQueryPlanNode, this.name, planMetadata);\n        }\n        // Get action output\n        const { result, physicalPlanMetadata } = await this.getOutput(action, sideData);\n        // Fill in the physical plan metadata after determining action output\n        if (planMetadata) {\n            // eslint-disable-next-line ts/no-floating-promises\n            (0, utils_iterator_1.instrumentIterator)(result.bindingsStream)\n                .then((counters) => {\n                physicalQueryPlanLogger.appendMetadata(action, {\n                    cardinalityReal: counters.count,\n                    timeSelf: counters.timeSelf,\n                    timeLife: counters.timeLife,\n                });\n            });\n            Object.assign(planMetadata, physicalPlanMetadata);\n            const cardinalities = sideData.metadatas.map(ActorRdfJoin.getCardinality);\n            planMetadata.cardinalities = cardinalities;\n            planMetadata.joinCoefficients = (await this.getJoinCoefficients(action, sideData)).getOrThrow();\n            // If this is a leaf operation, include join entries in plan metadata.\n            if (this.isLeaf) {\n                for (let i = 0; i < action.entries.length; i++) {\n                    const entry = action.entries[i];\n                    physicalQueryPlanLogger.unstashChild(entry.operation, action);\n                    physicalQueryPlanLogger.appendMetadata(entry.operation, { cardinality: cardinalities[i] });\n                }\n            }\n        }\n        // Cache metadata\n        result.metadata = (0, utils_metadata_1.cachifyMetadata)(result.metadata);\n        return result;\n    }\n}\nexports.ActorRdfJoin = ActorRdfJoin;\n//# sourceMappingURL=ActorRdfJoin.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoin\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinSingle = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Single RDF Join Actor.\n */\nclass ActorRdfJoinSingle extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'inner',\n            physicalName: 'single',\n            limitEntries: 1,\n        });\n        this.includeInLogs = false;\n    }\n    async test(action) {\n        // Allow joining of one or zero streams\n        if (action.entries.length !== 1) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only join a single entry`);\n        }\n        return await this.getJoinCoefficients(action, undefined);\n    }\n    async getOutput(action) {\n        return {\n            result: action.entries[0].output,\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        return (0, core_1.passTestWithSideData)({\n            iterations: 0,\n            persistedItems: 0,\n            blockingItems: 0,\n            requestTime: 0,\n        }, sideData);\n    }\n}\nexports.ActorRdfJoinSingle = ActorRdfJoinSingle;\n//# sourceMappingURL=ActorRdfJoinSingle.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinSingle\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinMultiEmpty = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * A comunica Multi Empty RDF Join Actor.\n */\nclass ActorRdfJoinMultiEmpty extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'inner',\n            physicalName: 'multi-empty',\n            canHandleUndefs: true,\n        });\n    }\n    async test(action) {\n        if ((await bus_rdf_join_1.ActorRdfJoin.getMetadatas(action.entries))\n            .every(metadata => bus_rdf_join_1.ActorRdfJoin.getCardinality(metadata).value > 0)) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only join entries where at least one is empty`);\n        }\n        return super.test(action);\n    }\n    async getOutput(action) {\n        // Close all entries\n        for (const entry of action.entries) {\n            entry.output.bindingsStream.close();\n        }\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        return {\n            result: {\n                bindingsStream: new asynciterator_1.ArrayIterator([], { autoStart: false }),\n                metadata: async () => ({\n                    state: new utils_metadata_1.MetadataValidationState(),\n                    cardinality: { type: 'exact', value: 0 },\n                    variables: bus_rdf_join_1.ActorRdfJoin.joinVariables(dataFactory, await bus_rdf_join_1.ActorRdfJoin.getMetadatas(action.entries)),\n                }),\n                type: 'bindings',\n            },\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        return (0, core_1.passTestWithSideData)({\n            iterations: 0,\n            persistedItems: 0,\n            blockingItems: 0,\n            requestTime: 0,\n        }, sideData);\n    }\n}\nexports.ActorRdfJoinMultiEmpty = ActorRdfJoinMultiEmpty;\n//# sourceMappingURL=ActorRdfJoinMultiEmpty.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinMultiEmpty\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BindingsIndexDef = void 0;\n/**\n * A simple efficient hash-based index for maintaining bindings,\n * and checking whether or not a bindings is contained in this index.\n *\n * This can not handle bindings with undefined values.\n */\nclass BindingsIndexDef {\n    constructor(keys, hashFn) {\n        this.keys = keys.map(v => v.variable);\n        this.hashFn = hashFn;\n        this.index = {};\n    }\n    put(bindings, value) {\n        return this.index[this.hashFn(bindings, this.keys)] = value;\n    }\n    get(bindings) {\n        const v = this.getFirst(bindings);\n        return v ? [v] : [];\n    }\n    getFirst(bindings) {\n        return this.index[this.hashFn(bindings, this.keys)];\n    }\n    values() {\n        return Object.values(this.index);\n    }\n}\nexports.BindingsIndexDef = BindingsIndexDef;\n//# sourceMappingURL=BindingsIndexDef.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BindingsIndexUndef = void 0;\n/**\n * A simple efficient tree-based index for maintaining bindings,\n * and checking whether or not a bindings is contained in this index.\n *\n * This will consider bindings with a variable term or an undefined term\n * as a 'match-all' with other terms.\n */\nclass BindingsIndexUndef {\n    constructor(keys, hashFn, allowDisjointDomains) {\n        this.data = {};\n        this.keys = keys.map(v => v.variable);\n        this.hashFn = hashFn;\n        this.allowDisjointDomains = allowDisjointDomains && this.keys.length > 0;\n    }\n    /**\n     * Add the given bindings to the index.\n     * @param {Bindings} bindings A bindings.\n     * @param {V} value The value to put.\n     */\n    put(bindings, value) {\n        if (this.allowDisjointDomains || this.isBindingsValid(bindings)) {\n            let dataIt = this.data;\n            for (let i = 0; i < this.keys.length; i++) {\n                const key = this.keys[i];\n                const dataKey = this.hashFn(bindings.get(key));\n                let subDataIt = dataIt[dataKey];\n                if (!subDataIt) {\n                    subDataIt = dataIt[dataKey] = i === this.keys.length - 1 ? value : {};\n                }\n                dataIt = subDataIt;\n            }\n        }\n        return value;\n    }\n    isBindingsValid(bindings) {\n        let validKeys = false;\n        for (const key of this.keys) {\n            if (bindings.has(key)) {\n                validKeys = true;\n                break;\n            }\n        }\n        return validKeys;\n    }\n    /**\n     * Get the value of the given bindings is contained in this index.\n     * @param {Bindings} bindings A bindings.\n     * @return {V[]} The values.\n     */\n    get(bindings) {\n        // Always return empty if the bindings contain none of the expected keys\n        if (!(this.allowDisjointDomains || this.isBindingsValid(bindings))) {\n            return [];\n        }\n        return this.getRecursive(bindings, this.keys, [this.data]);\n    }\n    getRecursive(bindings, keys, dataIndexes) {\n        if (keys.length === 0) {\n            return dataIndexes;\n        }\n        let key;\n        // eslint-disable-next-line prefer-const\n        [key, ...keys] = keys;\n        const matchingRecursive = [];\n        for (const data of dataIndexes) {\n            // If the index contained a variable, all terms will match.\n            const dataKey = this.hashFn(bindings?.get(key));\n            if (dataKey) {\n                // Check the entry for the term, and the variable term.\n                const subDatas = [data[dataKey], data['']].filter(Boolean);\n                if (subDatas.length === 0) {\n                    continue;\n                }\n                matchingRecursive.push(this.getRecursive(bindings, keys, subDatas));\n            }\n            else {\n                // Iterate over all entries\n                const subDatas = Object.values(data);\n                if (subDatas.length === 0) {\n                    continue;\n                }\n                matchingRecursive.push(this.getRecursive(bindings, keys, subDatas));\n            }\n        }\n        return matchingRecursive.flat();\n    }\n    /**\n     * Get the first value of the given bindings is contained in this index.\n     * @param {Bindings} bindings A bindings.\n     * @param matchUndefsAsWildcard If undefs in the given bindings should match with any existing values.\n     *                              Otherwise, undefs will only match values that were inserted as undefs.\n     * @return {V | undefined} The value.\n     */\n    getFirst(bindings, matchUndefsAsWildcard = true) {\n        // Always return undefined if the bindings contain none of the expected keys\n        if (!(this.allowDisjointDomains || this.isBindingsValid(bindings))) {\n            return undefined;\n        }\n        return this.getRecursiveFirst(bindings, this.keys, [this.data], matchUndefsAsWildcard);\n    }\n    getRecursiveFirst(bindings, keys, dataIndexes, matchUndefsAsWildcard) {\n        if (keys.length === 0) {\n            return dataIndexes[0];\n        }\n        let key;\n        // eslint-disable-next-line prefer-const\n        [key, ...keys] = keys;\n        for (const data of dataIndexes) {\n            // If the index contained a variable, all terms will match.\n            const dataKey = this.hashFn(bindings.get(key));\n            if (dataKey || !matchUndefsAsWildcard) {\n                // Check the entry for the term, and the variable term.\n                const subDatas = [data[dataKey], data['']].filter(Boolean);\n                if (subDatas.length === 0) {\n                    continue;\n                }\n                const ret = this.getRecursiveFirst(bindings, keys, subDatas, matchUndefsAsWildcard);\n                if (ret) {\n                    return ret;\n                }\n            }\n            else {\n                // Iterate over all entries\n                const subDatas = Object.values(data);\n                if (subDatas.length === 0) {\n                    continue;\n                }\n                const ret = this.getRecursiveFirst(bindings, keys, subDatas, matchUndefsAsWildcard);\n                if (ret) {\n                    return ret;\n                }\n            }\n        }\n        return undefined;\n    }\n    values() {\n        return this.keys.length === 0 ? [] : this.getRecursive(undefined, this.keys, [this.data]);\n    }\n}\nexports.BindingsIndexUndef = BindingsIndexUndef;\n//# sourceMappingURL=BindingsIndexUndef.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IBindingsIndex.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./BindingsIndexDef\"), exports);\n__exportStar(require(\"./BindingsIndexUndef\"), exports);\n__exportStar(require(\"./IBindingsIndex\"), exports);\n//# sourceMappingURL=index.js.map","\nlet AsyncIterator = require('asynciterator');\nlet MultiTransformIterator = AsyncIterator.MultiTransformIterator;\nlet SimpleTransformIterator = AsyncIterator.SimpleTransformIterator;\n\n// Nested Loop Join, but the values of the inner loop are determined by each value of the outer loop, possibly reducing the number of necessary checks\nclass DynamicNestedLoopJoin extends MultiTransformIterator\n{\n    constructor (left, funRight, funJoin, options)\n    {\n        super(left, options);\n\n        this.funRight = funRight;\n        this.funJoin = funJoin;\n    }\n\n    _createTransformer (leftItem)\n    {\n        return new SimpleTransformIterator(this.funRight(leftItem), { transform: (rightItem, done, push) =>\n        {\n            let result = this.funJoin(leftItem, rightItem);\n            if (result !== null)\n                push(result);\n            done();\n        }});\n    }\n}\n\nmodule.exports = DynamicNestedLoopJoin;\n","\nlet AsyncIterator = require('asynciterator').AsyncIterator;\n\n// https://en.wikipedia.org/wiki/Hash_join\nclass HashJoin extends AsyncIterator\n{\n    constructor (left, right, funHash, funJoin)\n    {\n        super();\n\n        this.addedDataListener = false;\n        this.left = left;\n        this.right = right;\n        this.funHash = funHash;\n        this.funJoin = funJoin;\n\n        this.leftMap = new Map();\n\n        this.match    = null;\n        this.matches  = [];\n        this.matchIdx = 0;\n\n        this.left.on('error', (error) => this.destroy(error));\n        this.right.on('error', (error) => this.destroy(error));\n\n        this.readable = false;\n\n        this.left.on('end', allowJoining.bind(this));\n\n        function allowJoining ()\n        {\n            this.readable = true;\n            this.right.on('readable', () => this.readable = true);\n            this.right.on('end', () => { if (!this.hasResults()) this._end(); });\n        }\n\n        this.on('newListener', (eventName) =>\n        {\n            if (eventName === 'data')\n            {\n                this._addDataListenerIfNeeded();\n            }\n        });\n        if (this.left.readable)\n            this._addDataListenerIfNeeded();\n        this.left.on('readable', () => this._addDataListenerIfNeeded());\n    }\n\n    hasResults ()\n    {\n        return !this.right.ended || this.matchIdx < this.matches.length;\n    }\n\n    _end ()\n    {\n        super._end();\n        this.left.destroy();\n        this.right.destroy();\n    }\n\n    read ()\n    {\n        this._addDataListenerIfNeeded();\n\n        while(true) {\n            if (this.ended || !this.readable)\n                return null;\n\n            while (this.matchIdx < this.matches.length)\n            {\n                let item = this.matches[this.matchIdx++];\n                let result = this.funJoin(item, this.match);\n                if (result !== null)\n                    return result;\n            }\n\n            if (!this.hasResults())\n                this._end();\n\n            this.match = this.right.read();\n\n            if (this.match === null)\n            {\n                this.readable = false;\n                return null;\n            }\n\n            let hash = this.funHash(this.match);\n            this.matches = this.leftMap.get(hash) || [];\n            this.matchIdx = 0;\n        }\n    }\n\n    _addDataListenerIfNeeded() {\n        if (!this.addedDataListener)\n        {\n            this.addedDataListener = true;\n            this._addDataListener();\n        }\n    }\n\n    _addDataListener()\n    {\n        this.left.on('data', addItem.bind(this));\n\n        function addItem(item)\n        {\n            let hash = this.funHash(item);\n            let arr = this.leftMap.get(hash);\n            if (!arr) {\n                arr = [];\n                this.leftMap.set(hash, arr);\n            }\n            arr.push(item);\n        }\n    }\n}\n\nmodule.exports = HashJoin;\n","\nconst { MultiTransformIterator, SimpleTransformIterator, scheduleTask } = require('asynciterator');\n\n// https://en.wikipedia.org/wiki/Nested_loop_join\nclass NestedLoopJoin extends MultiTransformIterator\n{\n    constructor (left, right, funJoin, options)\n    {\n        super(left, options);\n\n        this.right = right;\n        this.funJoin = funJoin; // function that joins 2 elements or returns null if join is not possible\n        this.on('end', () => this.right.close());\n    }\n\n    _end ()\n    {\n        super._end();\n        scheduleTask(() => this.right.destroy());\n    }\n\n    _createTransformer (leftItem)\n    {\n        return new SimpleTransformIterator(this.right.clone(), { transform: (rightItem, done, push) =>\n        {\n            let result = this.funJoin(leftItem, rightItem);\n            if (result !== null)\n                push(result);\n            done();\n        }});\n    }\n}\n\nmodule.exports = NestedLoopJoin;\n","\nlet AsyncIterator = require('asynciterator').AsyncIterator;\n\n// https://en.wikipedia.org/wiki/Symmetric_Hash_Join\nclass SymmetricHashJoin extends AsyncIterator\n{\n    constructor (left, right, funHash, funJoin)\n    {\n        super();\n\n        this.left  = left;\n        this.right = right;\n\n        this.funHash = funHash;\n        this.funJoin = funJoin;\n\n        this.usedLeft = false;\n        this.leftMap  = new Map();\n        this.rightMap = new Map();\n\n        this.on('end', () => this._cleanup() );\n\n        this.match    = null;\n        this.matches  = [];\n        this.matchIdx = 0;\n\n        if (this.left.readable || this.right.readable)\n        {\n            this.readable = true;\n        }\n\n        this.left.on('error', (error) => this.destroy(error));\n        this.right.on('error', (error) => this.destroy(error));\n\n        this.left.on('readable', () => this.readable = true);\n        this.right.on('readable', () => this.readable = true);\n\n        // this needs to be here since it's possible the left/right streams only get ended after there are no more results left\n        this.left.on ('end', () => { if (!this.hasResults()) this._end(); });\n        this.right.on('end', () => { if (!this.hasResults()) this._end(); });\n    }\n\n    hasResults()\n    {\n        // The \"!!this.match\" condition was added as a workaround to race\n        // conditions and/or duplicate \"end\" events that may lead to premature\n        // cleanups of the \"this.matches\" array.\n        // See https://github.com/joachimvh/asyncjoin/issues/7\n        return !this.left.ended  || !this.right.ended || (!!this.matches && this.matchIdx < this.matches.length);\n    }\n\n    _cleanup ()\n    {\n        // motivate garbage collector to remove these\n        this.leftMap = null;\n        this.rightMap = null;\n        this.matches = null;\n    }\n\n    _end ()\n    {\n        super._end();\n        this.left.destroy();\n        this.right.destroy();\n    }\n\n    read ()\n    {\n        while(true){\n            if (this.ended)\n                return null;\n\n            while (this.matchIdx < this.matches.length)\n            {\n                let item = this.matches[this.matchIdx++];\n                let result = this.usedLeft ? this.funJoin(this.match, item) : this.funJoin(item, this.match);\n                if (result !== null)\n                    return result;\n            }\n\n            if (!this.hasResults())\n                this._end();\n\n            let item = null;\n            // try both streams if the first one has no value\n            for (let i = 0; i < 2; ++i)\n            {\n                item = this.usedLeft ? this.right.read() : this.left.read();\n                this.usedLeft = !this.usedLeft; // try other stream next time\n\n                // found a result, no need to check the other stream this run\n                if (item !== null)\n                    break;\n            }\n\n            if (this.done || item === null)\n            {\n                this.readable = false;\n                return null;\n            }\n\n            let hash = this.funHash(item);\n\n            if (this.usedLeft && this.right.done) {\n                this.leftMap = null;\n            } else if (this.left.done) {\n                this.rightMap = null;\n            } else {\n                let map = this.usedLeft ? this.leftMap : this.rightMap;\n                if (!map.has(hash))\n                    map.set(hash, []);\n                let arr = map.get(hash);\n                if (!arr) {\n                    arr = [];\n                    map.set(hash, arr);\n                }\n                arr.push(item);\n            }\n\n            this.match = item;\n            this.matches = (this.usedLeft ? this.rightMap : this.leftMap).get(hash) || [];\n            this.matchIdx = 0;\n        }\n    }\n}\n\nmodule.exports = SymmetricHashJoin;\n","\nlet AsyncIterator = require('asynciterator').AsyncIterator;\n\n// merges the contents of multiple streams\nclass MergeIterator extends AsyncIterator\n{\n    constructor (streams)\n    {\n        super();\n        \n        if (!Array.isArray(streams))\n            streams = Array.prototype.slice.call(arguments);\n        \n        this.streams = streams;\n        \n        for (let stream of streams)\n        {\n            stream.on('readable', () => this.emit('readable'));\n            stream.on('end', () => this._removeStream(stream));\n        }\n        \n        if (this.streams.length === 0)\n            this.close();\n        \n        this.idx = this.streams.length-1;\n    }\n    \n    _removeStream (stream)\n    {\n        let idx = this.streams.indexOf(stream);\n        if (idx < 0)\n            return;\n        \n        this.streams.splice(idx, 1);\n        if (this.idx >= this.streams.length)\n            --this.idx;\n        \n        if (this.streams.length === 0)\n            this._end();\n    }\n    \n    close ()\n    {\n        super.close();\n        for (let stream of this.streams)\n            stream.close();\n    }\n    \n    read ()\n    {\n        for (let attempts = 0; attempts < this.streams.length; ++attempts)\n        {\n            this.idx = (this.idx + 1) % this.streams.length;\n            let item = this.streams[this.idx].read();\n            if (item !== null)\n                return item;\n        }\n        \n        return null;\n    }\n}\n\nmodule.exports = MergeIterator;","\nconst DynamicNestedLoopJoin = require('./join/DynamicNestedLoopJoin');\nconst HashJoin = require('./join/HashJoin');\nconst NestedLoopJoin = require('./join/NestedLoopJoin');\nconst SymmetricHashJoin = require('./join/SymmetricHashJoin');\n\nconst MergeStream = require('./util/MergeIterator');\n\nmodule.exports = {\n    DynamicNestedLoopJoin,\n    HashJoin,\n    NestedLoopJoin,\n    SymmetricHashJoin,\n\n    MergeStream\n};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinHash = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_index_1 = require(\"@comunica/utils-bindings-index\");\nconst utils_iterator_1 = require(\"@comunica/utils-iterator\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst asyncjoin_1 = require(\"asyncjoin\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A comunica Hash RDF Join Actor.\n */\nclass ActorRdfJoinHash extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'inner',\n            physicalName: `hash-${args.canHandleUndefs ? 'undef' : 'def'}`,\n            limitEntries: 2,\n            requiresVariableOverlap: true,\n            canHandleUndefs: args.canHandleUndefs,\n        });\n    }\n    async getOutput(action, sideData) {\n        const metadatas = sideData.metadatas;\n        let bindingsStream;\n        const variables = bus_rdf_join_1.ActorRdfJoin.overlappingVariables(metadatas);\n        if (this.canHandleUndefs) {\n            /* Handle undefined values in bindings */\n            const buffer = sideData.entriesSorted[0].output;\n            const output = sideData.entriesSorted[1].output;\n            bindingsStream = new utils_iterator_1.ClosableTransformIterator(async () => {\n                // We index all bindings from the left-hand iterator first in a blocking manner.\n                const index = new utils_bindings_index_1.BindingsIndexUndef(variables, (term) => term && term.termType !== 'Variable' ? (0, rdf_string_1.termToString)(term) : '', true);\n                await new Promise((resolve) => {\n                    buffer.bindingsStream.on('data', (bindings) => {\n                        const iterator = index.getFirst(bindings, false) ?? index.put(bindings, []);\n                        iterator.push(bindings);\n                    });\n                    buffer.bindingsStream.on('end', resolve);\n                    buffer.bindingsStream.on('error', (error) => {\n                        bindingsStream.emit('error', error);\n                    });\n                });\n                // Start our left-hand iterator and try to join with the index\n                return new asynciterator_1.MultiTransformIterator(output.bindingsStream, {\n                    multiTransform: (bindings) => new asynciterator_1.ArrayIterator((index.get(bindings).flat())\n                        .map(indexBindings => bus_rdf_join_1.ActorRdfJoin.joinBindings(bindings, indexBindings))\n                        .filter(b => b !== null), { autoStart: false }),\n                    autoStart: false,\n                });\n            }, {\n                autoStart: false,\n                onClose() {\n                    buffer.bindingsStream.destroy();\n                    output.bindingsStream.destroy();\n                },\n            });\n        }\n        else {\n            /* Don't handle undefined values in bindings */\n            const { hashFunction } = await this.mediatorHashBindings.mediate({ context: action.context });\n            const variablesRaw = variables.map(v => v.variable);\n            bindingsStream = new asyncjoin_1.HashJoin(sideData.entriesSorted[0].output.bindingsStream, sideData.entriesSorted[1].output.bindingsStream, entry => hashFunction(entry, variablesRaw), bus_rdf_join_1.ActorRdfJoin.joinBindings);\n        }\n        return {\n            result: {\n                type: 'bindings',\n                bindingsStream,\n                metadata: async () => await this.constructResultMetadata(sideData.entriesSorted, metadatas, action.context),\n            },\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        // Ensure the left build stream is the smallest\n        let entriesSorted = action.entries;\n        if (sideData.metadatas[1].cardinality.value < sideData.metadatas[0].cardinality.value) {\n            sideData.metadatas = [sideData.metadatas[1], sideData.metadatas[0]];\n            entriesSorted = [action.entries[1], action.entries[0]];\n        }\n        const { metadatas } = sideData;\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        let iterations = metadatas[0].cardinality.value + metadatas[1].cardinality.value;\n        if (!this.canHandleUndefs) {\n            // Our non-undef implementation is slightly more performant.\n            iterations *= 0.8;\n        }\n        return (0, core_1.passTestWithSideData)({\n            iterations,\n            persistedItems: metadatas[0].cardinality.value,\n            blockingItems: metadatas[0].cardinality.value,\n            requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n                requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n        }, { ...sideData, entriesSorted });\n    }\n}\nexports.ActorRdfJoinHash = ActorRdfJoinHash;\n//# sourceMappingURL=ActorRdfJoinHash.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinHash\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinSymmetricHash = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst core_1 = require(\"@comunica/core\");\nconst asyncjoin_1 = require(\"asyncjoin\");\n/**\n * A comunica Hash RDF Join Actor.\n */\nclass ActorRdfJoinSymmetricHash extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'inner',\n            physicalName: 'symmetric-hash',\n            limitEntries: 2,\n            requiresVariableOverlap: true,\n        });\n    }\n    async getOutput(action) {\n        const metadatas = await bus_rdf_join_1.ActorRdfJoin.getMetadatas(action.entries);\n        const variables = bus_rdf_join_1.ActorRdfJoin.overlappingVariables(metadatas);\n        const { hashFunction } = await this.mediatorHashBindings.mediate({ context: action.context });\n        const variablesRaw = variables.map(v => v.variable);\n        const join = new asyncjoin_1.SymmetricHashJoin(action.entries[0].output.bindingsStream, action.entries[1].output.bindingsStream, entry => hashFunction(entry, variablesRaw), bus_rdf_join_1.ActorRdfJoin.joinBindings);\n        return {\n            result: {\n                type: 'bindings',\n                bindingsStream: join,\n                metadata: async () => await this.constructResultMetadata(action.entries, metadatas, action.context),\n            },\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        const { metadatas } = sideData;\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        return (0, core_1.passTestWithSideData)({\n            iterations: metadatas[0].cardinality.value + metadatas[1].cardinality.value,\n            persistedItems: metadatas[0].cardinality.value + metadatas[1].cardinality.value,\n            blockingItems: 0,\n            requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n                requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n        }, sideData);\n    }\n}\nexports.ActorRdfJoinSymmetricHash = ActorRdfJoinSymmetricHash;\n//# sourceMappingURL=ActorRdfJoinSymmetricHash.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinSymmetricHash\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinNestedLoop = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst core_1 = require(\"@comunica/core\");\nconst asyncjoin_1 = require(\"asyncjoin\");\n/**\n * A comunica NestedLoop RDF Join Actor.\n */\nclass ActorRdfJoinNestedLoop extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'inner',\n            physicalName: 'nested-loop',\n            limitEntries: 2,\n            canHandleUndefs: true,\n        });\n    }\n    async getOutput(action) {\n        const join = new asyncjoin_1.NestedLoopJoin(action.entries[0].output.bindingsStream, action.entries[1].output.bindingsStream, bus_rdf_join_1.ActorRdfJoin.joinBindings, { autoStart: false });\n        return {\n            result: {\n                type: 'bindings',\n                bindingsStream: join,\n                metadata: async () => await this.constructResultMetadata(action.entries, await bus_rdf_join_1.ActorRdfJoin.getMetadatas(action.entries), action.context),\n            },\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        const { metadatas } = sideData;\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        return (0, core_1.passTestWithSideData)({\n            iterations: metadatas[0].cardinality.value * metadatas[1].cardinality.value,\n            persistedItems: 0,\n            blockingItems: 0,\n            requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n                requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n        }, sideData);\n    }\n}\nexports.ActorRdfJoinNestedLoop = ActorRdfJoinNestedLoop;\n//# sourceMappingURL=ActorRdfJoinNestedLoop.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinNestedLoop\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindingsToCompactString = exports.bindingsToString = void 0;\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * Convert a bindings object to a human-readable string.\n * @param bindings A bindings object.\n */\nfunction bindingsToString(bindings) {\n    const raw = {};\n    for (const key of bindings.keys()) {\n        raw[key.value] = (0, rdf_string_1.termToString)(bindings.get(key));\n    }\n    return JSON.stringify(raw, null, '  ');\n}\nexports.bindingsToString = bindingsToString;\n/**\n * Convert a bindings object to a compact string.\n * This is mainly useful for internal indexing purposes.\n *\n * This function is guaranteed to not produce clashing bindings for unequal terms.\n *\n * This function will not sort the variables and expects them to be in the same order for every call.\n *\n * @param bindings A bindings object.\n * @param variables The variables to consider when converting the bindings to a string.\n */\nfunction bindingsToCompactString(bindings, variables) {\n    return variables\n        .map((variable) => {\n        const term = bindings.get(variable);\n        if (term) {\n            return (0, rdf_string_1.termToString)(term);\n        }\n        return '';\n    })\n        .join('');\n}\nexports.bindingsToCompactString = bindingsToCompactString;\n//# sourceMappingURL=bindingsToString.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bindings = void 0;\nconst core_1 = require(\"@comunica/core\");\nconst immutable_1 = require(\"immutable\");\nconst bindingsToString_1 = require(\"./bindingsToString\");\n/**\n * An immutable.js-based Bindings object.\n */\nclass Bindings {\n    constructor(dataFactory, entries, contextHolder) {\n        this.type = 'bindings';\n        this.dataFactory = dataFactory;\n        this.entries = entries;\n        this.contextHolder = contextHolder;\n    }\n    has(key) {\n        return this.entries.has(typeof key === 'string' ? key : key.value);\n    }\n    get(key) {\n        return this.entries.get(typeof key === 'string' ? key : key.value);\n    }\n    set(key, value) {\n        return new Bindings(this.dataFactory, this.entries.set(typeof key === 'string' ? key : key.value, value), this.contextHolder);\n    }\n    delete(key) {\n        return new Bindings(this.dataFactory, this.entries.delete(typeof key === 'string' ? key : key.value), this.contextHolder);\n    }\n    keys() {\n        return this.mapIterable(this.iteratorToIterable(this.entries.keys()), key => this.dataFactory.variable(key));\n    }\n    values() {\n        return this.iteratorToIterable(this.entries.values());\n    }\n    forEach(fn) {\n        for (const [key, value] of this.entries.entries()) {\n            fn(value, this.dataFactory.variable(key));\n        }\n    }\n    get size() {\n        return this.entries.size;\n    }\n    [Symbol.iterator]() {\n        return this.mapIterable(this.iteratorToIterable(this.entries.entries()), ([key, value]) => [this.dataFactory.variable(key), value])[Symbol.iterator]();\n    }\n    equals(other) {\n        if (!other) {\n            return false;\n        }\n        if (this === other) {\n            return true;\n        }\n        // First check if size is equal\n        if (this.size !== other.size) {\n            return false;\n        }\n        // Then check if keys and values are equal\n        for (const key of this.keys()) {\n            if (!this.get(key)?.equals(other.get(key))) {\n                return false;\n            }\n        }\n        return true;\n    }\n    filter(fn) {\n        return new Bindings(this.dataFactory, (0, immutable_1.Map)(this.entries\n            .filter((value, key) => fn(value, this.dataFactory.variable(key)))), this.contextHolder);\n    }\n    map(fn) {\n        return new Bindings(this.dataFactory, (0, immutable_1.Map)(this.entries\n            .map((value, key) => fn(value, this.dataFactory.variable(key)))), this.contextHolder);\n    }\n    merge(other) {\n        if (this.size < other.size && other instanceof Bindings) {\n            return other.merge(this);\n        }\n        let entries = this.entries;\n        // Check if other is of type Bindings, in that case we can access entries immediately.\n        // This skips the unnecessary conversion from string to variable.\n        if (other instanceof Bindings) {\n            for (const [variable, right] of other.entries) {\n                const left = this.entries.get(variable);\n                if (left && !left.equals(right)) {\n                    return;\n                }\n                entries = entries.set(variable, right);\n            }\n        }\n        else {\n            for (const [variable, right] of other) {\n                const left = this.entries.get(variable.value);\n                if (left && !left.equals(right)) {\n                    return;\n                }\n                entries = entries.set(variable.value, right);\n            }\n        }\n        return this.createBindingsWithContexts(entries, other);\n    }\n    mergeWith(merger, other) {\n        if (this.size < other.size && other instanceof Bindings) {\n            return other.mergeWith(merger, this);\n        }\n        let entries = this.entries;\n        // For code comments see Bindings.merge function\n        if (other instanceof Bindings) {\n            for (const [variable, right] of other.entries) {\n                const left = this.entries.get(variable);\n                let value;\n                if (left && !left.equals(right)) {\n                    value = merger(left, right, this.dataFactory.variable(variable));\n                }\n                else {\n                    value = right;\n                }\n                entries = entries.set(variable, value);\n            }\n        }\n        else {\n            for (const [variable, right] of other) {\n                const left = this.entries.get(variable.value);\n                let value;\n                if (left && !left.equals(right)) {\n                    value = merger(left, right, variable);\n                }\n                else {\n                    value = right;\n                }\n                entries = entries.set(variable.value, value);\n            }\n        }\n        return this.createBindingsWithContexts(entries, other);\n    }\n    createBindingsWithContexts(entries, other) {\n        // If any context is empty, we skip merging contexts\n        if (this.contextHolder && this.contextHolder.context) {\n            let mergedContext = this.contextHolder.context;\n            // Only merge if the other has a context\n            if ('contextHolder' in other && other.contextHolder && other.contextHolder.context) {\n                mergedContext = Bindings\n                    .mergeContext(this.contextHolder.contextMergeHandlers, mergedContext, other.contextHolder.context);\n            }\n            return new Bindings(this.dataFactory, entries, { contextMergeHandlers: this.contextHolder.contextMergeHandlers, context: mergedContext });\n        }\n        // Otherwise, use optional context from other\n        return new Bindings(this.dataFactory, entries, other.contextHolder);\n    }\n    static mergeContext(contextMergeHandlers, context, otherContext) {\n        // All keys can contain duplicates, we prevent this by checking our built datamap for duplicates\n        const allKeys = [...context.keys(), ...otherContext.keys()];\n        // Map we build up with merged context values\n        const newContextData = {};\n        const handledKeys = {};\n        // Set of names of keys in other context to allow for constant time lookup\n        const keysSetOtherContext = new Set(otherContext.keys().map(key => key.name));\n        const keysBothContext = context.keys().filter(key => keysSetOtherContext.has(key.name));\n        for (const key of allKeys) {\n            // If duplicate key, we continue iterating\n            if (handledKeys[key.name] === 1) {\n                continue;\n            }\n            // We've processed this key and shouldn't repeat it\n            handledKeys[key.name] = 1;\n            // Determine whether this key occurs in both contexts\n            const occursInBoth = keysBothContext.some(x => x.name === key.name);\n            // If we execute this function, we already check for existence of context merge handlers\n            // This if statement is first as the most likely case for non-empty contexts is that we have mergehandlers\n            // and both contexts have an entry\n            if (contextMergeHandlers[key.name] && occursInBoth) {\n                newContextData[key.name] = contextMergeHandlers[key.name]\n                    .run(context.get(key), otherContext.get(key));\n                continue;\n            }\n            // If we have no merge handler, but both contexts have entries for key, we don't add it to new context\n            if (!contextMergeHandlers[key.name] && occursInBoth) {\n                continue;\n            }\n            // If key doesn't occur in own context, it must be in other context\n            // (if we get to this point, the key doesn't occur in both)\n            if (!context.get(key)) {\n                newContextData[key.name] = otherContext.get(key);\n                continue;\n            }\n            // This could likely be else statement, but don't want to risk it\n            if (!otherContext.get(key)) {\n                newContextData[key.name] = context.get(key);\n            }\n        }\n        return new core_1.ActionContext(newContextData);\n    }\n    setContextEntry(key, value) {\n        return this.setContextEntryRaw(key, value);\n    }\n    setContextEntryRaw(key, value) {\n        if (this.contextHolder && this.contextHolder.context) {\n            return new Bindings(this.dataFactory, this.entries, {\n                contextMergeHandlers: this.contextHolder.contextMergeHandlers,\n                context: this.contextHolder.context.set(key, value),\n            });\n        }\n        return new Bindings(this.dataFactory, this.entries, {\n            contextMergeHandlers: this.contextHolder?.contextMergeHandlers ?? {},\n            context: new core_1.ActionContext().set(key, value),\n        });\n    }\n    deleteContextEntry(key) {\n        return this.deleteContextEntryRaw(key);\n    }\n    deleteContextEntryRaw(key) {\n        if (this.contextHolder) {\n            return new Bindings(this.dataFactory, this.entries, {\n                contextMergeHandlers: this.contextHolder.contextMergeHandlers,\n                context: this.contextHolder.context?.delete(key),\n            });\n        }\n        return new Bindings(this.dataFactory, this.entries);\n    }\n    getContext() {\n        return this.contextHolder?.context;\n    }\n    getContextEntry(key) {\n        return this.getContext()?.get(key);\n    }\n    toString() {\n        return (0, bindingsToString_1.bindingsToString)(this);\n    }\n    *mapIterable(iterable, callback) {\n        for (const x of iterable) {\n            yield callback(x);\n        }\n    }\n    iteratorToIterable(iterator) {\n        return {\n            [Symbol.iterator]: () => iterator,\n        };\n    }\n}\nexports.Bindings = Bindings;\n//# sourceMappingURL=Bindings.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BindingsFactory = void 0;\nconst immutable_1 = require(\"immutable\");\nconst Bindings_1 = require(\"./Bindings\");\n/**\n * A Bindings factory that provides Bindings backed by immutable.js.\n */\nclass BindingsFactory {\n    constructor(dataFactory, contextMergeHandlers) {\n        this.dataFactory = dataFactory;\n        this.contextMergeHandlers = contextMergeHandlers;\n    }\n    static async create(mediatorMergeBindingsContext, context, dataFactory) {\n        return new BindingsFactory(dataFactory, (await mediatorMergeBindingsContext.mediate({ context })).mergeHandlers);\n    }\n    bindings(entries = []) {\n        return new Bindings_1.Bindings(this.dataFactory, (0, immutable_1.Map)(entries.map(([key, value]) => [key.value, value])), this.contextMergeHandlers ? { contextMergeHandlers: this.contextMergeHandlers } : undefined);\n    }\n    fromBindings(bindings) {\n        return this.bindings([...bindings]);\n    }\n    fromRecord(record) {\n        return this.bindings(Object.entries(record).map(([key, value]) => [this.dataFactory.variable(key), value]));\n    }\n}\nexports.BindingsFactory = BindingsFactory;\n//# sourceMappingURL=BindingsFactory.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Bindings\"), exports);\n__exportStar(require(\"./BindingsFactory\"), exports);\n__exportStar(require(\"./bindingsToString\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinOptionalHash = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_bindings_index_1 = require(\"@comunica/utils-bindings-index\");\nconst utils_iterator_1 = require(\"@comunica/utils-iterator\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A comunica Optional Hash RDF Join Actor.\n */\nclass ActorRdfJoinOptionalHash extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'optional',\n            physicalName: `hash-${args.canHandleUndefs ? 'undef' : 'def'}-${args.blocking ? 'blocking' : 'nonblocking'}`,\n            limitEntries: 2,\n            canHandleUndefs: args.canHandleUndefs,\n            requiresVariableOverlap: true,\n        });\n    }\n    static constructIndex(undef, commonVariables) {\n        return undef ?\n            new utils_bindings_index_1.BindingsIndexUndef(commonVariables, (term) => term && term.termType !== 'Variable' ? (0, rdf_string_1.termToString)(term) : '', true) :\n            new utils_bindings_index_1.BindingsIndexDef(commonVariables, utils_bindings_factory_1.bindingsToCompactString);\n    }\n    async getOutput(action) {\n        const buffer = action.entries[1].output;\n        const output = action.entries[0].output;\n        const metadatas = await bus_rdf_join_1.ActorRdfJoin.getMetadatas(action.entries);\n        const commonVariables = bus_rdf_join_1.ActorRdfJoin.overlappingVariables(metadatas);\n        let bindingsStream;\n        if (this.blocking) {\n            // -- Blocking optional ---\n            bindingsStream = new utils_iterator_1.ClosableTransformIterator(async () => {\n                // We index all bindings from the right-hand OPTIONAL iterator first in a blocking manner.\n                const index = ActorRdfJoinOptionalHash\n                    .constructIndex(this.canHandleUndefs, commonVariables);\n                await new Promise((resolve) => {\n                    buffer.bindingsStream.on('data', (bindings) => {\n                        const iterator = index.getFirst(bindings, true) ?? index.put(bindings, []);\n                        iterator.push(bindings);\n                    });\n                    buffer.bindingsStream.on('end', resolve);\n                    buffer.bindingsStream.on('error', (error) => {\n                        bindingsStream.emit('error', error);\n                    });\n                });\n                // Start our left-hand iterator and try to join with the index\n                return new asynciterator_1.MultiTransformIterator(output.bindingsStream, {\n                    multiTransform: (bindings) => new asynciterator_1.ArrayIterator((index.get(bindings).flat())\n                        .map(indexBindings => bus_rdf_join_1.ActorRdfJoin.joinBindings(bindings, indexBindings))\n                        .filter(b => b !== null), { autoStart: false }),\n                    optional: true,\n                    autoStart: false,\n                });\n            }, {\n                autoStart: false,\n                onClose() {\n                    buffer.bindingsStream.destroy();\n                    output.bindingsStream.destroy();\n                },\n            });\n        }\n        else {\n            // -- Non-blocking optional ---\n            // This can be slightly slower than the blocking one above, due to the streaming overhead.\n            bindingsStream = new utils_iterator_1.ClosableTransformIterator(async () => {\n                // We index all bindings from the right-hand OPTIONAL iterator.\n                // They are indexed with iterator values, so our main stream can already get started.\n                const index = ActorRdfJoinOptionalHash\n                    .constructIndex(this.canHandleUndefs, commonVariables);\n                let indexActive = true;\n                buffer.bindingsStream.on('data', (bindings) => {\n                    const iterator = index.getFirst(bindings, true) ??\n                        index.put(bindings, new asynciterator_1.BufferedIterator({ autoStart: false }));\n                    iterator._push(bindings);\n                });\n                buffer.bindingsStream.on('end', () => {\n                    for (const iterator of index.values()) {\n                        iterator.close();\n                    }\n                    indexActive = false;\n                });\n                buffer.bindingsStream.on('error', (error) => {\n                    bindingsStream.emit('error', error);\n                });\n                // Start our left-hand iterator and try to join with the index\n                return new asynciterator_1.MultiTransformIterator(output.bindingsStream, {\n                    multiTransform: (bindings) => {\n                        // Find iterators from the index\n                        let iterators = index.get(bindings);\n                        // If no index entry was found, set an empty iterator.\n                        // If we index has been closed already, don't modify the index, but just use an empty dummy iterator.\n                        if (iterators.length === 0) {\n                            if (indexActive) {\n                                iterators = [index.put(bindings, new asynciterator_1.BufferedIterator({ autoStart: false }))];\n                            }\n                            else {\n                                iterators = [];\n                            }\n                        }\n                        // Merge all iterators in a single one,\n                        // and clone each one to make sure we can still use them in the future.\n                        const iterator = new asynciterator_1.UnionIterator(iterators.map(it => it.clone()), { autoStart: false });\n                        return iterator.map(indexBindings => bus_rdf_join_1.ActorRdfJoin.joinBindings(bindings, indexBindings));\n                    },\n                    optional: true,\n                    autoStart: false,\n                });\n            }, {\n                autoStart: false,\n                onClose() {\n                    buffer.bindingsStream.destroy();\n                    output.bindingsStream.destroy();\n                },\n            });\n        }\n        return {\n            result: {\n                type: 'bindings',\n                bindingsStream,\n                metadata: async () => await this.constructResultMetadata(action.entries, metadatas, action.context, {}, true),\n            },\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        const { metadatas } = sideData;\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        let iterations = metadatas[0].cardinality.value + metadatas[1].cardinality.value;\n        if (!this.canHandleUndefs) {\n            // Our non-undef implementation is slightly more performant.\n            iterations *= 0.8;\n        }\n        if (this.blocking) {\n            // Our blocking implementation is slightly more performant.\n            iterations *= 0.9;\n        }\n        return (0, core_1.passTestWithSideData)({\n            iterations,\n            persistedItems: metadatas[0].cardinality.value,\n            blockingItems: this.blocking ? metadatas[0].cardinality.value : 0,\n            requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n                requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n        }, sideData);\n    }\n}\nexports.ActorRdfJoinOptionalHash = ActorRdfJoinOptionalHash;\n//# sourceMappingURL=ActorRdfJoinOptionalHash.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinOptionalHash\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinOptionalNestedLoop = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst core_1 = require(\"@comunica/core\");\nconst asyncjoin_1 = require(\"asyncjoin\");\n/**\n * A comunica Optional Nested Loop RDF Join Actor.\n */\nclass ActorRdfJoinOptionalNestedLoop extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'optional',\n            physicalName: 'nested-loop',\n            limitEntries: 2,\n            canHandleUndefs: true,\n        });\n    }\n    async getOutput(action) {\n        const join = new asyncjoin_1.NestedLoopJoin(action.entries[0].output.bindingsStream, action.entries[1].output.bindingsStream, bus_rdf_join_1.ActorRdfJoin.joinBindings, { optional: true, autoStart: false });\n        return {\n            result: {\n                type: 'bindings',\n                bindingsStream: join,\n                metadata: async () => await this.constructResultMetadata(action.entries, await bus_rdf_join_1.ActorRdfJoin.getMetadatas(action.entries), action.context, {}, true),\n            },\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        const { metadatas } = sideData;\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        return (0, core_1.passTestWithSideData)({\n            iterations: metadatas[0].cardinality.value * metadatas[1].cardinality.value,\n            persistedItems: 0,\n            blockingItems: 0,\n            requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n                requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n        }, sideData);\n    }\n}\nexports.ActorRdfJoinOptionalNestedLoop = ActorRdfJoinOptionalNestedLoop;\n//# sourceMappingURL=ActorRdfJoinOptionalNestedLoop.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinOptionalNestedLoop\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinMinusHash = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_bindings_index_1 = require(\"@comunica/utils-bindings-index\");\nconst utils_iterator_1 = require(\"@comunica/utils-iterator\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A comunica Minus Hash RDF Join Actor.\n */\nclass ActorRdfJoinMinusHash extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'minus',\n            physicalName: `hash-${args.canHandleUndefs ? 'undef' : 'def'}`,\n            limitEntries: 2,\n            canHandleUndefs: args.canHandleUndefs,\n        });\n    }\n    static constructIndex(undef, commonVariables) {\n        return undef ?\n            new utils_bindings_index_1.BindingsIndexUndef(commonVariables, (term) => term && term.termType !== 'Variable' ? (0, rdf_string_1.termToString)(term) : '', false) :\n            new utils_bindings_index_1.BindingsIndexDef(commonVariables, utils_bindings_factory_1.bindingsToCompactString);\n    }\n    async getOutput(action) {\n        const buffer = action.entries[1].output;\n        const output = action.entries[0].output;\n        const metadatas = await bus_rdf_join_1.ActorRdfJoin.getMetadatas(action.entries);\n        const commonVariables = bus_rdf_join_1.ActorRdfJoin.overlappingVariables(metadatas);\n        // Destroy the buffer stream since it is not needed when\n        // there are no common variables.\n        if (commonVariables.length === 0) {\n            buffer.bindingsStream.destroy();\n            return { result: output };\n        }\n        const bindingsStream = new utils_iterator_1.ClosableTransformIterator(async () => {\n            // We index all bindings from the buffer iterator first in a blocking manner.\n            const index = ActorRdfJoinMinusHash\n                .constructIndex(this.canHandleUndefs, commonVariables);\n            await new Promise((resolve) => {\n                buffer.bindingsStream.on('data', bindings => index.put(bindings, true));\n                buffer.bindingsStream.on('end', resolve);\n                buffer.bindingsStream.on('error', error => bindingsStream.emit('error', error));\n            });\n            // From the left-hand iterator filter out all entries of the index\n            return output.bindingsStream.filter(bindings => !index.getFirst(bindings, true));\n        }, {\n            autoStart: false,\n            onClose() {\n                buffer.bindingsStream.destroy();\n                output.bindingsStream.destroy();\n            },\n        });\n        return {\n            result: {\n                type: 'bindings',\n                bindingsStream,\n                metadata: output.metadata,\n            },\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        const { metadatas } = sideData;\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        let iterations = metadatas[0].cardinality.value + metadatas[1].cardinality.value;\n        if (!this.canHandleUndefs) {\n            // Our non-undef implementation is slightly more performant.\n            iterations *= 0.8;\n        }\n        return (0, core_1.passTestWithSideData)({\n            iterations,\n            persistedItems: metadatas[0].cardinality.value,\n            blockingItems: metadatas[0].cardinality.value,\n            requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n                requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1],\n        }, sideData);\n    }\n}\nexports.ActorRdfJoinMinusHash = ActorRdfJoinMinusHash;\n//# sourceMappingURL=ActorRdfJoinMinusHash.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinMinusHash\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorDereferenceRdf = void 0;\nconst bus_dereference_1 = require(\"@comunica/bus-dereference\");\n/**\n * A base actor for dereferencing URLs to quad streams.\n *\n * Actor types:\n * * Input:  IActionDereferenceRdf:      A URL.\n * * Test:   <none>\n * * Output: IActorDereferenceRdfOutput: A quad stream.\n *\n * @see IActionDereferenceRdf\n * @see IActorDereferenceRdfOutput\n */\nclass ActorDereferenceRdf extends bus_dereference_1.ActorDereferenceParse {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {RDF dereferencing failed: none of the configured parsers were able to handle the media type ${action.handle.mediaType} for ${action.handle.url}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorDereferenceRdf = ActorDereferenceRdf;\n//# sourceMappingURL=ActorDereferenceRdf.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorDereferenceRdf\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorDereferenceRdfParse = void 0;\nconst bus_dereference_rdf_1 = require(\"@comunica/bus-dereference-rdf\");\n/**\n * A comunica Parse Dereference RDF Actor.\n */\nclass ActorDereferenceRdfParse extends bus_dereference_rdf_1.ActorDereferenceRdf {\n    /**\n     * @param args - @defaultNested {{\n     *   \"ttl\":      \"text/turtle\",\n     *   \"turtle\":   \"text/turtle\",\n     *   \"shaclc\":   \"text/shaclc\",\n     *   \"shc\":      \"text/shaclc\",\n     *   \"shaclce\":  \"text/shaclc-ext\",\n     *   \"shce\":     \"text/shaclc-ext\",\n     *   \"nt\":       \"application/n-triples\",\n     *   \"ntriples\": \"application/n-triples\",\n     *   \"nq\":       \"application/n-quads\",\n     *   \"nquads\":   \"application/n-quads\",\n     *   \"rdf\":      \"application/rdf+xml\",\n     *   \"rdfxml\":   \"application/rdf+xml\",\n     *   \"owl\":      \"application/rdf+xml\",\n     *   \"n3\":       \"text/n3\",\n     *   \"trig\":     \"application/trig\",\n     *   \"jsonld\":   \"application/ld+json\",\n     *   \"json\":     \"application/json\",\n     *   \"html\":     \"text/html\",\n     *   \"htm\":      \"text/html\",\n     *   \"xhtml\":    \"application/xhtml+xml\",\n     *   \"xht\":      \"application/xhtml+xml\",\n     *   \"xml\":      \"application/xml\",\n     *   \"svg\":      \"image/svg+xml\",\n     *   \"svgz\":     \"image/svg+xml\"\n     * }} mediaMappings\n     */\n    constructor(args) {\n        super(args);\n    }\n    async getMetadata(dereference) {\n        return { baseIRI: dereference.url };\n    }\n}\nexports.ActorDereferenceRdfParse = ActorDereferenceRdfParse;\n//# sourceMappingURL=ActorDereferenceRdfParse.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorDereferenceRdfParse\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HtmlScriptListener = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * An HTML parse listeners that detects <script> data blocks with known RDF media types,\n * parses them, and outputs the resulting quads.\n */\nclass HtmlScriptListener {\n    constructor(mediatorRdfParseHandle, cbQuad, cbError, cbEnd, supportedTypes, context, baseIRI, headers) {\n        this.textChunksJsonLd = [];\n        this.endBarrier = 1;\n        this.passedScripts = 0;\n        this.isFinalJsonLdProcessing = false;\n        this.mediatorRdfParseHandle = mediatorRdfParseHandle;\n        this.cbQuad = cbQuad;\n        this.cbError = cbError;\n        this.cbEnd = cbEnd;\n        this.supportedTypes = supportedTypes;\n        this.context = context\n            .set(context_entries_1.KeysRdfParseHtmlScript.processingHtmlScript, true);\n        this.baseIRI = baseIRI;\n        this.headers = headers;\n        this.onlyFirstScript = context.get(context_entries_1.KeysRdfParseHtmlScript.extractAllScripts) === false;\n        const fragmentPos = this.baseIRI.indexOf('#');\n        this.targetScriptId = fragmentPos > 0 ? this.baseIRI.slice(fragmentPos + 1, this.baseIRI.length) : null;\n    }\n    static newErrorCoded(message, code) {\n        // Error codes are required by the JSON-LD spec\n        const error = new Error(message);\n        error.code = code;\n        return error;\n    }\n    onEnd() {\n        if (--this.endBarrier === 0) {\n            if (this.textChunksJsonLd.length > 0) {\n                // First process buffered JSON-LD chunks if we have any.\n                this.handleMediaType = 'application/ld+json';\n                this.textChunks = this.textChunksJsonLd;\n                this.textChunks.push(']');\n                this.textChunksJsonLd = [];\n                this.isFinalJsonLdProcessing = true;\n                this.endBarrier++;\n                // This will call onEnd again\n                this.onTagClose();\n            }\n            else {\n                // Otherwise, end processing\n                if (this.passedScripts === 0 && this.targetScriptId) {\n                    this.cbError(HtmlScriptListener.newErrorCoded(`Failed to find targeted script id \"${this.targetScriptId}\"`, 'loading document failed'));\n                }\n                this.cbEnd();\n            }\n            this.isFinalJsonLdProcessing = false;\n        }\n    }\n    onTagClose() {\n        if (this.handleMediaType) {\n            if (this.requiresCustomJsonLdHandling(this.handleMediaType) && !this.isFinalJsonLdProcessing) {\n                // Reset the media type and text stream\n                this.handleMediaType = undefined;\n                this.textChunks = undefined;\n                this.onEnd();\n            }\n            else {\n                // Create a temporary text stream for pushing all the text chunks\n                const textStream = new readable_stream_1.Readable({ objectMode: true });\n                textStream._read = () => {\n                    // Do nothing\n                };\n                const textChunksLocal = this.textChunks;\n                // Send all collected text to parser\n                const parseAction = {\n                    context: this.context,\n                    handle: {\n                        metadata: { baseIRI: this.baseIRI },\n                        data: textStream,\n                        headers: this.headers,\n                        context: this.context,\n                    },\n                    handleMediaType: this.handleMediaType,\n                };\n                this.mediatorRdfParseHandle.mediate(parseAction)\n                    .then(({ handle }) => {\n                    // Initialize text parsing\n                    handle.data\n                        .on('error', error => this.cbError(HtmlScriptListener\n                        .newErrorCoded(error.message, 'invalid script element')))\n                        .on('data', this.cbQuad)\n                        .on('end', () => this.onEnd());\n                    // Push the text stream after all events have been attached\n                    for (const textChunk of textChunksLocal) {\n                        textStream.push(textChunk);\n                    }\n                    textStream.push(null);\n                })\n                    .catch((error) => {\n                    if (this.targetScriptId) {\n                        // Error if we are targeting this script tag specifically\n                        this.cbError(HtmlScriptListener.newErrorCoded(error.message, 'loading document failed'));\n                    }\n                    else {\n                        // Ignore script tags that we don't understand\n                        this.onEnd();\n                    }\n                });\n                // Reset the media type and text stream\n                this.handleMediaType = undefined;\n                this.textChunks = undefined;\n            }\n        }\n    }\n    onTagOpen(name, attributes) {\n        // Take into account baseIRI overrides\n        if (name === 'base' && attributes.href) {\n            this.baseIRI = (0, relative_to_absolute_iri_1.resolve)(attributes.href, this.baseIRI);\n        }\n        // Only handle script tags with a parseable content type\n        // If targetScriptId is defined, only extract from script with that id\n        if (name === 'script' && (!this.targetScriptId || attributes.id === this.targetScriptId)) {\n            if (this.supportedTypes[attributes.type]) {\n                if (this.onlyFirstScript && this.passedScripts > 0) {\n                    // Ignore script tag if only one should be extracted\n                    this.handleMediaType = undefined;\n                }\n                else {\n                    this.passedScripts++;\n                    this.handleMediaType = attributes.type;\n                    this.endBarrier++;\n                    if (this.requiresCustomJsonLdHandling(this.handleMediaType)) {\n                        this.textChunks = this.textChunksJsonLd;\n                        this.textChunks.push(this.textChunks.length === 0 ? '[' : ',');\n                    }\n                    else {\n                        this.textChunks = [];\n                    }\n                }\n            }\n            else if (this.targetScriptId) {\n                this.cbError(HtmlScriptListener.newErrorCoded(`Targeted script \"${this.targetScriptId}\" does not have a supported type`, 'loading document failed'));\n            }\n        }\n        else {\n            this.handleMediaType = undefined;\n        }\n    }\n    onText(data) {\n        if (this.handleMediaType) {\n            this.textChunks.push(data);\n        }\n    }\n    /**\n     * If we require custom JSON-LD handling for the given media type.\n     *\n     * The JSON-LD spec requires JSON-LD within script tags to be seen as a single document.\n     * As such, we have to buffer all JSON-LD until the end of HTML processing,\n     * and encapsulate all found contents in an array.\n     *\n     * @param mediaType A: IActionRdfParseHtml media type.\n     */\n    requiresCustomJsonLdHandling(mediaType) {\n        return !this.onlyFirstScript && !this.targetScriptId && mediaType === 'application/ld+json';\n    }\n}\nexports.HtmlScriptListener = HtmlScriptListener;\n//# sourceMappingURL=HtmlScriptListener.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseHtmlScript = void 0;\nconst bus_rdf_parse_html_1 = require(\"@comunica/bus-rdf-parse-html\");\nconst core_1 = require(\"@comunica/core\");\nconst HtmlScriptListener_1 = require(\"./HtmlScriptListener\");\n/**\n * A HTML script RDF Parse actor that listens on the 'rdf-parse' bus.\n *\n * It is able to extract and parse any RDF serialization from script tags in HTML files\n * and announce the presence of them by media type.\n */\nclass ActorRdfParseHtmlScript extends bus_rdf_parse_html_1.ActorRdfParseHtml {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const supportedTypes = (await this.mediatorRdfParseMediatypes\n            .mediate({ context: action.context, mediaTypes: true })).mediaTypes;\n        const htmlParseListener = new HtmlScriptListener_1.HtmlScriptListener(this.mediatorRdfParseHandle, action.emit, action.error, action.end, supportedTypes, action.context, action.baseIRI, action.headers);\n        return { htmlParseListener };\n    }\n}\nexports.ActorRdfParseHtmlScript = ActorRdfParseHtmlScript;\n//# sourceMappingURL=ActorRdfParseHtmlScript.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParseHtmlScript\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeRdf = void 0;\nconst bus_query_result_serialize_1 = require(\"@comunica/bus-query-result-serialize\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica RDF Query Result Serialize Actor.\n *\n * It serializes quad streams (for example resulting from a CONSTRUCT query)\n * to an RDF syntax.\n */\nclass ActorQueryResultSerializeRdf extends bus_query_result_serialize_1.ActorQueryResultSerialize {\n    constructor(args) {\n        super(args);\n    }\n    async testHandle(action, mediaType, context) {\n        // Check if we are provided with a quad stream\n        if (action.type !== 'quads') {\n            return (0, core_1.failTest)(`Actor ${this.name} can only handle quad streams`);\n        }\n        // Check if the given media type can be handled\n        const { mediaTypes } = await this.mediatorMediaTypeCombiner.mediate({ context, mediaTypes: true });\n        if (!(mediaType in mediaTypes)) {\n            return (0, core_1.failTest)(`Actor ${this.name} can not handle media type ${mediaType}. All available types: ${\n            // eslint-disable-next-line ts/restrict-template-expressions\n            Object.keys(mediaTypes)}`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async runHandle(action, mediaType, context) {\n        // Delegate handling to the mediator\n        return (await this.mediatorRdfSerialize.mediate({\n            context,\n            handle: {\n                context,\n                quadStream: action.quadStream,\n            },\n            handleMediaType: mediaType,\n        })).handle;\n    }\n    async testMediaType(_context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async getMediaTypes(context) {\n        return (await this.mediatorMediaTypeCombiner.mediate({ context, mediaTypes: true })).mediaTypes;\n    }\n    async testMediaTypeFormats(_context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async getMediaTypeFormats(context) {\n        return (await this.mediatorMediaTypeFormatCombiner.mediate({ context, mediaTypeFormats: true })).mediaTypeFormats;\n    }\n}\nexports.ActorQueryResultSerializeRdf = ActorQueryResultSerializeRdf;\n//# sourceMappingURL=ActorQueryResultSerializeRdf.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryResultSerializeRdf\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorBindingsAggregatorFactory = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for creating Binding-Aggregator-factories.\n *\n * Actor types:\n * * Input:  IActionBindingsAggregatorFactory:      A SPARQL expression and a factory for an expression evaluator.\n * * Test:   <none>\n * * Output: IActorBindingsAggregatorFactoryOutput: An aggregator of RDF bindings.\n *\n * @see IActionBindingsAggregatorFactory\n * @see IActorBindingsAggregatorFactoryOutput\n */\nclass ActorBindingsAggregatorFactory extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *  \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *  \\ @defaultNested {Creation of Aggregator failed: none of the configured actors were able to handle ${action.expr.aggregator}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n        this.mediatorExpressionEvaluatorFactory = args.mediatorExpressionEvaluatorFactory;\n    }\n}\nexports.ActorBindingsAggregatorFactory = ActorBindingsAggregatorFactory;\n//# sourceMappingURL=ActorBindingsAggregatorFactory.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AggregateEvaluator = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst Eval = require(\"@comunica/utils-expression-evaluator\");\nconst RdfString = require(\"rdf-string\");\n/**\n * This is the base class for all aggregators.\n * NOTE: The wildcard count aggregator significantly differs from the others and overloads parts of this class.\n */\nclass AggregateEvaluator {\n    constructor(evaluator, distinct, throwError = false) {\n        this.evaluator = evaluator;\n        this.distinct = distinct;\n        this.throwError = throwError;\n        this.errorOccurred = false;\n        this.errorOccurred = false;\n        this.superTypeProvider = evaluator.context.getSafe(context_entries_1.KeysExpressionEvaluator.superTypeProvider);\n        this.termTransformer = new Eval.TermTransformer(this.superTypeProvider);\n        this.variableValues = new Set();\n    }\n    emptyValueTerm() {\n        return undefined;\n    }\n    /**\n     * The spec says to throw an error when a set function is called on an empty\n     * set (unless explicitly mentioned otherwise like COUNT).\n     * However, aggregate error handling says to not bind the result in case of an\n     * error. So to simplify logic in the caller, we return undefined by default.\n     */\n    emptyValue() {\n        const val = this.emptyValueTerm();\n        if (val === undefined && this.throwError) {\n            throw new Eval.EmptyAggregateError();\n        }\n        return val;\n    }\n    /**\n     * Base implementation of putBindings, that evaluates to a term and then calls putTerm.\n     * The WildcardCountAggregator will completely discard this implementation.\n     * @param bindings\n     */\n    async putBindings(bindings) {\n        if (this.errorOccurred) {\n            return;\n        }\n        try {\n            const term = await this.evaluator.evaluate(bindings);\n            if (!term || this.errorOccurred) {\n                return;\n            }\n            // Handle DISTINCT before putting the term\n            if (!this.distinct || !this.variableValues.has(RdfString.termToString(term))) {\n                this.putTerm(term);\n                if (this.distinct) {\n                    this.variableValues.add(RdfString.termToString(term));\n                }\n            }\n        }\n        catch (error) {\n            this.safeThrow(error);\n        }\n    }\n    async result() {\n        if (this.errorOccurred) {\n            return undefined;\n        }\n        return this.termResult();\n    }\n    safeThrow(err) {\n        if (this.throwError) {\n            throw err;\n        }\n        else {\n            this.errorOccurred = true;\n        }\n    }\n    termToNumericOrError(term) {\n        if (term.termType !== 'Literal') {\n            throw new Error(`Term with value ${term.value} has type ${term.termType} and is not a numeric literal`);\n        }\n        else if (!Eval.isSubTypeOf(term.datatype.value, Eval.TypeAlias.SPARQL_NUMERIC, this.superTypeProvider)) {\n            throw new Error(`Term datatype ${term.datatype.value} with value ${term.value} has type ${term.termType} and is not a numeric literal`);\n        }\n        return this.termTransformer.transformLiteral(term);\n    }\n}\nexports.AggregateEvaluator = AggregateEvaluator;\n//# sourceMappingURL=AggregateEvaluator.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorBindingsAggregatorFactory\"), exports);\n__exportStar(require(\"./AggregateEvaluator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GroupConcatAggregator = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst Eval = require(\"@comunica/utils-expression-evaluator\");\nclass GroupConcatAggregator extends bus_bindings_aggregator_factory_1.AggregateEvaluator {\n    constructor(evaluator, distinct, dataFactory, separator, throwError) {\n        super(evaluator, distinct, throwError);\n        this.dataFactory = dataFactory;\n        this.state = undefined;\n        this.lastLanguageValid = true;\n        this.lastLanguage = undefined;\n        this.separator = separator ?? ' ';\n    }\n    emptyValueTerm() {\n        return Eval.typedLiteral('', Eval.TypeURL.XSD_STRING);\n    }\n    putTerm(term) {\n        if (this.state === undefined) {\n            this.state = term.value;\n            if (term.termType === 'Literal') {\n                this.lastLanguage = term.language;\n            }\n        }\n        else {\n            this.state += this.separator + term.value;\n            if (this.lastLanguageValid && term.termType === 'Literal' && this.lastLanguage !== term.language) {\n                this.lastLanguageValid = false;\n                this.lastLanguage = undefined;\n            }\n        }\n    }\n    termResult() {\n        if (this.state === undefined) {\n            return this.emptyValue();\n        }\n        if (this.lastLanguageValid && this.lastLanguage) {\n            return Eval.langString(this.state, this.lastLanguage).toRDF(this.dataFactory);\n        }\n        return Eval.typedLiteral(this.state, Eval.TypeURL.XSD_STRING);\n    }\n}\nexports.GroupConcatAggregator = GroupConcatAggregator;\n//# sourceMappingURL=GroupConcatAggregator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorBindingsAggregatorFactoryGroupConcat = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst GroupConcatAggregator_1 = require(\"./GroupConcatAggregator\");\n/**\n * A comunica Group Concat Expression Evaluator Aggregate Actor.\n */\nclass ActorBindingsAggregatorFactoryGroupConcat extends bus_bindings_aggregator_factory_1.ActorBindingsAggregatorFactory {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (action.expr.aggregator !== 'group_concat') {\n            return (0, core_1.failTest)('This actor only supports the \\'group_concat\\' aggregator.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run({ context, expr }) {\n        return new GroupConcatAggregator_1.GroupConcatAggregator(await this.mediatorExpressionEvaluatorFactory.mediate({ algExpr: expr.expression, context }), expr.distinct, context.getSafe(context_entries_1.KeysInitQuery.dataFactory), expr.separator);\n    }\n}\nexports.ActorBindingsAggregatorFactoryGroupConcat = ActorBindingsAggregatorFactoryGroupConcat;\n//# sourceMappingURL=ActorBindingsAggregatorFactoryGroupConcat.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorBindingsAggregatorFactoryGroupConcat\"), exports);\n__exportStar(require(\"./GroupConcatAggregator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CountAggregator = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass CountAggregator extends bus_bindings_aggregator_factory_1.AggregateEvaluator {\n    constructor(evaluator, distinct, throwError) {\n        super(evaluator, distinct, throwError);\n        this.state = undefined;\n    }\n    emptyValueTerm() {\n        return (0, utils_expression_evaluator_1.typedLiteral)('0', utils_expression_evaluator_1.TypeURL.XSD_INTEGER);\n    }\n    putTerm(_) {\n        if (this.state === undefined) {\n            this.state = 0;\n        }\n        this.state++;\n    }\n    termResult() {\n        if (this.state === undefined) {\n            return this.emptyValue();\n        }\n        return (0, utils_expression_evaluator_1.typedLiteral)(String(this.state), utils_expression_evaluator_1.TypeURL.XSD_INTEGER);\n    }\n}\nexports.CountAggregator = CountAggregator;\n//# sourceMappingURL=CountAggregator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorBindingsAggregatorFactoryCount = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst CountAggregator_1 = require(\"./CountAggregator\");\n/**\n * A comunica Count Expression Evaluator Aggregate Actor.\n */\nclass ActorBindingsAggregatorFactoryCount extends bus_bindings_aggregator_factory_1.ActorBindingsAggregatorFactory {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (action.expr.aggregator !== 'count' ||\n            action.expr.expression.expressionType === sparqlalgebrajs_1.Algebra.expressionTypes.WILDCARD) {\n            return (0, core_1.failTest)('This actor only supports the \\'count\\' aggregator without wildcard.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run({ context, expr }) {\n        return new CountAggregator_1.CountAggregator(await this.mediatorExpressionEvaluatorFactory.mediate({ algExpr: expr.expression, context }), expr.distinct);\n    }\n}\nexports.ActorBindingsAggregatorFactoryCount = ActorBindingsAggregatorFactoryCount;\n//# sourceMappingURL=ActorBindingsAggregatorFactoryCount.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorBindingsAggregatorFactoryCount\"), exports);\n__exportStar(require(\"./CountAggregator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SampleAggregator = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nclass SampleAggregator extends bus_bindings_aggregator_factory_1.AggregateEvaluator {\n    constructor(evaluator, distinct, throwError) {\n        super(evaluator, distinct, throwError);\n        this.state = undefined;\n    }\n    putTerm(term) {\n        // First value is our sample\n        if (this.state === undefined) {\n            this.state = term;\n        }\n    }\n    termResult() {\n        if (this.state === undefined) {\n            return this.emptyValue();\n        }\n        return this.state;\n    }\n}\nexports.SampleAggregator = SampleAggregator;\n//# sourceMappingURL=SampleAggregator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorBindingsAggregatorFactorySample = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst core_1 = require(\"@comunica/core\");\nconst SampleAggregator_1 = require(\"./SampleAggregator\");\n/**\n * A comunica Sample Expression Evaluator Aggregate Actor.\n */\nclass ActorBindingsAggregatorFactorySample extends bus_bindings_aggregator_factory_1.ActorBindingsAggregatorFactory {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (action.expr.aggregator !== 'sample') {\n            return (0, core_1.failTest)('This actor only supports the \\'sample\\' aggregator.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run({ context, expr }) {\n        return new SampleAggregator_1.SampleAggregator(await this.mediatorExpressionEvaluatorFactory.mediate({ algExpr: expr.expression, context }), expr.distinct);\n    }\n}\nexports.ActorBindingsAggregatorFactorySample = ActorBindingsAggregatorFactorySample;\n//# sourceMappingURL=ActorBindingsAggregatorFactorySample.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorBindingsAggregatorFactorySample\"), exports);\n__exportStar(require(\"./SampleAggregator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WildcardCountAggregator = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst RdfString = require(\"rdf-string\");\nclass WildcardCountAggregator extends bus_bindings_aggregator_factory_1.AggregateEvaluator {\n    constructor(evaluator, distinct, throwError) {\n        super(evaluator, distinct, throwError);\n        this.bindingValues = new Map();\n        this.state = undefined;\n    }\n    putTerm(_term) {\n        // Do nothing, not needed\n    }\n    async putBindings(bindings) {\n        if (!this.handleDistinct(bindings)) {\n            if (this.state === undefined) {\n                this.state = 0;\n            }\n            this.state += 1;\n        }\n    }\n    emptyValueTerm() {\n        return (0, utils_expression_evaluator_1.typedLiteral)('0', utils_expression_evaluator_1.TypeURL.XSD_INTEGER);\n    }\n    termResult() {\n        if (this.state === undefined) {\n            return this.emptyValue();\n        }\n        return (0, utils_expression_evaluator_1.typedLiteral)(String(this.state), utils_expression_evaluator_1.TypeURL.XSD_INTEGER);\n    }\n    /**\n     * Returns true if the given bindings should be skipped.\n     * @param bindings\n     * @private\n     */\n    handleDistinct(bindings) {\n        if (this.distinct) {\n            const bindingList = [...bindings];\n            bindingList.sort((first, snd) => first[0].value.localeCompare(snd[0].value));\n            const variables = bindingList.map(([variable]) => variable.value).join(',');\n            const terms = bindingList.map(([, term]) => RdfString.termToString(term)).join(',');\n            const set = this.bindingValues.get(variables);\n            const result = set !== undefined && set.has(terms);\n            // Add to the set:\n            if (!set) {\n                this.bindingValues.set(variables, new Set());\n            }\n            this.bindingValues.get(variables).add(terms);\n            return result;\n        }\n        return false;\n    }\n}\nexports.WildcardCountAggregator = WildcardCountAggregator;\n//# sourceMappingURL=WildcardCountAggregator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorBindingsAggregatorFactoryWildcardCount = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst core_1 = require(\"@comunica/core\");\nconst WildcardCountAggregator_1 = require(\"./WildcardCountAggregator\");\n/**\n * A comunica Wildcard Count Expression Evaluator Aggregate Actor.\n */\nclass ActorBindingsAggregatorFactoryWildcardCount extends bus_bindings_aggregator_factory_1.ActorBindingsAggregatorFactory {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (action.expr.aggregator !== 'count' || action.expr.expression.expressionType !== 'wildcard') {\n            return (0, core_1.failTest)('This actor only supports the \\'count\\' aggregator with wildcard.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run({ context, expr }) {\n        return new WildcardCountAggregator_1.WildcardCountAggregator(await this.mediatorExpressionEvaluatorFactory.mediate({ algExpr: expr.expression, context }), expr.distinct);\n    }\n}\nexports.ActorBindingsAggregatorFactoryWildcardCount = ActorBindingsAggregatorFactoryWildcardCount;\n//# sourceMappingURL=ActorBindingsAggregatorFactoryWildcardCount.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorBindingsAggregatorFactoryWildcardCount\"), exports);\n__exportStar(require(\"./WildcardCountAggregator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AverageAggregator = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst Eval = require(\"@comunica/utils-expression-evaluator\");\nclass AverageAggregator extends bus_bindings_aggregator_factory_1.AggregateEvaluator {\n    constructor(evaluator, distinct, dataFactory, additionFunction, divisionFunction, throwError) {\n        super(evaluator, distinct, throwError);\n        this.dataFactory = dataFactory;\n        this.additionFunction = additionFunction;\n        this.divisionFunction = divisionFunction;\n        this.state = undefined;\n    }\n    emptyValueTerm() {\n        return Eval.typedLiteral('0', Eval.TypeURL.XSD_INTEGER);\n    }\n    putTerm(term) {\n        if (this.state === undefined) {\n            const sum = this.termToNumericOrError(term);\n            this.state = { sum, count: 1 };\n        }\n        else {\n            const internalTerm = this.termToNumericOrError(term);\n            this.state.sum = this.additionFunction\n                .applyOnTerms([this.state.sum, internalTerm], this.evaluator);\n            this.state.count++;\n        }\n    }\n    termResult() {\n        if (this.state === undefined) {\n            return this.emptyValue();\n        }\n        const count = new Eval.IntegerLiteral(this.state.count);\n        const result = this.divisionFunction.applyOnTerms([this.state.sum, count], this.evaluator);\n        return result.toRDF(this.dataFactory);\n    }\n}\nexports.AverageAggregator = AverageAggregator;\n//# sourceMappingURL=AverageAggregator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorBindingsAggregatorFactoryAverage = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst AverageAggregator_1 = require(\"./AverageAggregator\");\n/**\n * A comunica Average Expression Evaluator Aggregate Actor.\n */\nclass ActorBindingsAggregatorFactoryAverage extends bus_bindings_aggregator_factory_1.ActorBindingsAggregatorFactory {\n    constructor(args) {\n        super(args);\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n    }\n    async test(action) {\n        if (action.expr.aggregator !== 'avg') {\n            return (0, core_1.failTest)('This actor only supports the \\'avg\\' aggregator.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run({ context, expr }) {\n        return new AverageAggregator_1.AverageAggregator(await this.mediatorExpressionEvaluatorFactory.mediate({ algExpr: expr.expression, context }), expr.distinct, context.getSafe(context_entries_1.KeysInitQuery.dataFactory), await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.ADDITION,\n            context,\n            requireTermExpression: true,\n        }), await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.DIVISION,\n            context,\n            requireTermExpression: true,\n        }));\n    }\n}\nexports.ActorBindingsAggregatorFactoryAverage = ActorBindingsAggregatorFactoryAverage;\n//# sourceMappingURL=ActorBindingsAggregatorFactoryAverage.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorBindingsAggregatorFactoryAverage\"), exports);\n__exportStar(require(\"./AverageAggregator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SumAggregator = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass SumAggregator extends bus_bindings_aggregator_factory_1.AggregateEvaluator {\n    constructor(evaluator, distinct, dataFactory, additionFunction, throwError) {\n        super(evaluator, distinct, throwError);\n        this.dataFactory = dataFactory;\n        this.additionFunction = additionFunction;\n        this.state = undefined;\n    }\n    emptyValueTerm() {\n        return (0, utils_expression_evaluator_1.typedLiteral)('0', utils_expression_evaluator_1.TypeURL.XSD_INTEGER);\n    }\n    putTerm(term) {\n        if (this.state === undefined) {\n            this.state = this.termToNumericOrError(term);\n        }\n        else {\n            const internalTerm = this.termToNumericOrError(term);\n            this.state = this.additionFunction.applyOnTerms([this.state, internalTerm], this.evaluator);\n        }\n    }\n    termResult() {\n        if (this.state === undefined) {\n            return this.emptyValue();\n        }\n        return this.state.toRDF(this.dataFactory);\n    }\n}\nexports.SumAggregator = SumAggregator;\n//# sourceMappingURL=SumAggregator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorBindingsAggregatorFactorySum = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst SumAggregator_1 = require(\"./SumAggregator\");\n/**\n * A comunica Sum Expression Evaluator Aggregate Actor.\n */\nclass ActorBindingsAggregatorFactorySum extends bus_bindings_aggregator_factory_1.ActorBindingsAggregatorFactory {\n    constructor(args) {\n        super(args);\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n    }\n    async test(action) {\n        if (action.expr.aggregator !== 'sum') {\n            return (0, core_1.failTest)('This actor only supports the \\'sum\\' aggregator.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run({ expr, context }) {\n        return new SumAggregator_1.SumAggregator(await this.mediatorExpressionEvaluatorFactory.mediate({ algExpr: expr.expression, context }), expr.distinct, context.getSafe(context_entries_1.KeysInitQuery.dataFactory), await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.ADDITION,\n            context,\n            requireTermExpression: true,\n        }));\n    }\n}\nexports.ActorBindingsAggregatorFactorySum = ActorBindingsAggregatorFactorySum;\n//# sourceMappingURL=ActorBindingsAggregatorFactorySum.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorBindingsAggregatorFactorySum\"), exports);\n__exportStar(require(\"./SumAggregator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionFunctionIn = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-in\n * This function doesn't require type promotion or subtype-substitution, everything works on TermExpression\n */\nclass ExpressionFunctionIn extends bus_function_factory_1.ExpressionFunctionBase {\n    constructor(equalityFunction) {\n        super({\n            arity: Number.POSITIVE_INFINITY,\n            operator: utils_expression_evaluator_1.SparqlOperator.IN,\n            apply: async (context) => {\n                const { args, mapping, exprEval } = context;\n                const [leftExpr, ...remaining] = args;\n                const left = await exprEval.evaluatorExpressionEvaluation(leftExpr, mapping);\n                return await this.inRecursive(left, { ...context, args: remaining }, []);\n            },\n        });\n        this.equalityFunction = equalityFunction;\n    }\n    checkArity(args) {\n        return args.length > 0;\n    }\n    async inRecursive(needle, context, results) {\n        const { args, mapping, exprEval } = context;\n        if (args.length === 0) {\n            const noErrors = results.every(val => !val);\n            return noErrors ? (0, utils_expression_evaluator_1.bool)(false) : Promise.reject(new utils_expression_evaluator_1.InError(results));\n        }\n        try {\n            // We know this will not be undefined because we check args.length === 0\n            const nextExpression = args.shift();\n            const next = await exprEval.evaluatorExpressionEvaluation(nextExpression, mapping);\n            if (this.equalityFunction.applyOnTerms([needle, next], exprEval).typedValue) {\n                return (0, utils_expression_evaluator_1.bool)(true);\n            }\n            return this.inRecursive(needle, context, [...results, false]);\n        }\n        catch (error) {\n            return this.inRecursive(needle, context, [...results, error]);\n        }\n    }\n}\nexports.ExpressionFunctionIn = ExpressionFunctionIn;\n//# sourceMappingURL=ExpressionFunctionIn.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionIn = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst ExpressionFunctionIn_1 = require(\"./ExpressionFunctionIn\");\n/**\n * A comunica ExpressionFunctionIn Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionIn extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.IN],\n            termFunction: false,\n        });\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n    }\n    async run(args) {\n        const equalityFunction = await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.EQUAL,\n            requireTermExpression: true,\n            context: args.context,\n            arguments: args.arguments,\n        });\n        return new ExpressionFunctionIn_1.ExpressionFunctionIn(equalityFunction);\n    }\n}\nexports.ActorFunctionFactoryExpressionIn = ActorFunctionFactoryExpressionIn;\n//# sourceMappingURL=ActorFunctionFactoryExpressionIn.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionIn\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionFunctionNotIn = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\n/**\n * https://www.w3.org/TR/sparql11-query/#func-not-in\n * This function doesn't require type promotion or subtype-substitution, everything works on TermExpression\n */\nclass ExpressionFunctionNotIn extends bus_function_factory_1.ExpressionFunctionBase {\n    constructor(inFunction) {\n        super({\n            arity: Number.POSITIVE_INFINITY,\n            operator: utils_expression_evaluator_1.SparqlOperator.NOT_IN,\n            apply: async (context) => {\n                const isIn = await this.inFunction.apply(context);\n                return (0, utils_expression_evaluator_1.bool)(!isIn.typedValue);\n            },\n        });\n        this.inFunction = inFunction;\n    }\n    checkArity(args) {\n        return args.length > 0;\n    }\n}\nexports.ExpressionFunctionNotIn = ExpressionFunctionNotIn;\n//# sourceMappingURL=ExpressionFunctionNotIn.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryExpressionNotIn = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst ExpressionFunctionNotIn_1 = require(\"./ExpressionFunctionNotIn\");\n/**\n * A comunica ExpressionFunctionNotIn Function Factory Actor.\n */\nclass ActorFunctionFactoryExpressionNotIn extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.NOT_IN],\n            termFunction: false,\n        });\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n    }\n    async run(args) {\n        const inFunction = await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.IN,\n            context: args.context,\n            arguments: args.arguments,\n        });\n        return new ExpressionFunctionNotIn_1.ExpressionFunctionNotIn(inFunction);\n    }\n}\nexports.ActorFunctionFactoryExpressionNotIn = ActorFunctionFactoryExpressionNotIn;\n//# sourceMappingURL=ActorFunctionFactoryExpressionNotIn.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryExpressionNotIn\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionGreaterThanEqual = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionGreaterThanEqual extends bus_function_factory_1.TermFunctionBase {\n    constructor(lessThanEqualFunction) {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.GTE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.GTE)\n                .set(['term', 'term'], exprEval => ([first, second]) => \n            // X >= Y -> Y <= X\n            this.lessThanEqualFunction.applyOnTerms([second, first], exprEval))\n                .collect(),\n        });\n        this.lessThanEqualFunction = lessThanEqualFunction;\n    }\n}\nexports.TermFunctionGreaterThanEqual = TermFunctionGreaterThanEqual;\n//# sourceMappingURL=TermFunctionGreaterThanEqual.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermGreaterThanEqual = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionGreaterThanEqual_1 = require(\"./TermFunctionGreaterThanEqual\");\n/**\n * A comunica TermFunctionGreaterThanEqual Function Factory Actor.\n */\nclass ActorFunctionFactoryTermGreaterThanEqual extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.GTE],\n            termFunction: true,\n        });\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n    }\n    async run(args) {\n        const lessThanEqualFunction = await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.LTE,\n            requireTermExpression: true,\n            context: args.context,\n            arguments: args.arguments,\n        });\n        return new TermFunctionGreaterThanEqual_1.TermFunctionGreaterThanEqual(lessThanEqualFunction);\n    }\n}\nexports.ActorFunctionFactoryTermGreaterThanEqual = ActorFunctionFactoryTermGreaterThanEqual;\n//# sourceMappingURL=ActorFunctionFactoryTermGreaterThanEqual.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermGreaterThanEqual\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionGreaterThan = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionGreaterThan extends bus_function_factory_1.TermFunctionBase {\n    constructor(lessThanFunction) {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.GT,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.GT)\n                .set(['term', 'term'], expressionEvaluator => ([first, second]) => \n            // X < Y -> Y > X\n            this.lessThanFunction.applyOnTerms([second, first], expressionEvaluator))\n                .collect(),\n        });\n        this.lessThanFunction = lessThanFunction;\n    }\n}\nexports.TermFunctionGreaterThan = TermFunctionGreaterThan;\n//# sourceMappingURL=TermFunctionGreaterThan.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermGreaterThan = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionGreaterThan_1 = require(\"./TermFunctionGreaterThan\");\n/**\n * A comunica TermFunctionGreaterThan Function Factory Actor.\n */\nclass ActorFunctionFactoryTermGreaterThan extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.GT],\n            termFunction: true,\n        });\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n    }\n    async run(args) {\n        const lessThanFunction = await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.LT,\n            requireTermExpression: true,\n            context: args.context,\n            arguments: args.arguments,\n        });\n        return new TermFunctionGreaterThan_1.TermFunctionGreaterThan(lessThanFunction);\n    }\n}\nexports.ActorFunctionFactoryTermGreaterThan = ActorFunctionFactoryTermGreaterThan;\n//# sourceMappingURL=ActorFunctionFactoryTermGreaterThan.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermGreaterThan\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionInequality = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionInequality extends bus_function_factory_1.TermFunctionBase {\n    constructor(equalityFunction) {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.NOT_EQUAL,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.NOT_EQUAL)\n                .set(['term', 'term'], expressionEvaluator => ([first, second]) => (0, utils_expression_evaluator_1.bool)(!this.equalityFunction\n                .applyOnTerms([first, second], expressionEvaluator).typedValue))\n                .collect(),\n        });\n        this.equalityFunction = equalityFunction;\n    }\n}\nexports.TermFunctionInequality = TermFunctionInequality;\n//# sourceMappingURL=TermFunctionInequality.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermInequality = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionInequality_1 = require(\"./TermFunctionInequality\");\n/**\n * A comunica TermFunctionInequality Function Factory Actor.\n */\nclass ActorFunctionFactoryTermInequality extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.NOT_EQUAL],\n            termFunction: true,\n        });\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n    }\n    async run(args) {\n        const equalityFunction = await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.EQUAL,\n            requireTermExpression: true,\n            context: args.context,\n            arguments: args.arguments,\n        });\n        return new TermFunctionInequality_1.TermFunctionInequality(equalityFunction);\n    }\n}\nexports.ActorFunctionFactoryTermInequality = ActorFunctionFactoryTermInequality;\n//# sourceMappingURL=ActorFunctionFactoryTermInequality.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermInequality\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionLesserThanEqual = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionLesserThanEqual extends bus_function_factory_1.TermFunctionBase {\n    constructor(equalityFunction, lessThanFunction) {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.LTE,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.LTE)\n                .set(['term', 'term'], exprEval => ([first, second]) => \n            // X <= Y -> X < Y || X = Y\n            // First check if the first is lesser than the second, then check if they are equal.\n            // Doing this, the correct error will be thrown,\n            // each type that has a lesserThanEqual has a matching lesserThan.\n            (0, utils_expression_evaluator_1.bool)(this.lessThanFunction.applyOnTerms([first, second], exprEval)\n                .typedValue ||\n                this.equalityFunction.applyOnTerms([first, second], exprEval)\n                    .typedValue))\n                .collect(),\n        });\n        this.equalityFunction = equalityFunction;\n        this.lessThanFunction = lessThanFunction;\n    }\n}\nexports.TermFunctionLesserThanEqual = TermFunctionLesserThanEqual;\n//# sourceMappingURL=TermFunctionLesserThanEqual.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermLesserThanEqual = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionLesserThanEqual_1 = require(\"./TermFunctionLesserThanEqual\");\n/**\n * A comunica TermFunctionLesserThanEqual Function Factory Actor.\n */\nclass ActorFunctionFactoryTermLesserThanEqual extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.LTE],\n            termFunction: true,\n        });\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n    }\n    async run(args) {\n        const equalityFunction = await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.EQUAL,\n            requireTermExpression: true,\n            context: args.context,\n            arguments: args.arguments,\n        });\n        const lessThanFunction = await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.LT,\n            requireTermExpression: true,\n            context: args.context,\n            arguments: args.arguments,\n        });\n        return new TermFunctionLesserThanEqual_1.TermFunctionLesserThanEqual(equalityFunction, lessThanFunction);\n    }\n}\nexports.ActorFunctionFactoryTermLesserThanEqual = ActorFunctionFactoryTermLesserThanEqual;\n//# sourceMappingURL=ActorFunctionFactoryTermLesserThanEqual.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermLesserThanEqual\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermFunctionLesserThan = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nclass TermFunctionLesserThan extends bus_function_factory_1.TermFunctionBase {\n    constructor(equalityFunction) {\n        super({\n            arity: 2,\n            operator: utils_expression_evaluator_1.SparqlOperator.LT,\n            overloads: (0, utils_expression_evaluator_1.declare)(utils_expression_evaluator_1.SparqlOperator.LT)\n                .numberTest(() => (left, right) => left < right)\n                .stringTest(() => (left, right) => left.localeCompare(right) === -1)\n                .booleanTest(() => (left, right) => left < right)\n                .dateTimeTest(exprEval => (left, right) => (0, utils_expression_evaluator_1.toUTCDate)(left, exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.defaultTimeZone)).getTime() <\n                (0, utils_expression_evaluator_1.toUTCDate)(right, exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.defaultTimeZone)).getTime())\n                .copy({\n                // https://www.w3.org/TR/xpath-functions/#func-date-less-than\n                from: [utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME, utils_expression_evaluator_1.TypeURL.XSD_DATE_TIME],\n                to: [utils_expression_evaluator_1.TypeURL.XSD_DATE, utils_expression_evaluator_1.TypeURL.XSD_DATE],\n            })\n                .set([utils_expression_evaluator_1.TypeURL.XSD_YEAR_MONTH_DURATION, utils_expression_evaluator_1.TypeURL.XSD_YEAR_MONTH_DURATION], () => ([dur1L, dur2L]) => \n            // https://www.w3.org/TR/xpath-functions/#func-yearMonthDuration-less-than\n            (0, utils_expression_evaluator_1.bool)((0, utils_expression_evaluator_1.yearMonthDurationsToMonths)((0, utils_expression_evaluator_1.defaultedYearMonthDurationRepresentation)(dur1L.typedValue)) <\n                (0, utils_expression_evaluator_1.yearMonthDurationsToMonths)((0, utils_expression_evaluator_1.defaultedYearMonthDurationRepresentation)(dur2L.typedValue))))\n                .set([utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION, utils_expression_evaluator_1.TypeURL.XSD_DAY_TIME_DURATION], () => ([dur1, dur2]) => \n            // https://www.w3.org/TR/xpath-functions/#func-dayTimeDuration-greater-than\n            (0, utils_expression_evaluator_1.bool)((0, utils_expression_evaluator_1.dayTimeDurationsToSeconds)((0, utils_expression_evaluator_1.defaultedDayTimeDurationRepresentation)(dur1.typedValue)) <\n                (0, utils_expression_evaluator_1.dayTimeDurationsToSeconds)((0, utils_expression_evaluator_1.defaultedDayTimeDurationRepresentation)(dur2.typedValue))))\n                .set([utils_expression_evaluator_1.TypeURL.XSD_TIME, utils_expression_evaluator_1.TypeURL.XSD_TIME], exprEval => ([time1, time2]) => \n            // https://www.w3.org/TR/xpath-functions/#func-time-less-than\n            (0, utils_expression_evaluator_1.bool)((0, utils_expression_evaluator_1.toUTCDate)((0, utils_expression_evaluator_1.defaultedDateTimeRepresentation)(time1.typedValue), exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.defaultTimeZone)).getTime() <\n                (0, utils_expression_evaluator_1.toUTCDate)((0, utils_expression_evaluator_1.defaultedDateTimeRepresentation)(time2.typedValue), exprEval.context.getSafe(context_entries_1.KeysExpressionEvaluator.defaultTimeZone)).getTime()))\n                .set(['quad', 'quad'], exprEval => ([left, right]) => {\n                const subjectTest = this.quadComponentTest(left.subject, right.subject, exprEval);\n                if (subjectTest !== undefined) {\n                    return (0, utils_expression_evaluator_1.bool)(subjectTest);\n                }\n                const predicateTest = this.quadComponentTest(left.predicate, right.predicate, exprEval);\n                if (predicateTest !== undefined) {\n                    return (0, utils_expression_evaluator_1.bool)(predicateTest);\n                }\n                const objectTest = this.quadComponentTest(left.object, right.object, exprEval);\n                if (objectTest !== undefined) {\n                    return (0, utils_expression_evaluator_1.bool)(objectTest);\n                }\n                return (0, utils_expression_evaluator_1.bool)(this.quadComponentTest(left.graph, right.graph, exprEval) ?? false);\n            }, false)\n                .collect(),\n        });\n        this.equalityFunction = equalityFunction;\n    }\n    quadComponentTest(left, right, exprEval) {\n        // If components are equal, we don't have an answer\n        const componentEqual = this.equalityFunction.applyOnTerms([left, right], exprEval);\n        if (componentEqual.typedValue) {\n            return undefined;\n        }\n        const componentLess = this.applyOnTerms([left, right], exprEval);\n        return componentLess.typedValue;\n    }\n}\nexports.TermFunctionLesserThan = TermFunctionLesserThan;\n//# sourceMappingURL=TermFunctionLesserThan.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorFunctionFactoryTermLesserThan = void 0;\nconst bus_function_factory_1 = require(\"@comunica/bus-function-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst TermFunctionLesserThan_1 = require(\"./TermFunctionLesserThan\");\n/**\n * A comunica TermFunctionLesserThan Function Factory Actor.\n */\nclass ActorFunctionFactoryTermLesserThan extends bus_function_factory_1.ActorFunctionFactoryDedicated {\n    constructor(args) {\n        super({\n            ...args,\n            functionNames: [utils_expression_evaluator_1.SparqlOperator.LT],\n            termFunction: true,\n        });\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n    }\n    async run(args) {\n        const equalityFunction = await this.mediatorFunctionFactory.mediate({\n            functionName: utils_expression_evaluator_1.SparqlOperator.EQUAL,\n            requireTermExpression: true,\n            context: args.context,\n            arguments: args.arguments,\n        });\n        return new TermFunctionLesserThan_1.TermFunctionLesserThan(equalityFunction);\n    }\n}\nexports.ActorFunctionFactoryTermLesserThan = ActorFunctionFactoryTermLesserThan;\n//# sourceMappingURL=ActorFunctionFactoryTermLesserThan.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorFunctionFactoryTermLesserThan\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHttpWayback = void 0;\nconst bus_http_1 = require(\"@comunica/bus-http\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst stream_to_string_1 = require(\"@jeswr/stream-to-string\");\nconst WAYBACK_URL = 'http://wayback.archive-it.org/';\nfunction addWayback(action) {\n    const request = new Request(action.input, action.init);\n    return {\n        input: new Request(new URL(`/${request.url}`, WAYBACK_URL), request),\n    };\n}\nfunction getProxyHandler(context) {\n    const handler = context.get(context_entries_1.KeysHttpProxy.httpProxyHandler);\n    if (handler) {\n        return (action) => handler.getProxy(addWayback(action));\n    }\n    return (action) => Promise.resolve(addWayback(action));\n}\n/**\n * A Comunica actor to intercept HTTP requests to recover broken links using the WayBack Machine\n */\nclass ActorHttpWayback extends bus_http_1.ActorHttp {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        let result = await this.mediatorHttp.mediate(action);\n        if (result.status === 404 && action.context.get(context_entries_1.KeysHttpWayback.recoverBrokenLinks)) {\n            let fallbackResult = await this.mediatorHttp.mediate({\n                ...action,\n                context: action.context\n                    .set(context_entries_1.KeysHttpWayback.recoverBrokenLinks, false)\n                    .set(context_entries_1.KeysHttpProxy.httpProxyHandler, { getProxy: getProxyHandler(action.context) }),\n            });\n            // If the wayback machine returns a 200 status then use that result\n            if (fallbackResult.status === 200) {\n                [result, fallbackResult] = [fallbackResult, result];\n            }\n            // Consume stream to avoid process\n            const { body } = fallbackResult;\n            if (body) {\n                if ('cancel' in body && typeof body.cancel === 'function') {\n                    await body.cancel();\n                }\n                else if ('destroy' in body && typeof body.destroy === 'function') {\n                    body.destroy();\n                }\n                else {\n                    await (0, stream_to_string_1.stringify)(bus_http_1.ActorHttp.toNodeReadable(body));\n                }\n            }\n        }\n        return result;\n    }\n}\nexports.ActorHttpWayback = ActorHttpWayback;\n//# sourceMappingURL=ActorHttpWayback.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHttpWayback\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ERROR_CODES = exports.ErrorCoded = void 0;\n/**\n * An error that has a certain error code.\n *\n * The error code can be any string.\n * All standardized error codes are listed in {@link ERROR_CODES}.\n */\nclass ErrorCoded extends Error {\n    /* istanbul ignore next */\n    constructor(message, code) {\n        super(message);\n        this.code = code;\n    }\n}\nexports.ErrorCoded = ErrorCoded;\n/**\n * All standardized JSON-LD error codes.\n * @see https://w3c.github.io/json-ld-api/#dom-jsonlderrorcode\n */\n// tslint:disable:object-literal-sort-keys\nvar ERROR_CODES;\n(function (ERROR_CODES) {\n    ERROR_CODES[\"COLLIDING_KEYWORDS\"] = \"colliding keywords\";\n    ERROR_CODES[\"CONFLICTING_INDEXES\"] = \"conflicting indexes\";\n    ERROR_CODES[\"CYCLIC_IRI_MAPPING\"] = \"cyclic IRI mapping\";\n    ERROR_CODES[\"INVALID_ID_VALUE\"] = \"invalid @id value\";\n    ERROR_CODES[\"INVALID_INDEX_VALUE\"] = \"invalid @index value\";\n    ERROR_CODES[\"INVALID_NEST_VALUE\"] = \"invalid @nest value\";\n    ERROR_CODES[\"INVALID_PREFIX_VALUE\"] = \"invalid @prefix value\";\n    ERROR_CODES[\"INVALID_PROPAGATE_VALUE\"] = \"invalid @propagate value\";\n    ERROR_CODES[\"INVALID_REVERSE_VALUE\"] = \"invalid @reverse value\";\n    ERROR_CODES[\"INVALID_IMPORT_VALUE\"] = \"invalid @import value\";\n    ERROR_CODES[\"INVALID_VERSION_VALUE\"] = \"invalid @version value\";\n    ERROR_CODES[\"INVALID_BASE_IRI\"] = \"invalid base IRI\";\n    ERROR_CODES[\"INVALID_CONTAINER_MAPPING\"] = \"invalid container mapping\";\n    ERROR_CODES[\"INVALID_CONTEXT_ENTRY\"] = \"invalid context entry\";\n    ERROR_CODES[\"INVALID_CONTEXT_NULLIFICATION\"] = \"invalid context nullification\";\n    ERROR_CODES[\"INVALID_DEFAULT_LANGUAGE\"] = \"invalid default language\";\n    ERROR_CODES[\"INVALID_INCLUDED_VALUE\"] = \"invalid @included value\";\n    ERROR_CODES[\"INVALID_IRI_MAPPING\"] = \"invalid IRI mapping\";\n    ERROR_CODES[\"INVALID_JSON_LITERAL\"] = \"invalid JSON literal\";\n    ERROR_CODES[\"INVALID_KEYWORD_ALIAS\"] = \"invalid keyword alias\";\n    ERROR_CODES[\"INVALID_LANGUAGE_MAP_VALUE\"] = \"invalid language map value\";\n    ERROR_CODES[\"INVALID_LANGUAGE_MAPPING\"] = \"invalid language mapping\";\n    ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_STRING\"] = \"invalid language-tagged string\";\n    ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_VALUE\"] = \"invalid language-tagged value\";\n    ERROR_CODES[\"INVALID_LOCAL_CONTEXT\"] = \"invalid local context\";\n    ERROR_CODES[\"INVALID_REMOTE_CONTEXT\"] = \"invalid remote context\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY\"] = \"invalid reverse property\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY_MAP\"] = \"invalid reverse property map\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY_VALUE\"] = \"invalid reverse property value\";\n    ERROR_CODES[\"INVALID_SCOPED_CONTEXT\"] = \"invalid scoped context\";\n    ERROR_CODES[\"INVALID_SCRIPT_ELEMENT\"] = \"invalid script element\";\n    ERROR_CODES[\"INVALID_SET_OR_LIST_OBJECT\"] = \"invalid set or list object\";\n    ERROR_CODES[\"INVALID_TERM_DEFINITION\"] = \"invalid term definition\";\n    ERROR_CODES[\"INVALID_TYPE_MAPPING\"] = \"invalid type mapping\";\n    ERROR_CODES[\"INVALID_TYPE_VALUE\"] = \"invalid type value\";\n    ERROR_CODES[\"INVALID_TYPED_VALUE\"] = \"invalid typed value\";\n    ERROR_CODES[\"INVALID_VALUE_OBJECT\"] = \"invalid value object\";\n    ERROR_CODES[\"INVALID_VALUE_OBJECT_VALUE\"] = \"invalid value object value\";\n    ERROR_CODES[\"INVALID_VOCAB_MAPPING\"] = \"invalid vocab mapping\";\n    ERROR_CODES[\"IRI_CONFUSED_WITH_PREFIX\"] = \"IRI confused with prefix\";\n    ERROR_CODES[\"KEYWORD_REDEFINITION\"] = \"keyword redefinition\";\n    ERROR_CODES[\"LOADING_DOCUMENT_FAILED\"] = \"loading document failed\";\n    ERROR_CODES[\"LOADING_REMOTE_CONTEXT_FAILED\"] = \"loading remote context failed\";\n    ERROR_CODES[\"MULTIPLE_CONTEXT_LINK_HEADERS\"] = \"multiple context link headers\";\n    ERROR_CODES[\"PROCESSING_MODE_CONFLICT\"] = \"processing mode conflict\";\n    ERROR_CODES[\"PROTECTED_TERM_REDEFINITION\"] = \"protected term redefinition\";\n    ERROR_CODES[\"CONTEXT_OVERFLOW\"] = \"context overflow\";\n    ERROR_CODES[\"INVALID_BASE_DIRECTION\"] = \"invalid base direction\";\n    ERROR_CODES[\"RECURSIVE_CONTEXT_INCLUSION\"] = \"recursive context inclusion\";\n    ERROR_CODES[\"INVALID_STREAMING_KEY_ORDER\"] = \"invalid streaming key order\";\n    /**\n     * JSON-LD-star\n     */\n    ERROR_CODES[\"INVALID_EMBEDDED_NODE\"] = \"invalid embedded node\";\n    ERROR_CODES[\"INVALID_ANNOTATION\"] = \"invalid annotation\";\n})(ERROR_CODES = exports.ERROR_CODES || (exports.ERROR_CODES = {}));\n//# sourceMappingURL=ErrorCoded.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchDocumentLoader = void 0;\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst http_link_header_1 = require(\"http-link-header\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * Loads documents via the fetch API.\n */\nclass FetchDocumentLoader {\n    constructor(fetcher) {\n        this.fetcher = fetcher;\n    }\n    async load(url) {\n        const response = await (this.fetcher || fetch)(url, { headers: new Headers({ accept: 'application/ld+json' }) });\n        if (response.ok && response.headers) {\n            let mediaType = response.headers.get('Content-Type');\n            if (mediaType) {\n                const colonPos = mediaType.indexOf(';');\n                if (colonPos > 0) {\n                    mediaType = mediaType.substr(0, colonPos);\n                }\n            }\n            if (mediaType === 'application/ld+json') {\n                // Return JSON-LD if proper content type was returned\n                return (await response.json());\n            }\n            else {\n                // Check for alternate link for a non-JSON-LD response\n                if (response.headers.has('Link')) {\n                    let alternateUrl;\n                    response.headers.forEach((value, key) => {\n                        if (key === 'link') {\n                            const linkHeader = (0, http_link_header_1.parse)(value);\n                            for (const link of linkHeader.get('type', 'application/ld+json')) {\n                                if (link.rel === 'alternate') {\n                                    if (alternateUrl) {\n                                        throw new Error('Multiple JSON-LD alternate links were found on ' + url);\n                                    }\n                                    alternateUrl = (0, relative_to_absolute_iri_1.resolve)(link.uri, url);\n                                }\n                            }\n                        }\n                    });\n                    if (alternateUrl) {\n                        return this.load(alternateUrl);\n                    }\n                }\n                throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, ErrorCoded_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n            }\n        }\n        else {\n            throw new Error(response.statusText || `Status code: ${response.status}`);\n        }\n    }\n}\nexports.FetchDocumentLoader = FetchDocumentLoader;\n//# sourceMappingURL=FetchDocumentLoader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nclass Util {\n    /**\n     * Check if the given term is a valid compact IRI.\n     * Otherwise, it may be an IRI.\n     * @param {string} term A term.\n     * @return {boolean} If it is a compact IRI.\n     */\n    static isCompactIri(term) {\n        return term.indexOf(':') > 0 && !(term && term[0] === '#');\n    }\n    /**\n     * Get the prefix from the given term.\n     * @see https://json-ld.org/spec/latest/json-ld/#compact-iris\n     * @param {string} term A term that is an URL or a prefixed URL.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @return {string} The prefix or null.\n     */\n    static getPrefix(term, context) {\n        // Do not consider relative IRIs starting with a hash as compact IRIs\n        if (term && term[0] === '#') {\n            return null;\n        }\n        const separatorPos = term.indexOf(':');\n        if (separatorPos >= 0) {\n            // Suffix can not begin with two slashes\n            if (term.length > separatorPos + 1\n                && term.charAt(separatorPos + 1) === '/'\n                && term.charAt(separatorPos + 2) === '/') {\n                return null;\n            }\n            const prefix = term.substr(0, separatorPos);\n            // Prefix can not be an underscore (this is a blank node)\n            if (prefix === '_') {\n                return null;\n            }\n            // Prefix must match a term in the active context\n            if (context[prefix]) {\n                return prefix;\n            }\n        }\n        return null;\n    }\n    /**\n     * From a given context entry value, get the string value, or the @id field.\n     * @param contextValue A value for a term in a context.\n     * @return {string} The id value, or null.\n     */\n    static getContextValueId(contextValue) {\n        if (contextValue === null || typeof contextValue === 'string') {\n            return contextValue;\n        }\n        const id = contextValue['@id'];\n        return id ? id : null;\n    }\n    /**\n     * Check if the given simple term definition (string-based value of a context term)\n     * should be considered a prefix.\n     * @param value A simple term definition value.\n     * @param options Options that define the way how expansion must be done.\n     */\n    static isSimpleTermDefinitionPrefix(value, options) {\n        return !Util.isPotentialKeyword(value)\n            && (options.allowPrefixNonGenDelims || (typeof value === 'string' && (value[0] === '_' || Util.isPrefixIriEndingWithGenDelim(value))));\n    }\n    /**\n     * Check if the given keyword is of the keyword format \"@\"1*ALPHA.\n     * @param {string} keyword A potential keyword.\n     * @return {boolean} If the given keyword is of the keyword format.\n     */\n    static isPotentialKeyword(keyword) {\n        return typeof keyword === 'string' && Util.KEYWORD_REGEX.test(keyword);\n    }\n    /**\n     * Check if the given prefix ends with a gen-delim character.\n     * @param {string} prefixIri A prefix IRI.\n     * @return {boolean} If the given prefix IRI is valid.\n     */\n    static isPrefixIriEndingWithGenDelim(prefixIri) {\n        return Util.ENDS_WITH_GEN_DELIM.test(prefixIri);\n    }\n    /**\n     * Check if the given context value can be a prefix value.\n     * @param value A context value.\n     * @return {boolean} If it can be a prefix value.\n     */\n    static isPrefixValue(value) {\n        return value && (typeof value === 'string' || (value && typeof value === 'object'));\n    }\n    /**\n     * Check if the given IRI is valid.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIri(iri) {\n        return Boolean(iri && Util.IRI_REGEX.test(iri));\n    }\n    /**\n     * Check if the given IRI is valid, this includes the possibility of being a relative IRI.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIriWeak(iri) {\n        return !!iri && iri[0] !== ':' && Util.IRI_REGEX_WEAK.test(iri);\n    }\n    /**\n     * Check if the given keyword is a defined according to the JSON-LD specification.\n     * @param {string} keyword A potential keyword.\n     * @return {boolean} If the given keyword is valid.\n     */\n    static isValidKeyword(keyword) {\n        return Util.VALID_KEYWORDS[keyword];\n    }\n    /**\n     * Check if the given term is protected in the context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {string} key A context term.\n     * @return {boolean} If the given term has an @protected flag.\n     */\n    static isTermProtected(context, key) {\n        const value = context[key];\n        return !(typeof value === 'string') && value && value['@protected'];\n    }\n    /**\n     * Check if the given context has at least one protected term.\n     * @param context A context.\n     * @return If the context has a protected term.\n     */\n    static hasProtectedTerms(context) {\n        for (const key of Object.keys(context)) {\n            if (Util.isTermProtected(context, key)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    /**\n     * Check if the given key is an internal reserved keyword.\n     * @param key A context key.\n     */\n    static isReservedInternalKeyword(key) {\n        return key.startsWith('@__');\n    }\n    /**\n     * Check if two objects are deepEqual to on another.\n     * @param object1 The first object to test.\n     * @param object2 The second object to test.\n     */\n    static deepEqual(object1, object2) {\n        const objKeys1 = Object.keys(object1);\n        const objKeys2 = Object.keys(object2);\n        if (objKeys1.length !== objKeys2.length)\n            return false;\n        return objKeys1.every((key) => {\n            const value1 = object1[key];\n            const value2 = object2[key];\n            return (value1 === value2) || (value1 !== null &&\n                value2 !== null &&\n                typeof value1 === \"object\" &&\n                typeof value2 === \"object\" &&\n                this.deepEqual(value1, value2));\n        });\n    }\n    ;\n}\n// Regex for valid IRIs\nUtil.IRI_REGEX = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^ \"<>{}|\\\\\\[\\]`#]*(#[^#]*)?$/;\n// Weaker regex for valid IRIs, this includes relative IRIs\nUtil.IRI_REGEX_WEAK = /(?::[^:])|\\//;\n// Regex for keyword form\nUtil.KEYWORD_REGEX = /^@[a-z]+$/i;\n// Regex to see if an IRI ends with a gen-delim character (see RFC 3986)\nUtil.ENDS_WITH_GEN_DELIM = /[:/?#\\[\\]@]$/;\n// Regex for language tags\nUtil.REGEX_LANGUAGE_TAG = /^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/;\n// Regex for base directions\nUtil.REGEX_DIRECTION_TAG = /^(ltr)|(rtl)$/;\n// All known valid JSON-LD keywords\n// @see https://www.w3.org/TR/json-ld11/#keywords\nUtil.VALID_KEYWORDS = {\n    '@annotation': true,\n    '@base': true,\n    '@container': true,\n    '@context': true,\n    '@direction': true,\n    '@graph': true,\n    '@id': true,\n    '@import': true,\n    '@included': true,\n    '@index': true,\n    '@json': true,\n    '@language': true,\n    '@list': true,\n    '@nest': true,\n    '@none': true,\n    '@prefix': true,\n    '@propagate': true,\n    '@protected': true,\n    '@reverse': true,\n    '@set': true,\n    '@type': true,\n    '@value': true,\n    '@version': true,\n    '@vocab': true,\n};\n// Keys in the contexts that will not be expanded based on the base IRI\nUtil.EXPAND_KEYS_BLACKLIST = [\n    '@base',\n    '@vocab',\n    '@language',\n    '@version',\n    '@direction',\n];\n// Keys in the contexts that may not be aliased from\nUtil.ALIAS_DOMAIN_BLACKLIST = [\n    '@container',\n    '@graph',\n    '@id',\n    '@index',\n    '@list',\n    '@nest',\n    '@none',\n    '@prefix',\n    '@reverse',\n    '@set',\n    '@type',\n    '@value',\n    '@version',\n];\n// Keys in the contexts that may not be aliased to\nUtil.ALIAS_RANGE_BLACKLIST = [\n    '@context',\n    '@preserve',\n];\n// All valid @container values\nUtil.CONTAINERS = [\n    '@list',\n    '@set',\n    '@index',\n    '@language',\n    '@graph',\n    '@id',\n    '@type',\n];\n// All valid @container values under processing mode 1.0\nUtil.CONTAINERS_1_0 = [\n    '@list',\n    '@set',\n    '@index',\n];\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultExpandOptions = exports.JsonLdContextNormalized = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst Util_1 = require(\"./Util\");\n/**\n * A class exposing operations over a normalized JSON-LD context.\n */\nclass JsonLdContextNormalized {\n    constructor(contextRaw) {\n        this.contextRaw = contextRaw;\n    }\n    /**\n     * @return The raw inner context.\n     */\n    getContextRaw() {\n        return this.contextRaw;\n    }\n    /**\n     * Expand the term or prefix of the given term if it has one,\n     * otherwise return the term as-is.\n     *\n     * This will try to expand the IRI as much as possible.\n     *\n     * Iff in vocab-mode, then other references to other terms in the context can be used,\n     * such as to `myTerm`:\n     * ```\n     * {\n     *   \"myTerm\": \"http://example.org/myLongTerm\"\n     * }\n     * ```\n     *\n     * @param {string} term A term that is an URL or a prefixed URL.\n     * @param {boolean} expandVocab If the term is a predicate or type and should be expanded based on @vocab,\n     *                              otherwise it is considered a regular term that is expanded based on @base.\n     * @param {IExpandOptions} options Options that define the way how expansion must be done.\n     * @return {string} The expanded term, the term as-is, or null if it was explicitly disabled in the context.\n     * @throws If the term is aliased to an invalid value (not a string, IRI or keyword).\n     */\n    expandTerm(term, expandVocab, options = exports.defaultExpandOptions) {\n        const contextValue = this.contextRaw[term];\n        // Immediately return if the term was disabled in the context\n        if (contextValue === null || (contextValue && contextValue['@id'] === null)) {\n            return null;\n        }\n        // Check the @id\n        let validIriMapping = true;\n        if (contextValue && expandVocab) {\n            const value = Util_1.Util.getContextValueId(contextValue);\n            if (value && value !== term) {\n                if (typeof value !== 'string' || (!Util_1.Util.isValidIri(value) && !Util_1.Util.isValidKeyword(value))) {\n                    // Don't mark this mapping as invalid if we have an unknown keyword, but of the correct form.\n                    if (!Util_1.Util.isPotentialKeyword(value)) {\n                        validIriMapping = false;\n                    }\n                }\n                else {\n                    return value;\n                }\n            }\n        }\n        // Check if the term is prefixed\n        const prefix = Util_1.Util.getPrefix(term, this.contextRaw);\n        const vocab = this.contextRaw['@vocab'];\n        const vocabRelative = (!!vocab || vocab === '') && vocab.indexOf(':') < 0;\n        const base = this.contextRaw['@base'];\n        const potentialKeyword = Util_1.Util.isPotentialKeyword(term);\n        if (prefix) {\n            const contextPrefixValue = this.contextRaw[prefix];\n            const value = Util_1.Util.getContextValueId(contextPrefixValue);\n            if (value) {\n                if (typeof contextPrefixValue === 'string' || !options.allowPrefixForcing) {\n                    // If we have a simple term definition,\n                    // check the last character of the prefix to determine whether or not it is a prefix.\n                    // Validate that prefix ends with gen-delim character, unless @prefix is true\n                    if (!Util_1.Util.isSimpleTermDefinitionPrefix(value, options)) {\n                        // Treat the term as an absolute IRI\n                        return term;\n                    }\n                }\n                else {\n                    // If we have an expanded term definition, default to @prefix: false\n                    if (value[0] !== '_' && !potentialKeyword && !contextPrefixValue['@prefix'] && !(term in this.contextRaw)) {\n                        // Treat the term as an absolute IRI\n                        return term;\n                    }\n                }\n                return value + term.substr(prefix.length + 1);\n            }\n        }\n        else if (expandVocab && ((vocab || vocab === '') || (options.allowVocabRelativeToBase && (base && vocabRelative)))\n            && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n            if (vocabRelative) {\n                if (options.allowVocabRelativeToBase) {\n                    return ((vocab || base) ? (0, relative_to_absolute_iri_1.resolve)(vocab, base) : '') + term;\n                }\n                else {\n                    throw new ErrorCoded_1.ErrorCoded(`Relative vocab expansion for term '${term}' with vocab '${vocab}' is not allowed.`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n                }\n            }\n            else {\n                return vocab + term;\n            }\n        }\n        else if (!expandVocab && base && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n            return (0, relative_to_absolute_iri_1.resolve)(term, base);\n        }\n        // Return the term as-is, unless we discovered an invalid IRI mapping for this term in the context earlier.\n        if (validIriMapping) {\n            return term;\n        }\n        else {\n            throw new ErrorCoded_1.ErrorCoded(`Invalid IRI mapping found for context entry '${term}': '${JSON.stringify(contextValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n        }\n    }\n    /**\n     * Compact the given term using @base, @vocab, an aliased term, or a prefixed term.\n     *\n     * This will try to compact the IRI as much as possible.\n     *\n     * @param {string} iri An IRI to compact.\n     * @param {boolean} vocab If the term is a predicate or type and should be compacted based on @vocab,\n     *                        otherwise it is considered a regular term that is compacted based on @base.\n     * @return {string} The compacted term or the IRI as-is.\n     */\n    compactIri(iri, vocab) {\n        // Try @vocab compacting\n        if (vocab && this.contextRaw['@vocab'] && iri.startsWith(this.contextRaw['@vocab'])) {\n            return iri.substr(this.contextRaw['@vocab'].length);\n        }\n        // Try @base compacting\n        if (!vocab && this.contextRaw['@base'] && iri.startsWith(this.contextRaw['@base'])) {\n            return iri.substr(this.contextRaw['@base'].length);\n        }\n        // Loop over all terms in the context\n        // This will try to prefix as short as possible.\n        // Once a fully compacted alias is found, return immediately, as we can not go any shorter.\n        const shortestPrefixing = { prefix: '', suffix: iri };\n        for (const key in this.contextRaw) {\n            const value = this.contextRaw[key];\n            if (value && !Util_1.Util.isPotentialKeyword(key)) {\n                const contextIri = Util_1.Util.getContextValueId(value);\n                if (iri.startsWith(contextIri)) {\n                    const suffix = iri.substr(contextIri.length);\n                    if (!suffix) {\n                        if (vocab) {\n                            // Immediately return on compacted alias\n                            return key;\n                        }\n                    }\n                    else if (suffix.length < shortestPrefixing.suffix.length) {\n                        // Overwrite the shortest prefix\n                        shortestPrefixing.prefix = key;\n                        shortestPrefixing.suffix = suffix;\n                    }\n                }\n            }\n        }\n        // Return the shortest prefix\n        if (shortestPrefixing.prefix) {\n            return shortestPrefixing.prefix + ':' + shortestPrefixing.suffix;\n        }\n        return iri;\n    }\n}\nexports.JsonLdContextNormalized = JsonLdContextNormalized;\nexports.defaultExpandOptions = {\n    allowPrefixForcing: true,\n    allowPrefixNonGenDelims: false,\n    allowVocabRelativeToBase: true,\n};\n//# sourceMappingURL=JsonLdContextNormalized.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextParser = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst FetchDocumentLoader_1 = require(\"./FetchDocumentLoader\");\nconst JsonLdContextNormalized_1 = require(\"./JsonLdContextNormalized\");\nconst Util_1 = require(\"./Util\");\n/**\n * Parses JSON-LD contexts.\n */\nclass ContextParser {\n    constructor(options) {\n        options = options || {};\n        this.documentLoader = options.documentLoader || new FetchDocumentLoader_1.FetchDocumentLoader();\n        this.documentCache = {};\n        this.validateContext = !options.skipValidation;\n        this.expandContentTypeToBase = !!options.expandContentTypeToBase;\n        this.remoteContextsDepthLimit = options.remoteContextsDepthLimit || 32;\n        this.redirectSchemaOrgHttps = 'redirectSchemaOrgHttps' in options ? !!options.redirectSchemaOrgHttps : true;\n    }\n    /**\n     * Validate the given @language value.\n     * An error will be thrown if it is invalid.\n     * @param value An @language value.\n     * @param {boolean} strictRange If the string value should be strictly checked against a regex.\n     * @param {string} errorCode The error code to emit on errors.\n     * @return {boolean} If validation passed.\n     *                   Can only be false if strictRange is false and the string value did not pass the regex.\n     */\n    static validateLanguage(value, strictRange, errorCode) {\n        if (typeof value !== 'string') {\n            throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a string, got '${JSON.stringify(value)}'`, errorCode);\n        }\n        if (!Util_1.Util.REGEX_LANGUAGE_TAG.test(value)) {\n            if (strictRange) {\n                throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a valid language tag, got '${JSON.stringify(value)}'`, errorCode);\n            }\n            else {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Validate the given @direction value.\n     * An error will be thrown if it is invalid.\n     * @param value An @direction value.\n     * @param {boolean} strictValues If the string value should be strictly checked against a regex.\n     * @return {boolean} If validation passed.\n     *                   Can only be false if strictRange is false and the string value did not pass the regex.\n     */\n    static validateDirection(value, strictValues) {\n        if (typeof value !== 'string') {\n            throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be a string, got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n        }\n        if (!Util_1.Util.REGEX_DIRECTION_TAG.test(value)) {\n            if (strictValues) {\n                throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be 'ltr' or 'rtl', got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n            }\n            else {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Add an @id term for all @reverse terms.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n     */\n    idifyReverseTerms(context) {\n        for (const key of Object.keys(context)) {\n            let value = context[key];\n            if (value && typeof value === 'object') {\n                if (value['@reverse'] && !value['@id']) {\n                    if (typeof value['@reverse'] !== 'string' || Util_1.Util.isValidKeyword(value['@reverse'])) {\n                        throw new ErrorCoded_1.ErrorCoded(`Invalid @reverse value, must be absolute IRI or blank node: '${value['@reverse']}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                    }\n                    value = context[key] = Object.assign(Object.assign({}, value), { '@id': value['@reverse'] });\n                    value['@id'] = value['@reverse'];\n                    if (Util_1.Util.isPotentialKeyword(value['@reverse'])) {\n                        delete value['@reverse'];\n                    }\n                    else {\n                        value['@reverse'] = true;\n                    }\n                }\n            }\n        }\n        return context;\n    }\n    /**\n     * Expand all prefixed terms in the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {boolean} expandContentTypeToBase If @type inside the context may be expanded\n     *                                          via @base if @vocab is set to null.\n     * @param {string[]} keys Optional set of keys from the context to expand. If left undefined, all\n     * keys in the context will be expanded.\n     */\n    expandPrefixedTerms(context, expandContentTypeToBase, keys) {\n        const contextRaw = context.getContextRaw();\n        for (const key of (keys || Object.keys(contextRaw))) {\n            // Only expand allowed keys\n            if (Util_1.Util.EXPAND_KEYS_BLACKLIST.indexOf(key) < 0 && !Util_1.Util.isReservedInternalKeyword(key)) {\n                // Error if we try to alias a keyword to something else.\n                const keyValue = contextRaw[key];\n                if (Util_1.Util.isPotentialKeyword(key) && Util_1.Util.ALIAS_DOMAIN_BLACKLIST.indexOf(key) >= 0) {\n                    if (key !== '@type' || typeof contextRaw[key] === 'object'\n                        && !(contextRaw[key]['@protected'] || contextRaw[key]['@container'] === '@set')) {\n                        throw new ErrorCoded_1.ErrorCoded(`Keywords can not be aliased to something else.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n                    }\n                }\n                // Error if we try to alias to an illegal keyword\n                if (Util_1.Util.ALIAS_RANGE_BLACKLIST.indexOf(Util_1.Util.getContextValueId(keyValue)) >= 0) {\n                    throw new ErrorCoded_1.ErrorCoded(`Aliasing to certain keywords is not allowed.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.INVALID_KEYWORD_ALIAS);\n                }\n                // Error if this term was marked as prefix as well\n                if (keyValue && Util_1.Util.isPotentialKeyword(Util_1.Util.getContextValueId(keyValue))\n                    && keyValue['@prefix'] === true) {\n                    throw new ErrorCoded_1.ErrorCoded(`Tried to use keyword aliases as prefix: '${key}': '${JSON.stringify(keyValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                }\n                // Loop because prefixes might be nested\n                while (Util_1.Util.isPrefixValue(contextRaw[key])) {\n                    const value = contextRaw[key];\n                    let changed = false;\n                    if (typeof value === 'string') {\n                        contextRaw[key] = context.expandTerm(value, true);\n                        changed = changed || value !== contextRaw[key];\n                    }\n                    else {\n                        const id = value['@id'];\n                        const type = value['@type'];\n                        // If @id is missing, don't allow @id to be added if @prefix: true and key not being a valid IRI.\n                        const canAddIdEntry = !('@prefix' in value) || Util_1.Util.isValidIri(key);\n                        if ('@id' in value) {\n                            // Use @id value for expansion\n                            if (id !== undefined && id !== null && typeof id === 'string') {\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': context.expandTerm(id, true) });\n                                changed = changed || id !== contextRaw[key]['@id'];\n                            }\n                        }\n                        else if (!Util_1.Util.isPotentialKeyword(key) && canAddIdEntry) {\n                            // Add an explicit @id value based on the expanded key value\n                            const newId = context.expandTerm(key, true);\n                            if (newId !== key) {\n                                // Don't set @id if expansion failed\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': newId });\n                                changed = true;\n                            }\n                        }\n                        if (type && typeof type === 'string' && type !== '@vocab'\n                            && (!value['@container'] || !value['@container']['@type'])\n                            && canAddIdEntry) {\n                            // First check @vocab, then fallback to @base\n                            let expandedType = context.expandTerm(type, true);\n                            if (expandContentTypeToBase && type === expandedType) {\n                                expandedType = context.expandTerm(type, false);\n                            }\n                            if (expandedType !== type) {\n                                changed = true;\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@type': expandedType });\n                            }\n                        }\n                    }\n                    if (!changed) {\n                        break;\n                    }\n                }\n            }\n        }\n    }\n    /**\n     * Normalize the @language entries in the given context to lowercase.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} parseOptions The parsing options.\n     */\n    normalize(context, { processingMode, normalizeLanguageTags }) {\n        // Lowercase language keys in 1.0\n        if (normalizeLanguageTags || processingMode === 1.0) {\n            for (const key of Object.keys(context)) {\n                if (key === '@language' && typeof context[key] === 'string') {\n                    context[key] = context[key].toLowerCase();\n                }\n                else {\n                    const value = context[key];\n                    if (value && typeof value === 'object') {\n                        if (typeof value['@language'] === 'string') {\n                            const lowercase = value['@language'].toLowerCase();\n                            if (lowercase !== value['@language']) {\n                                context[key] = Object.assign(Object.assign({}, value), { '@language': lowercase });\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n    /**\n     * Convert all @container strings and array values to hash-based values.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     */\n    containersToHash(context) {\n        for (const key of Object.keys(context)) {\n            const value = context[key];\n            if (value && typeof value === 'object') {\n                if (typeof value['@container'] === 'string') {\n                    context[key] = Object.assign(Object.assign({}, value), { '@container': { [value['@container']]: true } });\n                }\n                else if (Array.isArray(value['@container'])) {\n                    const newValue = {};\n                    for (const containerValue of value['@container']) {\n                        newValue[containerValue] = true;\n                    }\n                    context[key] = Object.assign(Object.assign({}, value), { '@container': newValue });\n                }\n            }\n        }\n    }\n    /**\n     * Normalize and apply context-level @protected terms onto each term separately.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {number} processingMode The processing mode.\n     */\n    applyScopedProtected(context, { processingMode }, expandOptions) {\n        if (processingMode && processingMode >= 1.1) {\n            if (context['@protected']) {\n                for (const key of Object.keys(context)) {\n                    if (Util_1.Util.isReservedInternalKeyword(key)) {\n                        continue;\n                    }\n                    if (!Util_1.Util.isPotentialKeyword(key) && !Util_1.Util.isTermProtected(context, key)) {\n                        const value = context[key];\n                        if (value && typeof value === 'object') {\n                            if (!('@protected' in context[key])) {\n                                // Mark terms with object values as protected if they don't have an @protected: false annotation\n                                context[key] = Object.assign(Object.assign({}, context[key]), { '@protected': true });\n                            }\n                        }\n                        else {\n                            // Convert string-based term values to object-based values with @protected: true\n                            context[key] = {\n                                '@id': value,\n                                '@protected': true,\n                            };\n                            if (Util_1.Util.isSimpleTermDefinitionPrefix(value, expandOptions)) {\n                                context[key] = Object.assign(Object.assign({}, context[key]), { '@prefix': true });\n                            }\n                        }\n                    }\n                }\n                delete context['@protected'];\n            }\n        }\n    }\n    /**\n     * Check if the given context inheritance does not contain any overrides of protected terms.\n     * @param {IJsonLdContextNormalizedRaw} contextBefore The context that may contain some protected terms.\n     * @param {IJsonLdContextNormalizedRaw} contextAfter A new context that is being applied on the first one.\n     * @param {IExpandOptions} expandOptions Options that are needed for any expansions during this validation.\n     * @param {string[]} keys Optional set of keys from the context to validate. If left undefined, all\n     * keys defined in contextAfter will be checked.\n     */\n    validateKeywordRedefinitions(contextBefore, contextAfter, expandOptions, keys) {\n        for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(contextAfter))) {\n            if (Util_1.Util.isTermProtected(contextBefore, key)) {\n                // The entry in the context before will always be in object-mode\n                // If the new entry is in string-mode, convert it to object-mode\n                // before checking if it is identical.\n                if (typeof contextAfter[key] === 'string') {\n                    contextAfter[key] = { '@id': contextAfter[key], '@protected': true };\n                }\n                else {\n                    // We modify this deliberately,\n                    // as we need it for the value comparison (they must be identical modulo '@protected')),\n                    // and for the fact that this new value will override the first one.\n                    contextAfter[key] = Object.assign(Object.assign({}, contextAfter[key]), { '@protected': true });\n                }\n                // Error if they are not identical\n                if (!Util_1.Util.deepEqual(contextBefore[key], contextAfter[key])) {\n                    throw new ErrorCoded_1.ErrorCoded(`Attempted to override the protected keyword ${key} from ${JSON.stringify(Util_1.Util.getContextValueId(contextBefore[key]))} to ${JSON.stringify(Util_1.Util.getContextValueId(contextAfter[key]))}`, ErrorCoded_1.ERROR_CODES.PROTECTED_TERM_REDEFINITION);\n                }\n            }\n        }\n    }\n    /**\n     * Validate the entries of the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} options The parse options.\n     */\n    validate(context, { processingMode }) {\n        for (const key of Object.keys(context)) {\n            // Ignore reserved internal keywords.\n            if (Util_1.Util.isReservedInternalKeyword(key)) {\n                continue;\n            }\n            // Do not allow empty term\n            if (key === '') {\n                throw new ErrorCoded_1.ErrorCoded(`The empty term is not allowed, got: '${key}': '${JSON.stringify(context[key])}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n            }\n            const value = context[key];\n            const valueType = typeof value;\n            // First check if the key is a keyword\n            if (Util_1.Util.isPotentialKeyword(key)) {\n                switch (key.substr(1)) {\n                    case 'vocab':\n                        if (value !== null && valueType !== 'string') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @vocab IRI: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n                        }\n                        break;\n                    case 'base':\n                        if (value !== null && valueType !== 'string') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @base IRI: ${context[key]}`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_IRI);\n                        }\n                        break;\n                    case 'language':\n                        if (value !== null) {\n                            ContextParser.validateLanguage(value, true, ErrorCoded_1.ERROR_CODES.INVALID_DEFAULT_LANGUAGE);\n                        }\n                        break;\n                    case 'version':\n                        if (value !== null && valueType !== 'number') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @version number: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n                        }\n                        break;\n                    case 'direction':\n                        if (value !== null) {\n                            ContextParser.validateDirection(value, true);\n                        }\n                        break;\n                    case 'propagate':\n                        if (processingMode === 1.0) {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an illegal @propagate keyword: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n                        }\n                        if (value !== null && valueType !== 'boolean') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @propagate value: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_PROPAGATE_VALUE);\n                        }\n                        break;\n                }\n                // Don't allow keywords to be overridden\n                if (Util_1.Util.isValidKeyword(key) && Util_1.Util.isValidKeyword(Util_1.Util.getContextValueId(value))) {\n                    throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${Util_1.Util\n                        .getContextValueId(value)}'`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n                }\n                continue;\n            }\n            // Otherwise, consider the key a term\n            if (value !== null) {\n                switch (valueType) {\n                    case 'string':\n                        if (Util_1.Util.getPrefix(value, context) === key) {\n                            throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n                                .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n                        }\n                        if (Util_1.Util.isValidIriWeak(key)) {\n                            if (value === '@type') {\n                                throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                            }\n                            else if (Util_1.Util.isValidIri(value) && value !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n                                throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                            }\n                        }\n                        break;\n                    case 'object':\n                        if (!Util_1.Util.isCompactIri(key) && !('@id' in value)\n                            && (value['@type'] === '@id' ? !context['@base'] : !context['@vocab'])) {\n                            throw new ErrorCoded_1.ErrorCoded(`Missing @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                        }\n                        for (const objectKey of Object.keys(value)) {\n                            const objectValue = value[objectKey];\n                            if (!objectValue) {\n                                continue;\n                            }\n                            switch (objectKey) {\n                                case '@id':\n                                    if (Util_1.Util.isValidKeyword(objectValue)\n                                        && objectValue !== '@type' && objectValue !== '@id' && objectValue !== '@graph' && objectValue !== '@nest') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                    }\n                                    if (Util_1.Util.isValidIriWeak(key)) {\n                                        if (objectValue === '@type') {\n                                            throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                        }\n                                        else if (Util_1.Util.isValidIri(objectValue)\n                                            && objectValue !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n                                            throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                        }\n                                    }\n                                    if (typeof objectValue !== 'string') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Detected non-string @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                    }\n                                    if (Util_1.Util.getPrefix(objectValue, context) === key) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n                                            .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n                                    }\n                                    break;\n                                case '@type':\n                                    if (value['@container'] === '@type' && objectValue !== '@id' && objectValue !== '@vocab') {\n                                        throw new ErrorCoded_1.ErrorCoded(`@container: @type only allows @type: @id or @vocab, but got: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    if (typeof objectValue !== 'string') {\n                                        throw new ErrorCoded_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    if (objectValue !== '@id' && objectValue !== '@vocab'\n                                        && (processingMode === 1.0 || objectValue !== '@json')\n                                        && (processingMode === 1.0 || objectValue !== '@none')\n                                        && (objectValue[0] === '_' || !Util_1.Util.isValidIri(objectValue))) {\n                                        throw new ErrorCoded_1.ErrorCoded(`A context @type must be an absolute IRI, found: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    break;\n                                case '@reverse':\n                                    if (typeof objectValue === 'string' && value['@id'] && value['@id'] !== objectValue) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found non-matching @id and @reverse term values in '${key}':\\\n'${objectValue}' and '${value['@id']}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                    }\n                                    if ('@nest' in value) {\n                                        throw new ErrorCoded_1.ErrorCoded(`@nest is not allowed in the reverse property '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                    }\n                                    break;\n                                case '@container':\n                                    if (processingMode === 1.0) {\n                                        if (Object.keys(objectValue).length > 1\n                                            || Util_1.Util.CONTAINERS_1_0.indexOf(Object.keys(objectValue)[0]) < 0) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${Object.keys(objectValue)}') in 1.0, \\\nmust be only one of ${Util_1.Util.CONTAINERS_1_0.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n                                        }\n                                    }\n                                    for (const containerValue of Object.keys(objectValue)) {\n                                        if (containerValue === '@list' && value['@reverse']) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Term value can not be @container: @list and @reverse at the same time on '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                        }\n                                        if (Util_1.Util.CONTAINERS.indexOf(containerValue) < 0) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${containerValue}'), \\\nmust be one of ${Util_1.Util.CONTAINERS.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n                                        }\n                                    }\n                                    break;\n                                case '@language':\n                                    ContextParser.validateLanguage(objectValue, true, ErrorCoded_1.ERROR_CODES.INVALID_LANGUAGE_MAPPING);\n                                    break;\n                                case '@direction':\n                                    ContextParser.validateDirection(objectValue, true);\n                                    break;\n                                case '@prefix':\n                                    if (objectValue !== null && typeof objectValue !== 'boolean') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @prefix boolean in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_PREFIX_VALUE);\n                                    }\n                                    if (!('@id' in value) && !Util_1.Util.isValidIri(key)) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Invalid @prefix definition for '${key}' ('${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                                    }\n                                    break;\n                                case '@index':\n                                    if (processingMode === 1.0 || !value['@container'] || !value['@container']['@index']) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Attempt to add illegal key to value object: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                                    }\n                                    break;\n                                case '@nest':\n                                    if (Util_1.Util.isPotentialKeyword(objectValue) && objectValue !== '@nest') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @nest value in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_NEST_VALUE);\n                                    }\n                            }\n                        }\n                        break;\n                    default:\n                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term value: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                }\n            }\n        }\n    }\n    /**\n     * Apply the @base context entry to the given context under certain circumstances.\n     * @param context A context.\n     * @param options Parsing options.\n     * @param inheritFromParent If the @base value from the parent context can be inherited.\n     * @return The given context.\n     */\n    applyBaseEntry(context, options, inheritFromParent) {\n        // In some special cases, this can be a string, so ignore those.\n        if (typeof context === 'string') {\n            return context;\n        }\n        // Give priority to @base in the parent context\n        if (inheritFromParent && !('@base' in context) && options.parentContext\n            && typeof options.parentContext === 'object' && '@base' in options.parentContext) {\n            context['@base'] = options.parentContext['@base'];\n            if (options.parentContext['@__baseDocument']) {\n                context['@__baseDocument'] = true;\n            }\n        }\n        // Override the base IRI if provided.\n        if (options.baseIRI && !options.external) {\n            if (!('@base' in context)) {\n                // The context base is the document base\n                context['@base'] = options.baseIRI;\n                context['@__baseDocument'] = true;\n            }\n            else if (context['@base'] !== null && typeof context['@base'] === 'string'\n                && !Util_1.Util.isValidIri(context['@base'])) {\n                // The context base is relative to the document base\n                context['@base'] = (0, relative_to_absolute_iri_1.resolve)(context['@base'], options.parentContext && options.parentContext['@base'] || options.baseIRI);\n            }\n        }\n        return context;\n    }\n    /**\n     * Resolve relative context IRIs, or return full IRIs as-is.\n     * @param {string} contextIri A context IRI.\n     * @param {string} baseIRI A base IRI.\n     * @return {string} The normalized context IRI.\n     */\n    normalizeContextIri(contextIri, baseIRI) {\n        if (!Util_1.Util.isValidIri(contextIri)) {\n            try {\n                contextIri = (0, relative_to_absolute_iri_1.resolve)(contextIri, baseIRI);\n            }\n            catch (_a) {\n                throw new Error(`Invalid context IRI: ${contextIri}`);\n            }\n        }\n        // TODO: Temporary workaround for fixing schema.org CORS issues (https://github.com/schemaorg/schemaorg/issues/2578#issuecomment-652324465)\n        if (this.redirectSchemaOrgHttps && contextIri.startsWith('http://schema.org')) {\n            contextIri = 'https://schema.org/';\n        }\n        return contextIri;\n    }\n    /**\n     * Parse scoped contexts in the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} options Parsing options.\n     * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n     * @param {string[]} keys Optional set of keys from the context to parseInnerContexts of. If left undefined, all\n     * keys in the context will be iterated over.\n     */\n    async parseInnerContexts(context, options, keys) {\n        for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(context))) {\n            const value = context[key];\n            if (value && typeof value === 'object') {\n                if ('@context' in value && value['@context'] !== null && !options.ignoreScopedContexts) {\n                    // Simulate a processing based on the parent context to check if there are any (potential errors).\n                    // Honestly, I find it a bit weird to do this here, as the context may be unused,\n                    // and the final effective context may differ based on any other embedded/scoped contexts.\n                    // But hey, it's part of the spec, so we have no choice...\n                    // https://w3c.github.io/json-ld-api/#h-note-10\n                    if (this.validateContext) {\n                        try {\n                            const parentContext = Object.assign(Object.assign({}, context), { [key]: Object.assign({}, context[key]) });\n                            delete parentContext[key]['@context'];\n                            await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, parentContext, ignoreProtection: true, ignoreRemoteScopedContexts: true, ignoreScopedContexts: true }));\n                        }\n                        catch (e) {\n                            throw new ErrorCoded_1.ErrorCoded(e.message, ErrorCoded_1.ERROR_CODES.INVALID_SCOPED_CONTEXT);\n                        }\n                    }\n                    context[key] = Object.assign(Object.assign({}, value), { '@context': (await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, minimalProcessing: true, ignoreRemoteScopedContexts: true, parentContext: context })))\n                            .getContextRaw() });\n                }\n            }\n        }\n        return context;\n    }\n    async parse(context, options = {}, \n    // These options are only for internal use on recursive calls and should not be used by\n    // libraries consuming this function\n    internalOptions = {}) {\n        const { baseIRI, parentContext, external, processingMode = ContextParser.DEFAULT_PROCESSING_MODE, normalizeLanguageTags, ignoreProtection, minimalProcessing, } = options;\n        const remoteContexts = options.remoteContexts || {};\n        // Avoid remote context overflows\n        if (Object.keys(remoteContexts).length >= this.remoteContextsDepthLimit) {\n            throw new ErrorCoded_1.ErrorCoded('Detected an overflow in remote context inclusions: ' + Object.keys(remoteContexts), ErrorCoded_1.ERROR_CODES.CONTEXT_OVERFLOW);\n        }\n        if (context === null || context === undefined) {\n            // Don't allow context nullification and there are protected terms\n            if (!ignoreProtection && parentContext && Util_1.Util.hasProtectedTerms(parentContext)) {\n                throw new ErrorCoded_1.ErrorCoded('Illegal context nullification when terms are protected', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_NULLIFICATION);\n            }\n            // Context that are explicitly set to null are empty.\n            return new JsonLdContextNormalized_1.JsonLdContextNormalized(this.applyBaseEntry({}, options, false));\n        }\n        else if (typeof context === 'string') {\n            const contextIri = this.normalizeContextIri(context, baseIRI);\n            const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n            if (overriddenLoad) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(overriddenLoad);\n            }\n            const parsedStringContext = await this.parse(await this.load(contextIri), Object.assign(Object.assign({}, options), { baseIRI: contextIri, external: true, remoteContexts: Object.assign(Object.assign({}, remoteContexts), { [contextIri]: true }) }));\n            this.applyBaseEntry(parsedStringContext.getContextRaw(), options, true);\n            return parsedStringContext;\n        }\n        else if (Array.isArray(context)) {\n            // As a performance consideration, first load all external contexts in parallel.\n            const contextIris = [];\n            const contexts = await Promise.all(context.map((subContext, i) => {\n                if (typeof subContext === 'string') {\n                    const contextIri = this.normalizeContextIri(subContext, baseIRI);\n                    contextIris[i] = contextIri;\n                    const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n                    if (overriddenLoad) {\n                        return overriddenLoad;\n                    }\n                    return this.load(contextIri);\n                }\n                else {\n                    return subContext;\n                }\n            }));\n            // Don't apply inheritance logic on minimal processing\n            if (minimalProcessing) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(contexts);\n            }\n            const reducedContexts = await contexts.reduce((accContextPromise, contextEntry, i) => accContextPromise\n                .then((accContext) => this.parse(contextEntry, Object.assign(Object.assign({}, options), { baseIRI: contextIris[i] || options.baseIRI, external: !!contextIris[i] || options.external, parentContext: accContext.getContextRaw(), remoteContexts: contextIris[i] ? Object.assign(Object.assign({}, remoteContexts), { [contextIris[i]]: true }) : remoteContexts }), \n            // @ts-expect-error: This third argument causes a type error because we have hidden it from consumers\n            {\n                skipValidation: i < contexts.length - 1,\n            })), Promise.resolve(new JsonLdContextNormalized_1.JsonLdContextNormalized(parentContext || {})));\n            // Override the base IRI if provided.\n            this.applyBaseEntry(reducedContexts.getContextRaw(), options, true);\n            return reducedContexts;\n        }\n        else if (typeof context === 'object') {\n            if ('@context' in context) {\n                return await this.parse(context['@context'], options);\n            }\n            // Make a deep clone of the given context, to avoid modifying it.\n            context = Object.assign({}, context);\n            // According to the JSON-LD spec, @base must be ignored from external contexts.\n            if (external) {\n                delete context['@base'];\n            }\n            // Override the base IRI if provided.\n            this.applyBaseEntry(context, options, true);\n            // Hashify container entries\n            // Do this before protected term validation as that influences term format\n            this.containersToHash(context);\n            // Don't perform any other modifications if only minimal processing is needed.\n            if (minimalProcessing) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(context);\n            }\n            // In JSON-LD 1.1, load @import'ed context prior to processing.\n            let importContext = {};\n            if ('@import' in context) {\n                if (processingMode >= 1.1) {\n                    // Only accept string values\n                    if (typeof context['@import'] !== 'string') {\n                        throw new ErrorCoded_1.ErrorCoded('An @import value must be a string, but got ' + typeof context['@import'], ErrorCoded_1.ERROR_CODES.INVALID_IMPORT_VALUE);\n                    }\n                    // Load context\n                    importContext = await this.loadImportContext(this.normalizeContextIri(context['@import'], baseIRI));\n                    delete context['@import'];\n                }\n                else {\n                    throw new ErrorCoded_1.ErrorCoded('Context importing is not supported in JSON-LD 1.0', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n                }\n            }\n            this.applyScopedProtected(importContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n            const newContext = Object.assign(importContext, context);\n            // Handle terms (before protection checks)\n            this.idifyReverseTerms(newContext);\n            this.normalize(newContext, { processingMode, normalizeLanguageTags });\n            this.applyScopedProtected(newContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n            const keys = Object.keys(newContext);\n            const overlappingKeys = [];\n            if (typeof parentContext === 'object') {\n                // Merge different parts of the final context in order\n                for (const key in parentContext) {\n                    if (key in newContext) {\n                        overlappingKeys.push(key);\n                    }\n                    else {\n                        newContext[key] = parentContext[key];\n                    }\n                }\n            }\n            // Parse inner contexts with minimal processing\n            await this.parseInnerContexts(newContext, options, keys);\n            const newContextWrapped = new JsonLdContextNormalized_1.JsonLdContextNormalized(newContext);\n            // In JSON-LD 1.1, @vocab can be relative to @vocab in the parent context, or a compact IRI.\n            if ((newContext && newContext['@version'] || ContextParser.DEFAULT_PROCESSING_MODE) >= 1.1\n                && ((context['@vocab'] && typeof context['@vocab'] === 'string') || context['@vocab'] === '')) {\n                if (parentContext && '@vocab' in parentContext && context['@vocab'].indexOf(':') < 0) {\n                    newContext['@vocab'] = parentContext['@vocab'] + context['@vocab'];\n                }\n                else if (Util_1.Util.isCompactIri(context['@vocab']) || context['@vocab'] in newContext) {\n                    // @vocab is a compact IRI or refers exactly to a prefix\n                    newContext['@vocab'] = newContextWrapped.expandTerm(context['@vocab'], true);\n                }\n            }\n            this.expandPrefixedTerms(newContextWrapped, this.expandContentTypeToBase, keys);\n            // In JSON-LD 1.1, check if we are not redefining any protected keywords\n            if (!ignoreProtection && parentContext && processingMode >= 1.1) {\n                this.validateKeywordRedefinitions(parentContext, newContext, JsonLdContextNormalized_1.defaultExpandOptions, overlappingKeys);\n            }\n            if (this.validateContext && !internalOptions.skipValidation) {\n                this.validate(newContext, { processingMode });\n            }\n            return newContextWrapped;\n        }\n        else {\n            throw new ErrorCoded_1.ErrorCoded(`Tried parsing a context that is not a string, array or object, but got ${context}`, ErrorCoded_1.ERROR_CODES.INVALID_LOCAL_CONTEXT);\n        }\n    }\n    /**\n     * Fetch the given URL as a raw JSON-LD context.\n     * @param url An URL.\n     * @return A promise resolving to a raw JSON-LD context.\n     */\n    async load(url) {\n        // First try to retrieve the context from cache\n        const cached = this.documentCache[url];\n        if (cached) {\n            return cached;\n        }\n        // If not in cache, load it\n        let document;\n        try {\n            document = await this.documentLoader.load(url);\n        }\n        catch (e) {\n            throw new ErrorCoded_1.ErrorCoded(`Failed to load remote context ${url}: ${e.message}`, ErrorCoded_1.ERROR_CODES.LOADING_REMOTE_CONTEXT_FAILED);\n        }\n        // Validate the context\n        if (!('@context' in document)) {\n            throw new ErrorCoded_1.ErrorCoded(`Missing @context in remote context at ${url}`, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n        }\n        return this.documentCache[url] = document['@context'];\n    }\n    /**\n     * Override the given context that may be loaded.\n     *\n     * This will check whether or not the url is recursively being loaded.\n     * @param url An URL.\n     * @param options Parsing options.\n     * @return An overridden context, or null.\n     *         Optionally an error can be thrown if a cyclic context is detected.\n     */\n    getOverriddenLoad(url, options) {\n        if (url in (options.remoteContexts || {})) {\n            if (options.ignoreRemoteScopedContexts) {\n                return url;\n            }\n            else {\n                throw new ErrorCoded_1.ErrorCoded('Detected a cyclic context inclusion of ' + url, ErrorCoded_1.ERROR_CODES.RECURSIVE_CONTEXT_INCLUSION);\n            }\n        }\n        return null;\n    }\n    /**\n     * Load an @import'ed context.\n     * @param importContextIri The full URI of an @import value.\n     */\n    async loadImportContext(importContextIri) {\n        // Load the context - and do a deep clone since we are about to mutate it\n        let importContext = await this.load(importContextIri);\n        // Require the context to be a non-array object\n        if (typeof importContext !== 'object' || Array.isArray(importContext)) {\n            throw new ErrorCoded_1.ErrorCoded('An imported context must be a single object: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n        }\n        // Error if the context contains another @import\n        if ('@import' in importContext) {\n            throw new ErrorCoded_1.ErrorCoded('An imported context can not import another context: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n        }\n        importContext = Object.assign({}, importContext);\n        // Containers have to be converted into hash values the same way as for the importing context\n        // Otherwise context validation will fail for container values\n        this.containersToHash(importContext);\n        return importContext;\n    }\n}\nContextParser.DEFAULT_PROCESSING_MODE = 1.1;\nexports.ContextParser = ContextParser;\n//# sourceMappingURL=ContextParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IDocumentLoader.js.map","\"use strict\";\n// tslint:disable:max-line-length\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=JsonLdContext.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/ContextParser\"), exports);\n__exportStar(require(\"./lib/ErrorCoded\"), exports);\n__exportStar(require(\"./lib/FetchDocumentLoader\"), exports);\n__exportStar(require(\"./lib/IDocumentLoader\"), exports);\n__exportStar(require(\"./lib/JsonLdContext\"), exports);\n__exportStar(require(\"./lib/JsonLdContextNormalized\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerIdentifier = void 0;\n/**\n * Container handler for @id.\n *\n * It assumes that the current key is the identifier of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerIdentifier {\n    canCombineWithGraph() {\n        return true;\n    }\n    async handle(containers, parsingContext, util, keys, value, depth) {\n        let id;\n        // First check if the child node already has a defined id.\n        if (parsingContext.emittedStack[depth + 1] && parsingContext.idStack[depth + 1]) {\n            // Use the existing identifier\n            id = parsingContext.idStack[depth + 1][0];\n        }\n        else {\n            // Create the identifier\n            const keyUnaliased = await util.getContainerKey(keys[depth], keys, depth);\n            const maybeId = keyUnaliased !== null\n                ? await util.resourceToTerm(await parsingContext.getContext(keys), keys[depth])\n                : util.dataFactory.blankNode();\n            // Do nothing if the id is invalid\n            if (!maybeId) {\n                parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n                return;\n            }\n            id = maybeId;\n            // Insert the id into the stack so that buffered children can make us of it.\n            parsingContext.idStack[depth + 1] = [id];\n        }\n        // Insert the id into the stack so that parents can make use of it.\n        // Insert it as an array because multiple id container entries may exist\n        let ids = parsingContext.idStack[depth];\n        if (!ids) {\n            ids = parsingContext.idStack[depth] = [];\n        }\n        // Only insert the term if it does not exist yet in the array.\n        if (!ids.some((term) => term.equals(id))) {\n            ids.push(id);\n        }\n        // Flush any pending flush buffers\n        if (!await parsingContext.handlePendingContainerFlushBuffers()) {\n            parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n        }\n    }\n}\nexports.ContainerHandlerIdentifier = ContainerHandlerIdentifier;\n//# sourceMappingURL=ContainerHandlerIdentifier.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerPredicate = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../Util\");\n/**\n * Interprets keys as predicates.\n * The most common case in JSON-LD processing.\n */\nclass EntryHandlerPredicate {\n    /**\n     * Handle the given predicate-object by either emitting it,\n     * or by placing it in the appropriate stack for later emission when no @graph and/or @id has been defined.\n     * @param {ParsingContext} parsingContext A parsing context.\n     * @param {Util} util A utility instance.\n     * @param {any[]} keys A stack of keys.\n     * @param {number} depth The current depth.\n     * @param {Term} predicate The predicate.\n     * @param {Term} object The object.\n     * @param {boolean} reverse If the property is reversed.\n     * @param {boolean} isEmbedded If the property exists in an embedded node as direct child.\n     * @param {boolean} isAnnotation If the property exists in an annotation object.\n     * @return {Promise<void>} A promise resolving when handling is done.\n     */\n    static async handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse, isEmbedded, isAnnotation) {\n        const depthProperties = await util.getPropertiesDepth(keys, depth);\n        const depthOffsetGraph = await util.getDepthOffsetGraph(depth, keys);\n        const depthPropertiesGraph = depth - depthOffsetGraph;\n        const subjects = parsingContext.idStack[depthProperties];\n        if (subjects && !isAnnotation) {\n            // Emit directly if the @id was already defined\n            for (const subject of subjects) {\n                // Check if we're in a @graph context\n                const atGraph = depthOffsetGraph >= 0;\n                if (atGraph) {\n                    const graphs = parsingContext.idStack[depthPropertiesGraph - 1];\n                    if (graphs) {\n                        for (const graph of graphs) {\n                            // Emit our quad if graph @id is known\n                            util.emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded);\n                        }\n                    }\n                    else {\n                        // Buffer our triple if graph @id is not known yet.\n                        if (reverse) {\n                            util.validateReverseSubject(object);\n                            parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1).push({ subject: object, predicate, object: subject, isEmbedded });\n                        }\n                        else {\n                            parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1)\n                                .push({ subject, predicate, object, isEmbedded });\n                        }\n                    }\n                }\n                else {\n                    // Emit if no @graph was applicable\n                    const graph = await util.getGraphContainerValue(keys, depthProperties);\n                    util.emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded);\n                }\n            }\n        }\n        else {\n            // Buffer until our @id becomes known, or we go up the stack\n            if (reverse) {\n                util.validateReverseSubject(object);\n            }\n            // Either push to the annotations or the actual value buffer\n            if (isAnnotation) {\n                // Only add to buffer if rdfstar is enabled\n                if (parsingContext.rdfstar) {\n                    // Error if an @id was defined\n                    if (parsingContext.idStack[depth]) {\n                        parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @id inside an annotation: ${parsingContext.idStack[depth][0].value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n                    }\n                    // Error if we're in an embedded node\n                    for (let i = 0; i < depth; i++) {\n                        if (await util.unaliasKeyword(keys[i], keys, i) === '@id') {\n                            parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal annotation inside an embedded node`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n                        }\n                    }\n                    // Store new annotation in the buffer\n                    const annotationsBuffer = parsingContext.getAnnotationsBufferSafe(depthProperties);\n                    const newAnnotation = { predicate, object, reverse, nestedAnnotations: [], depth: depthProperties };\n                    annotationsBuffer.push(newAnnotation);\n                    // Check in the buffer if any annotations were defined at a deeper depth,\n                    // if so, they are considered nested annotations.\n                    for (let i = annotationsBuffer.length - 2; i >= 0; i--) {\n                        // We iterate in reverse order, to enable easy item removal from the back.\n                        const existingAnnotation = annotationsBuffer[i];\n                        if (existingAnnotation.depth > depthProperties) {\n                            newAnnotation.nestedAnnotations.push(existingAnnotation);\n                            annotationsBuffer.splice(i, 1);\n                        }\n                    }\n                }\n            }\n            else {\n                parsingContext.getUnidentifiedValueBufferSafe(depthProperties).push({ predicate, object, reverse, isEmbedded });\n            }\n        }\n    }\n    isPropertyHandler() {\n        return true;\n    }\n    isStackProcessor() {\n        return true;\n    }\n    async validate(parsingContext, util, keys, depth, inProperty) {\n        const key = keys[depth];\n        if (key) {\n            const context = await parsingContext.getContext(keys);\n            if (!parsingContext.jsonLiteralStack[depth] && await util.predicateToTerm(context, keys[depth])) {\n                // If this valid predicate is of type @json, mark it so in the stack so that no deeper handling of nodes occurs.\n                if (Util_1.Util.getContextValueType(context, key) === '@json') {\n                    parsingContext.jsonLiteralStack[depth + 1] = true;\n                }\n                return true;\n            }\n        }\n        return false;\n    }\n    async test(parsingContext, util, key, keys, depth) {\n        return keys[depth];\n    }\n    async handle(parsingContext, util, key, keys, value, depth, testResult) {\n        const keyOriginal = keys[depth];\n        const context = await parsingContext.getContext(keys);\n        const predicate = await util.predicateToTerm(context, key);\n        if (predicate) {\n            const objects = await util.valueToTerm(context, key, value, depth, keys);\n            if (objects.length) {\n                for (let object of objects) {\n                    // Based on parent key, check if reverse, embedded, and annotation.\n                    let parentKey = await util.unaliasKeywordParent(keys, depth);\n                    const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, parentKey);\n                    let parentDepthOffset = 0;\n                    while (parentKey === '@reverse' || typeof parentKey === 'number') {\n                        // Check parent of parent when checking while we're in an array or in @reverse\n                        if (typeof parentKey === 'number') {\n                            parentDepthOffset++;\n                        }\n                        else {\n                            depth--;\n                        }\n                        parentKey = await util.unaliasKeywordParent(keys, depth - parentDepthOffset);\n                    }\n                    const isEmbedded = Util_1.Util.isPropertyInEmbeddedNode(parentKey);\n                    util.validateReverseInEmbeddedNode(key, reverse, isEmbedded);\n                    const isAnnotation = Util_1.Util.isPropertyInAnnotationObject(parentKey);\n                    if (value) {\n                        // Special case if our term was defined as an @list, but does not occur in an array,\n                        // In that case we just emit it as an RDF list with a single element.\n                        const listValueContainer = '@list' in Util_1.Util.getContextValueContainer(context, key);\n                        if (listValueContainer || value['@list']) {\n                            if (((listValueContainer && !Array.isArray(value) && !value['@list'])\n                                || (value['@list'] && !Array.isArray(value['@list'])))\n                                && object !== util.rdfNil) {\n                                const listPointer = util.dataFactory.blankNode();\n                                parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfRest, util.rdfNil, util.getDefaultGraph()));\n                                parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfFirst, object, util.getDefaultGraph()));\n                                object = listPointer;\n                            }\n                            // Lists are not allowed in @reverse'd properties\n                            if (reverse && !parsingContext.allowSubjectList) {\n                                throw new jsonld_context_parser_1.ErrorCoded(`Found illegal list value in subject position at ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n                            }\n                        }\n                    }\n                    await EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse, isEmbedded, isAnnotation);\n                }\n            }\n        }\n    }\n}\nexports.EntryHandlerPredicate = EntryHandlerPredicate;\n//# sourceMappingURL=EntryHandlerPredicate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerIndex = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerPredicate_1 = require(\"../entryhandler/EntryHandlerPredicate\");\nconst Util_1 = require(\"../Util\");\n/**\n * Container handler for @index.\n *\n * This will ignore the current key and add this entry to the parent node.\n */\nclass ContainerHandlerIndex {\n    canCombineWithGraph() {\n        return true;\n    }\n    async handle(containers, parsingContext, util, keys, value, depth) {\n        if (!Array.isArray(value)) {\n            const graphContainer = '@graph' in containers;\n            // Check if the container is a property-based container by checking if there is a valid @index.\n            const context = await parsingContext.getContext(keys);\n            const indexKey = keys[depth - 1];\n            const indexPropertyRaw = Util_1.Util.getContextValueIndex(context, indexKey);\n            if (indexPropertyRaw) {\n                // Validate the @index value\n                if (jsonld_context_parser_1.Util.isPotentialKeyword(indexPropertyRaw)) {\n                    throw new jsonld_context_parser_1.ErrorCoded(`Keywords can not be used as @index value, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                }\n                if (typeof indexPropertyRaw !== 'string') {\n                    throw new jsonld_context_parser_1.ErrorCoded(`@index values must be strings, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                }\n                // When @index is used, values must be node values, unless @type: @id is defined in the context\n                if (typeof value !== 'object') {\n                    // Error if we don't have @type: @id\n                    if (Util_1.Util.getContextValueType(context, indexKey) !== '@id') {\n                        throw new jsonld_context_parser_1.ErrorCoded(`Property-based index containers require nodes as values or strings with @type: @id, but got: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n                    }\n                    // Add an @id to the stack, so our expanded @index value can make use of it\n                    const id = util.resourceToTerm(context, value);\n                    if (id) {\n                        parsingContext.idStack[depth + 1] = [id];\n                    }\n                }\n                // Expand the @index value\n                const indexProperty = util.createVocabOrBaseTerm(context, indexPropertyRaw);\n                if (indexProperty) {\n                    const indexValues = await util.valueToTerm(context, indexPropertyRaw, await util.getContainerKey(keys[depth], keys, depth), depth, keys);\n                    if (graphContainer) {\n                        // When we're in a graph container, attach the index to the graph identifier\n                        const graphId = await util.getGraphContainerValue(keys, depth + 1);\n                        for (const indexValue of indexValues) {\n                            parsingContext.emitQuad(depth, util.dataFactory.quad(graphId, indexProperty, indexValue, util.getDefaultGraph()));\n                        }\n                    }\n                    else {\n                        // Otherwise, attach the index to the node identifier\n                        for (const indexValue of indexValues) {\n                            await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, indexProperty, indexValue, false, false, false);\n                        }\n                    }\n                }\n            }\n            const depthOffset = graphContainer ? 2 : 1;\n            await parsingContext.newOnValueJob(keys.slice(0, keys.length - depthOffset), value, depth - depthOffset, true);\n            // Flush any pending flush buffers\n            await parsingContext.handlePendingContainerFlushBuffers();\n        }\n        parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n    }\n}\nexports.ContainerHandlerIndex = ContainerHandlerIndex;\n//# sourceMappingURL=ContainerHandlerIndex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerLanguage = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Container handler for @language.\n *\n * It assumes that the current key is the language of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerLanguage {\n    canCombineWithGraph() {\n        return false;\n    }\n    async handle(containers, parsingContext, util, keys, value, depth) {\n        const language = await util.getContainerKey(keys[depth], keys, depth);\n        if (Array.isArray(value)) {\n            // No type-checking needed, will be handled on each value when this handler is called recursively.\n            value = value.map((subValue) => ({ '@value': subValue, '@language': language }));\n        }\n        else {\n            if (typeof value !== 'string') {\n                throw new jsonld_context_parser_1.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(value)}', but expected string`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);\n            }\n            value = { '@value': value, '@language': language };\n        }\n        await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n        parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n    }\n}\nexports.ContainerHandlerLanguage = ContainerHandlerLanguage;\n//# sourceMappingURL=ContainerHandlerLanguage.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContainerHandlerType = void 0;\nconst EntryHandlerPredicate_1 = require(\"../entryhandler/EntryHandlerPredicate\");\nconst Util_1 = require(\"../Util\");\n/**\n * Container handler for @type.\n *\n * This will add this entry to the parent node, and use the current key as an rdf:type value.\n */\nclass ContainerHandlerType {\n    canCombineWithGraph() {\n        return false;\n    }\n    async handle(containers, parsingContext, util, keys, value, depth) {\n        if (!Array.isArray(value)) {\n            if (typeof value === 'string') {\n                // Determine the @type of the container\n                const context = await parsingContext.getContext(keys);\n                const containerTypeType = Util_1.Util.getContextValueType(context, keys[depth - 1]);\n                // String values refer to node references\n                const id = containerTypeType === '@vocab'\n                    ? await util.createVocabOrBaseTerm(context, value)\n                    : await util.resourceToTerm(context, value);\n                if (id) {\n                    // Handle the value of this node as @id, which will also cause the predicate from above to be emitted.\n                    const subValue = { '@id': id.termType === 'NamedNode' ? id.value : value };\n                    await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), subValue, depth - 1, true);\n                    // Set the id in the stack so it can be used for the rdf:type handling later on\n                    parsingContext.idStack[depth + 1] = [id];\n                }\n            }\n            else {\n                // Other values are handled by handling them as a proper job\n                // Check needed for cases where entries don't have an explicit @id\n                const entryHasIdentifier = !!parsingContext.idStack[depth + 1];\n                // Handle the value of this node, which will also cause the predicate from above to be emitted.\n                if (!entryHasIdentifier) {\n                    delete parsingContext.idStack[depth]; // Force new (blank node) identifier\n                }\n                await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n                if (!entryHasIdentifier) {\n                    parsingContext.idStack[depth + 1] = parsingContext.idStack[depth]; // Copy the id to the child node, for @type\n                }\n            }\n            // Identify the type to emit.\n            const keyOriginal = await util.getContainerKey(keys[depth], keys, depth);\n            const type = keyOriginal !== null\n                ? util.createVocabOrBaseTerm(await parsingContext.getContext(keys), keyOriginal)\n                : null;\n            if (type) {\n                // Push the type to the stack using the rdf:type predicate\n                await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, util.rdfType, type, false, false, false);\n            }\n            // Flush any pending flush buffers\n            await parsingContext.handlePendingContainerFlushBuffers();\n        }\n        parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n    }\n}\nexports.ContainerHandlerType = ContainerHandlerType;\n//# sourceMappingURL=ContainerHandlerType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerContainer = void 0;\nconst ContainerHandlerIdentifier_1 = require(\"../containerhandler/ContainerHandlerIdentifier\");\nconst ContainerHandlerIndex_1 = require(\"../containerhandler/ContainerHandlerIndex\");\nconst ContainerHandlerLanguage_1 = require(\"../containerhandler/ContainerHandlerLanguage\");\nconst ContainerHandlerType_1 = require(\"../containerhandler/ContainerHandlerType\");\nconst Util_1 = require(\"../Util\");\n/**\n * Handles values that are part of a container type (like @index),\n * as specified by {@link IContainerHandler}.\n */\nclass EntryHandlerContainer {\n    /**\n     * Check fit the given container is a simple @graph container.\n     * Concretely, it will check if no @index or @id is active as well.\n     * @param containers A container hash.\n     */\n    static isSimpleGraphContainer(containers) {\n        return '@graph' in containers\n            && (('@set' in containers && Object.keys(containers).length === 2) || Object.keys(containers).length === 1);\n    }\n    /**\n     * Check fit the given container is a complex @graph container.\n     * Concretely, it will check if @index or @id is active as well next to @graph.\n     * @param containers A container hash.\n     */\n    static isComplexGraphContainer(containers) {\n        return '@graph' in containers\n            && (('@set' in containers && Object.keys(containers).length > 2)\n                || (!('@set' in containers) && Object.keys(containers).length > 1));\n    }\n    /**\n     * Create an graph container index that can be used for identifying a graph term inside the graphContainerTermStack.\n     * @param containers The applicable containers.\n     * @param depth The container depth.\n     * @param keys The array of keys.\n     * @return The graph index.\n     */\n    static getContainerGraphIndex(containers, depth, keys) {\n        let isSimpleGraphContainer = EntryHandlerContainer.isSimpleGraphContainer(containers);\n        let index = '';\n        for (let i = depth; i < keys.length; i++) {\n            if (!isSimpleGraphContainer || typeof keys[i] === 'number') {\n                index += ':' + keys[i];\n            }\n            // Only allow a second 'real' key if in a non-simple graph container.\n            if (!isSimpleGraphContainer && typeof keys[i] !== 'number') {\n                isSimpleGraphContainer = true;\n            }\n        }\n        return index;\n    }\n    /**\n     * Return the applicable container type at the given depth.\n     *\n     * This will ignore any arrays in the key chain.\n     *\n     * @param {ParsingContext} parsingContext A parsing context.\n     * @param {any[]} keys The array of keys.\n     * @param {number} depth The current depth.\n     * @return {Promise<{ containers: {[typeName: string]: boolean}, depth: number, fallback: boolean }>}\n     *          All applicable containers for the given depth,\n     *          the `depth` of the container root (can change when arrays are in the key chain),\n     *          and the `fallback` flag that indicates if the default container type was returned\n     *            (i.e., no dedicated container type is defined).\n     */\n    static async getContainerHandler(parsingContext, keys, depth) {\n        const fallback = {\n            containers: { '@set': true },\n            depth,\n            fallback: true,\n        };\n        // A flag that is enabled when @graph container should be tested in next iteration\n        let checkGraphContainer = false;\n        // Iterate from deeper to higher\n        const context = await parsingContext.getContext(keys, 2);\n        for (let i = depth - 1; i >= 0; i--) {\n            if (typeof keys[i] !== 'number') { // Skip array keys\n                // @graph containers without any other types are one level less deep, and require special handling\n                const containersSelf = Util_1.Util.getContextValue(context, '@container', keys[i], false);\n                if (containersSelf && EntryHandlerContainer.isSimpleGraphContainer(containersSelf)) {\n                    return {\n                        containers: containersSelf,\n                        depth: i + 1,\n                        fallback: false,\n                    };\n                }\n                const containersParent = Util_1.Util.getContextValue(context, '@container', keys[i - 1], false);\n                if (!containersParent) { // If we have the fallback container value\n                    if (checkGraphContainer) {\n                        // Return false if we were already expecting a @graph-@id of @graph-@index container\n                        return fallback;\n                    }\n                    // Check parent-parent, we may be in a @graph-@id of @graph-@index container, which have two levels\n                    checkGraphContainer = true;\n                }\n                else {\n                    // We had an invalid container next iteration, so we now have to check if we were in an @graph container\n                    const graphContainer = '@graph' in containersParent;\n                    // We're in a regular container\n                    for (const containerHandleName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n                        if (containersParent[containerHandleName]) {\n                            if (graphContainer) {\n                                // Only accept graph containers if their combined handlers can handle them.\n                                if (EntryHandlerContainer.CONTAINER_HANDLERS[containerHandleName].canCombineWithGraph()) {\n                                    return {\n                                        containers: containersParent,\n                                        depth: i,\n                                        fallback: false,\n                                    };\n                                }\n                                else {\n                                    return fallback;\n                                }\n                            }\n                            else {\n                                // Only accept if we were not expecting a @graph-@id of @graph-@index container\n                                if (checkGraphContainer) {\n                                    return fallback;\n                                }\n                                else {\n                                    return {\n                                        containers: containersParent,\n                                        depth: i,\n                                        fallback: false,\n                                    };\n                                }\n                            }\n                        }\n                    }\n                    // Fail if no valid container handlers were found\n                    return fallback;\n                }\n            }\n        }\n        return fallback;\n    }\n    /**\n     * Check if we are handling a value at the given depth\n     * that is part of something that should be handled as a container,\n     * AND if this container should be buffered, so that it can be handled by a dedicated container handler.\n     *\n     * For instance, any container with @graph will NOT be buffered.\n     *\n     * This will ignore any arrays in the key chain.\n     *\n     * @param {ParsingContext} parsingContext A parsing context.\n     * @param {any[]} keys The array of keys.\n     * @param {number} depth The current depth.\n     * @return {Promise<boolean>} If we are in the scope of a container handler.\n     */\n    static async isBufferableContainerHandler(parsingContext, keys, depth) {\n        const handler = await EntryHandlerContainer.getContainerHandler(parsingContext, keys, depth);\n        return !handler.fallback && !('@graph' in handler.containers);\n    }\n    isPropertyHandler() {\n        return false;\n    }\n    isStackProcessor() {\n        return true;\n    }\n    async validate(parsingContext, util, keys, depth, inProperty) {\n        return !!await this.test(parsingContext, util, null, keys, depth);\n    }\n    async test(parsingContext, util, key, keys, depth) {\n        const containers = Util_1.Util.getContextValueContainer(await parsingContext.getContext(keys, 2), keys[depth - 1]);\n        for (const containerName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n            if (containers[containerName]) {\n                return {\n                    containers,\n                    handler: EntryHandlerContainer.CONTAINER_HANDLERS[containerName],\n                };\n            }\n        }\n        return null;\n    }\n    async handle(parsingContext, util, key, keys, value, depth, testResult) {\n        return testResult.handler.handle(testResult.containers, parsingContext, util, keys, value, depth);\n    }\n}\nEntryHandlerContainer.CONTAINER_HANDLERS = {\n    '@id': new ContainerHandlerIdentifier_1.ContainerHandlerIdentifier(),\n    '@index': new ContainerHandlerIndex_1.ContainerHandlerIndex(),\n    '@language': new ContainerHandlerLanguage_1.ContainerHandlerLanguage(),\n    '@type': new ContainerHandlerType_1.ContainerHandlerType(),\n};\nexports.EntryHandlerContainer = EntryHandlerContainer;\n//# sourceMappingURL=EntryHandlerContainer.js.map","/* jshint esversion: 6 */\n/* jslint node: true */\n'use strict';\n\nmodule.exports = function serialize (object) {\n  if (object === null || typeof object !== 'object' || object.toJSON != null) {\n    return JSON.stringify(object);\n  }\n\n  if (Array.isArray(object)) {\n    return '[' + object.reduce((t, cv, ci) => {\n      const comma = ci === 0 ? '' : ',';\n      const value = cv === undefined || typeof cv === 'symbol' ? null : cv;\n      return t + comma + serialize(value);\n    }, '') + ']';\n  }\n\n  return '{' + Object.keys(object).sort().reduce((t, cv, ci) => {\n    if (object[cv] === undefined ||\n        typeof object[cv] === 'symbol') {\n      return t;\n    }\n    const comma = t.length === 0 ? '' : ',';\n    return t + comma + serialize(cv) + ':' + serialize(object[cv]);\n  }, '') + '}';\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\n// tslint:disable-next-line:no-var-requires\nconst canonicalizeJson = require('canonicalize');\n/**\n * Utility functions and methods.\n */\nclass Util {\n    constructor(options) {\n        this.parsingContext = options.parsingContext;\n        this.dataFactory = options.dataFactory || new rdf_data_factory_1.DataFactory();\n        this.rdfFirst = this.dataFactory.namedNode(Util.RDF + 'first');\n        this.rdfRest = this.dataFactory.namedNode(Util.RDF + 'rest');\n        this.rdfNil = this.dataFactory.namedNode(Util.RDF + 'nil');\n        this.rdfType = this.dataFactory.namedNode(Util.RDF + 'type');\n        this.rdfJson = this.dataFactory.namedNode(Util.RDF + 'JSON');\n    }\n    /**\n     * Helper function to get the value of a context entry,\n     * or fallback to a certain value.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param {string} contextKey A pre-defined JSON-LD key in context entries.\n     * @param {string} key A context entry key.\n     * @param {string} fallback A fallback value for when the given contextKey\n     *                          could not be found in the value with the given key.\n     * @return {string} The value of the given contextKey in the entry behind key in the given context,\n     *                  or the given fallback value.\n     */\n    static getContextValue(context, contextKey, key, fallback) {\n        const entry = context.getContextRaw()[key];\n        if (!entry) {\n            return fallback;\n        }\n        const type = entry[contextKey];\n        return type === undefined ? fallback : type;\n    }\n    /**\n     * Get the container type of the given key in the context.\n     *\n     * Should any context-scoping bugs should occur related to this in the future,\n     * it may be required to increase the offset from the depth at which the context is retrieved by one (to 2).\n     * This is because containers act 2 levels deep.\n     *\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param {string} key A context entry key.\n     * @return {string} The container type.\n     */\n    static getContextValueContainer(context, key) {\n        return Util.getContextValue(context, '@container', key, { '@set': true });\n    }\n    /**\n     * Get the value type of the given key in the context.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param {string} key A context entry key.\n     * @return {string} The node type.\n     */\n    static getContextValueType(context, key) {\n        const valueType = Util.getContextValue(context, '@type', key, null);\n        if (valueType === '@none') {\n            return null;\n        }\n        return valueType;\n    }\n    /**\n     * Get the language of the given key in the context.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param {string} key A context entry key.\n     * @return {string} The node type.\n     */\n    static getContextValueLanguage(context, key) {\n        return Util.getContextValue(context, '@language', key, context.getContextRaw()['@language'] || null);\n    }\n    /**\n     * Get the direction of the given key in the context.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param {string} key A context entry key.\n     * @return {string} The node type.\n     */\n    static getContextValueDirection(context, key) {\n        return Util.getContextValue(context, '@direction', key, context.getContextRaw()['@direction'] || null);\n    }\n    /**\n     * Check if the given key in the context is a reversed property.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param {string} key A context entry key.\n     * @return {boolean} If the context value has a @reverse key.\n     */\n    static isContextValueReverse(context, key) {\n        return !!Util.getContextValue(context, '@reverse', key, null);\n    }\n    /**\n     * Get the @index of the given key in the context.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param {string} key A context entry key.\n     * @return {string} The index.\n     */\n    static getContextValueIndex(context, key) {\n        return Util.getContextValue(context, '@index', key, context.getContextRaw()['@index'] || null);\n    }\n    /**\n     * Check if the given key refers to a reversed property.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param {string} key The property key.\n     * @param {string} parentKey The parent key.\n     * @return {boolean} If the property must be reversed.\n     */\n    static isPropertyReverse(context, key, parentKey) {\n        // '!==' is needed because reversed properties in a @reverse container should cancel each other out.\n        return parentKey === '@reverse' !== Util.isContextValueReverse(context, key);\n    }\n    /**\n     * Check if the given key exists inside an embedded node as direct child.\n     * @param {string} parentKey The parent key.\n     * @return {boolean} If the property is embedded.\n     */\n    static isPropertyInEmbeddedNode(parentKey) {\n        return parentKey === '@id';\n    }\n    /**\n     * Check if the given key exists inside an annotation object as direct child.\n     * @param {string} parentKey The parent key.\n     * @return {boolean} If the property is an annotation.\n     */\n    static isPropertyInAnnotationObject(parentKey) {\n        return parentKey === '@annotation';\n    }\n    /**\n     * Check if the given IRI is valid.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIri(iri) {\n        return iri !== null && jsonld_context_parser_1.Util.isValidIri(iri);\n    }\n    /**\n     * Check if the given first array (needle) is a prefix of the given second array (haystack).\n     * @param needle An array to check if it is a prefix.\n     * @param haystack An array to look in.\n     */\n    static isPrefixArray(needle, haystack) {\n        if (needle.length > haystack.length) {\n            return false;\n        }\n        for (let i = 0; i < needle.length; i++) {\n            if (needle[i] !== haystack[i]) {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Make sure that @id-@index pairs are equal over all array values.\n     * Reject otherwise.\n     * @param {any[]} value An array value.\n     * @return {Promise<void>} A promise rejecting if conflicts are present.\n     */\n    async validateValueIndexes(value) {\n        if (this.parsingContext.validateValueIndexes) {\n            const indexHashes = {};\n            for (const entry of value) {\n                if (entry && typeof entry === 'object') {\n                    const id = entry['@id'];\n                    const index = entry['@index'];\n                    if (id && index) {\n                        const existingIndexValue = indexHashes[id];\n                        if (existingIndexValue && existingIndexValue !== index) {\n                            throw new jsonld_context_parser_1.ErrorCoded(`Conflicting @index value for ${id}`, jsonld_context_parser_1.ERROR_CODES.CONFLICTING_INDEXES);\n                        }\n                        indexHashes[id] = index;\n                    }\n                }\n            }\n        }\n    }\n    /**\n     * Convert a given JSON value to an RDF term.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param {string} key The current JSON key.\n     * @param value A JSON value.\n     * @param {number} depth The depth the value is at.\n     * @param {string[]} keys The path of keys.\n     * @return {Promise<RDF.Term[]>} An RDF term array.\n     */\n    async valueToTerm(context, key, value, depth, keys) {\n        // Skip further processing if we have an @type: @json\n        if (Util.getContextValueType(context, key) === '@json') {\n            return [this.dataFactory.literal(this.valueToJsonString(value), this.rdfJson)];\n        }\n        const type = typeof value;\n        switch (type) {\n            case 'object':\n                // Skip if we have a null or undefined object\n                if (value === null || value === undefined) {\n                    return [];\n                }\n                // Special case for arrays\n                if (Array.isArray(value)) {\n                    // We handle arrays at value level so we can emit earlier, so this is handled already when we get here.\n                    // Empty context-based lists are emitted at this place, because our streaming algorithm doesn't detect those.\n                    if ('@list' in Util.getContextValueContainer(context, key)) {\n                        if (value.length === 0) {\n                            return [this.rdfNil];\n                        }\n                        else {\n                            return this.parsingContext.idStack[depth + 1] || [];\n                        }\n                    }\n                    await this.validateValueIndexes(value);\n                    return [];\n                }\n                // Handle property-scoped contexts\n                context = await this.getContextSelfOrPropertyScoped(context, key);\n                // Handle local context in the value\n                if ('@context' in value) {\n                    context = await this.parsingContext.parseContext(value['@context'], (await this.parsingContext.getContext(keys, 0)).getContextRaw());\n                }\n                // In all other cases, we have a hash\n                value = await this.unaliasKeywords(value, keys, depth, context); // Un-alias potential keywords in this hash\n                if ('@value' in value) {\n                    let val;\n                    let valueLanguage;\n                    let valueDirection;\n                    let valueType;\n                    let valueIndex; // We don't use the index, but we need to check its type for spec-compliance\n                    for (key in value) {\n                        const subValue = value[key];\n                        switch (key) {\n                            case '@value':\n                                val = subValue;\n                                break;\n                            case '@language':\n                                valueLanguage = subValue;\n                                break;\n                            case '@direction':\n                                valueDirection = subValue;\n                                break;\n                            case '@type':\n                                valueType = subValue;\n                                break;\n                            case '@index':\n                                valueIndex = subValue;\n                                break;\n                            case '@annotation':\n                                // This keyword is allowed, but is processed like normal nodes\n                                break;\n                            default:\n                                throw new jsonld_context_parser_1.ErrorCoded(`Unknown value entry '${key}' in @value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n                        }\n                    }\n                    // Skip further processing if we have an @type: @json\n                    if (await this.unaliasKeyword(valueType, keys, depth, true, context) === '@json') {\n                        return [this.dataFactory.literal(this.valueToJsonString(val), this.rdfJson)];\n                    }\n                    // Validate @value\n                    if (val === null) {\n                        return [];\n                    }\n                    if (typeof val === 'object') {\n                        throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@value' can not be an object, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT_VALUE);\n                    }\n                    // Validate @index\n                    if (this.parsingContext.validateValueIndexes && valueIndex && typeof valueIndex !== 'string') {\n                        throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@index' must be a string, got '${JSON.stringify(valueIndex)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE);\n                    }\n                    // Validate @language and @direction\n                    if (valueLanguage) {\n                        if (typeof val !== 'string') {\n                            throw new jsonld_context_parser_1.ErrorCoded(`When an '@language' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_VALUE);\n                        }\n                        if (!jsonld_context_parser_1.ContextParser.validateLanguage(valueLanguage, this.parsingContext.strictValues, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_STRING)) {\n                            return [];\n                        }\n                        // Language tags are always normalized to lowercase in 1.0.\n                        if (this.parsingContext.normalizeLanguageTags || this.parsingContext.activeProcessingMode === 1.0) {\n                            valueLanguage = valueLanguage.toLowerCase();\n                        }\n                    }\n                    if (valueDirection) {\n                        if (typeof val !== 'string') {\n                            throw new Error(`When an '@direction' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`);\n                        }\n                        if (!jsonld_context_parser_1.ContextParser.validateDirection(valueDirection, this.parsingContext.strictValues)) {\n                            return [];\n                        }\n                    }\n                    // Check @language and @direction\n                    if (valueLanguage && valueDirection && this.parsingContext.rdfDirection) {\n                        if (valueType) {\n                            throw new jsonld_context_parser_1.ErrorCoded(`Can not have '@language', '@direction' and '@type' in a value: '${JSON\n                                .stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n                        }\n                        return this.nullableTermToArray(this\n                            .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n                    }\n                    else if (valueLanguage) { // Check @language\n                        if (valueType) {\n                            throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@language' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n                        }\n                        return [this.dataFactory.literal(val, valueLanguage)];\n                    }\n                    else if (valueDirection && this.parsingContext.rdfDirection) { // Check @direction\n                        if (valueType) {\n                            throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@direction' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n                        }\n                        return this.nullableTermToArray(this\n                            .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n                    }\n                    else if (valueType) { // Validate @type\n                        if (typeof valueType !== 'string') {\n                            throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n                        }\n                        const typeTerm = this.createVocabOrBaseTerm(context, valueType);\n                        if (!typeTerm) {\n                            throw new jsonld_context_parser_1.ErrorCoded(`Invalid '@type' value, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n                        }\n                        if (typeTerm.termType !== 'NamedNode') {\n                            throw new jsonld_context_parser_1.ErrorCoded(`Illegal value type (${typeTerm.termType}): ${valueType}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n                        }\n                        return [this.dataFactory.literal(val, typeTerm)];\n                    }\n                    // We don't pass the context, because context-based things like @language should be ignored\n                    return await this.valueToTerm(new jsonld_context_parser_1.JsonLdContextNormalized({}), key, val, depth, keys);\n                }\n                else if ('@set' in value) {\n                    // No other entries are allow in this value\n                    if (Object.keys(value).length > 1) {\n                        throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n                    }\n                    // No need to do anything here, this is handled at the deeper level.\n                    return [];\n                }\n                else if ('@list' in value) {\n                    // No other entries are allowed in this value\n                    if (Object.keys(value).length > 1) {\n                        throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n                    }\n                    const listValue = value[\"@list\"];\n                    // We handle lists at value level so we can emit earlier, so this is handled already when we get here.\n                    // Empty anonymous lists are emitted at this place, because our streaming algorithm doesn't detect those.\n                    if (Array.isArray(listValue)) {\n                        if (listValue.length === 0) {\n                            return [this.rdfNil];\n                        }\n                        else {\n                            return this.parsingContext.idStack[depth + 1] || [];\n                        }\n                    }\n                    else {\n                        // We only have a single list element here, so emit this directly as single element\n                        return await this.valueToTerm(await this.parsingContext.getContext(keys), key, listValue, depth - 1, keys.slice(0, -1));\n                    }\n                }\n                else if ('@reverse' in value && typeof value['@reverse'] === 'boolean') {\n                    // We handle reverse properties at value level so we can emit earlier,\n                    // so this is handled already when we get here.\n                    return [];\n                }\n                else if ('@graph' in Util.getContextValueContainer(await this.parsingContext.getContext(keys), key)) {\n                    // We are processing a graph container\n                    const graphContainerEntries = this.parsingContext.graphContainerTermStack[depth + 1];\n                    return graphContainerEntries ? Object.values(graphContainerEntries) : [this.dataFactory.blankNode()];\n                }\n                else if (\"@id\" in value) {\n                    // Use deeper context if the value node contains other properties next to @id.\n                    if (Object.keys(value).length > 1) {\n                        context = await this.parsingContext.getContext(keys, 0);\n                    }\n                    // Handle local context in the value\n                    if ('@context' in value) {\n                        context = await this.parsingContext.parseContext(value['@context'], context.getContextRaw());\n                    }\n                    if (value[\"@type\"] === '@vocab') {\n                        return this.nullableTermToArray(this.createVocabOrBaseTerm(context, value[\"@id\"]));\n                    }\n                    else {\n                        const valueId = value[\"@id\"];\n                        let valueTerm;\n                        if (typeof valueId === 'object') {\n                            if (this.parsingContext.rdfstar) {\n                                valueTerm = this.parsingContext.idStack[depth + 1][0];\n                            }\n                            else {\n                                throw new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE);\n                            }\n                        }\n                        else {\n                            valueTerm = this.resourceToTerm(context, valueId);\n                        }\n                        return this.nullableTermToArray(valueTerm);\n                    }\n                }\n                else {\n                    // Only make a blank node if at least one triple was emitted at the value's level.\n                    if (this.parsingContext.emittedStack[depth + 1]\n                        || (value && typeof value === 'object' && Object.keys(value).length === 0)) {\n                        return (this.parsingContext.idStack[depth + 1]\n                            || (this.parsingContext.idStack[depth + 1] = [this.dataFactory.blankNode()]));\n                    }\n                    else {\n                        return [];\n                    }\n                }\n            case 'string':\n                return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, null));\n            case 'boolean':\n                return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, Boolean(value).toString(), this.dataFactory.namedNode(Util.XSD_BOOLEAN)));\n            case 'number':\n                return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, this.dataFactory.namedNode(value % 1 === 0 && value < 1e21 ? Util.XSD_INTEGER : Util.XSD_DOUBLE)));\n            default:\n                this.parsingContext.emitError(new Error(`Could not determine the RDF type of a ${type}`));\n                return [];\n        }\n    }\n    /**\n     * If the context defines a property-scoped context for the given key,\n     * that context will be returned.\n     * Otherwise, the given context will be returned as-is.\n     *\n     * This should be used for valueToTerm cases that are not objects.\n     * @param context A context.\n     * @param key A JSON key.\n     */\n    async getContextSelfOrPropertyScoped(context, key) {\n        const contextKeyEntry = context.getContextRaw()[key];\n        if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n            context = await this.parsingContext.parseContext(contextKeyEntry, context.getContextRaw(), true);\n        }\n        return context;\n    }\n    /**\n     * If the given term is null, return an empty array, otherwise return an array with the single given term.\n     * @param term A term.\n     */\n    nullableTermToArray(term) {\n        return term ? [term] : [];\n    }\n    /**\n     * Convert a given JSON key to an RDF predicate term,\n     * based on @vocab.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param key A JSON key.\n     * @return {RDF.NamedNode} An RDF named node.\n     */\n    predicateToTerm(context, key) {\n        const expanded = context.expandTerm(key, true, this.parsingContext.getExpandOptions());\n        // Immediately return if the predicate was disabled in the context\n        if (!expanded) {\n            return null;\n        }\n        // Check if the predicate is a blank node\n        if (expanded[0] === '_' && expanded[1] === ':') {\n            if (this.parsingContext.produceGeneralizedRdf) {\n                return this.dataFactory.blankNode(expanded.substr(2));\n            }\n            else {\n                return null;\n            }\n        }\n        // Check if the predicate is a valid IRI\n        if (Util.isValidIri(expanded)) {\n            return this.dataFactory.namedNode(expanded);\n        }\n        else {\n            if (expanded && this.parsingContext.strictValues) {\n                this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid predicate IRI: ${expanded}`, jsonld_context_parser_1.ERROR_CODES.INVALID_IRI_MAPPING));\n            }\n            else {\n                return null;\n            }\n        }\n        return null;\n    }\n    /**\n     * Convert a given JSON key to an RDF resource term or blank node,\n     * based on @base.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param key A JSON key.\n     * @return {RDF.NamedNode} An RDF named node or null.\n     */\n    resourceToTerm(context, key) {\n        if (key.startsWith('_:')) {\n            return this.dataFactory.blankNode(key.substr(2));\n        }\n        const iri = context.expandTerm(key, false, this.parsingContext.getExpandOptions());\n        if (!Util.isValidIri(iri)) {\n            if (iri && this.parsingContext.strictValues) {\n                this.parsingContext.emitError(new Error(`Invalid resource IRI: ${iri}`));\n            }\n            else {\n                return null;\n            }\n        }\n        return this.dataFactory.namedNode(iri);\n    }\n    /**\n     * Convert a given JSON key to an RDF resource term.\n     * It will do this based on the @vocab,\n     * and fallback to @base.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param key A JSON key.\n     * @return {RDF.NamedNode} An RDF named node or null.\n     */\n    createVocabOrBaseTerm(context, key) {\n        if (key.startsWith('_:')) {\n            return this.dataFactory.blankNode(key.substr(2));\n        }\n        const expandOptions = this.parsingContext.getExpandOptions();\n        let expanded = context.expandTerm(key, true, expandOptions);\n        if (expanded === key) {\n            expanded = context.expandTerm(key, false, expandOptions);\n        }\n        if (!Util.isValidIri(expanded)) {\n            if (expanded && this.parsingContext.strictValues && !expanded.startsWith('@')) {\n                this.parsingContext.emitError(new Error(`Invalid term IRI: ${expanded}`));\n            }\n            else {\n                return null;\n            }\n        }\n        return this.dataFactory.namedNode(expanded);\n    }\n    /**\n     * Ensure that the given value becomes a string.\n     * @param {string | number} value A string or number.\n     * @param {NamedNode} datatype The intended datatype.\n     * @return {string} The returned string.\n     */\n    intToString(value, datatype) {\n        if (typeof value === 'number') {\n            if (Number.isFinite(value)) {\n                const isInteger = value % 1 === 0;\n                if (isInteger && (!datatype || datatype.value !== Util.XSD_DOUBLE)) {\n                    return Number(value).toString();\n                }\n                else {\n                    return value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E');\n                }\n            }\n            else {\n                return value > 0 ? 'INF' : '-INF';\n            }\n        }\n        else {\n            return value;\n        }\n    }\n    /**\n     * Convert a given JSON string value to an RDF term.\n     * @param {number} depth The current stack depth.\n     * @param {JsonLdContextNormalized} context A JSON-LD context.\n     * @param {string} key The current JSON key.\n     * @param {string} value A JSON value.\n     * @param {NamedNode} defaultDatatype The default datatype for the given value.\n     * @return {RDF.Term} An RDF term or null.\n     */\n    stringValueToTerm(depth, context, key, value, defaultDatatype) {\n        // Check the datatype from the context\n        const contextType = Util.getContextValueType(context, key);\n        if (contextType) {\n            if (contextType === '@id') {\n                if (!defaultDatatype) {\n                    return this.resourceToTerm(context, this.intToString(value, defaultDatatype));\n                }\n            }\n            else if (contextType === '@vocab') {\n                if (!defaultDatatype) {\n                    return this.createVocabOrBaseTerm(context, this.intToString(value, defaultDatatype));\n                }\n            }\n            else {\n                defaultDatatype = this.dataFactory.namedNode(contextType);\n            }\n        }\n        // If we don't find such a datatype, check the language from the context\n        if (!defaultDatatype) {\n            const contextLanguage = Util.getContextValueLanguage(context, key);\n            const contextDirection = Util.getContextValueDirection(context, key);\n            if (contextDirection && this.parsingContext.rdfDirection) {\n                return this.createLanguageDirectionLiteral(depth, this.intToString(value, defaultDatatype), contextLanguage, contextDirection);\n            }\n            else {\n                return this.dataFactory.literal(this.intToString(value, defaultDatatype), contextLanguage);\n            }\n        }\n        // If all else fails, make a literal based on the default content type\n        return this.dataFactory.literal(this.intToString(value, defaultDatatype), defaultDatatype);\n    }\n    /**\n     * Create a literal for the given value with the given language and direction.\n     * Auxiliary quads may be emitted.\n     * @param {number} depth The current stack depth.\n     * @param {string} value A string value.\n     * @param {string} language A language tag.\n     * @param {string} direction A direction.\n     * @return {Term} An RDF term.\n     */\n    createLanguageDirectionLiteral(depth, value, language, direction) {\n        if (this.parsingContext.rdfDirection === 'i18n-datatype') {\n            // Create a datatyped literal, by encoding the language and direction into https://www.w3.org/ns/i18n#.\n            if (!language) {\n                language = '';\n            }\n            return this.dataFactory.literal(value, this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${language}_${direction}`));\n        }\n        else {\n            // Reify the literal.\n            const valueNode = this.dataFactory.blankNode();\n            const graph = this.getDefaultGraph();\n            this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'value'), this.dataFactory.literal(value), graph));\n            if (language) {\n                this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'language'), this.dataFactory.literal(language), graph));\n            }\n            this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'direction'), this.dataFactory.literal(direction), graph));\n            return valueNode;\n        }\n    }\n    /**\n     * Stringify the given JSON object to a canonical JSON string.\n     * @param value Any valid JSON value.\n     * @return {string} A canonical JSON string.\n     */\n    valueToJsonString(value) {\n        return canonicalizeJson(value);\n    }\n    /**\n     * If the key is not a keyword, try to check if it is an alias for a keyword,\n     * and if so, un-alias it.\n     * @param {string} key A key, can be falsy.\n     * @param {string[]} keys The path of keys.\n     * @param {number} depth The depth to\n     * @param {boolean} disableCache If the cache should be disabled\n     * @param {JsonLdContextNormalized} context A context to unalias with,\n     *                                           will fallback to retrieving the context for the given keys.\n     * @return {Promise<string>} A promise resolving to the key itself, or another key.\n     */\n    async unaliasKeyword(key, keys, depth, disableCache, context) {\n        // Numbers can not be an alias\n        if (Number.isInteger(key)) {\n            return key;\n        }\n        // Try to grab from cache if it was already un-aliased before.\n        if (!disableCache) {\n            const cachedUnaliasedKeyword = this.parsingContext.unaliasedKeywordCacheStack[depth];\n            if (cachedUnaliasedKeyword) {\n                return cachedUnaliasedKeyword;\n            }\n        }\n        if (!jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n            context = context || await this.parsingContext.getContext(keys);\n            let unliased = context.getContextRaw()[key];\n            if (unliased && typeof unliased === 'object') {\n                unliased = unliased['@id'];\n            }\n            if (jsonld_context_parser_1.Util.isValidKeyword(unliased)) {\n                key = unliased;\n            }\n        }\n        return disableCache ? key : (this.parsingContext.unaliasedKeywordCacheStack[depth] = key);\n    }\n    /**\n     * Unalias the keyword of the parent.\n     * This adds a safety check if no parent exist.\n     * @param {any[]} keys A stack of keys.\n     * @param {number} depth The current depth.\n     * @return {Promise<any>} A promise resolving to the parent key, or another key.\n     */\n    async unaliasKeywordParent(keys, depth) {\n        return await this.unaliasKeyword(depth > 0 && keys[depth - 1], keys, depth - 1);\n    }\n    /**\n     * Un-alias all keywords in the given hash.\n     * @param {{[p: string]: any}} hash A hash object.\n     * @param {string[]} keys The path of keys.\n     * @param {number} depth The depth.\n     * @param {JsonLdContextNormalized} context A context to unalias with,\n     *                                           will fallback to retrieving the context for the given keys.\n     * @return {Promise<{[p: string]: any}>} A promise resolving to the new hash.\n     */\n    async unaliasKeywords(hash, keys, depth, context) {\n        const newHash = {};\n        for (const key in hash) {\n            newHash[await this.unaliasKeyword(key, keys, depth + 1, true, context)] = hash[key];\n        }\n        return newHash;\n    }\n    /**\n     * Check if we are processing a literal (including JSON literals) at the given depth.\n     * This will also check higher levels,\n     * because if a parent is a literal,\n     * then the deeper levels are definitely a literal as well.\n     * @param {any[]} keys The keys.\n     * @param {number} depth The depth.\n     * @return {boolean} If we are processing a literal.\n     */\n    async isLiteral(keys, depth) {\n        for (let i = depth; i >= 0; i--) {\n            if (await this.unaliasKeyword(keys[i], keys, i) === '@annotation') {\n                // Literals may have annotations, which require processing of inner nodes.\n                return false;\n            }\n            if (this.parsingContext.literalStack[i] || this.parsingContext.jsonLiteralStack[i]) {\n                return true;\n            }\n        }\n        return false;\n    }\n    /**\n     * Check how many parents should be skipped for checking the @graph for the given node.\n     *\n     * @param {number} depth The depth of the node.\n     * @param {any[]} keys An array of keys.\n     * @return {number} The graph depth offset.\n     */\n    async getDepthOffsetGraph(depth, keys) {\n        for (let i = depth - 1; i > 0; i--) {\n            if (await this.unaliasKeyword(keys[i], keys, i) === '@graph') {\n                // Skip further processing if we are already in an @graph-@id or @graph-@index container\n                const containers = (await EntryHandlerContainer_1.EntryHandlerContainer.getContainerHandler(this.parsingContext, keys, i)).containers;\n                if (EntryHandlerContainer_1.EntryHandlerContainer.isComplexGraphContainer(containers)) {\n                    return -1;\n                }\n                return depth - i - 1;\n            }\n        }\n        return -1;\n    }\n    /**\n     * Check if the given subject is of a valid type.\n     * This should be called when applying @reverse'd properties.\n     * @param {Term} subject A subject.\n     */\n    validateReverseSubject(subject) {\n        if (subject.termType === 'Literal') {\n            throw new jsonld_context_parser_1.ErrorCoded(`Found illegal literal in subject position: ${subject.value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n        }\n    }\n    /**\n     * Get the default graph.\n     * @return {Term} An RDF term.\n     */\n    getDefaultGraph() {\n        return this.parsingContext.defaultGraph || this.dataFactory.defaultGraph();\n    }\n    /**\n     * Get the current graph, while taking into account a graph that can be defined via @container: @graph.\n     * If not within a graph container, the default graph will be returned.\n     * @param keys The current keys.\n     * @param depth The current depth.\n     */\n    async getGraphContainerValue(keys, depth) {\n        // Default to default graph\n        let graph = this.getDefaultGraph();\n        // Check if we are in an @container: @graph.\n        const { containers, depth: depthContainer } = await EntryHandlerContainer_1.EntryHandlerContainer\n            .getContainerHandler(this.parsingContext, keys, depth);\n        if ('@graph' in containers) {\n            // Get the graph from the stack.\n            const graphContainerIndex = EntryHandlerContainer_1.EntryHandlerContainer.getContainerGraphIndex(containers, depthContainer, keys);\n            const entry = this.parsingContext.graphContainerTermStack[depthContainer];\n            graph = entry ? entry[graphContainerIndex] : null;\n            // Set the graph in the stack if none has been set yet.\n            if (!graph) {\n                let graphId = null;\n                if ('@id' in containers) {\n                    const keyUnaliased = await this.getContainerKey(keys[depthContainer], keys, depthContainer);\n                    if (keyUnaliased !== null) {\n                        graphId = await this.resourceToTerm(await this.parsingContext.getContext(keys), keyUnaliased);\n                    }\n                }\n                if (!graphId) {\n                    graphId = this.dataFactory.blankNode();\n                }\n                if (!this.parsingContext.graphContainerTermStack[depthContainer]) {\n                    this.parsingContext.graphContainerTermStack[depthContainer] = {};\n                }\n                graph = this.parsingContext.graphContainerTermStack[depthContainer][graphContainerIndex] = graphId;\n            }\n        }\n        return graph;\n    }\n    /**\n     * Get the properties depth for retrieving properties.\n     *\n     * Typically, the properties depth will be identical to the given depth.\n     *\n     * The following exceptions apply:\n     * * When the parent is @reverse, the depth is decremented by one.\n     * * When @nest parents are found, the depth is decremented by the number of @nest parents.\n     * If in combination with the exceptions above an intermediary array is discovered,\n     * the depth is also decremented by this number of arrays.\n     *\n     * @param keys The current key chain.\n     * @param depth The current depth.\n     */\n    async getPropertiesDepth(keys, depth) {\n        let lastValidDepth = depth;\n        for (let i = depth - 1; i > 0; i--) {\n            if (typeof keys[i] !== 'number') { // Skip array keys\n                const parentKey = await this.unaliasKeyword(keys[i], keys, i);\n                if (parentKey === '@reverse') {\n                    return i;\n                }\n                else if (parentKey === '@nest') {\n                    lastValidDepth = i;\n                }\n                else {\n                    return lastValidDepth;\n                }\n            }\n        }\n        return lastValidDepth;\n    }\n    /**\n     * Get the key for the current container entry.\n     * @param key A key, can be falsy.\n     * @param keys The key chain.\n     * @param depth The current depth to get the key from.\n     * @return Promise resolving to the key.\n     *         Null will be returned for @none entries, with aliasing taken into account.\n     */\n    async getContainerKey(key, keys, depth) {\n        const keyUnaliased = await this.unaliasKeyword(key, keys, depth);\n        return keyUnaliased === '@none' ? null : keyUnaliased;\n    }\n    /**\n     * Check if no reverse properties are present in embedded nodes.\n     * @param key The current key.\n     * @param reverse If a reverse property is active.\n     * @param isEmbedded If we're in an embedded node.\n     */\n    validateReverseInEmbeddedNode(key, reverse, isEmbedded) {\n        if (isEmbedded && reverse && !this.parsingContext.rdfstarReverseInEmbedded) {\n            throw new jsonld_context_parser_1.ErrorCoded(`Illegal reverse property in embedded node in ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE);\n        }\n    }\n    /**\n     * Emit a quad, with checks.\n     * @param depth The current depth.\n     * @param subject S\n     * @param predicate P\n     * @param object O\n     * @param graph G\n     * @param reverse If a reverse property is active.\n     * @param isEmbedded If we're in an embedded node.\n     */\n    emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded) {\n        // Create a quad\n        let quad;\n        if (reverse) {\n            this.validateReverseSubject(object);\n            quad = this.dataFactory.quad(object, predicate, subject, graph);\n        }\n        else {\n            quad = this.dataFactory.quad(subject, predicate, object, graph);\n        }\n        // Emit the quad, unless it was created in an embedded node\n        if (isEmbedded) {\n            // Embedded nodes don't inherit the active graph\n            if (quad.graph.termType !== 'DefaultGraph') {\n                quad = this.dataFactory.quad(quad.subject, quad.predicate, quad.object);\n            }\n            // Multiple embedded nodes are not allowed\n            if (this.parsingContext.idStack[depth - 1]) {\n                throw new jsonld_context_parser_1.ErrorCoded(`Illegal multiple properties in an embedded node`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE);\n            }\n            this.parsingContext.idStack[depth - 1] = [quad];\n        }\n        else {\n            this.parsingContext.emitQuad(depth, quad);\n        }\n        // Flush annotations\n        const annotationsBuffer = this.parsingContext.annotationsBuffer[depth];\n        if (annotationsBuffer) {\n            for (const annotation of annotationsBuffer) {\n                this.emitAnnotation(depth, quad, annotation);\n            }\n            delete this.parsingContext.annotationsBuffer[depth];\n        }\n    }\n    // This is a separate function to enable recursion\n    emitAnnotation(depth, quad, annotation) {\n        // Construct annotation quad\n        let annotationQuad;\n        if (annotation.reverse) {\n            this.validateReverseSubject(annotation.object);\n            annotationQuad = this.dataFactory.quad(annotation.object, annotation.predicate, quad);\n        }\n        else {\n            annotationQuad = this.dataFactory.quad(quad, annotation.predicate, annotation.object);\n        }\n        // Emit annotated quad\n        this.parsingContext.emitQuad(depth, annotationQuad);\n        // Also emit nested annotations\n        for (const nestedAnnotation of annotation.nestedAnnotations) {\n            this.emitAnnotation(depth, annotationQuad, nestedAnnotation);\n        }\n    }\n}\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.XSD_BOOLEAN = Util.XSD + 'boolean';\nUtil.XSD_INTEGER = Util.XSD + 'integer';\nUtil.XSD_DOUBLE = Util.XSD + 'double';\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerArrayValue = void 0;\nconst Util_1 = require(\"../Util\");\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Handles values that are part of an array.\n */\nclass EntryHandlerArrayValue {\n    isPropertyHandler() {\n        return false;\n    }\n    isStackProcessor() {\n        return true;\n    }\n    async validate(parsingContext, util, keys, depth, inProperty) {\n        return this.test(parsingContext, util, null, keys, depth);\n    }\n    async test(parsingContext, util, key, keys, depth) {\n        return typeof keys[depth] === 'number';\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        let parentKey = await util.unaliasKeywordParent(keys, depth);\n        // Check if we have an anonymous list\n        if (parentKey === '@list') {\n            // Our value is part of an array\n            // Determine the list root key\n            let listRootKey = null;\n            let listRootDepth = 0;\n            for (let i = depth - 2; i > 0; i--) {\n                const keyOption = keys[i];\n                if (typeof keyOption === 'string' || typeof keyOption === 'number') {\n                    listRootDepth = i;\n                    listRootKey = keyOption;\n                    break;\n                }\n            }\n            if (listRootKey !== null) {\n                // Emit the given objects as list elements\n                const values = await util.valueToTerm(await parsingContext.getContext(keys), listRootKey, value, depth, keys);\n                for (const object of values) {\n                    await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n                }\n                // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n                if (values.length === 0) {\n                    await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n                }\n            }\n        }\n        else if (parentKey === '@set') {\n            // Our value is part of a set, so we just add it to the parent-parent\n            await parsingContext.newOnValueJob(keys.slice(0, -2), value, depth - 2, false);\n        }\n        else if (parentKey !== undefined && parentKey !== '@type') {\n            // Buffer our value using the parent key as predicate\n            // Determine the first parent key that is *not* an array key\n            // This is needed in case we have an @list container with nested arrays,\n            // where each of them should produce nested RDF lists.\n            for (let i = depth - 1; i > 0; i--) {\n                if (typeof keys[i] !== 'number') {\n                    parentKey = await util.unaliasKeyword(keys[i], keys, i);\n                    break;\n                }\n            }\n            // Check if the predicate is marked as an @list in the context\n            const parentContext = await parsingContext.getContext(keys.slice(0, -1));\n            if ('@list' in Util_1.Util.getContextValueContainer(parentContext, parentKey)) {\n                // Our value is part of an array\n                // Emit the given objects as list elements\n                parsingContext.emittedStack[depth + 1] = true; // Ensure the creation of bnodes for empty nodes\n                const values = await util.valueToTerm(await parsingContext.getContext(keys), parentKey, value, depth, keys);\n                for (const object of values) {\n                    await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, -1), depth - 1);\n                }\n                // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n                if (values.length === 0) {\n                    await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, -1), depth - 1);\n                }\n            }\n            else {\n                // Copy the stack values up one level so that the next job can access them.\n                parsingContext.shiftStack(depth, 1);\n                // Execute the job one level higher\n                await parsingContext.newOnValueJob(keys.slice(0, -1), value, depth - 1, false);\n                // Remove any defined contexts at this level to avoid it to propagate to the next array element.\n                parsingContext.contextTree.removeContext(keys.slice(0, -1));\n            }\n        }\n    }\n    async handleListElement(parsingContext, util, value, valueOriginal, depth, listRootKeys, listRootDepth) {\n        // Buffer our value as an RDF list using the listRootKey as predicate\n        let listPointer = parsingContext.listPointerStack[depth];\n        if (valueOriginal !== null && (await util.unaliasKeywords(valueOriginal, listRootKeys, depth))['@value'] !== null) {\n            if (!listPointer || !listPointer.value) {\n                const linkTerm = util.dataFactory.blankNode();\n                listPointer = { value: linkTerm, listRootDepth, listId: linkTerm };\n            }\n            else {\n                // rdf:rest links are always emitted before the next element,\n                // as the blank node identifier is only created at that point.\n                // Because of this reason, the final rdf:nil is emitted when the stack depth is decreased.\n                const newLinkTerm = util.dataFactory.blankNode();\n                parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfRest, newLinkTerm, util.getDefaultGraph()));\n                // Update the list pointer for the next element\n                listPointer.value = newLinkTerm;\n            }\n            // Emit a list element for the current value\n            // Omit rdf:first if the value is invalid\n            if (value) {\n                parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfFirst, value, util.getDefaultGraph()));\n            }\n        }\n        else {\n            // A falsy list element if found.\n            // Mark it as an rdf:nil list until another valid list element comes in\n            if (!listPointer) {\n                listPointer = { listRootDepth, listId: util.rdfNil };\n            }\n        }\n        parsingContext.listPointerStack[depth] = listPointer;\n        // Error if an annotation was defined\n        if (parsingContext.rdfstar && parsingContext.annotationsBuffer[depth]) {\n            parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal annotation inside a list`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n        }\n    }\n}\nexports.EntryHandlerArrayValue = EntryHandlerArrayValue;\n//# sourceMappingURL=EntryHandlerArrayValue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerInvalidFallback = void 0;\n/**\n * A catch-all for properties, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerInvalidFallback {\n    isPropertyHandler() {\n        return false;\n    }\n    isStackProcessor() {\n        return true;\n    }\n    async validate(parsingContext, util, keys, depth, inProperty) {\n        return false;\n    }\n    async test(parsingContext, util, key, keys, depth) {\n        return true;\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        parsingContext.emittedStack[depth] = false;\n    }\n}\nexports.EntryHandlerInvalidFallback = EntryHandlerInvalidFallback;\n//# sourceMappingURL=EntryHandlerInvalidFallback.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeyword = void 0;\n/**\n * An abstract keyword entry handler.\n */\nclass EntryHandlerKeyword {\n    constructor(keyword) {\n        this.keyword = keyword;\n    }\n    isPropertyHandler() {\n        return false;\n    }\n    isStackProcessor() {\n        return true;\n    }\n    async validate(parsingContext, util, keys, depth, inProperty) {\n        return false;\n    }\n    async test(parsingContext, util, key, keys, depth) {\n        return key === this.keyword;\n    }\n}\nexports.EntryHandlerKeyword = EntryHandlerKeyword;\n//# sourceMappingURL=EntryHandlerKeyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordContext = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @context entries.\n */\nclass EntryHandlerKeywordContext extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n    constructor() {\n        super('@context');\n    }\n    isStackProcessor() {\n        return false;\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        // Error if an out-of-order context was found when support is not enabled.\n        if (parsingContext.streamingProfile\n            && (parsingContext.processingStack[depth]\n                || parsingContext.processingType[depth]\n                || parsingContext.idStack[depth] !== undefined)) {\n            parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order context, while streaming is enabled.' +\n                '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n        }\n        // Find the parent context to inherit from.\n        // We actually request a context for the current depth (with fallback to parent)\n        // because we want to take into account any property-scoped contexts that are defined for this depth.\n        const parentContext = parsingContext.getContext(keys);\n        // Set the context for this scope\n        const context = parsingContext.parseContext(value, (await parentContext).getContextRaw());\n        parsingContext.contextTree.setContext(keys.slice(0, -1), context);\n        parsingContext.emitContext(value);\n        await parsingContext.validateContext(await context);\n    }\n}\nexports.EntryHandlerKeywordContext = EntryHandlerKeywordContext;\n//# sourceMappingURL=EntryHandlerKeywordContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordGraph = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordGraph extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n    constructor() {\n        super('@graph');\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        // The current identifier identifies a graph for the deeper level.\n        parsingContext.graphStack[depth + 1] = true;\n    }\n}\nexports.EntryHandlerKeywordGraph = EntryHandlerKeywordGraph;\n//# sourceMappingURL=EntryHandlerKeywordGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordId = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @id entries.\n */\nclass EntryHandlerKeywordId extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n    constructor() {\n        super('@id');\n    }\n    isStackProcessor() {\n        return false;\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        if (typeof value !== 'string') {\n            // JSON-LD-star allows @id object values\n            if (parsingContext.rdfstar && typeof value === 'object') {\n                const valueKeys = Object.keys(value);\n                if (valueKeys.length === 1 && valueKeys[0] === '@id') {\n                    parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid embedded node without property with @id ${value['@id']}`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE));\n                }\n            }\n            else {\n                parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE));\n            }\n            return;\n        }\n        // Determine the canonical place for this id.\n        // For example, @nest parents should be ignored.\n        const depthProperties = await util.getPropertiesDepth(keys, depth);\n        // Error if an @id for this node already existed.\n        if (parsingContext.idStack[depthProperties] !== undefined) {\n            if (parsingContext.idStack[depthProperties][0].listHead) {\n                // Error if an @list was already defined for this node\n                parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${keys[depth - 1]}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT));\n            }\n            else {\n                // Otherwise, the previous id was just because of an @id entry.\n                parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found duplicate @ids '${parsingContext\n                    .idStack[depthProperties][0].value}' and '${value}'`, jsonld_context_parser_1.ERROR_CODES.COLLIDING_KEYWORDS));\n            }\n        }\n        // Error if an annotation was defined\n        if (parsingContext.rdfstar && parsingContext.annotationsBuffer[depth]) {\n            for (const annotation of parsingContext.annotationsBuffer[depth]) {\n                if (annotation.depth === depth) {\n                    parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @id inside an annotation: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n                }\n            }\n        }\n        // Save our @id on the stack\n        parsingContext.idStack[depthProperties] = util.nullableTermToArray(await util.resourceToTerm(await parsingContext.getContext(keys), value));\n    }\n}\nexports.EntryHandlerKeywordId = EntryHandlerKeywordId;\n//# sourceMappingURL=EntryHandlerKeywordId.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordIncluded = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @included entries.\n */\nclass EntryHandlerKeywordIncluded extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n    constructor() {\n        super('@included');\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        if (typeof value !== 'object') {\n            parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @included '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n        }\n        const valueUnliased = await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys));\n        if ('@value' in valueUnliased) {\n            parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n        }\n        if ('@list' in valueUnliased) {\n            parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n        }\n        parsingContext.emittedStack[depth] = false;\n    }\n}\nexports.EntryHandlerKeywordIncluded = EntryHandlerKeywordIncluded;\n//# sourceMappingURL=EntryHandlerKeywordIncluded.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordNest = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @nest entries.\n */\nclass EntryHandlerKeywordNest extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n    constructor() {\n        super('@nest');\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        if (typeof value !== 'object') {\n            parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found invalid @nest entry for '${key}': '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n        }\n        if ('@value' in await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys))) {\n            parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an invalid @value node for '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n        }\n        parsingContext.emittedStack[depth] = false;\n    }\n}\nexports.EntryHandlerKeywordNest = EntryHandlerKeywordNest;\n//# sourceMappingURL=EntryHandlerKeywordNest.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordType = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst Util_1 = require(\"../../Util\");\nconst EntryHandlerPredicate_1 = require(\"../EntryHandlerPredicate\");\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordType extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n    constructor() {\n        super('@type');\n    }\n    isStackProcessor() {\n        return false;\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        const keyOriginal = keys[depth];\n        // The current identifier identifies an rdf:type predicate.\n        // But we only emit it once the node closes,\n        // as it's possible that the @type is used to identify the datatype of a literal, which we ignore here.\n        const context = await parsingContext.getContext(keys);\n        const predicate = util.rdfType;\n        const parentKey = await util.unaliasKeywordParent(keys, depth);\n        const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, parentKey);\n        const isEmbedded = Util_1.Util.isPropertyInEmbeddedNode(parentKey);\n        util.validateReverseInEmbeddedNode(key, reverse, isEmbedded);\n        const isAnnotation = Util_1.Util.isPropertyInAnnotationObject(parentKey);\n        // Handle multiple values if the value is an array\n        const elements = Array.isArray(value) ? value : [value];\n        for (const element of elements) {\n            if (typeof element !== 'string') {\n                parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @type '${element}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPE_VALUE));\n            }\n            const type = util.createVocabOrBaseTerm(context, element);\n            if (type) {\n                await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, type, reverse, isEmbedded, isAnnotation);\n            }\n        }\n        // Collect type-scoped contexts if they exist\n        let scopedContext = Promise.resolve(context);\n        let hasTypedScopedContext = false;\n        for (const element of elements.sort()) { // Spec requires lexicographical ordering\n            const typeContext = Util_1.Util.getContextValue(context, '@context', element, null);\n            if (typeContext) {\n                hasTypedScopedContext = true;\n                scopedContext = scopedContext.then((c) => parsingContext.parseContext(typeContext, c.getContextRaw()));\n            }\n        }\n        // Error if an out-of-order type-scoped context was found when support is not enabled.\n        if (parsingContext.streamingProfile\n            && (hasTypedScopedContext || !parsingContext.streamingProfileAllowOutOfOrderPlainType)\n            && (parsingContext.processingStack[depth] || parsingContext.idStack[depth])) {\n            parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order type-scoped context, while streaming is enabled.' +\n                '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n        }\n        // If at least least one type-scoped context applies, set them in the tree.\n        if (hasTypedScopedContext) {\n            // Do not propagate by default\n            scopedContext = scopedContext.then((c) => {\n                // Set the original context at this depth as a fallback\n                // This is needed when a context was already defined at the given depth,\n                // and this context needs to remain accessible from child nodes when propagation is disabled.\n                if (c.getContextRaw()['@propagate'] !== true) {\n                    return new jsonld_context_parser_1.JsonLdContextNormalized(Object.assign(Object.assign({}, c.getContextRaw()), { '@propagate': false, '@__propagateFallback': context.getContextRaw() }));\n                }\n                return c;\n            });\n            // Set the new context in the context tree\n            parsingContext.contextTree.setContext(keys.slice(0, keys.length - 1), scopedContext);\n        }\n        // Flag that type has been processed at this depth\n        parsingContext.processingType[depth] = true;\n    }\n}\nexports.EntryHandlerKeywordType = EntryHandlerKeywordType;\n//# sourceMappingURL=EntryHandlerKeywordType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordUnknownFallback = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * A catch-all for keywords, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerKeywordUnknownFallback {\n    isPropertyHandler() {\n        return false;\n    }\n    isStackProcessor() {\n        return true;\n    }\n    async validate(parsingContext, util, keys, depth, inProperty) {\n        const key = await util.unaliasKeyword(keys[depth], keys, depth);\n        if (jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n            // Don't emit anything inside free-floating lists\n            if (!inProperty) {\n                if (key === '@list') {\n                    return false;\n                }\n            }\n            return true;\n        }\n        return false;\n    }\n    async test(parsingContext, util, key, keys, depth) {\n        return jsonld_context_parser_1.Util.isPotentialKeyword(key);\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        const keywordType = EntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES[key];\n        if (keywordType !== undefined) {\n            if (keywordType && typeof value !== keywordType.type) {\n                parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid value type for '${key}' with value '${value}'`, keywordType.errorCode));\n            }\n        }\n        else if (parsingContext.strictValues) {\n            parsingContext.emitError(new Error(`Unknown keyword '${key}' with value '${value}'`));\n        }\n        parsingContext.emittedStack[depth] = false;\n    }\n}\nEntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES = {\n    '@index': { type: 'string', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE },\n    '@list': null,\n    '@reverse': { type: 'object', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_VALUE },\n    '@set': null,\n    '@value': null,\n};\nexports.EntryHandlerKeywordUnknownFallback = EntryHandlerKeywordUnknownFallback;\n//# sourceMappingURL=EntryHandlerKeywordUnknownFallback.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordValue = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\n/**\n * Handles @value entries.\n */\nclass EntryHandlerKeywordValue extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n    constructor() {\n        super('@value');\n    }\n    async validate(parsingContext, util, keys, depth, inProperty) {\n        // If this is @value, mark it so in the stack so that no deeper handling of nodes occurs.\n        const key = keys[depth];\n        if (key && !parsingContext.literalStack[depth] && await this.test(parsingContext, util, key, keys, depth)) {\n            parsingContext.literalStack[depth] = true;\n        }\n        return super.validate(parsingContext, util, keys, depth, inProperty);\n    }\n    async test(parsingContext, util, key, keys, depth) {\n        return await util.unaliasKeyword(keys[depth], keys.slice(0, keys.length - 1), depth - 1, true) === '@value';\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        // If the value is valid, indicate that we are processing a literal.\n        // The actual value will be determined at the parent level when the @value is part of an object,\n        // because we may want to take into account additional entries such as @language.\n        // See {@link Util.valueToTerm}\n        // Indicate that we are processing a literal, and that no later predicates should be parsed at this depth.\n        parsingContext.literalStack[depth] = true;\n        // Void any buffers that we may have accumulated up until now\n        delete parsingContext.unidentifiedValuesBuffer[depth];\n        delete parsingContext.unidentifiedGraphsBuffer[depth];\n        // Indicate that we have not emitted at this depth\n        parsingContext.emittedStack[depth] = false;\n    }\n}\nexports.EntryHandlerKeywordValue = EntryHandlerKeywordValue;\n//# sourceMappingURL=EntryHandlerKeywordValue.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextTree = void 0;\n/**\n * A tree structure that holds all contexts,\n * based on their position in the JSON object.\n *\n * Positions are identified by a path of keys.\n */\nclass ContextTree {\n    constructor() {\n        this.subTrees = {};\n    }\n    getContext(keys) {\n        if (keys.length > 0) {\n            const [head, ...tail] = keys;\n            const subTree = this.subTrees[head];\n            if (subTree) {\n                const subContext = subTree.getContext(tail);\n                if (subContext) {\n                    return subContext.then(({ context, depth }) => ({ context, depth: depth + 1 }));\n                }\n            }\n        }\n        return this.context ? this.context.then((context) => ({ context, depth: 0 })) : null;\n    }\n    setContext(keys, context) {\n        if (keys.length === 0) {\n            this.context = context;\n        }\n        else {\n            const [head, ...tail] = keys;\n            let subTree = this.subTrees[head];\n            if (!subTree) {\n                subTree = this.subTrees[head] = new ContextTree();\n            }\n            subTree.setContext(tail, context);\n        }\n    }\n    removeContext(path) {\n        this.setContext(path, null);\n    }\n}\nexports.ContextTree = ContextTree;\n//# sourceMappingURL=ContextTree.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsingContext = void 0;\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst ErrorCoded_1 = require(\"jsonld-context-parser/lib/ErrorCoded\");\nconst ContextTree_1 = require(\"./ContextTree\");\nconst JsonLdParser_1 = require(\"./JsonLdParser\");\n/**\n * Data holder for parsing information.\n */\nclass ParsingContext {\n    constructor(options) {\n        // Initialize settings\n        this.contextParser = new jsonld_context_parser_1.ContextParser({ documentLoader: options.documentLoader, skipValidation: options.skipContextValidation });\n        this.streamingProfile = !!options.streamingProfile;\n        this.baseIRI = options.baseIRI;\n        this.produceGeneralizedRdf = !!options.produceGeneralizedRdf;\n        this.allowSubjectList = !!options.allowSubjectList;\n        this.processingMode = options.processingMode || JsonLdParser_1.JsonLdParser.DEFAULT_PROCESSING_MODE;\n        this.strictValues = !!options.strictValues;\n        this.validateValueIndexes = !!options.validateValueIndexes;\n        this.defaultGraph = options.defaultGraph;\n        this.rdfDirection = options.rdfDirection;\n        this.normalizeLanguageTags = options.normalizeLanguageTags;\n        this.streamingProfileAllowOutOfOrderPlainType = options.streamingProfileAllowOutOfOrderPlainType;\n        this.rdfstar = options.rdfstar !== false;\n        this.rdfstarReverseInEmbedded = options.rdfstarReverseInEmbedded;\n        this.topLevelProperties = false;\n        this.activeProcessingMode = parseFloat(this.processingMode);\n        // Initialize stacks\n        this.processingStack = [];\n        this.processingType = [];\n        this.emittedStack = [];\n        this.idStack = [];\n        this.graphStack = [];\n        this.graphContainerTermStack = [];\n        this.listPointerStack = [];\n        this.contextTree = new ContextTree_1.ContextTree();\n        this.literalStack = [];\n        this.validationStack = [];\n        this.unaliasedKeywordCacheStack = [];\n        this.jsonLiteralStack = [];\n        this.unidentifiedValuesBuffer = [];\n        this.unidentifiedGraphsBuffer = [];\n        this.annotationsBuffer = [];\n        this.pendingContainerFlushBuffers = [];\n        this.parser = options.parser;\n        if (options.context) {\n            this.rootContext = this.parseContext(options.context);\n            this.rootContext.then((context) => this.validateContext(context));\n        }\n        else {\n            this.rootContext = Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(this.baseIRI ? { '@base': this.baseIRI, '@__baseDocument': true } : {}));\n        }\n    }\n    /**\n     * Parse the given context with the configured options.\n     * @param {JsonLdContext} context A context to parse.\n     * @param {JsonLdContextNormalized} parentContext An optional parent context.\n     * @param {boolean} ignoreProtection If @protected term checks should be ignored.\n     * @return {Promise<JsonLdContextNormalized>} A promise resolving to the parsed context.\n     */\n    async parseContext(context, parentContext, ignoreProtection) {\n        return this.contextParser.parse(context, {\n            baseIRI: this.baseIRI,\n            ignoreProtection,\n            normalizeLanguageTags: this.normalizeLanguageTags,\n            parentContext,\n            processingMode: this.activeProcessingMode,\n        });\n    }\n    /**\n     * Check if the given context is valid.\n     * If not, an error will be thrown.\n     * @param {JsonLdContextNormalized} context A context.\n     */\n    validateContext(context) {\n        const activeVersion = context.getContextRaw()['@version'];\n        if (activeVersion) {\n            if (this.activeProcessingMode && activeVersion > this.activeProcessingMode) {\n                throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD version '${activeVersion}' under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.PROCESSING_MODE_CONFLICT);\n            }\n            else {\n                if (this.activeProcessingMode && activeVersion < this.activeProcessingMode) {\n                    throw new ErrorCoded_1.ErrorCoded(`Invalid JSON-LD version ${activeVersion} under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n                }\n                this.activeProcessingMode = activeVersion;\n            }\n        }\n    }\n    /**\n     * Get the context at the given path.\n     * @param {keys} keys The path of keys to get the context at.\n     * @param {number} offset The path offset, defaults to 1.\n     * @return {Promise<JsonLdContextNormalized>} A promise resolving to a context.\n     */\n    async getContext(keys, offset = 1) {\n        const keysOriginal = keys;\n        // Ignore array keys at the end\n        while (typeof keys[keys.length - 1] === 'number') {\n            keys = keys.slice(0, keys.length - 1);\n        }\n        // Handle offset on keys\n        if (offset) {\n            keys = keys.slice(0, -offset);\n        }\n        // Determine the closest context\n        const contextData = await this.getContextPropagationAware(keys);\n        const context = contextData.context;\n        // Process property-scoped contexts (high-to-low)\n        let contextRaw = context.getContextRaw();\n        for (let i = contextData.depth; i < keysOriginal.length - offset; i++) {\n            const key = keysOriginal[i];\n            const contextKeyEntry = contextRaw[key];\n            if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n                const scopedContext = (await this.parseContext(contextKeyEntry, contextRaw, true)).getContextRaw();\n                const propagate = !(key in scopedContext)\n                    || scopedContext[key]['@context']['@propagate']; // Propagation is true by default\n                if (propagate !== false || i === keysOriginal.length - 1 - offset) {\n                    contextRaw = Object.assign({}, scopedContext);\n                    // Clean up final context\n                    delete contextRaw['@propagate'];\n                    contextRaw[key] = Object.assign({}, contextRaw[key]);\n                    if ('@id' in contextKeyEntry) {\n                        contextRaw[key]['@id'] = contextKeyEntry['@id'];\n                    }\n                    delete contextRaw[key]['@context'];\n                    if (propagate !== false) {\n                        this.contextTree.setContext(keysOriginal.slice(0, i + offset), Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw)));\n                    }\n                }\n            }\n        }\n        return new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw);\n    }\n    /**\n     * Get the context at the given path.\n     * Non-propagating contexts will be skipped,\n     * unless the context at that exact depth is retrieved.\n     *\n     * This ONLY takes into account context propagation logic,\n     * so this should usually not be called directly,\n     * call {@link #getContext} instead.\n     *\n     * @param keys The path of keys to get the context at.\n     * @return {Promise<{ context: JsonLdContextNormalized, depth: number }>} A context and its depth.\n     */\n    async getContextPropagationAware(keys) {\n        const originalDepth = keys.length;\n        let contextData = null;\n        let hasApplicablePropertyScopedContext;\n        do {\n            hasApplicablePropertyScopedContext = false;\n            if (contextData && '@__propagateFallback' in contextData.context.getContextRaw()) {\n                // If a propagation fallback context has been set,\n                // fallback to that context and retry for the same depth.\n                contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized(contextData.context.getContextRaw()['@__propagateFallback']);\n            }\n            else {\n                if (contextData) {\n                    // If we had a previous iteration, jump to the parent of context depth.\n                    // We must do this because once we get here, last context had propagation disabled,\n                    // so we check its first parent instead.\n                    keys = keys.slice(0, contextData.depth - 1);\n                }\n                contextData = await this.contextTree.getContext(keys) || { context: await this.rootContext, depth: 0 };\n            }\n            // Allow non-propagating contexts to propagate one level deeper\n            // if it defines a property-scoped context that is applicable for the current key.\n            // @see https://w3c.github.io/json-ld-api/tests/toRdf-manifest#tc012\n            const lastKey = keys[keys.length - 1];\n            if (lastKey in contextData.context.getContextRaw()) {\n                const lastKeyValue = contextData.context.getContextRaw()[lastKey];\n                if (lastKeyValue && typeof lastKeyValue === 'object' && '@context' in lastKeyValue) {\n                    hasApplicablePropertyScopedContext = true;\n                }\n            }\n        } while (contextData.depth > 0 // Root context has a special case\n            && contextData.context.getContextRaw()['@propagate'] === false // Stop loop if propagation is true\n            && contextData.depth !== originalDepth // Stop loop if requesting exact depth of non-propagating\n            && !hasApplicablePropertyScopedContext);\n        // Special case for root context that does not allow propagation.\n        // Fallback to empty context in that case.\n        if (contextData.depth === 0\n            && contextData.context.getContextRaw()['@propagate'] === false\n            && contextData.depth !== originalDepth) {\n            contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized({});\n        }\n        return contextData;\n    }\n    /**\n     * Start a new job for parsing the given value.\n     * @param {any[]} keys The stack of keys.\n     * @param value The value to parse.\n     * @param {number} depth The depth to parse at.\n     * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n     * @return {Promise<void>} A promise resolving when the job is done.\n     */\n    async newOnValueJob(keys, value, depth, lastDepthCheck) {\n        await this.parser.newOnValueJob(keys, value, depth, lastDepthCheck);\n    }\n    /**\n     * Flush the pending container flush buffers\n     * @return {boolean} If any pending buffers were flushed.\n     */\n    async handlePendingContainerFlushBuffers() {\n        if (this.pendingContainerFlushBuffers.length > 0) {\n            for (const pendingFlushBuffer of this.pendingContainerFlushBuffers) {\n                await this.parser.flushBuffer(pendingFlushBuffer.depth, pendingFlushBuffer.keys);\n                this.parser.flushStacks(pendingFlushBuffer.depth);\n            }\n            this.pendingContainerFlushBuffers.splice(0, this.pendingContainerFlushBuffers.length);\n            return true;\n        }\n        else {\n            return false;\n        }\n    }\n    /**\n     * Emit the given quad into the output stream.\n     * @param {number} depth The depth the quad was generated at.\n     * @param {Quad} quad A quad to emit.\n     */\n    emitQuad(depth, quad) {\n        if (depth === 1) {\n            this.topLevelProperties = true;\n        }\n        this.parser.push(quad);\n    }\n    /**\n     * Emit the given error into the output stream.\n     * @param {Error} error An error to emit.\n     */\n    emitError(error) {\n        this.parser.emit('error', error);\n    }\n    /**\n     * Emit the given context into the output stream under the 'context' event.\n     * @param {JsonLdContext} context A context to emit.\n     */\n    emitContext(context) {\n        this.parser.emit('context', context);\n    }\n    /**\n     * Safely get or create the depth value of {@link ParsingContext.unidentifiedValuesBuffer}.\n     * @param {number} depth A depth.\n     * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n     *                                                               {@link ParsingContext.unidentifiedValuesBuffer}.\n     */\n    getUnidentifiedValueBufferSafe(depth) {\n        let buffer = this.unidentifiedValuesBuffer[depth];\n        if (!buffer) {\n            buffer = [];\n            this.unidentifiedValuesBuffer[depth] = buffer;\n        }\n        return buffer;\n    }\n    /**\n     * Safely get or create the depth value of {@link ParsingContext.unidentifiedGraphsBuffer}.\n     * @param {number} depth A depth.\n     * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n     *                                                               {@link ParsingContext.unidentifiedGraphsBuffer}.\n     */\n    getUnidentifiedGraphBufferSafe(depth) {\n        let buffer = this.unidentifiedGraphsBuffer[depth];\n        if (!buffer) {\n            buffer = [];\n            this.unidentifiedGraphsBuffer[depth] = buffer;\n        }\n        return buffer;\n    }\n    /**\n     * Safely get or create the depth value of {@link ParsingContext.annotationsBuffer}.\n     * @param {number} depth A depth.\n     * @return {} An element of {@link ParsingContext.annotationsBuffer}.\n     */\n    getAnnotationsBufferSafe(depth) {\n        let buffer = this.annotationsBuffer[depth];\n        if (!buffer) {\n            buffer = [];\n            this.annotationsBuffer[depth] = buffer;\n        }\n        return buffer;\n    }\n    /**\n     * @return IExpandOptions The expand options for the active processing mode.\n     */\n    getExpandOptions() {\n        return ParsingContext.EXPAND_OPTIONS[this.activeProcessingMode];\n    }\n    /**\n     * Shift the stack at the given offset to the given depth.\n     *\n     * This will override anything in the stack at `depth`,\n     * and this will remove anything at `depth + depthOffset`\n     *\n     * @param depth The target depth.\n     * @param depthOffset The origin depth, relative to `depth`.\n     */\n    shiftStack(depth, depthOffset) {\n        // Copy the id stack value up one level so that the next job can access the id.\n        const deeperIdStack = this.idStack[depth + depthOffset];\n        if (deeperIdStack) {\n            this.idStack[depth] = deeperIdStack;\n            this.emittedStack[depth] = true;\n            delete this.idStack[depth + depthOffset];\n        }\n        // Shorten key stack\n        if (this.pendingContainerFlushBuffers.length) {\n            for (const buffer of this.pendingContainerFlushBuffers) {\n                if (buffer.depth >= depth + depthOffset) {\n                    buffer.depth -= depthOffset;\n                    buffer.keys.splice(depth, depthOffset);\n                }\n            }\n        }\n        // Splice stacks\n        if (this.unidentifiedValuesBuffer[depth + depthOffset]) {\n            this.unidentifiedValuesBuffer[depth] = this.unidentifiedValuesBuffer[depth + depthOffset];\n            delete this.unidentifiedValuesBuffer[depth + depthOffset];\n        }\n        if (this.annotationsBuffer[depth + depthOffset - 1]) {\n            if (!this.annotationsBuffer[depth - 1]) {\n                this.annotationsBuffer[depth - 1] = [];\n            }\n            this.annotationsBuffer[depth - 1] = [\n                ...this.annotationsBuffer[depth - 1],\n                ...this.annotationsBuffer[depth + depthOffset - 1],\n            ];\n            delete this.annotationsBuffer[depth + depthOffset - 1];\n        }\n        // TODO: also do the same for other stacks\n    }\n}\nParsingContext.EXPAND_OPTIONS = {\n    1.0: {\n        allowPrefixForcing: false,\n        allowPrefixNonGenDelims: false,\n        allowVocabRelativeToBase: false,\n    },\n    1.1: {\n        allowPrefixForcing: true,\n        allowPrefixNonGenDelims: false,\n        allowVocabRelativeToBase: true,\n    },\n};\nexports.ParsingContext = ParsingContext;\n//# sourceMappingURL=ParsingContext.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EntryHandlerKeywordAnnotation = void 0;\nconst EntryHandlerKeyword_1 = require(\"./EntryHandlerKeyword\");\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * Handles @annotation entries.\n */\nclass EntryHandlerKeywordAnnotation extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n    constructor() {\n        super('@annotation');\n    }\n    async handle(parsingContext, util, key, keys, value, depth) {\n        // Validate value\n        if (typeof value === 'string' || (typeof value === 'object' && value['@value'])) {\n            parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal annotation value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n        }\n        // Rest of the processing is done as regular nodes\n    }\n}\nexports.EntryHandlerKeywordAnnotation = EntryHandlerKeywordAnnotation;\n//# sourceMappingURL=EntryHandlerKeywordAnnotation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonLdParser = void 0;\n// tslint:disable-next-line:no-var-requires\nconst Parser = require('@bergos/jsonparse');\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst EntryHandlerArrayValue_1 = require(\"./entryhandler/EntryHandlerArrayValue\");\nconst EntryHandlerContainer_1 = require(\"./entryhandler/EntryHandlerContainer\");\nconst EntryHandlerInvalidFallback_1 = require(\"./entryhandler/EntryHandlerInvalidFallback\");\nconst EntryHandlerPredicate_1 = require(\"./entryhandler/EntryHandlerPredicate\");\nconst EntryHandlerKeywordContext_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordContext\");\nconst EntryHandlerKeywordGraph_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordGraph\");\nconst EntryHandlerKeywordId_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordId\");\nconst EntryHandlerKeywordIncluded_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordIncluded\");\nconst EntryHandlerKeywordNest_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordNest\");\nconst EntryHandlerKeywordType_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordType\");\nconst EntryHandlerKeywordUnknownFallback_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordUnknownFallback\");\nconst EntryHandlerKeywordValue_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordValue\");\nconst ParsingContext_1 = require(\"./ParsingContext\");\nconst Util_1 = require(\"./Util\");\nconst http_link_header_1 = require(\"http-link-header\");\nconst EntryHandlerKeywordAnnotation_1 = require(\"./entryhandler/keyword/EntryHandlerKeywordAnnotation\");\n/**\n * A stream transformer that parses JSON-LD (text) streams to an {@link RDF.Stream}.\n */\nclass JsonLdParser extends readable_stream_1.Transform {\n    constructor(options) {\n        super({ readableObjectMode: true });\n        options = options || {};\n        this.options = options;\n        this.parsingContext = new ParsingContext_1.ParsingContext(Object.assign({ parser: this }, options));\n        this.util = new Util_1.Util({ dataFactory: options.dataFactory, parsingContext: this.parsingContext });\n        this.jsonParser = new Parser();\n        this.contextJobs = [];\n        this.typeJobs = [];\n        this.contextAwaitingJobs = [];\n        this.lastDepth = 0;\n        this.lastKeys = [];\n        this.lastOnValueJob = Promise.resolve();\n        this.attachJsonParserListeners();\n        this.on('end', () => {\n            if (typeof this.jsonParser.mode !== 'undefined') {\n                this.emit('error', new Error('Unclosed document'));\n            }\n        });\n    }\n    /**\n     * Construct a JsonLdParser from the given HTTP response.\n     *\n     * This will throw an error if no valid JSON response is received\n     * (application/ld+json, application/json, or something+json).\n     *\n     * For raw JSON responses, exactly one link header pointing to a JSON-LD context is required.\n     *\n     * This method is not responsible for handling redirects.\n     *\n     * @param baseIRI The URI of the received response.\n     * @param mediaType The received content type.\n     * @param headers Optional HTTP headers.\n     * @param options Optional parser options.\n     */\n    static fromHttpResponse(baseIRI, mediaType, headers, options) {\n        let context;\n        let wellKnownMediaTypes = ['application/activity+json'];\n        if (options && options.wellKnownMediaTypes) {\n            wellKnownMediaTypes = options.wellKnownMediaTypes;\n        }\n        // Special cases when receiving something else than the JSON-LD media type or the wellKnownMediaTypes\n        if (mediaType !== 'application/ld+json' && !wellKnownMediaTypes.includes(mediaType)) {\n            // Only accept JSON or JSON extension types\n            if (mediaType !== 'application/json' && !mediaType.endsWith('+json')) {\n                throw new jsonld_context_parser_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n            }\n            // We need exactly one JSON-LD context in the link header\n            if (headers && headers.has('Link')) {\n                headers.forEach((value, key) => {\n                    if (key === 'link') {\n                        const linkHeader = (0, http_link_header_1.parse)(value);\n                        for (const link of linkHeader.get('rel', 'http://www.w3.org/ns/json-ld#context')) {\n                            if (context) {\n                                throw new jsonld_context_parser_1.ErrorCoded('Multiple JSON-LD context link headers were found on ' + baseIRI, jsonld_context_parser_1.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);\n                            }\n                            context = link.uri;\n                        }\n                    }\n                });\n            }\n            if (!context && !(options === null || options === void 0 ? void 0 : options.ignoreMissingContextLinkHeader)) {\n                throw new jsonld_context_parser_1.ErrorCoded(`Missing context link header for media type ${mediaType} on ${baseIRI}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n            }\n        }\n        // Check if the streaming profile is present\n        let streamingProfile;\n        if (headers && headers.has('Content-Type')) {\n            const contentType = headers.get('Content-Type');\n            const match = /; *profile=([^\"]*)/.exec(contentType);\n            if (match && match[1] === 'http://www.w3.org/ns/json-ld#streaming') {\n                streamingProfile = true;\n            }\n        }\n        return new JsonLdParser(Object.assign({ baseIRI,\n            context,\n            streamingProfile }, options ? options : {}));\n    }\n    /**\n     * Parses the given text stream into a quad stream.\n     * @param {NodeJS.EventEmitter} stream A text stream.\n     * @return {RDF.Stream} A quad stream.\n     */\n    import(stream) {\n        if ('pipe' in stream) {\n            stream.on('error', (error) => parsed.emit('error', error));\n            const parsed = stream.pipe(new JsonLdParser(this.options));\n            return parsed;\n        }\n        else {\n            const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n            stream.on('error', (error) => parsed.emit('error', error));\n            stream.on('data', (data) => output.push(data));\n            stream.on('end', () => output.push(null));\n            const parsed = output.pipe(new JsonLdParser(this.options));\n            return parsed;\n        }\n    }\n    _transform(chunk, encoding, callback) {\n        this.jsonParser.write(chunk);\n        this.lastOnValueJob\n            .then(() => callback(), (error) => callback(error));\n    }\n    /**\n     * Start a new job for parsing the given value.\n     *\n     * This will let the first valid {@link IEntryHandler} handle the entry.\n     *\n     * @param {any[]} keys The stack of keys.\n     * @param value The value to parse.\n     * @param {number} depth The depth to parse at.\n     * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n     * @return {Promise<void>} A promise resolving when the job is done.\n     */\n    async newOnValueJob(keys, value, depth, lastDepthCheck) {\n        let flushStacks = true;\n        // When we go up the stack, emit all unidentified values\n        // We need to do this before the new job, because the new job may require determined values from the flushed jobs.\n        if (lastDepthCheck && depth < this.lastDepth) {\n            // Check if we had any RDF lists that need to be terminated with an rdf:nil\n            const listPointer = this.parsingContext.listPointerStack[this.lastDepth];\n            if (listPointer) {\n                // Terminate the list if the had at least one value\n                if (listPointer.value) {\n                    this.push(this.util.dataFactory.quad(listPointer.value, this.util.rdfRest, this.util.rdfNil, this.util.getDefaultGraph()));\n                }\n                // Add the list id to the id stack, so it can be used higher up in the stack\n                listPointer.listId.listHead = true;\n                this.parsingContext.idStack[listPointer.listRootDepth + 1] = [listPointer.listId];\n                this.parsingContext.listPointerStack.splice(this.lastDepth, 1);\n            }\n            // Flush the buffer for lastDepth\n            // If the parent key is a special type of container, postpone flushing until that parent is handled.\n            if (await EntryHandlerContainer_1.EntryHandlerContainer.isBufferableContainerHandler(this.parsingContext, this.lastKeys, this.lastDepth)) {\n                this.parsingContext.pendingContainerFlushBuffers\n                    .push({ depth: this.lastDepth, keys: this.lastKeys.slice(0, this.lastKeys.length) });\n                flushStacks = false;\n            }\n            else {\n                await this.flushBuffer(this.lastDepth, this.lastKeys);\n            }\n        }\n        const key = await this.util.unaliasKeyword(keys[depth], keys, depth);\n        const parentKey = await this.util.unaliasKeywordParent(keys, depth);\n        this.parsingContext.emittedStack[depth] = true;\n        let handleKey = true;\n        // Keywords inside @reverse is not allowed apart from @context\n        if (jsonld_context_parser_1.Util.isValidKeyword(key) && parentKey === '@reverse' && key !== '@context') {\n            this.emit('error', new jsonld_context_parser_1.ErrorCoded(`Found the @id '${value}' inside an @reverse property`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_MAP));\n        }\n        // Skip further processing if one of the parent nodes are invalid.\n        // We use the validationStack to reuse validation results that were produced before with common key stacks.\n        let inProperty = false;\n        if (this.parsingContext.validationStack.length > 1) {\n            inProperty = this.parsingContext.validationStack[this.parsingContext.validationStack.length - 1].property;\n        }\n        for (let i = Math.max(1, this.parsingContext.validationStack.length - 1); i < keys.length - 1; i++) {\n            const validationResult = this.parsingContext.validationStack[i]\n                || (this.parsingContext.validationStack[i] = await this.validateKey(keys.slice(0, i + 1), i, inProperty));\n            if (!validationResult.valid) {\n                this.parsingContext.emittedStack[depth] = false;\n                handleKey = false;\n                break;\n            }\n            else if (!inProperty && validationResult.property) {\n                inProperty = true;\n            }\n        }\n        // Skip further processing if this node is part of a literal\n        if (await this.util.isLiteral(keys, depth)) {\n            handleKey = false;\n        }\n        // Get handler\n        if (handleKey) {\n            for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n                const testResult = await entryHandler.test(this.parsingContext, this.util, key, keys, depth);\n                if (testResult) {\n                    // Pass processing over to the handler\n                    await entryHandler.handle(this.parsingContext, this.util, key, keys, value, depth, testResult);\n                    // Flag that this depth is processed\n                    if (entryHandler.isStackProcessor()) {\n                        this.parsingContext.processingStack[depth] = true;\n                    }\n                    break;\n                }\n            }\n        }\n        // Validate value indexes on the root.\n        if (depth === 0 && Array.isArray(value)) {\n            await this.util.validateValueIndexes(value);\n        }\n        // When we go up the stack, flush the old stack\n        if (flushStacks && depth < this.lastDepth) {\n            // Reset our stacks\n            this.flushStacks(this.lastDepth);\n        }\n        this.lastDepth = depth;\n        this.lastKeys = keys;\n        // Clear the keyword cache at this depth, and everything underneath.\n        this.parsingContext.unaliasedKeywordCacheStack.splice(depth - 1);\n    }\n    /**\n     * Flush the processing stacks at the given depth.\n     * @param {number} depth A depth.\n     */\n    flushStacks(depth) {\n        this.parsingContext.processingStack.splice(depth, 1);\n        this.parsingContext.processingType.splice(depth, 1);\n        this.parsingContext.emittedStack.splice(depth, 1);\n        this.parsingContext.idStack.splice(depth, 1);\n        this.parsingContext.graphStack.splice(depth + 1, 1);\n        this.parsingContext.graphContainerTermStack.splice(depth, 1);\n        this.parsingContext.jsonLiteralStack.splice(depth, 1);\n        this.parsingContext.validationStack.splice(depth - 1, 2);\n        this.parsingContext.literalStack.splice(depth, this.parsingContext.literalStack.length - depth);\n        this.parsingContext.annotationsBuffer.splice(depth, 1);\n        // TODO: just like the literal stack, splice all other stack until the end as well?\n    }\n    /**\n     * Flush buffers for the given depth.\n     *\n     * This should be called after the last entry at a given depth was processed.\n     *\n     * @param {number} depth A depth.\n     * @param {any[]} keys A stack of keys.\n     * @return {Promise<void>} A promise resolving if flushing is done.\n     */\n    async flushBuffer(depth, keys) {\n        let subjects = this.parsingContext.idStack[depth];\n        const subjectsWasDefined = !!subjects;\n        if (!subjectsWasDefined) {\n            subjects = this.parsingContext.idStack[depth] = [this.util.dataFactory.blankNode()];\n        }\n        // Flush values at this level\n        const valueBuffer = this.parsingContext.unidentifiedValuesBuffer[depth];\n        if (valueBuffer) {\n            for (const subject of subjects) {\n                const depthOffsetGraph = await this.util.getDepthOffsetGraph(depth, keys);\n                const graphs = (this.parsingContext.graphStack[depth] || depthOffsetGraph >= 0)\n                    ? this.parsingContext.idStack[depth - depthOffsetGraph - 1]\n                    : [await this.util.getGraphContainerValue(keys, depth)];\n                if (graphs) {\n                    for (const graph of graphs) {\n                        // Flush values to stream if the graph @id is known\n                        this.parsingContext.emittedStack[depth] = true;\n                        for (const bufferedValue of valueBuffer) {\n                            this.util.emitQuadChecked(depth, subject, bufferedValue.predicate, bufferedValue.object, graph, bufferedValue.reverse, bufferedValue.isEmbedded);\n                        }\n                    }\n                }\n                else {\n                    // Place the values in the graphs buffer if the graph @id is not yet known\n                    const subGraphBuffer = this.parsingContext.getUnidentifiedGraphBufferSafe(depth - await this.util.getDepthOffsetGraph(depth, keys) - 1);\n                    for (const bufferedValue of valueBuffer) {\n                        if (bufferedValue.reverse) {\n                            subGraphBuffer.push({\n                                object: subject,\n                                predicate: bufferedValue.predicate,\n                                subject: bufferedValue.object,\n                                isEmbedded: bufferedValue.isEmbedded,\n                            });\n                        }\n                        else {\n                            subGraphBuffer.push({\n                                object: bufferedValue.object,\n                                predicate: bufferedValue.predicate,\n                                subject,\n                                isEmbedded: bufferedValue.isEmbedded,\n                            });\n                        }\n                    }\n                }\n            }\n            this.parsingContext.unidentifiedValuesBuffer.splice(depth, 1);\n            this.parsingContext.literalStack.splice(depth, 1);\n            this.parsingContext.jsonLiteralStack.splice(depth, 1);\n        }\n        // Flush graphs at this level\n        const graphBuffer = this.parsingContext.unidentifiedGraphsBuffer[depth];\n        if (graphBuffer) {\n            for (const subject of subjects) {\n                // A @graph statement at the root without @id relates to the default graph,\n                // unless there are top-level properties,\n                // others relate to blank nodes.\n                const graph = depth === 1 && subject.termType === 'BlankNode'\n                    && !this.parsingContext.topLevelProperties ? this.util.getDefaultGraph() : subject;\n                this.parsingContext.emittedStack[depth] = true;\n                for (const bufferedValue of graphBuffer) {\n                    this.parsingContext.emitQuad(depth, this.util.dataFactory.quad(bufferedValue.subject, bufferedValue.predicate, bufferedValue.object, graph));\n                }\n            }\n            this.parsingContext.unidentifiedGraphsBuffer.splice(depth, 1);\n        }\n        // Push unhandled annotations up the stack as nested annotations\n        const annotationsBuffer = this.parsingContext.annotationsBuffer[depth];\n        if (annotationsBuffer) {\n            // Throw an error if we reach the top, and still have annotations\n            if (annotationsBuffer.length > 0 && depth === 1) {\n                this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Annotations can not be made on top-level nodes`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n            }\n            // Pass the annotations buffer up one level in the stack\n            const annotationsBufferParent = this.parsingContext.getAnnotationsBufferSafe(depth - 1);\n            for (const annotation of annotationsBuffer) {\n                annotationsBufferParent.push(annotation);\n            }\n            delete this.parsingContext.annotationsBuffer[depth];\n        }\n    }\n    /**\n     * Check if at least one {@link IEntryHandler} validates the entry to true.\n     * @param {any[]} keys A stack of keys.\n     * @param {number} depth A depth.\n     * @param {boolean} inProperty If the current depth is part of a valid property node.\n     * @return {Promise<{ valid: boolean, property: boolean }>} A promise resolving to true or false.\n     */\n    async validateKey(keys, depth, inProperty) {\n        for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n            if (await entryHandler.validate(this.parsingContext, this.util, keys, depth, inProperty)) {\n                return { valid: true, property: inProperty || entryHandler.isPropertyHandler() };\n            }\n        }\n        return { valid: false, property: false };\n    }\n    /**\n     * Attach all required listeners to the JSON parser.\n     *\n     * This should only be called once.\n     */\n    attachJsonParserListeners() {\n        // Listen to json parser events\n        this.jsonParser.onValue = (value) => {\n            const depth = this.jsonParser.stack.length;\n            const keys = (new Array(depth + 1).fill(0)).map((v, i) => {\n                return i === depth ? this.jsonParser.key : this.jsonParser.stack[i].key;\n            });\n            if (!this.isParsingContextInner(depth)) { // Don't parse inner nodes inside @context\n                const valueJobCb = () => this.newOnValueJob(keys, value, depth, true);\n                if (!this.parsingContext.streamingProfile\n                    && !this.parsingContext.contextTree.getContext(keys.slice(0, -1))) {\n                    // If an out-of-order context is allowed,\n                    // we have to buffer everything.\n                    // We store jobs for @context's and @type's separately,\n                    // because at the end, we have to process them first.\n                    // We also handle @type because these *could* introduce a type-scoped context.\n                    if (keys[depth] === '@context') {\n                        let jobs = this.contextJobs[depth];\n                        if (!jobs) {\n                            jobs = this.contextJobs[depth] = [];\n                        }\n                        jobs.push(valueJobCb);\n                    }\n                    else {\n                        this.contextAwaitingJobs.push({ job: valueJobCb, keys, depth });\n                    }\n                }\n                else {\n                    // Make sure that our value jobs are chained synchronously\n                    this.lastOnValueJob = this.lastOnValueJob.then(valueJobCb);\n                }\n                // Execute all buffered jobs on deeper levels\n                if (!this.parsingContext.streamingProfile && depth === 0) {\n                    this.lastOnValueJob = this.lastOnValueJob\n                        .then(() => this.executeBufferedJobs());\n                }\n            }\n        };\n        this.jsonParser.onError = (error) => {\n            this.emit('error', error);\n        };\n    }\n    /**\n     * Check if the parser is currently parsing an element that is part of an @context entry.\n     * @param {number} depth A depth.\n     * @return {boolean} A boolean.\n     */\n    isParsingContextInner(depth) {\n        for (let i = depth; i > 0; i--) {\n            if (this.jsonParser.stack[i - 1].key === '@context') {\n                return true;\n            }\n        }\n        return false;\n    }\n    /**\n     * Execute all buffered jobs.\n     * @return {Promise<void>} A promise resolving if all jobs are finished.\n     */\n    async executeBufferedJobs() {\n        // Handle context jobs\n        for (const jobs of this.contextJobs) {\n            if (jobs) {\n                for (const job of jobs) {\n                    await job();\n                }\n            }\n        }\n        // Clear the keyword cache.\n        this.parsingContext.unaliasedKeywordCacheStack.splice(0);\n        const contextAwaitingJobs = [];\n        for (const job of this.contextAwaitingJobs) {\n            if ((await this.util.unaliasKeyword(job.keys[job.depth], job.keys, job.depth, true)) === '@type'\n                || typeof job.keys[job.depth] === 'number' && (await this.util.unaliasKeyword(job.keys[job.depth - 1], job.keys, job.depth - 1, true)) === '@type') { // Also capture @type with array values\n                // Remove @type from keys, because we want it to apply to parent later on\n                this.typeJobs.push({ job: job.job, keys: job.keys.slice(0, job.keys.length - 1) });\n            }\n            else {\n                contextAwaitingJobs.push(job);\n            }\n        }\n        // Handle non-context jobs\n        for (const job of contextAwaitingJobs) {\n            // Check if we have a type (with possible type-scoped context) that should be handled before.\n            // We check all possible parent nodes for the current job, from root to leaves.\n            if (this.typeJobs.length > 0) {\n                // First collect all applicable type jobs\n                const applicableTypeJobs = [];\n                const applicableTypeJobIds = [];\n                for (let i = 0; i < this.typeJobs.length; i++) {\n                    const typeJob = this.typeJobs[i];\n                    if (Util_1.Util.isPrefixArray(typeJob.keys, job.keys)) {\n                        applicableTypeJobs.push(typeJob);\n                        applicableTypeJobIds.push(i);\n                    }\n                }\n                // Next, sort the jobs from short to long key length (to ensure types higher up in the tree to be handled first)\n                const sortedTypeJobs = applicableTypeJobs.sort((job1, job2) => job1.keys.length - job2.keys.length);\n                // Finally, execute the jobs in order\n                for (const typeJob of sortedTypeJobs) {\n                    await typeJob.job();\n                }\n                // Remove the executed type jobs\n                // Sort first, so we can efficiently splice\n                const sortedApplicableTypeJobIds = applicableTypeJobIds.sort().reverse();\n                for (const jobId of sortedApplicableTypeJobIds) {\n                    this.typeJobs.splice(jobId, 1);\n                }\n            }\n            await job.job();\n        }\n    }\n}\nJsonLdParser.DEFAULT_PROCESSING_MODE = '1.1';\nJsonLdParser.ENTRY_HANDLERS = [\n    new EntryHandlerArrayValue_1.EntryHandlerArrayValue(),\n    new EntryHandlerKeywordContext_1.EntryHandlerKeywordContext(),\n    new EntryHandlerKeywordId_1.EntryHandlerKeywordId(),\n    new EntryHandlerKeywordIncluded_1.EntryHandlerKeywordIncluded(),\n    new EntryHandlerKeywordGraph_1.EntryHandlerKeywordGraph(),\n    new EntryHandlerKeywordNest_1.EntryHandlerKeywordNest(),\n    new EntryHandlerKeywordType_1.EntryHandlerKeywordType(),\n    new EntryHandlerKeywordValue_1.EntryHandlerKeywordValue(),\n    new EntryHandlerKeywordAnnotation_1.EntryHandlerKeywordAnnotation(),\n    new EntryHandlerContainer_1.EntryHandlerContainer(),\n    new EntryHandlerKeywordUnknownFallback_1.EntryHandlerKeywordUnknownFallback(),\n    new EntryHandlerPredicate_1.EntryHandlerPredicate(),\n    new EntryHandlerInvalidFallback_1.EntryHandlerInvalidFallback(),\n];\nexports.JsonLdParser = JsonLdParser;\n//# sourceMappingURL=JsonLdParser.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/JsonLdParser\"), exports);\n//# sourceMappingURL=index.js.map","(function(self) {\n\nvar irrelevant = (function (exports) {\n\n  /* eslint-disable no-prototype-builtins */\n  var g =\n    (typeof globalThis !== 'undefined' && globalThis) ||\n    (typeof self !== 'undefined' && self) ||\n    // eslint-disable-next-line no-undef\n    (typeof global !== 'undefined' && global) ||\n    {};\n\n  var support = {\n    searchParams: 'URLSearchParams' in g,\n    iterable: 'Symbol' in g && 'iterator' in Symbol,\n    blob:\n      'FileReader' in g &&\n      'Blob' in g &&\n      (function() {\n        try {\n          new Blob();\n          return true\n        } catch (e) {\n          return false\n        }\n      })(),\n    formData: 'FormData' in g,\n    arrayBuffer: 'ArrayBuffer' in g\n  };\n\n  function isDataView(obj) {\n    return obj && DataView.prototype.isPrototypeOf(obj)\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ];\n\n    var isArrayBufferView =\n      ArrayBuffer.isView ||\n      function(obj) {\n        return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n      };\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name);\n    }\n    if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n      throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value);\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift();\n        return {done: value === undefined, value: value}\n      }\n    };\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      };\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {};\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value);\n      }, this);\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        if (header.length != 2) {\n          throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n        }\n        this.append(header[0], header[1]);\n      }, this);\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name]);\n      }, this);\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name);\n    value = normalizeValue(value);\n    var oldValue = this.map[name];\n    this.map[name] = oldValue ? oldValue + ', ' + value : value;\n  };\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)];\n  };\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name);\n    return this.has(name) ? this.map[name] : null\n  };\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  };\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value);\n  };\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this);\n      }\n    }\n  };\n\n  Headers.prototype.keys = function() {\n    var items = [];\n    this.forEach(function(value, name) {\n      items.push(name);\n    });\n    return iteratorFor(items)\n  };\n\n  Headers.prototype.values = function() {\n    var items = [];\n    this.forEach(function(value) {\n      items.push(value);\n    });\n    return iteratorFor(items)\n  };\n\n  Headers.prototype.entries = function() {\n    var items = [];\n    this.forEach(function(value, name) {\n      items.push([name, value]);\n    });\n    return iteratorFor(items)\n  };\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n  }\n\n  function consumed(body) {\n    if (body._noBody) return\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true;\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result);\n      };\n      reader.onerror = function() {\n        reject(reader.error);\n      };\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader();\n    var promise = fileReaderReady(reader);\n    reader.readAsArrayBuffer(blob);\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader();\n    var promise = fileReaderReady(reader);\n    var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type);\n    var encoding = match ? match[1] : 'utf-8';\n    reader.readAsText(blob, encoding);\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf);\n    var chars = new Array(view.length);\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i]);\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength);\n      view.set(new Uint8Array(buf));\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false;\n\n    this._initBody = function(body) {\n      /*\n        fetch-mock wraps the Response object in an ES6 Proxy to\n        provide useful test harness features such as flush. However, on\n        ES5 browsers without fetch or Proxy support pollyfills must be used;\n        the proxy-pollyfill is unable to proxy an attribute unless it exists\n        on the object before the Proxy is created. This change ensures\n        Response.bodyUsed exists on the instance, while maintaining the\n        semantic of setting Request.bodyUsed in the constructor before\n        _initBody is called.\n      */\n      // eslint-disable-next-line no-self-assign\n      this.bodyUsed = this.bodyUsed;\n      this._bodyInit = body;\n      if (!body) {\n        this._noBody = true;\n        this._bodyText = '';\n      } else if (typeof body === 'string') {\n        this._bodyText = body;\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body;\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body;\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString();\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer);\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer]);\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body);\n      } else {\n        this._bodyText = body = Object.prototype.toString.call(body);\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8');\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type);\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n        }\n      }\n    };\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this);\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      };\n    }\n\n    this.arrayBuffer = function() {\n      if (this._bodyArrayBuffer) {\n        var isConsumed = consumed(this);\n        if (isConsumed) {\n          return isConsumed\n        } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n          return Promise.resolve(\n            this._bodyArrayBuffer.buffer.slice(\n              this._bodyArrayBuffer.byteOffset,\n              this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n            )\n          )\n        } else {\n          return Promise.resolve(this._bodyArrayBuffer)\n        }\n      } else if (support.blob) {\n        return this.blob().then(readBlobAsArrayBuffer)\n      } else {\n        throw new Error('could not read as ArrayBuffer')\n      }\n    };\n\n    this.text = function() {\n      var rejected = consumed(this);\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    };\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      };\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    };\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'];\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase();\n    return methods.indexOf(upcased) > -1 ? upcased : method\n  }\n\n  function Request(input, options) {\n    if (!(this instanceof Request)) {\n      throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n    }\n\n    options = options || {};\n    var body = options.body;\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url;\n      this.credentials = input.credentials;\n      if (!options.headers) {\n        this.headers = new Headers(input.headers);\n      }\n      this.method = input.method;\n      this.mode = input.mode;\n      this.signal = input.signal;\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit;\n        input.bodyUsed = true;\n      }\n    } else {\n      this.url = String(input);\n    }\n\n    this.credentials = options.credentials || this.credentials || 'same-origin';\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers);\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET');\n    this.mode = options.mode || this.mode || null;\n    this.signal = options.signal || this.signal || (function () {\n      if ('AbortController' in g) {\n        var ctrl = new AbortController();\n        return ctrl.signal;\n      }\n    }());\n    this.referrer = null;\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body);\n\n    if (this.method === 'GET' || this.method === 'HEAD') {\n      if (options.cache === 'no-store' || options.cache === 'no-cache') {\n        // Search for a '_' parameter in the query string\n        var reParamSearch = /([?&])_=[^&]*/;\n        if (reParamSearch.test(this.url)) {\n          // If it already exists then set the value with the current time\n          this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n        } else {\n          // Otherwise add a new '_' parameter to the end with the current time\n          var reQueryString = /\\?/;\n          this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n        }\n      }\n    }\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, {body: this._bodyInit})\n  };\n\n  function decode(body) {\n    var form = new FormData();\n    body\n      .trim()\n      .split('&')\n      .forEach(function(bytes) {\n        if (bytes) {\n          var split = bytes.split('=');\n          var name = split.shift().replace(/\\+/g, ' ');\n          var value = split.join('=').replace(/\\+/g, ' ');\n          form.append(decodeURIComponent(name), decodeURIComponent(value));\n        }\n      });\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers();\n    // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n    // https://tools.ietf.org/html/rfc7230#section-3.2\n    var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n    // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n    // https://github.com/github/fetch/issues/748\n    // https://github.com/zloirock/core-js/issues/751\n    preProcessedHeaders\n      .split('\\r')\n      .map(function(header) {\n        return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n      })\n      .forEach(function(line) {\n        var parts = line.split(':');\n        var key = parts.shift().trim();\n        if (key) {\n          var value = parts.join(':').trim();\n          try {\n            headers.append(key, value);\n          } catch (error) {\n            console.warn('Response ' + error.message);\n          }\n        }\n      });\n    return headers\n  }\n\n  Body.call(Request.prototype);\n\n  function Response(bodyInit, options) {\n    if (!(this instanceof Response)) {\n      throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n    }\n    if (!options) {\n      options = {};\n    }\n\n    this.type = 'default';\n    this.status = options.status === undefined ? 200 : options.status;\n    if (this.status < 200 || this.status > 599) {\n      throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n    }\n    this.ok = this.status >= 200 && this.status < 300;\n    this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n    this.headers = new Headers(options.headers);\n    this.url = options.url || '';\n    this._initBody(bodyInit);\n  }\n\n  Body.call(Response.prototype);\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  };\n\n  Response.error = function() {\n    var response = new Response(null, {status: 200, statusText: ''});\n    response.ok = false;\n    response.status = 0;\n    response.type = 'error';\n    return response\n  };\n\n  var redirectStatuses = [301, 302, 303, 307, 308];\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  };\n\n  exports.DOMException = g.DOMException;\n  try {\n    new exports.DOMException();\n  } catch (err) {\n    exports.DOMException = function(message, name) {\n      this.message = message;\n      this.name = name;\n      var error = Error(message);\n      this.stack = error.stack;\n    };\n    exports.DOMException.prototype = Object.create(Error.prototype);\n    exports.DOMException.prototype.constructor = exports.DOMException;\n  }\n\n  function fetch(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init);\n\n      if (request.signal && request.signal.aborted) {\n        return reject(new exports.DOMException('Aborted', 'AbortError'))\n      }\n\n      var xhr = new XMLHttpRequest();\n\n      function abortXhr() {\n        xhr.abort();\n      }\n\n      xhr.onload = function() {\n        var options = {\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        };\n        // This check if specifically for when a user fetches a file locally from the file system\n        // Only if the status is out of a normal range\n        if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n          options.status = 200;\n        } else {\n          options.status = xhr.status;\n        }\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n        var body = 'response' in xhr ? xhr.response : xhr.responseText;\n        setTimeout(function() {\n          resolve(new Response(body, options));\n        }, 0);\n      };\n\n      xhr.onerror = function() {\n        setTimeout(function() {\n          reject(new TypeError('Network request failed'));\n        }, 0);\n      };\n\n      xhr.ontimeout = function() {\n        setTimeout(function() {\n          reject(new TypeError('Network request timed out'));\n        }, 0);\n      };\n\n      xhr.onabort = function() {\n        setTimeout(function() {\n          reject(new exports.DOMException('Aborted', 'AbortError'));\n        }, 0);\n      };\n\n      function fixUrl(url) {\n        try {\n          return url === '' && g.location.href ? g.location.href : url\n        } catch (e) {\n          return url\n        }\n      }\n\n      xhr.open(request.method, fixUrl(request.url), true);\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true;\n      } else if (request.credentials === 'omit') {\n        xhr.withCredentials = false;\n      }\n\n      if ('responseType' in xhr) {\n        if (support.blob) {\n          xhr.responseType = 'blob';\n        } else if (\n          support.arrayBuffer\n        ) {\n          xhr.responseType = 'arraybuffer';\n        }\n      }\n\n      if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n        var names = [];\n        Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n          names.push(normalizeName(name));\n          xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n        });\n        request.headers.forEach(function(value, name) {\n          if (names.indexOf(name) === -1) {\n            xhr.setRequestHeader(name, value);\n          }\n        });\n      } else {\n        request.headers.forEach(function(value, name) {\n          xhr.setRequestHeader(name, value);\n        });\n      }\n\n      if (request.signal) {\n        request.signal.addEventListener('abort', abortXhr);\n\n        xhr.onreadystatechange = function() {\n          // DONE (success or failure)\n          if (xhr.readyState === 4) {\n            request.signal.removeEventListener('abort', abortXhr);\n          }\n        };\n      }\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n    })\n  }\n\n  fetch.polyfill = true;\n\n  if (!g.fetch) {\n    g.fetch = fetch;\n    g.Headers = Headers;\n    g.Request = Request;\n    g.Response = Response;\n  }\n\n  exports.Headers = Headers;\n  exports.Request = Request;\n  exports.Response = Response;\n  exports.fetch = fetch;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n\n})({});\n})(typeof self !== 'undefined' ? self : this);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ERROR_CODES = exports.ErrorCoded = void 0;\n/**\n * An error that has a certain error code.\n *\n * The error code can be any string.\n * All standardized error codes are listed in {@link ERROR_CODES}.\n */\nclass ErrorCoded extends Error {\n    /* istanbul ignore next */\n    constructor(message, code) {\n        super(message);\n        this.code = code;\n    }\n}\nexports.ErrorCoded = ErrorCoded;\n/**\n * All standardized JSON-LD error codes.\n * @see https://w3c.github.io/json-ld-api/#dom-jsonlderrorcode\n */\n// tslint:disable:object-literal-sort-keys\nvar ERROR_CODES;\n(function (ERROR_CODES) {\n    ERROR_CODES[\"COLLIDING_KEYWORDS\"] = \"colliding keywords\";\n    ERROR_CODES[\"CONFLICTING_INDEXES\"] = \"conflicting indexes\";\n    ERROR_CODES[\"CYCLIC_IRI_MAPPING\"] = \"cyclic IRI mapping\";\n    ERROR_CODES[\"INVALID_ID_VALUE\"] = \"invalid @id value\";\n    ERROR_CODES[\"INVALID_INDEX_VALUE\"] = \"invalid @index value\";\n    ERROR_CODES[\"INVALID_NEST_VALUE\"] = \"invalid @nest value\";\n    ERROR_CODES[\"INVALID_PREFIX_VALUE\"] = \"invalid @prefix value\";\n    ERROR_CODES[\"INVALID_PROPAGATE_VALUE\"] = \"invalid @propagate value\";\n    ERROR_CODES[\"INVALID_REVERSE_VALUE\"] = \"invalid @reverse value\";\n    ERROR_CODES[\"INVALID_IMPORT_VALUE\"] = \"invalid @import value\";\n    ERROR_CODES[\"INVALID_VERSION_VALUE\"] = \"invalid @version value\";\n    ERROR_CODES[\"INVALID_BASE_IRI\"] = \"invalid base IRI\";\n    ERROR_CODES[\"INVALID_CONTAINER_MAPPING\"] = \"invalid container mapping\";\n    ERROR_CODES[\"INVALID_CONTEXT_ENTRY\"] = \"invalid context entry\";\n    ERROR_CODES[\"INVALID_CONTEXT_NULLIFICATION\"] = \"invalid context nullification\";\n    ERROR_CODES[\"INVALID_DEFAULT_LANGUAGE\"] = \"invalid default language\";\n    ERROR_CODES[\"INVALID_INCLUDED_VALUE\"] = \"invalid @included value\";\n    ERROR_CODES[\"INVALID_IRI_MAPPING\"] = \"invalid IRI mapping\";\n    ERROR_CODES[\"INVALID_JSON_LITERAL\"] = \"invalid JSON literal\";\n    ERROR_CODES[\"INVALID_KEYWORD_ALIAS\"] = \"invalid keyword alias\";\n    ERROR_CODES[\"INVALID_LANGUAGE_MAP_VALUE\"] = \"invalid language map value\";\n    ERROR_CODES[\"INVALID_LANGUAGE_MAPPING\"] = \"invalid language mapping\";\n    ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_STRING\"] = \"invalid language-tagged string\";\n    ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_VALUE\"] = \"invalid language-tagged value\";\n    ERROR_CODES[\"INVALID_LOCAL_CONTEXT\"] = \"invalid local context\";\n    ERROR_CODES[\"INVALID_REMOTE_CONTEXT\"] = \"invalid remote context\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY\"] = \"invalid reverse property\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY_MAP\"] = \"invalid reverse property map\";\n    ERROR_CODES[\"INVALID_REVERSE_PROPERTY_VALUE\"] = \"invalid reverse property value\";\n    ERROR_CODES[\"INVALID_SCOPED_CONTEXT\"] = \"invalid scoped context\";\n    ERROR_CODES[\"INVALID_SCRIPT_ELEMENT\"] = \"invalid script element\";\n    ERROR_CODES[\"INVALID_SET_OR_LIST_OBJECT\"] = \"invalid set or list object\";\n    ERROR_CODES[\"INVALID_TERM_DEFINITION\"] = \"invalid term definition\";\n    ERROR_CODES[\"INVALID_TYPE_MAPPING\"] = \"invalid type mapping\";\n    ERROR_CODES[\"INVALID_TYPE_VALUE\"] = \"invalid type value\";\n    ERROR_CODES[\"INVALID_TYPED_VALUE\"] = \"invalid typed value\";\n    ERROR_CODES[\"INVALID_VALUE_OBJECT\"] = \"invalid value object\";\n    ERROR_CODES[\"INVALID_VALUE_OBJECT_VALUE\"] = \"invalid value object value\";\n    ERROR_CODES[\"INVALID_VOCAB_MAPPING\"] = \"invalid vocab mapping\";\n    ERROR_CODES[\"IRI_CONFUSED_WITH_PREFIX\"] = \"IRI confused with prefix\";\n    ERROR_CODES[\"KEYWORD_REDEFINITION\"] = \"keyword redefinition\";\n    ERROR_CODES[\"LOADING_DOCUMENT_FAILED\"] = \"loading document failed\";\n    ERROR_CODES[\"LOADING_REMOTE_CONTEXT_FAILED\"] = \"loading remote context failed\";\n    ERROR_CODES[\"MULTIPLE_CONTEXT_LINK_HEADERS\"] = \"multiple context link headers\";\n    ERROR_CODES[\"PROCESSING_MODE_CONFLICT\"] = \"processing mode conflict\";\n    ERROR_CODES[\"PROTECTED_TERM_REDEFINITION\"] = \"protected term redefinition\";\n    ERROR_CODES[\"CONTEXT_OVERFLOW\"] = \"context overflow\";\n    ERROR_CODES[\"INVALID_BASE_DIRECTION\"] = \"invalid base direction\";\n    ERROR_CODES[\"RECURSIVE_CONTEXT_INCLUSION\"] = \"recursive context inclusion\";\n    ERROR_CODES[\"INVALID_STREAMING_KEY_ORDER\"] = \"invalid streaming key order\";\n    /**\n     * JSON-LD-star\n     */\n    ERROR_CODES[\"INVALID_EMBEDDED_NODE\"] = \"invalid embedded node\";\n    ERROR_CODES[\"INVALID_ANNOTATION\"] = \"invalid annotation\";\n})(ERROR_CODES = exports.ERROR_CODES || (exports.ERROR_CODES = {}));\n//# sourceMappingURL=ErrorCoded.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FetchDocumentLoader = void 0;\nrequire(\"cross-fetch/polyfill\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst http_link_header_1 = require(\"http-link-header\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\n/**\n * Loads documents via the fetch API.\n */\nclass FetchDocumentLoader {\n    constructor(fetcher) {\n        this.fetcher = fetcher;\n    }\n    async load(url) {\n        const response = await (this.fetcher || fetch)(url, { headers: new Headers({ accept: 'application/ld+json' }) });\n        if (response.ok && response.headers) {\n            let mediaType = response.headers.get('Content-Type');\n            if (mediaType) {\n                const colonPos = mediaType.indexOf(';');\n                if (colonPos > 0) {\n                    mediaType = mediaType.substr(0, colonPos);\n                }\n            }\n            if (mediaType === 'application/ld+json') {\n                // Return JSON-LD if proper content type was returned\n                return (await response.json());\n            }\n            else {\n                // Check for alternate link for a non-JSON-LD response\n                if (response.headers.has('Link')) {\n                    let alternateUrl;\n                    response.headers.forEach((value, key) => {\n                        if (key === 'link') {\n                            const linkHeader = (0, http_link_header_1.parse)(value);\n                            for (const link of linkHeader.get('type', 'application/ld+json')) {\n                                if (link.rel === 'alternate') {\n                                    if (alternateUrl) {\n                                        throw new Error('Multiple JSON-LD alternate links were found on ' + url);\n                                    }\n                                    alternateUrl = (0, relative_to_absolute_iri_1.resolve)(link.uri, url);\n                                }\n                            }\n                        }\n                    });\n                    if (alternateUrl) {\n                        return this.load(alternateUrl);\n                    }\n                }\n                throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, ErrorCoded_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n            }\n        }\n        else {\n            throw new Error(response.statusText || `Status code: ${response.status}`);\n        }\n    }\n}\nexports.FetchDocumentLoader = FetchDocumentLoader;\n//# sourceMappingURL=FetchDocumentLoader.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Util = void 0;\nclass Util {\n    /**\n     * Check if the given term is a valid compact IRI.\n     * Otherwise, it may be an IRI.\n     * @param {string} term A term.\n     * @return {boolean} If it is a compact IRI.\n     */\n    static isCompactIri(term) {\n        return term.indexOf(':') > 0 && !(term && term[0] === '#');\n    }\n    /**\n     * Get the prefix from the given term.\n     * @see https://json-ld.org/spec/latest/json-ld/#compact-iris\n     * @param {string} term A term that is an URL or a prefixed URL.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @return {string} The prefix or null.\n     */\n    static getPrefix(term, context) {\n        // Do not consider relative IRIs starting with a hash as compact IRIs\n        if (term && term[0] === '#') {\n            return null;\n        }\n        const separatorPos = term.indexOf(':');\n        if (separatorPos >= 0) {\n            // Suffix can not begin with two slashes\n            if (term.length > separatorPos + 1\n                && term.charAt(separatorPos + 1) === '/'\n                && term.charAt(separatorPos + 2) === '/') {\n                return null;\n            }\n            const prefix = term.substr(0, separatorPos);\n            // Prefix can not be an underscore (this is a blank node)\n            if (prefix === '_') {\n                return null;\n            }\n            // Prefix must match a term in the active context\n            if (context[prefix]) {\n                return prefix;\n            }\n        }\n        return null;\n    }\n    /**\n     * From a given context entry value, get the string value, or the @id field.\n     * @param contextValue A value for a term in a context.\n     * @return {string} The id value, or null.\n     */\n    static getContextValueId(contextValue) {\n        if (contextValue === null || typeof contextValue === 'string') {\n            return contextValue;\n        }\n        const id = contextValue['@id'];\n        return id ? id : null;\n    }\n    /**\n     * Check if the given simple term definition (string-based value of a context term)\n     * should be considered a prefix.\n     * @param value A simple term definition value.\n     * @param options Options that define the way how expansion must be done.\n     */\n    static isSimpleTermDefinitionPrefix(value, options) {\n        return !Util.isPotentialKeyword(value)\n            && (options.allowPrefixNonGenDelims || (typeof value === 'string' && (value[0] === '_' || Util.isPrefixIriEndingWithGenDelim(value))));\n    }\n    /**\n     * Check if the given keyword is of the keyword format \"@\"1*ALPHA.\n     * @param {string} keyword A potential keyword.\n     * @return {boolean} If the given keyword is of the keyword format.\n     */\n    static isPotentialKeyword(keyword) {\n        return typeof keyword === 'string' && Util.KEYWORD_REGEX.test(keyword);\n    }\n    /**\n     * Check if the given prefix ends with a gen-delim character.\n     * @param {string} prefixIri A prefix IRI.\n     * @return {boolean} If the given prefix IRI is valid.\n     */\n    static isPrefixIriEndingWithGenDelim(prefixIri) {\n        return Util.ENDS_WITH_GEN_DELIM.test(prefixIri);\n    }\n    /**\n     * Check if the given context value can be a prefix value.\n     * @param value A context value.\n     * @return {boolean} If it can be a prefix value.\n     */\n    static isPrefixValue(value) {\n        return value && (typeof value === 'string' || (value && typeof value === 'object'));\n    }\n    /**\n     * Check if the given IRI is valid.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIri(iri) {\n        return Boolean(iri && Util.IRI_REGEX.test(iri));\n    }\n    /**\n     * Check if the given IRI is valid, this includes the possibility of being a relative IRI.\n     * @param {string} iri A potential IRI.\n     * @return {boolean} If the given IRI is valid.\n     */\n    static isValidIriWeak(iri) {\n        return !!iri && iri[0] !== ':' && Util.IRI_REGEX_WEAK.test(iri);\n    }\n    /**\n     * Check if the given keyword is a defined according to the JSON-LD specification.\n     * @param {string} keyword A potential keyword.\n     * @return {boolean} If the given keyword is valid.\n     */\n    static isValidKeyword(keyword) {\n        return Util.VALID_KEYWORDS[keyword];\n    }\n    /**\n     * Check if the given term is protected in the context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {string} key A context term.\n     * @return {boolean} If the given term has an @protected flag.\n     */\n    static isTermProtected(context, key) {\n        const value = context[key];\n        return !(typeof value === 'string') && value && value['@protected'];\n    }\n    /**\n     * Check if the given context has at least one protected term.\n     * @param context A context.\n     * @return If the context has a protected term.\n     */\n    static hasProtectedTerms(context) {\n        for (const key of Object.keys(context)) {\n            if (Util.isTermProtected(context, key)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    /**\n     * Check if the given key is an internal reserved keyword.\n     * @param key A context key.\n     */\n    static isReservedInternalKeyword(key) {\n        return key.startsWith('@__');\n    }\n    /**\n     * Check if two objects are deepEqual to on another.\n     * @param object1 The first object to test.\n     * @param object2 The second object to test.\n     */\n    static deepEqual(object1, object2) {\n        const objKeys1 = Object.keys(object1);\n        const objKeys2 = Object.keys(object2);\n        if (objKeys1.length !== objKeys2.length)\n            return false;\n        return objKeys1.every((key) => {\n            const value1 = object1[key];\n            const value2 = object2[key];\n            return (value1 === value2) || (value1 !== null &&\n                value2 !== null &&\n                typeof value1 === \"object\" &&\n                typeof value2 === \"object\" &&\n                this.deepEqual(value1, value2));\n        });\n    }\n    ;\n}\n// Regex for valid IRIs\nUtil.IRI_REGEX = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^ \"<>{}|\\\\\\[\\]`#]*(#[^#]*)?$/;\n// Weaker regex for valid IRIs, this includes relative IRIs\nUtil.IRI_REGEX_WEAK = /(?::[^:])|\\//;\n// Regex for keyword form\nUtil.KEYWORD_REGEX = /^@[a-z]+$/i;\n// Regex to see if an IRI ends with a gen-delim character (see RFC 3986)\nUtil.ENDS_WITH_GEN_DELIM = /[:/?#\\[\\]@]$/;\n// Regex for language tags\nUtil.REGEX_LANGUAGE_TAG = /^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/;\n// Regex for base directions\nUtil.REGEX_DIRECTION_TAG = /^(ltr)|(rtl)$/;\n// All known valid JSON-LD keywords\n// @see https://www.w3.org/TR/json-ld11/#keywords\nUtil.VALID_KEYWORDS = {\n    '@annotation': true,\n    '@base': true,\n    '@container': true,\n    '@context': true,\n    '@direction': true,\n    '@graph': true,\n    '@id': true,\n    '@import': true,\n    '@included': true,\n    '@index': true,\n    '@json': true,\n    '@language': true,\n    '@list': true,\n    '@nest': true,\n    '@none': true,\n    '@prefix': true,\n    '@propagate': true,\n    '@protected': true,\n    '@reverse': true,\n    '@set': true,\n    '@type': true,\n    '@value': true,\n    '@version': true,\n    '@vocab': true,\n};\n// Keys in the contexts that will not be expanded based on the base IRI\nUtil.EXPAND_KEYS_BLACKLIST = [\n    '@base',\n    '@vocab',\n    '@language',\n    '@version',\n    '@direction',\n];\n// Keys in the contexts that may not be aliased from\nUtil.ALIAS_DOMAIN_BLACKLIST = [\n    '@container',\n    '@graph',\n    '@id',\n    '@index',\n    '@list',\n    '@nest',\n    '@none',\n    '@prefix',\n    '@reverse',\n    '@set',\n    '@type',\n    '@value',\n    '@version',\n];\n// Keys in the contexts that may not be aliased to\nUtil.ALIAS_RANGE_BLACKLIST = [\n    '@context',\n    '@preserve',\n];\n// All valid @container values\nUtil.CONTAINERS = [\n    '@list',\n    '@set',\n    '@index',\n    '@language',\n    '@graph',\n    '@id',\n    '@type',\n];\n// All valid @container values under processing mode 1.0\nUtil.CONTAINERS_1_0 = [\n    '@list',\n    '@set',\n    '@index',\n];\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultExpandOptions = exports.JsonLdContextNormalized = void 0;\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst Util_1 = require(\"./Util\");\n/**\n * A class exposing operations over a normalized JSON-LD context.\n */\nclass JsonLdContextNormalized {\n    constructor(contextRaw) {\n        this.contextRaw = contextRaw;\n    }\n    /**\n     * @return The raw inner context.\n     */\n    getContextRaw() {\n        return this.contextRaw;\n    }\n    /**\n     * Expand the term or prefix of the given term if it has one,\n     * otherwise return the term as-is.\n     *\n     * This will try to expand the IRI as much as possible.\n     *\n     * Iff in vocab-mode, then other references to other terms in the context can be used,\n     * such as to `myTerm`:\n     * ```\n     * {\n     *   \"myTerm\": \"http://example.org/myLongTerm\"\n     * }\n     * ```\n     *\n     * @param {string} term A term that is an URL or a prefixed URL.\n     * @param {boolean} expandVocab If the term is a predicate or type and should be expanded based on @vocab,\n     *                              otherwise it is considered a regular term that is expanded based on @base.\n     * @param {IExpandOptions} options Options that define the way how expansion must be done.\n     * @return {string} The expanded term, the term as-is, or null if it was explicitly disabled in the context.\n     * @throws If the term is aliased to an invalid value (not a string, IRI or keyword).\n     */\n    expandTerm(term, expandVocab, options = exports.defaultExpandOptions) {\n        const contextValue = this.contextRaw[term];\n        // Immediately return if the term was disabled in the context\n        if (contextValue === null || (contextValue && contextValue['@id'] === null)) {\n            return null;\n        }\n        // Check the @id\n        let validIriMapping = true;\n        if (contextValue && expandVocab) {\n            const value = Util_1.Util.getContextValueId(contextValue);\n            if (value && value !== term) {\n                if (typeof value !== 'string' || (!Util_1.Util.isValidIri(value) && !Util_1.Util.isValidKeyword(value))) {\n                    // Don't mark this mapping as invalid if we have an unknown keyword, but of the correct form.\n                    if (!Util_1.Util.isPotentialKeyword(value)) {\n                        validIriMapping = false;\n                    }\n                }\n                else {\n                    return value;\n                }\n            }\n        }\n        // Check if the term is prefixed\n        const prefix = Util_1.Util.getPrefix(term, this.contextRaw);\n        const vocab = this.contextRaw['@vocab'];\n        const vocabRelative = (!!vocab || vocab === '') && vocab.indexOf(':') < 0;\n        const base = this.contextRaw['@base'];\n        const potentialKeyword = Util_1.Util.isPotentialKeyword(term);\n        if (prefix) {\n            const contextPrefixValue = this.contextRaw[prefix];\n            const value = Util_1.Util.getContextValueId(contextPrefixValue);\n            if (value) {\n                if (typeof contextPrefixValue === 'string' || !options.allowPrefixForcing) {\n                    // If we have a simple term definition,\n                    // check the last character of the prefix to determine whether or not it is a prefix.\n                    // Validate that prefix ends with gen-delim character, unless @prefix is true\n                    if (!Util_1.Util.isSimpleTermDefinitionPrefix(value, options)) {\n                        // Treat the term as an absolute IRI\n                        return term;\n                    }\n                }\n                else {\n                    // If we have an expanded term definition, default to @prefix: false\n                    if (value[0] !== '_' && !potentialKeyword && !contextPrefixValue['@prefix'] && !(term in this.contextRaw)) {\n                        // Treat the term as an absolute IRI\n                        return term;\n                    }\n                }\n                return value + term.substr(prefix.length + 1);\n            }\n        }\n        else if (expandVocab && ((vocab || vocab === '') || (options.allowVocabRelativeToBase && (base && vocabRelative)))\n            && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n            if (vocabRelative) {\n                if (options.allowVocabRelativeToBase) {\n                    return ((vocab || base) ? (0, relative_to_absolute_iri_1.resolve)(vocab, base) : '') + term;\n                }\n                else {\n                    throw new ErrorCoded_1.ErrorCoded(`Relative vocab expansion for term '${term}' with vocab '${vocab}' is not allowed.`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n                }\n            }\n            else {\n                return vocab + term;\n            }\n        }\n        else if (!expandVocab && base && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n            return (0, relative_to_absolute_iri_1.resolve)(term, base);\n        }\n        // Return the term as-is, unless we discovered an invalid IRI mapping for this term in the context earlier.\n        if (validIriMapping) {\n            return term;\n        }\n        else {\n            throw new ErrorCoded_1.ErrorCoded(`Invalid IRI mapping found for context entry '${term}': '${JSON.stringify(contextValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n        }\n    }\n    /**\n     * Compact the given term using @base, @vocab, an aliased term, or a prefixed term.\n     *\n     * This will try to compact the IRI as much as possible.\n     *\n     * @param {string} iri An IRI to compact.\n     * @param {boolean} vocab If the term is a predicate or type and should be compacted based on @vocab,\n     *                        otherwise it is considered a regular term that is compacted based on @base.\n     * @return {string} The compacted term or the IRI as-is.\n     */\n    compactIri(iri, vocab) {\n        // Try @vocab compacting\n        if (vocab && this.contextRaw['@vocab'] && iri.startsWith(this.contextRaw['@vocab'])) {\n            return iri.substr(this.contextRaw['@vocab'].length);\n        }\n        // Try @base compacting\n        if (!vocab && this.contextRaw['@base'] && iri.startsWith(this.contextRaw['@base'])) {\n            return iri.substr(this.contextRaw['@base'].length);\n        }\n        // Loop over all terms in the context\n        // This will try to prefix as short as possible.\n        // Once a fully compacted alias is found, return immediately, as we can not go any shorter.\n        const shortestPrefixing = { prefix: '', suffix: iri };\n        for (const key in this.contextRaw) {\n            const value = this.contextRaw[key];\n            if (value && !Util_1.Util.isPotentialKeyword(key)) {\n                const contextIri = Util_1.Util.getContextValueId(value);\n                if (iri.startsWith(contextIri)) {\n                    const suffix = iri.substr(contextIri.length);\n                    if (!suffix) {\n                        if (vocab) {\n                            // Immediately return on compacted alias\n                            return key;\n                        }\n                    }\n                    else if (suffix.length < shortestPrefixing.suffix.length) {\n                        // Overwrite the shortest prefix\n                        shortestPrefixing.prefix = key;\n                        shortestPrefixing.suffix = suffix;\n                    }\n                }\n            }\n        }\n        // Return the shortest prefix\n        if (shortestPrefixing.prefix) {\n            return shortestPrefixing.prefix + ':' + shortestPrefixing.suffix;\n        }\n        return iri;\n    }\n}\nexports.JsonLdContextNormalized = JsonLdContextNormalized;\nexports.defaultExpandOptions = {\n    allowPrefixForcing: true,\n    allowPrefixNonGenDelims: false,\n    allowVocabRelativeToBase: true,\n};\n//# sourceMappingURL=JsonLdContextNormalized.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ContextParser = void 0;\nrequire(\"cross-fetch/polyfill\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst ErrorCoded_1 = require(\"./ErrorCoded\");\nconst FetchDocumentLoader_1 = require(\"./FetchDocumentLoader\");\nconst JsonLdContextNormalized_1 = require(\"./JsonLdContextNormalized\");\nconst Util_1 = require(\"./Util\");\n/**\n * Parses JSON-LD contexts.\n */\nclass ContextParser {\n    constructor(options) {\n        options = options || {};\n        this.documentLoader = options.documentLoader || new FetchDocumentLoader_1.FetchDocumentLoader();\n        this.documentCache = {};\n        this.validateContext = !options.skipValidation;\n        this.expandContentTypeToBase = !!options.expandContentTypeToBase;\n        this.remoteContextsDepthLimit = options.remoteContextsDepthLimit || 32;\n        this.redirectSchemaOrgHttps = 'redirectSchemaOrgHttps' in options ? !!options.redirectSchemaOrgHttps : true;\n    }\n    /**\n     * Validate the given @language value.\n     * An error will be thrown if it is invalid.\n     * @param value An @language value.\n     * @param {boolean} strictRange If the string value should be strictly checked against a regex.\n     * @param {string} errorCode The error code to emit on errors.\n     * @return {boolean} If validation passed.\n     *                   Can only be false if strictRange is false and the string value did not pass the regex.\n     */\n    static validateLanguage(value, strictRange, errorCode) {\n        if (typeof value !== 'string') {\n            throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a string, got '${JSON.stringify(value)}'`, errorCode);\n        }\n        if (!Util_1.Util.REGEX_LANGUAGE_TAG.test(value)) {\n            if (strictRange) {\n                throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a valid language tag, got '${JSON.stringify(value)}'`, errorCode);\n            }\n            else {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Validate the given @direction value.\n     * An error will be thrown if it is invalid.\n     * @param value An @direction value.\n     * @param {boolean} strictValues If the string value should be strictly checked against a regex.\n     * @return {boolean} If validation passed.\n     *                   Can only be false if strictRange is false and the string value did not pass the regex.\n     */\n    static validateDirection(value, strictValues) {\n        if (typeof value !== 'string') {\n            throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be a string, got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n        }\n        if (!Util_1.Util.REGEX_DIRECTION_TAG.test(value)) {\n            if (strictValues) {\n                throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be 'ltr' or 'rtl', got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n            }\n            else {\n                return false;\n            }\n        }\n        return true;\n    }\n    /**\n     * Add an @id term for all @reverse terms.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n     */\n    idifyReverseTerms(context) {\n        for (const key of Object.keys(context)) {\n            let value = context[key];\n            if (value && typeof value === 'object') {\n                if (value['@reverse'] && !value['@id']) {\n                    if (typeof value['@reverse'] !== 'string' || Util_1.Util.isValidKeyword(value['@reverse'])) {\n                        throw new ErrorCoded_1.ErrorCoded(`Invalid @reverse value, must be absolute IRI or blank node: '${value['@reverse']}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                    }\n                    value = context[key] = Object.assign(Object.assign({}, value), { '@id': value['@reverse'] });\n                    value['@id'] = value['@reverse'];\n                    if (Util_1.Util.isPotentialKeyword(value['@reverse'])) {\n                        delete value['@reverse'];\n                    }\n                    else {\n                        value['@reverse'] = true;\n                    }\n                }\n            }\n        }\n        return context;\n    }\n    /**\n     * Expand all prefixed terms in the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {boolean} expandContentTypeToBase If @type inside the context may be expanded\n     *                                          via @base if @vocab is set to null.\n     * @param {string[]} keys Optional set of keys from the context to expand. If left undefined, all\n     * keys in the context will be expanded.\n     */\n    expandPrefixedTerms(context, expandContentTypeToBase, keys) {\n        const contextRaw = context.getContextRaw();\n        for (const key of (keys || Object.keys(contextRaw))) {\n            // Only expand allowed keys\n            if (Util_1.Util.EXPAND_KEYS_BLACKLIST.indexOf(key) < 0 && !Util_1.Util.isReservedInternalKeyword(key)) {\n                // Error if we try to alias a keyword to something else.\n                const keyValue = contextRaw[key];\n                if (Util_1.Util.isPotentialKeyword(key) && Util_1.Util.ALIAS_DOMAIN_BLACKLIST.indexOf(key) >= 0) {\n                    if (key !== '@type' || typeof contextRaw[key] === 'object'\n                        && !(contextRaw[key]['@protected'] || contextRaw[key]['@container'] === '@set')) {\n                        throw new ErrorCoded_1.ErrorCoded(`Keywords can not be aliased to something else.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n                    }\n                }\n                // Error if we try to alias to an illegal keyword\n                if (Util_1.Util.ALIAS_RANGE_BLACKLIST.indexOf(Util_1.Util.getContextValueId(keyValue)) >= 0) {\n                    throw new ErrorCoded_1.ErrorCoded(`Aliasing to certain keywords is not allowed.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.INVALID_KEYWORD_ALIAS);\n                }\n                // Error if this term was marked as prefix as well\n                if (keyValue && Util_1.Util.isPotentialKeyword(Util_1.Util.getContextValueId(keyValue))\n                    && keyValue['@prefix'] === true) {\n                    throw new ErrorCoded_1.ErrorCoded(`Tried to use keyword aliases as prefix: '${key}': '${JSON.stringify(keyValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                }\n                // Loop because prefixes might be nested\n                while (Util_1.Util.isPrefixValue(contextRaw[key])) {\n                    const value = contextRaw[key];\n                    let changed = false;\n                    if (typeof value === 'string') {\n                        contextRaw[key] = context.expandTerm(value, true);\n                        changed = changed || value !== contextRaw[key];\n                    }\n                    else {\n                        const id = value['@id'];\n                        const type = value['@type'];\n                        // If @id is missing, don't allow @id to be added if @prefix: true and key not being a valid IRI.\n                        const canAddIdEntry = !('@prefix' in value) || Util_1.Util.isValidIri(key);\n                        if ('@id' in value) {\n                            // Use @id value for expansion\n                            if (id !== undefined && id !== null && typeof id === 'string') {\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': context.expandTerm(id, true) });\n                                changed = changed || id !== contextRaw[key]['@id'];\n                            }\n                        }\n                        else if (!Util_1.Util.isPotentialKeyword(key) && canAddIdEntry) {\n                            // Add an explicit @id value based on the expanded key value\n                            const newId = context.expandTerm(key, true);\n                            if (newId !== key) {\n                                // Don't set @id if expansion failed\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': newId });\n                                changed = true;\n                            }\n                        }\n                        if (type && typeof type === 'string' && type !== '@vocab'\n                            && (!value['@container'] || !value['@container']['@type'])\n                            && canAddIdEntry) {\n                            // First check @vocab, then fallback to @base\n                            let expandedType = context.expandTerm(type, true);\n                            if (expandContentTypeToBase && type === expandedType) {\n                                expandedType = context.expandTerm(type, false);\n                            }\n                            if (expandedType !== type) {\n                                changed = true;\n                                contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@type': expandedType });\n                            }\n                        }\n                    }\n                    if (!changed) {\n                        break;\n                    }\n                }\n            }\n        }\n    }\n    /**\n     * Normalize the @language entries in the given context to lowercase.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} parseOptions The parsing options.\n     */\n    normalize(context, { processingMode, normalizeLanguageTags }) {\n        // Lowercase language keys in 1.0\n        if (normalizeLanguageTags || processingMode === 1.0) {\n            for (const key of Object.keys(context)) {\n                if (key === '@language' && typeof context[key] === 'string') {\n                    context[key] = context[key].toLowerCase();\n                }\n                else {\n                    const value = context[key];\n                    if (value && typeof value === 'object') {\n                        if (typeof value['@language'] === 'string') {\n                            const lowercase = value['@language'].toLowerCase();\n                            if (lowercase !== value['@language']) {\n                                context[key] = Object.assign(Object.assign({}, value), { '@language': lowercase });\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n    /**\n     * Convert all @container strings and array values to hash-based values.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     */\n    containersToHash(context) {\n        for (const key of Object.keys(context)) {\n            const value = context[key];\n            if (value && typeof value === 'object') {\n                if (typeof value['@container'] === 'string') {\n                    context[key] = Object.assign(Object.assign({}, value), { '@container': { [value['@container']]: true } });\n                }\n                else if (Array.isArray(value['@container'])) {\n                    const newValue = {};\n                    for (const containerValue of value['@container']) {\n                        newValue[containerValue] = true;\n                    }\n                    context[key] = Object.assign(Object.assign({}, value), { '@container': newValue });\n                }\n            }\n        }\n    }\n    /**\n     * Normalize and apply context-level @protected terms onto each term separately.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {number} processingMode The processing mode.\n     */\n    applyScopedProtected(context, { processingMode }, expandOptions) {\n        if (processingMode && processingMode >= 1.1) {\n            if (context['@protected']) {\n                for (const key of Object.keys(context)) {\n                    if (Util_1.Util.isReservedInternalKeyword(key)) {\n                        continue;\n                    }\n                    if (!Util_1.Util.isPotentialKeyword(key) && !Util_1.Util.isTermProtected(context, key)) {\n                        const value = context[key];\n                        if (value && typeof value === 'object') {\n                            if (!('@protected' in context[key])) {\n                                // Mark terms with object values as protected if they don't have an @protected: false annotation\n                                context[key] = Object.assign(Object.assign({}, context[key]), { '@protected': true });\n                            }\n                        }\n                        else {\n                            // Convert string-based term values to object-based values with @protected: true\n                            context[key] = {\n                                '@id': value,\n                                '@protected': true,\n                            };\n                            if (Util_1.Util.isSimpleTermDefinitionPrefix(value, expandOptions)) {\n                                context[key] = Object.assign(Object.assign({}, context[key]), { '@prefix': true });\n                            }\n                        }\n                    }\n                }\n                delete context['@protected'];\n            }\n        }\n    }\n    /**\n     * Check if the given context inheritance does not contain any overrides of protected terms.\n     * @param {IJsonLdContextNormalizedRaw} contextBefore The context that may contain some protected terms.\n     * @param {IJsonLdContextNormalizedRaw} contextAfter A new context that is being applied on the first one.\n     * @param {IExpandOptions} expandOptions Options that are needed for any expansions during this validation.\n     * @param {string[]} keys Optional set of keys from the context to validate. If left undefined, all\n     * keys defined in contextAfter will be checked.\n     */\n    validateKeywordRedefinitions(contextBefore, contextAfter, expandOptions, keys) {\n        for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(contextAfter))) {\n            if (Util_1.Util.isTermProtected(contextBefore, key)) {\n                // The entry in the context before will always be in object-mode\n                // If the new entry is in string-mode, convert it to object-mode\n                // before checking if it is identical.\n                if (typeof contextAfter[key] === 'string') {\n                    contextAfter[key] = { '@id': contextAfter[key], '@protected': true };\n                }\n                else {\n                    // We modify this deliberately,\n                    // as we need it for the value comparison (they must be identical modulo '@protected')),\n                    // and for the fact that this new value will override the first one.\n                    contextAfter[key] = Object.assign(Object.assign({}, contextAfter[key]), { '@protected': true });\n                }\n                // Error if they are not identical\n                if (!Util_1.Util.deepEqual(contextBefore[key], contextAfter[key])) {\n                    throw new ErrorCoded_1.ErrorCoded(`Attempted to override the protected keyword ${key} from ${JSON.stringify(Util_1.Util.getContextValueId(contextBefore[key]))} to ${JSON.stringify(Util_1.Util.getContextValueId(contextAfter[key]))}`, ErrorCoded_1.ERROR_CODES.PROTECTED_TERM_REDEFINITION);\n                }\n            }\n        }\n    }\n    /**\n     * Validate the entries of the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} options The parse options.\n     */\n    validate(context, { processingMode }) {\n        for (const key of Object.keys(context)) {\n            // Ignore reserved internal keywords.\n            if (Util_1.Util.isReservedInternalKeyword(key)) {\n                continue;\n            }\n            // Do not allow empty term\n            if (key === '') {\n                throw new ErrorCoded_1.ErrorCoded(`The empty term is not allowed, got: '${key}': '${JSON.stringify(context[key])}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n            }\n            const value = context[key];\n            const valueType = typeof value;\n            // First check if the key is a keyword\n            if (Util_1.Util.isPotentialKeyword(key)) {\n                switch (key.substr(1)) {\n                    case 'vocab':\n                        if (value !== null && valueType !== 'string') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @vocab IRI: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n                        }\n                        break;\n                    case 'base':\n                        if (value !== null && valueType !== 'string') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @base IRI: ${context[key]}`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_IRI);\n                        }\n                        break;\n                    case 'language':\n                        if (value !== null) {\n                            ContextParser.validateLanguage(value, true, ErrorCoded_1.ERROR_CODES.INVALID_DEFAULT_LANGUAGE);\n                        }\n                        break;\n                    case 'version':\n                        if (value !== null && valueType !== 'number') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @version number: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n                        }\n                        break;\n                    case 'direction':\n                        if (value !== null) {\n                            ContextParser.validateDirection(value, true);\n                        }\n                        break;\n                    case 'propagate':\n                        if (processingMode === 1.0) {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an illegal @propagate keyword: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n                        }\n                        if (value !== null && valueType !== 'boolean') {\n                            throw new ErrorCoded_1.ErrorCoded(`Found an invalid @propagate value: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_PROPAGATE_VALUE);\n                        }\n                        break;\n                }\n                // Don't allow keywords to be overridden\n                if (Util_1.Util.isValidKeyword(key) && Util_1.Util.isValidKeyword(Util_1.Util.getContextValueId(value))) {\n                    throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${Util_1.Util\n                        .getContextValueId(value)}'`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n                }\n                continue;\n            }\n            // Otherwise, consider the key a term\n            if (value !== null) {\n                switch (valueType) {\n                    case 'string':\n                        if (Util_1.Util.getPrefix(value, context) === key) {\n                            throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n                                .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n                        }\n                        if (Util_1.Util.isValidIriWeak(key)) {\n                            if (value === '@type') {\n                                throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                            }\n                            else if (Util_1.Util.isValidIri(value) && value !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n                                throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                            }\n                        }\n                        break;\n                    case 'object':\n                        if (!Util_1.Util.isCompactIri(key) && !('@id' in value)\n                            && (value['@type'] === '@id' ? !context['@base'] : !context['@vocab'])) {\n                            throw new ErrorCoded_1.ErrorCoded(`Missing @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                        }\n                        for (const objectKey of Object.keys(value)) {\n                            const objectValue = value[objectKey];\n                            if (!objectValue) {\n                                continue;\n                            }\n                            switch (objectKey) {\n                                case '@id':\n                                    if (Util_1.Util.isValidKeyword(objectValue)\n                                        && objectValue !== '@type' && objectValue !== '@id' && objectValue !== '@graph' && objectValue !== '@nest') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                    }\n                                    if (Util_1.Util.isValidIriWeak(key)) {\n                                        if (objectValue === '@type') {\n                                            throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                        }\n                                        else if (Util_1.Util.isValidIri(objectValue)\n                                            && objectValue !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n                                            throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                        }\n                                    }\n                                    if (typeof objectValue !== 'string') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Detected non-string @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n                                    }\n                                    if (Util_1.Util.getPrefix(objectValue, context) === key) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n                                            .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n                                    }\n                                    break;\n                                case '@type':\n                                    if (value['@container'] === '@type' && objectValue !== '@id' && objectValue !== '@vocab') {\n                                        throw new ErrorCoded_1.ErrorCoded(`@container: @type only allows @type: @id or @vocab, but got: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    if (typeof objectValue !== 'string') {\n                                        throw new ErrorCoded_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    if (objectValue !== '@id' && objectValue !== '@vocab'\n                                        && (processingMode === 1.0 || objectValue !== '@json')\n                                        && (processingMode === 1.0 || objectValue !== '@none')\n                                        && (objectValue[0] === '_' || !Util_1.Util.isValidIri(objectValue))) {\n                                        throw new ErrorCoded_1.ErrorCoded(`A context @type must be an absolute IRI, found: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n                                    }\n                                    break;\n                                case '@reverse':\n                                    if (typeof objectValue === 'string' && value['@id'] && value['@id'] !== objectValue) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found non-matching @id and @reverse term values in '${key}':\\\n'${objectValue}' and '${value['@id']}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                    }\n                                    if ('@nest' in value) {\n                                        throw new ErrorCoded_1.ErrorCoded(`@nest is not allowed in the reverse property '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                    }\n                                    break;\n                                case '@container':\n                                    if (processingMode === 1.0) {\n                                        if (Object.keys(objectValue).length > 1\n                                            || Util_1.Util.CONTAINERS_1_0.indexOf(Object.keys(objectValue)[0]) < 0) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${Object.keys(objectValue)}') in 1.0, \\\nmust be only one of ${Util_1.Util.CONTAINERS_1_0.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n                                        }\n                                    }\n                                    for (const containerValue of Object.keys(objectValue)) {\n                                        if (containerValue === '@list' && value['@reverse']) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Term value can not be @container: @list and @reverse at the same time on '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n                                        }\n                                        if (Util_1.Util.CONTAINERS.indexOf(containerValue) < 0) {\n                                            throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${containerValue}'), \\\nmust be one of ${Util_1.Util.CONTAINERS.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n                                        }\n                                    }\n                                    break;\n                                case '@language':\n                                    ContextParser.validateLanguage(objectValue, true, ErrorCoded_1.ERROR_CODES.INVALID_LANGUAGE_MAPPING);\n                                    break;\n                                case '@direction':\n                                    ContextParser.validateDirection(objectValue, true);\n                                    break;\n                                case '@prefix':\n                                    if (objectValue !== null && typeof objectValue !== 'boolean') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @prefix boolean in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_PREFIX_VALUE);\n                                    }\n                                    if (!('@id' in value) && !Util_1.Util.isValidIri(key)) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Invalid @prefix definition for '${key}' ('${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                                    }\n                                    break;\n                                case '@index':\n                                    if (processingMode === 1.0 || !value['@container'] || !value['@container']['@index']) {\n                                        throw new ErrorCoded_1.ErrorCoded(`Attempt to add illegal key to value object: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                                    }\n                                    break;\n                                case '@nest':\n                                    if (Util_1.Util.isPotentialKeyword(objectValue) && objectValue !== '@nest') {\n                                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @nest value in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_NEST_VALUE);\n                                    }\n                            }\n                        }\n                        break;\n                    default:\n                        throw new ErrorCoded_1.ErrorCoded(`Found an invalid term value: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n                }\n            }\n        }\n    }\n    /**\n     * Apply the @base context entry to the given context under certain circumstances.\n     * @param context A context.\n     * @param options Parsing options.\n     * @param inheritFromParent If the @base value from the parent context can be inherited.\n     * @return The given context.\n     */\n    applyBaseEntry(context, options, inheritFromParent) {\n        // In some special cases, this can be a string, so ignore those.\n        if (typeof context === 'string') {\n            return context;\n        }\n        // Give priority to @base in the parent context\n        if (inheritFromParent && !('@base' in context) && options.parentContext\n            && typeof options.parentContext === 'object' && '@base' in options.parentContext) {\n            context['@base'] = options.parentContext['@base'];\n            if (options.parentContext['@__baseDocument']) {\n                context['@__baseDocument'] = true;\n            }\n        }\n        // Override the base IRI if provided.\n        if (options.baseIRI && !options.external) {\n            if (!('@base' in context)) {\n                // The context base is the document base\n                context['@base'] = options.baseIRI;\n                context['@__baseDocument'] = true;\n            }\n            else if (context['@base'] !== null && typeof context['@base'] === 'string'\n                && !Util_1.Util.isValidIri(context['@base'])) {\n                // The context base is relative to the document base\n                context['@base'] = (0, relative_to_absolute_iri_1.resolve)(context['@base'], options.parentContext && options.parentContext['@base'] || options.baseIRI);\n            }\n        }\n        return context;\n    }\n    /**\n     * Resolve relative context IRIs, or return full IRIs as-is.\n     * @param {string} contextIri A context IRI.\n     * @param {string} baseIRI A base IRI.\n     * @return {string} The normalized context IRI.\n     */\n    normalizeContextIri(contextIri, baseIRI) {\n        if (!Util_1.Util.isValidIri(contextIri)) {\n            try {\n                contextIri = (0, relative_to_absolute_iri_1.resolve)(contextIri, baseIRI);\n            }\n            catch (_a) {\n                throw new Error(`Invalid context IRI: ${contextIri}`);\n            }\n        }\n        // TODO: Temporary workaround for fixing schema.org CORS issues (https://github.com/schemaorg/schemaorg/issues/2578#issuecomment-652324465)\n        if (this.redirectSchemaOrgHttps && contextIri.startsWith('http://schema.org')) {\n            contextIri = 'https://schema.org/';\n        }\n        return contextIri;\n    }\n    /**\n     * Parse scoped contexts in the given context.\n     * @param {IJsonLdContextNormalizedRaw} context A context.\n     * @param {IParseOptions} options Parsing options.\n     * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n     * @param {string[]} keys Optional set of keys from the context to parseInnerContexts of. If left undefined, all\n     * keys in the context will be iterated over.\n     */\n    async parseInnerContexts(context, options, keys) {\n        for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(context))) {\n            const value = context[key];\n            if (value && typeof value === 'object') {\n                if ('@context' in value && value['@context'] !== null && !options.ignoreScopedContexts) {\n                    // Simulate a processing based on the parent context to check if there are any (potential errors).\n                    // Honestly, I find it a bit weird to do this here, as the context may be unused,\n                    // and the final effective context may differ based on any other embedded/scoped contexts.\n                    // But hey, it's part of the spec, so we have no choice...\n                    // https://w3c.github.io/json-ld-api/#h-note-10\n                    if (this.validateContext) {\n                        try {\n                            const parentContext = Object.assign(Object.assign({}, context), { [key]: Object.assign({}, context[key]) });\n                            delete parentContext[key]['@context'];\n                            await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, parentContext, ignoreProtection: true, ignoreRemoteScopedContexts: true, ignoreScopedContexts: true }));\n                        }\n                        catch (e) {\n                            throw new ErrorCoded_1.ErrorCoded(e.message, ErrorCoded_1.ERROR_CODES.INVALID_SCOPED_CONTEXT);\n                        }\n                    }\n                    context[key] = Object.assign(Object.assign({}, value), { '@context': (await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, minimalProcessing: true, ignoreRemoteScopedContexts: true, parentContext: context })))\n                            .getContextRaw() });\n                }\n            }\n        }\n        return context;\n    }\n    async parse(context, options = {}, \n    // These options are only for internal use on recursive calls and should not be used by\n    // libraries consuming this function\n    internalOptions = {}) {\n        const { baseIRI, parentContext, external, processingMode = ContextParser.DEFAULT_PROCESSING_MODE, normalizeLanguageTags, ignoreProtection, minimalProcessing, } = options;\n        const remoteContexts = options.remoteContexts || {};\n        // Avoid remote context overflows\n        if (Object.keys(remoteContexts).length >= this.remoteContextsDepthLimit) {\n            throw new ErrorCoded_1.ErrorCoded('Detected an overflow in remote context inclusions: ' + Object.keys(remoteContexts), ErrorCoded_1.ERROR_CODES.CONTEXT_OVERFLOW);\n        }\n        if (context === null || context === undefined) {\n            // Don't allow context nullification and there are protected terms\n            if (!ignoreProtection && parentContext && Util_1.Util.hasProtectedTerms(parentContext)) {\n                throw new ErrorCoded_1.ErrorCoded('Illegal context nullification when terms are protected', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_NULLIFICATION);\n            }\n            // Context that are explicitly set to null are empty.\n            return new JsonLdContextNormalized_1.JsonLdContextNormalized(this.applyBaseEntry({}, options, false));\n        }\n        else if (typeof context === 'string') {\n            const contextIri = this.normalizeContextIri(context, baseIRI);\n            const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n            if (overriddenLoad) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(overriddenLoad);\n            }\n            const parsedStringContext = await this.parse(await this.load(contextIri), Object.assign(Object.assign({}, options), { baseIRI: contextIri, external: true, remoteContexts: Object.assign(Object.assign({}, remoteContexts), { [contextIri]: true }) }));\n            this.applyBaseEntry(parsedStringContext.getContextRaw(), options, true);\n            return parsedStringContext;\n        }\n        else if (Array.isArray(context)) {\n            // As a performance consideration, first load all external contexts in parallel.\n            const contextIris = [];\n            const contexts = await Promise.all(context.map((subContext, i) => {\n                if (typeof subContext === 'string') {\n                    const contextIri = this.normalizeContextIri(subContext, baseIRI);\n                    contextIris[i] = contextIri;\n                    const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n                    if (overriddenLoad) {\n                        return overriddenLoad;\n                    }\n                    return this.load(contextIri);\n                }\n                else {\n                    return subContext;\n                }\n            }));\n            // Don't apply inheritance logic on minimal processing\n            if (minimalProcessing) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(contexts);\n            }\n            const reducedContexts = await contexts.reduce((accContextPromise, contextEntry, i) => accContextPromise\n                .then((accContext) => this.parse(contextEntry, Object.assign(Object.assign({}, options), { baseIRI: contextIris[i] || options.baseIRI, external: !!contextIris[i] || options.external, parentContext: accContext.getContextRaw(), remoteContexts: contextIris[i] ? Object.assign(Object.assign({}, remoteContexts), { [contextIris[i]]: true }) : remoteContexts }), \n            // @ts-expect-error: This third argument causes a type error because we have hidden it from consumers\n            {\n                skipValidation: i < contexts.length - 1,\n            })), Promise.resolve(new JsonLdContextNormalized_1.JsonLdContextNormalized(parentContext || {})));\n            // Override the base IRI if provided.\n            this.applyBaseEntry(reducedContexts.getContextRaw(), options, true);\n            return reducedContexts;\n        }\n        else if (typeof context === 'object') {\n            if ('@context' in context) {\n                return await this.parse(context['@context'], options);\n            }\n            // Make a deep clone of the given context, to avoid modifying it.\n            context = Object.assign({}, context);\n            // According to the JSON-LD spec, @base must be ignored from external contexts.\n            if (external) {\n                delete context['@base'];\n            }\n            // Override the base IRI if provided.\n            this.applyBaseEntry(context, options, true);\n            // Hashify container entries\n            // Do this before protected term validation as that influences term format\n            this.containersToHash(context);\n            // Don't perform any other modifications if only minimal processing is needed.\n            if (minimalProcessing) {\n                return new JsonLdContextNormalized_1.JsonLdContextNormalized(context);\n            }\n            // In JSON-LD 1.1, load @import'ed context prior to processing.\n            let importContext = {};\n            if ('@import' in context) {\n                if (processingMode >= 1.1) {\n                    // Only accept string values\n                    if (typeof context['@import'] !== 'string') {\n                        throw new ErrorCoded_1.ErrorCoded('An @import value must be a string, but got ' + typeof context['@import'], ErrorCoded_1.ERROR_CODES.INVALID_IMPORT_VALUE);\n                    }\n                    // Load context\n                    importContext = await this.loadImportContext(this.normalizeContextIri(context['@import'], baseIRI));\n                    delete context['@import'];\n                }\n                else {\n                    throw new ErrorCoded_1.ErrorCoded('Context importing is not supported in JSON-LD 1.0', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n                }\n            }\n            this.applyScopedProtected(importContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n            const newContext = Object.assign(importContext, context);\n            // Handle terms (before protection checks)\n            this.idifyReverseTerms(newContext);\n            this.normalize(newContext, { processingMode, normalizeLanguageTags });\n            this.applyScopedProtected(newContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n            const keys = Object.keys(newContext);\n            const overlappingKeys = [];\n            if (typeof parentContext === 'object') {\n                // Merge different parts of the final context in order\n                for (const key in parentContext) {\n                    if (key in newContext) {\n                        overlappingKeys.push(key);\n                    }\n                    else {\n                        newContext[key] = parentContext[key];\n                    }\n                }\n            }\n            // Parse inner contexts with minimal processing\n            await this.parseInnerContexts(newContext, options, keys);\n            const newContextWrapped = new JsonLdContextNormalized_1.JsonLdContextNormalized(newContext);\n            // In JSON-LD 1.1, @vocab can be relative to @vocab in the parent context, or a compact IRI.\n            if ((newContext && newContext['@version'] || ContextParser.DEFAULT_PROCESSING_MODE) >= 1.1\n                && ((context['@vocab'] && typeof context['@vocab'] === 'string') || context['@vocab'] === '')) {\n                if (parentContext && '@vocab' in parentContext && context['@vocab'].indexOf(':') < 0) {\n                    newContext['@vocab'] = parentContext['@vocab'] + context['@vocab'];\n                }\n                else if (Util_1.Util.isCompactIri(context['@vocab']) || context['@vocab'] in newContext) {\n                    // @vocab is a compact IRI or refers exactly to a prefix\n                    newContext['@vocab'] = newContextWrapped.expandTerm(context['@vocab'], true);\n                }\n            }\n            this.expandPrefixedTerms(newContextWrapped, this.expandContentTypeToBase, keys);\n            // In JSON-LD 1.1, check if we are not redefining any protected keywords\n            if (!ignoreProtection && parentContext && processingMode >= 1.1) {\n                this.validateKeywordRedefinitions(parentContext, newContext, JsonLdContextNormalized_1.defaultExpandOptions, overlappingKeys);\n            }\n            if (this.validateContext && !internalOptions.skipValidation) {\n                this.validate(newContext, { processingMode });\n            }\n            return newContextWrapped;\n        }\n        else {\n            throw new ErrorCoded_1.ErrorCoded(`Tried parsing a context that is not a string, array or object, but got ${context}`, ErrorCoded_1.ERROR_CODES.INVALID_LOCAL_CONTEXT);\n        }\n    }\n    /**\n     * Fetch the given URL as a raw JSON-LD context.\n     * @param url An URL.\n     * @return A promise resolving to a raw JSON-LD context.\n     */\n    async load(url) {\n        // First try to retrieve the context from cache\n        const cached = this.documentCache[url];\n        if (cached) {\n            return cached;\n        }\n        // If not in cache, load it\n        let document;\n        try {\n            document = await this.documentLoader.load(url);\n        }\n        catch (e) {\n            throw new ErrorCoded_1.ErrorCoded(`Failed to load remote context ${url}: ${e.message}`, ErrorCoded_1.ERROR_CODES.LOADING_REMOTE_CONTEXT_FAILED);\n        }\n        // Validate the context\n        if (!('@context' in document)) {\n            throw new ErrorCoded_1.ErrorCoded(`Missing @context in remote context at ${url}`, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n        }\n        return this.documentCache[url] = document['@context'];\n    }\n    /**\n     * Override the given context that may be loaded.\n     *\n     * This will check whether or not the url is recursively being loaded.\n     * @param url An URL.\n     * @param options Parsing options.\n     * @return An overridden context, or null.\n     *         Optionally an error can be thrown if a cyclic context is detected.\n     */\n    getOverriddenLoad(url, options) {\n        if (url in (options.remoteContexts || {})) {\n            if (options.ignoreRemoteScopedContexts) {\n                return url;\n            }\n            else {\n                throw new ErrorCoded_1.ErrorCoded('Detected a cyclic context inclusion of ' + url, ErrorCoded_1.ERROR_CODES.RECURSIVE_CONTEXT_INCLUSION);\n            }\n        }\n        return null;\n    }\n    /**\n     * Load an @import'ed context.\n     * @param importContextIri The full URI of an @import value.\n     */\n    async loadImportContext(importContextIri) {\n        // Load the context - and do a deep clone since we are about to mutate it\n        let importContext = await this.load(importContextIri);\n        // Require the context to be a non-array object\n        if (typeof importContext !== 'object' || Array.isArray(importContext)) {\n            throw new ErrorCoded_1.ErrorCoded('An imported context must be a single object: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n        }\n        // Error if the context contains another @import\n        if ('@import' in importContext) {\n            throw new ErrorCoded_1.ErrorCoded('An imported context can not import another context: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n        }\n        importContext = Object.assign({}, importContext);\n        // Containers have to be converted into hash values the same way as for the importing context\n        // Otherwise context validation will fail for container values\n        this.containersToHash(importContext);\n        return importContext;\n    }\n}\nContextParser.DEFAULT_PROCESSING_MODE = 1.1;\nexports.ContextParser = ContextParser;\n//# sourceMappingURL=ContextParser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IDocumentLoader.js.map","\"use strict\";\n// tslint:disable:max-line-length\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=JsonLdContext.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/ContextParser\"), exports);\n__exportStar(require(\"./lib/ErrorCoded\"), exports);\n__exportStar(require(\"./lib/FetchDocumentLoader\"), exports);\n__exportStar(require(\"./lib/IDocumentLoader\"), exports);\n__exportStar(require(\"./lib/JsonLdContext\"), exports);\n__exportStar(require(\"./lib/JsonLdContextNormalized\"), exports);\n__exportStar(require(\"./lib/Util\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DocumentLoaderMediated = void 0;\nconst bus_http_1 = require(\"@comunica/bus-http\");\nconst stream_to_string_1 = require(\"@jeswr/stream-to-string\");\nconst jsonld_context_parser_1 = require(\"jsonld-context-parser\");\n/**\n * A JSON-LD document loader that fetches over an HTTP bus using a given mediator.\n */\nclass DocumentLoaderMediated extends jsonld_context_parser_1.FetchDocumentLoader {\n    constructor(mediatorHttp, context) {\n        super(DocumentLoaderMediated.createFetcher(mediatorHttp, context));\n        this.mediatorHttp = mediatorHttp;\n        this.context = context;\n    }\n    static createFetcher(mediatorHttp, context) {\n        return async (url, init) => {\n            const response = await mediatorHttp.mediate({ input: url, init, context });\n            response.json = async () => JSON.parse(await (0, stream_to_string_1.stringify)(bus_http_1.ActorHttp.toNodeReadable(response.body)));\n            return response;\n        };\n    }\n}\nexports.DocumentLoaderMediated = DocumentLoaderMediated;\n//# sourceMappingURL=DocumentLoaderMediated.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfParseJsonLd = void 0;\nconst bus_rdf_parse_1 = require(\"@comunica/bus-rdf-parse\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst jsonld_streaming_parser_1 = require(\"jsonld-streaming-parser\");\nconst DocumentLoaderMediated_1 = require(\"./DocumentLoaderMediated\");\n/**\n * A JSON-LD RDF Parse actor that listens on the 'rdf-parse' bus.\n *\n * It is able to parse JSON-LD-based RDF serializations and announce the presence of them by media type.\n */\nclass ActorRdfParseJsonLd extends bus_rdf_parse_1.ActorRdfParseFixedMediaTypes {\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"application/ld+json\": 1.0,\n     *       \"application/json\": 0.15\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"application/ld+json\": \"http://www.w3.org/ns/formats/JSON-LD\",\n     *       \"application/json\": \"http://www.w3.org/ns/formats/JSON-LD\"\n     *     }} mediaTypeFormats\n     */\n    constructor(args) {\n        super(args);\n    }\n    async testHandle(action, mediaType, context) {\n        if (context.has(context_entries_1.KeysRdfParseHtmlScript.processingHtmlScript) && mediaType !== 'application/ld+json') {\n            return (0, core_1.failTest)(`JSON-LD in script tags can only have media type 'application/ld+json'`);\n        }\n        if (!mediaType || !(mediaType in this.mediaTypePriorities || mediaType.endsWith('+json'))) {\n            return (0, core_1.failTest)(`Unrecognized media type: ${mediaType}`);\n        }\n        return await this.testHandleChecked(action);\n    }\n    async runHandle(action, mediaType, actionContext) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const parser = jsonld_streaming_parser_1.JsonLdParser.fromHttpResponse(action.metadata?.baseIRI ?? '', mediaType, action.headers, {\n            dataFactory,\n            documentLoader: actionContext.get(context_entries_1.KeysRdfParseJsonLd.documentLoader) ??\n                new DocumentLoaderMediated_1.DocumentLoaderMediated(this.mediatorHttp, actionContext),\n            strictValues: actionContext.get(context_entries_1.KeysRdfParseJsonLd.strictValues),\n            ...actionContext.get(context_entries_1.KeysRdfParseJsonLd.parserOptions),\n        });\n        const data = parser.import(action.data);\n        return { data };\n    }\n}\nexports.ActorRdfParseJsonLd = ActorRdfParseJsonLd;\n//# sourceMappingURL=ActorRdfParseJsonLd.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfParseJsonLd\"), exports);\n__exportStar(require(\"./DocumentLoaderMediated\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfUpdateHypermedia = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for rdf-update-hypermedia events.\n *\n * Actor types:\n * * Input:  IActionRdfUpdateHypermedia:      The metadata in the document.\n * * Test:   <none>\n * * Output: IActorRdfUpdateHypermediaOutput: An RDF destination.\n *\n * @see IActionRdfUpdateHypermedia\n * @see IActorRdfUpdateHypermediaOutput\n */\nclass ActorRdfUpdateHypermedia extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {RDF hypermedia updating failed: none of the configured actors were able to handle an update for ${action.url}} busFailMessage\n     * @param destinationType - The destination type.\n     */\n    /* eslint-enable max-len */\n    constructor(args, destinationType) {\n        super(args);\n        this.destinationType = destinationType;\n    }\n    async test(action) {\n        if (action.forceDestinationType && this.destinationType !== action.forceDestinationType) {\n            return (0, core_1.failTest)(`Actor ${this.name} is not able to handle destination type ${action.forceDestinationType}.`);\n        }\n        return this.testMetadata(action);\n    }\n}\nexports.ActorRdfUpdateHypermedia = ActorRdfUpdateHypermedia;\n//# sourceMappingURL=ActorRdfUpdateHypermedia.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfUpdateHypermedia\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuadDestinationPatchSparqlUpdate = void 0;\nconst bus_http_1 = require(\"@comunica/bus-http\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_string_ttl_1 = require(\"rdf-string-ttl\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A quad destination that represents a resource that is patchable via SPARQL Update.\n */\nclass QuadDestinationPatchSparqlUpdate {\n    constructor(url, context, mediatorHttp) {\n        this.url = url;\n        this.context = context;\n        this.mediatorHttp = mediatorHttp;\n    }\n    async update(quadStreams) {\n        // Create combined query stream with quads to insert and delete\n        const queryStream = this.createCombinedQuadsQuery(quadStreams.insert, quadStreams.delete);\n        await this.wrapSparqlUpdateRequest(queryStream);\n    }\n    createCombinedQuadsQuery(quadsToInsert, quadsToDelete) {\n        return new asynciterator_1.ArrayIterator([], { autoStart: false })\n            .append(this.createQuadsQuery('DELETE', quadsToDelete))\n            .append(quadsToDelete && quadsToInsert ? [' ;\\n'] : [])\n            .append(this.createQuadsQuery('INSERT', quadsToInsert));\n    }\n    createQuadsQuery(type, quads) {\n        if (!quads) {\n            return new asynciterator_1.ArrayIterator([], { autoStart: false });\n        }\n        // Wrap triples in DATA block\n        return quads\n            .map((quad) => {\n            let stringQuad = `${(0, rdf_string_ttl_1.termToString)(quad.subject)} ${(0, rdf_string_ttl_1.termToString)(quad.predicate)} ${(0, rdf_string_ttl_1.termToString)(quad.object)} .`;\n            if (quad.graph.termType === 'DefaultGraph') {\n                stringQuad = `  ${stringQuad}\\n`;\n            }\n            else {\n                stringQuad = `  GRAPH ${(0, rdf_string_ttl_1.termToString)(quad.graph)} { ${stringQuad} }\\n`;\n            }\n            return stringQuad;\n        })\n            .prepend([`${type} DATA {\\n`])\n            .append(['}']);\n    }\n    async wrapSparqlUpdateRequest(queryStream) {\n        const readable = new readable_stream_1.Readable();\n        readable.wrap(queryStream);\n        // Send data in PUT request\n        const headers = new Headers({ 'content-type': 'application/sparql-update' });\n        const httpResponse = await this.mediatorHttp.mediate({\n            context: this.context,\n            init: {\n                headers,\n                method: 'PATCH',\n                body: bus_http_1.ActorHttp.toWebReadableStream(readable),\n            },\n            input: this.url,\n        });\n        await (0, bus_http_1.validateAndCloseHttpResponse)(this.url, httpResponse);\n    }\n    async deleteGraphs(_graphs, _requireExistence, _dropGraphs) {\n        throw new Error(`Patch-based SPARQL Update destinations don't support named graphs`);\n    }\n    async createGraphs(_graphs, _requireNonExistence) {\n        throw new Error(`Patch-based SPARQL Update destinations don't support named graphs`);\n    }\n}\nexports.QuadDestinationPatchSparqlUpdate = QuadDestinationPatchSparqlUpdate;\n//# sourceMappingURL=QuadDestinationPatchSparqlUpdate.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfUpdateHypermediaPatchSparqlUpdate = void 0;\nconst bus_rdf_update_hypermedia_1 = require(\"@comunica/bus-rdf-update-hypermedia\");\nconst core_1 = require(\"@comunica/core\");\nconst QuadDestinationPatchSparqlUpdate_1 = require(\"./QuadDestinationPatchSparqlUpdate\");\n/**\n * A comunica Patch SPARQL Update RDF Update Hypermedia Actor.\n */\nclass ActorRdfUpdateHypermediaPatchSparqlUpdate extends bus_rdf_update_hypermedia_1.ActorRdfUpdateHypermedia {\n    constructor(args) {\n        super(args, 'patchSparqlUpdate');\n    }\n    async testMetadata(action) {\n        if (!action.forceDestinationType && !action.metadata.patchSparqlUpdate) {\n            return (0, core_1.failTest)(`Actor ${this.name} could not detect a destination with 'application/sparql-update' as 'Accept-Patch' header.`);\n        }\n        if (!action.forceDestinationType && !action.exists) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only patch a destination that already exists.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        this.logInfo(action.context, `Identified as patchSparqlUpdate destination: ${action.url}`);\n        return {\n            destination: new QuadDestinationPatchSparqlUpdate_1.QuadDestinationPatchSparqlUpdate(action.url, action.context, this.mediatorHttp),\n        };\n    }\n}\nexports.ActorRdfUpdateHypermediaPatchSparqlUpdate = ActorRdfUpdateHypermediaPatchSparqlUpdate;\n//# sourceMappingURL=ActorRdfUpdateHypermediaPatchSparqlUpdate.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfUpdateHypermediaPatchSparqlUpdate\"), exports);\n__exportStar(require(\"./QuadDestinationPatchSparqlUpdate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuadDestinationPutLdp = void 0;\nconst bus_http_1 = require(\"@comunica/bus-http\");\n/**\n * A quad destination that represents a resource that can be PUT.\n */\nclass QuadDestinationPutLdp {\n    constructor(url, context, mediaTypes, mediatorHttp, mediatorRdfSerializeMediatypes, mediatorRdfSerialize) {\n        this.url = url;\n        this.context = context;\n        this.mediaTypes = mediaTypes;\n        this.mediatorHttp = mediatorHttp;\n        this.mediatorRdfSerializeMediatypes = mediatorRdfSerializeMediatypes;\n        this.mediatorRdfSerialize = mediatorRdfSerialize;\n    }\n    async update(quadStreams) {\n        if (quadStreams.delete) {\n            throw new Error(`Put-based LDP destinations don't support deletions`);\n        }\n        if (quadStreams.insert) {\n            await this.wrapRdfUpdateRequest('INSERT', quadStreams.insert);\n        }\n    }\n    async wrapRdfUpdateRequest(type, quads) {\n        // Determine media type for serialization\n        const { mediaTypes } = await this.mediatorRdfSerializeMediatypes.mediate({ context: this.context, mediaTypes: true });\n        const availableMediaTypes = this.mediaTypes\n            .filter(mediaType => mediaType in mediaTypes);\n        // Fallback to our own preferred media type\n        const mediaType = availableMediaTypes.length > 0 ?\n            availableMediaTypes[0] :\n            Object.keys(mediaTypes).sort((typeA, typeB) => mediaTypes[typeB] - mediaTypes[typeA])[0];\n        // Serialize quads\n        const { handle: { data } } = await this.mediatorRdfSerialize.mediate({\n            context: this.context,\n            handle: { quadStream: quads, context: this.context },\n            handleMediaType: mediaType,\n        });\n        // Send data in (LDP) PUT request\n        const headers = new Headers({ 'content-type': mediaType });\n        const httpResponse = await this.mediatorHttp.mediate({\n            context: this.context,\n            init: {\n                headers,\n                method: 'PUT',\n                body: bus_http_1.ActorHttp.toWebReadableStream(data),\n            },\n            input: this.url,\n        });\n        await (0, bus_http_1.validateAndCloseHttpResponse)(this.url, httpResponse);\n    }\n    async deleteGraphs(_graphs, _requireExistence, _dropGraphs) {\n        throw new Error(`Put-based LDP destinations don't support named graphs`);\n    }\n    async createGraphs(_graphs, _requireNonExistence) {\n        throw new Error(`Put-based LDP destinations don't support named graphs`);\n    }\n}\nexports.QuadDestinationPutLdp = QuadDestinationPutLdp;\n//# sourceMappingURL=QuadDestinationPutLdp.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfUpdateHypermediaPutLdp = void 0;\nconst bus_rdf_update_hypermedia_1 = require(\"@comunica/bus-rdf-update-hypermedia\");\nconst core_1 = require(\"@comunica/core\");\nconst QuadDestinationPutLdp_1 = require(\"./QuadDestinationPutLdp\");\n/**\n * A comunica Post LDP RDF Update Hypermedia Actor.\n */\nclass ActorRdfUpdateHypermediaPutLdp extends bus_rdf_update_hypermedia_1.ActorRdfUpdateHypermedia {\n    constructor(args) {\n        super(args, 'putLdp');\n    }\n    async testMetadata(action) {\n        if (!action.forceDestinationType) {\n            if (!action.metadata.allowHttpMethods || !action.metadata.allowHttpMethods.includes('PUT')) {\n                return (0, core_1.failTest)(`Actor ${this.name} could not detect a destination with 'Allow: PUT' header.`);\n            }\n            if (action.exists) {\n                return (0, core_1.failTest)(`Actor ${this.name} can only put on a destination that does not already exists.`);\n            }\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        this.logInfo(action.context, `Identified as putLdp destination: ${action.url}`);\n        return {\n            destination: new QuadDestinationPutLdp_1.QuadDestinationPutLdp(action.url, action.context, action.metadata.putAccepted || [], this.mediatorHttp, this.mediatorRdfSerializeMediatypes, this.mediatorRdfSerialize),\n        };\n    }\n}\nexports.ActorRdfUpdateHypermediaPutLdp = ActorRdfUpdateHypermediaPutLdp;\n//# sourceMappingURL=ActorRdfUpdateHypermediaPutLdp.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfUpdateHypermediaPutLdp\"), exports);\n__exportStar(require(\"./QuadDestinationPutLdp\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SparqlXmlParser = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst saxes_1 = require(\"@rubensworks/saxes\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * Parser for the SPARQL Query Results XML format.\n * @see https://www.w3.org/TR/rdf-sparql-XMLres/\n */\nclass SparqlXmlParser {\n    constructor(settings) {\n        settings = settings || {};\n        this.dataFactory = settings.dataFactory || new rdf_data_factory_1.DataFactory();\n        this.prefixVariableQuestionMark = !!settings.prefixVariableQuestionMark;\n    }\n    /**\n     * Convert a SPARQL XML bindings response stream to a stream of bindings objects.\n     *\n     * The bindings stream will emit a 'variables' event that will contain\n     * the array of variables (as RDF.Variable[]), as defined in the response head.\n     *\n     * @param {NodeJS.ReadableStream} sparqlResponseStream A SPARQL XML response stream.\n     * @return {NodeJS.ReadableStream} A stream of bindings.\n     */\n    parseXmlResultsStream(sparqlResponseStream) {\n        const errorListener = (error) => resultStream.emit('error', error);\n        sparqlResponseStream.on('error', errorListener);\n        const parser = new saxes_1.SaxesParser();\n        const stack = [];\n        let variablesFound = false;\n        let resultsFound = false;\n        const variables = [];\n        let currentBindings = {};\n        let currentBindingName = '';\n        let currentBindingType = '';\n        let currentBindingAnnotation;\n        let currentText = '';\n        let currentQuotedTriples = [];\n        parser.on(\"error\", errorListener);\n        parser.on(\"opentag\", tag => {\n            if (tag.name === \"variable\" && this.stackEquals(stack, ['sparql', 'head'])) {\n                variables.push(this.dataFactory.variable(tag.attributes.name));\n            }\n            else if (tag.name === \"results\" && this.stackEquals(stack, ['sparql'])) {\n                resultsFound = true;\n            }\n            else if (tag.name === 'result' && this.stackEquals(stack, ['sparql', 'results'])) {\n                currentBindings = {};\n            }\n            else if (tag.name === 'binding' && this.stackEquals(stack, ['sparql', 'results', 'result'])) {\n                currentBindingName = tag.attributes.name || '';\n                currentBindingType = '';\n                currentBindingAnnotation = '';\n                currentText = '';\n                currentQuotedTriples = [];\n            }\n            else if (tag.name === 'triple' && this.stackBeginsWith(stack, ['sparql', 'results', 'result'])) {\n                currentQuotedTriples.push({ components: {} });\n            }\n            else if (stack[stack.length - 1] === 'triple' && this.stackBeginsWith(stack, ['sparql', 'results', 'result', 'binding'])) {\n                currentBindingType = '';\n                currentBindingAnnotation = '';\n                currentText = '';\n                if (!['subject', 'predicate', 'object'].includes(tag.name)) {\n                    errorListener(new Error(`Illegal quoted triple component '${tag.name}' found on line ${parser.line + 1}`));\n                }\n                else {\n                    currentQuotedTriples[currentQuotedTriples.length - 1].currentComponent = tag.name;\n                }\n            }\n            else if (this.stackBeginsWith(stack, ['sparql', 'results', 'result', 'binding'])) {\n                currentBindingType = tag.name;\n                if ('xml:lang' in tag.attributes) {\n                    currentBindingAnnotation = tag.attributes['xml:lang'];\n                }\n                else if ('datatype' in tag.attributes) {\n                    currentBindingAnnotation = this.dataFactory.namedNode(tag.attributes.datatype);\n                }\n                else {\n                    currentBindingAnnotation = undefined;\n                }\n            }\n            stack.push(tag.name);\n        });\n        parser.on(\"closetag\", tag => {\n            if (this.stackEquals(stack, ['sparql', 'head'])) {\n                resultStream.emit(\"variables\", variables);\n                variablesFound = true;\n            }\n            if (this.stackEquals(stack, ['sparql', 'results', 'result'])) {\n                resultStream.push(currentBindings);\n            }\n            if (this.stackBeginsWith(stack, ['sparql', 'results', 'result', 'binding'])) {\n                // Determine current RDF term value\n                let term;\n                if (!currentBindingName && currentBindingType) {\n                    errorListener(new Error(`Terms should have a name on line ${parser.line + 1}`));\n                }\n                else if (currentBindingType === 'uri') {\n                    term = this.dataFactory.namedNode(currentText);\n                }\n                else if (currentBindingType === 'bnode') {\n                    term = this.dataFactory.blankNode(currentText);\n                }\n                else if (currentBindingType === 'literal') {\n                    term = this.dataFactory.literal(currentText, currentBindingAnnotation);\n                }\n                else if (stack[stack.length - 1] === 'triple') {\n                    const currentQuotedTriple = currentQuotedTriples.pop();\n                    if (currentQuotedTriple && currentQuotedTriple.components.subject && currentQuotedTriple.components.predicate && currentQuotedTriple.components.object) {\n                        term = this.dataFactory.quad(currentQuotedTriple.components.subject, currentQuotedTriple.components.predicate, currentQuotedTriple.components.object);\n                    }\n                    else {\n                        errorListener(new Error(`Incomplete quoted triple on line ${parser.line + 1}`));\n                    }\n                }\n                else if (currentBindingType) {\n                    errorListener(new Error(`Invalid term type '${currentBindingType}' on line ${parser.line + 1}`));\n                }\n                if (term) {\n                    if (currentQuotedTriples.length > 0) {\n                        // If we're in a quoted triple, store the term inside the active quoted triple\n                        const currentQuotedTriple = currentQuotedTriples[currentQuotedTriples.length - 1];\n                        if (currentQuotedTriple.components[currentQuotedTriple.currentComponent]) {\n                            errorListener(new Error(`The ${currentQuotedTriple.currentComponent} in a quoted triple on line ${parser.line + 1} was already defined before`));\n                        }\n                        currentQuotedTriple.components[currentQuotedTriple.currentComponent] = term;\n                    }\n                    else {\n                        // Store the value in the current bindings object\n                        const key = this.prefixVariableQuestionMark ? ('?' + currentBindingName) : currentBindingName;\n                        currentBindings[key] = term;\n                    }\n                }\n                currentBindingType = undefined;\n            }\n            stack.pop();\n        });\n        parser.on(\"text\", text => {\n            if (this.stackBeginsWith(stack, ['sparql', 'results', 'result', 'binding']) && stack[stack.length - 1] === currentBindingType) {\n                currentText = text;\n            }\n        });\n        const resultStream = sparqlResponseStream\n            .on(\"end\", _ => {\n            if (!resultsFound) {\n                resultStream.emit(\"error\", new Error(\"No valid SPARQL query results were found.\"));\n            }\n            else if (!variablesFound) {\n                resultStream.emit('variables', []);\n            }\n        })\n            .pipe(new readable_stream_1.Transform({\n            objectMode: true,\n            transform(chunk, encoding, callback) {\n                parser.write(chunk);\n                callback();\n            }\n        }));\n        return resultStream;\n    }\n    /**\n     * Convert a SPARQL XML boolean response stream to a promise resolving to a boolean.\n     * This will reject if the given response was not a valid boolean response.\n     * @param {NodeJS.ReadableStream} sparqlResponseStream A SPARQL XML response stream.\n     * @return {Promise<boolean>} The response boolean.\n     */\n    parseXmlBooleanStream(sparqlResponseStream) {\n        return new Promise((resolve, reject) => {\n            const parser = new saxes_1.SaxesParser();\n            const stack = [];\n            parser.on(\"error\", reject);\n            parser.on(\"opentag\", tag => {\n                stack.push(tag.name);\n            });\n            parser.on(\"closetag\", _ => {\n                stack.pop();\n            });\n            parser.on(\"text\", text => {\n                if (this.stackEquals(stack, ['sparql', 'boolean'])) {\n                    resolve(text === 'true');\n                }\n            });\n            sparqlResponseStream\n                .on('error', reject)\n                .on('data', d => parser.write(d))\n                .on('end', () => reject(new Error('No valid ASK response was found.')));\n        });\n    }\n    stackEquals(a, b) {\n        return a.length === b.length && a.every((v, i) => b[i] === v);\n    }\n    stackBeginsWith(a, b) {\n        return a.length >= b.length && b.every((v, i) => a[i] === v);\n    }\n}\nexports.SparqlXmlParser = SparqlXmlParser;\n//# sourceMappingURL=SparqlXmlParser.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/SparqlXmlParser\"), exports);\n//# sourceMappingURL=index.js.map","(function() {\n    var root;\n\n\tif (typeof window === 'object' && window) {\n\t\troot = window;\n\t} else {\n\t\troot = global;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = root.Promise ? root.Promise : Promise;\n\t} else if (!root.Promise) {\n\t\troot.Promise = Promise;\n\t}\n\n\t// Use polyfill for setImmediate for performance gains\n\tvar asap = root.setImmediate || function(fn) { setTimeout(fn, 1); };\n\n\t// Polyfill for Function.prototype.bind\n\tfunction bind(fn, thisArg) {\n\t\treturn function() {\n\t\t\tfn.apply(thisArg, arguments);\n\t\t}\n\t}\n\n\tvar isArray = Array.isArray || function(value) { return Object.prototype.toString.call(value) === \"[object Array]\" };\n\n\tfunction Promise(fn) {\n\t\tif (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');\n\t\tif (typeof fn !== 'function') throw new TypeError('not a function');\n\t\tthis._state = null;\n\t\tthis._value = null;\n\t\tthis._deferreds = []\n\n\t\tdoResolve(fn, bind(resolve, this), bind(reject, this))\n\t}\n\n\tfunction handle(deferred) {\n\t\tvar me = this;\n\t\tif (this._state === null) {\n\t\t\tthis._deferreds.push(deferred);\n\t\t\treturn\n\t\t}\n\t\tasap(function() {\n\t\t\tvar cb = me._state ? deferred.onFulfilled : deferred.onRejected\n\t\t\tif (cb === null) {\n\t\t\t\t(me._state ? deferred.resolve : deferred.reject)(me._value);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar ret;\n\t\t\ttry {\n\t\t\t\tret = cb(me._value);\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\tdeferred.reject(e);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdeferred.resolve(ret);\n\t\t})\n\t}\n\n\tfunction resolve(newValue) {\n\t\ttry { //Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n\t\t\tif (newValue === this) throw new TypeError('A promise cannot be resolved with itself.');\n\t\t\tif (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n\t\t\t\tvar then = newValue.then;\n\t\t\t\tif (typeof then === 'function') {\n\t\t\t\t\tdoResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._state = true;\n\t\t\tthis._value = newValue;\n\t\t\tfinale.call(this);\n\t\t} catch (e) { reject.call(this, e); }\n\t}\n\n\tfunction reject(newValue) {\n\t\tthis._state = false;\n\t\tthis._value = newValue;\n\t\tfinale.call(this);\n\t}\n\n\tfunction finale() {\n\t\tfor (var i = 0, len = this._deferreds.length; i < len; i++) {\n\t\t\thandle.call(this, this._deferreds[i]);\n\t\t}\n\t\tthis._deferreds = null;\n\t}\n\n\tfunction Handler(onFulfilled, onRejected, resolve, reject){\n\t\tthis.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n\t\tthis.onRejected = typeof onRejected === 'function' ? onRejected : null;\n\t\tthis.resolve = resolve;\n\t\tthis.reject = reject;\n\t}\n\n\t/**\n\t * Take a potentially misbehaving resolver function and make sure\n\t * onFulfilled and onRejected are only called once.\n\t *\n\t * Makes no guarantees about asynchrony.\n\t */\n\tfunction doResolve(fn, onFulfilled, onRejected) {\n\t\tvar done = false;\n\t\ttry {\n\t\t\tfn(function (value) {\n\t\t\t\tif (done) return;\n\t\t\t\tdone = true;\n\t\t\t\tonFulfilled(value);\n\t\t\t}, function (reason) {\n\t\t\t\tif (done) return;\n\t\t\t\tdone = true;\n\t\t\t\tonRejected(reason);\n\t\t\t})\n\t\t} catch (ex) {\n\t\t\tif (done) return;\n\t\t\tdone = true;\n\t\t\tonRejected(ex);\n\t\t}\n\t}\n\n\tPromise.prototype['catch'] = function (onRejected) {\n\t\treturn this.then(null, onRejected);\n\t};\n\n\tPromise.prototype.then = function(onFulfilled, onRejected) {\n\t\tvar me = this;\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\thandle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\n\t\t})\n\t};\n\n\tPromise.all = function () {\n\t\tvar args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);\n\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tif (args.length === 0) return resolve([]);\n\t\t\tvar remaining = args.length;\n\t\t\tfunction res(i, val) {\n\t\t\t\ttry {\n\t\t\t\t\tif (val && (typeof val === 'object' || typeof val === 'function')) {\n\t\t\t\t\t\tvar then = val.then;\n\t\t\t\t\t\tif (typeof then === 'function') {\n\t\t\t\t\t\t\tthen.call(val, function (val) { res(i, val) }, reject);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\targs[i] = val;\n\t\t\t\t\tif (--remaining === 0) {\n\t\t\t\t\t\tresolve(args);\n\t\t\t\t\t}\n\t\t\t\t} catch (ex) {\n\t\t\t\t\treject(ex);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i = 0; i < args.length; i++) {\n\t\t\t\tres(i, args[i]);\n\t\t\t}\n\t\t});\n\t};\n\n\tPromise.resolve = function (value) {\n\t\tif (value && typeof value === 'object' && value.constructor === Promise) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn new Promise(function (resolve) {\n\t\t\tresolve(value);\n\t\t});\n\t};\n\n\tPromise.reject = function (value) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\treject(value);\n\t\t});\n\t};\n\n\tPromise.race = function (values) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tfor(var i = 0, len = values.length; i < len; i++) {\n\t\t\t\tvalues[i].then(resolve, reject);\n\t\t\t}\n\t\t});\n\t};\n})();","var Promise = require('promise-polyfill')\n\nmodule.exports = function (stream, enc, cb) {\n    if (typeof enc === 'function') {\n        cb = enc\n        enc = null\n    }\n\n    var str = ''\n\n    var p = new Promise (function (resolve, reject) {\n        stream.on('data', function (data) {\n            str += (typeof enc === 'string') ? data.toString(enc) : data.toString()\n        })\n        stream.on('end', function () {\n            resolve(str)\n        })\n        stream.on('error', reject)\n    })\n    if (cb) {\n        p.then(function (str) { cb(null, str) }, cb)\n    }\n    return p\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SparqlEndpointFetcher = void 0;\nconst isStream = require(\"is-stream\");\nconst n3_1 = require(\"n3\");\nconst readable_from_web_1 = require(\"readable-from-web\");\nconst sparqljs_1 = require(\"sparqljs\");\nconst sparqljson_parse_1 = require(\"sparqljson-parse\");\nconst sparqlxml_parse_1 = require(\"sparqlxml-parse\");\nconst stringifyStream = require(\"stream-to-string\");\n/**\n * A SparqlEndpointFetcher can send queries to SPARQL endpoints,\n * and retrieve and parse the results.\n */\nclass SparqlEndpointFetcher {\n    constructor(args) {\n        var _a, _b, _c;\n        this.method = (_a = args === null || args === void 0 ? void 0 : args.method) !== null && _a !== void 0 ? _a : 'POST';\n        this.timeout = args === null || args === void 0 ? void 0 : args.timeout;\n        this.additionalUrlParams = (_b = args === null || args === void 0 ? void 0 : args.additionalUrlParams) !== null && _b !== void 0 ? _b : new URLSearchParams();\n        this.defaultHeaders = (_c = args === null || args === void 0 ? void 0 : args.defaultHeaders) !== null && _c !== void 0 ? _c : new Headers();\n        this.fetchCb = args === null || args === void 0 ? void 0 : args.fetch;\n        this.sparqlJsonParser = new sparqljson_parse_1.SparqlJsonParser(args);\n        this.sparqlXmlParser = new sparqlxml_parse_1.SparqlXmlParser(args);\n        this.sparqlParsers = {\n            [SparqlEndpointFetcher.CONTENTTYPE_SPARQL_JSON]: {\n                parseBooleanStream: sparqlResponseStream => this.sparqlJsonParser.parseJsonBooleanStream(sparqlResponseStream),\n                parseResultsStream: sparqlResponseStream => this.sparqlJsonParser.parseJsonResultsStream(sparqlResponseStream),\n            },\n            [SparqlEndpointFetcher.CONTENTTYPE_SPARQL_XML]: {\n                parseBooleanStream: sparqlResponseStream => this.sparqlXmlParser.parseXmlBooleanStream(sparqlResponseStream),\n                parseResultsStream: sparqlResponseStream => this.sparqlXmlParser.parseXmlResultsStream(sparqlResponseStream),\n            },\n        };\n    }\n    /**\n     * Get the query type of the given query.\n     *\n     * This will parse the query and thrown an exception on syntax errors.\n     *\n     * @param {string} query A query.\n     * @return {'SELECT' | 'ASK' | 'CONSTRUCT' | 'UNKNOWN'} The query type.\n     */\n    getQueryType(query) {\n        const parsedQuery = new sparqljs_1.Parser({ sparqlStar: true }).parse(query);\n        if (parsedQuery.type === 'query') {\n            return parsedQuery.queryType === 'DESCRIBE' ? 'CONSTRUCT' : parsedQuery.queryType;\n        }\n        return 'UNKNOWN';\n    }\n    /**\n     * Get the query type of the given update query.\n     *\n     * This will parse the update query and thrown an exception on syntax errors.\n     *\n     * @param {string} query An update query.\n     * @return {'UNKNOWN' | UpdateTypes} The included update operations.\n     */\n    getUpdateTypes(query) {\n        const parsedQuery = new sparqljs_1.Parser({ sparqlStar: true }).parse(query);\n        if (parsedQuery.type === 'update') {\n            const operations = {};\n            for (const update of parsedQuery.updates) {\n                if ('type' in update) {\n                    operations[update.type] = true;\n                }\n                else {\n                    operations[update.updateType] = true;\n                }\n            }\n            return operations;\n        }\n        return 'UNKNOWN';\n    }\n    /**\n     * Send a SELECT query to the given endpoint URL and return the resulting bindings stream.\n     * @see IBindings\n     * @param {string} endpoint A SPARQL endpoint URL. (without the `?query=` suffix).\n     * @param {string} query    A SPARQL query string.\n     * @return {Promise<NodeJS.ReadableStream>} A stream of {@link IBindings}.\n     */\n    fetchBindings(endpoint, query) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const [contentType, responseStream] = yield this.fetchRawStream(endpoint, query, SparqlEndpointFetcher.CONTENTTYPE_SPARQL);\n            const parser = this.sparqlParsers[contentType];\n            if (!parser) {\n                throw new Error(`Unknown SPARQL results content type: ${contentType}`);\n            }\n            return parser.parseResultsStream(responseStream);\n        });\n    }\n    /**\n     * Send an ASK query to the given endpoint URL and return a promise resolving to the boolean answer.\n     * @param {string} endpoint A SPARQL endpoint URL. (without the `?query=` suffix).\n     * @param {string} query    A SPARQL query string.\n     * @return {Promise<boolean>} A boolean resolving to the answer.\n     */\n    fetchAsk(endpoint, query) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const [contentType, responseStream] = yield this.fetchRawStream(endpoint, query, SparqlEndpointFetcher.CONTENTTYPE_SPARQL);\n            const parser = this.sparqlParsers[contentType];\n            if (!parser) {\n                throw new Error(`Unknown SPARQL results content type: ${contentType}`);\n            }\n            return parser.parseBooleanStream(responseStream);\n        });\n    }\n    /**\n     * Send a CONSTRUCT/DESCRIBE query to the given endpoint URL and return the resulting triple stream.\n     * @param {string} endpoint A SPARQL endpoint URL. (without the `?query=` suffix).\n     * @param {string} query    A SPARQL query string.\n     * @return {Promise<Stream>} A stream of triples.\n     */\n    fetchTriples(endpoint, query) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const [contentType, responseStream] = yield this.fetchRawStream(endpoint, query, SparqlEndpointFetcher.CONTENTTYPE_TURTLE);\n            return responseStream.pipe(new n3_1.StreamParser({ format: contentType }));\n        });\n    }\n    /**\n     * Send an update query to the given endpoint URL using POST.\n     *\n     * @param {string} endpoint     A SPARQL endpoint URL. (without the `?query=` suffix).\n     * @param {string} query        A SPARQL query string.\n     */\n    fetchUpdate(endpoint, query) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const abortController = new AbortController();\n            const defaultHeadersRaw = {};\n            // Headers object does not have other means to iterate it according to the typings\n            // eslint-disable-next-line unicorn/no-array-for-each\n            this.defaultHeaders.forEach((value, key) => {\n                defaultHeadersRaw[key] = value;\n            });\n            const init = {\n                method: 'POST',\n                headers: Object.assign(Object.assign({}, defaultHeadersRaw), { 'content-type': 'application/sparql-update' }),\n                body: query,\n                signal: abortController.signal,\n            };\n            yield this.handleFetchCall(endpoint, init, { ignoreBody: true });\n            abortController.abort();\n        });\n    }\n    /**\n     * Send a query to the given endpoint URL and return the resulting stream.\n     *\n     * This will only accept responses with the application/sparql-results+json content type.\n     *\n     * @param {string} endpoint     A SPARQL endpoint URL. (without the `?query=` suffix).\n     * @param {string} query        A SPARQL query string.\n     * @param {string} acceptHeader The HTTP accept to use.\n     * @return {Promise<[string, NodeJS.ReadableStream]>} The content type and SPARQL endpoint response stream.\n     */\n    fetchRawStream(endpoint, query, acceptHeader) {\n        return __awaiter(this, void 0, void 0, function* () {\n            let url = this.method === 'POST' ? endpoint : `${endpoint}?query=${encodeURIComponent(query)}`;\n            // Initiate request\n            let body;\n            const headers = new Headers(this.defaultHeaders);\n            headers.append('Accept', acceptHeader);\n            if (this.method === 'POST') {\n                headers.append('Content-Type', 'application/x-www-form-urlencoded');\n                body = new URLSearchParams();\n                body.set('query', query);\n                for (const [key, value] of this.additionalUrlParams.entries()) {\n                    body.set(key, value);\n                }\n                headers.append('Content-Length', body.toString().length.toString());\n            }\n            else if (this.additionalUrlParams.toString().length > 0) {\n                url += `&${this.additionalUrlParams.toString()}`;\n            }\n            return this.handleFetchCall(url, { headers, method: this.method, body });\n        });\n    }\n    /**\n     * Helper function to generalize internal fetch calls.\n     *\n     * @param {string}      url     The URL to call.\n     * @param {RequestInit} init    Options to pass along to the fetch call.\n     * @param {any}         options Other specific fetch options.\n     * @return {Promise<[string, NodeJS.ReadableStream]>} The content type and SPARQL endpoint response stream.\n     */\n    handleFetchCall(url, init, options) {\n        return __awaiter(this, void 0, void 0, function* () {\n            var _a, _b, _c;\n            let timeout;\n            let responseStream;\n            if (this.timeout) {\n                const controller = new AbortController();\n                init.signal = controller.signal;\n                timeout = setTimeout(() => controller.abort(), this.timeout);\n            }\n            const httpResponse = yield ((_a = this.fetchCb) !== null && _a !== void 0 ? _a : fetch)(url, init);\n            clearTimeout(timeout);\n            // Handle response body\n            if (!(options === null || options === void 0 ? void 0 : options.ignoreBody) && httpResponse.body) {\n                // Wrap WhatWG readable stream into a Node.js readable stream\n                // If the body already is a Node.js stream (in the case of node-fetch), don't do explicit conversion.\n                responseStream = (isStream(httpResponse.body) ? httpResponse.body : (0, readable_from_web_1.readableFromWeb)(httpResponse.body));\n            }\n            // Emit an error if the server returned an invalid response\n            if (!httpResponse.ok || (!responseStream && !(options === null || options === void 0 ? void 0 : options.ignoreBody))) {\n                const simpleUrl = url.split('?').at(0);\n                const bodyString = responseStream ? yield stringifyStream(responseStream) : 'empty response';\n                throw new Error(`Invalid SPARQL endpoint response from ${simpleUrl} (HTTP status ${httpResponse.status}):\\n${bodyString}`);\n            }\n            // Determine the content type\n            const contentType = (_c = (_b = httpResponse.headers.get('Content-Type')) === null || _b === void 0 ? void 0 : _b.split(';').at(0)) !== null && _c !== void 0 ? _c : '';\n            return [contentType, responseStream];\n        });\n    }\n}\nexports.SparqlEndpointFetcher = SparqlEndpointFetcher;\nSparqlEndpointFetcher.CONTENTTYPE_SPARQL_JSON = 'application/sparql-results+json';\nSparqlEndpointFetcher.CONTENTTYPE_SPARQL_XML = 'application/sparql-results+xml';\nSparqlEndpointFetcher.CONTENTTYPE_TURTLE = 'text/turtle';\nSparqlEndpointFetcher.CONTENTTYPE_SPARQL = `${SparqlEndpointFetcher.CONTENTTYPE_SPARQL_JSON};q=1.0,${SparqlEndpointFetcher.CONTENTTYPE_SPARQL_XML};q=0.7`;\n//# sourceMappingURL=SparqlEndpointFetcher.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/SparqlEndpointFetcher\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuadDestinationSparql = void 0;\nconst stream_to_string_1 = require(\"@jeswr/stream-to-string\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst fetch_sparql_endpoint_1 = require(\"fetch-sparql-endpoint\");\nconst rdf_string_ttl_1 = require(\"rdf-string-ttl\");\n/**\n * A quad destination that represents an LDP resource.\n */\nclass QuadDestinationSparql {\n    constructor(url, context, mediatorHttp, dataFactory) {\n        this.url = url;\n        this.context = context;\n        this.mediatorHttp = mediatorHttp;\n        this.endpointFetcher = new fetch_sparql_endpoint_1.SparqlEndpointFetcher({\n            fetch: (input, init) => this.mediatorHttp.mediate({ input, init, context: this.context }),\n            prefixVariableQuestionMark: true,\n            dataFactory,\n        });\n    }\n    async update(quadStreams) {\n        // Create combined query stream with quads to insert and delete\n        const queryStream = this.createCombinedQuadsQuery(quadStreams.insert, quadStreams.delete);\n        await this.wrapSparqlUpdateRequest(queryStream);\n    }\n    createCombinedQuadsQuery(quadsToInsert, quadsToDelete) {\n        return new asynciterator_1.ArrayIterator([], { autoStart: false })\n            .append(this.createQuadsQuery('DELETE', quadsToDelete))\n            .append(quadsToDelete && quadsToInsert ? [' ;\\n'] : [])\n            .append(this.createQuadsQuery('INSERT', quadsToInsert));\n    }\n    createQuadsQuery(type, quads) {\n        if (!quads) {\n            return new asynciterator_1.ArrayIterator([], { autoStart: false });\n        }\n        return quads\n            .map((quad) => {\n            let stringQuad = `${(0, rdf_string_ttl_1.termToString)(quad.subject)} ${(0, rdf_string_ttl_1.termToString)(quad.predicate)} ${(0, rdf_string_ttl_1.termToString)(quad.object)} .`;\n            if (quad.graph.termType === 'DefaultGraph') {\n                stringQuad = `  ${stringQuad}\\n`;\n            }\n            else {\n                stringQuad = `  GRAPH ${(0, rdf_string_ttl_1.termToString)(quad.graph)} { ${stringQuad} }\\n`;\n            }\n            return stringQuad;\n        })\n            .prepend([`${type} DATA {\\n`])\n            .append(['}']);\n    }\n    async wrapSparqlUpdateRequest(queryStream) {\n        // Serialize query stream to string\n        const query = await (0, stream_to_string_1.stringify)(queryStream);\n        // Send update query to endpoint\n        await this.endpointFetcher.fetchUpdate(this.url, query);\n    }\n    async deleteGraphs(graphsIn, requireExistence, dropGraphs) {\n        const graphs = Array.isArray(graphsIn) ?\n            graphsIn :\n            [graphsIn];\n        const queries = [];\n        for (const graph of graphs) {\n            let graphValue;\n            if (typeof graph === 'string') {\n                graphValue = graph;\n            }\n            else if (graph.termType === 'DefaultGraph') {\n                graphValue = 'DEFAULT';\n            }\n            else {\n                graphValue = `GRAPH <${graph.value}>`;\n            }\n            queries.push(`${dropGraphs ? 'DROP' : 'CLEAR'} ${requireExistence ? '' : 'SILENT '}${graphValue}`);\n        }\n        await this.endpointFetcher.fetchUpdate(this.url, queries.join('; '));\n    }\n    async createGraphs(graphs, requireNonExistence) {\n        const queries = [];\n        for (const graph of graphs) {\n            queries.push(`CREATE${requireNonExistence ? '' : ' SILENT'} GRAPH <${graph.value}>`);\n        }\n        await this.endpointFetcher.fetchUpdate(this.url, queries.join('; '));\n    }\n}\nexports.QuadDestinationSparql = QuadDestinationSparql;\n//# sourceMappingURL=QuadDestinationSparql.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfUpdateHypermediaSparql = void 0;\nconst bus_rdf_update_hypermedia_1 = require(\"@comunica/bus-rdf-update-hypermedia\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst QuadDestinationSparql_1 = require(\"./QuadDestinationSparql\");\n/**\n * A comunica SPARQL RDF Update Hypermedia Actor.\n */\nclass ActorRdfUpdateHypermediaSparql extends bus_rdf_update_hypermedia_1.ActorRdfUpdateHypermedia {\n    constructor(args) {\n        super(args, 'sparql');\n    }\n    async testMetadata(action) {\n        if (!action.forceDestinationType && !action.metadata.sparqlService &&\n            !(this.checkUrlSuffixSparql && (action.url.endsWith('/sparql') || action.url.endsWith('/sparql/'))) &&\n            !(this.checkUrlSuffixUpdate && (action.url.endsWith('/update') || action.url.endsWith('/update/')))) {\n            return (0, core_1.failTest)(`Actor ${this.name} could not detect a SPARQL service description or URL ending on /sparql or /update.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        this.logInfo(action.context, `Identified as sparql destination: ${action.url}`);\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        return {\n            destination: new QuadDestinationSparql_1.QuadDestinationSparql(action.metadata.sparqlService || action.url, action.context, this.mediatorHttp, dataFactory),\n        };\n    }\n}\nexports.ActorRdfUpdateHypermediaSparql = ActorRdfUpdateHypermediaSparql;\n//# sourceMappingURL=ActorRdfUpdateHypermediaSparql.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfUpdateHypermediaSparql\"), exports);\n__exportStar(require(\"./QuadDestinationSparql\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationAsk = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\n/**\n * A comunica Ask Query Operation Actor.\n */\nclass ActorQueryOperationAsk extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'ask');\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        // Call other query operations like this:\n        const output = await this.mediatorQueryOperation.mediate({ operation: operation.input, context });\n        const { bindingsStream } = (0, utils_query_operation_1.getSafeBindings)(output);\n        return { type: 'boolean', execute: async () => (await bindingsStream.take(1).toArray()).length === 1 };\n    }\n}\nexports.ActorQueryOperationAsk = ActorQueryOperationAsk;\n//# sourceMappingURL=ActorQueryOperationAsk.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationAsk\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationBgpJoin = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation) actor\n * that handles SPARQL BGP operations by rewriting it as a join operator.\n */\nclass ActorQueryOperationBgpJoin extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'bgp');\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        return this.mediatorQueryOperation.mediate({\n            operation: algebraFactory.createJoin(operation.patterns),\n            context,\n        });\n    }\n}\nexports.ActorQueryOperationBgpJoin = ActorQueryOperationBgpJoin;\n//# sourceMappingURL=ActorQueryOperationBgpJoin.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationBgpJoin\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BindingsToQuadsIterator = void 0;\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_terms_1 = require(\"rdf-terms\");\n/**\n * Transforms a bindings stream into a quad stream given a quad template.\n *\n * This conforms to the SPARQL 1.1 spec on constructing triples:\n * https://www.w3.org/TR/sparql11-query/#rConstructTriples\n */\nclass BindingsToQuadsIterator extends asynciterator_1.MultiTransformIterator {\n    constructor(dataFactory, template, bindingsStream) {\n        super(bindingsStream, { autoStart: false });\n        this.dataFactory = dataFactory;\n        this.template = template;\n        this.blankNodeCounter = 0;\n    }\n    /**\n     * Bind the given term.\n     * If the term is a variable and the variable is bound in the bindings object,\n     * return the bindings value.\n     * If the term is a variable and the variable is not bound in the bindings object,\n     * a falsy value is returned..\n     * Otherwise, the term itself is returned.\n     * @param {Bindings}  bindings A bindings object.\n     * @param {RDF.Term}  term     An RDF term.\n     * @return {RDF.Term}          If the given term is not a variable, the term itself is returned.\n     *                             If the given term is a variable, then the bound term is returned,\n     *                             or a falsy value if it did not exist in the bindings.\n     */\n    static bindTerm(bindings, term) {\n        if (term.termType === 'Variable') {\n            return bindings.get(term);\n        }\n        return term;\n    }\n    /**\n     * Bind the given quad pattern.\n     * If one of the terms was a variable AND is not bound in the bindings,\n     * a falsy value will be returned.\n     * @param {Bindings} bindings A bindings object.\n     * @param {RDF.Quad} pattern  An RDF quad.\n     * @return {RDF.Quad}         A bound RDF quad or undefined.\n     */\n    static bindQuad(bindings, pattern) {\n        try {\n            return (0, rdf_terms_1.mapTermsNested)(pattern, (term) => {\n                const boundTerm = BindingsToQuadsIterator.bindTerm(bindings, term);\n                if (!boundTerm) {\n                    throw new Error('Unbound term');\n                }\n                return boundTerm;\n            });\n        }\n        catch {\n            // Do nothing\n        }\n    }\n    /**\n     * Convert a blank node to a unique blank node in the given context.\n     * If the given term is not a blank node, the term itself will be returned.\n     * @param dataFactory The data factory.\n     * @param             blankNodeCounter A counter value for the blank node.\n     * @param {RDF.Term}  term             The term that should be localized.\n     * @return {RDF.Term}                  A term.\n     */\n    static localizeBlankNode(dataFactory, blankNodeCounter, term) {\n        if (term.termType === 'BlankNode') {\n            return dataFactory.blankNode(`${term.value}${blankNodeCounter}`);\n        }\n        return term;\n    }\n    /**\n     * Convert the given quad to a quad that only contains unique blank nodes.\n     * @param dataFactory The data factory.\n     * @param            blankNodeCounter A counter value for the blank node.\n     * @param {RDF.BaseQuad} pattern          The pattern that should be localized.\n     * @return {RDF.BaseQuad}                 A quad.\n     */\n    static localizeQuad(dataFactory, blankNodeCounter, pattern) {\n        return (0, rdf_terms_1.mapTermsNested)(pattern, term => BindingsToQuadsIterator.localizeBlankNode(dataFactory, blankNodeCounter, term));\n    }\n    /**\n     * Convert the given template to a list of quads based on the given bindings.\n     * @param {Bindings}    bindings           A bindings object.\n     * @param {RDF.Quad[]}  template           A list of quad patterns.\n     * @param               blankNodeCounter   A counter value for the blank node.\n     * @return {RDF.Quad[]}                    A list of quads.\n     */\n    bindTemplate(bindings, template, blankNodeCounter) {\n        const quads = template\n            // Make sure the multiple instantiations of the template contain different blank nodes, as required by SPARQL 1.1.\n            .map(BindingsToQuadsIterator.localizeQuad.bind(null, this.dataFactory, blankNodeCounter))\n            // Bind variables to bound terms\n            .map(x => BindingsToQuadsIterator.bindQuad.bind(null, bindings)(x))\n            // Remove quads that contained unbound terms, i.e., variables.\n            .filter(Boolean);\n        return quads;\n    }\n    _createTransformer(bindings) {\n        return new asynciterator_1.ArrayIterator(this.bindTemplate(bindings, this.template, this.blankNodeCounter++), { autoStart: false });\n    }\n}\nexports.BindingsToQuadsIterator = BindingsToQuadsIterator;\n//# sourceMappingURL=BindingsToQuadsIterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationConstruct = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst BindingsToQuadsIterator_1 = require(\"./BindingsToQuadsIterator\");\n/**\n * A comunica Construct Query Operation Actor.\n */\nclass ActorQueryOperationConstruct extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'construct');\n    }\n    /**\n     * Find all variables in a list of triple patterns.\n     * @param {Algebra.Pattern[]} patterns An array of triple patterns.\n     * @return {RDF.Variable[]} The variables in the triple patterns.\n     */\n    static getVariables(patterns) {\n        return (0, rdf_terms_1.uniqTerms)([].concat\n            .apply([], patterns.map(pattern => (0, rdf_terms_1.getVariables)((0, rdf_terms_1.getTermsNested)(pattern)))));\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operationOriginal, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        // Apply a projection on our CONSTRUCT variables first, as the query may contain other variables as well.\n        const variables = ActorQueryOperationConstruct.getVariables(operationOriginal.template);\n        const operation = { type: sparqlalgebrajs_1.Algebra.types.PROJECT, input: operationOriginal.input, variables };\n        // Evaluate the input query\n        const output = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation, context }));\n        // Construct triples using the result based on the pattern.\n        // If it's a DESCRIBE query don't apply the blank node localisation.\n        const quadStream = new BindingsToQuadsIterator_1.BindingsToQuadsIterator(dataFactory, operationOriginal.template, output.bindingsStream);\n        // Let the final metadata contain the estimated number of triples\n        const metadata = () => output.metadata().then(meta => ({\n            ...meta,\n            order: undefined,\n            cardinality: {\n                type: meta.cardinality.type,\n                value: meta.cardinality.value * operationOriginal.template.length,\n            },\n            availableOrders: undefined,\n        }));\n        return {\n            metadata,\n            quadStream,\n            type: 'quads',\n        };\n    }\n}\nexports.ActorQueryOperationConstruct = ActorQueryOperationConstruct;\n//# sourceMappingURL=ActorQueryOperationConstruct.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationConstruct\"), exports);\n__exportStar(require(\"./BindingsToQuadsIterator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNode = void 0;\n/**\n * A term that represents an RDF blank node with a label.\n */\nclass BlankNode {\n    constructor(value) {\n        this.termType = 'BlankNode';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'BlankNode' && other.value === this.value;\n    }\n}\nexports.BlankNode = BlankNode;\n//# sourceMappingURL=BlankNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultGraph = void 0;\n/**\n * A singleton term instance that represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass DefaultGraph {\n    constructor() {\n        this.termType = 'DefaultGraph';\n        this.value = '';\n        // Private constructor\n    }\n    equals(other) {\n        return !!other && other.termType === 'DefaultGraph';\n    }\n}\nexports.DefaultGraph = DefaultGraph;\nDefaultGraph.INSTANCE = new DefaultGraph();\n//# sourceMappingURL=DefaultGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NamedNode = void 0;\n/**\n * A term that contains an IRI.\n */\nclass NamedNode {\n    constructor(value) {\n        this.termType = 'NamedNode';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'NamedNode' && other.value === this.value;\n    }\n}\nexports.NamedNode = NamedNode;\n//# sourceMappingURL=NamedNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Literal = void 0;\nconst NamedNode_1 = require(\"./NamedNode\");\n/**\n * A term that represents an RDF literal,\n * containing a string with an optional language tag and optional direction\n * or datatype.\n */\nclass Literal {\n    constructor(value, languageOrDatatype) {\n        this.termType = 'Literal';\n        this.value = value;\n        if (typeof languageOrDatatype === 'string') {\n            this.language = languageOrDatatype;\n            this.datatype = Literal.RDF_LANGUAGE_STRING;\n            this.direction = '';\n        }\n        else if (languageOrDatatype) {\n            if ('termType' in languageOrDatatype) {\n                this.language = '';\n                this.datatype = languageOrDatatype;\n                this.direction = '';\n            }\n            else {\n                this.language = languageOrDatatype.language;\n                this.datatype = languageOrDatatype.direction ?\n                    Literal.RDF_DIRECTIONAL_LANGUAGE_STRING :\n                    Literal.RDF_LANGUAGE_STRING;\n                this.direction = languageOrDatatype.direction || '';\n            }\n        }\n        else {\n            this.language = '';\n            this.datatype = Literal.XSD_STRING;\n            this.direction = '';\n        }\n    }\n    equals(other) {\n        return !!other && other.termType === 'Literal' && other.value === this.value &&\n            other.language === this.language &&\n            ((other.direction === this.direction) || (!other.direction && this.direction === '')) &&\n            this.datatype.equals(other.datatype);\n    }\n}\nexports.Literal = Literal;\nLiteral.RDF_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString');\nLiteral.RDF_DIRECTIONAL_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString');\nLiteral.XSD_STRING = new NamedNode_1.NamedNode('http://www.w3.org/2001/XMLSchema#string');\n//# sourceMappingURL=Literal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Quad = void 0;\n/**\n * An instance of DefaultGraph represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass Quad {\n    constructor(subject, predicate, object, graph) {\n        this.termType = 'Quad';\n        this.value = '';\n        this.subject = subject;\n        this.predicate = predicate;\n        this.object = object;\n        this.graph = graph;\n    }\n    equals(other) {\n        // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n        return !!other && (other.termType === 'Quad' || !other.termType) &&\n            this.subject.equals(other.subject) &&\n            this.predicate.equals(other.predicate) &&\n            this.object.equals(other.object) &&\n            this.graph.equals(other.graph);\n    }\n}\nexports.Quad = Quad;\n//# sourceMappingURL=Quad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\n/**\n * A term that represents a variable.\n */\nclass Variable {\n    constructor(value) {\n        this.termType = 'Variable';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'Variable' && other.value === this.value;\n    }\n}\nexports.Variable = Variable;\n//# sourceMappingURL=Variable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataFactory = void 0;\nconst BlankNode_1 = require(\"./BlankNode\");\nconst DefaultGraph_1 = require(\"./DefaultGraph\");\nconst Literal_1 = require(\"./Literal\");\nconst NamedNode_1 = require(\"./NamedNode\");\nconst Quad_1 = require(\"./Quad\");\nconst Variable_1 = require(\"./Variable\");\nlet dataFactoryCounter = 0;\n/**\n * A factory for instantiating RDF terms and quads.\n */\nclass DataFactory {\n    constructor(options) {\n        this.blankNodeCounter = 0;\n        options = options || {};\n        this.blankNodePrefix = options.blankNodePrefix || `df_${dataFactoryCounter++}_`;\n    }\n    /**\n     * @param value The IRI for the named node.\n     * @return A new instance of NamedNode.\n     * @see NamedNode\n     */\n    namedNode(value) {\n        return new NamedNode_1.NamedNode(value);\n    }\n    /**\n     * @param value The optional blank node identifier.\n     * @return A new instance of BlankNode.\n     *         If the `value` parameter is undefined a new identifier\n     *         for the blank node is generated for each call.\n     * @see BlankNode\n     */\n    blankNode(value) {\n        return new BlankNode_1.BlankNode(value || `${this.blankNodePrefix}${this.blankNodeCounter++}`);\n    }\n    /**\n     * @param value              The literal value.\n     * @param languageOrDatatype The optional language, datatype, or directional language.\n     *                           If `languageOrDatatype` is a NamedNode,\n     *                           then it is used for the value of `NamedNode.datatype`.\n     *                           If `languageOrDatatype` is a NamedNode, it is used for the value\n     *                           of `NamedNode.language`.\n     *                           Otherwise, it is used as a directional language,\n     *                           from which the language is set to `languageOrDatatype.language`\n     *                           and the direction to `languageOrDatatype.direction`.\n     * @return A new instance of Literal.\n     * @see Literal\n     */\n    literal(value, languageOrDatatype) {\n        return new Literal_1.Literal(value, languageOrDatatype);\n    }\n    /**\n     * This method is optional.\n     * @param value The variable name\n     * @return A new instance of Variable.\n     * @see Variable\n     */\n    variable(value) {\n        return new Variable_1.Variable(value);\n    }\n    /**\n     * @return An instance of DefaultGraph.\n     */\n    defaultGraph() {\n        return DefaultGraph_1.DefaultGraph.INSTANCE;\n    }\n    /**\n     * @param subject   The quad subject term.\n     * @param predicate The quad predicate term.\n     * @param object    The quad object term.\n     * @param graph     The quad graph term.\n     * @return A new instance of Quad.\n     * @see Quad\n     */\n    quad(subject, predicate, object, graph) {\n        return new Quad_1.Quad(subject, predicate, object, graph || this.defaultGraph());\n    }\n    /**\n     * Create a deep copy of the given term using this data factory.\n     * @param original An RDF term.\n     * @return A deep copy of the given term.\n     */\n    fromTerm(original) {\n        // TODO: remove nasty any casts when this TS bug has been fixed:\n        //  https://github.com/microsoft/TypeScript/issues/26933\n        switch (original.termType) {\n            case 'NamedNode':\n                return this.namedNode(original.value);\n            case 'BlankNode':\n                return this.blankNode(original.value);\n            case 'Literal':\n                if (original.language) {\n                    return this.literal(original.value, original.language);\n                }\n                if (!original.datatype.equals(Literal_1.Literal.XSD_STRING)) {\n                    return this.literal(original.value, this.fromTerm(original.datatype));\n                }\n                return this.literal(original.value);\n            case 'Variable':\n                return this.variable(original.value);\n            case 'DefaultGraph':\n                return this.defaultGraph();\n            case 'Quad':\n                return this.quad(this.fromTerm(original.subject), this.fromTerm(original.predicate), this.fromTerm(original.object), this.fromTerm(original.graph));\n        }\n    }\n    /**\n     * Create a deep copy of the given quad using this data factory.\n     * @param original An RDF quad.\n     * @return A deep copy of the given quad.\n     */\n    fromQuad(original) {\n        return this.fromTerm(original);\n    }\n    /**\n     * Reset the internal blank node counter.\n     */\n    resetBlankNodeCounter() {\n        this.blankNodeCounter = 0;\n    }\n}\nexports.DataFactory = DataFactory;\n//# sourceMappingURL=DataFactory.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/BlankNode\"), exports);\n__exportStar(require(\"./lib/DataFactory\"), exports);\n__exportStar(require(\"./lib/DefaultGraph\"), exports);\n__exportStar(require(\"./lib/Literal\"), exports);\n__exportStar(require(\"./lib/NamedNode\"), exports);\n__exportStar(require(\"./lib/Quad\"), exports);\n__exportStar(require(\"./lib/Variable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.termToString = termToString;\nexports.getLiteralValue = getLiteralValue;\nexports.getLiteralType = getLiteralType;\nexports.getLiteralLanguage = getLiteralLanguage;\nexports.getLiteralDirection = getLiteralDirection;\nexports.stringToTerm = stringToTerm;\nexports.quadToStringQuad = quadToStringQuad;\nexports.stringQuadToQuad = stringQuadToQuad;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst FACTORY = new rdf_data_factory_1.DataFactory();\n/**\n * Utility methods for converting between string-based RDF representations and RDFJS objects.\n *\n * RDF Terms are represented as follows:\n * * Blank nodes: '_:myBlankNode'\n * * Variables:   '?myVariable'\n * * Literals:    '\"myString\"', '\"myLanguageString\"@en-us', '\"myLanguageString\"@en-us--ltr', '\"3\"^^xsd:number'\n * * URIs:        'http://example.org'\n *\n * Quads/triples are represented as hashes with 'subject', 'predicate', 'object' and 'graph' (optional)\n * as keys, and string-based RDF terms as values.\n */\n/**\n * Convert an RDFJS term to a string-based representation.\n * @param {RDF.Term} term An RDFJS term.\n * @return {string} A string-based term representation.\n */\nfunction termToString(term) {\n    // TODO: remove nasty any casts when this TS bug has been fixed: https://github.com/microsoft/TypeScript/issues/26933\n    if (!term) {\n        return undefined;\n    }\n    switch (term.termType) {\n        case 'NamedNode': return term.value;\n        case 'BlankNode': return ('_:' + term.value);\n        case 'Literal':\n            const literalValue = term;\n            return ('\"' + literalValue.value + '\"' +\n                (literalValue.datatype &&\n                    literalValue.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string' &&\n                    literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' &&\n                    literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString' ?\n                    '^^' + literalValue.datatype.value : '') +\n                (literalValue.language ? '@' + literalValue.language : '') +\n                (literalValue.direction ? '--' + literalValue.direction : ''));\n        case 'Quad': return `<<${termToString(term.subject)} ${termToString(term.predicate)} ${termToString(term.object)}${term.graph.termType === 'DefaultGraph' ? '' : ' ' + termToString(term.graph)}>>`;\n        case 'Variable': return ('?' + term.value);\n        case 'DefaultGraph': return term.value;\n    }\n}\n/**\n * Get the string value of a literal.\n * @param {string} literalValue An RDF literal enclosed by '\"'.\n * @return {string} The literal value inside the '\"'.\n */\nfunction getLiteralValue(literalValue) {\n    const match = /^\"([^]*)\"/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    return match[1];\n}\n/**\n * Get the datatype of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The datatype of the literal.\n */\nfunction getLiteralType(literalValue) {\n    const match = /^\"[^]*\"(?:\\^\\^([^\"]+)|(@)[^@\"]+)?$/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    return match[1] || (match[2]\n        ? 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' : 'http://www.w3.org/2001/XMLSchema#string');\n}\n/**\n * Get the language of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The language of the literal.\n */\nfunction getLiteralLanguage(literalValue) {\n    const match = /^\"[^]*\"(?:@([^@\"]+)|\\^\\^[^\"]+)?$/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    if (match[1]) {\n        let ret = match[1].toLowerCase();\n        // Remove everything after --, since this indicates the base direction, which will be parsed later.\n        const doubleDashPos = ret.indexOf('--');\n        if (doubleDashPos >= 0) {\n            ret = ret.slice(0, doubleDashPos);\n        }\n        return ret;\n    }\n    return '';\n}\n/**\n * Get the direction of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The direction of the literal.\n */\nfunction getLiteralDirection(literalValue) {\n    const doubleDashPos = literalValue.indexOf('--', literalValue.lastIndexOf('\"'));\n    if (doubleDashPos >= 0) {\n        const direction = literalValue.slice(doubleDashPos + 2, literalValue.length);\n        if (direction === 'ltr' || direction === 'rtl') {\n            return direction;\n        }\n        throw new Error(literalValue + ' is not a literal with a valid direction');\n    }\n    return '';\n}\n/**\n * Transform a string-based RDF term to an RDFJS term.\n * @param {string} value A string-based RDF-term.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {RDF.Term} An RDF-JS term.\n */\nfunction stringToTerm(value, dataFactory) {\n    dataFactory = dataFactory || FACTORY;\n    if (!value || !value.length) {\n        return dataFactory.defaultGraph();\n    }\n    switch (value[0]) {\n        case '_': return dataFactory.blankNode(value.substr(2));\n        case '?':\n            if (!dataFactory.variable) {\n                throw new Error(`Missing 'variable()' method on the given DataFactory`);\n            }\n            return dataFactory.variable(value.substr(1));\n        case '\"':\n            const language = getLiteralLanguage(value);\n            const direction = getLiteralDirection(value);\n            const type = dataFactory.namedNode(getLiteralType(value));\n            return dataFactory.literal(getLiteralValue(value), language ? { language, direction } : type);\n        case '<':\n        default:\n            if (value[0] === '<' && value.length > 4 && value[1] === '<' && value[value.length - 1] === '>' && value[value.length - 2] === '>') {\n                // Iterate character-by-character to detect spaces that are *not* wrapped in <<>>\n                const terms = value.slice(2, -2).trim();\n                let stringTerms = [];\n                let ignoreTags = 0;\n                let lastIndex = 0;\n                let inQuote = false;\n                for (let i = 0; i < terms.length; i++) {\n                    const char = terms[i];\n                    if (char === '<')\n                        ignoreTags++;\n                    if (char === '>') {\n                        if (ignoreTags === 0) {\n                            throw new Error('Found closing tag without opening tag in ' + value);\n                        }\n                        else {\n                            ignoreTags--;\n                        }\n                    }\n                    if (char === '\"') {\n                        let escaped = false;\n                        let j = i;\n                        while (j-- > 0 && terms[j] === '\\\\') {\n                            escaped = !escaped;\n                        }\n                        if (!escaped) {\n                            // We have reached an unescaped quote\n                            inQuote = !inQuote;\n                        }\n                    }\n                    if (char === ' ' && !inQuote && ignoreTags === 0) {\n                        stringTerms.push(terms.slice(lastIndex, i));\n                        while (terms[i + 1] === ' ') {\n                            i += 1;\n                        }\n                        lastIndex = i + 1;\n                    }\n                }\n                if (ignoreTags !== 0) {\n                    throw new Error('Found opening tag without closing tag in ' + value);\n                }\n                stringTerms.push(terms.slice(lastIndex, terms.length));\n                // We require 3 or 4 components\n                if (stringTerms.length !== 3 && stringTerms.length !== 4) {\n                    throw new Error('Nested quad syntax error ' + value);\n                }\n                stringTerms = stringTerms.map(term => term.startsWith('<') && !term.includes(' ') ? term.slice(1, -1) : term);\n                return dataFactory.quad(stringToTerm(stringTerms[0]), stringToTerm(stringTerms[1]), stringToTerm(stringTerms[2]), stringTerms[3] ? stringToTerm(stringTerms[3]) : undefined);\n            }\n            return dataFactory.namedNode(value);\n    }\n}\n/**\n * Convert an RDFJS quad to a string-based quad representation.\n * @param {Quad} q An RDFJS quad.\n * @return {IStringQuad} A hash with string-based quad terms.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction quadToStringQuad(q) {\n    // tslint:disable:object-literal-sort-keys\n    return {\n        subject: termToString(q.subject),\n        predicate: termToString(q.predicate),\n        object: termToString(q.object),\n        graph: termToString(q.graph),\n    };\n    // tslint:enable:object-literal-sort-keys\n}\n/**\n * Convert a string-based quad representation to an RDFJS quad.\n * @param {IStringQuad} stringQuad A hash with string-based quad terms.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {Q} An RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction stringQuadToQuad(stringQuad, dataFactory) {\n    dataFactory = dataFactory || FACTORY;\n    return dataFactory.quad(stringToTerm(stringQuad.subject, dataFactory), stringToTerm(stringQuad.predicate, dataFactory), stringToTerm(stringQuad.object, dataFactory), stringToTerm(stringQuad.graph, dataFactory));\n}\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.termToString = exports.stringToTerm = exports.stringQuadToQuad = exports.quadToStringQuad = exports.getLiteralValue = exports.getLiteralType = exports.getLiteralDirection = exports.getLiteralLanguage = void 0;\nconst TermUtil_1 = require(\"./lib/TermUtil\");\nObject.defineProperty(exports, \"getLiteralLanguage\", { enumerable: true, get: function () { return TermUtil_1.getLiteralLanguage; } });\nObject.defineProperty(exports, \"getLiteralDirection\", { enumerable: true, get: function () { return TermUtil_1.getLiteralDirection; } });\nObject.defineProperty(exports, \"getLiteralType\", { enumerable: true, get: function () { return TermUtil_1.getLiteralType; } });\nObject.defineProperty(exports, \"getLiteralValue\", { enumerable: true, get: function () { return TermUtil_1.getLiteralValue; } });\nObject.defineProperty(exports, \"quadToStringQuad\", { enumerable: true, get: function () { return TermUtil_1.quadToStringQuad; } });\nObject.defineProperty(exports, \"stringQuadToQuad\", { enumerable: true, get: function () { return TermUtil_1.stringQuadToQuad; } });\nObject.defineProperty(exports, \"stringToTerm\", { enumerable: true, get: function () { return TermUtil_1.stringToTerm; } });\nObject.defineProperty(exports, \"termToString\", { enumerable: true, get: function () { return TermUtil_1.termToString; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationDistinctIdentity = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst RdfString = require(\"rdf-string\");\n/**\n * A comunica Distinct Identity Query Operation Actor.\n */\nclass ActorQueryOperationDistinctIdentity extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'distinct');\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        const output = await this.mediatorQueryOperation.mediate({ operation: operation.input, context });\n        if (output.type === 'quads') {\n            const outputQuads = (0, utils_query_operation_1.getSafeQuads)(output);\n            const quadStream = outputQuads.quadStream\n                .filter(await this.newIdentityFilterQuads());\n            return {\n                type: 'quads',\n                quadStream,\n                metadata: outputQuads.metadata,\n            };\n        }\n        const outputBindings = (0, utils_query_operation_1.getSafeBindings)(output);\n        const variables = (await outputBindings.metadata()).variables.map(v => v.variable);\n        const bindingsStream = outputBindings.bindingsStream\n            .filter(await this.newIdentityFilter(variables));\n        return {\n            type: 'bindings',\n            bindingsStream,\n            metadata: outputBindings.metadata,\n        };\n    }\n    /**\n     * Create a new distinct filter function.\n     * This will maintain an internal Identity datastructure so that every bindings object only returns true once.\n     * @param variables The variables to take into account while hashing.\n     * @return {(bindings: Bindings) => boolean} A distinct filter for bindings.\n     */\n    async newIdentityFilter(variables) {\n        const identities = {};\n        return (bindings) => {\n            const identity = variables.map(v => RdfString.termToString(bindings.get(v))).join('-');\n            return !(identity in identities) && (identities[identity] = true);\n        };\n    }\n    /**\n     * Create a new distinct filter function to Identity quads.\n     * This will maintain an internal Identity datastructure so that every quad object only returns true once.\n     * @return {(quad: RDF.Quad) => boolean} A distinct filter for quads.\n     */\n    async newIdentityFilterQuads() {\n        const identities = {};\n        return (quad) => {\n            const identity = Object.values(RdfString.quadToStringQuad(quad)).join(' ');\n            return !(identity in identities) && (identities[identity] = true);\n        };\n    }\n}\nexports.ActorQueryOperationDistinctIdentity = ActorQueryOperationDistinctIdentity;\n//# sourceMappingURL=ActorQueryOperationDistinctIdentity.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationDistinctIdentity\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationExtend = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\n/**\n * A comunica Extend Query Operation Actor.\n *\n * See https://www.w3.org/TR/sparql11-query/#sparqlAlgebra;\n */\nclass ActorQueryOperationExtend extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'extend');\n        this.mediatorExpressionEvaluatorFactory = args.mediatorExpressionEvaluatorFactory;\n    }\n    async testOperation() {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        const { expression, input, variable } = operation;\n        const output = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation: input, context }));\n        // Throw if the variable has already been bound\n        if ((await output.metadata()).variables.some(innerVariable => innerVariable.variable.equals(variable))) {\n            throw new Error(`Illegal binding to variable '${variable.value}' that has already been bound`);\n        }\n        const evaluator = await this.mediatorExpressionEvaluatorFactory\n            .mediate({ algExpr: expression, context });\n        // Transform the stream by extending each Bindings with the expression result\n        const transform = async (bindings, next, push) => {\n            try {\n                const result = await evaluator.evaluate(bindings);\n                // Extend operation is undefined when the key already exists\n                // We just override it here.\n                const extended = bindings.set(variable, result);\n                push(extended);\n            }\n            catch (error) {\n                if ((0, utils_expression_evaluator_1.isExpressionError)(error)) {\n                    // Errors silently don't actually extend according to the spec\n                    push(bindings);\n                    // But let's warn anyway\n                    this.logWarn(context, `Expression error for extend operation (${error.message})` +\n                        `with bindings '${(0, utils_bindings_factory_1.bindingsToString)(bindings)}'`);\n                }\n                else {\n                    bindingsStream.emit('error', error);\n                }\n            }\n            next();\n        };\n        // eslint-disable-next-line ts/no-misused-promises\n        const bindingsStream = output.bindingsStream.transform({ autoStart: false, transform });\n        return {\n            type: 'bindings',\n            bindingsStream,\n            async metadata() {\n                const outputMetadata = await output.metadata();\n                return { ...outputMetadata, variables: [...outputMetadata.variables, { variable, canBeUndef: false }] };\n            },\n        };\n    }\n}\nexports.ActorQueryOperationExtend = ActorQueryOperationExtend;\n//# sourceMappingURL=ActorQueryOperationExtend.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationExtend\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationFilter = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\n/**\n * A comunica Filter Sparqlee Query Operation Actor.\n */\nclass ActorQueryOperationFilter extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'filter');\n        this.mediatorExpressionEvaluatorFactory = args.mediatorExpressionEvaluatorFactory;\n    }\n    async testOperation() {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        const outputRaw = await this.mediatorQueryOperation.mediate({ operation: operation.input, context });\n        const output = (0, utils_query_operation_1.getSafeBindings)(outputRaw);\n        (0, utils_query_operation_1.validateQueryOutput)(output, 'bindings');\n        const evaluator = await this.mediatorExpressionEvaluatorFactory\n            .mediate({ algExpr: operation.expression, context });\n        const transform = async (item, next, push) => {\n            try {\n                const result = await evaluator.evaluateAsEBV(item);\n                if (result) {\n                    push(item);\n                }\n            }\n            catch (error) {\n                // We ignore all Expression errors.\n                // Other errors (likely programming mistakes) are still propagated.\n                //\n                // > Specifically, FILTERs eliminate any solutions that,\n                // > when substituted into the expression, either result in\n                // > an effective boolean value of false or produce an error.\n                // > ...\n                // > These errors have no effect outside of FILTER evaluation.\n                // https://www.w3.org/TR/sparql11-query/#expressions\n                if ((0, utils_expression_evaluator_1.isExpressionError)(error)) {\n                    // In many cases, this is a user error, where the user should manually cast the variable to a string.\n                    // In order to help users debug this, we should report these errors via the logger as warnings.\n                    this.logWarn(context, 'Error occurred while filtering.', () => ({ error, bindings: (0, utils_bindings_factory_1.bindingsToString)(item) }));\n                }\n                else {\n                    bindingsStream.emit('error', error);\n                }\n            }\n            next();\n        };\n        // eslint-disable-next-line ts/no-misused-promises\n        const bindingsStream = output.bindingsStream.transform({ transform, autoStart: false });\n        return { type: 'bindings', bindingsStream, metadata: output.metadata };\n    }\n}\nexports.ActorQueryOperationFilter = ActorQueryOperationFilter;\n//# sourceMappingURL=ActorQueryOperationFilter.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationFilter\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationFromQuad = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica From Query Operation Actor.\n */\nclass ActorQueryOperationFromQuad extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'from');\n    }\n    /**\n     * Create a deep copy of the given operation.\n     * @param {Operation} operation An operation.\n     * @param {(subOperation: Operation) => Operation} recursiveCb A callback for recursive operation calls.\n     * @return {Operation} The copied operation.\n     */\n    static copyOperation(operation, recursiveCb) {\n        const copiedOperation = {};\n        for (const key of Object.keys(operation)) {\n            if (Array.isArray(operation[key]) && key !== 'template') {\n                // We exclude the 'template' entry, as we don't want to modify the template value of construct operations\n                if (key === 'variables') {\n                    copiedOperation[key] = operation[key];\n                }\n                else {\n                    copiedOperation[key] = operation[key].map(recursiveCb);\n                }\n            }\n            else if (ActorQueryOperationFromQuad.ALGEBRA_TYPES.includes(operation[key].type)) {\n                copiedOperation[key] = recursiveCb(operation[key]);\n            }\n            else {\n                copiedOperation[key] = operation[key];\n            }\n        }\n        return copiedOperation;\n    }\n    /**\n     * Recursively transform the given operation to use the given graphs as default graph\n     * This will (possibly) create a new operation and not modify the given operation.\n     * @package\n     * @param algebraFactory The algebra factory.\n     * @param {Operation} operation An operation.\n     * @param {RDF.Term[]} defaultGraphs Graph terms.\n     * @return {Operation} A new operation.\n     */\n    static applyOperationDefaultGraph(algebraFactory, operation, defaultGraphs) {\n        // If the operation is a BGP or Path, change the graph.\n        if ((operation.type === 'bgp' && operation.patterns.length > 0) ||\n            operation.type === 'path' ||\n            operation.type === 'pattern') {\n            if (operation.type === 'bgp') {\n                return ActorQueryOperationFromQuad\n                    .joinOperations(algebraFactory, operation.patterns.map((pattern) => {\n                    if (pattern.graph.termType !== 'DefaultGraph') {\n                        return algebraFactory.createBgp([pattern]);\n                    }\n                    const bgps = defaultGraphs.map((graph) => algebraFactory.createBgp([Object.assign(algebraFactory\n                            .createPattern(pattern.subject, pattern.predicate, pattern.object, graph), { metadata: pattern.metadata })]));\n                    return ActorQueryOperationFromQuad.unionOperations(algebraFactory, bgps);\n                }));\n            }\n            if (operation.graph.termType !== 'DefaultGraph') {\n                return operation;\n            }\n            const paths = defaultGraphs.map((graph) => {\n                if (operation.type === 'path') {\n                    return algebraFactory\n                        .createPath(operation.subject, operation.predicate, operation.object, graph);\n                }\n                return Object.assign(algebraFactory\n                    .createPattern(operation.subject, operation.predicate, operation.object, graph), { metadata: operation.metadata });\n            });\n            return ActorQueryOperationFromQuad.unionOperations(algebraFactory, paths);\n        }\n        return ActorQueryOperationFromQuad.copyOperation(operation, (subOperation) => this.applyOperationDefaultGraph(algebraFactory, subOperation, defaultGraphs));\n    }\n    /**\n     * Recursively transform the given operation to use the given graphs as named graph\n     * This will (possibly) create a new operation and not modify the given operation.\n     * @package\n     * @param algebraFactory The algebra factory.\n     * @param {Operation} operation An operation.\n     * @param {RDF.Term[]} namedGraphs Graph terms.\n     * @param {RDF.Term[]} defaultGraphs Default graph terms.\n     * @return {Operation} A new operation.\n     */\n    static applyOperationNamedGraph(algebraFactory, operation, namedGraphs, defaultGraphs) {\n        // If the operation is a BGP or Path, change the graph.\n        if ((operation.type === 'bgp' && operation.patterns.length > 0) ||\n            operation.type === 'path' ||\n            operation.type === 'pattern') {\n            const patternGraph = operation.type === 'bgp' ? operation.patterns[0].graph : operation.graph;\n            if (patternGraph.termType === 'DefaultGraph') {\n                // SPARQL spec (8.2) describes that when FROM NAMED's are used without a FROM, the default graph must be empty.\n                // The FROMs are transformed before this step to a named node, so this will not apply to this case anymore.\n                return { type: sparqlalgebrajs_1.Algebra.types.BGP, patterns: [] };\n            }\n            if (patternGraph.termType === 'Variable') {\n                if (namedGraphs.length === 1) {\n                    const graph = namedGraphs[0];\n                    // If the pattern graph is a variable, replace the graph and bind the variable using VALUES\n                    const bindings = {};\n                    bindings[`?${patternGraph.value}`] = graph;\n                    const values = algebraFactory\n                        .createValues([patternGraph], [bindings]);\n                    let pattern;\n                    if (operation.type === 'bgp') {\n                        pattern = algebraFactory\n                            .createBgp(operation.patterns.map((pat) => algebraFactory\n                            .createPattern(pat.subject, pat.predicate, pat.object, graph)));\n                    }\n                    else if (operation.type === 'path') {\n                        pattern = algebraFactory\n                            .createPath(operation.subject, operation.predicate, operation.object, graph);\n                    }\n                    else {\n                        pattern = algebraFactory\n                            .createPattern(operation.subject, operation.predicate, operation.object, graph);\n                    }\n                    return algebraFactory.createJoin([values, pattern]);\n                }\n                // If the pattern graph is a variable, take the union of the pattern applied to each available named graph\n                return ActorQueryOperationFromQuad.unionOperations(algebraFactory, namedGraphs.map((graph) => ActorQueryOperationFromQuad.applyOperationNamedGraph(algebraFactory, operation, [graph], defaultGraphs)));\n            }\n            // The pattern's graph is defined (including the default graphs)\n            const isNamedGraphAvailable = [...namedGraphs, ...defaultGraphs].some((namedGraph) => namedGraph.equals(patternGraph));\n            if (isNamedGraphAvailable) {\n                // Return the pattern as-is if the pattern's graph was selected in a FROM NAMED\n                return operation;\n            }\n            // No-op if the pattern's graph was not selected in a FROM NAMED.\n            return { type: sparqlalgebrajs_1.Algebra.types.BGP, patterns: [] };\n        }\n        return ActorQueryOperationFromQuad.copyOperation(operation, (subOperation) => this\n            .applyOperationNamedGraph(algebraFactory, subOperation, namedGraphs, defaultGraphs));\n    }\n    /**\n     * Transform the given array of operations into a join operation.\n     * @package\n     * @param algebraFactory The algebra factory.\n     * @param {Operation[]} operations An array of operations, must contain at least one operation.\n     * @return {Join} A join operation.\n     */\n    static joinOperations(algebraFactory, operations) {\n        if (operations.length === 1) {\n            return operations[0];\n        }\n        if (operations.length > 1) {\n            return algebraFactory.createJoin(operations);\n        }\n        throw new Error('A join can only be applied on at least one operation');\n    }\n    /**\n     * Transform the given array of operations into a union operation.\n     * @package\n     * @param algebraFactory The algebra factory.\n     * @param {Operation[]} operations An array of operations, must contain at least one operation.\n     * @return {Union} A union operation.\n     */\n    static unionOperations(algebraFactory, operations) {\n        if (operations.length === 1) {\n            return operations[0];\n        }\n        if (operations.length > 1) {\n            return algebraFactory.createUnion(operations);\n        }\n        throw new Error('A union can only be applied on at least one operation');\n    }\n    /**\n     * Transform an operation based on the default and named graphs in the pattern.\n     *\n     * FROM sets the default graph.\n     * If multiple are available, take the union of the operation for all of them at quad-pattern level.\n     *\n     * FROM NAMED indicates which named graphs are available.\n     * This will rewrite the query so that only triples from the given named graphs can be selected.\n     *\n     * @package\n     * @param algebraFactory The algebra factory.\n     * @param {From} pattern A from operation.\n     * @return {Operation} The transformed operation.\n     */\n    static createOperation(algebraFactory, pattern) {\n        let operation = pattern.input;\n        if (pattern.default.length > 0) {\n            operation = ActorQueryOperationFromQuad.applyOperationDefaultGraph(algebraFactory, operation, pattern.default);\n        }\n        if (pattern.named.length > 0 || pattern.default.length > 0) {\n            operation = ActorQueryOperationFromQuad\n                .applyOperationNamedGraph(algebraFactory, operation, pattern.named, pattern.default);\n        }\n        return operation;\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operationOriginal, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const operation = ActorQueryOperationFromQuad.createOperation(algebraFactory, operationOriginal);\n        return this.mediatorQueryOperation.mediate({ operation, context });\n    }\n}\nexports.ActorQueryOperationFromQuad = ActorQueryOperationFromQuad;\nActorQueryOperationFromQuad.ALGEBRA_TYPES = Object.keys(sparqlalgebrajs_1.Algebra.types).map(key => sparqlalgebrajs_1.Algebra.types[key]);\n//# sourceMappingURL=ActorQueryOperationFromQuad.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationFromQuad\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationProject = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_data_factory_1 = require(\"@comunica/utils-data-factory\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\n/**\n * A comunica Project Query Operation Actor.\n */\nclass ActorQueryOperationProject extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'project');\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        // Resolve the input\n        const output = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation: operation.input, context }));\n        // Index variables\n        const outputMetadata = await output.metadata();\n        const variablesOutputIndexed = Object\n            .fromEntries(outputMetadata.variables.map(entry => [entry.variable.value, entry]));\n        const variablesOperation = operation.variables.map(v => ({ variable: v, canBeUndef: false }));\n        const variablesOperationIndexed = Object\n            .fromEntries(variablesOperation.map(entry => [entry.variable.value, entry]));\n        // Find all variables that should be deleted from the input stream.\n        const deleteVariables = outputMetadata.variables\n            .filter(variable => !(variable.variable.value in variablesOperationIndexed));\n        // Determine if variables can be undef\n        const variablesOutput = variablesOperation.map(variable => ({\n            variable: variable.variable,\n            canBeUndef: !(variable.variable.value in variablesOutputIndexed) ||\n                variablesOutputIndexed[variable.variable.value].canBeUndef,\n        }));\n        // Make sure the project variables are the only variables that are present in the bindings.\n        let bindingsStream = deleteVariables.length === 0 ?\n            output.bindingsStream :\n            output.bindingsStream.map((bindings) => {\n                for (const deleteVariable of deleteVariables) {\n                    bindings = bindings.delete(deleteVariable.variable);\n                }\n                return bindings;\n            });\n        // Make sure that blank nodes with same labels are not reused over different bindings, as required by SPARQL 1.1.\n        // Required for the BNODE() function: https://www.w3.org/TR/sparql11-query/#func-bnode\n        // When we have a scoped blank node, make sure the skolemized value is maintained.\n        let blankNodeCounter = 0;\n        bindingsStream = bindingsStream.map((bindings) => {\n            blankNodeCounter++;\n            const scopedBlankNodesCache = new Map();\n            return bindings.map((term) => {\n                if (term instanceof utils_data_factory_1.BlankNodeBindingsScoped) {\n                    let scopedBlankNode = scopedBlankNodesCache.get(term.value);\n                    if (!scopedBlankNode) {\n                        scopedBlankNode = dataFactory.blankNode(`${term.value}${blankNodeCounter}`);\n                        scopedBlankNodesCache.set(term.value, scopedBlankNode);\n                    }\n                    return scopedBlankNode;\n                }\n                return term;\n            });\n        });\n        return {\n            type: 'bindings',\n            bindingsStream,\n            metadata: async () => ({ ...outputMetadata, variables: variablesOutput }),\n        };\n    }\n}\nexports.ActorQueryOperationProject = ActorQueryOperationProject;\n//# sourceMappingURL=ActorQueryOperationProject.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationProject\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationReducedHash = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst lru_cache_1 = require(\"lru-cache\");\n/**\n * A comunica Reduced Hash Query Operation Actor.\n */\nclass ActorQueryOperationReducedHash extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'reduced');\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        const output = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation: operation.input, context }));\n        const variables = (await output.metadata()).variables.map(v => v.variable);\n        const bindingsStream = output.bindingsStream.filter(await this.newHashFilter(context, variables));\n        return {\n            type: 'bindings',\n            bindingsStream,\n            metadata: output.metadata,\n        };\n    }\n    /**\n     * Create a new distinct filter function.\n     * This will maintain an internal hash datastructure so that every bindings object only returns true once.\n     * @param context The action context.\n     * @param variables The variables to take into account while hashing.\n     * @return {(bindings: Bindings) => boolean} A distinct filter for bindings.\n     */\n    async newHashFilter(context, variables) {\n        const { hashFunction } = await this.mediatorHashBindings.mediate({ context });\n        const hashes = new lru_cache_1.LRUCache({ max: this.cacheSize });\n        return (bindings) => {\n            const hash = hashFunction(bindings, variables);\n            if (hashes.has(hash)) {\n                return false;\n            }\n            hashes.set(hash, true);\n            return true;\n        };\n    }\n}\nexports.ActorQueryOperationReducedHash = ActorQueryOperationReducedHash;\n//# sourceMappingURL=ActorQueryOperationReducedHash.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationReducedHash\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationSlice = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Slice Query Operation Actor.\n */\nclass ActorQueryOperationSlice extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'slice');\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        // Add limit indicator to the context, which can be used for query planning\n        // eslint-disable-next-line unicorn/explicit-length-check\n        if (operation.length) {\n            context = context.set(context_entries_1.KeysQueryOperation.limitIndicator, operation.length);\n        }\n        // Resolve the input\n        const output = await this.mediatorQueryOperation\n            .mediate({ operation: operation.input, context });\n        if (output.type === 'bindings') {\n            const bindingsStream = this.sliceStream(output.bindingsStream, operation);\n            return {\n                type: 'bindings',\n                bindingsStream,\n                metadata: this.sliceMetadata(output, operation),\n            };\n        }\n        if (output.type === 'quads') {\n            const quadStream = this.sliceStream(output.quadStream, operation);\n            return {\n                type: 'quads',\n                quadStream,\n                metadata: this.sliceMetadata(output, operation),\n            };\n        }\n        // In all other cases, return the result as-is.\n        return output;\n    }\n    // Slice the stream based on the pattern values\n    sliceStream(stream, pattern) {\n        // eslint-disable-next-line unicorn/explicit-length-check\n        const hasLength = Boolean(pattern.length) || pattern.length === 0;\n        const { start } = pattern;\n        const end = hasLength ? pattern.start + pattern.length - 1 : Number.POSITIVE_INFINITY;\n        return stream.transform({ offset: start, limit: Math.max(end - start + 1, 0), autoStart: false });\n    }\n    // If we find metadata, apply slicing on the total number of items\n    sliceMetadata(output, pattern) {\n        // eslint-disable-next-line unicorn/explicit-length-check\n        const hasLength = Boolean(pattern.length) || pattern.length === 0;\n        return () => output.metadata()\n            .then((subMetadata) => {\n            const cardinality = { ...subMetadata.cardinality };\n            if (Number.isFinite(cardinality.value)) {\n                cardinality.value = Math.max(0, cardinality.value - pattern.start);\n                if (hasLength) {\n                    cardinality.value = Math.min(cardinality.value, pattern.length);\n                }\n            }\n            return { ...subMetadata, cardinality };\n        });\n    }\n}\nexports.ActorQueryOperationSlice = ActorQueryOperationSlice;\n//# sourceMappingURL=ActorQueryOperationSlice.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationSlice\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationUnion = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * A comunica Union Query Operation Actor.\n */\nclass ActorQueryOperationUnion extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'union');\n    }\n    /**\n     * Takes the union of the given double array variables.\n     * Uniqueness is guaranteed.\n     * @param {string[][]} variables Double array of variables to take the union of.\n     * @return {string[]} The union of the given variables.\n     */\n    static unionVariables(variables) {\n        const variablesIndexed = {};\n        for (const variablesA of variables) {\n            for (const variable of variablesA) {\n                if (!variablesIndexed[variable.variable.value]) {\n                    variablesIndexed[variable.variable.value] = {\n                        variable: variable.variable,\n                        canBeUndef: variable.canBeUndef,\n                        occurrences: 0,\n                    };\n                }\n                const entry = variablesIndexed[variable.variable.value];\n                entry.canBeUndef = entry.canBeUndef || variable.canBeUndef;\n                entry.occurrences++;\n            }\n        }\n        return Object.values(variablesIndexed)\n            .map(entry => entry.occurrences === variables.length ?\n            { variable: entry.variable, canBeUndef: entry.canBeUndef } :\n            { variable: entry.variable, canBeUndef: true });\n    }\n    /**\n     * Takes the union of the given metadata array.\n     * It will ensure that the cardinality metadata value is properly calculated.\n     * @param {{[p: string]: any}[]} metadatas Array of metadata.\n     * @param bindings If the union of the variables field should also be taken.\n     * @param context The action context\n     * @param mediatorRdfMetadataAccumulate Mediator for metadata accumulation\n     * @return {{[p: string]: any}} Union of the metadata.\n     */\n    static async unionMetadata(metadatas, bindings, context, mediatorRdfMetadataAccumulate) {\n        let accumulatedMetadata = (await mediatorRdfMetadataAccumulate\n            .mediate({ mode: 'initialize', context })).metadata;\n        // Accumulate cardinality\n        for (const appendingMetadata of metadatas) {\n            accumulatedMetadata = {\n                ...appendingMetadata,\n                ...(await mediatorRdfMetadataAccumulate\n                    .mediate({\n                    mode: 'append',\n                    accumulatedMetadata: accumulatedMetadata,\n                    appendingMetadata: appendingMetadata,\n                    context,\n                })).metadata,\n            };\n        }\n        // Create new metadata state\n        accumulatedMetadata.state = new utils_metadata_1.MetadataValidationState();\n        // Propagate metadata invalidations\n        const invalidateListener = () => accumulatedMetadata.state.invalidate();\n        for (const metadata of metadatas) {\n            metadata.state.addInvalidateListener(invalidateListener);\n        }\n        // Union variables\n        if (bindings) {\n            const variables = metadatas.map(metadata => metadata.variables);\n            accumulatedMetadata.variables = ActorQueryOperationUnion.unionVariables(variables);\n        }\n        return accumulatedMetadata;\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        // Determine the type over which we are taking a union\n        const outputsRaw = await Promise.all(operation.input\n            .map(subOperation => this.mediatorQueryOperation.mediate({ operation: subOperation, context })));\n        let outputType;\n        for (const output of outputsRaw) {\n            if (outputType === undefined) {\n                outputType = output.type;\n            }\n            else if (outputType !== output.type) {\n                throw new Error(`Unable to union ${outputType} and ${output.type}`);\n            }\n        }\n        // Handle bindings\n        if (outputType === 'bindings' || operation.input.length === 0) {\n            const outputs = outputsRaw.map(utils_query_operation_1.getSafeBindings);\n            const bindingsStream = new asynciterator_1.UnionIterator(outputs.map((output) => output.bindingsStream), { autoStart: false });\n            const metadata = () => Promise.all(outputs.map(output => output.metadata()))\n                .then(subMeta => ActorQueryOperationUnion\n                .unionMetadata(subMeta, true, context, this.mediatorRdfMetadataAccumulate));\n            return { type: 'bindings', bindingsStream, metadata };\n        }\n        // Handle quads\n        if (outputType === 'quads') {\n            const outputs = outputsRaw.map(utils_query_operation_1.getSafeQuads);\n            const quadStream = new asynciterator_1.UnionIterator(outputs.map((output) => output.quadStream), { autoStart: false });\n            const metadata = () => Promise.all(outputs.map(output => output.metadata()))\n                .then(subMeta => ActorQueryOperationUnion\n                .unionMetadata(subMeta, false, context, this.mediatorRdfMetadataAccumulate));\n            return { type: 'quads', quadStream, metadata };\n        }\n        // Throw otherwise\n        throw new Error(`Unable to union ${outputType}`);\n    }\n}\nexports.ActorQueryOperationUnion = ActorQueryOperationUnion;\n//# sourceMappingURL=ActorQueryOperationUnion.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationUnion\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PathVariableObjectIterator = void 0;\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * An iterator that implements the multi-length property path operation (* and +)\n * for a fixed subject and predicate, and a variable object.\n */\nclass PathVariableObjectIterator extends asynciterator_1.BufferedIterator {\n    constructor(algebraFactory, subject, predicate, graph, context, mediatorQueryOperation, emitFirstSubject, maxRunningOperations = 16) {\n        super({ autoStart: false });\n        this.algebraFactory = algebraFactory;\n        this.subject = subject;\n        this.predicate = predicate;\n        this.graph = graph;\n        this.context = context;\n        this.mediatorQueryOperation = mediatorQueryOperation;\n        this.maxRunningOperations = maxRunningOperations;\n        this.termHashes = new Map();\n        this.runningOperations = [];\n        this.pendingOperations = [];\n        this.started = false;\n        // Push the subject as starting point\n        this._push(this.subject, emitFirstSubject);\n    }\n    getProperty(propertyName, callback) {\n        // Kickstart iterator when metadata is requested\n        if (!this.started && propertyName === 'metadata') {\n            this.startNextOperation(false)\n                .catch(error => this.emit('error', error));\n        }\n        return super.getProperty(propertyName, callback);\n    }\n    _end(destroy) {\n        // Close all running iterators\n        for (const it of this.runningOperations) {\n            it.destroy();\n        }\n        super._end(destroy);\n    }\n    _push(item, pushAsResult = true) {\n        let termString;\n        if (pushAsResult) {\n            // Don't push if this subject was already found\n            termString = (0, rdf_string_1.termToString)(item);\n            if (this.termHashes.has(termString)) {\n                return false;\n            }\n        }\n        // Add a pending path operation for this item\n        const variable = this.algebraFactory.dataFactory.variable('b');\n        this.pendingOperations.push({\n            variable,\n            operation: this.algebraFactory.createPath(item, this.predicate, variable, this.graph),\n        });\n        // Otherwise, push the subject\n        if (termString) {\n            this.termHashes.set(termString, item);\n            super._push(item);\n        }\n        return true;\n    }\n    async startNextOperation(fillBuffer) {\n        this.started = true;\n        const pendingOperation = this.pendingOperations.pop();\n        const results = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation: pendingOperation.operation, context: this.context }));\n        const runningOperation = results.bindingsStream.map(bindings => bindings.get(pendingOperation.variable));\n        if (!runningOperation.done) {\n            this.runningOperations.push(runningOperation);\n            runningOperation.on('error', error => this.destroy(error));\n            runningOperation.on('readable', () => {\n                if (fillBuffer) {\n                    this._fillBufferAsync();\n                }\n                this.readable = true;\n            });\n            runningOperation.on('end', () => {\n                this.runningOperations.splice(this.runningOperations.indexOf(runningOperation), 1);\n                if (fillBuffer) {\n                    this._fillBufferAsync();\n                }\n                this.readable = true;\n            });\n        }\n        if (!this.getProperty('metadata')) {\n            this.setProperty('metadata', results.metadata);\n        }\n    }\n    _read(count, done) {\n        // eslint-disable-next-line ts/no-this-alias\n        const self = this;\n        (async function () {\n            // Open as many operations as possible\n            while (self.runningOperations.length < self.maxRunningOperations) {\n                if (self.pendingOperations.length === 0) {\n                    break;\n                }\n                await self.startNextOperation(true);\n            }\n            // Try to read `count` items (based on UnionIterator)\n            let lastCount = 0;\n            let item;\n            let pushSucceeded = true;\n            // eslint-disable-next-line no-cond-assign\n            while (!pushSucceeded || lastCount !== (lastCount = count)) {\n                pushSucceeded = true;\n                // Prioritize the operations that have been added first\n                for (let i = 0; i < self.runningOperations.length && count > 0; i++) {\n                    // eslint-disable-next-line no-cond-assign\n                    if ((item = self.runningOperations[i].read()) !== null) {\n                        if (self._push(item)) {\n                            count--;\n                        }\n                        else {\n                            pushSucceeded = false;\n                        }\n                    }\n                }\n            }\n            // Close if everything has been read\n            self.closeIfNeeded();\n        })().then(() => {\n            done();\n        }, error => this.destroy(error));\n    }\n    closeIfNeeded() {\n        if (this.runningOperations.length === 0 && this.pendingOperations.length === 0) {\n            this.close();\n        }\n    }\n}\nexports.PathVariableObjectIterator = PathVariableObjectIterator;\n//# sourceMappingURL=PathVariableObjectIterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorAbstractPath = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst PathVariableObjectIterator_1 = require(\"./PathVariableObjectIterator\");\n/**\n * An abstract actor that handles Path operations.\n *\n * Provides multiple helper functions used by the Path operation actors.\n */\nclass ActorAbstractPath extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args, predicateType) {\n        super(args, 'path');\n        this.predicateType = predicateType;\n    }\n    async testOperation(operation, _context) {\n        if (operation.predicate.type !== this.predicateType) {\n            return (0, core_1.failTest)(`This Actor only supports ${this.predicateType} Path operations.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    // Generates a variable that does not yet occur in the path\n    generateVariable(dataFactory, path, name) {\n        if (!name) {\n            return this.generateVariable(dataFactory, path, 'b');\n        }\n        // Path predicates can't contain variables\n        if (path && (path.subject.value === name || path.object.value === name)) {\n            return this.generateVariable(dataFactory, path, `${name}b`);\n        }\n        return dataFactory.variable(name);\n    }\n    // Such connectivity matching does not introduce duplicates (it does not incorporate any count of the number\n    // of ways the connection can be made) even if the repeated path itself would otherwise result in duplicates.\n    // https://www.w3.org/TR/sparql11-query/#propertypaths\n    async isPathArbitraryLengthDistinct(algebraFactory, context, path) {\n        if (!context.get(context_entries_1.KeysQueryOperation.isPathArbitraryLengthDistinctKey)) {\n            context = context.set(context_entries_1.KeysQueryOperation.isPathArbitraryLengthDistinctKey, true);\n            return { context, operation: (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({\n                    operation: algebraFactory.createDistinct(path),\n                    context,\n                })) };\n        }\n        context = context.set(context_entries_1.KeysQueryOperation.isPathArbitraryLengthDistinctKey, false);\n        return { context, operation: undefined };\n    }\n    async predicateStarGraphVariable(subject, object, predicate, graph, context, algebraFactory, bindingsFactory) {\n        const sources = this.getPathSources(predicate);\n        // TODO: refactor this with an iterator just like PathVariableObjectIterator so we handle backpressure correctly\n        // Construct path to obtain all graphs where subject exists\n        const predVar = this.generateVariable(algebraFactory.dataFactory, algebraFactory\n            .createPath(subject, predicate, object, graph));\n        const findGraphs = algebraFactory.createUnion([\n            this.assignPatternSources(algebraFactory, algebraFactory.createPattern(subject, predVar, object, graph), sources),\n            this.assignPatternSources(algebraFactory, algebraFactory.createPattern(object, predVar, subject, graph), sources),\n        ]);\n        const results = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ context, operation: findGraphs }));\n        const passedGraphs = new Set();\n        const bindingsStream = new asynciterator_1.MultiTransformIterator(results.bindingsStream, {\n            multiTransform: (bindings) => {\n                // Extract the graph and start a predicate* search starting from subject in each graph\n                const graphValue = bindings.get(graph);\n                if (passedGraphs.has(graphValue.value)) {\n                    return new asynciterator_1.EmptyIterator();\n                }\n                passedGraphs.add(graphValue.value);\n                return new asynciterator_1.TransformIterator(async () => {\n                    const it = new asynciterator_1.BufferedIterator();\n                    await this\n                        .getObjectsPredicateStar(algebraFactory, subject, predicate, graphValue, context, {}, it, { count: 0 });\n                    return it.map(item => bindingsFactory.bindings([\n                        [object, item],\n                        [graph, graphValue],\n                    ]));\n                }, { maxBufferSize: 128 });\n            },\n            autoStart: false,\n        });\n        return {\n            bindingsStream,\n            metadata: results.metadata,\n        };\n    }\n    /**\n     * Returns an iterator with Bindings of the query subject predicate* ?o or subject predicate+ ?o\n     * If graph is a variable, it will also be in those bindings\n     * @param {Term} subject Term of where we start the predicate* search.\n     * @param {Algebra.PropertyPathSymbol} predicate Predicate of the *-path.\n     * @param {Variable} object Variable of the zeroOrMore-query.\n     * @param {Term} graph The graph in which we search for the pattern. (Possibly a variable)\n     * @param {ActionContext} context The context to pass to sub-opertations\n     * @param emitFirstSubject If the path operation is predicate*, otherwise it is predicate+.\n     * @param algebraFactory The algebra factory.\n     * @param bindingsFactory The data factory.\n     * @return {Promise<AsyncIterator<Bindings>} Iterator to where all bindings of query should have been pushed.\n     */\n    async getObjectsPredicateStarEval(subject, predicate, object, graph, context, emitFirstSubject, algebraFactory, bindingsFactory) {\n        if (graph.termType === 'Variable') {\n            return this\n                .predicateStarGraphVariable(subject, object, predicate, graph, context, algebraFactory, bindingsFactory);\n        }\n        const it = new PathVariableObjectIterator_1.PathVariableObjectIterator(algebraFactory, subject, predicate, graph, context, this.mediatorQueryOperation, emitFirstSubject);\n        const bindingsStream = it.map(item => bindingsFactory.bindings([[object, item]]));\n        return {\n            bindingsStream,\n            async metadata() {\n                const metadata = await new Promise((resolve) => {\n                    it.getProperty('metadata', (metadataInner) => resolve(metadataInner()));\n                });\n                // Increment cardinality by one, because we always have at least one result once we reach this stage.\n                // See the transformation above where we push a single binding.\n                metadata.cardinality.value++;\n                return metadata;\n            },\n        };\n    }\n    /**\n     * Pushes all terms to iterator `it` that are a solution of object predicate* ?o.\n     * @param algebraFactory The algebra factory.\n     * @param {Term} object Term of where we start the predicate* search.\n     * @param {Algebra.PropertyPathSymbol} predicate Predicate of the *-path.\n     * @param {Term} graph The graph in which we search for the pattern.\n     * @param {ActionContext} context\n     * @param {Record<string, Term>} termHashes Remembers the objects we've already searched for.\n     * @param {BufferedIterator<Term>} it Iterator to push terms to.\n     * @param {any} counter Counts how many searches are in progress to close it when needed (when counter == 0).\n     * @return {Promise<IPathResultStream['metadata']>} The results metadata.\n     */\n    async getObjectsPredicateStar(algebraFactory, object, predicate, graph, context, termHashes, it, counter) {\n        const termString = (0, rdf_string_1.termToString)(object);\n        if (termHashes[termString]) {\n            return;\n        }\n        it._push(object);\n        termHashes[termString] = object;\n        counter.count++;\n        const thisVariable = this.generateVariable(algebraFactory.dataFactory);\n        const path = algebraFactory.createPath(object, predicate, thisVariable, graph);\n        const results = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation: path, context }));\n        // TODO: fixme\n        // eslint-disable-next-line ts/no-misused-promises\n        results.bindingsStream.on('data', async (bindings) => {\n            const result = bindings.get(thisVariable);\n            await this.getObjectsPredicateStar(algebraFactory, result, predicate, graph, context, termHashes, it, counter);\n        });\n        results.bindingsStream.on('end', () => {\n            if (--counter.count === 0) {\n                it.close();\n            }\n        });\n        return results.metadata;\n    }\n    /**\n     * Pushes all terms to iterator `it` that are a solution of ?s predicate* ?o.\n     * @param {string} subjectVar String representation of subjectVariable\n     * @param {string} objectVar String representation of objectVariable\n     * @param {Term} subjectVal Term of where we start the predicate* search.\n     * @param {Term} objectVal Found solution for an object, start for the new step.\n     * @param {Algebra.PropertyPathSymbol} predicate Predicate of the *-path.\n     * @param {Term} graph The graph in which we search for the pattern.\n     * @param {ActionContext} context\n     * @param {{[id: string]: Promise<Term[]>}} termHashesGlobal\n     * Remembers solutions for when objectVal is already been calculated, can be reused when same objectVal occurs\n     * @param {{[id: string]: Term}} termHashesCurrentSubject\n     * Remembers the pairs we've already searched for, can stop searching if so.\n     * @param {BufferedIterator<Bindings>} it Iterator to push terms to.\n     * @param {any} counter Counts how many searches are in progress to close it when needed (when counter == 0).\n     * @param algebraFactory The algebra factory.\n     * @param bindingsFactory The bindings factory.\n     * @return {Promise<void>} All solutions of query should have been pushed to it by then.\n     */\n    // Let the iterator `it` emit all bindings of size 2, with subjectStringVariable as value subjectVal\n    // and objectStringVariable as value all nodes reachable through predicate* beginning at objectVal\n    async getSubjectAndObjectBindingsPredicateStar(subjectVar, objectVar, subjectVal, objectVal, predicate, graph, context, termHashesGlobal, termHashesCurrentSubject, it, counter, algebraFactory, bindingsFactory) {\n        const termString = (0, rdf_string_1.termToString)(objectVal) + (0, rdf_string_1.termToString)(graph);\n        // If this combination of subject and object already done, return nothing\n        if (termHashesCurrentSubject[termString]) {\n            return;\n        }\n        counter.count++;\n        termHashesCurrentSubject[termString] = true;\n        it._push(bindingsFactory.bindings([\n            [subjectVar, subjectVal],\n            [objectVar, objectVal],\n        ]));\n        // If every reachable node from object has already been calculated, use these for current subject too\n        if (termString in termHashesGlobal) {\n            const objects = await termHashesGlobal[termString];\n            for (const object of objects) {\n                await this.getSubjectAndObjectBindingsPredicateStar(subjectVar, objectVar, subjectVal, object, predicate, graph, context, termHashesGlobal, termHashesCurrentSubject, it, counter, algebraFactory, bindingsFactory);\n            }\n            if (--counter.count === 0) {\n                it.close();\n            }\n            return;\n        }\n        // Construct promise to calculate all reachable nodes from this object\n        // TODO: fixme\n        // eslint-disable-next-line no-async-promise-executor,ts/no-misused-promises\n        const promise = new Promise(async (resolve, reject) => {\n            const objectsArray = [];\n            // Construct path that leads us one step through predicate\n            const thisVariable = this.generateVariable(algebraFactory.dataFactory);\n            const path = algebraFactory.createPath(objectVal, predicate, thisVariable, graph);\n            const results = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation: path, context }));\n            // Recursive call on all neighbours\n            // TODO: fixme\n            // eslint-disable-next-line ts/no-misused-promises\n            results.bindingsStream.on('data', async (bindings) => {\n                const result = bindings.get(thisVariable);\n                objectsArray.push(result);\n                await this.getSubjectAndObjectBindingsPredicateStar(subjectVar, objectVar, subjectVal, result, predicate, graph, context, termHashesGlobal, termHashesCurrentSubject, it, counter, algebraFactory, bindingsFactory);\n            });\n            results.bindingsStream.on('error', reject);\n            results.bindingsStream.on('end', () => {\n                if (--counter.count === 0) {\n                    it.close();\n                }\n                resolve(objectsArray);\n            });\n        });\n        // Set it in the termHashesGlobal when this object occurs again they can wait for this promise\n        termHashesGlobal[termString] = promise;\n    }\n    /**\n     * Find all sources recursively contained in the given path operation.\n     * @param operation\n     */\n    getPathSources(operation) {\n        switch (operation.type) {\n            case sparqlalgebrajs_1.Algebra.types.ALT:\n            case sparqlalgebrajs_1.Algebra.types.SEQ:\n                return operation.input\n                    .flatMap((subOp) => this.getPathSources(subOp));\n            case sparqlalgebrajs_1.Algebra.types.INV:\n            case sparqlalgebrajs_1.Algebra.types.ONE_OR_MORE_PATH:\n            case sparqlalgebrajs_1.Algebra.types.ZERO_OR_MORE_PATH:\n            case sparqlalgebrajs_1.Algebra.types.ZERO_OR_ONE_PATH:\n                return this.getPathSources(operation.path);\n            case sparqlalgebrajs_1.Algebra.types.LINK:\n            case sparqlalgebrajs_1.Algebra.types.NPS: {\n                const source = (0, utils_query_operation_1.getOperationSource)(operation);\n                if (!source) {\n                    throw new Error(`Could not find a required source on a link path operation`);\n                }\n                return [source];\n            }\n        }\n    }\n    assignPatternSources(algebraFactory, pattern, sources) {\n        if (sources.length === 0) {\n            throw new Error(`Attempted to assign zero sources to a pattern during property path handling`);\n        }\n        if (sources.length === 1) {\n            return (0, utils_query_operation_1.assignOperationSource)(pattern, sources[0]);\n        }\n        return algebraFactory.createUnion(sources\n            .map(source => (0, utils_query_operation_1.assignOperationSource)(pattern, source)), true);\n    }\n}\nexports.ActorAbstractPath = ActorAbstractPath;\n//# sourceMappingURL=ActorAbstractPath.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorAbstractPath\"), exports);\n__exportStar(require(\"./PathVariableObjectIterator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationPathAlt = void 0;\nconst actor_abstract_path_1 = require(\"@comunica/actor-abstract-path\");\nconst actor_query_operation_union_1 = require(\"@comunica/actor-query-operation-union\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Path Alt Query Operation Actor.\n */\nclass ActorQueryOperationPathAlt extends actor_abstract_path_1.ActorAbstractPath {\n    constructor(args) {\n        super(args, sparqlalgebrajs_1.Algebra.types.ALT);\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const predicate = operation.predicate;\n        const subOperations = (await Promise.all(predicate.input\n            .map(subPredicate => this.mediatorQueryOperation.mediate({\n            context,\n            operation: algebraFactory.createPath(operation.subject, subPredicate, operation.object, operation.graph),\n        }))))\n            .map(utils_query_operation_1.getSafeBindings);\n        const bindingsStream = new asynciterator_1.UnionIterator(subOperations.map(op => op.bindingsStream), { autoStart: false });\n        const metadata = () => Promise.all(subOperations.map(output => output.metadata()))\n            .then(subMeta => actor_query_operation_union_1.ActorQueryOperationUnion\n            .unionMetadata(subMeta, true, context, this.mediatorRdfMetadataAccumulate));\n        return {\n            type: 'bindings',\n            bindingsStream,\n            metadata,\n        };\n    }\n}\nexports.ActorQueryOperationPathAlt = ActorQueryOperationPathAlt;\n//# sourceMappingURL=ActorQueryOperationPathAlt.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationPathAlt\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationPathInv = void 0;\nconst actor_abstract_path_1 = require(\"@comunica/actor-abstract-path\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Path Inv Query Operation Actor.\n */\nclass ActorQueryOperationPathInv extends actor_abstract_path_1.ActorAbstractPath {\n    constructor(args) {\n        super(args, sparqlalgebrajs_1.Algebra.types.INV);\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const predicate = operation.predicate;\n        const invPath = algebraFactory.createPath(operation.object, predicate.path, operation.subject, operation.graph);\n        return this.mediatorQueryOperation.mediate({ operation: invPath, context });\n    }\n}\nexports.ActorQueryOperationPathInv = ActorQueryOperationPathInv;\n//# sourceMappingURL=ActorQueryOperationPathInv.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationPathInv\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationPathLink = void 0;\nconst actor_abstract_path_1 = require(\"@comunica/actor-abstract-path\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Path Link Query Operation Actor.\n */\nclass ActorQueryOperationPathLink extends actor_abstract_path_1.ActorAbstractPath {\n    constructor(args) {\n        super(args, sparqlalgebrajs_1.Algebra.types.LINK);\n    }\n    async runOperation(operationOriginal, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const predicate = operationOriginal.predicate;\n        const operation = Object.assign(algebraFactory.createPattern(operationOriginal.subject, predicate.iri, operationOriginal.object, operationOriginal.graph), { metadata: predicate.metadata });\n        return this.mediatorQueryOperation.mediate({ operation, context });\n    }\n}\nexports.ActorQueryOperationPathLink = ActorQueryOperationPathLink;\n//# sourceMappingURL=ActorQueryOperationPathLink.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationPathLink\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationPathNps = void 0;\nconst actor_abstract_path_1 = require(\"@comunica/actor-abstract-path\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Path Nps Query Operation Actor.\n */\nclass ActorQueryOperationPathNps extends actor_abstract_path_1.ActorAbstractPath {\n    constructor(args) {\n        super(args, sparqlalgebrajs_1.Algebra.types.NPS);\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const predicate = operation.predicate;\n        const blank = this.generateVariable(dataFactory, operation);\n        const pattern = Object.assign(algebraFactory\n            .createPattern(operation.subject, blank, operation.object, operation.graph), { metadata: predicate.metadata });\n        const output = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation: pattern, context }));\n        // Remove the generated blank nodes from the bindings\n        const bindingsStream = output.bindingsStream\n            .map(bindings => predicate.iris.some(iri => iri.equals(bindings.get(blank))) ? null : bindings.delete(blank));\n        return {\n            type: 'bindings',\n            bindingsStream,\n            metadata: output.metadata,\n        };\n    }\n}\nexports.ActorQueryOperationPathNps = ActorQueryOperationPathNps;\n//# sourceMappingURL=ActorQueryOperationPathNps.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationPathNps\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationClear = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation) actor\n * that handles SPARQL clear operations.\n */\nclass ActorQueryOperationClear extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'clear');\n    }\n    async testOperation(operation, context) {\n        return (0, utils_query_operation_1.testReadOnly)(context);\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        // Delegate to update-quads bus\n        let graphs;\n        if (operation.source === 'DEFAULT') {\n            graphs = dataFactory.defaultGraph();\n        }\n        else if (typeof operation.source === 'string') {\n            graphs = operation.source;\n        }\n        else {\n            graphs = [operation.source];\n        }\n        const { execute } = await this.mediatorUpdateQuads.mediate({\n            deleteGraphs: {\n                graphs,\n                requireExistence: !operation.silent,\n                dropGraphs: false,\n            },\n            context,\n        });\n        return {\n            type: 'void',\n            execute,\n        };\n    }\n}\nexports.ActorQueryOperationClear = ActorQueryOperationClear;\n//# sourceMappingURL=ActorQueryOperationClear.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationClear\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationUpdateCompositeUpdate = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\n/**\n * A comunica Update CompositeUpdate Query Operation Actor.\n */\nclass ActorQueryOperationUpdateCompositeUpdate extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'compositeupdate');\n    }\n    async testOperation(operation, context) {\n        return (0, utils_query_operation_1.testReadOnly)(context);\n    }\n    async runOperation(operationOriginal, context) {\n        const execute = () => (async () => {\n            // Execute update operations in sequence\n            for (const operation of operationOriginal.updates) {\n                const subResult = (0, utils_query_operation_1.getSafeVoid)(await this.mediatorQueryOperation.mediate({ operation, context }));\n                await subResult.execute();\n            }\n        })();\n        return {\n            type: 'void',\n            execute,\n        };\n    }\n}\nexports.ActorQueryOperationUpdateCompositeUpdate = ActorQueryOperationUpdateCompositeUpdate;\n//# sourceMappingURL=ActorQueryOperationUpdateCompositeUpdate.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationUpdateCompositeUpdate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationCreate = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation) actor that\n * handles SPARQL create operations.\n */\nclass ActorQueryOperationCreate extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'create');\n    }\n    async testOperation(operation, context) {\n        return (0, utils_query_operation_1.testReadOnly)(context);\n    }\n    async runOperation(operation, context) {\n        // Delegate to update-quads bus\n        const { execute } = await this.mediatorUpdateQuads.mediate({\n            createGraphs: {\n                graphs: [operation.source],\n                requireNonExistence: !operation.silent,\n            },\n            context,\n        });\n        return {\n            type: 'void',\n            execute,\n        };\n    }\n}\nexports.ActorQueryOperationCreate = ActorQueryOperationCreate;\n//# sourceMappingURL=ActorQueryOperationCreate.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationCreate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationDrop = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation) actor\n * that handles SPARQL drop operations.\n */\nclass ActorQueryOperationDrop extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'drop');\n    }\n    async testOperation(operation, context) {\n        return (0, utils_query_operation_1.testReadOnly)(context);\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        // Delegate to update-quads bus\n        let graphs;\n        if (operation.source === 'DEFAULT') {\n            graphs = dataFactory.defaultGraph();\n        }\n        else if (typeof operation.source === 'string') {\n            graphs = operation.source;\n        }\n        else {\n            graphs = [operation.source];\n        }\n        const { execute } = await this.mediatorUpdateQuads.mediate({\n            deleteGraphs: {\n                graphs,\n                requireExistence: !operation.silent,\n                dropGraphs: true,\n            },\n            context,\n        });\n        return {\n            type: 'void',\n            execute,\n        };\n    }\n}\nexports.ActorQueryOperationDrop = ActorQueryOperationDrop;\n//# sourceMappingURL=ActorQueryOperationDrop.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationDrop\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationLoad = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation) actor\n * that handles SPARQL load operations.\n */\nclass ActorQueryOperationLoad extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'load');\n    }\n    async testOperation(operation, context) {\n        return (0, utils_query_operation_1.testReadOnly)(context);\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        // Determine query source\n        let subContext = context;\n        if (operation.silent) {\n            subContext = subContext.set(context_entries_1.KeysInitQuery.lenient, true);\n        }\n        const { querySource } = await this.mediatorQuerySourceIdentify.mediate({\n            querySourceUnidentified: { value: operation.source.value },\n            context: subContext,\n        });\n        // Create CONSTRUCT query on the given source\n        const output = (0, utils_query_operation_1.getSafeQuads)(await this.mediatorQueryOperation.mediate({\n            operation: algebraFactory.createConstruct((0, utils_query_operation_1.assignOperationSource)(algebraFactory.createPattern(dataFactory.variable('s'), dataFactory.variable('p'), dataFactory.variable('o')), querySource), [algebraFactory\n                    .createPattern(dataFactory.variable('s'), dataFactory.variable('p'), dataFactory.variable('o'))]),\n            context: subContext,\n        }));\n        // Determine quad stream to insert\n        let quadStream = output.quadStream;\n        if (operation.destination) {\n            quadStream = quadStream\n                .map(quad => dataFactory.quad(quad.subject, quad.predicate, quad.object, operation.destination));\n        }\n        // Insert quad stream\n        const { execute } = await this.mediatorUpdateQuads.mediate({\n            quadStreamInsert: quadStream,\n            context,\n        });\n        return {\n            type: 'void',\n            execute,\n        };\n    }\n}\nexports.ActorQueryOperationLoad = ActorQueryOperationLoad;\n//# sourceMappingURL=ActorQueryOperationLoad.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationLoad\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationJoin = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\n/**\n * A comunica Join Query Operation Actor.\n */\nclass ActorQueryOperationJoin extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'join');\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operationOriginal, context) {\n        const entries = (await Promise.all(operationOriginal.input\n            .map(async (subOperation) => ({\n            output: await this.mediatorQueryOperation.mediate({ operation: subOperation, context }),\n            operation: subOperation,\n        }))))\n            .map(({ output, operation }) => ({\n            output: (0, utils_query_operation_1.getSafeBindings)(output),\n            operation,\n        }));\n        // Return immediately if one of the join entries has cardinality zero, to avoid actor testing overhead.\n        if ((await Promise.all(entries.map(entry => entry.output.metadata())))\n            .some(entry => (entry.cardinality.value === 0 && entry.cardinality.type === 'exact'))) {\n            for (const entry of entries) {\n                entry.output.bindingsStream.close();\n            }\n            return {\n                bindingsStream: new asynciterator_1.ArrayIterator([], { autoStart: false }),\n                metadata: async () => ({\n                    state: new utils_metadata_1.MetadataValidationState(),\n                    cardinality: { type: 'exact', value: 0 },\n                    variables: bus_rdf_join_1.ActorRdfJoin.joinVariables(new rdf_data_factory_1.DataFactory(), await bus_rdf_join_1.ActorRdfJoin.getMetadatas(entries)),\n                }),\n                type: 'bindings',\n            };\n        }\n        return this.mediatorJoin.mediate({ type: 'inner', entries, context });\n    }\n}\nexports.ActorQueryOperationJoin = ActorQueryOperationJoin;\n//# sourceMappingURL=ActorQueryOperationJoin.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationJoin\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationLeftJoin = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\n/**\n * A comunica LeftJoin Query Operation Actor.\n */\nclass ActorQueryOperationLeftJoin extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'leftjoin');\n        this.mediatorExpressionEvaluatorFactory = args.mediatorExpressionEvaluatorFactory;\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operationOriginal, context) {\n        // Delegate to join bus\n        const entries = (await Promise.all(operationOriginal.input\n            .map(async (subOperation) => ({\n            output: await this.mediatorQueryOperation.mediate({ operation: subOperation, context }),\n            operation: subOperation,\n        }))))\n            .map(({ output, operation }) => ({\n            output: (0, utils_query_operation_1.getSafeBindings)(output),\n            operation,\n        }));\n        const joined = await this.mediatorJoin.mediate({ type: 'optional', entries, context });\n        // If the pattern contains an expression, filter the resulting stream\n        if (operationOriginal.expression) {\n            const rightMetadata = await entries[1].output.metadata();\n            const expressionVariables = rightMetadata.variables;\n            const evaluator = await this.mediatorExpressionEvaluatorFactory\n                .mediate({ algExpr: operationOriginal.expression, context });\n            const bindingsStream = joined.bindingsStream\n                .transform({\n                autoStart: false,\n                // eslint-disable-next-line ts/no-misused-promises\n                transform: async (bindings, done, push) => {\n                    // If variables of the right-hand entry are missing, we skip expression evaluation\n                    if (!expressionVariables.every(variable => bindings.has(variable.variable.value))) {\n                        push(bindings);\n                        return done();\n                    }\n                    try {\n                        const result = await evaluator.evaluateAsEBV(bindings);\n                        if (result) {\n                            push(bindings);\n                        }\n                    }\n                    catch (error) {\n                        // We ignore all Expression errors.\n                        // Other errors (likely programming mistakes) are still propagated.\n                        // Left Join is defined in terms of Filter (https://www.w3.org/TR/sparql11-query/#defn_algJoin),\n                        // and Filter requires this (https://www.w3.org/TR/sparql11-query/#expressions).\n                        if ((0, utils_expression_evaluator_1.isExpressionError)(error)) {\n                            // In many cases, this is a user error, where the user should manually cast the variable to a string.\n                            // In order to help users debug this, we should report these errors via the logger as warnings.\n                            this.logWarn(context, 'Error occurred while filtering.', () => ({ error, bindings: (0, utils_bindings_factory_1.bindingsToString)(bindings) }));\n                        }\n                        else {\n                            bindingsStream.emit('error', error);\n                        }\n                    }\n                    done();\n                },\n            });\n            joined.bindingsStream = bindingsStream;\n        }\n        return joined;\n    }\n}\nexports.ActorQueryOperationLeftJoin = ActorQueryOperationLeftJoin;\n//# sourceMappingURL=ActorQueryOperationLeftJoin.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationLeftJoin\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationMinus = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\n/**\n * A comunica Minus Query Operation Actor.\n */\nclass ActorQueryOperationMinus extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'minus');\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operationOriginal, context) {\n        const entries = (await Promise.all(operationOriginal.input\n            .map(async (subOperation) => ({\n            output: await this.mediatorQueryOperation.mediate({ operation: subOperation, context }),\n            operation: subOperation,\n        }))))\n            .map(({ output, operation }) => ({\n            output: (0, utils_query_operation_1.getSafeBindings)(output),\n            operation,\n        }));\n        return this.mediatorJoin.mediate({ type: 'minus', entries, context });\n    }\n}\nexports.ActorQueryOperationMinus = ActorQueryOperationMinus;\n//# sourceMappingURL=ActorQueryOperationMinus.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationMinus\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationPathSeq = void 0;\nconst actor_abstract_path_1 = require(\"@comunica/actor-abstract-path\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Path Seq Query Operation Actor.\n */\nclass ActorQueryOperationPathSeq extends actor_abstract_path_1.ActorAbstractPath {\n    constructor(args) {\n        super(args, sparqlalgebrajs_1.Algebra.types.SEQ);\n    }\n    async runOperation(operationOriginal, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const predicate = operationOriginal.predicate;\n        let joiner = operationOriginal.subject;\n        const generatedVariableNames = [];\n        const entries = await Promise.all(predicate.input\n            .map((subPredicate, i) => {\n            const nextJoiner = i === predicate.input.length - 1 ? operationOriginal.object : this.generateVariable(dataFactory, operationOriginal, `b${i}`);\n            const operation = algebraFactory\n                .createPath(joiner, subPredicate, nextJoiner, operationOriginal.graph);\n            const output = this.mediatorQueryOperation.mediate({\n                context,\n                operation,\n            });\n            joiner = nextJoiner;\n            if (i < predicate.input.length - 1) {\n                generatedVariableNames.push(nextJoiner);\n            }\n            return { output, operation };\n        })\n            .map(async ({ output, operation }) => ({\n            output: (0, utils_query_operation_1.getSafeBindings)(await output),\n            operation,\n        })));\n        const join = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorJoin\n            .mediate({ type: 'inner', entries, context }));\n        // Remove the generated variable from the bindings\n        const bindingsStream = join.bindingsStream.transform({\n            transform(item, next, push) {\n                for (const generatedVariableName of generatedVariableNames) {\n                    item = item.delete(generatedVariableName);\n                }\n                push(item);\n                next();\n            },\n        });\n        // Remove the generated variable from the list of variables\n        return {\n            type: 'bindings',\n            bindingsStream,\n            async metadata() {\n                const joinMetadata = await join.metadata();\n                const variables = joinMetadata.variables.filter(variable => !generatedVariableNames\n                    .some(generatedVariableName => generatedVariableName.value === variable.variable.value));\n                return { ...joinMetadata, variables };\n            },\n        };\n    }\n}\nexports.ActorQueryOperationPathSeq = ActorQueryOperationPathSeq;\n//# sourceMappingURL=ActorQueryOperationPathSeq.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationPathSeq\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinMultiSmallest = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A Multi Smallest RDF Join Actor.\n * It accepts 3 or more streams, joins the smallest two, and joins the result with the remaining streams.\n */\nclass ActorRdfJoinMultiSmallest extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'inner',\n            physicalName: 'multi-smallest',\n            limitEntries: 3,\n            limitEntriesMin: true,\n            canHandleUndefs: true,\n            isLeaf: false,\n        });\n    }\n    /**\n     * Order the given join entries using the join-entries-sort bus.\n     * @param {IJoinEntryWithMetadata[]} entries An array of join entries.\n     * @param context The action context.\n     * @return {IJoinEntryWithMetadata[]} The sorted join entries.\n     */\n    async sortJoinEntries(entries, context) {\n        return (await this.mediatorJoinEntriesSort.mediate({ entries, context })).entries;\n    }\n    async getOutput(action, sideData) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        // Determine the two smallest streams by sorting (e.g. via cardinality)\n        const entries = sideData.sortedEntries;\n        const smallestEntry1 = entries[0];\n        const smallestEntry2 = entries[1];\n        entries.splice(0, 2);\n        // Join the two selected streams, and then join the result with the remaining streams\n        const firstEntry = {\n            output: (0, utils_query_operation_1.getSafeBindings)(await this.mediatorJoin\n                .mediate({ type: action.type, entries: [smallestEntry1, smallestEntry2], context: action.context })),\n            operation: algebraFactory\n                .createJoin([smallestEntry1.operation, smallestEntry2.operation], false),\n        };\n        entries.push(firstEntry);\n        return {\n            result: await this.mediatorJoin.mediate({\n                type: action.type,\n                entries,\n                context: action.context,\n            }),\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        let { metadatas } = sideData;\n        metadatas = [...metadatas];\n        // Determine the two smallest streams by sorting (e.g. via cardinality)\n        const sortedEntries = await this.sortJoinEntries(action.entries\n            .map((entry, i) => ({ ...entry, metadata: metadatas[i] })), action.context);\n        metadatas = sortedEntries.map(entry => entry.metadata);\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        return (0, core_1.passTestWithSideData)({\n            iterations: metadatas[0].cardinality.value * metadatas[1].cardinality.value *\n                metadatas.slice(2).reduce((acc, metadata) => acc * metadata.cardinality.value, 1),\n            persistedItems: 0,\n            blockingItems: 0,\n            requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n                requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1] +\n                metadatas.slice(2).reduce((sum, metadata, i) => sum + requestInitialTimes.slice(2)[i] +\n                    metadata.cardinality.value * requestItemTimes.slice(2)[i], 0),\n        }, { ...sideData, sortedEntries });\n    }\n}\nexports.ActorRdfJoinMultiSmallest = ActorRdfJoinMultiSmallest;\n//# sourceMappingURL=ActorRdfJoinMultiSmallest.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinMultiSmallest\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MaxAggregator = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nclass MaxAggregator extends bus_bindings_aggregator_factory_1.AggregateEvaluator {\n    constructor(evaluator, distinct, orderByEvaluator, throwError) {\n        super(evaluator, distinct, throwError);\n        this.orderByEvaluator = orderByEvaluator;\n        this.state = undefined;\n    }\n    putTerm(term) {\n        if (term.termType !== 'Literal') {\n            throw new Error(`Term with value ${term.value} has type ${term.termType} and is not a literal`);\n        }\n        if (this.state === undefined) {\n            this.state = term;\n        }\n        else if (this.orderByEvaluator.orderTypes(this.state, term) === -1) {\n            this.state = term;\n        }\n    }\n    termResult() {\n        if (this.state === undefined) {\n            return this.emptyValue();\n        }\n        return this.state;\n    }\n}\nexports.MaxAggregator = MaxAggregator;\n//# sourceMappingURL=MaxAggregator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorBindingsAggregatorFactoryMax = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst core_1 = require(\"@comunica/core\");\nconst MaxAggregator_1 = require(\"./MaxAggregator\");\n/**\n * A comunica Max Expression Evaluator Aggregate Actor.\n */\nclass ActorBindingsAggregatorFactoryMax extends bus_bindings_aggregator_factory_1.ActorBindingsAggregatorFactory {\n    constructor(args) {\n        super(args);\n        this.mediatorTermComparatorFactory = args.mediatorTermComparatorFactory;\n    }\n    async test(action) {\n        if (action.expr.aggregator !== 'max') {\n            return (0, core_1.failTest)('This actor only supports the \\'max\\' aggregator.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run({ expr, context }) {\n        return new MaxAggregator_1.MaxAggregator(await this.mediatorExpressionEvaluatorFactory.mediate({ algExpr: expr.expression, context }), expr.distinct, await this.mediatorTermComparatorFactory.mediate({ context }));\n    }\n}\nexports.ActorBindingsAggregatorFactoryMax = ActorBindingsAggregatorFactoryMax;\n//# sourceMappingURL=ActorBindingsAggregatorFactoryMax.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorBindingsAggregatorFactoryMax\"), exports);\n__exportStar(require(\"./MaxAggregator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MinAggregator = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nclass MinAggregator extends bus_bindings_aggregator_factory_1.AggregateEvaluator {\n    constructor(evaluator, distinct, orderByEvaluator, throwError) {\n        super(evaluator, distinct, throwError);\n        this.orderByEvaluator = orderByEvaluator;\n        this.state = undefined;\n    }\n    putTerm(term) {\n        if (term.termType !== 'Literal') {\n            throw new Error(`Term with value ${term.value} has type ${term.termType} and is not a literal`);\n        }\n        if (this.state === undefined) {\n            this.state = term;\n        }\n        else if (this.orderByEvaluator.orderTypes(this.state, term) === 1) {\n            this.state = term;\n        }\n    }\n    termResult() {\n        if (this.state === undefined) {\n            return this.emptyValue();\n        }\n        return this.state;\n    }\n}\nexports.MinAggregator = MinAggregator;\n//# sourceMappingURL=MinAggregator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorBindingsAggregatorFactoryMin = void 0;\nconst bus_bindings_aggregator_factory_1 = require(\"@comunica/bus-bindings-aggregator-factory\");\nconst core_1 = require(\"@comunica/core\");\nconst MinAggregator_1 = require(\"./MinAggregator\");\n/**\n * A comunica Min Expression Evaluator Aggregate Actor.\n */\nclass ActorBindingsAggregatorFactoryMin extends bus_bindings_aggregator_factory_1.ActorBindingsAggregatorFactory {\n    constructor(args) {\n        super(args);\n        this.mediatorTermComparatorFactory = args.mediatorTermComparatorFactory;\n    }\n    async test(action) {\n        if (action.expr.aggregator !== 'min') {\n            return (0, core_1.failTest)('This actor only supports the \\'min\\' aggregator.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run({ context, expr }) {\n        return new MinAggregator_1.MinAggregator(await this.mediatorExpressionEvaluatorFactory.mediate({ algExpr: expr.expression, context }), expr.distinct, await this.mediatorTermComparatorFactory.mediate({ context }));\n    }\n}\nexports.ActorBindingsAggregatorFactoryMin = ActorBindingsAggregatorFactoryMin;\n//# sourceMappingURL=ActorBindingsAggregatorFactoryMin.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorBindingsAggregatorFactoryMin\"), exports);\n__exportStar(require(\"./MinAggregator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SortIterator = void 0;\nconst asynciterator_1 = require(\"asynciterator\");\n// Based on https://github.com/LinkedDataFragments/Client.js/blob/master/lib/sparql/SortIterator.js\nclass SortIterator extends asynciterator_1.TransformIterator {\n    constructor(source, sort, options) {\n        super(source, options);\n        // The `window` parameter indicates the length of the sliding window to apply sorting\n        const window = options && options.window;\n        this.windowLength = Number.isFinite(window) && window > 0 ? window : Number.POSITIVE_INFINITY;\n        this.sort = sort;\n        this.sorted = [];\n    }\n    // Reads the smallest item in the current sorting window\n    _read(count, done) {\n        let item;\n        let { length } = this.sorted;\n        // Try to read items until we reach the desired window length\n        while (length !== this.windowLength) {\n            item = this.source.read();\n            if (item === null) {\n                break;\n            }\n            // Insert the item in the sorted window (smallest last)\n            let left = 0;\n            let right = length - 1;\n            let mid;\n            let order;\n            while (left <= right) {\n                mid = Math.trunc((left + right) / 2);\n                order = this.sort(item, this.sorted[mid]);\n                if (order < 0) {\n                    left = mid + 1;\n                }\n                else if (order > 0) {\n                    right = mid - 1;\n                }\n                else {\n                    left = mid;\n                    right = -1;\n                }\n            }\n            this.sorted.splice(left, 0, item);\n            length++;\n        }\n        // Push the smallest item in the window\n        if (length === this.windowLength) {\n            this._push(this.sorted.pop());\n        }\n        done();\n    }\n    // Flushes remaining data after the source has ended\n    _flush(done) {\n        let { length } = this.sorted;\n        while (length--) {\n            this._push(this.sorted.pop());\n        }\n        done();\n    }\n}\nexports.SortIterator = SortIterator;\n//# sourceMappingURL=SortIterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationOrderBy = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst SortIterator_1 = require(\"./SortIterator\");\n/**\n * A comunica OrderBy Query Operation Actor.\n */\nclass ActorQueryOperationOrderBy extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'orderby');\n        this.window = args.window ?? Number.POSITIVE_INFINITY;\n        this.mediatorExpressionEvaluatorFactory = args.mediatorExpressionEvaluatorFactory;\n        this.mediatorTermComparatorFactory = args.mediatorTermComparatorFactory;\n    }\n    async testOperation() {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        const outputRaw = await this.mediatorQueryOperation.mediate({ operation: operation.input, context });\n        const output = (0, utils_query_operation_1.getSafeBindings)(outputRaw);\n        const options = { window: this.window };\n        let { bindingsStream } = output;\n        // Sorting backwards since the first one is the most important therefore should be ordered last.\n        const orderByEvaluator = await this.mediatorTermComparatorFactory.mediate({ context });\n        for (let i = operation.expressions.length - 1; i >= 0; i--) {\n            let expr = operation.expressions[i];\n            const isAscending = this.isAscending(expr);\n            expr = this.extractSortExpression(expr);\n            // Transform the stream by annotating it with the expr result\n            const evaluator = await this.mediatorExpressionEvaluatorFactory\n                .mediate({ algExpr: expr, context });\n            const transform = async (bindings, next, push) => {\n                try {\n                    const result = await evaluator.evaluate(bindings);\n                    push({ bindings, result });\n                }\n                catch (error) {\n                    // We ignore all Expression errors.\n                    // Other errors (likely programming mistakes) are still propagated.\n                    // I can't recall where this is defined in the spec.\n                    if (!(0, utils_expression_evaluator_1.isExpressionError)(error)) {\n                        bindingsStream.emit('error', error);\n                    }\n                    push({ bindings, result: undefined });\n                }\n                next();\n            };\n            // eslint-disable-next-line ts/no-misused-promises\n            const transformedStream = bindingsStream.transform({ transform });\n            // Sort the annoted stream\n            const sortedStream = new SortIterator_1.SortIterator(transformedStream, (left, right) => {\n                let compare = orderByEvaluator.orderTypes(left.result, right.result);\n                if (!isAscending) {\n                    compare *= -1;\n                }\n                return compare;\n            }, options);\n            // Remove the annotation\n            bindingsStream = sortedStream.map(({ bindings }) => bindings);\n        }\n        return {\n            type: 'bindings',\n            bindingsStream,\n            metadata: output.metadata,\n        };\n    }\n    // Remove descending operator if necessary\n    extractSortExpression(expr) {\n        const { expressionType, operator } = expr;\n        if (expressionType !== sparqlalgebrajs_1.Algebra.expressionTypes.OPERATOR) {\n            return expr;\n        }\n        return operator === 'desc' ?\n            expr.args[0] :\n            expr;\n    }\n    isAscending(expr) {\n        const { expressionType, operator } = expr;\n        if (expressionType !== sparqlalgebrajs_1.Algebra.expressionTypes.OPERATOR) {\n            return true;\n        }\n        return operator !== 'desc';\n    }\n}\nexports.ActorQueryOperationOrderBy = ActorQueryOperationOrderBy;\n//# sourceMappingURL=ActorQueryOperationOrderBy.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationOrderBy\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationFilterPushdown = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Filter Pushdown Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationFilterPushdown extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        let operation = action.operation;\n        // eslint-disable-next-line ts/no-this-alias\n        const self = this;\n        // Split conjunctive filters into nested filters\n        if (this.splitConjunctive) {\n            operation = sparqlalgebrajs_1.Util.mapOperation(operation, {\n                filter(op, factory) {\n                    // Split conjunctive filters into separate filters\n                    if (op.expression.expressionType === sparqlalgebrajs_1.Algebra.expressionTypes.OPERATOR && op.expression.operator === '&&') {\n                        self.logDebug(action.context, `Split conjunctive filter into ${op.expression.args.length} nested filters`);\n                        return {\n                            recurse: true,\n                            result: op.expression.args\n                                .reduce((operation, expression) => factory.createFilter(operation, expression), op.input),\n                        };\n                    }\n                    return {\n                        recurse: true,\n                        result: op,\n                    };\n                },\n            }, algebraFactory);\n        }\n        // Collect selector shapes of all operations\n        const sources = this.getSources(operation);\n        // eslint-disable-next-line ts/no-unnecessary-type-assertion\n        const sourceShapes = new Map(await Promise.all(sources\n            .map(async (source) => [source, await source.source.getSelectorShape(action.context)])));\n        // Push down all filters\n        // We loop until no more filters can be pushed down.\n        let repeat = true;\n        let iterations = 0;\n        while (repeat && iterations < this.maxIterations) {\n            repeat = false;\n            operation = sparqlalgebrajs_1.Util.mapOperation(operation, {\n                filter(op, factory) {\n                    // Check if the filter must be pushed down\n                    if (!self.shouldAttemptPushDown(op, sources, sourceShapes)) {\n                        return {\n                            recurse: true,\n                            result: op,\n                        };\n                    }\n                    // For all filter expressions in the operation,\n                    // we attempt to push them down as deep as possible into the algebra.\n                    const variables = self.getExpressionVariables(op.expression);\n                    const [isModified, result] = self\n                        .filterPushdown(op.expression, variables, op.input, factory, action.context);\n                    if (isModified) {\n                        repeat = true;\n                    }\n                    return {\n                        recurse: true,\n                        result,\n                    };\n                },\n            });\n            iterations++;\n        }\n        if (iterations > 1) {\n            self.logDebug(action.context, `Pushed down filters in ${iterations} iterations`);\n        }\n        // Merge nested filters into conjunctive filters\n        if (this.mergeConjunctive) {\n            operation = sparqlalgebrajs_1.Util.mapOperation(operation, {\n                filter(op, factory) {\n                    if (op.input.type === sparqlalgebrajs_1.Algebra.types.FILTER) {\n                        const { nestedExpressions, input } = self.getNestedFilterExpressions(op);\n                        self.logDebug(action.context, `Merge ${nestedExpressions.length} nested filters into conjunctive filter`);\n                        return {\n                            recurse: true,\n                            result: factory.createFilter(input, nestedExpressions.slice(1).reduce((previous, current) => factory.createOperatorExpression('&&', [previous, current]), nestedExpressions[0])),\n                        };\n                    }\n                    return {\n                        recurse: true,\n                        result: op,\n                    };\n                },\n            });\n        }\n        return { operation, context: action.context };\n    }\n    /**\n     * Check if the given filter operation must be attempted to push down, based on the following criteria:\n     * - Always push down if aggressive mode is enabled\n     * - Push down if the filter is extremely selective\n     * - Push down if federated and at least one accepts the filter\n     * @param operation The filter operation\n     * @param sources The query sources in the operation\n     * @param sourceShapes A mapping of sources to selector shapes.\n     */\n    shouldAttemptPushDown(operation, sources, sourceShapes) {\n        // Always push down if aggressive mode is enabled\n        if (this.aggressivePushdown) {\n            return true;\n        }\n        // Push down if the filter is extremely selective\n        const expression = operation.expression;\n        if (expression.expressionType === sparqlalgebrajs_1.Algebra.expressionTypes.OPERATOR &&\n            expression.operator === '=' &&\n            ((expression.args[0].expressionType === 'term' && expression.args[0].term.termType !== 'Variable' &&\n                expression.args[1].expressionType === 'term' && expression.args[1].term.termType === 'Variable') ||\n                (expression.args[0].expressionType === 'term' && expression.args[0].term.termType === 'Variable' &&\n                    expression.args[1].expressionType === 'term' && expression.args[1].term.termType !== 'Variable'))) {\n            return true;\n        }\n        // Push down if federated and at least one accepts the filter\n        if (sources.some(source => (0, utils_query_operation_1.doesShapeAcceptOperation)(sourceShapes.get(source), operation))) {\n            return true;\n        }\n        // Don't push down in all other cases\n        return false;\n    }\n    /**\n     * Collected all sources that are defined within the given operation of children recursively.\n     * @param operation An operation.\n     */\n    getSources(operation) {\n        const sources = new Set();\n        const sourceAdder = (subOperation) => {\n            const src = (0, utils_query_operation_1.getOperationSource)(subOperation);\n            if (src) {\n                sources.add(src);\n            }\n            return false;\n        };\n        sparqlalgebrajs_1.Util.recurseOperation(operation, {\n            [sparqlalgebrajs_1.Algebra.types.PATTERN]: sourceAdder,\n            [sparqlalgebrajs_1.Algebra.types.LINK]: sourceAdder,\n            [sparqlalgebrajs_1.Algebra.types.NPS]: sourceAdder,\n            [sparqlalgebrajs_1.Algebra.types.SERVICE]: sourceAdder,\n        });\n        return [...sources];\n    }\n    /**\n     * Get all variables inside the given expression.\n     * @param expression An expression.\n     * @return An array of variables, or undefined if the expression is unsupported for pushdown.\n     */\n    getExpressionVariables(expression) {\n        switch (expression.expressionType) {\n            case sparqlalgebrajs_1.Algebra.expressionTypes.AGGREGATE:\n            case sparqlalgebrajs_1.Algebra.expressionTypes.WILDCARD:\n                throw new Error(`Getting expression variables is not supported for ${expression.expressionType}`);\n            case sparqlalgebrajs_1.Algebra.expressionTypes.EXISTENCE:\n                return sparqlalgebrajs_1.Util.inScopeVariables(expression.input);\n            case sparqlalgebrajs_1.Algebra.expressionTypes.NAMED:\n                return [];\n            case sparqlalgebrajs_1.Algebra.expressionTypes.OPERATOR:\n                return (0, rdf_terms_1.uniqTerms)(expression.args.flatMap(arg => this.getExpressionVariables(arg)));\n            case sparqlalgebrajs_1.Algebra.expressionTypes.TERM:\n                if (expression.term.termType === 'Variable') {\n                    return [expression.term];\n                }\n                return [];\n        }\n    }\n    getOverlappingOperations(operation, expressionVariables) {\n        const fullyOverlapping = [];\n        const partiallyOverlapping = [];\n        const notOverlapping = [];\n        for (const input of operation.input) {\n            const inputVariables = sparqlalgebrajs_1.Util.inScopeVariables(input);\n            if (this.variablesSubSetOf(expressionVariables, inputVariables)) {\n                fullyOverlapping.push(input);\n            }\n            else if (this.variablesIntersect(expressionVariables, inputVariables)) {\n                partiallyOverlapping.push(input);\n            }\n            else {\n                notOverlapping.push(input);\n            }\n        }\n        return {\n            fullyOverlapping,\n            partiallyOverlapping,\n            notOverlapping,\n        };\n    }\n    /**\n     * Recursively push down the given expression into the given operation if possible.\n     * Different operators have different semantics for choosing whether or not to push down,\n     * and how this pushdown is done.\n     * For every passed operator, it is checked whether or not the filter will have any effect on the operation.\n     * If not, the filter is voided.\n     * @param expression An expression to push down.\n     * @param expressionVariables The variables inside the given expression.\n     * @param operation The operation to push down into.\n     * @param factory An algebra factory.\n     * @param context The action context.\n     * @return A tuple indicating if the operation was modified and the modified operation.\n     */\n    filterPushdown(expression, expressionVariables, operation, factory, context) {\n        // Void false expressions\n        if (this.isExpressionFalse(expression)) {\n            return [true, factory.createUnion([])];\n        }\n        // Don't push down (NOT) EXISTS\n        if (expression.type === sparqlalgebrajs_1.Algebra.types.EXPRESSION &&\n            expression.expressionType === sparqlalgebrajs_1.Algebra.expressionTypes.EXISTENCE) {\n            return [false, factory.createFilter(operation, expression)];\n        }\n        switch (operation.type) {\n            case sparqlalgebrajs_1.Algebra.types.EXTEND:\n                // Pass if the variable is not part of the expression\n                if (!this.variablesIntersect([operation.variable], expressionVariables)) {\n                    return [true, factory.createExtend(this.filterPushdown(expression, expressionVariables, operation.input, factory, context)[1], operation.variable, operation.expression)];\n                }\n                return [false, factory.createFilter(operation, expression)];\n            case sparqlalgebrajs_1.Algebra.types.FILTER: {\n                // Always pass\n                const [isModified, result] = this\n                    .filterPushdown(expression, expressionVariables, operation.input, factory, context);\n                return [isModified, factory.createFilter(result, operation.expression)];\n            }\n            case sparqlalgebrajs_1.Algebra.types.JOIN: {\n                // Don't push down for empty join\n                if (operation.input.length === 0) {\n                    return [false, factory.createFilter(operation, expression)];\n                }\n                // Determine overlapping operations\n                const { fullyOverlapping, partiallyOverlapping, notOverlapping, } = this.getOverlappingOperations(operation, expressionVariables);\n                const joins = [];\n                let isModified = false;\n                if (fullyOverlapping.length > 0) {\n                    isModified = true;\n                    joins.push(factory.createJoin(fullyOverlapping\n                        .map(input => this.filterPushdown(expression, expressionVariables, input, factory, context)[1])));\n                }\n                if (partiallyOverlapping.length > 0) {\n                    joins.push(factory.createFilter(factory.createJoin(partiallyOverlapping, false), expression));\n                }\n                if (notOverlapping.length > 0) {\n                    joins.push(...notOverlapping);\n                }\n                if (joins.length > 1) {\n                    isModified = true;\n                }\n                if (isModified) {\n                    this.logDebug(context, `Push down filter across join entries with ${fullyOverlapping.length} fully overlapping, ${partiallyOverlapping.length} partially overlapping, and ${notOverlapping.length} not overlapping`);\n                }\n                return [isModified, joins.length === 1 ? joins[0] : factory.createJoin(joins)];\n            }\n            case sparqlalgebrajs_1.Algebra.types.NOP:\n                return [true, operation];\n            case sparqlalgebrajs_1.Algebra.types.PROJECT:\n                // Push down if variables overlap\n                if (this.variablesIntersect(operation.variables, expressionVariables)) {\n                    return [true, factory.createProject(this.filterPushdown(expression, expressionVariables, operation.input, factory, context)[1], operation.variables)];\n                }\n                // Void expression otherwise\n                return [true, operation];\n            case sparqlalgebrajs_1.Algebra.types.UNION: {\n                // Determine overlapping operations\n                const { fullyOverlapping, partiallyOverlapping, notOverlapping, } = this.getOverlappingOperations(operation, expressionVariables);\n                const unions = [];\n                let isModified = false;\n                if (fullyOverlapping.length > 0) {\n                    isModified = true;\n                    unions.push(factory.createUnion(fullyOverlapping\n                        .map(input => this.filterPushdown(expression, expressionVariables, input, factory, context)[1])));\n                }\n                if (partiallyOverlapping.length > 0) {\n                    unions.push(factory.createFilter(factory.createUnion(partiallyOverlapping, false), expression));\n                }\n                if (notOverlapping.length > 0) {\n                    unions.push(...notOverlapping);\n                }\n                if (unions.length > 1) {\n                    isModified = true;\n                }\n                if (isModified) {\n                    this.logDebug(context, `Push down filter across union entries with ${fullyOverlapping.length} fully overlapping, ${partiallyOverlapping.length} partially overlapping, and ${notOverlapping.length} not overlapping`);\n                }\n                return [isModified, unions.length === 1 ? unions[0] : factory.createUnion(unions)];\n            }\n            case sparqlalgebrajs_1.Algebra.types.VALUES:\n                // Only keep filter if it overlaps with the variables\n                if (this.variablesIntersect(operation.variables, expressionVariables)) {\n                    return [false, factory.createFilter(operation, expression)];\n                }\n                return [true, operation];\n            case sparqlalgebrajs_1.Algebra.types.LEFT_JOIN: {\n                if (this.pushIntoLeftJoins) {\n                    const rightVariables = sparqlalgebrajs_1.Util.inScopeVariables(operation.input[1]);\n                    if (!this.variablesIntersect(expressionVariables, rightVariables)) {\n                        // If filter *only* applies to left entry of optional, push it down into that.\n                        this.logDebug(context, `Push down filter into left join`);\n                        return [true, factory.createLeftJoin(this.filterPushdown(expression, expressionVariables, operation.input[0], factory, context)[1], operation.input[1], operation.expression)];\n                    }\n                }\n                // Don't push down in all other cases\n                return [false, factory.createFilter(operation, expression)];\n            }\n            case sparqlalgebrajs_1.Algebra.types.PATTERN: {\n                if (this.pushEqualityIntoPatterns) {\n                    // Try to push simple FILTER(?s = <iri>) expressions into the pattern\n                    const pushableResult = this.getEqualityExpressionPushableIntoPattern(expression);\n                    if (pushableResult) {\n                        let isModified = false;\n                        const originalMetadata = operation.metadata;\n                        operation = (0, rdf_terms_1.mapTermsNested)(operation, (value) => {\n                            if (value.equals(pushableResult.variable)) {\n                                isModified = true;\n                                return pushableResult.term;\n                            }\n                            return value;\n                        });\n                        operation.type = sparqlalgebrajs_1.Algebra.types.PATTERN;\n                        operation.metadata = originalMetadata;\n                        if (isModified) {\n                            this.logDebug(context, `Push down filter into pattern for ?${pushableResult.variable.value}`);\n                            return [true, factory.createJoin([\n                                    operation,\n                                    factory.createValues([pushableResult.variable], [{ [`?${pushableResult.variable.value}`]: pushableResult.term }]),\n                                ])];\n                        }\n                    }\n                }\n                // Don't push down in all other cases\n                return [false, factory.createFilter(operation, expression)];\n            }\n            case sparqlalgebrajs_1.Algebra.types.PATH: {\n                if (this.pushEqualityIntoPatterns) {\n                    // Try to push simple FILTER(?s = <iri>) expressions into the path\n                    const pushableResult = this.getEqualityExpressionPushableIntoPattern(expression);\n                    if (pushableResult &&\n                        (operation.subject.equals(pushableResult.variable) || operation.object.equals(pushableResult.variable))) {\n                        this.logDebug(context, `Push down filter into path for ?${pushableResult.variable.value}`);\n                        const originalMetadata = operation.metadata;\n                        operation = factory.createPath(operation.subject.equals(pushableResult.variable) ? pushableResult.term : operation.subject, operation.predicate, operation.object.equals(pushableResult.variable) ? pushableResult.term : operation.object);\n                        operation.metadata = originalMetadata;\n                        return [true, factory.createJoin([\n                                operation,\n                                factory.createValues([pushableResult.variable], [{ [`?${pushableResult.variable.value}`]: pushableResult.term }]),\n                            ])];\n                    }\n                }\n                // Don't push down in all other cases\n                return [false, factory.createFilter(operation, expression)];\n            }\n            case sparqlalgebrajs_1.Algebra.types.MINUS:\n            case sparqlalgebrajs_1.Algebra.types.ALT:\n            case sparqlalgebrajs_1.Algebra.types.ASK:\n            case sparqlalgebrajs_1.Algebra.types.BGP:\n            case sparqlalgebrajs_1.Algebra.types.CONSTRUCT:\n            case sparqlalgebrajs_1.Algebra.types.DESCRIBE:\n            case sparqlalgebrajs_1.Algebra.types.DISTINCT:\n            case sparqlalgebrajs_1.Algebra.types.EXPRESSION:\n            case sparqlalgebrajs_1.Algebra.types.FROM:\n            case sparqlalgebrajs_1.Algebra.types.GRAPH:\n            case sparqlalgebrajs_1.Algebra.types.GROUP:\n            case sparqlalgebrajs_1.Algebra.types.INV:\n            case sparqlalgebrajs_1.Algebra.types.LINK:\n            case sparqlalgebrajs_1.Algebra.types.NPS:\n            case sparqlalgebrajs_1.Algebra.types.ONE_OR_MORE_PATH:\n            case sparqlalgebrajs_1.Algebra.types.ORDER_BY:\n            case sparqlalgebrajs_1.Algebra.types.REDUCED:\n            case sparqlalgebrajs_1.Algebra.types.SEQ:\n            case sparqlalgebrajs_1.Algebra.types.SERVICE:\n            case sparqlalgebrajs_1.Algebra.types.SLICE:\n            case sparqlalgebrajs_1.Algebra.types.ZERO_OR_MORE_PATH:\n            case sparqlalgebrajs_1.Algebra.types.ZERO_OR_ONE_PATH:\n            case sparqlalgebrajs_1.Algebra.types.COMPOSITE_UPDATE:\n            case sparqlalgebrajs_1.Algebra.types.DELETE_INSERT:\n            case sparqlalgebrajs_1.Algebra.types.LOAD:\n            case sparqlalgebrajs_1.Algebra.types.CLEAR:\n            case sparqlalgebrajs_1.Algebra.types.CREATE:\n            case sparqlalgebrajs_1.Algebra.types.DROP:\n            case sparqlalgebrajs_1.Algebra.types.ADD:\n            case sparqlalgebrajs_1.Algebra.types.MOVE:\n            case sparqlalgebrajs_1.Algebra.types.COPY:\n                // Operations that do not support pushing down\n                // Left-join and minus might be possible to support in the future.\n                return [false, factory.createFilter(operation, expression)];\n        }\n    }\n    /**\n     * Check if the given expression is a simple equals operation with one variable and one non-literal\n     * (or literal with canonical lexical form) term that can be pushed into a pattern.\n     * @param expression The current expression.\n     * @return The variable and term to fill into the pattern, or undefined.\n     */\n    getEqualityExpressionPushableIntoPattern(expression) {\n        if (expression.expressionType === sparqlalgebrajs_1.Algebra.expressionTypes.OPERATOR && expression.operator === '=') {\n            if (expression.args[0].expressionType === 'term' && expression.args[0].term.termType !== 'Variable' &&\n                (expression.args[0].term.termType !== 'Literal' ||\n                    this.isLiteralWithCanonicalLexicalForm(expression.args[0].term)) &&\n                expression.args[1].expressionType === 'term' && expression.args[1].term.termType === 'Variable') {\n                return {\n                    variable: expression.args[1].term,\n                    term: expression.args[0].term,\n                };\n            }\n            if (expression.args[0].expressionType === 'term' && expression.args[0].term.termType === 'Variable' &&\n                expression.args[1].expressionType === 'term' && expression.args[1].term.termType !== 'Variable' &&\n                (expression.args[1].term.termType !== 'Literal' ||\n                    this.isLiteralWithCanonicalLexicalForm(expression.args[1].term))) {\n                return {\n                    variable: expression.args[0].term,\n                    term: expression.args[1].term,\n                };\n            }\n        }\n    }\n    /**\n     * Check if the given term is a literal with datatype that where all values\n     * can only have one possible lexical representation.\n     * In other words, no variants of values exist that should be considered equal.\n     * For example: \"01\"^xsd:number and \"1\"^xsd:number will return false.\n     * @param term An RDF term.\n     * @protected\n     */\n    isLiteralWithCanonicalLexicalForm(term) {\n        if (term.termType === 'Literal') {\n            switch (term.datatype.value) {\n                case 'http://www.w3.org/2001/XMLSchema#string':\n                case 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString':\n                case 'http://www.w3.org/2001/XMLSchema#normalizedString':\n                case 'http://www.w3.org/2001/XMLSchema#anyURI':\n                case 'http://www.w3.org/2001/XMLSchema#base64Binary':\n                case 'http://www.w3.org/2001/XMLSchema#language':\n                case 'http://www.w3.org/2001/XMLSchema#Name':\n                case 'http://www.w3.org/2001/XMLSchema#NCName':\n                case 'http://www.w3.org/2001/XMLSchema#NMTOKEN':\n                case 'http://www.w3.org/2001/XMLSchema#token':\n                case 'http://www.w3.org/2001/XMLSchema#hexBinary':\n                    return true;\n            }\n        }\n        return false;\n    }\n    /**\n     * Check if there is an overlap between the two given lists of variables.\n     * @param varsA A list of variables.\n     * @param varsB A list of variables.\n     */\n    variablesIntersect(varsA, varsB) {\n        return varsA.some(varA => varsB.some(varB => varA.equals(varB)));\n    }\n    /**\n     * Check if all variables from the first list are included in the second list.\n     * The second list may contain other variables as well.\n     * @param varsNeedles A list of variables to search for.\n     * @param varsHaystack A list of variables to search in.\n     */\n    variablesSubSetOf(varsNeedles, varsHaystack) {\n        return varsNeedles.length <= varsHaystack.length &&\n            varsNeedles.every(varA => varsHaystack.some(varB => varA.equals(varB)));\n    }\n    /**\n     * Check if an expression is simply 'false'.\n     * @param expression An expression.\n     */\n    isExpressionFalse(expression) {\n        return (expression.term && expression.term.termType === 'Literal' && expression.term.value === 'false');\n    }\n    /**\n     * Get all directly nested filter expressions.\n     * As soon as a non-filter is found, it is returned as the input field.\n     * @param op A filter expression.\n     */\n    getNestedFilterExpressions(op) {\n        if (op.input.type === sparqlalgebrajs_1.Algebra.types.FILTER) {\n            const childData = this.getNestedFilterExpressions(op.input);\n            return { nestedExpressions: [op.expression, ...childData.nestedExpressions], input: childData.input };\n        }\n        return { nestedExpressions: [op.expression], input: op.input };\n    }\n}\nexports.ActorOptimizeQueryOperationFilterPushdown = ActorOptimizeQueryOperationFilterPushdown;\n//# sourceMappingURL=ActorOptimizeQueryOperationFilterPushdown.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationFilterPushdown\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorDereferenceHttpBase = exports.mediaTypesToAcceptString = void 0;\nconst bus_dereference_1 = require(\"@comunica/bus-dereference\");\nconst bus_http_1 = require(\"@comunica/bus-http\");\nconst core_1 = require(\"@comunica/core\");\nconst stream_to_string_1 = require(\"@jeswr/stream-to-string\");\nconst relative_to_absolute_iri_1 = require(\"relative-to-absolute-iri\");\nconst REGEX_MEDIATYPE = /^[^ ;]*/u;\nfunction mediaTypesToAcceptString(mediaTypes, maxLength) {\n    const wildcard = '*/*;q=0.1';\n    const parts = [];\n    const sortedMediaTypes = Object.entries(mediaTypes)\n        .map(([mediaType, priority]) => ({ mediaType, priority }))\n        .sort((left, right) => right.priority === left.priority ?\n        left.mediaType.localeCompare(right.mediaType) :\n        right.priority - left.priority);\n    // Take into account the ',' characters joining each type\n    let partsLength = sortedMediaTypes.length - 1;\n    for (const { mediaType, priority } of sortedMediaTypes) {\n        const part = mediaType + (priority === 1 ? '' : `;q=${priority.toFixed(3).replace(/0*$/u, '')}`);\n        if (partsLength + part.length > maxLength) {\n            while (partsLength + wildcard.length > maxLength) {\n                const last = parts.pop() ?? '';\n                // Don't forget the ','\n                partsLength -= last.length + 1;\n            }\n            parts.push(wildcard);\n            break;\n        }\n        parts.push(part);\n        partsLength += part.length;\n    }\n    return parts.length === 0 ? '*/*' : parts.join(',');\n}\nexports.mediaTypesToAcceptString = mediaTypesToAcceptString;\n/**\n * An actor that listens on the 'dereference' bus.\n *\n * It resolves the URL using the HTTP bus using an accept header compiled from the available media types.\n */\nclass ActorDereferenceHttpBase extends bus_dereference_1.ActorDereference {\n    constructor(args) {\n        super(args);\n    }\n    async test({ url }) {\n        if (!/^https?:/u.test(url)) {\n            return (0, core_1.failTest)(`Cannot retrieve ${url} because it is not an HTTP(S) URL.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        let exists = true;\n        // Append any custom passed headers\n        const headers = new Headers(action.headers);\n        // Resolve HTTP URL using appropriate accept header\n        headers.append('Accept', mediaTypesToAcceptString(await action.mediaTypes?.() ?? {}, this.getMaxAcceptHeaderLength()));\n        let httpResponse;\n        const requestTimeStart = Date.now();\n        try {\n            httpResponse = await this.mediatorHttp.mediate({\n                context: action.context,\n                init: { headers, method: action.method },\n                input: action.url,\n            });\n        }\n        catch (error) {\n            return this.handleDereferenceErrors(action, error);\n        }\n        // The response URL can be relative to the given URL\n        const url = (0, relative_to_absolute_iri_1.resolve)(httpResponse.url, action.url);\n        const requestTime = Date.now() - requestTimeStart;\n        // Only parse if retrieval was successful\n        if (httpResponse.status !== 200) {\n            exists = false;\n            // Consume the body, to avoid process to hang\n            const bodyString = httpResponse.body ?\n                await (0, stream_to_string_1.stringify)(bus_http_1.ActorHttp.toNodeReadable(httpResponse.body)) :\n                'empty response';\n            if (!action.acceptErrors) {\n                const error = new Error(`Could not retrieve ${action.url} (HTTP status ${httpResponse.status}):\\n${bodyString}`);\n                return this.handleDereferenceErrors(action, error, httpResponse.headers, requestTime);\n            }\n        }\n        const mediaType = REGEX_MEDIATYPE.exec(httpResponse.headers.get('content-type') ?? '')?.[0];\n        // Return the parsed quad stream and whether or not only triples are supported\n        return {\n            url,\n            data: exists ? bus_http_1.ActorHttp.toNodeReadable(httpResponse.body) : (0, bus_dereference_1.emptyReadable)(),\n            exists,\n            requestTime,\n            headers: httpResponse.headers,\n            mediaType: mediaType === 'text/plain' ? undefined : mediaType,\n        };\n    }\n}\nexports.ActorDereferenceHttpBase = ActorDereferenceHttpBase;\n//# sourceMappingURL=ActorDereferenceHttpBase.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorDereferenceHttp = void 0;\nconst ActorDereferenceHttpBase_1 = require(\"./ActorDereferenceHttpBase\");\n/**\n * The browser variant of {@link ActorDereferenceHttp}.\n */\nclass ActorDereferenceHttp extends ActorDereferenceHttpBase_1.ActorDereferenceHttpBase {\n    getMaxAcceptHeaderLength() {\n        return this.maxAcceptHeaderLengthBrowser;\n    }\n}\nexports.ActorDereferenceHttp = ActorDereferenceHttp;\n//# sourceMappingURL=ActorDereferenceHttp-browser.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorDereferenceHttp\"), exports);\n__exportStar(require(\"./ActorDereferenceHttpBase\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHttpProxy = void 0;\nconst bus_http_1 = require(\"@comunica/bus-http\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Proxy Http Actor.\n */\nclass ActorHttpProxy extends bus_http_1.ActorHttp {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        const proxyHandler = action.context.get(context_entries_1.KeysHttpProxy.httpProxyHandler);\n        if (!proxyHandler) {\n            return (0, core_1.failTest)(`Actor ${this.name} could not find a proxy handler in the context.`);\n        }\n        if (!await proxyHandler.getProxy(action)) {\n            return (0, core_1.failTest)(`Actor ${this.name} could not determine a proxy for the given request.`);\n        }\n        return (0, core_1.passTest)({ time: Number.POSITIVE_INFINITY });\n    }\n    async run(action) {\n        const requestedUrl = typeof action.input === 'string' ? action.input : action.input.url;\n        const proxyHandler = action.context.get(context_entries_1.KeysHttpProxy.httpProxyHandler);\n        // Send a request for the modified request\n        const output = await this.mediatorHttp.mediate({\n            ...await proxyHandler.getProxy(action),\n            context: action.context.delete(context_entries_1.KeysHttpProxy.httpProxyHandler),\n        });\n        // Modify the response URL\n        // use defineProperty to allow modification of unmodifiable objects\n        Object.defineProperty(output, 'url', {\n            configurable: true,\n            enumerable: true,\n            get: () => output.headers.get('x-final-url') ?? requestedUrl,\n        });\n        return output;\n    }\n}\nexports.ActorHttpProxy = ActorHttpProxy;\n//# sourceMappingURL=ActorHttpProxy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProxyHandlerStatic = void 0;\n/**\n * A proxy handler that prefixes all URLs with a given string.\n */\nclass ProxyHandlerStatic {\n    constructor(prefixUrl) {\n        this.prefixUrl = prefixUrl;\n    }\n    async getProxy(request) {\n        return {\n            init: request.init,\n            input: this.modifyInput(request.input),\n        };\n    }\n    modifyInput(input) {\n        if (typeof input === 'string') {\n            return this.prefixUrl + input;\n        }\n        return new Request(this.prefixUrl + input.url, input);\n    }\n}\nexports.ProxyHandlerStatic = ProxyHandlerStatic;\n//# sourceMappingURL=ProxyHandlerStatic.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHttpProxy\"), exports);\n__exportStar(require(\"./ProxyHandlerStatic\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorContextPreprocessQuerySourceIdentify = void 0;\nconst bus_context_preprocess_1 = require(\"@comunica/bus-context-preprocess\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst lru_cache_1 = require(\"lru-cache\");\n/**\n * A comunica Query Source Identify Context Preprocess Actor.\n */\nclass ActorContextPreprocessQuerySourceIdentify extends bus_context_preprocess_1.ActorContextPreprocess {\n    constructor(args) {\n        super(args);\n        this.cache = this.cacheSize ? new lru_cache_1.LRUCache({ max: this.cacheSize }) : undefined;\n        const cache = this.cache;\n        if (cache) {\n            this.httpInvalidator.addInvalidateListener(({ url }) => url ? cache.delete(url) : cache.clear());\n        }\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        let context = action.context;\n        // Rewrite sources\n        if (context.has(context_entries_1.KeysInitQuery.querySourcesUnidentified)) {\n            const querySourcesUnidentified = action.context\n                .get(context_entries_1.KeysInitQuery.querySourcesUnidentified);\n            const querySourcesUnidentifiedExpanded = await Promise.all(querySourcesUnidentified\n                .map(querySource => this.expandSource(querySource)));\n            const querySources = await Promise.all(querySourcesUnidentifiedExpanded\n                .map(async (querySourceUnidentified) => this.identifySource(querySourceUnidentified, action.context)));\n            // When identifying sources in preprocess actor, we record this as a dereference seed document event\n            const statisticDereferenceLinks = action.context\n                .get(context_entries_1.KeysStatistics.dereferencedLinks);\n            if (statisticDereferenceLinks) {\n                for (const querySource of querySources) {\n                    statisticDereferenceLinks.updateStatistic({\n                        url: querySource.source.referenceValue,\n                        metadata: {\n                            seed: true,\n                        },\n                    }, querySource.source);\n                }\n            }\n            context = action.context\n                .delete(context_entries_1.KeysInitQuery.querySourcesUnidentified)\n                .set(context_entries_1.KeysQueryOperation.querySources, querySources);\n        }\n        return { context };\n    }\n    async expandSource(querySource) {\n        if (typeof querySource === 'string' || 'match' in querySource) {\n            return { value: querySource };\n        }\n        return {\n            ...querySource,\n            context: (await this.mediatorContextPreprocess.mediate({\n                context: core_1.ActionContext.ensureActionContext(querySource.context ?? {}),\n            })).context,\n        };\n    }\n    identifySource(querySourceUnidentified, context) {\n        let sourcePromise;\n        // Try to read from cache\n        // Only sources based on string values (e.g. URLs) are supported!\n        if (typeof querySourceUnidentified.value === 'string' && this.cache) {\n            sourcePromise = this.cache.get(querySourceUnidentified.value);\n        }\n        // If not in cache, identify the source\n        if (!sourcePromise) {\n            sourcePromise = this.mediatorQuerySourceIdentify.mediate({ querySourceUnidentified, context })\n                .then(({ querySource }) => querySource);\n            // Set in cache\n            if (typeof querySourceUnidentified.value === 'string' && this.cache) {\n                this.cache.set(querySourceUnidentified.value, sourcePromise);\n            }\n        }\n        return sourcePromise;\n    }\n}\nexports.ActorContextPreprocessQuerySourceIdentify = ActorContextPreprocessQuerySourceIdentify;\n//# sourceMappingURL=ActorContextPreprocessQuerySourceIdentify.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorContextPreprocessQuerySourceIdentify\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfUpdateQuadsHypermedia = void 0;\nconst bus_rdf_update_quads_1 = require(\"@comunica/bus-rdf-update-quads\");\nconst core_1 = require(\"@comunica/core\");\nconst lru_cache_1 = require(\"lru-cache\");\n/**\n * A comunica Hypermedia RDF Update Quads Actor.\n */\nclass ActorRdfUpdateQuadsHypermedia extends bus_rdf_update_quads_1.ActorRdfUpdateQuadsDestination {\n    constructor(args) {\n        super(args);\n        this.cache = this.cacheSize ? new lru_cache_1.LRUCache({ max: this.cacheSize }) : undefined;\n        const cache = this.cache;\n        if (cache) {\n            this.httpInvalidator.addInvalidateListener(({ url }) => url ? cache.delete(url) : cache.clear());\n        }\n    }\n    async test(action) {\n        const url = (0, bus_rdf_update_quads_1.getContextDestinationUrl)((0, bus_rdf_update_quads_1.getContextDestination)(action.context));\n        if (!url) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only update quads against a single destination URL.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    getDestination(context) {\n        const dataDestination = (0, bus_rdf_update_quads_1.getContextDestination)(context);\n        let url = (0, bus_rdf_update_quads_1.getContextDestinationUrl)(dataDestination);\n        // Try to read from cache\n        if (this.cache && this.cache.has(url)) {\n            return this.cache.get(url);\n        }\n        // Otherwise, call mediators\n        const ret = (async () => {\n            let metadata;\n            let exists;\n            try {\n                // Dereference destination URL\n                const dereferenceRdfOutput = await this.mediatorDereferenceRdf\n                    .mediate({ context, url, acceptErrors: true });\n                exists = dereferenceRdfOutput.exists;\n                url = dereferenceRdfOutput.url;\n                // Determine the metadata\n                const rdfMetadataOuput = await this.mediatorMetadata.mediate({ context, url, quads: dereferenceRdfOutput.data, triples: dereferenceRdfOutput.metadata?.triples });\n                metadata = (await this.mediatorMetadataExtract.mediate({\n                    context,\n                    url,\n                    metadata: rdfMetadataOuput.metadata,\n                    headers: dereferenceRdfOutput.headers,\n                    requestTime: dereferenceRdfOutput.requestTime,\n                })).metadata;\n            }\n            catch {\n                metadata = {};\n                exists = false;\n            }\n            // Obtain destination\n            const { destination } = await this.mediatorRdfUpdateHypermedia.mediate({\n                context,\n                url,\n                metadata,\n                exists,\n                forceDestinationType: (0, bus_rdf_update_quads_1.getDataDestinationType)(dataDestination),\n            });\n            return destination;\n        })();\n        if (this.cache) {\n            this.cache.set(url, ret);\n        }\n        return ret;\n    }\n}\nexports.ActorRdfUpdateQuadsHypermedia = ActorRdfUpdateQuadsHypermedia;\n//# sourceMappingURL=ActorRdfUpdateQuadsHypermedia.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfUpdateQuadsHypermedia\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionObserverHttp = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * Observes HTTP actions, and maintains a counter of the number of requests.\n */\nclass ActionObserverHttp extends core_1.ActionObserver {\n    /* eslint-disable max-len */\n    /**\n     * @param args - @defaultNested {<npmd:@comunica/bus-http/^4.0.0/components/ActorHttp.jsonld#ActorHttp_default_bus>} bus\n     */\n    constructor(args) {\n        super(args);\n        this.requests = 0;\n        this.bus.subscribeObserver(this);\n        this.httpInvalidator.addInvalidateListener(() => {\n            this.requests = 0;\n        });\n    }\n    /* eslint-enable max-len */\n    onRun(actor, _action, _output) {\n        if (this.observedActors.includes(actor.name)) {\n            this.requests++;\n        }\n    }\n}\nexports.ActionObserverHttp = ActionObserverHttp;\n//# sourceMappingURL=ActionObserverHttp.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeSparqlJson = void 0;\nconst bus_query_result_serialize_1 = require(\"@comunica/bus-query-result-serialize\");\nconst core_1 = require(\"@comunica/core\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A comunica sparql-results+xml Serialize Actor.\n */\nclass ActorQueryResultSerializeSparqlJson extends bus_query_result_serialize_1.ActorQueryResultSerializeFixedMediaTypes {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {{\n     *       \"application/sparql-results+json\": 0.8\n     *     }} mediaTypePriorities\n     *   \\ @defaultNested {{\n     *       \"application/sparql-results+json\": \"http://www.w3.org/ns/formats/SPARQL_Results_JSON\"\n     *     }} mediaTypeFormats\n     *   \\ @defaultNested {true} emitMetadata\n     *   \\ @defaultNested {<default_observer> a <caqrssj:components/ActionObserverHttp.jsonld#ActionObserverHttp>} httpObserver\n     */\n    constructor(args) {\n        super(args);\n    }\n    /* eslint-enable max-len */\n    /**\n     * Converts an RDF term to its JSON representation.\n     * @param {RDF.Term} value An RDF term.\n     * @return {any} A JSON object.\n     */\n    static bindingToJsonBindings(value) {\n        if (value.termType === 'Literal') {\n            const literal = value;\n            const jsonValue = { value: literal.value, type: 'literal' };\n            const { language, datatype } = literal;\n            if (language) {\n                jsonValue['xml:lang'] = language;\n            }\n            else if (datatype && datatype.value !== 'http://www.w3.org/2001/XMLSchema#string') {\n                jsonValue.datatype = datatype.value;\n            }\n            return jsonValue;\n        }\n        if (value.termType === 'BlankNode') {\n            return { value: value.value, type: 'bnode' };\n        }\n        if (value.termType === 'Quad') {\n            return {\n                value: {\n                    subject: ActorQueryResultSerializeSparqlJson.bindingToJsonBindings(value.subject),\n                    predicate: ActorQueryResultSerializeSparqlJson.bindingToJsonBindings(value.predicate),\n                    object: ActorQueryResultSerializeSparqlJson.bindingToJsonBindings(value.object),\n                },\n                type: 'triple',\n            };\n        }\n        return { value: value.value, type: 'uri' };\n    }\n    async testHandleChecked(action, _context) {\n        if (!['bindings', 'boolean'].includes(action.type)) {\n            return (0, core_1.failTest)('This actor can only handle bindings streams or booleans.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async runHandle(action, _mediaType, _context) {\n        const data = new readable_stream_1.Readable();\n        // Write head\n        const head = {};\n        if (action.type === 'bindings') {\n            const metadata = await action.metadata();\n            if (metadata.variables.length > 0) {\n                head.vars = metadata.variables.map(variable => variable.variable.value);\n            }\n        }\n        data.push(`{\"head\": ${JSON.stringify(head)},\\n`);\n        if (action.type === 'bindings') {\n            const resultStream = action.bindingsStream;\n            data.push('\"results\": { \"bindings\": [\\n');\n            let first = true;\n            function* end(cb) {\n                yield cb();\n            }\n            // Write bindings\n            data.wrap(\n            // JSON SPARQL results spec does not allow unbound variables and blank node bindings\n            (0, asynciterator_1.wrap)(resultStream).map((bindings) => {\n                const res = `${first ? '' : ',\\n'}${JSON.stringify(Object.fromEntries([...bindings]\n                    .map(([key, value]) => [key.value, ActorQueryResultSerializeSparqlJson.bindingToJsonBindings(value)])))}`;\n                first = false;\n                return res;\n            }).append((0, asynciterator_1.wrap)(end(() => `\\n]}${this.emitMetadata ? `,\\n\"metadata\": { \"httpRequests\": ${this.httpObserver.requests} }` : ''}}\\n`))));\n        }\n        else {\n            data.wrap((0, asynciterator_1.wrap)(action.execute().then(value => [`\"boolean\":${value}\\n}\\n`])));\n        }\n        return { data };\n    }\n}\nexports.ActorQueryResultSerializeSparqlJson = ActorQueryResultSerializeSparqlJson;\n//# sourceMappingURL=ActorQueryResultSerializeSparqlJson.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActionObserverHttp\"), exports);\n__exportStar(require(\"./ActorQueryResultSerializeSparqlJson\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionObserverHttp = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * Observes HTTP actions, and maintains a counter of the number of requests.\n */\nclass ActionObserverHttp extends core_1.ActionObserver {\n    /* eslint-disable max-len */\n    /**\n     * @param args - @defaultNested {<npmd:@comunica/bus-http/^4.0.0/components/ActorHttp.jsonld#ActorHttp_default_bus>} bus\n     */\n    constructor(args) {\n        super(args);\n        this.requests = 0;\n        this.bus.subscribeObserver(this);\n        this.httpInvalidator.addInvalidateListener(() => {\n            this.requests = 0;\n        });\n    }\n    /* eslint-enable max-len */\n    onRun(actor, _action, _output) {\n        if (this.observedActors.includes(actor.name)) {\n            this.requests++;\n        }\n    }\n}\nexports.ActionObserverHttp = ActionObserverHttp;\n//# sourceMappingURL=ActionObserverHttp.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryResultSerializeStats = void 0;\nconst bus_query_result_serialize_1 = require(\"@comunica/bus-query-result-serialize\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * Serializes SPARQL results for testing and debugging.\n */\nclass ActorQueryResultSerializeStats extends bus_query_result_serialize_1.ActorQueryResultSerializeFixedMediaTypes {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {{ \"stats\": 0.5 }} mediaTypePriorities\n     *   \\ @defaultNested {{ \"stats\": \"https://comunica.linkeddatafragments.org/#results_stats\" }} mediaTypeFormats\n     *   \\ @defaultNested {<default_observer> a <caqrsst:components/ActionObserverHttp.jsonld#ActionObserverHttp>} httpObserver\n     */\n    constructor(args) {\n        super(args);\n    }\n    /* eslint-enable max-len */\n    async testHandleChecked(action, _context) {\n        if (!['bindings', 'quads'].includes(action.type)) {\n            return (0, core_1.failTest)('This actor can only handle bindings streams or quad streams.');\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    pushHeader(data) {\n        const header = ['Result', 'Delay (ms)', 'HTTP requests',\n        ].join(',');\n        data.push(`${header}\\n`);\n    }\n    createStat(startTime, result) {\n        const row = [result, this.delay(startTime), this.httpObserver.requests,\n        ].join(',');\n        return `${row}\\n`;\n    }\n    createSpecialLine(label, startTime) {\n        const line = [label, this.delay(startTime), this.httpObserver.requests,\n        ].join(',');\n        return `${line}\\n`;\n    }\n    async runHandle(action, _mediaType, _context) {\n        const data = new readable_stream_1.Readable();\n        const resultStream = action.type === 'bindings' ?\n            action.bindingsStream :\n            action.quadStream;\n        const startTime = action.context.getSafe(context_entries_1.KeysInitQuery.queryTimestampHighResolution);\n        let result = 1;\n        function* end(cb) {\n            yield cb();\n        }\n        const stream = (0, asynciterator_1.wrap)(resultStream)\n            .map(() => this.createStat(startTime, result++))\n            .prepend([this.createSpecialLine('PLANNING', startTime)])\n            .append((0, asynciterator_1.wrap)(end(() => this.createSpecialLine('TOTAL', startTime))));\n        this.pushHeader(data);\n        data.wrap(stream);\n        return { data };\n    }\n    now() {\n        return performance.now();\n    }\n    delay(startTime) {\n        return this.now() - startTime;\n    }\n}\nexports.ActorQueryResultSerializeStats = ActorQueryResultSerializeStats;\n//# sourceMappingURL=ActorQueryResultSerializeStats.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActionObserverHttp\"), exports);\n__exportStar(require(\"./ActorQueryResultSerializeStats\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQuerySourceIdentifyHypermedia = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for query-source-identify-hypermedia events.\n *\n * Actor types:\n * * Input:  IActionQuerySourceIdentifyHypermedia:      The metadata in the document and a query operation.\n * * Test:   <none>\n * * Output: IActorQuerySourceIdentifyHypermediaOutput: A query source.\n *\n * @see IActionQuerySourceIdentifyHypermedia\n * @see IActorQuerySourceIdentifyHypermediaOutput\n */\nclass ActorQuerySourceIdentifyHypermedia extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Query source hypermedia identification failed: none of the configured actors were able to identify ${action.url}} busFailMessage\n     * @param sourceType The source type.\n     */\n    /* eslint-enable max-len */\n    constructor(args, sourceType) {\n        super(args);\n        this.sourceType = sourceType;\n    }\n    async test(action) {\n        if (action.forceSourceType && this.sourceType !== action.forceSourceType) {\n            return (0, core_1.failTest)(`Actor ${this.name} is not able to handle source type ${action.forceSourceType}.`);\n        }\n        return this.testMetadata(action);\n    }\n}\nexports.ActorQuerySourceIdentifyHypermedia = ActorQuerySourceIdentifyHypermedia;\n//# sourceMappingURL=ActorQuerySourceIdentifyHypermedia.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQuerySourceIdentifyHypermedia\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQuerySourceIdentify = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for query-source-identify events.\n *\n * Actor types:\n * * Input:  IActionQuerySourceIdentify:      An unidentified query source.\n * * Test:   <none>\n * * Output: IActorQuerySourceIdentifyOutput: An identified query source.\n *\n * @see IActionQuerySourceIdentify\n * @see IActorQuerySourceIdentifyOutput\n */\nclass ActorQuerySourceIdentify extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Query source identification failed: none of the configured actors were able to identify ${action.querySourceUnidentified.value}} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorQuerySourceIdentify = ActorQuerySourceIdentify;\n//# sourceMappingURL=ActorQuerySourceIdentify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterMatchingQuotedQuads = exports.quadsOrderToBindingsOrder = exports.quadsMetadataToBindingsMetadata = exports.setMetadata = exports.getDuplicateElementLinks = exports.getVariables = exports.isTermVariable = exports.quadsToBindings = void 0;\nconst utils_iterator_1 = require(\"@comunica/utils-iterator\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst QuadTermUtil_1 = require(\"rdf-terms/lib/QuadTermUtil\");\n/**\n * Convert an iterator of quads to an iterator of bindings.\n * @param quads The quads to convert.\n * @param pattern The pattern to get variables from to determine bindings.\n *                All quads are also assumed to match the pattern.\n * @param dataFactory The data factory.\n * @param bindingsFactory The factory for creating bindings.\n * @param unionDefaultGraph If union default graph mode is enabled.\n *                          If true, variable graphs will match all graphs, including the default graph.\n *                          If false, variable graphs will only match named graphs, and not the default graph.\n */\nfunction quadsToBindings(quads, pattern, dataFactory, bindingsFactory, unionDefaultGraph) {\n    const variables = getVariables(pattern);\n    // If non-default-graph triples need to be filtered out\n    const filterNonDefaultQuads = pattern.graph.termType === 'Variable' && !unionDefaultGraph;\n    // Detect duplicate variables in the pattern\n    const duplicateElementLinks = getDuplicateElementLinks(pattern);\n    // Convenience datastructure for mapping quad elements to variables\n    const elementVariables = (0, rdf_terms_1.reduceTermsNested)(pattern, (acc, term, keys) => {\n        if (term.termType === 'Variable') {\n            acc[keys.join('_')] = term.value;\n        }\n        return acc;\n    }, {});\n    // Optionally filter, and construct bindings\n    let filteredOutput = quads;\n    // SPARQL query semantics allow graph variables to only match with named graphs, excluding the default graph\n    // But this is not the case when using union default graph semantics\n    if (filterNonDefaultQuads) {\n        filteredOutput = filteredOutput.filter(quad => quad.graph.termType !== 'DefaultGraph');\n    }\n    // If there are duplicate variables in the search pattern,\n    // make sure that we filter out the triples that don't have equal values for those triple elements,\n    // as the rdf-resolve-quad-pattern bus ignores variable names.\n    if (duplicateElementLinks) {\n        filteredOutput = filteredOutput.filter((quad) => {\n            for (const keyLeft in duplicateElementLinks) {\n                const keysLeft = keyLeft.split('_');\n                const valueLeft = (0, rdf_terms_1.getValueNestedPath)(quad, keysLeft);\n                for (const keysRight of duplicateElementLinks[keyLeft]) {\n                    if (!valueLeft.equals((0, rdf_terms_1.getValueNestedPath)(quad, keysRight))) {\n                        return false;\n                    }\n                }\n            }\n            return true;\n        });\n    }\n    // Wrap it in a ClosableIterator, so we can propagate destroy calls\n    const it = new utils_iterator_1.ClosableIterator(filteredOutput.map(quad => bindingsFactory\n        .bindings(Object.keys(elementVariables).map((key) => {\n        const keys = key.split('_');\n        const variable = elementVariables[key];\n        const term = (0, rdf_terms_1.getValueNestedPath)(quad, keys);\n        return [dataFactory.variable(variable), term];\n    }))), {\n        onClose: () => quads.destroy(),\n    });\n    // Set the metadata property\n    setMetadata(dataFactory, it, quads, elementVariables, variables, filterNonDefaultQuads || Boolean(duplicateElementLinks));\n    return it;\n}\nexports.quadsToBindings = quadsToBindings;\n/**\n * Check if a term is a variable.\n * @param {RDF.Term} term An RDF term.\n * @return {any} If the term is a variable or blank node.\n */\nfunction isTermVariable(term) {\n    return term.termType === 'Variable';\n}\nexports.isTermVariable = isTermVariable;\n/**\n * Get all variables in the given pattern.\n * No duplicates are returned.\n * @param {RDF.BaseQuad} pattern A quad pattern.\n */\nfunction getVariables(pattern) {\n    return (0, rdf_terms_1.uniqTerms)((0, rdf_terms_1.getTermsNested)(pattern).filter(isTermVariable));\n}\nexports.getVariables = getVariables;\n/**\n * A helper function to find a hash with quad elements that have duplicate variables.\n *\n * @param {RDF.Quad} pattern A quad pattern.\n *\n * @return {{[p: string]: string[]}} If no equal variable names are present in the four terms, this returns undefined.\n *                                   Otherwise, this maps quad elements paths (['subject'], ['predicate'], ['object'],\n *                                   ['graph'])\n *                                   to the list of quad elements it shares a variable name with.\n *                                   For quoted triples, paths such as ['subject', 'object'] may occur.\n *                                   If no links for a certain element exist, this element will\n *                                   not be included in the hash.\n *                                   Note 1: Quad elements will never have a link to themselves.\n *                                           So this can never occur: { subject: [[ 'subject']] },\n *                                           instead 'null' would be returned.\n *                                   Note 2: Links only exist in one direction,\n *                                           this means that { subject: [[ 'predicate']], predicate: [[ 'subject' ]] }\n *                                           will not occur, instead only { subject: [[ 'predicate']] }\n *                                           will be returned.\n *                                   Note 3: Keys can also be paths, but they are delimited by '_', such as:\n *                                           { subject_object_subject: [[ 'predicate']] }\n */\nfunction getDuplicateElementLinks(pattern) {\n    // Collect a variable to quad elements mapping.\n    const variableElements = {};\n    let duplicateVariables = false;\n    (0, rdf_terms_1.forEachTermsNested)(pattern, (value, keys) => {\n        if (value.termType === 'Variable') {\n            const val = (0, rdf_string_1.termToString)(value);\n            const length = (variableElements[val] || (variableElements[val] = [])).push(keys);\n            duplicateVariables = duplicateVariables || length > 1;\n        }\n    });\n    if (!duplicateVariables) {\n        return;\n    }\n    // Collect quad element to elements with equal variables mapping.\n    const duplicateElementLinks = {};\n    for (const variable in variableElements) {\n        const elements = variableElements[variable];\n        const remainingElements = elements.slice(1);\n        // Only store the elements that have at least one equal element.\n        if (remainingElements.length > 0) {\n            duplicateElementLinks[elements[0].join('_')] = remainingElements;\n        }\n    }\n    return duplicateElementLinks;\n}\nexports.getDuplicateElementLinks = getDuplicateElementLinks;\n/**\n * Set the metadata of the bindings stream derived from the metadata of the quads stream.\n * @param dataFactory The data factory.\n * @param {BindingsStream} bindings The bindings stream that will receive the metadata property.\n * @param {AsyncIterator<Quad>} quads The quads stream that is guaranteed to emit the metadata property.\n * @param elementVariables Mapping of quad term name to variable name.\n * @param variables Variables to include in the metadata\n * @param forceEstimateCardinality Set the cardinality to estimate\n * @return {() => Promise<{[p: string]: any}>} A lazy promise behind a callback resolving to a metadata object.\n */\nfunction setMetadata(dataFactory, bindings, quads, elementVariables, variables, forceEstimateCardinality) {\n    const getMetadataCb = (metadataRaw) => {\n        if (forceEstimateCardinality) {\n            metadataRaw.cardinality.type = 'estimate';\n        }\n        bindings.setProperty('metadata', quadsMetadataToBindingsMetadata(dataFactory, (0, utils_metadata_1.validateMetadataQuads)(metadataRaw), elementVariables, variables));\n        // Propagate metadata invalidations\n        if (metadataRaw.state) {\n            metadataRaw.state.addInvalidateListener(() => {\n                setMetadata(dataFactory, bindings, quads, elementVariables, variables, forceEstimateCardinality);\n            });\n        }\n    };\n    const metadata = quads.getProperty('metadata');\n    if (metadata) {\n        // This is to enforce sync metadata setting, because AsyncIterator will always call it async,\n        // even if the property was already defined.\n        getMetadataCb(metadata);\n    }\n    else {\n        quads.getProperty('metadata', getMetadataCb);\n    }\n}\nexports.setMetadata = setMetadata;\n/**\n * Convert the metadata of quads to the metadata of bindings.\n * @param dataFactory The data factory.\n * @param metadataQuads Quads metadata.\n * @param elementVariables A mapping from quad elements to variables.\n * @param variables The variables in the bindings.\n */\nfunction quadsMetadataToBindingsMetadata(dataFactory, metadataQuads, elementVariables, variables) {\n    return {\n        ...metadataQuads,\n        order: metadataQuads.order ?\n            quadsOrderToBindingsOrder(dataFactory, metadataQuads.order, elementVariables) :\n            undefined,\n        availableOrders: metadataQuads.availableOrders ?\n            metadataQuads.availableOrders.map(orderDef => ({\n                cost: orderDef.cost,\n                terms: quadsOrderToBindingsOrder(dataFactory, orderDef.terms, elementVariables),\n            })) :\n            undefined,\n        variables: variables.map(variable => ({ variable, canBeUndef: false })),\n    };\n}\nexports.quadsMetadataToBindingsMetadata = quadsMetadataToBindingsMetadata;\n/**\n * Convert the quads order metadata element to a bindings order metadata element.\n * @param dataFactory The data factory.\n * @param quadsOrder Quads order.\n * @param elementVariables A mapping from quad elements to variables.\n */\nfunction quadsOrderToBindingsOrder(dataFactory, quadsOrder, elementVariables) {\n    const mappedVariables = {};\n    return quadsOrder.map((entry) => {\n        // Omit entries that do not map to a variable\n        const variableName = elementVariables[entry.term];\n        if (!variableName) {\n            // eslint-disable-next-line array-callback-return\n            return;\n        }\n        // Omit entries that have been mapped already\n        if (mappedVariables[variableName]) {\n            // eslint-disable-next-line array-callback-return\n            return;\n        }\n        mappedVariables[variableName] = true;\n        return {\n            term: dataFactory.variable(variableName),\n            direction: entry.direction,\n        };\n    }).filter(Boolean);\n}\nexports.quadsOrderToBindingsOrder = quadsOrderToBindingsOrder;\n/**\n * Perform post-match-filtering if the source does not support quoted triple filtering,\n * but we have a variable inside a quoted triple.\n * @param pattern The current quad pattern operation.\n * @param it The iterator to filter.\n */\nfunction filterMatchingQuotedQuads(pattern, it) {\n    if ((0, rdf_terms_1.someTerms)(pattern, term => term.termType === 'Quad')) {\n        it = it.filter(quad => (0, QuadTermUtil_1.matchPatternMappings)(quad, pattern));\n    }\n    return it;\n}\nexports.filterMatchingQuotedQuads = filterMatchingQuotedQuads;\n//# sourceMappingURL=Utils.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQuerySourceIdentify\"), exports);\n__exportStar(require(\"./Utils\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuerySourceQpf = void 0;\nconst bus_query_source_identify_1 = require(\"@comunica/bus-query-source-identify\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst rdf_string_ttl_1 = require(\"rdf-string-ttl\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nclass QuerySourceQpf {\n    constructor(mediatorMetadata, mediatorMetadataExtract, mediatorDereferenceRdf, dataFactory, algebraFactory, bindingsFactory, subjectUri, predicateUri, objectUri, graphUri, url, metadata, bindingsRestricted, initialQuads) {\n        this.referenceValue = url;\n        this.mediatorMetadata = mediatorMetadata;\n        this.mediatorMetadataExtract = mediatorMetadataExtract;\n        this.mediatorDereferenceRdf = mediatorDereferenceRdf;\n        this.dataFactory = dataFactory;\n        this.algebraFactory = algebraFactory;\n        this.bindingsFactory = bindingsFactory;\n        this.subjectUri = subjectUri;\n        this.predicateUri = predicateUri;\n        this.objectUri = objectUri;\n        this.graphUri = graphUri;\n        this.url = url;\n        this.bindingsRestricted = bindingsRestricted;\n        this.cachedQuads = {};\n        this.searchForm = this.getSearchForm(metadata);\n        this.defaultGraph = metadata.defaultGraph ? this.dataFactory.namedNode(metadata.defaultGraph) : undefined;\n        if (initialQuads) {\n            let wrappedQuads = (0, asynciterator_1.wrap)(initialQuads);\n            if (this.defaultGraph) {\n                wrappedQuads = this.reverseMapQuadsToDefaultGraph(wrappedQuads);\n            }\n            metadata = { ...metadata, state: new utils_metadata_1.MetadataValidationState() };\n            wrappedQuads.setProperty('metadata', metadata);\n            this.cacheQuads(wrappedQuads, this.dataFactory.variable(''), this.dataFactory.variable(''), this.dataFactory.variable(''), this.dataFactory.variable(''));\n        }\n        this.selectorShape = this.bindingsRestricted ?\n            {\n                type: 'operation',\n                operation: {\n                    operationType: 'pattern',\n                    pattern: this.algebraFactory.createPattern(this.dataFactory.variable('s'), this.dataFactory.variable('p'), this.dataFactory.variable('o'), this.dataFactory.variable('g')),\n                },\n                variablesOptional: [\n                    this.dataFactory.variable('s'),\n                    this.dataFactory.variable('p'),\n                    this.dataFactory.variable('o'),\n                    this.dataFactory.variable('g'),\n                ],\n                filterBindings: true,\n            } :\n            {\n                type: 'operation',\n                operation: {\n                    operationType: 'pattern',\n                    pattern: this.algebraFactory.createPattern(this.dataFactory.variable('s'), this.dataFactory.variable('p'), this.dataFactory.variable('o'), this.dataFactory.variable('g')),\n                },\n                variablesOptional: [\n                    this.dataFactory.variable('s'),\n                    this.dataFactory.variable('p'),\n                    this.dataFactory.variable('o'),\n                    this.dataFactory.variable('g'),\n                ],\n            };\n    }\n    async getSelectorShape() {\n        return this.selectorShape;\n    }\n    queryBindings(operation, context, options) {\n        if (operation.type !== 'pattern') {\n            throw new Error(`Attempted to pass non-pattern operation '${operation.type}' to QuerySourceQpf`);\n        }\n        const unionDefaultGraph = Boolean(context.get(context_entries_1.KeysQueryOperation.unionDefaultGraph));\n        // Create an async iterator from the matched quad stream\n        let it = this.match(operation.subject, operation.predicate, operation.object, operation.graph, unionDefaultGraph, context, options);\n        it = (0, bus_query_source_identify_1.filterMatchingQuotedQuads)(operation, it);\n        return (0, bus_query_source_identify_1.quadsToBindings)(it, operation, this.dataFactory, this.bindingsFactory, unionDefaultGraph);\n    }\n    /**\n     * Get a first QPF search form.\n     * @param {{[p: string]: any}} metadata A metadata object.\n     * @return {ISearchForm} A search form, or null if none could be found.\n     */\n    getSearchForm(metadata) {\n        if (!metadata.searchForms || !metadata.searchForms.values) {\n            return;\n        }\n        // Find a quad pattern or triple pattern search form\n        const { searchForms } = metadata;\n        for (const searchForm of searchForms.values) {\n            if (this.graphUri &&\n                this.subjectUri in searchForm.mappings &&\n                this.predicateUri in searchForm.mappings &&\n                this.objectUri in searchForm.mappings &&\n                this.graphUri in searchForm.mappings &&\n                Object.keys(searchForm.mappings).length === 4) {\n                return searchForm;\n            }\n            if (this.subjectUri in searchForm.mappings &&\n                this.predicateUri in searchForm.mappings &&\n                this.objectUri in searchForm.mappings &&\n                Object.keys(searchForm.mappings).length === 3) {\n                return searchForm;\n            }\n        }\n    }\n    /**\n     * Create a QPF fragment IRI for the given quad pattern.\n     * @param {ISearchForm} searchForm A search form.\n     * @param {Term} subject A term.\n     * @param {Term} predicate A term.\n     * @param {Term} object A term.\n     * @param {Term} graph A term.\n     * @return {string} A URI.\n     */\n    createFragmentUri(searchForm, subject, predicate, object, graph) {\n        const entries = {};\n        const input = [\n            { uri: this.subjectUri, term: subject },\n            { uri: this.predicateUri, term: predicate },\n            { uri: this.objectUri, term: object },\n            { uri: this.graphUri, term: graph },\n        ];\n        for (const entry of input) {\n            // If bindingsRestricted, also pass variables, so the server knows how to bind values.\n            if (entry.uri && (this.bindingsRestricted || (entry.term.termType !== 'Variable' &&\n                (entry.term.termType !== 'Quad' || (0, rdf_terms_1.everyTermsNested)(entry.term, value => value.termType !== 'Variable'))))) {\n                entries[entry.uri] = (0, rdf_string_1.termToString)(entry.term);\n            }\n        }\n        return searchForm.getUri(entries);\n    }\n    match(subject, predicate, object, graph, unionDefaultGraph, context, options) {\n        // If we are querying the default graph,\n        // and the source has an overridden value for the default graph (such as QPF can provide),\n        // we override the graph parameter with that value.\n        let modifiedGraph = false;\n        if (graph.termType === 'DefaultGraph') {\n            if (this.defaultGraph) {\n                modifiedGraph = true;\n                graph = this.defaultGraph;\n            }\n            else if (Object.keys(this.searchForm.mappings).length === 4 && !this.defaultGraph) {\n                // If the sd:defaultGraph is not declared on a QPF endpoint\n                if (unionDefaultGraph) {\n                    // With union-default-graph, take union of graphs.\n                    graph = this.dataFactory.variable('g');\n                }\n                else {\n                    // Without union-default-graph, the default graph must be empty.\n                    const quads = new asynciterator_1.ArrayIterator([], { autoStart: false });\n                    quads.setProperty('metadata', {\n                        state: new utils_metadata_1.MetadataValidationState(),\n                        requestTime: 0,\n                        cardinality: { type: 'exact', value: 0 },\n                        first: null,\n                        next: null,\n                        last: null,\n                    });\n                    return quads;\n                }\n            }\n            else if (Object.keys(this.searchForm.mappings).length === 3) {\n                // If have a TPF endpoint, set graph to variable so we could get the cached triples\n                graph = this.dataFactory.variable('g');\n            }\n        }\n        // Try to emit from cache (skip if filtering bindings)\n        if (!options?.filterBindings) {\n            const cached = this.getCachedQuads(subject, predicate, object, graph);\n            if (cached) {\n                return cached;\n            }\n        }\n        // Kickstart metadata collection, because the quads iterator is lazy\n        // eslint-disable-next-line ts/no-this-alias\n        const self = this;\n        let quads;\n        const dataStreamPromise = (async function () {\n            let url = self.createFragmentUri(self.searchForm, subject, predicate, object, graph);\n            // Handle bindings-restricted interfaces\n            if (options?.filterBindings) {\n                url = await self.getBindingsRestrictedLink(subject, predicate, object, graph, url, options.filterBindings);\n            }\n            const dereferenceRdfOutput = await self.mediatorDereferenceRdf.mediate({ context, url });\n            url = dereferenceRdfOutput.url;\n            // Determine the metadata\n            const rdfMetadataOuput = await self.mediatorMetadata.mediate({ context, url, quads: dereferenceRdfOutput.data, triples: dereferenceRdfOutput.metadata?.triples });\n            // Extract the metadata\n            const { metadata } = await self.mediatorMetadataExtract\n                .mediate({\n                context,\n                url,\n                metadata: rdfMetadataOuput.metadata,\n                requestTime: dereferenceRdfOutput.requestTime,\n            });\n            quads.setProperty('metadata', { ...metadata, state: new utils_metadata_1.MetadataValidationState(), subsetOf: self.url });\n            // While we could resolve this before metadata extraction, we do it afterwards to ensure metadata emission\n            // before the end event is emitted.\n            return rdfMetadataOuput.data;\n        })();\n        quads = new asynciterator_1.TransformIterator(async () => {\n            const dataStream = await dataStreamPromise;\n            // The server is free to send any data in its response (such as metadata),\n            // including quads that do not match the given matter.\n            // Therefore, we have to filter away all non-matching quads here.\n            const actualDefaultGraph = this.dataFactory.defaultGraph();\n            let filteredOutput = (0, asynciterator_1.wrap)(dataStream)\n                .transform({\n                filter(quad) {\n                    if ((0, rdf_terms_1.matchPattern)(quad, subject, predicate, object, graph)) {\n                        return true;\n                    }\n                    // Special case: if we are querying in the default graph, and we had an overridden default graph,\n                    // also accept that incoming triples may be defined in the actual default graph\n                    return modifiedGraph && (0, rdf_terms_1.matchPattern)(quad, subject, predicate, object, actualDefaultGraph);\n                },\n            });\n            if (modifiedGraph || graph.termType === 'Variable') {\n                // Reverse-map the overridden default graph back to the actual default graph\n                filteredOutput = this.reverseMapQuadsToDefaultGraph(filteredOutput);\n            }\n            return filteredOutput;\n        }, { autoStart: false });\n        // Skip cache if filtering bindings\n        if (options?.filterBindings) {\n            return quads;\n        }\n        this.cacheQuads(quads, subject, predicate, object, graph);\n        return this.getCachedQuads(subject, predicate, object, graph);\n    }\n    /**\n     * If we add bindings for brTPF, append it to the URL.\n     * We have to hardcode this because brTPF doesn't expose a URL template for passing bindings.\n     * @param subject The subject.\n     * @param predicate The predicate.\n     * @param object The object.\n     * @param graph The graph.\n     * @param url The original QPF URL.\n     * @param filterBindings The bindings to restrict with.\n     * @param filterBindings.bindings The bindings stream.\n     * @param filterBindings.metadata The bindings metadata.\n     * @protected\n     */\n    async getBindingsRestrictedLink(subject, predicate, object, graph, url, filterBindings) {\n        // Determine values\n        const values = [];\n        for (const binding of await filterBindings.bindings.toArray()) {\n            const value = ['('];\n            for (const variable of filterBindings.metadata.variables) {\n                const term = binding.get(variable.variable);\n                value.push(term ? (0, rdf_string_ttl_1.termToString)(term) : 'UNDEF');\n                value.push(' ');\n            }\n            value.push(')');\n            values.push(value.join(''));\n        }\n        if (values.length === 0) {\n            // This is a hack to force an empty result page,\n            // because the brTPF server returns a server error when passing 0 bindings.\n            values.push('(<ex:comunica:unknown>)');\n        }\n        // Append to URL (brTPF uses the SPARQL VALUES syntax, without the VALUES prefix)\n        const valuesUrl = encodeURIComponent(`(${filterBindings.metadata.variables.map(variable => `?${variable.variable.value}`).join(' ')}) { ${values.join(' ')} }`);\n        return `${url}&values=${valuesUrl}`;\n    }\n    reverseMapQuadsToDefaultGraph(quads) {\n        const actualDefaultGraph = this.dataFactory.defaultGraph();\n        return quads.map(quad => (0, rdf_terms_1.mapTerms)(quad, (term, key) => key === 'graph' && term.equals(this.defaultGraph) ? actualDefaultGraph : term));\n    }\n    getPatternId(subject, predicate, object, graph) {\n        return JSON.stringify({\n            s: subject.termType === 'Variable' ? '' : _termToString(subject),\n            p: predicate.termType === 'Variable' ? '' : _termToString(predicate),\n            o: object.termType === 'Variable' ? '' : _termToString(object),\n            g: graph.termType === 'Variable' ? '' : _termToString(graph),\n        });\n    }\n    cacheQuads(quads, subject, predicate, object, graph) {\n        const patternId = this.getPatternId(subject, predicate, object, graph);\n        this.cachedQuads[patternId] = quads.clone();\n    }\n    getCachedQuads(subject, predicate, object, graph) {\n        const patternId = this.getPatternId(subject, predicate, object, graph);\n        const quads = this.cachedQuads[patternId];\n        if (quads) {\n            return quads.clone();\n        }\n    }\n    queryQuads(_operation, _context) {\n        throw new Error('queryQuads is not implemented in QuerySourceQpf');\n    }\n    queryBoolean(_operation, _context) {\n        throw new Error('queryBoolean is not implemented in QuerySourceQpf');\n    }\n    queryVoid(_operation, _context) {\n        throw new Error('queryVoid is not implemented in QuerySourceQpf');\n    }\n}\nexports.QuerySourceQpf = QuerySourceQpf;\nfunction _termToString(term) {\n    return term.termType === 'DefaultGraph' ?\n        // Any character that cannot be present in a URL will do\n        '|' :\n        (0, rdf_string_1.termToString)(term);\n}\n//# sourceMappingURL=QuerySourceQpf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQuerySourceIdentifyHypermediaQpf = void 0;\nconst bus_query_source_identify_hypermedia_1 = require(\"@comunica/bus-query-source-identify-hypermedia\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst QuerySourceQpf_1 = require(\"./QuerySourceQpf\");\n/**\n * A comunica QPF Query Source Identify Hypermedia Actor.\n */\nclass ActorQuerySourceIdentifyHypermediaQpf extends bus_query_source_identify_hypermedia_1.ActorQuerySourceIdentifyHypermedia {\n    constructor(args) {\n        super(args, 'qpf');\n    }\n    async test(action) {\n        if (action.forceSourceType && (action.forceSourceType !== 'qpf' && action.forceSourceType !== 'brtpf')) {\n            return (0, core_1.failTest)(`Actor ${this.name} is not able to handle source type ${action.forceSourceType}.`);\n        }\n        return this.testMetadata(action);\n    }\n    async testMetadata(action) {\n        const { searchForm } = await this.createSource(action.url, action.metadata, action.context, action.forceSourceType === 'brtpf');\n        if (!searchForm) {\n            return (0, core_1.failTest)('Illegal state: found no TPF/QPF search form anymore in metadata.');\n        }\n        if (action.handledDatasets && action.handledDatasets[searchForm.dataset]) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only be applied for the first page of a QPF dataset.`);\n        }\n        return (0, core_1.passTest)({ filterFactor: 1 });\n    }\n    /**\n     * Look for the search form\n     * @param {IActionRdfResolveHypermedia} action the metadata to look for the form.\n     * @return {Promise<IActorRdfResolveHypermediaOutput>} A promise resolving to a hypermedia form.\n     */\n    async run(action) {\n        this.logInfo(action.context, `Identified as qpf source: ${action.url}`);\n        const source = await this.createSource(action.url, action.metadata, action.context, action.forceSourceType === 'brtpf', action.quads);\n        return { source, dataset: source.searchForm.dataset };\n    }\n    async createSource(url, metadata, context, bindingsRestricted, quads) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        return new QuerySourceQpf_1.QuerySourceQpf(this.mediatorMetadata, this.mediatorMetadataExtract, this.mediatorDereferenceRdf, dataFactory, algebraFactory, await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory), this.subjectUri, this.predicateUri, this.objectUri, this.graphUri, url, metadata, bindingsRestricted, quads);\n    }\n}\nexports.ActorQuerySourceIdentifyHypermediaQpf = ActorQuerySourceIdentifyHypermediaQpf;\n//# sourceMappingURL=ActorQuerySourceIdentifyHypermediaQpf.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQuerySourceIdentifyHypermediaQpf\"), exports);\n__exportStar(require(\"./QuerySourceQpf\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuerySourceSparql = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst fetch_sparql_endpoint_1 = require(\"fetch-sparql-endpoint\");\nconst lru_cache_1 = require(\"lru-cache\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nclass QuerySourceSparql {\n    constructor(url, context, mediatorHttp, bindMethod, dataFactory, algebraFactory, bindingsFactory, forceHttpGet, cacheSize, countTimeout, cardinalityCountQueries, cardinalityEstimateConstruction, defaultGraph, unionDefaultGraph, datasets) {\n        this.referenceValue = url;\n        this.url = url;\n        this.context = context;\n        this.mediatorHttp = mediatorHttp;\n        this.bindMethod = bindMethod;\n        this.dataFactory = dataFactory;\n        this.algebraFactory = algebraFactory;\n        this.bindingsFactory = bindingsFactory;\n        this.endpointFetcher = new fetch_sparql_endpoint_1.SparqlEndpointFetcher({\n            method: forceHttpGet ? 'GET' : 'POST',\n            fetch: (input, init) => this.mediatorHttp.mediate({ input, init, context: this.lastSourceContext }),\n            prefixVariableQuestionMark: true,\n            dataFactory,\n        });\n        this.cache = cacheSize > 0 ?\n            new lru_cache_1.LRUCache({ max: cacheSize }) :\n            undefined;\n        this.countTimeout = countTimeout;\n        this.cardinalityCountQueries = cardinalityCountQueries;\n        this.cardinalityEstimateConstruction = cardinalityEstimateConstruction;\n        this.defaultGraph = defaultGraph;\n        this.unionDefaultGraph = unionDefaultGraph ?? false;\n        this.datasets = datasets;\n    }\n    async getSelectorShape() {\n        return QuerySourceSparql.SELECTOR_SHAPE;\n    }\n    queryBindings(operationIn, context, options) {\n        // If bindings are passed, modify the operations\n        let operationPromise;\n        if (options?.joinBindings) {\n            operationPromise = QuerySourceSparql.addBindingsToOperation(this.algebraFactory, this.bindMethod, operationIn, options.joinBindings);\n        }\n        else {\n            operationPromise = Promise.resolve(operationIn);\n        }\n        const bindings = new asynciterator_1.TransformIterator(async () => {\n            // Prepare queries\n            const operation = await operationPromise;\n            const variables = sparqlalgebrajs_1.Util.inScopeVariables(operation);\n            const queryString = context.get(context_entries_1.KeysInitQuery.queryString);\n            const queryFormat = context.getSafe(context_entries_1.KeysInitQuery.queryFormat);\n            const selectQuery = !options?.joinBindings && queryString && queryFormat.language === 'sparql' ?\n                queryString :\n                QuerySourceSparql.operationToSelectQuery(this.algebraFactory, operation, variables);\n            const undefVariables = QuerySourceSparql.getOperationUndefs(operation);\n            return this.queryBindingsRemote(this.url, selectQuery, variables, context, undefVariables);\n        }, { autoStart: false });\n        this.attachMetadata(bindings, context, operationPromise);\n        return bindings;\n    }\n    queryQuads(operation, context) {\n        this.lastSourceContext = this.context.merge(context);\n        const rawStream = this.endpointFetcher.fetchTriples(this.url, context.get(context_entries_1.KeysInitQuery.queryString) ?? QuerySourceSparql.operationToQuery(operation));\n        this.lastSourceContext = undefined;\n        const quads = (0, asynciterator_1.wrap)(rawStream, { autoStart: false, maxBufferSize: Number.POSITIVE_INFINITY });\n        this.attachMetadata(quads, context, Promise.resolve(operation.input));\n        return quads;\n    }\n    queryBoolean(operation, context) {\n        this.lastSourceContext = this.context.merge(context);\n        const promise = this.endpointFetcher.fetchAsk(this.url, context.get(context_entries_1.KeysInitQuery.queryString) ?? QuerySourceSparql.operationToQuery(operation));\n        this.lastSourceContext = undefined;\n        return promise;\n    }\n    queryVoid(operation, context) {\n        this.lastSourceContext = this.context.merge(context);\n        const promise = this.endpointFetcher.fetchUpdate(this.url, context.get(context_entries_1.KeysInitQuery.queryString) ?? QuerySourceSparql.operationToQuery(operation));\n        this.lastSourceContext = undefined;\n        return promise;\n    }\n    attachMetadata(target, context, operationPromise) {\n        // Emit metadata containing the estimated count\n        let variablesCount = [];\n        // eslint-disable-next-line no-async-promise-executor,ts/no-misused-promises\n        new Promise(async (resolve, reject) => {\n            try {\n                const operation = await operationPromise;\n                const variablesScoped = sparqlalgebrajs_1.Util.inScopeVariables(operation);\n                const countQuery = this.operationToNormalizedCountQuery(operation);\n                const undefVariables = QuerySourceSparql.getOperationUndefs(operation);\n                variablesCount = variablesScoped.map(variable => ({\n                    variable,\n                    canBeUndef: undefVariables.some(undefVariable => undefVariable.equals(variable)),\n                }));\n                const cachedCardinality = this.cache?.get(countQuery);\n                if (cachedCardinality) {\n                    return resolve(cachedCardinality);\n                }\n                // Attempt to estimate locally prior to sending a COUNT request, as this should be much faster.\n                // The estimates may be off by varying amounts, so this is set behind a configuration flag.\n                if (this.cardinalityEstimateConstruction) {\n                    const localEstimate = await this.estimateOperationCardinality(operation);\n                    if (Number.isFinite(localEstimate.value)) {\n                        this.cache?.set(countQuery, localEstimate);\n                        return resolve(localEstimate);\n                    }\n                }\n                // Don't send count queries if disabled.\n                if (!this.cardinalityCountQueries) {\n                    return resolve({ type: 'estimate', value: Number.POSITIVE_INFINITY, dataset: this.url });\n                }\n                const timeoutHandler = setTimeout(() => resolve({\n                    type: 'estimate',\n                    value: Number.POSITIVE_INFINITY,\n                    dataset: this.url,\n                }), this.countTimeout);\n                const varCount = this.dataFactory.variable('count');\n                const bindingsStream = await this\n                    .queryBindingsRemote(this.url, countQuery, [varCount], context, []);\n                bindingsStream.on('data', (bindings) => {\n                    clearTimeout(timeoutHandler);\n                    const count = bindings.get(varCount);\n                    const cardinality = {\n                        type: 'estimate',\n                        value: Number.POSITIVE_INFINITY,\n                        dataset: this.url,\n                    };\n                    if (count) {\n                        const cardinalityValue = Number.parseInt(count.value, 10);\n                        if (!Number.isNaN(cardinalityValue)) {\n                            cardinality.type = 'exact';\n                            cardinality.value = cardinalityValue;\n                            this.cache?.set(countQuery, cardinality);\n                        }\n                    }\n                    return resolve(cardinality);\n                });\n                bindingsStream.on('error', () => {\n                    clearTimeout(timeoutHandler);\n                    resolve({ type: 'estimate', value: Number.POSITIVE_INFINITY, dataset: this.url });\n                });\n                bindingsStream.on('end', () => {\n                    clearTimeout(timeoutHandler);\n                    resolve({ type: 'estimate', value: Number.POSITIVE_INFINITY, dataset: this.url });\n                });\n            }\n            catch (error) {\n                return reject(error);\n            }\n        })\n            .then((cardinality) => {\n            target.setProperty('metadata', {\n                state: new utils_metadata_1.MetadataValidationState(),\n                cardinality,\n                variables: variablesCount,\n            });\n        })\n            .catch(() => target.setProperty('metadata', {\n            state: new utils_metadata_1.MetadataValidationState(),\n            cardinality: { type: 'estimate', value: Number.POSITIVE_INFINITY, dataset: this.url },\n            variables: variablesCount,\n        }));\n    }\n    /**\n     * Convert an algebra operation into a query string, and if the operation is a simple triple pattern,\n     * then also replace any variables with s, p, and o to increase the chance of cache hits.\n     * @param {Algebra.Operation} operation The operation to convert into a query string.\n     * @returns {string} Query string for a COUNT query over the operation.\n     */\n    operationToNormalizedCountQuery(operation) {\n        const normalizedOperation = operation.type === sparqlalgebrajs_1.Algebra.types.PATTERN ?\n            this.algebraFactory.createPattern(operation.subject.termType === 'Variable' ? this.dataFactory.variable('s') : operation.subject, operation.predicate.termType === 'Variable' ? this.dataFactory.variable('p') : operation.predicate, operation.object.termType === 'Variable' ? this.dataFactory.variable('o') : operation.object) :\n            operation;\n        const operationString = QuerySourceSparql.operationToCountQuery(this.dataFactory, this.algebraFactory, normalizedOperation);\n        return operationString;\n    }\n    /**\n     * Performs local cardinality estimation for the specified SPARQL algebra operation, which should\n     * result in better estimation performance at the expense of accuracy.\n     * @param {Algebra.Operation} operation A query operation.\n     */\n    async estimateOperationCardinality(operation) {\n        const dataset = {\n            getCardinality: (operation) => {\n                const queryString = this.operationToNormalizedCountQuery(operation);\n                const cachedCardinality = this.cache?.get(queryString);\n                if (cachedCardinality) {\n                    return cachedCardinality;\n                }\n                if (this.datasets) {\n                    const cardinalities = this.datasets\n                        .filter(ds => this.unionDefaultGraph || (this.defaultGraph && ds.uri.endsWith(this.defaultGraph)))\n                        .map(ds => (0, utils_query_operation_1.estimateCardinality)(operation, ds));\n                    const cardinality = {\n                        type: cardinalities.some(card => card.type === 'estimate') ? 'estimate' : 'exact',\n                        value: cardinalities.length > 0 ? cardinalities.reduce((acc, card) => acc + card.value, 0) : 0,\n                        dataset: this.url,\n                    };\n                    return cardinality;\n                }\n            },\n            source: this.url,\n            uri: this.url,\n        };\n        return (0, utils_query_operation_1.estimateCardinality)(operation, dataset);\n    }\n    /**\n     * Create an operation that includes the bindings from the given bindings stream.\n     * @param algebraFactory The algebra factory.\n     * @param bindMethod A method for adding bindings to an operation.\n     * @param operation The operation to bind to.\n     * @param addBindings The bindings to add.\n     * @param addBindings.bindings The bindings stream.\n     * @param addBindings.metadata The bindings metadata.\n     */\n    static async addBindingsToOperation(algebraFactory, bindMethod, operation, addBindings) {\n        const bindings = await addBindings.bindings.toArray();\n        switch (bindMethod) {\n            case 'values':\n                return algebraFactory.createJoin([\n                    algebraFactory.createValues(addBindings.metadata.variables.map(v => v.variable), bindings.map(binding => Object.fromEntries([...binding]\n                        .map(([key, value]) => [`?${key.value}`, value])))),\n                    operation,\n                ], false);\n            case 'union': {\n                throw new Error('Not implemented yet: \"union\" case');\n            }\n            case 'filter': {\n                throw new Error('Not implemented yet: \"filter\" case');\n            }\n        }\n    }\n    /**\n     * Convert an operation to a select query for this pattern.\n     * @param algebraFactory The algebra factory.\n     * @param {Algebra.Operation} operation A query operation.\n     * @param {RDF.Variable[]} variables The variables in scope for the operation.\n     * @return {string} A select query string.\n     */\n    static operationToSelectQuery(algebraFactory, operation, variables) {\n        return QuerySourceSparql.operationToQuery(algebraFactory.createProject(operation, variables));\n    }\n    /**\n     * Convert an operation to a count query for the number of matching triples for this pattern.\n     * @param dataFactory The data factory.\n     * @param algebraFactory The algebra factory.\n     * @param {Algebra.Operation} operation A query operation.\n     * @return {string} A count query string.\n     */\n    static operationToCountQuery(dataFactory, algebraFactory, operation) {\n        return QuerySourceSparql.operationToQuery(algebraFactory.createProject(algebraFactory.createExtend(algebraFactory.createGroup(operation, [], [algebraFactory.createBoundAggregate(dataFactory.variable('var0'), 'count', algebraFactory.createWildcardExpression(), false)]), dataFactory.variable('count'), algebraFactory.createTermExpression(dataFactory.variable('var0'))), [dataFactory.variable('count')]));\n    }\n    /**\n     * Convert an operation to a query for this pattern.\n     * @param {Algebra.Operation} operation A query operation.\n     * @return {string} A query string.\n     */\n    static operationToQuery(operation) {\n        return (0, sparqlalgebrajs_1.toSparql)(operation, { sparqlStar: true });\n    }\n    /**\n     * Check if the given operation may produce undefined values.\n     * @param operation\n     */\n    static getOperationUndefs(operation) {\n        const variables = [];\n        sparqlalgebrajs_1.Util.recurseOperation(operation, {\n            leftjoin(subOperation) {\n                const left = sparqlalgebrajs_1.Util.inScopeVariables(subOperation.input[0]);\n                const right = sparqlalgebrajs_1.Util.inScopeVariables(subOperation.input[1]);\n                for (const varRight of right) {\n                    if (!left.some(varLeft => varLeft.equals(varRight))) {\n                        variables.push(varRight);\n                    }\n                }\n                return false;\n            },\n            values(values) {\n                for (const variable of values.variables) {\n                    if (values.bindings.some(bindings => !(`?${variable.value}` in bindings))) {\n                        variables.push(variable);\n                    }\n                }\n                return false;\n            },\n            union(union) {\n                // Determine variables in scope of the union branches that are not occurring in every branch\n                const scopedVariables = union.input.map(sparqlalgebrajs_1.Util.inScopeVariables);\n                for (const variable of (0, rdf_terms_1.uniqTerms)(scopedVariables.flat())) {\n                    if (!scopedVariables.every(input => input.some(inputVar => inputVar.equals(variable)))) {\n                        variables.push(variable);\n                    }\n                }\n                return true;\n            },\n        });\n        return (0, rdf_terms_1.uniqTerms)(variables);\n    }\n    /**\n     * Send a SPARQL query to a SPARQL endpoint and retrieve its bindings as a stream.\n     * @param {string} endpoint A SPARQL endpoint URL.\n     * @param {string} query A SPARQL query string.\n     * @param {RDF.Variable[]} variables The expected variables.\n     * @param {IActionContext} context The source context.\n     * @param undefVariables Variables that may have undefs.\n     * @return {BindingsStream} A stream of bindings.\n     */\n    async queryBindingsRemote(endpoint, query, variables, context, undefVariables) {\n        // Index undef variables\n        const undefVariablesIndex = new Set();\n        for (const undefVariable of undefVariables) {\n            undefVariablesIndex.add(undefVariable.value);\n        }\n        this.lastSourceContext = this.context.merge(context);\n        const rawStream = await this.endpointFetcher.fetchBindings(endpoint, query);\n        this.lastSourceContext = undefined;\n        return (0, asynciterator_1.wrap)(rawStream, { autoStart: false, maxBufferSize: Number.POSITIVE_INFINITY })\n            .map((rawData) => this.bindingsFactory.bindings(variables\n            .map((variable) => {\n            const value = rawData[`?${variable.value}`];\n            if (!undefVariablesIndex.has(variable.value) && !value) {\n                core_1.Actor.getContextLogger(this.context)?.warn(`The endpoint ${endpoint} failed to provide a binding for ${variable.value}.`);\n            }\n            return [variable, value];\n        })\n            .filter(([_, v]) => Boolean(v))));\n    }\n    toString() {\n        return `QuerySourceSparql(${this.url})`;\n    }\n}\nexports.QuerySourceSparql = QuerySourceSparql;\nQuerySourceSparql.SELECTOR_SHAPE = {\n    type: 'disjunction',\n    children: [\n        {\n            type: 'operation',\n            operation: { operationType: 'wildcard' },\n            joinBindings: true,\n        },\n    ],\n};\n//# sourceMappingURL=QuerySourceSparql.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQuerySourceIdentifyHypermediaSparql = void 0;\nconst bus_query_source_identify_hypermedia_1 = require(\"@comunica/bus-query-source-identify-hypermedia\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst QuerySourceSparql_1 = require(\"./QuerySourceSparql\");\n/**\n * A comunica SPARQL Query Source Identify Hypermedia Actor.\n */\nclass ActorQuerySourceIdentifyHypermediaSparql extends bus_query_source_identify_hypermedia_1.ActorQuerySourceIdentifyHypermedia {\n    constructor(args) {\n        super(args, 'sparql');\n    }\n    async testMetadata(action) {\n        if (!action.forceSourceType && !this.forceSourceType && !action.metadata.sparqlService &&\n            !(this.checkUrlSuffix && (action.url.endsWith('/sparql') || action.url.endsWith('/sparql/')))) {\n            return (0, core_1.failTest)(`Actor ${this.name} could not detect a SPARQL service description or URL ending on /sparql.`);\n        }\n        return (0, core_1.passTest)({ filterFactor: 1 });\n    }\n    async run(action) {\n        this.logInfo(action.context, `Identified ${action.url} as sparql source with service URL: ${action.metadata.sparqlService || action.url}`);\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const isSingularSource = action.context.get(context_entries_1.KeysQueryOperation.querySources)?.length === 1;\n        const source = new QuerySourceSparql_1.QuerySourceSparql((action.forceSourceType ?? this.forceSourceType) ? action.url : action.metadata.sparqlService || action.url, action.context, this.mediatorHttp, this.bindMethod, dataFactory, algebraFactory, await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, action.context, dataFactory), this.forceHttpGet, this.cacheSize, this.countTimeout, \n        // Cardinalities can be infinity when we're querying just a single source.\n        this.cardinalityCountQueries && !isSingularSource, this.cardinalityEstimateConstruction, action.metadata.defaultGraph, action.metadata.unionDefaultGraph, action.metadata.datasets);\n        return { source };\n    }\n}\nexports.ActorQuerySourceIdentifyHypermediaSparql = ActorQuerySourceIdentifyHypermediaSparql;\n//# sourceMappingURL=ActorQuerySourceIdentifyHypermediaSparql.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQuerySourceIdentifyHypermediaSparql\"), exports);\n__exportStar(require(\"./QuerySourceSparql\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuerySourceRdfJs = void 0;\nconst bus_query_source_identify_1 = require(\"@comunica/bus-query-source-identify\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nclass QuerySourceRdfJs {\n    constructor(source, dataFactory, bindingsFactory) {\n        this.source = source;\n        this.referenceValue = source;\n        this.dataFactory = dataFactory;\n        this.bindingsFactory = bindingsFactory;\n        const AF = new sparqlalgebrajs_1.Factory(this.dataFactory);\n        this.selectorShape = {\n            type: 'operation',\n            operation: {\n                operationType: 'pattern',\n                pattern: AF.createPattern(this.dataFactory.variable('s'), this.dataFactory.variable('p'), this.dataFactory.variable('o')),\n            },\n            variablesOptional: [\n                this.dataFactory.variable('s'),\n                this.dataFactory.variable('p'),\n                this.dataFactory.variable('o'),\n            ],\n        };\n        this.dummyDefaultGraph = this.dataFactory.variable('__comunica:defaultGraph');\n    }\n    static nullifyVariables(term, quotedTripleFiltering) {\n        return !term || term.termType === 'Variable' || (!quotedTripleFiltering &&\n            term.termType === 'Quad' && (0, rdf_terms_1.someTermsNested)(term, value => value.termType === 'Variable')) ?\n            undefined :\n            term;\n    }\n    static hasDuplicateVariables(pattern) {\n        const variables = (0, rdf_terms_1.filterTermsNested)(pattern, term => term.termType === 'Variable');\n        return variables.length > 1 && (0, rdf_terms_1.uniqTerms)(variables).length < variables.length;\n    }\n    async getSelectorShape() {\n        return this.selectorShape;\n    }\n    queryBindings(operation, context) {\n        if (operation.type !== 'pattern') {\n            throw new Error(`Attempted to pass non-pattern operation '${operation.type}' to QuerySourceRdfJs`);\n        }\n        // Check if we're running in union default graph mode\n        const unionDefaultGraph = Boolean(context.get(context_entries_1.KeysQueryOperation.unionDefaultGraph));\n        if (operation.graph.termType === 'DefaultGraph' && unionDefaultGraph) {\n            operation.graph = this.dummyDefaultGraph;\n        }\n        // Get bindings directly if the source allows it\n        // This will be more efficient, as it avoids the intermediary quads translation and representation.\n        if (this.source.matchBindings) {\n            const rawStream = this.source.matchBindings(this.bindingsFactory, operation.subject, operation.predicate, operation.object, operation.graph);\n            let it = rawStream instanceof asynciterator_1.AsyncIterator ?\n                rawStream :\n                (0, asynciterator_1.wrap)(rawStream, { autoStart: false });\n            // Check if non-default-graph triples need to be filtered out.\n            // SPARQL query semantics allow graph variables to only match with named graphs, excluding the default graph\n            // But this is not the case when using union default graph semantics\n            let forceEstimateCardinality = false;\n            if (operation.graph.termType === 'Variable' && !unionDefaultGraph) {\n                forceEstimateCardinality = true;\n                const variable = operation.graph;\n                it = it.filter(bindings => bindings.get(variable).termType !== 'DefaultGraph');\n            }\n            // Remove bindings to the dummy __comunica:defaultGraph variable if needed\n            if (operation.graph.equals(this.dummyDefaultGraph)) {\n                it = it.map(bindings => bindings.delete(this.dummyDefaultGraph));\n                // Restore graph for determining variable metadata\n                operation.graph = this.dataFactory.defaultGraph();\n            }\n            // Determine metadata\n            if (!it.getProperty('metadata')) {\n                const variables = (0, bus_query_source_identify_1.getVariables)(operation).map(variable => ({ variable, canBeUndef: false }));\n                this.setMetadata(it, operation, context, forceEstimateCardinality, { variables })\n                    .catch(error => it.destroy(error));\n            }\n            return it;\n        }\n        // Check if the source supports quoted triple filtering\n        const quotedTripleFiltering = Boolean(this.source.features?.quotedTripleFiltering);\n        // Create an async iterator from the matched quad stream\n        const rawStream = this.source.match(QuerySourceRdfJs.nullifyVariables(operation.subject, quotedTripleFiltering), QuerySourceRdfJs.nullifyVariables(operation.predicate, quotedTripleFiltering), QuerySourceRdfJs.nullifyVariables(operation.object, quotedTripleFiltering), QuerySourceRdfJs.nullifyVariables(operation.graph, quotedTripleFiltering));\n        let it = rawStream instanceof asynciterator_1.AsyncIterator ?\n            rawStream :\n            (0, asynciterator_1.wrap)(rawStream, { autoStart: false });\n        // Perform post-match-filtering if the source does not support quoted triple filtering.\n        if (!quotedTripleFiltering) {\n            it = (0, bus_query_source_identify_1.filterMatchingQuotedQuads)(operation, it);\n        }\n        // Determine metadata\n        if (!it.getProperty('metadata')) {\n            this.setMetadata(it, operation, context)\n                .catch(error => it.destroy(error));\n        }\n        // Restore graph for determining variable metadata\n        if (operation.graph.equals(this.dummyDefaultGraph)) {\n            operation.graph = this.dataFactory.defaultGraph();\n        }\n        return (0, bus_query_source_identify_1.quadsToBindings)(it, operation, this.dataFactory, this.bindingsFactory, Boolean(context.get(context_entries_1.KeysQueryOperation.unionDefaultGraph)));\n    }\n    async setMetadata(it, operation, context, forceEstimateCardinality = false, extraMetadata = {}) {\n        // Check if the source supports quoted triple filtering\n        const quotedTripleFiltering = Boolean(this.source.features?.quotedTripleFiltering);\n        // Check if we're running in union default graph mode\n        const unionDefaultGraph = Boolean(context.get(context_entries_1.KeysQueryOperation.unionDefaultGraph));\n        if (operation.graph.termType === 'DefaultGraph' && unionDefaultGraph) {\n            operation.graph = this.dummyDefaultGraph;\n        }\n        let cardinality;\n        if (this.source.countQuads) {\n            // If the source provides a dedicated method for determining cardinality, use that.\n            cardinality = await this.source.countQuads(QuerySourceRdfJs.nullifyVariables(operation.subject, quotedTripleFiltering), QuerySourceRdfJs.nullifyVariables(operation.predicate, quotedTripleFiltering), QuerySourceRdfJs.nullifyVariables(operation.object, quotedTripleFiltering), QuerySourceRdfJs.nullifyVariables(operation.graph, quotedTripleFiltering));\n        }\n        else {\n            // Otherwise, fallback to a sub-optimal alternative where we just call match again to count the quads.\n            // WARNING: we can NOT reuse the original data stream here,\n            // because we may lose data elements due to things happening async.\n            let i = 0;\n            cardinality = await new Promise((resolve, reject) => {\n                const matches = this.source.match(QuerySourceRdfJs.nullifyVariables(operation.subject, quotedTripleFiltering), QuerySourceRdfJs.nullifyVariables(operation.predicate, quotedTripleFiltering), QuerySourceRdfJs.nullifyVariables(operation.object, quotedTripleFiltering), QuerySourceRdfJs.nullifyVariables(operation.graph, quotedTripleFiltering));\n                matches.on('error', reject);\n                matches.on('end', () => resolve(i));\n                matches.on('data', () => i++);\n            });\n        }\n        // If `match` would require filtering afterwards, our count will be an over-estimate.\n        const wouldRequirePostFiltering = (!quotedTripleFiltering &&\n            (0, rdf_terms_1.someTerms)(operation, term => term.termType === 'Quad')) ||\n            QuerySourceRdfJs.hasDuplicateVariables(operation);\n        it.setProperty('metadata', {\n            state: new utils_metadata_1.MetadataValidationState(),\n            cardinality: {\n                type: wouldRequirePostFiltering || forceEstimateCardinality ? 'estimate' : 'exact',\n                value: cardinality,\n            },\n            // Force requestTime to zero, since this will be free for future calls, as we're fully indexed at this stage.\n            requestTime: 0,\n            ...extraMetadata,\n        });\n    }\n    queryQuads(_operation, _context) {\n        throw new Error('queryQuads is not implemented in QuerySourceRdfJs');\n    }\n    queryBoolean(_operation, _context) {\n        throw new Error('queryBoolean is not implemented in QuerySourceRdfJs');\n    }\n    queryVoid(_operation, _context) {\n        throw new Error('queryVoid is not implemented in QuerySourceRdfJs');\n    }\n    toString() {\n        return `QuerySourceRdfJs(${this.source.constructor.name})`;\n    }\n}\nexports.QuerySourceRdfJs = QuerySourceRdfJs;\n//# sourceMappingURL=QuerySourceRdfJs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQuerySourceIdentifyRdfJs = void 0;\nconst bus_query_source_identify_1 = require(\"@comunica/bus-query-source-identify\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst QuerySourceRdfJs_1 = require(\"./QuerySourceRdfJs\");\n/**\n * A comunica RDFJS Query Source Identify Actor.\n */\nclass ActorQuerySourceIdentifyRdfJs extends bus_query_source_identify_1.ActorQuerySourceIdentify {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        const source = action.querySourceUnidentified;\n        if (source.type !== undefined && source.type !== 'rdfjs') {\n            return (0, core_1.failTest)(`${this.name} requires a single query source with rdfjs type to be present in the context.`);\n        }\n        if (typeof source.value === 'string' || !('match' in source.value)) {\n            return (0, core_1.failTest)(`${this.name} received an invalid rdfjs query source.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        return {\n            querySource: {\n                source: new QuerySourceRdfJs_1.QuerySourceRdfJs(action.querySourceUnidentified.value, dataFactory, await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, action.context, dataFactory)),\n                context: action.querySourceUnidentified.context ?? new core_1.ActionContext(),\n            },\n        };\n    }\n}\nexports.ActorQuerySourceIdentifyRdfJs = ActorQuerySourceIdentifyRdfJs;\n//# sourceMappingURL=ActorQuerySourceIdentifyRdfJs.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IRdfJsSourceExtended.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQuerySourceIdentifyRdfJs\"), exports);\n__exportStar(require(\"./IRdfJsSourceExtended\"), exports);\n__exportStar(require(\"./QuerySourceRdfJs\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNode = void 0;\n/**\n * A term that represents an RDF blank node with a label.\n */\nclass BlankNode {\n    constructor(value) {\n        this.termType = 'BlankNode';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'BlankNode' && other.value === this.value;\n    }\n}\nexports.BlankNode = BlankNode;\n//# sourceMappingURL=BlankNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultGraph = void 0;\n/**\n * A singleton term instance that represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass DefaultGraph {\n    constructor() {\n        this.termType = 'DefaultGraph';\n        this.value = '';\n        // Private constructor\n    }\n    equals(other) {\n        return !!other && other.termType === 'DefaultGraph';\n    }\n}\nexports.DefaultGraph = DefaultGraph;\nDefaultGraph.INSTANCE = new DefaultGraph();\n//# sourceMappingURL=DefaultGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NamedNode = void 0;\n/**\n * A term that contains an IRI.\n */\nclass NamedNode {\n    constructor(value) {\n        this.termType = 'NamedNode';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'NamedNode' && other.value === this.value;\n    }\n}\nexports.NamedNode = NamedNode;\n//# sourceMappingURL=NamedNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Literal = void 0;\nconst NamedNode_1 = require(\"./NamedNode\");\n/**\n * A term that represents an RDF literal,\n * containing a string with an optional language tag and optional direction\n * or datatype.\n */\nclass Literal {\n    constructor(value, languageOrDatatype) {\n        this.termType = 'Literal';\n        this.value = value;\n        if (typeof languageOrDatatype === 'string') {\n            this.language = languageOrDatatype;\n            this.datatype = Literal.RDF_LANGUAGE_STRING;\n            this.direction = '';\n        }\n        else if (languageOrDatatype) {\n            if ('termType' in languageOrDatatype) {\n                this.language = '';\n                this.datatype = languageOrDatatype;\n                this.direction = '';\n            }\n            else {\n                this.language = languageOrDatatype.language;\n                this.datatype = languageOrDatatype.direction ?\n                    Literal.RDF_DIRECTIONAL_LANGUAGE_STRING :\n                    Literal.RDF_LANGUAGE_STRING;\n                this.direction = languageOrDatatype.direction || '';\n            }\n        }\n        else {\n            this.language = '';\n            this.datatype = Literal.XSD_STRING;\n            this.direction = '';\n        }\n    }\n    equals(other) {\n        return !!other && other.termType === 'Literal' && other.value === this.value &&\n            other.language === this.language &&\n            ((other.direction === this.direction) || (!other.direction && this.direction === '')) &&\n            this.datatype.equals(other.datatype);\n    }\n}\nexports.Literal = Literal;\nLiteral.RDF_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString');\nLiteral.RDF_DIRECTIONAL_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString');\nLiteral.XSD_STRING = new NamedNode_1.NamedNode('http://www.w3.org/2001/XMLSchema#string');\n//# sourceMappingURL=Literal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Quad = void 0;\n/**\n * An instance of DefaultGraph represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass Quad {\n    constructor(subject, predicate, object, graph) {\n        this.termType = 'Quad';\n        this.value = '';\n        this.subject = subject;\n        this.predicate = predicate;\n        this.object = object;\n        this.graph = graph;\n    }\n    equals(other) {\n        // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n        return !!other && (other.termType === 'Quad' || !other.termType) &&\n            this.subject.equals(other.subject) &&\n            this.predicate.equals(other.predicate) &&\n            this.object.equals(other.object) &&\n            this.graph.equals(other.graph);\n    }\n}\nexports.Quad = Quad;\n//# sourceMappingURL=Quad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\n/**\n * A term that represents a variable.\n */\nclass Variable {\n    constructor(value) {\n        this.termType = 'Variable';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'Variable' && other.value === this.value;\n    }\n}\nexports.Variable = Variable;\n//# sourceMappingURL=Variable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataFactory = void 0;\nconst BlankNode_1 = require(\"./BlankNode\");\nconst DefaultGraph_1 = require(\"./DefaultGraph\");\nconst Literal_1 = require(\"./Literal\");\nconst NamedNode_1 = require(\"./NamedNode\");\nconst Quad_1 = require(\"./Quad\");\nconst Variable_1 = require(\"./Variable\");\nlet dataFactoryCounter = 0;\n/**\n * A factory for instantiating RDF terms and quads.\n */\nclass DataFactory {\n    constructor(options) {\n        this.blankNodeCounter = 0;\n        options = options || {};\n        this.blankNodePrefix = options.blankNodePrefix || `df_${dataFactoryCounter++}_`;\n    }\n    /**\n     * @param value The IRI for the named node.\n     * @return A new instance of NamedNode.\n     * @see NamedNode\n     */\n    namedNode(value) {\n        return new NamedNode_1.NamedNode(value);\n    }\n    /**\n     * @param value The optional blank node identifier.\n     * @return A new instance of BlankNode.\n     *         If the `value` parameter is undefined a new identifier\n     *         for the blank node is generated for each call.\n     * @see BlankNode\n     */\n    blankNode(value) {\n        return new BlankNode_1.BlankNode(value || `${this.blankNodePrefix}${this.blankNodeCounter++}`);\n    }\n    /**\n     * @param value              The literal value.\n     * @param languageOrDatatype The optional language, datatype, or directional language.\n     *                           If `languageOrDatatype` is a NamedNode,\n     *                           then it is used for the value of `NamedNode.datatype`.\n     *                           If `languageOrDatatype` is a NamedNode, it is used for the value\n     *                           of `NamedNode.language`.\n     *                           Otherwise, it is used as a directional language,\n     *                           from which the language is set to `languageOrDatatype.language`\n     *                           and the direction to `languageOrDatatype.direction`.\n     * @return A new instance of Literal.\n     * @see Literal\n     */\n    literal(value, languageOrDatatype) {\n        return new Literal_1.Literal(value, languageOrDatatype);\n    }\n    /**\n     * This method is optional.\n     * @param value The variable name\n     * @return A new instance of Variable.\n     * @see Variable\n     */\n    variable(value) {\n        return new Variable_1.Variable(value);\n    }\n    /**\n     * @return An instance of DefaultGraph.\n     */\n    defaultGraph() {\n        return DefaultGraph_1.DefaultGraph.INSTANCE;\n    }\n    /**\n     * @param subject   The quad subject term.\n     * @param predicate The quad predicate term.\n     * @param object    The quad object term.\n     * @param graph     The quad graph term.\n     * @return A new instance of Quad.\n     * @see Quad\n     */\n    quad(subject, predicate, object, graph) {\n        return new Quad_1.Quad(subject, predicate, object, graph || this.defaultGraph());\n    }\n    /**\n     * Create a deep copy of the given term using this data factory.\n     * @param original An RDF term.\n     * @return A deep copy of the given term.\n     */\n    fromTerm(original) {\n        // TODO: remove nasty any casts when this TS bug has been fixed:\n        //  https://github.com/microsoft/TypeScript/issues/26933\n        switch (original.termType) {\n            case 'NamedNode':\n                return this.namedNode(original.value);\n            case 'BlankNode':\n                return this.blankNode(original.value);\n            case 'Literal':\n                if (original.language) {\n                    return this.literal(original.value, original.language);\n                }\n                if (!original.datatype.equals(Literal_1.Literal.XSD_STRING)) {\n                    return this.literal(original.value, this.fromTerm(original.datatype));\n                }\n                return this.literal(original.value);\n            case 'Variable':\n                return this.variable(original.value);\n            case 'DefaultGraph':\n                return this.defaultGraph();\n            case 'Quad':\n                return this.quad(this.fromTerm(original.subject), this.fromTerm(original.predicate), this.fromTerm(original.object), this.fromTerm(original.graph));\n        }\n    }\n    /**\n     * Create a deep copy of the given quad using this data factory.\n     * @param original An RDF quad.\n     * @return A deep copy of the given quad.\n     */\n    fromQuad(original) {\n        return this.fromTerm(original);\n    }\n    /**\n     * Reset the internal blank node counter.\n     */\n    resetBlankNodeCounter() {\n        this.blankNodeCounter = 0;\n    }\n}\nexports.DataFactory = DataFactory;\n//# sourceMappingURL=DataFactory.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/BlankNode\"), exports);\n__exportStar(require(\"./lib/DataFactory\"), exports);\n__exportStar(require(\"./lib/DefaultGraph\"), exports);\n__exportStar(require(\"./lib/Literal\"), exports);\n__exportStar(require(\"./lib/NamedNode\"), exports);\n__exportStar(require(\"./lib/Quad\"), exports);\n__exportStar(require(\"./lib/Variable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TRIPLE_TERM_NAMES = exports.QUAD_TERM_NAMES = void 0;\nexports.getTerms = getTerms;\nexports.getTermsNested = getTermsNested;\nexports.getNamedTerms = getNamedTerms;\nexports.collectNamedTerms = collectNamedTerms;\nexports.forEachTerms = forEachTerms;\nexports.forEachTermsNested = forEachTermsNested;\nexports.filterTerms = filterTerms;\nexports.filterTermsNested = filterTermsNested;\nexports.filterQuadTermNames = filterQuadTermNames;\nexports.filterQuadTermNamesNested = filterQuadTermNamesNested;\nexports.mapTerms = mapTerms;\nexports.mapTermsNested = mapTermsNested;\nexports.reduceTerms = reduceTerms;\nexports.reduceTermsNested = reduceTermsNested;\nexports.everyTerms = everyTerms;\nexports.everyTermsNested = everyTermsNested;\nexports.someTerms = someTerms;\nexports.someTermsNested = someTermsNested;\nexports.getValueNestedPath = getValueNestedPath;\nexports.matchTerm = matchTerm;\nexports.matchPattern = matchPattern;\nexports.matchPatternComplete = matchPatternComplete;\nexports.matchPatternMappings = matchPatternMappings;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst DF = new rdf_data_factory_1.DataFactory();\n/**\n * All available quad term names.\n * @type {[string , string , string , string]}\n */\nexports.QUAD_TERM_NAMES = ['subject', 'predicate', 'object', 'graph'];\n/**\n * All available triple term names.\n * @type {[string , string , string]}\n */\nexports.TRIPLE_TERM_NAMES = ['subject', 'predicate', 'object'];\n/**\n * Get all terms in the given quad.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {boolean} ignoreDefaultGraph If true and the quad has the default graph as graph,\n *                                     this term will not be returned in the array.\n *                                     (default: false)\n * @return {Term[]} The available terms in the quad.\n */\nfunction getTerms(quad, ignoreDefaultGraph) {\n    if (ignoreDefaultGraph && quad.graph.termType === 'DefaultGraph') {\n        return [quad.subject, quad.predicate, quad.object];\n    }\n    return [quad.subject, quad.predicate, quad.object, quad.graph];\n}\n/**\n * Get all terms in the given quad, including nested quads.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {boolean} ignoreDefaultGraph If true and the quad has the default graph as graph,\n *                                     this term will not be returned in the array.\n *                                     (default: false)\n * @return {Term[]} The available terms in the nested quad, excluding quad terms.\n */\nfunction getTermsNested(quad, ignoreDefaultGraph) {\n    const terms = [];\n    for (const term of getTerms(quad, ignoreDefaultGraph)) {\n        if (term.termType === 'Quad') {\n            getTermsNested(term, ignoreDefaultGraph).forEach(subTerm => terms.push(subTerm));\n        }\n        else {\n            terms.push(term);\n        }\n    }\n    return terms;\n}\n/**\n * Convert the given quad to an array of named terms.\n * This is the reverse operation of {@link collectNamedTerms}.\n * @param {BaseQuad} quad An RDFJS quad.\n * @return {INamedTerm[]} An array of named terms.\n */\nfunction getNamedTerms(quad) {\n    return [\n        { key: 'subject', value: quad.subject },\n        { key: 'predicate', value: quad.predicate },\n        { key: 'object', value: quad.object },\n        { key: 'graph', value: quad.graph },\n    ];\n}\n/**\n * Convert an array of named terms to an RDFJS quad.\n * This is the reverse operation of {@link getNamedTerms}.\n * @param {INamedTerm[]} namedTerms An array of named terms.\n * @param {(termName: QuadTermName) => Term} defaultCb An optional callback for when\n *                                                     certain terms are not available in the array.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @return {Q} The resulting RDFJS quad.\n * @template Q The type of quad to output, defaults to RDF.Quad.\n */\nfunction collectNamedTerms(namedTerms, defaultCb, dataFactory) {\n    const elements = {};\n    namedTerms.forEach((namedTerm) => elements[namedTerm.key] = namedTerm.value);\n    if (defaultCb) {\n        elements.subject = elements.subject || defaultCb('subject');\n        elements.predicate = elements.predicate || defaultCb('predicate');\n        elements.object = elements.object || defaultCb('object');\n        elements.graph = elements.graph || defaultCb('graph');\n    }\n    return (dataFactory || DF).quad(elements.subject, elements.predicate, elements.object, elements.graph);\n}\n/**\n * Iterates over each term.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} cb A callback function.\n */\nfunction forEachTerms(quad, cb) {\n    cb(quad.subject, 'subject');\n    cb(quad.predicate, 'predicate');\n    cb(quad.object, 'object');\n    cb(quad.graph, 'graph');\n}\n/**\n * Iterates over each leaf term, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} cb A callback function.\n * @param QuadTermName[] keys The current key path.\n */\nfunction forEachTermsNested(quad, cb, keys = []) {\n    if (quad.subject.termType === 'Quad') {\n        forEachTermsNested(quad.subject, cb, [...keys, 'subject']);\n    }\n    else {\n        cb(quad.subject, [...keys, 'subject']);\n    }\n    if (quad.predicate.termType === 'Quad') {\n        forEachTermsNested(quad.predicate, cb, [...keys, 'predicate']);\n    }\n    else {\n        cb(quad.predicate, [...keys, 'predicate']);\n    }\n    if (quad.object.termType === 'Quad') {\n        forEachTermsNested(quad.object, cb, [...keys, 'object']);\n    }\n    else {\n        cb(quad.object, [...keys, 'object']);\n    }\n    if (quad.graph.termType === 'Quad') {\n        forEachTermsNested(quad.graph, cb, [...keys, 'graph']);\n    }\n    else {\n        cb(quad.graph, [...keys, 'graph']);\n    }\n}\n/**\n * Get all terms in the given quad that return true on the given filter function.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName) => boolean} filter A filter callback.\n * @return {Term[]} The list of matching terms.\n */\nfunction filterTerms(quad, filter) {\n    const terms = [];\n    if (filter(quad.subject, 'subject')) {\n        terms.push(quad.subject);\n    }\n    if (filter(quad.predicate, 'predicate')) {\n        terms.push(quad.predicate);\n    }\n    if (filter(quad.object, 'object')) {\n        terms.push(quad.object);\n    }\n    if (filter(quad.graph, 'graph')) {\n        terms.push(quad.graph);\n    }\n    return terms;\n}\n/**\n * Get all terms in the given quad that return true on the given filter function, while recursing into quoted triples.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName) => boolean} filter A filter callback.\n * @param QuadTermName[] keys The current key path.\n * @return {Term[]} The list of matching terms.\n */\nfunction filterTermsNested(quad, filter, keys = []) {\n    let terms = [];\n    if (quad.subject.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.subject, filter, [...keys, 'subject'])];\n    }\n    else {\n        if (filter(quad.subject, [...keys, 'subject'])) {\n            terms.push(quad.subject);\n        }\n    }\n    if (quad.predicate.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.predicate, filter, [...keys, 'predicate'])];\n    }\n    else {\n        if (filter(quad.predicate, [...keys, 'predicate'])) {\n            terms.push(quad.predicate);\n        }\n    }\n    if (quad.object.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.object, filter, [...keys, 'object'])];\n    }\n    else {\n        if (filter(quad.object, [...keys, 'object'])) {\n            terms.push(quad.object);\n        }\n    }\n    if (quad.graph.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.graph, filter, [...keys, 'graph'])];\n    }\n    else {\n        if (filter(quad.graph, [...keys, 'graph'])) {\n            terms.push(quad.graph);\n        }\n    }\n    return terms;\n}\n/**\n * Get all quad term names in the given quad that return true on the given filter function.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName, all: INamedTerm[]) => boolean} filter A filter callback.\n * @return {QuadTermName[]} The list of matching quad term names.\n */\nfunction filterQuadTermNames(quad, filter) {\n    const names = [];\n    if (filter(quad.subject, 'subject')) {\n        names.push('subject');\n    }\n    if (filter(quad.predicate, 'predicate')) {\n        names.push('predicate');\n    }\n    if (filter(quad.object, 'object')) {\n        names.push('object');\n    }\n    if (filter(quad.graph, 'graph')) {\n        names.push('graph');\n    }\n    return names;\n}\n/**\n * Get all quad term names in the given quad that return true on the given filter function, while recursing into quoted triples.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName, all: INamedTerm[]) => boolean} filter A filter callback.\n * @param QuadTermName[] keys The current key path.\n * @return {QuadTermName[]} The list of matching quad term names.\n */\nfunction filterQuadTermNamesNested(quad, filter, keys = []) {\n    let names = [];\n    const keysS = [...keys, 'subject'];\n    if (quad.subject.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.subject, filter, keysS)];\n    }\n    else {\n        if (filter(quad.subject, keysS)) {\n            names.push(keysS);\n        }\n    }\n    const keysP = [...keys, 'predicate'];\n    if (quad.predicate.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.predicate, filter, keysP)];\n    }\n    else {\n        if (filter(quad.predicate, keysP)) {\n            names.push(keysP);\n        }\n    }\n    const keysO = [...keys, 'object'];\n    if (quad.object.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.object, filter, keysO)];\n    }\n    else {\n        if (filter(quad.object, keysO)) {\n            names.push(keysO);\n        }\n    }\n    const keysG = [...keys, 'graph'];\n    if (quad.graph.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.graph, filter, keysG)];\n    }\n    else {\n        if (filter(quad.graph, keysG)) {\n            names.push(keysG);\n        }\n    }\n    return names;\n}\n/**\n * Map all terms of a quad.\n * @param {Quad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName) => Term} mapper A mapper function.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @return {Quad} A new RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction mapTerms(quad, mapper, dataFactory) {\n    return (dataFactory || DF).quad(mapper(quad.subject, 'subject'), mapper(quad.predicate, 'predicate'), mapper(quad.object, 'object'), mapper(quad.graph, 'graph'));\n}\n/**\n * Map all terms of a quad, while recursing into quoted triples.\n * @param {Quad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName) => Term} mapper A mapper function.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @param QuadTermName[] keys The current key path.\n * @return {Quad} A new RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction mapTermsNested(quad, mapper, dataFactory, keys = []) {\n    return (dataFactory || DF).quad(quad.subject.termType === 'Quad' ?\n        mapTermsNested(quad.subject, mapper, dataFactory, [...keys, 'subject']) :\n        mapper(quad.subject, [...keys, 'subject']), quad.predicate.termType === 'Quad' ?\n        mapTermsNested(quad.predicate, mapper, dataFactory, [...keys, 'predicate']) :\n        mapper(quad.predicate, [...keys, 'predicate']), quad.object.termType === 'Quad' ?\n        mapTermsNested(quad.object, mapper, dataFactory, [...keys, 'object']) :\n        mapper(quad.object, [...keys, 'object']), quad.graph.termType === 'Quad' ?\n        mapTermsNested(quad.graph, mapper, dataFactory, [...keys, 'graph']) :\n        mapper(quad.graph, [...keys, 'graph']));\n}\n/**\n * Reduce all terms of a quad.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(previousValue: U, currentValue: Term, key: QuadTermName) => U} reducer A reduce function.\n * @param {U} initialValue The initial value.\n * @return {U} The final value.\n */\nfunction reduceTerms(quad, reducer, initialValue) {\n    let value = initialValue;\n    value = reducer(value, quad.subject, 'subject');\n    value = reducer(value, quad.predicate, 'predicate');\n    value = reducer(value, quad.object, 'object');\n    return reducer(value, quad.graph, 'graph');\n}\n/**\n * Reduce all terms of a quad, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(previousValue: U, currentValue: Term, key: QuadTermName) => U} reducer A reduce function.\n * @param {U} initialValue The initial value.\n * @param QuadTermName[] keys The current key path.\n * @return {U} The final value.\n */\nfunction reduceTermsNested(quad, reducer, initialValue, keys = []) {\n    let value = initialValue;\n    if (quad.subject.termType === 'Quad') {\n        value = reduceTermsNested(quad.subject, reducer, value, [...keys, 'subject']);\n    }\n    else {\n        value = reducer(value, quad.subject, [...keys, 'subject']);\n    }\n    if (quad.predicate.termType === 'Quad') {\n        value = reduceTermsNested(quad.predicate, reducer, value, [...keys, 'predicate']);\n    }\n    else {\n        value = reducer(value, quad.predicate, [...keys, 'predicate']);\n    }\n    if (quad.object.termType === 'Quad') {\n        value = reduceTermsNested(quad.object, reducer, value, [...keys, 'object']);\n    }\n    else {\n        value = reducer(value, quad.object, [...keys, 'object']);\n    }\n    if (quad.graph.termType === 'Quad') {\n        value = reduceTermsNested(quad.graph, reducer, value, [...keys, 'graph']);\n    }\n    else {\n        value = reducer(value, quad.graph, [...keys, 'graph']);\n    }\n    return value;\n}\n/**\n * Determines whether all terms satisfy the specified test.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @return {boolean} If all terms satisfy the specified test.\n */\nfunction everyTerms(quad, checker) {\n    return checker(quad.subject, 'subject')\n        && checker(quad.predicate, 'predicate')\n        && checker(quad.object, 'object')\n        && checker(quad.graph, 'graph');\n}\n/**\n * Determines whether all terms satisfy the specified test, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @param QuadTermName[] keys The current key path.\n * @return {boolean} If all terms satisfy the specified test.\n */\nfunction everyTermsNested(quad, checker, keys = []) {\n    return (quad.subject.termType === 'Quad' ?\n        everyTermsNested(quad.subject, checker, [...keys, 'subject']) :\n        checker(quad.subject, [...keys, 'subject']))\n        && (quad.predicate.termType === 'Quad' ?\n            everyTermsNested(quad.predicate, checker, [...keys, 'predicate']) :\n            checker(quad.predicate, [...keys, 'predicate']))\n        && (quad.object.termType === 'Quad' ?\n            everyTermsNested(quad.object, checker, [...keys, 'object']) :\n            checker(quad.object, [...keys, 'object']))\n        && (quad.graph.termType === 'Quad' ?\n            everyTermsNested(quad.graph, checker, [...keys, 'graph']) :\n            checker(quad.graph, [...keys, 'graph']));\n}\n/**\n * Determines whether at least one term satisfies the specified test.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @return {boolean} If at least one term satisfies the specified test.\n */\nfunction someTerms(quad, checker) {\n    return checker(quad.subject, 'subject')\n        || checker(quad.predicate, 'predicate')\n        || checker(quad.object, 'object')\n        || checker(quad.graph, 'graph');\n}\n/**\n * Determines whether at least one term satisfies the specified test, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @param QuadTermName[] keys The current key path.\n * @return {boolean} If at least one term satisfies the specified test.\n */\nfunction someTermsNested(quad, checker, keys = []) {\n    return (quad.subject.termType === 'Quad' ?\n        someTermsNested(quad.subject, checker, [...keys, 'subject']) :\n        checker(quad.subject, [...keys, 'subject']))\n        || (quad.predicate.termType === 'Quad' ?\n            someTermsNested(quad.predicate, checker, [...keys, 'predicate']) :\n            checker(quad.predicate, [...keys, 'predicate']))\n        || (quad.object.termType === 'Quad' ?\n            someTermsNested(quad.object, checker, [...keys, 'object']) :\n            checker(quad.object, [...keys, 'object']))\n        || (quad.graph.termType === 'Quad' ?\n            someTermsNested(quad.graph, checker, [...keys, 'graph']) :\n            checker(quad.graph, [...keys, 'graph']));\n}\n/**\n * Get the nested value inside a quoted triple by the given path of quad keys.\n * @param term A term, that can be a quoted triple.\n * @param keys A path of quad term names.\n */\nfunction getValueNestedPath(term, keys) {\n    if (keys.length === 0) {\n        return term;\n    }\n    if (term.termType === 'Quad') {\n        return getValueNestedPath(term[keys[0]], keys.slice(1));\n    }\n    throw new Error(`Tried to get ${keys[0]} from term of type ${term.termType}`);\n}\n/**\n * Check if the given terms match.\n *\n * At least one of the following must be true:\n * * Term B is undefined.\n * * Term B is a variable.\n * * Term A and B are quads, and return true for `matchPatternComplete`.\n * * Quad term and term are equal (`termB.equals(termA)` return true)\n *\n * @param termA A term.\n * @param termB An optional term.\n */\nfunction matchTerm(termA, termB) {\n    return !termB\n        || termB.termType === 'Variable'\n        || (termB.termType === 'Quad' && termA.termType === 'Quad' && matchPatternComplete(termA, termB))\n        || termB.equals(termA);\n}\n/**\n * Check if the given quad matches with the given quad terms.\n *\n * Each term must match at least one of the following:\n * * Term is undefined.\n * * Term is a variable.\n * * Quad term and term are both quads, and return true for `matchPatternComplete`.\n * * Quad term and term are equal (`quadTerm.equals(term)` return true)\n *\n * @param {BaseQuad} quad A quad to match with (can not contain variables).\n * @param {Term} subject An optional subject.\n * @param {Term} predicate An optional predicate.\n * @param {Term} object An optional object.\n * @param {Term} graph An optional graph.\n * @return {boolean} If the quad matches with the quad terms.\n */\nfunction matchPattern(quad, subject, predicate, object, graph) {\n    return matchTerm(quad.subject, subject)\n        && matchTerm(quad.predicate, predicate)\n        && matchTerm(quad.object, object)\n        && matchTerm(quad.graph, graph);\n}\n/**\n * Check if the first quad matches with all terms from the second quad.\n *\n * Each term must match at least one of the following:\n * * Quad2 term is a variable.\n * * Quad1 term and Quad2 term are equal (`term1.equals(term2)` return true)\n *\n * @param {BaseQuad} quad A quad (can not contain variables).\n * @param {BaseQuad} pattern A quad pattern (can contain variables).\n * @return {boolean} If the quad terms match.\n */\nfunction matchPatternComplete(quad, pattern) {\n    return matchPattern(quad, pattern.subject, pattern.predicate, pattern.object, pattern.graph);\n}\nfunction matchPatternMappings(quad, pattern, opt = {}) {\n    const map = {};\n    function match(_pattern, _quad) {\n        return everyTerms(_pattern, (t1, key) => {\n            var _a, _b;\n            const t2 = _quad[key];\n            switch (t1.termType) {\n                case 'Variable':\n                    return (opt.skipVarMapping && t2.termType === 'Variable')\n                        || ((_b = (_a = map[t1.value]) === null || _a === void 0 ? void 0 : _a.equals(t2)) !== null && _b !== void 0 ? _b : (map[t1.value] = t2, true));\n                case 'Quad':\n                    return t2.termType === 'Quad' && match(t1, t2);\n                default:\n                    return t1.equals(t2);\n            }\n        });\n    }\n    return match(pattern, quad) && (opt.returnMappings ? map : true);\n}\n//# sourceMappingURL=QuadTermUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.termToString = termToString;\nexports.getLiteralValue = getLiteralValue;\nexports.getLiteralType = getLiteralType;\nexports.getLiteralLanguage = getLiteralLanguage;\nexports.getLiteralDirection = getLiteralDirection;\nexports.stringToTerm = stringToTerm;\nexports.quadToStringQuad = quadToStringQuad;\nexports.stringQuadToQuad = stringQuadToQuad;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst FACTORY = new rdf_data_factory_1.DataFactory();\n/**\n * Utility methods for converting between string-based RDF representations and RDFJS objects.\n *\n * RDF Terms are represented as follows:\n * * Blank nodes: '_:myBlankNode'\n * * Variables:   '?myVariable'\n * * Literals:    '\"myString\"', '\"myLanguageString\"@en-us', '\"myLanguageString\"@en-us--ltr', '\"3\"^^xsd:number'\n * * URIs:        'http://example.org'\n *\n * Quads/triples are represented as hashes with 'subject', 'predicate', 'object' and 'graph' (optional)\n * as keys, and string-based RDF terms as values.\n */\n/**\n * Convert an RDFJS term to a string-based representation.\n * @param {RDF.Term} term An RDFJS term.\n * @return {string} A string-based term representation.\n */\nfunction termToString(term) {\n    // TODO: remove nasty any casts when this TS bug has been fixed: https://github.com/microsoft/TypeScript/issues/26933\n    if (!term) {\n        return undefined;\n    }\n    switch (term.termType) {\n        case 'NamedNode': return term.value;\n        case 'BlankNode': return ('_:' + term.value);\n        case 'Literal':\n            const literalValue = term;\n            return ('\"' + literalValue.value + '\"' +\n                (literalValue.datatype &&\n                    literalValue.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string' &&\n                    literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' &&\n                    literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString' ?\n                    '^^' + literalValue.datatype.value : '') +\n                (literalValue.language ? '@' + literalValue.language : '') +\n                (literalValue.direction ? '--' + literalValue.direction : ''));\n        case 'Quad': return `<<${termToString(term.subject)} ${termToString(term.predicate)} ${termToString(term.object)}${term.graph.termType === 'DefaultGraph' ? '' : ' ' + termToString(term.graph)}>>`;\n        case 'Variable': return ('?' + term.value);\n        case 'DefaultGraph': return term.value;\n    }\n}\n/**\n * Get the string value of a literal.\n * @param {string} literalValue An RDF literal enclosed by '\"'.\n * @return {string} The literal value inside the '\"'.\n */\nfunction getLiteralValue(literalValue) {\n    const match = /^\"([^]*)\"/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    return match[1];\n}\n/**\n * Get the datatype of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The datatype of the literal.\n */\nfunction getLiteralType(literalValue) {\n    const match = /^\"[^]*\"(?:\\^\\^([^\"]+)|(@)[^@\"]+)?$/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    return match[1] || (match[2]\n        ? 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' : 'http://www.w3.org/2001/XMLSchema#string');\n}\n/**\n * Get the language of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The language of the literal.\n */\nfunction getLiteralLanguage(literalValue) {\n    const match = /^\"[^]*\"(?:@([^@\"]+)|\\^\\^[^\"]+)?$/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    if (match[1]) {\n        let ret = match[1].toLowerCase();\n        // Remove everything after --, since this indicates the base direction, which will be parsed later.\n        const doubleDashPos = ret.indexOf('--');\n        if (doubleDashPos >= 0) {\n            ret = ret.slice(0, doubleDashPos);\n        }\n        return ret;\n    }\n    return '';\n}\n/**\n * Get the direction of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The direction of the literal.\n */\nfunction getLiteralDirection(literalValue) {\n    const doubleDashPos = literalValue.indexOf('--', literalValue.lastIndexOf('\"'));\n    if (doubleDashPos >= 0) {\n        const direction = literalValue.slice(doubleDashPos + 2, literalValue.length);\n        if (direction === 'ltr' || direction === 'rtl') {\n            return direction;\n        }\n        throw new Error(literalValue + ' is not a literal with a valid direction');\n    }\n    return '';\n}\n/**\n * Transform a string-based RDF term to an RDFJS term.\n * @param {string} value A string-based RDF-term.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {RDF.Term} An RDF-JS term.\n */\nfunction stringToTerm(value, dataFactory) {\n    dataFactory = dataFactory || FACTORY;\n    if (!value || !value.length) {\n        return dataFactory.defaultGraph();\n    }\n    switch (value[0]) {\n        case '_': return dataFactory.blankNode(value.substr(2));\n        case '?':\n            if (!dataFactory.variable) {\n                throw new Error(`Missing 'variable()' method on the given DataFactory`);\n            }\n            return dataFactory.variable(value.substr(1));\n        case '\"':\n            const language = getLiteralLanguage(value);\n            const direction = getLiteralDirection(value);\n            const type = dataFactory.namedNode(getLiteralType(value));\n            return dataFactory.literal(getLiteralValue(value), language ? { language, direction } : type);\n        case '<':\n        default:\n            if (value[0] === '<' && value.length > 4 && value[1] === '<' && value[value.length - 1] === '>' && value[value.length - 2] === '>') {\n                // Iterate character-by-character to detect spaces that are *not* wrapped in <<>>\n                const terms = value.slice(2, -2).trim();\n                let stringTerms = [];\n                let ignoreTags = 0;\n                let lastIndex = 0;\n                let inQuote = false;\n                for (let i = 0; i < terms.length; i++) {\n                    const char = terms[i];\n                    if (char === '<')\n                        ignoreTags++;\n                    if (char === '>') {\n                        if (ignoreTags === 0) {\n                            throw new Error('Found closing tag without opening tag in ' + value);\n                        }\n                        else {\n                            ignoreTags--;\n                        }\n                    }\n                    if (char === '\"') {\n                        let escaped = false;\n                        let j = i;\n                        while (j-- > 0 && terms[j] === '\\\\') {\n                            escaped = !escaped;\n                        }\n                        if (!escaped) {\n                            // We have reached an unescaped quote\n                            inQuote = !inQuote;\n                        }\n                    }\n                    if (char === ' ' && !inQuote && ignoreTags === 0) {\n                        stringTerms.push(terms.slice(lastIndex, i));\n                        while (terms[i + 1] === ' ') {\n                            i += 1;\n                        }\n                        lastIndex = i + 1;\n                    }\n                }\n                if (ignoreTags !== 0) {\n                    throw new Error('Found opening tag without closing tag in ' + value);\n                }\n                stringTerms.push(terms.slice(lastIndex, terms.length));\n                // We require 3 or 4 components\n                if (stringTerms.length !== 3 && stringTerms.length !== 4) {\n                    throw new Error('Nested quad syntax error ' + value);\n                }\n                stringTerms = stringTerms.map(term => term.startsWith('<') && !term.includes(' ') ? term.slice(1, -1) : term);\n                return dataFactory.quad(stringToTerm(stringTerms[0]), stringToTerm(stringTerms[1]), stringToTerm(stringTerms[2]), stringTerms[3] ? stringToTerm(stringTerms[3]) : undefined);\n            }\n            return dataFactory.namedNode(value);\n    }\n}\n/**\n * Convert an RDFJS quad to a string-based quad representation.\n * @param {Quad} q An RDFJS quad.\n * @return {IStringQuad} A hash with string-based quad terms.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction quadToStringQuad(q) {\n    // tslint:disable:object-literal-sort-keys\n    return {\n        subject: termToString(q.subject),\n        predicate: termToString(q.predicate),\n        object: termToString(q.object),\n        graph: termToString(q.graph),\n    };\n    // tslint:enable:object-literal-sort-keys\n}\n/**\n * Convert a string-based quad representation to an RDFJS quad.\n * @param {IStringQuad} stringQuad A hash with string-based quad terms.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {Q} An RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction stringQuadToQuad(stringQuad, dataFactory) {\n    dataFactory = dataFactory || FACTORY;\n    return dataFactory.quad(stringToTerm(stringQuad.subject, dataFactory), stringToTerm(stringQuad.predicate, dataFactory), stringToTerm(stringQuad.object, dataFactory), stringToTerm(stringQuad.graph, dataFactory));\n}\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.termToString = exports.stringToTerm = exports.stringQuadToQuad = exports.quadToStringQuad = exports.getLiteralValue = exports.getLiteralType = exports.getLiteralDirection = exports.getLiteralLanguage = void 0;\nconst TermUtil_1 = require(\"./lib/TermUtil\");\nObject.defineProperty(exports, \"getLiteralLanguage\", { enumerable: true, get: function () { return TermUtil_1.getLiteralLanguage; } });\nObject.defineProperty(exports, \"getLiteralDirection\", { enumerable: true, get: function () { return TermUtil_1.getLiteralDirection; } });\nObject.defineProperty(exports, \"getLiteralType\", { enumerable: true, get: function () { return TermUtil_1.getLiteralType; } });\nObject.defineProperty(exports, \"getLiteralValue\", { enumerable: true, get: function () { return TermUtil_1.getLiteralValue; } });\nObject.defineProperty(exports, \"quadToStringQuad\", { enumerable: true, get: function () { return TermUtil_1.quadToStringQuad; } });\nObject.defineProperty(exports, \"stringQuadToQuad\", { enumerable: true, get: function () { return TermUtil_1.stringQuadToQuad; } });\nObject.defineProperty(exports, \"stringToTerm\", { enumerable: true, get: function () { return TermUtil_1.stringToTerm; } });\nObject.defineProperty(exports, \"termToString\", { enumerable: true, get: function () { return TermUtil_1.termToString; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TERM_TYPES = void 0;\nexports.uniqTerms = uniqTerms;\nexports.getTermsOfType = getTermsOfType;\nexports.getNamedNodes = getNamedNodes;\nexports.getBlankNodes = getBlankNodes;\nexports.getLiterals = getLiterals;\nexports.getVariables = getVariables;\nexports.getDefaultGraphs = getDefaultGraphs;\nexports.getQuads = getQuads;\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * All known term types.\n * @see RDF.Term\n * @type {[string , string , string , string , string, string]}\n */\nexports.TERM_TYPES = ['NamedNode', 'BlankNode', 'Literal', 'Variable', 'DefaultGraph', 'Quad'];\n/*\n * Utility methods for handling RDFJS terms.\n */\n/**\n * Create an array of unique terms from the given array.\n * @param {T[]} terms An array of RDFJS terms.\n * @return {T[]} A new array of unique RDFJS terms.\n */\nfunction uniqTerms(terms) {\n    const hash = {};\n    return terms.filter(term => {\n        const termString = (0, rdf_string_1.termToString)(term);\n        return !(termString in hash) && (hash[termString] = true);\n    });\n}\n/**\n * Find all terms of the given type in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @param {\"NamedNode\" | \"BlankNode\" | \"Literal\" | \"Variable\" | \"DefaultGraph\" | \"Quad\"} termType A term type.\n * @return {Term[]} A new array with elements from the given array only containing elements of the given type.\n */\nfunction getTermsOfType(terms, termType) {\n    return terms.filter((term) => term.termType === termType);\n}\n/**\n * Find all named nodes in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {NamedNode[]} A new array with elements from the given array only containing named nodes.\n */\nfunction getNamedNodes(terms) {\n    return getTermsOfType(terms, 'NamedNode');\n}\n/**\n * Find all blank nodes in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {BlankNode[]} A new array with elements from the given array only containing blank nodes.\n */\nfunction getBlankNodes(terms) {\n    return getTermsOfType(terms, 'BlankNode');\n}\n/**\n * Find all literals in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {Literal[]} A new array with elements from the given array only containing literals.\n */\nfunction getLiterals(terms) {\n    return getTermsOfType(terms, 'Literal');\n}\n/**\n * Find all variables in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {Variable[]} A new array with elements from the given array only containing variables.\n */\nfunction getVariables(terms) {\n    return getTermsOfType(terms, 'Variable');\n}\n/**\n * Find all default graphs in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {DefaultGraph[]} A new array with elements from the given array only containing default graphs.\n */\nfunction getDefaultGraphs(terms) {\n    return getTermsOfType(terms, 'DefaultGraph');\n}\n/**\n * Find all quads in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {BaseQuad[]} A new array with elements from the given array only containing quads.\n */\nfunction getQuads(terms) {\n    return getTermsOfType(terms, 'Quad');\n}\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/QuadTermUtil\"), exports);\n__exportStar(require(\"./lib/TermUtil\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryNumberRecordFullTerms = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A term dictionary that encodes to numbers, and stores the dictionary in memory in a Record.\n * The reverse dictionary will store full RDF term objects,\n * resulting in slightly better query performance at the cost of slightly higher memory usage.\n */\nclass TermDictionaryNumberRecordFullTerms {\n    constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n        this.lastId = 0;\n        this.dictionary = {};\n        this.reverseDictionary = {};\n        this.features = { quotedTriples: false };\n        this.dataFactory = dataFactory;\n    }\n    encode(term) {\n        const key = (0, rdf_string_1.termToString)(term);\n        let encoded = this.dictionary[key];\n        if (encoded === undefined) {\n            encoded = this.lastId++;\n            this.dictionary[key] = encoded;\n            this.reverseDictionary[encoded] = term;\n        }\n        return encoded;\n    }\n    encodeOptional(term) {\n        const key = (0, rdf_string_1.termToString)(term);\n        return this.dictionary[key];\n    }\n    decode(encoding) {\n        const string = this.reverseDictionary[encoding];\n        if (string === undefined) {\n            throw new Error(`The value ${encoding} is not present in this dictionary`);\n        }\n        return string;\n    }\n    *encodings() {\n        for (const key of Object.keys(this.reverseDictionary)) {\n            yield Number.parseInt(key, 10);\n        }\n    }\n    findQuotedTriples(quotedTriplePattern) {\n        throw new Error('findQuotedTriples is not supported');\n    }\n    findQuotedTriplesEncoded(quotedTriplePattern) {\n        throw new Error('findQuotedTriplesEncoded is not supported');\n    }\n}\nexports.TermDictionaryNumberRecordFullTerms = TermDictionaryNumberRecordFullTerms;\n//# sourceMappingURL=TermDictionaryNumberRecordFullTerms.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QUAD_TERM_NAMES_INVERSE = void 0;\nexports.getBestIndex = getBestIndex;\nexports.getComponentOrderScore = getComponentOrderScore;\nexports.orderQuadComponents = orderQuadComponents;\nexports.encodeOptionalTerms = encodeOptionalTerms;\nexports.quadToPattern = quadToPattern;\nexports.quadHasVariables = quadHasVariables;\nexports.arePatternsQuoted = arePatternsQuoted;\nconst rdf_terms_1 = require(\"rdf-terms\");\nexports.QUAD_TERM_NAMES_INVERSE = Object.fromEntries(rdf_terms_1.QUAD_TERM_NAMES.map((value, key) => [value, key]));\n/**\n * Determine the best suitable order's index among the given orders for the given quad pattern.\n * @param componentOrders Possible orders of quad components.\n * @param quadPattern A quad pattern.\n */\nfunction getBestIndex(componentOrders, quadPattern) {\n    if (componentOrders.length === 1 || quadPattern.every(term => term !== undefined)) {\n        return 0;\n    }\n    // Determine the quad component names for which we require a defined lookup\n    const definedQuadComponentNames = [];\n    for (let quadComponentId = 0; quadComponentId < rdf_terms_1.QUAD_TERM_NAMES.length; quadComponentId++) {\n        if (quadPattern[quadComponentId]) {\n            definedQuadComponentNames.push(rdf_terms_1.QUAD_TERM_NAMES[quadComponentId]);\n        }\n    }\n    // Score indexes by how well they match to the index\n    const scoredIndexes = componentOrders.map((componentOrder, index) => {\n        const score = getComponentOrderScore(componentOrder, definedQuadComponentNames);\n        return { score, index };\n    });\n    // Sort the indexes, and pick the first one\n    return scoredIndexes.sort((scoredLeft, scoredRight) => scoredRight.score - scoredLeft.score)[0].index;\n}\n/**\n * Determine the score of the given partial component order in the given component order.\n * @param componentOrder A quad component order.\n * @param partialComponentOrder A partial quad component order that originates from a quad pattern.\n */\nfunction getComponentOrderScore(componentOrder, partialComponentOrder) {\n    return componentOrder\n        .map((order, i) => partialComponentOrder.includes(order) ? componentOrder.length - i : 0)\n        .reduce((acc, add) => acc + add, 0);\n}\n/**\n * Order a quad pattern's terms based on the given component order.\n * @param desiredComponentOrder The desired order of components.\n * @param quadPattern A quad pattern.\n */\nfunction orderQuadComponents(desiredComponentOrder, quadPattern) {\n    return desiredComponentOrder.map(desiredComponent => {\n        const desiredComponentIndex = exports.QUAD_TERM_NAMES_INVERSE[desiredComponent];\n        return quadPattern[desiredComponentIndex];\n    });\n}\n/**\n * Encode the given array of quad terms.\n * @param terms Non-encoded quad terms.\n * @param dictionary A dictionary\n * @return array An array of encoded terms.\n * The array will be undefined if at least one of the patterns does not occur within the dictionary.\n */\nfunction encodeOptionalTerms(terms, dictionary) {\n    const encodedTerms = terms.map(term => {\n        if (term) {\n            if (term.termType === 'Quad' && quadHasVariables(term)) {\n                return;\n            }\n            const encodedTerm = dictionary.encodeOptional(term);\n            if (encodedTerm === undefined) {\n                return 'none';\n            }\n            return encodedTerm;\n        }\n        return term;\n    });\n    if (encodedTerms.includes('none')) {\n        return undefined;\n    }\n    return encodedTerms;\n}\n/**\n * Convert a quad patter to a `QuadPatternTerms` type.\n * @param subject The subject.\n * @param predicate The predicate.\n * @param object The object.\n * @param graph The graph.\n * @param quotedPatterns If the index supports quoted triple filtering.\n * @return Tuple A tuple of QuadPatternTerms\n *               and a boolean indicating if post-filtering will be needed on quoted triples.\n *               This boolean can only be true if `quotedPatterns` is false, and a quoted triple pattern was present.\n */\nfunction quadToPattern(subject, predicate, object, graph, quotedPatterns) {\n    let requireQuotedTripleFiltering = false;\n    const quadPatternTerms = [subject || undefined, predicate || undefined, object || undefined, graph || undefined]\n        .map(term => {\n        if (term) {\n            if (term.termType === 'Variable') {\n                return;\n            }\n            if (term.termType === 'Quad') {\n                if (quotedPatterns) {\n                    return term;\n                }\n                requireQuotedTripleFiltering = true;\n                return;\n            }\n        }\n        return term;\n    });\n    return [quadPatternTerms, requireQuotedTripleFiltering];\n}\n/**\n * Check if the given quad contains variables, even in deeply nested quoted triples.\n * @param currentTerm The quad pattern term.\n */\nfunction quadHasVariables(currentTerm) {\n    for (const component of rdf_terms_1.QUAD_TERM_NAMES) {\n        const subTerm = currentTerm[component];\n        if (subTerm.termType === 'Variable' || (subTerm.termType === 'Quad' && quadHasVariables(subTerm))) {\n            return true;\n        }\n    }\n    return false;\n}\n/**\n * Create a boolean array indicating which terms are quoted triple patterns.\n * @param terms An array of terms.\n */\nfunction arePatternsQuoted(terms) {\n    return terms.map(term => term?.termType === 'Quad' && quadHasVariables(term));\n}\n//# sourceMappingURL=OrderUtils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedMap = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\n/**\n * An RDF store index that is implemented using nested Maps.\n */\nclass RdfStoreIndexNestedMap {\n    constructor(options) {\n        this.features = {\n            quotedTripleFiltering: false,\n        };\n        this.dictionary = options.dictionary;\n        this.nestedMap = new Map();\n    }\n    set(terms, value) {\n        const map0 = this.nestedMap;\n        let map1 = map0.get(terms[0]);\n        if (!map1) {\n            map1 = new Map();\n            map0.set(terms[0], map1);\n        }\n        let map2 = map1.get(terms[1]);\n        if (!map2) {\n            map2 = new Map();\n            map1.set(terms[1], map2);\n        }\n        let map3 = map2.get(terms[2]);\n        if (!map3) {\n            map3 = new Map();\n            map2.set(terms[2], map3);\n        }\n        const contained = map3.has(terms[3]);\n        if (!contained) {\n            map3.set(terms[3], value);\n        }\n        return !contained;\n    }\n    remove(terms) {\n        const map0 = this.nestedMap;\n        const map1 = map0.get(terms[0]);\n        if (!map1) {\n            return false;\n        }\n        const map2 = map1.get(terms[1]);\n        if (!map2) {\n            return false;\n        }\n        const map3 = map2.get(terms[2]);\n        if (!map3) {\n            return false;\n        }\n        const ret = map3.delete(terms[3]);\n        // Clean up intermediate maps\n        if (ret && map3.size === 0) {\n            map2.delete(terms[2]);\n            if (map2.size === 0) {\n                map1.delete(terms[1]);\n                if (map1.size === 0) {\n                    map0.delete(terms[0]);\n                }\n            }\n        }\n        return ret;\n    }\n    get(key) {\n        const encoded = (0, OrderUtils_1.encodeOptionalTerms)(key, this.dictionary);\n        // eslint-disable-next-line unicorn/no-useless-undefined\n        if (!encoded || encoded.includes(undefined)) {\n            return undefined;\n        }\n        return this.getEncoded(encoded);\n    }\n    getEncoded(ids) {\n        const map1 = this.nestedMap.get(ids[0]);\n        if (!map1) {\n            return undefined;\n        }\n        const map2 = map1.get(ids[1]);\n        if (!map2) {\n            return undefined;\n        }\n        const map3 = map2.get(ids[2]);\n        if (!map3) {\n            return undefined;\n        }\n        return map3.get(ids[3]);\n    }\n    *find(terms) {\n        const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n        if (!ids) {\n            return;\n        }\n        const [id0, id1, id2, id3] = ids;\n        const [term0, term1, term2, term3] = terms;\n        let partialQuad0;\n        let partialQuad1;\n        let partialQuad2;\n        let partialQuad3;\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedMap;\n        const map0Keys = id0 !== undefined ? (map0.has(id0) ? [id0] : []) : map0.keys();\n        for (const key1 of map0Keys) {\n            map1 = map0.get(key1);\n            partialQuad0 = term0 || this.dictionary.decode(key1);\n            const map1Keys = id1 !== undefined ? (map1.has(id1) ? [id1] : []) : map1.keys();\n            for (const key2 of map1Keys) {\n                map2 = map1.get(key2);\n                partialQuad1 = term1 || this.dictionary.decode(key2);\n                const map2Keys = id2 !== undefined ? (map2.has(id2) ? [id2] : []) : map2.keys();\n                for (const key3 of map2Keys) {\n                    map3 = map2.get(key3);\n                    partialQuad2 = term2 || this.dictionary.decode(key3);\n                    const map3Keys = id3 !== undefined ? (map3.has(id3) ? [id3] : []) : map3.keys();\n                    for (const key4 of map3Keys) {\n                        partialQuad3 = term3 || this.dictionary.decode(key4);\n                        yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n                    }\n                }\n            }\n        }\n    }\n    // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n    *findEncoded(ids, terms) {\n        const [id0, id1, id2, id3] = ids;\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedMap;\n        const map0Keys = id0 !== undefined ? (map0.has(id0) ? [id0] : []) : map0.keys();\n        for (const key1 of map0Keys) {\n            map1 = map0.get(key1);\n            const map1Keys = id1 !== undefined ? (map1.has(id1) ? [id1] : []) : map1.keys();\n            for (const key2 of map1Keys) {\n                map2 = map1.get(key2);\n                const map2Keys = id2 !== undefined ? (map2.has(id2) ? [id2] : []) : map2.keys();\n                for (const key3 of map2Keys) {\n                    map3 = map2.get(key3);\n                    const map3Keys = id3 !== undefined ? (map3.has(id3) ? [id3] : []) : map3.keys();\n                    for (const key4 of map3Keys) {\n                        yield [key1, key2, key3, key4];\n                    }\n                }\n            }\n        }\n    }\n    count(terms) {\n        let count = 0;\n        const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n        if (!ids) {\n            return 0;\n        }\n        const id0 = ids[0];\n        const id1 = ids[1];\n        const id2 = ids[2];\n        const id3 = ids[3];\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedMap;\n        const map0Keys = id0 !== undefined ? (map0.has(id0) ? [id0] : []) : map0.keys();\n        for (const key1 of map0Keys) {\n            map1 = map0.get(key1);\n            const map1Keys = id1 !== undefined ? (map1.has(id1) ? [id1] : []) : map1.keys();\n            for (const key2 of map1Keys) {\n                map2 = map1.get(key2);\n                const map2Keys = id2 !== undefined ? (map2.has(id2) ? [id2] : []) : map2.keys();\n                for (const key3 of map2Keys) {\n                    map3 = map2.get(key3);\n                    if (id3 !== undefined) {\n                        if (map3.has(id3)) {\n                            count++;\n                        }\n                    }\n                    else {\n                        count += map3.size;\n                    }\n                }\n            }\n        }\n        return count;\n    }\n}\nexports.RdfStoreIndexNestedMap = RdfStoreIndexNestedMap;\n//# sourceMappingURL=RdfStoreIndexNestedMap.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryQuotedIndexed = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst RdfStoreIndexNestedMap_1 = require(\"../index/RdfStoreIndexNestedMap\");\nconst OrderUtils_1 = require(\"../OrderUtils\");\n/**\n * A term dictionary for quoted triples.\n *\n * Plain terms are stored in a regular dictionary.\n * Quoted triples are stored separately using an index, which is backed the same dictionary.\n *\n * Finding quoted triples is done through indexed lookups.\n */\nclass TermDictionaryQuotedIndexed {\n    constructor(rawTermDictionary, dataFactory = new rdf_data_factory_1.DataFactory()) {\n        this.quotedTriplesDictionary = [];\n        this.features = { quotedTriples: true };\n        this.plainTermDictionary = rawTermDictionary;\n        const subIndexOpts = {\n            // Not required\n            indexCombinations: [],\n            // Not required\n            indexConstructor: undefined,\n            dictionary: this,\n            dataFactory,\n        };\n        this.quotedTriplesReverseDictionaries = [\n            new RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap(subIndexOpts),\n            new RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap(subIndexOpts),\n            new RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap(subIndexOpts),\n        ];\n        this.dataFactory = dataFactory;\n    }\n    encode(term) {\n        if (term.termType === 'Quad') {\n            return this.encodeQuotedTriple(term, false);\n        }\n        return this.plainTermDictionary.encode(term);\n    }\n    encodeQuotedTriple(quad, optional) {\n        // Only quoted triples are supported\n        if (quad.graph.termType !== 'DefaultGraph') {\n            throw new Error('Encoding of quoted quads outside of the default graph is not allowed');\n        }\n        // Check if the quad was already encoded\n        const encodedTripleOptional = (0, OrderUtils_1.encodeOptionalTerms)([quad.subject, quad.predicate, quad.object, quad.graph], this);\n        const id = encodedTripleOptional && encodedTripleOptional.every(encoded => encoded !== undefined) ?\n            this.quotedTriplesReverseDictionaries[0].getEncoded(encodedTripleOptional) :\n            undefined;\n        // Return the encoding if we found one\n        if (id !== undefined || optional) {\n            // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n            return (id === undefined ? undefined : TermDictionaryQuotedIndexed.BITMASK | id);\n        }\n        // If the quad was not encoded yet, add a new entry for it in the dictionary.\n        const encodedTriple = [\n            this.encode(quad.subject),\n            this.encode(quad.predicate),\n            this.encode(quad.object),\n        ];\n        const encodingBase = this.quotedTriplesDictionary.length + 1;\n        this.quotedTriplesDictionary.push(encodedTriple);\n        const encodedGraph = this.encode(this.dataFactory.defaultGraph());\n        this.quotedTriplesReverseDictionaries[0].set([\n            encodedTriple[0],\n            encodedTriple[1],\n            encodedTriple[2],\n            encodedGraph,\n        ], encodingBase);\n        this.quotedTriplesReverseDictionaries[1].set([\n            encodedTriple[1],\n            encodedTriple[2],\n            encodedTriple[0],\n            encodedGraph,\n        ], encodingBase);\n        this.quotedTriplesReverseDictionaries[2].set([\n            encodedTriple[2],\n            encodedTriple[0],\n            encodedTriple[1],\n            encodedGraph,\n        ], encodingBase);\n        // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n        return TermDictionaryQuotedIndexed.BITMASK | encodingBase;\n    }\n    encodeOptional(term) {\n        if (term.termType === 'Quad') {\n            return this.encodeQuotedTriple(term, true);\n        }\n        return this.plainTermDictionary.encodeOptional(term);\n    }\n    decode(encoding) {\n        if (TermDictionaryQuotedIndexed.BITMASK & encoding) {\n            // Term comes from the quoted triples dictionary\n            const encodingBase = (~TermDictionaryQuotedIndexed.BITMASK & encoding) - 1;\n            if (encodingBase >= this.quotedTriplesDictionary.length) {\n                throw new Error(`The value ${encoding} is not present in the quoted triples range of the dictionary`);\n            }\n            const encodedTerms = this.quotedTriplesDictionary[encodingBase];\n            return this.dataFactory.quad(this.decode(encodedTerms[0]), this.decode(encodedTerms[1]), this.decode(encodedTerms[2]));\n        }\n        // Term comes from the plain terms dictionary\n        return this.plainTermDictionary.decode(encoding);\n    }\n    *encodings() {\n        for (const encoding of this.plainTermDictionary.encodings()) {\n            yield encoding;\n        }\n        for (const encoding of this.quotedTriplesDictionary.keys()) {\n            yield TermDictionaryQuotedIndexed.BITMASK | (1 + encoding);\n        }\n    }\n    *findQuotedTriples(quotedTriplePattern) {\n        for (const termEncoded of this.findQuotedTriplesEncoded(quotedTriplePattern)) {\n            yield this.decode(termEncoded);\n        }\n    }\n    *findQuotedTriplesEncoded(quotedTriplePattern) {\n        const [patternIn, requireQuotedTripleFiltering] = (0, OrderUtils_1.quadToPattern)(quotedTriplePattern.subject, quotedTriplePattern.predicate, quotedTriplePattern.object, quotedTriplePattern.graph, true);\n        // Find all matching terms iteratively\n        for (const termS of this.patternToIterable(patternIn[0])) {\n            for (const termP of this.patternToIterable(patternIn[1])) {\n                for (const termO of this.patternToIterable(patternIn[2])) {\n                    for (const termG of this.patternToIterable(patternIn[3])) {\n                        // Find all terms matching the pattern from the reverse indexes\n                        // We select the reverse index according to the current triple pattern\n                        if ((termS && termP) || (!termP && !termO)) {\n                            // SPO\n                            const pattern = [termS, termP, termO, termG];\n                            for (const termEncoded of this.quotedTriplesReverseDictionaries[0].findEncoded(pattern, patternIn)) {\n                                yield TermDictionaryQuotedIndexed.BITMASK |\n                                    this.quotedTriplesReverseDictionaries[0].getEncoded(termEncoded);\n                            }\n                        }\n                        else if (!termS && termP) {\n                            // POS\n                            const pattern = [termP, termO, termS, termG];\n                            for (const termEncoded of this.quotedTriplesReverseDictionaries[1].findEncoded(pattern, patternIn)) {\n                                yield TermDictionaryQuotedIndexed.BITMASK |\n                                    this.quotedTriplesReverseDictionaries[1].getEncoded(termEncoded);\n                            }\n                        }\n                        else {\n                            // OSP\n                            const pattern = [termO, termS, termP, termG];\n                            for (const termEncoded of this.quotedTriplesReverseDictionaries[2].findEncoded(pattern, patternIn)) {\n                                yield TermDictionaryQuotedIndexed.BITMASK |\n                                    this.quotedTriplesReverseDictionaries[2].getEncoded(termEncoded);\n                            }\n                        }\n                    }\n                }\n            }\n        }\n    }\n    /**\n     * Helper function to convert a term to an iterator over encoded terms.\n     * @param patternTerm A term.\n     * @protected\n     */\n    *patternToIterable(patternTerm) {\n        // If the term is another quoted quad, recursively find other quoted triples\n        if (patternTerm?.termType === 'Quad') {\n            yield* this.findQuotedTriplesEncoded(patternTerm);\n            return;\n        }\n        // Undefined terms indicate a variable\n        if (patternTerm === undefined) {\n            // eslint-disable-next-line unicorn/no-useless-undefined\n            yield undefined;\n            return;\n        }\n        // Defined terms indicate a precise match\n        const enc = this.encodeOptional(patternTerm);\n        if (enc === undefined) {\n            return;\n        }\n        yield enc;\n    }\n}\nexports.TermDictionaryQuotedIndexed = TermDictionaryQuotedIndexed;\nTermDictionaryQuotedIndexed.BITMASK = 1 << 31;\n//# sourceMappingURL=TermDictionaryQuotedIndexed.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedMapQuoted = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\nconst RdfStoreIndexNestedMap_1 = require(\"./RdfStoreIndexNestedMap\");\n/**\n * An RDF store index that is implemented using nested Maps with optimized quoted triple support.\n */\nclass RdfStoreIndexNestedMapQuoted extends RdfStoreIndexNestedMap_1.RdfStoreIndexNestedMap {\n    constructor(options) {\n        super(options);\n        this.features = {\n            quotedTripleFiltering: true,\n        };\n    }\n    *getQuotedPatternKeys(map, term) {\n        for (const quotedTripleEncoded of this.dictionary.findQuotedTriplesEncoded(term)) {\n            if (map.has(quotedTripleEncoded)) {\n                yield quotedTripleEncoded;\n            }\n        }\n    }\n    *find(terms) {\n        const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n        if (!ids) {\n            return;\n        }\n        const [id0, id1, id2, id3] = ids;\n        const [term0, term1, term2, term3] = terms;\n        const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n        let partialQuad0;\n        let partialQuad1;\n        let partialQuad2;\n        let partialQuad3;\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedMap;\n        const map0Keys = (term0 !== undefined ?\n            (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (map0.has(id0) ? [id0] : [])) :\n            map0.keys());\n        for (const key1 of map0Keys) {\n            map1 = map0.get(key1);\n            partialQuad0 = !quotedTerm0 && term0 ? term0 : this.dictionary.decode(key1);\n            const map1Keys = (term1 !== undefined ?\n                (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (map1.has(id1) ? [id1] : [])) :\n                map1.keys());\n            for (const key2 of map1Keys) {\n                map2 = map1.get(key2);\n                partialQuad1 = !quotedTerm1 && term1 ? term1 : this.dictionary.decode(key2);\n                const map2Keys = (term2 !== undefined ?\n                    (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (map2.has(id2) ? [id2] : [])) :\n                    map2.keys());\n                for (const key3 of map2Keys) {\n                    map3 = map2.get(key3);\n                    partialQuad2 = !quotedTerm2 && term2 ? term2 : this.dictionary.decode(key3);\n                    const map3Keys = (term3 !== undefined ?\n                        (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (map3.has(id3) ? [id3] : [])) :\n                        map3.keys());\n                    for (const key4 of map3Keys) {\n                        partialQuad3 = !quotedTerm3 && term3 ? term3 : this.dictionary.decode(key4);\n                        yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n                    }\n                }\n            }\n        }\n    }\n    // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n    *findEncoded(ids, terms) {\n        const [id0, id1, id2, id3] = ids;\n        const [term0, term1, term2, term3] = terms;\n        const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedMap;\n        const map0Keys = (term0 !== undefined ?\n            (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (map0.has(id0) ? [id0] : [])) :\n            map0.keys());\n        for (const key1 of map0Keys) {\n            map1 = map0.get(key1);\n            const map1Keys = (term1 !== undefined ?\n                (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (map1.has(id1) ? [id1] : [])) :\n                map1.keys());\n            for (const key2 of map1Keys) {\n                map2 = map1.get(key2);\n                const map2Keys = (term2 !== undefined ?\n                    (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (map2.has(id2) ? [id2] : [])) :\n                    map2.keys());\n                for (const key3 of map2Keys) {\n                    map3 = map2.get(key3);\n                    const map3Keys = (term3 !== undefined ?\n                        (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (map3.has(id3) ? [id3] : [])) :\n                        map3.keys());\n                    for (const key4 of map3Keys) {\n                        yield [\n                            Number.parseInt(key1, 10),\n                            Number.parseInt(key2, 10),\n                            Number.parseInt(key3, 10),\n                            Number.parseInt(key4, 10),\n                        ];\n                    }\n                }\n            }\n        }\n    }\n    count(terms) {\n        let count = 0;\n        const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n        if (!ids) {\n            return 0;\n        }\n        const [id0, id1, id2, id3] = ids;\n        const [term0, term1, term2, term3] = terms;\n        const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedMap;\n        const map0Keys = (term0 !== undefined ?\n            (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (map0.has(id0) ? [id0] : [])) :\n            map0.keys());\n        for (const key1 of map0Keys) {\n            map1 = map0.get(key1);\n            const map1Keys = (term1 !== undefined ?\n                (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (map1.has(id1) ? [id1] : [])) :\n                map1.keys());\n            for (const key2 of map1Keys) {\n                map2 = map1.get(key2);\n                const map2Keys = (term2 !== undefined ?\n                    (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (map2.has(id2) ? [id2] : [])) :\n                    map2.keys());\n                for (const key3 of map2Keys) {\n                    map3 = map2.get(key3);\n                    if (term3 !== undefined) {\n                        if (quotedTerm3) {\n                            count += [...this.getQuotedPatternKeys(map3, term3)].length;\n                        }\n                        else if (map3.has(id3)) {\n                            count++;\n                        }\n                    }\n                    else {\n                        count += map3.size;\n                    }\n                }\n            }\n        }\n        return count;\n    }\n}\nexports.RdfStoreIndexNestedMapQuoted = RdfStoreIndexNestedMapQuoted;\n//# sourceMappingURL=RdfStoreIndexNestedMapQuoted.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStore = void 0;\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst DatasetCoreWrapper_1 = require(\"./dataset/DatasetCoreWrapper\");\nconst TermDictionaryNumberRecordFullTerms_1 = require(\"./dictionary/TermDictionaryNumberRecordFullTerms\");\nconst TermDictionaryQuotedIndexed_1 = require(\"./dictionary/TermDictionaryQuotedIndexed\");\nconst RdfStoreIndexNestedMapQuoted_1 = require(\"./index/RdfStoreIndexNestedMapQuoted\");\nconst OrderUtils_1 = require(\"./OrderUtils\");\n/**\n * An RDF store allows quads to be stored and fetched, based on one or more customizable indexes.\n */\nclass RdfStore {\n    constructor(options) {\n        this.features = { quotedTripleFiltering: true };\n        this._size = 0;\n        this.options = options;\n        this.dataFactory = options.dataFactory;\n        this.dictionary = options.dictionary;\n        this.indexesWrapped = RdfStore.constructIndexesWrapped(options);\n        this.indexesWrappedComponentOrders = this.indexesWrapped.map(indexThis => indexThis.componentOrder);\n    }\n    /**\n     * Create an RDF store with default settings.\n     * Concretely, this store stores triples in GSPO, GPOS, and GOSP order,\n     * and makes use of in-memory number dictionary encoding.\n     */\n    static createDefault() {\n        return new RdfStore({\n            indexCombinations: RdfStore.DEFAULT_INDEX_COMBINATIONS,\n            indexConstructor: subOptions => new RdfStoreIndexNestedMapQuoted_1.RdfStoreIndexNestedMapQuoted(subOptions),\n            dictionary: new TermDictionaryQuotedIndexed_1.TermDictionaryQuotedIndexed(new TermDictionaryNumberRecordFullTerms_1.TermDictionaryNumberRecordFullTerms()),\n            dataFactory: new rdf_data_factory_1.DataFactory(),\n        });\n    }\n    /**\n     * Internal helper to create index objects.\n     * @param options The RDF store options object.\n     */\n    static constructIndexesWrapped(options) {\n        const indexes = [];\n        if (options.indexCombinations.length === 0) {\n            throw new Error('At least one index combination is required');\n        }\n        for (const componentOrder of options.indexCombinations) {\n            if (!RdfStore.isCombinationValid(componentOrder)) {\n                throw new Error(`Invalid index combination: ${componentOrder}`);\n            }\n            indexes.push({\n                index: options.indexConstructor(options),\n                componentOrder,\n                componentOrderInverse: Object.fromEntries(componentOrder.map((value, key) => [value, key])),\n            });\n        }\n        return indexes;\n    }\n    /**\n     * Check if a given quad term order is valid.\n     * @param combination A quad term order.\n     */\n    static isCombinationValid(combination) {\n        for (const quadTermName of rdf_terms_1.QUAD_TERM_NAMES) {\n            if (!combination.includes(quadTermName)) {\n                return false;\n            }\n        }\n        return combination.length === 4;\n    }\n    /**\n     * The number of quads in this store.\n     */\n    get size() {\n        return this._size;\n    }\n    /**\n     * Add a quad to the store.\n     * @param quad An RDF quad.\n     * @return boolean If the quad was not yet present in the index.\n     */\n    addQuad(quad) {\n        const quadEncoded = [\n            this.dictionary.encode(quad.subject),\n            this.dictionary.encode(quad.predicate),\n            this.dictionary.encode(quad.object),\n            this.dictionary.encode(quad.graph),\n        ];\n        let newQuad = false;\n        for (const indexWrapped of this.indexesWrapped) {\n            // Before sending the quad to the index, make sure its components are ordered corresponding to the index's order.\n            newQuad = indexWrapped.index\n                .set((0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadEncoded), true);\n        }\n        if (newQuad) {\n            this._size++;\n            return true;\n        }\n        return false;\n    }\n    /**\n     * Remove a quad from the store.\n     * @param quad An RDF quad.\n     * @return boolean If the quad was present in the index.\n     */\n    removeQuad(quad) {\n        const quadEncoded = [\n            this.dictionary.encodeOptional(quad.subject),\n            this.dictionary.encodeOptional(quad.predicate),\n            this.dictionary.encodeOptional(quad.object),\n            this.dictionary.encodeOptional(quad.graph),\n        ];\n        // We can quickly return false if the quad is not present in the dictionary\n        // eslint-disable-next-line unicorn/no-useless-undefined\n        if (quadEncoded.includes(undefined)) {\n            return false;\n        }\n        let wasPresent = false;\n        for (const indexWrapped of this.indexesWrapped) {\n            // Before sending the quad to the index, make sure its components are ordered corresponding to the index's order.\n            wasPresent = indexWrapped.index\n                .remove((0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadEncoded));\n            if (!wasPresent) {\n                break;\n            }\n        }\n        if (wasPresent) {\n            this._size--;\n            return true;\n        }\n        return false;\n    }\n    /**\n     * Removes all streamed quads.\n     * @param stream A stream of quads\n     */\n    remove(stream) {\n        stream.on('data', quad => this.removeQuad(quad));\n        return stream;\n    }\n    /**\n     * All quads matching the pattern will be removed.\n     * @param subject The optional subject.\n     * @param predicate The optional predicate.\n     * @param object The optional object.\n     * @param graph The optional graph.\n     */\n    removeMatches(subject, predicate, object, graph) {\n        return this.remove(this.match(subject, predicate, object, graph));\n    }\n    /**\n     * Deletes the given named graph.\n     * @param graph The graph term or string to match.\n     */\n    deleteGraph(graph) {\n        if (typeof graph === 'string') {\n            graph = this.dataFactory.namedNode(graph);\n        }\n        return this.removeMatches(undefined, undefined, undefined, graph);\n    }\n    /**\n     * Import the given stream of quads into the store.\n     * @param stream A stream of RDF quads.\n     */\n    import(stream) {\n        stream.on('data', (quad) => this.addQuad(quad));\n        return stream;\n    }\n    /**\n     * Returns a generator producing all quads matching the pattern.\n     * @param subject The optional subject.\n     * @param predicate The optional predicate.\n     * @param object The optional object.\n     * @param graph The optional graph.\n     */\n    *readQuads(subject, predicate, object, graph) {\n        // Check if our dictionary and our indexes have quoted pattern support\n        const indexesSupportQuotedPatterns = Boolean(this.dictionary.features.quotedTriples) &&\n            Object.values(this.indexesWrapped).every(wrapped => wrapped.index.features.quotedTripleFiltering);\n        // Construct a quad pattern array\n        const [quadComponents, requireQuotedTripleFiltering] = (0, OrderUtils_1.quadToPattern)(subject, predicate, object, graph, indexesSupportQuotedPatterns);\n        // Determine the best index for this pattern\n        const indexWrapped = this.indexesWrapped[(0, OrderUtils_1.getBestIndex)(this.indexesWrappedComponentOrders, quadComponents)];\n        // Re-order the quad pattern based on this best index's component order\n        const quadComponentsOrdered = (0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadComponents);\n        // Call the best index's find method.\n        // eslint-disable-next-line unicorn/no-array-callback-reference\n        for (const decomposedQuad of indexWrapped.index.find(quadComponentsOrdered)) {\n            // De-order the resulting quad components into the normal SPOG order for quad creation.\n            const quad = this.dataFactory.quad(decomposedQuad[indexWrapped.componentOrderInverse.subject], decomposedQuad[indexWrapped.componentOrderInverse.predicate], decomposedQuad[indexWrapped.componentOrderInverse.object], decomposedQuad[indexWrapped.componentOrderInverse.graph]);\n            if (requireQuotedTripleFiltering) {\n                if ((0, rdf_terms_1.matchPattern)(quad, subject, predicate, object, graph)) {\n                    yield quad;\n                }\n            }\n            else {\n                yield quad;\n            }\n        }\n    }\n    /**\n     * Returns an array containing all quads matching the pattern.\n     * @param subject The optional subject.\n     * @param predicate The optional predicate.\n     * @param object The optional object.\n     * @param graph The optional graph.\n     */\n    getQuads(subject, predicate, object, graph) {\n        return [...this.readQuads(subject, predicate, object, graph)];\n    }\n    /**\n     * Returns a stream that produces all quads matching the pattern.\n     * @param subject The optional subject.\n     * @param predicate The optional predicate.\n     * @param object The optional object.\n     * @param graph The optional graph.\n     */\n    match(subject, predicate, object, graph) {\n        return (0, asynciterator_1.wrap)(this.readQuads(subject, predicate, object, graph));\n    }\n    /**\n     * Returns a generator producing all quads matching the pattern.\n     * @param subject The subject, which can be a variable.\n     * @param predicate The predicate, which can be a variable.\n     * @param object The object, which can be a variable.\n     * @param graph The graph, which can be a variable.\n     */\n    *readBindings(bindingsFactory, subject, predicate, object, graph) {\n        // Check if our dictionary and our indexes have quoted pattern support\n        const indexesSupportQuotedPatterns = Boolean(this.dictionary.features.quotedTriples) &&\n            Object.values(this.indexesWrapped).every(wrapped => wrapped.index.features.quotedTripleFiltering);\n        // Construct a quad pattern array\n        const [quadComponents, requireQuotedTripleFiltering] = (0, OrderUtils_1.quadToPattern)(subject, predicate, object, graph, indexesSupportQuotedPatterns);\n        // Determine the best index for this pattern\n        const indexWrapped = this.indexesWrapped[(0, OrderUtils_1.getBestIndex)(this.indexesWrappedComponentOrders, quadComponents)];\n        // Re-order the quad pattern based on this best index's component order\n        const quadComponentsOrdered = (0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadComponents);\n        const ids = (0, OrderUtils_1.encodeOptionalTerms)(quadComponentsOrdered, this.dictionary);\n        // Abort if any of the terms does not exist in the dictionary\n        if (!ids) {\n            return;\n        }\n        // Collect variables to bind\n        const terms = (0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, [subject, predicate, object, graph]);\n        const variableIndexes = [];\n        for (let i = 0; i < terms.length; i++) {\n            if (terms[i].termType === 'Variable' || terms[i].termType === 'Quad') {\n                variableIndexes.push(i);\n            }\n        }\n        // Check if we need to do post-filtering for overlapping variables\n        let shouldFilterIndexes = false;\n        const filterIndexes = terms.map((variable, i) => {\n            const equalVariables = [];\n            for (let j = i + 1; j < terms.length; j++) {\n                if (variable.equals(terms[j])) {\n                    equalVariables.push(j);\n                    shouldFilterIndexes = true;\n                }\n            }\n            return equalVariables;\n        });\n        // Call the best index's find method.\n        for (const decomposedQuadEncoded of indexWrapped.index\n            .findEncoded(ids, quadComponentsOrdered)) {\n            let skipBinding = false;\n            let checkForBindingConflicts = false;\n            const bindingsEntries = [];\n            for (const i of variableIndexes) {\n                // If we had overlapping variables, potentially exclude this binding if values for variable are unequal\n                if (shouldFilterIndexes) {\n                    const filterI = filterIndexes[i];\n                    if (filterI) {\n                        for (const j of filterI) {\n                            if (decomposedQuadEncoded[i] !== decomposedQuadEncoded[j]) {\n                                skipBinding = true;\n                                break;\n                            }\n                        }\n                    }\n                    if (skipBinding) {\n                        break;\n                    }\n                }\n                const decodedTerm = this.dictionary.decode(decomposedQuadEncoded[i]);\n                // Handle quoted triples\n                // TODO: it may be possible to implement a more efficient of findEncoded if requireQuotedTripleFiltering is\n                //  false that would return bindings instead of quads. The following could then be skipped.\n                //  variableIndexes would also need to be changed to check requireQuotedTripleFiltering (see readQuads).\n                if (terms[i].termType === 'Quad') {\n                    if (decodedTerm.termType === 'Quad') {\n                        // If the term is a quad, it may also contain nested variables,\n                        // so we need to extract those additional bindings.\n                        const additionalBindings = (0, rdf_terms_1.matchPatternMappings)(decodedTerm, terms[i], { returnMappings: true });\n                        if (additionalBindings) {\n                            checkForBindingConflicts = true;\n                            for (const [key, value] of Object.entries(additionalBindings)) {\n                                const variable = this.dataFactory.variable(key);\n                                if (bindingsEntries.some(entry => entry[0].equals(variable) && !entry[1].equals(value))) {\n                                    // Skip this binding if we find conflicting variable bindings\n                                    skipBinding = true;\n                                    break;\n                                }\n                                bindingsEntries.push([variable, value]);\n                            }\n                            continue;\n                        }\n                    }\n                    skipBinding = true;\n                    break;\n                }\n                // If for the current bindings object, we previously found a quoted quad term that bound variables within it,\n                // make sure that later bindings to this variable from other terms don't conflict.\n                if (checkForBindingConflicts && bindingsEntries\n                    .some(entry => entry[0].equals(terms[i]) && !entry[1].equals(decodedTerm))) {\n                    // Skip this binding if we find conflicting variable bindings\n                    skipBinding = true;\n                    break;\n                }\n                bindingsEntries.push([terms[i], decodedTerm]);\n            }\n            if (!skipBinding) {\n                // Create and yield the bindings object\n                yield bindingsFactory.bindings(bindingsEntries);\n            }\n        }\n    }\n    /**\n     * Returns an array containing all bindings matching the pattern.\n     * @param bindingsFactory The factory that will be used to create bindings.\n     * @param subject The subject, which can be a variable.\n     * @param predicate The predicate, which can be a variable.\n     * @param object The object, which can be a variable.\n     * @param graph The graph, which can be a variable.\n     */\n    getBindings(bindingsFactory, subject, predicate, object, graph) {\n        return [...this.readBindings(bindingsFactory, subject, predicate, object, graph)];\n    }\n    /**\n     * Returns a stream that produces all quads matching the pattern.\n     * @param bindingsFactory The factory that will be used to create bindings.\n     * @param subject The subject, which can be a variable.\n     * @param predicate The predicate, which can be a variable.\n     * @param object The object, which can be a variable.\n     * @param graph The graph, which can be a variable.\n     */\n    matchBindings(bindingsFactory, subject, predicate, object, graph) {\n        return (0, asynciterator_1.wrap)(this.readBindings(bindingsFactory, subject, predicate, object, graph));\n    }\n    /**\n     * Returns the exact cardinality of the quads matching the pattern.\n     * @param subject The optional subject.\n     * @param predicate The optional predicate.\n     * @param object The optional object.\n     * @param graph The optional graph.\n     */\n    countQuads(subject, predicate, object, graph) {\n        // Check if our dictionary and our indexes have quoted pattern support\n        const indexesSupportQuotedPatterns = Boolean(this.dictionary.features.quotedTriples) &&\n            Object.values(this.indexesWrapped).every(wrapped => wrapped.index.features.quotedTripleFiltering);\n        // Construct a quad pattern array\n        const [quadComponents] = (0, OrderUtils_1.quadToPattern)(subject, predicate, object, graph, indexesSupportQuotedPatterns);\n        // Optimize all-variables pattern\n        if (quadComponents.every(quadComponent => quadComponent === undefined)) {\n            return this.size;\n        }\n        // Determine the best index for this pattern\n        const indexWrapped = this.indexesWrapped[(0, OrderUtils_1.getBestIndex)(this.indexesWrappedComponentOrders, quadComponents)];\n        // Re-order the quad pattern based on this best index's component order\n        const quadComponentsOrdered = (0, OrderUtils_1.orderQuadComponents)(indexWrapped.componentOrder, quadComponents);\n        // Call the best index's count method.\n        return indexWrapped.index.count(quadComponentsOrdered);\n    }\n    /**\n     * Wrap this store inside a DatasetCore interface.\n     * Any mutations in either this store or the wrapper will propagate to each other.\n     */\n    asDataset() {\n        return new DatasetCoreWrapper_1.DatasetCoreWrapper(this);\n    }\n}\nexports.RdfStore = RdfStore;\nRdfStore.DEFAULT_INDEX_COMBINATIONS = [\n    ['graph', 'subject', 'predicate', 'object'],\n    ['graph', 'predicate', 'object', 'subject'],\n    ['graph', 'object', 'subject', 'predicate'],\n];\n//# sourceMappingURL=RdfStore.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DatasetCoreWrapper = void 0;\nconst RdfStore_1 = require(\"../RdfStore\");\n/**\n * A DatasetCoreWrapper exposes an RdfStore inside an RDF.DatasetCore.\n */\nclass DatasetCoreWrapper {\n    constructor(store) {\n        this.store = store;\n    }\n    get size() {\n        return this.store.size;\n    }\n    add(quad) {\n        this.store.addQuad(quad);\n        return this;\n    }\n    delete(quad) {\n        this.store.removeQuad(quad);\n        return this;\n    }\n    has(quad) {\n        // eslint-disable-next-line no-unreachable-loop\n        for (const result of this.store.readQuads(quad.subject, quad.predicate, quad.object, quad.graph)) {\n            return true;\n        }\n        return false;\n    }\n    match(subject, predicate, object, graph) {\n        const newStore = new RdfStore_1.RdfStore(this.store.options);\n        for (const quad of this.store.readQuads(subject, predicate, object, graph)) {\n            newStore.addQuad(quad);\n        }\n        return new DatasetCoreWrapper(newStore);\n    }\n    [Symbol.iterator]() {\n        return this.store.readQuads();\n    }\n}\nexports.DatasetCoreWrapper = DatasetCoreWrapper;\n//# sourceMappingURL=DatasetCoreWrapper.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=ITermDictionary.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryNumberMap = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A term dictionary that encodes to numbers, and stores the dictionary in memory in a Map.\n */\nclass TermDictionaryNumberMap {\n    constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n        this.lastId = 0;\n        this.dictionary = new Map();\n        this.reverseDictionary = new Map();\n        this.features = { quotedTriples: false };\n        this.dataFactory = dataFactory;\n    }\n    encode(term) {\n        const key = (0, rdf_string_1.termToString)(term);\n        let encoded = this.dictionary.get(key);\n        if (encoded === undefined) {\n            encoded = this.lastId++;\n            this.dictionary.set(key, encoded);\n            this.reverseDictionary.set(encoded, key);\n        }\n        return encoded;\n    }\n    encodeOptional(term) {\n        const key = (0, rdf_string_1.termToString)(term);\n        return this.dictionary.get(key);\n    }\n    decode(encoding) {\n        const string = this.reverseDictionary.get(encoding);\n        if (string === undefined) {\n            throw new Error(`The value ${encoding} is not present in this dictionary`);\n        }\n        return (0, rdf_string_1.stringToTerm)(string, this.dataFactory);\n    }\n    encodings() {\n        return this.reverseDictionary.keys();\n    }\n    findQuotedTriples(quotedTriplePattern) {\n        throw new Error('findQuotedTriples is not supported');\n    }\n    findQuotedTriplesEncoded(quotedTriplePattern) {\n        throw new Error('findQuotedTriplesEncoded is not supported');\n    }\n}\nexports.TermDictionaryNumberMap = TermDictionaryNumberMap;\n//# sourceMappingURL=TermDictionaryNumberMap.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryNumberRecord = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A term dictionary that encodes to numbers, and stores the dictionary in memory in a Record.\n */\nclass TermDictionaryNumberRecord {\n    constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n        this.lastId = 0;\n        this.dictionary = {};\n        this.reverseDictionary = {};\n        this.features = { quotedTriples: false };\n        this.dataFactory = dataFactory;\n    }\n    encode(term) {\n        const key = (0, rdf_string_1.termToString)(term);\n        let encoded = this.dictionary[key];\n        if (encoded === undefined) {\n            encoded = this.lastId++;\n            this.dictionary[key] = encoded;\n            this.reverseDictionary[encoded] = key;\n        }\n        return encoded;\n    }\n    encodeOptional(term) {\n        const key = (0, rdf_string_1.termToString)(term);\n        return this.dictionary[key];\n    }\n    decode(encoding) {\n        const string = this.reverseDictionary[encoding];\n        if (string === undefined) {\n            throw new Error(`The value ${encoding} is not present in this dictionary`);\n        }\n        return (0, rdf_string_1.stringToTerm)(string, this.dataFactory);\n    }\n    *encodings() {\n        for (const key of Object.keys(this.reverseDictionary)) {\n            yield Number.parseInt(key, 10);\n        }\n    }\n    findQuotedTriples(quotedTriplePattern) {\n        throw new Error('findQuotedTriples is not supported');\n    }\n    findQuotedTriplesEncoded(quotedTriplePattern) {\n        throw new Error('findQuotedTriplesEncoded is not supported');\n    }\n}\nexports.TermDictionaryNumberRecord = TermDictionaryNumberRecord;\n//# sourceMappingURL=TermDictionaryNumberRecord.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryQuoted = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_terms_1 = require(\"rdf-terms\");\n/**\n * A term dictionary for quoted triples.\n *\n * Plain terms and quoted triples are stored in separate dictionaries.\n *\n * Finding quoted triples is done by iterating over all quoted triples, and filtering by the matching ones.\n */\nclass TermDictionaryQuoted {\n    constructor(plainTermDictionary, quotedTriplesDictionary, dataFactory = new rdf_data_factory_1.DataFactory()) {\n        this.features = { quotedTriples: true };\n        this.plainTermDictionary = plainTermDictionary;\n        this.quotedTriplesDictionary = quotedTriplesDictionary;\n        this.dataFactory = dataFactory;\n    }\n    encode(term) {\n        if (term.termType === 'Quad') {\n            // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n            return TermDictionaryQuoted.BITMASK | (1 + this.quotedTriplesDictionary.encode(term));\n        }\n        return this.plainTermDictionary.encode(term);\n    }\n    encodeOptional(term) {\n        if (term.termType === 'Quad') {\n            const encoding = this.quotedTriplesDictionary.encodeOptional(term);\n            if (encoding === undefined) {\n                return encoding;\n            }\n            // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n            return TermDictionaryQuoted.BITMASK | (1 + encoding);\n        }\n        return this.plainTermDictionary.encodeOptional(term);\n    }\n    decode(encoding) {\n        if (TermDictionaryQuoted.BITMASK & encoding) {\n            // Term comes from the quoted triples dictionary\n            const encodingBase = (~TermDictionaryQuoted.BITMASK & encoding) - 1;\n            return this.quotedTriplesDictionary.decode(encodingBase);\n        }\n        // Term comes from the plain terms dictionary\n        return this.plainTermDictionary.decode(encoding);\n    }\n    *encodings() {\n        for (const encoding of this.plainTermDictionary.encodings()) {\n            yield encoding;\n        }\n        for (const encoding of this.quotedTriplesDictionary.encodings()) {\n            yield TermDictionaryQuoted.BITMASK | (1 + encoding);\n        }\n    }\n    *findQuotedTriples(quotedTriplePattern) {\n        for (const termEncoded of this.findQuotedTriplesEncoded(quotedTriplePattern)) {\n            yield this.decode(termEncoded);\n        }\n    }\n    *findQuotedTriplesEncoded(quotedTriplePattern) {\n        for (let encodedQuotedTriple of this.quotedTriplesDictionary.encodings()) {\n            encodedQuotedTriple = TermDictionaryQuoted.BITMASK | (1 + encodedQuotedTriple);\n            const quotedTriple = this.decode(encodedQuotedTriple);\n            if ((0, rdf_terms_1.matchPattern)(quotedTriple, quotedTriplePattern.subject, quotedTriplePattern.predicate, quotedTriplePattern.object, quotedTriplePattern.graph)) {\n                yield encodedQuotedTriple;\n            }\n        }\n    }\n}\nexports.TermDictionaryQuoted = TermDictionaryQuoted;\nTermDictionaryQuoted.BITMASK = 1 << 31;\n//# sourceMappingURL=TermDictionaryQuoted.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionaryQuotedReferential = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_terms_1 = require(\"rdf-terms\");\nconst OrderUtils_1 = require(\"../OrderUtils\");\n/**\n * A term dictionary for quoted triples.\n *\n * Plain terms and quoted triples are stored in separate dictionaries,\n * but quoted triples are encoded using encodings from the plain term dictionary.\n *\n * Finding quoted triples is done by iterating over all quoted triples, and filtering by the matching ones.\n */\nclass TermDictionaryQuotedReferential {\n    constructor(plainTermDictionary, dataFactory = new rdf_data_factory_1.DataFactory()) {\n        this.quotedTriplesDictionary = [];\n        this.quotedTriplesReverseDictionary = {};\n        this.features = { quotedTriples: true };\n        this.plainTermDictionary = plainTermDictionary;\n        this.dataFactory = dataFactory;\n    }\n    encode(term) {\n        if (term.termType === 'Quad') {\n            return this.encodeQuotedTriple(term, false);\n        }\n        return this.plainTermDictionary.encode(term);\n    }\n    encodeQuotedTriple(quad, optional) {\n        // Only quoted triples are supported\n        if (quad.graph.termType !== 'DefaultGraph') {\n            throw new Error('Encoding of quoted quads outside of the default graph is not allowed');\n        }\n        // Check if the quad was already encoded\n        const encodedTripleOptional = (0, OrderUtils_1.encodeOptionalTerms)([quad.subject, quad.predicate, quad.object, undefined], this)?.slice(0, 3);\n        const id = encodedTripleOptional && encodedTripleOptional.every(encoded => encoded !== undefined) ?\n            this.quotedTriplesReverseDictionary[encodedTripleOptional.join(TermDictionaryQuotedReferential.SEPARATOR)] :\n            undefined;\n        // Return the encoding if we found one\n        if (id !== undefined || optional) {\n            // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n            return (id === undefined ? undefined : TermDictionaryQuotedReferential.BITMASK | id);\n        }\n        // If the quad was not encoded yet, add a new entry for it in the dictionary.\n        const encodedTriple = [\n            this.encode(quad.subject),\n            this.encode(quad.predicate),\n            this.encode(quad.object),\n        ];\n        const encodingBase = this.quotedTriplesDictionary.length + 1;\n        this.quotedTriplesDictionary.push(encodedTriple);\n        this.quotedTriplesReverseDictionary[encodedTriple.join(TermDictionaryQuotedReferential.SEPARATOR)] = encodingBase;\n        // Mask MSB to indicate that the encoding should refer to the quoted triples dictionary.\n        return TermDictionaryQuotedReferential.BITMASK | encodingBase;\n    }\n    encodeOptional(term) {\n        if (term.termType === 'Quad') {\n            return this.encodeQuotedTriple(term, true);\n        }\n        return this.plainTermDictionary.encodeOptional(term);\n    }\n    decode(encoding) {\n        if (TermDictionaryQuotedReferential.BITMASK & encoding) {\n            // Term comes from the quoted triples dictionary\n            const encodingBase = (~TermDictionaryQuotedReferential.BITMASK & encoding) - 1;\n            if (encodingBase >= this.quotedTriplesDictionary.length) {\n                throw new Error(`The value ${encoding} is not present in the quoted triples range of the dictionary`);\n            }\n            const encodedTerms = this.quotedTriplesDictionary[encodingBase];\n            return this.dataFactory.quad(this.decode(encodedTerms[0]), this.decode(encodedTerms[1]), this.decode(encodedTerms[2]));\n        }\n        // Term comes from the plain terms dictionary\n        return this.plainTermDictionary.decode(encoding);\n    }\n    *encodings() {\n        for (const encoding of this.plainTermDictionary.encodings()) {\n            yield encoding;\n        }\n        for (const encoding of this.quotedTriplesDictionary.keys()) {\n            yield TermDictionaryQuotedReferential.BITMASK | (1 + encoding);\n        }\n    }\n    *findQuotedTriples(quotedTriplePattern) {\n        for (const termEncoded of this.findQuotedTriplesEncoded(quotedTriplePattern)) {\n            yield this.decode(termEncoded);\n        }\n    }\n    *findQuotedTriplesEncoded(quotedTriplePattern) {\n        for (let encodedQuotedTriple of this.quotedTriplesDictionary.keys()) {\n            encodedQuotedTriple = TermDictionaryQuotedReferential.BITMASK | (1 + encodedQuotedTriple);\n            const quotedTriple = this.decode(encodedQuotedTriple);\n            if ((0, rdf_terms_1.matchPattern)(quotedTriple, quotedTriplePattern.subject, quotedTriplePattern.predicate, quotedTriplePattern.object, quotedTriplePattern.graph)) {\n                yield encodedQuotedTriple;\n            }\n        }\n    }\n}\nexports.TermDictionaryQuotedReferential = TermDictionaryQuotedReferential;\nTermDictionaryQuotedReferential.BITMASK = 1 << 31;\nTermDictionaryQuotedReferential.SEPARATOR = '_';\n//# sourceMappingURL=TermDictionaryQuotedReferential.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermDictionarySymbol = void 0;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A term dictionary that encodes and decodes using symbols.\n */\nclass TermDictionarySymbol {\n    constructor(dataFactory = new rdf_data_factory_1.DataFactory()) {\n        this.features = { quotedTriples: false };\n        this.dataFactory = dataFactory;\n    }\n    encode(term) {\n        return Symbol.for(`rdf::${(0, rdf_string_1.termToString)(term)}`);\n    }\n    encodeOptional(term) {\n        return this.encode(term);\n    }\n    decode(encoding) {\n        const string = Symbol.keyFor(encoding);\n        if (string === undefined) {\n            throw new Error(`The value ${String(encoding)} is not present in this dictionary`);\n        }\n        return (0, rdf_string_1.stringToTerm)(string.slice(5), this.dataFactory);\n    }\n    encodings() {\n        throw new Error('encodings is not supported');\n    }\n    findQuotedTriples(quotedTriplePattern) {\n        throw new Error('findQuotedTriples is not supported');\n    }\n    findQuotedTriplesEncoded(quotedTriplePattern) {\n        throw new Error('findQuotedTriplesEncoded is not supported');\n    }\n}\nexports.TermDictionarySymbol = TermDictionarySymbol;\n//# sourceMappingURL=TermDictionarySymbol.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IRdfStoreIndex.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedMapRecursive = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\n/**\n * An RDF store index that is implemented using nested Maps,\n * and finds quads components via recursive methods calls.\n */\nclass RdfStoreIndexNestedMapRecursive {\n    constructor(options) {\n        this.features = {\n            quotedTripleFiltering: false,\n        };\n        this.dictionary = options.dictionary;\n        this.nestedMap = new Map();\n    }\n    set(terms, value) {\n        let map = this.nestedMap;\n        let contained = false;\n        for (const [i, term] of terms.entries()) {\n            const mapActual = map;\n            let nextMap = mapActual.get(term);\n            if (!nextMap) {\n                nextMap = i === terms.length - 1 ? value : new Map();\n                mapActual.set(term, nextMap);\n            }\n            else if (i === terms.length - 1) {\n                contained = true;\n            }\n            map = nextMap;\n        }\n        return !contained;\n    }\n    remove(terms) {\n        const map0 = this.nestedMap;\n        const map1 = map0.get(terms[0]);\n        if (!map1) {\n            return false;\n        }\n        const map2 = map1.get(terms[1]);\n        if (!map2) {\n            return false;\n        }\n        const map3 = map2.get(terms[2]);\n        if (!map3) {\n            return false;\n        }\n        const ret = map3.delete(terms[3]);\n        // Clean up intermediate maps\n        if (ret && map3.size === 0) {\n            map2.delete(terms[2]);\n            if (map2.size === 0) {\n                map1.delete(terms[1]);\n                if (map1.size === 0) {\n                    map0.delete(terms[0]);\n                }\n            }\n        }\n        return ret;\n    }\n    get(key) {\n        const encoded = (0, OrderUtils_1.encodeOptionalTerms)(key, this.dictionary);\n        // eslint-disable-next-line unicorn/no-useless-undefined\n        if (!encoded || encoded.includes(undefined)) {\n            return undefined;\n        }\n        return this.getEncoded(encoded);\n    }\n    getEncoded(ids) {\n        const map1 = this.nestedMap.get(ids[0]);\n        if (!map1) {\n            return undefined;\n        }\n        const map2 = map1.get(ids[1]);\n        if (!map2) {\n            return undefined;\n        }\n        const map3 = map2.get(ids[2]);\n        if (!map3) {\n            return undefined;\n        }\n        return map3.get(ids[3]);\n    }\n    *find(terms) {\n        const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n        if (!ids) {\n            return;\n        }\n        for (const termsEncoded of this.findEncoded(ids, terms)) {\n            yield [\n                ids[0] !== undefined ? terms[0] : this.dictionary.decode(termsEncoded[0]),\n                ids[1] !== undefined ? terms[1] : this.dictionary.decode(termsEncoded[1]),\n                ids[2] !== undefined ? terms[2] : this.dictionary.decode(termsEncoded[2]),\n                ids[3] !== undefined ? terms[3] : this.dictionary.decode(termsEncoded[3]),\n            ];\n        }\n    }\n    *findEncoded(ids, terms) {\n        return yield* this\n            .findEncodedInner(0, ids, terms, this.nestedMap, []);\n    }\n    *findEncodedInner(index, ids, terms, map, partialQuad) {\n        if (index === ids.length) {\n            yield [...partialQuad];\n        }\n        else {\n            const id = ids[index];\n            const currentTerm = terms[index];\n            // If current term is undefined, iterate over all terms at this level.\n            if (!currentTerm) {\n                for (const [key, subMap] of map.entries()) {\n                    partialQuad[index] = key;\n                    yield* this\n                        .findEncodedInner(index + 1, ids, terms, subMap, partialQuad);\n                }\n            }\n            else {\n                // If the current term is defined, find one matching map for the current term.\n                const encodedTerm = id;\n                if (encodedTerm !== undefined) {\n                    const subMap = map.get(encodedTerm);\n                    if (subMap) {\n                        partialQuad[index] = id;\n                        yield* this\n                            .findEncodedInner(index + 1, ids, terms, subMap, partialQuad);\n                    }\n                }\n            }\n        }\n    }\n    count(terms) {\n        return this.countInner(0, terms, this.nestedMap);\n    }\n    countInner(index, terms, map) {\n        const currentTerm = terms[index];\n        let count = 0;\n        // If current term is undefined, iterate over all terms at this level.\n        if (!currentTerm) {\n            if (index === terms.length - 1) {\n                return map.size;\n            }\n            for (const subMap of map.values()) {\n                count += this.countInner(index + 1, terms, subMap);\n            }\n        }\n        else {\n            // If the current term is defined, find one matching map for the current term.\n            const encodedTerm = this.dictionary.encodeOptional(currentTerm);\n            if (encodedTerm !== undefined) {\n                if (index === terms.length - 1) {\n                    if (map.has(encodedTerm)) {\n                        return 1;\n                    }\n                    return 0;\n                }\n                const subMap = map.get(encodedTerm);\n                if (subMap) {\n                    count += this.countInner(index + 1, terms, subMap);\n                }\n            }\n        }\n        return count;\n    }\n}\nexports.RdfStoreIndexNestedMapRecursive = RdfStoreIndexNestedMapRecursive;\n//# sourceMappingURL=RdfStoreIndexNestedMapRecursive.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedMapRecursiveQuoted = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\nconst RdfStoreIndexNestedMapRecursive_1 = require(\"./RdfStoreIndexNestedMapRecursive\");\n/**\n * An RDF store index that is implemented using nested Maps,\n * and finds quads components via recursive methods calls\n * with optimized quoted triple support.\n */\nclass RdfStoreIndexNestedMapRecursiveQuoted extends RdfStoreIndexNestedMapRecursive_1.RdfStoreIndexNestedMapRecursive {\n    constructor(options) {\n        super(options);\n        this.features = {\n            quotedTripleFiltering: true,\n        };\n    }\n    *findEncoded(ids, terms) {\n        return yield* this\n            .findEncodedInnerQuoted(0, ids, terms, (0, OrderUtils_1.arePatternsQuoted)(terms), this.nestedMap, []);\n    }\n    *findEncodedInnerQuoted(index, ids, terms, isQuotedPattern, map, partialQuad) {\n        if (index === ids.length) {\n            yield [...partialQuad];\n        }\n        else {\n            const id = ids[index];\n            const currentTerm = terms[index];\n            // If current term is undefined, iterate over all terms at this level.\n            if (!currentTerm) {\n                for (const [key, subMap] of map.entries()) {\n                    partialQuad[index] = key;\n                    yield* this\n                        .findEncodedInnerQuoted(index + 1, ids, terms, isQuotedPattern, subMap, partialQuad);\n                }\n            }\n            else if (isQuotedPattern[index]) {\n                const quotedTriplesEncoded = this\n                    .dictionary.findQuotedTriplesEncoded(currentTerm);\n                // Below, we perform a type of inner (hash) join between quotedTriplesEncoded and map (with hash on map)\n                for (const quotedTripleEncoded of quotedTriplesEncoded) {\n                    const subMap = map.get(quotedTripleEncoded);\n                    if (subMap) {\n                        partialQuad[index] = quotedTripleEncoded;\n                        yield* this.findEncodedInnerQuoted(index + 1, ids, terms, isQuotedPattern, subMap, partialQuad);\n                    }\n                }\n            }\n            else {\n                // If the current term is defined, find one matching map for the current term.\n                const encodedTerm = id;\n                if (encodedTerm !== undefined) {\n                    const subMap = map.get(encodedTerm);\n                    if (subMap) {\n                        partialQuad[index] = id;\n                        yield* this.findEncodedInnerQuoted(index + 1, ids, terms, isQuotedPattern, subMap, partialQuad);\n                    }\n                }\n            }\n        }\n    }\n    countInner(index, terms, map) {\n        const currentTerm = terms[index];\n        let count = 0;\n        // If current term is undefined, iterate over all terms at this level.\n        if (!currentTerm) {\n            if (index === terms.length - 1) {\n                return map.size;\n            }\n            for (const subMap of map.values()) {\n                count += this.countInner(index + 1, terms, subMap);\n            }\n        }\n        else if (currentTerm.termType === 'Quad' && (0, OrderUtils_1.quadHasVariables)(currentTerm)) {\n            const quotedTriplesEncoded = this.dictionary.findQuotedTriplesEncoded(currentTerm);\n            // Below, we perform a type of inner (hash) join between quotedTriplesEncoded and map (with hash on map)\n            for (const quotedTripleEncoded of quotedTriplesEncoded) {\n                if (index === terms.length - 1) {\n                    if (map.has(quotedTripleEncoded)) {\n                        count++;\n                    }\n                }\n                else {\n                    const subMap = map.get(quotedTripleEncoded);\n                    if (subMap) {\n                        count += this.countInner(index + 1, terms, subMap);\n                    }\n                }\n            }\n        }\n        else {\n            // If the current term is defined, find one matching map for the current term.\n            const encodedTerm = this.dictionary.encodeOptional(currentTerm);\n            if (encodedTerm !== undefined) {\n                if (index === terms.length - 1) {\n                    if (map.has(encodedTerm)) {\n                        return 1;\n                    }\n                    return 0;\n                }\n                const subMap = map.get(encodedTerm);\n                if (subMap) {\n                    count += this.countInner(index + 1, terms, subMap);\n                }\n            }\n        }\n        return count;\n    }\n}\nexports.RdfStoreIndexNestedMapRecursiveQuoted = RdfStoreIndexNestedMapRecursiveQuoted;\n//# sourceMappingURL=RdfStoreIndexNestedMapRecursiveQuoted.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedRecord = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\n/**\n * An RDF store index that is implemented using nested records.\n */\nclass RdfStoreIndexNestedRecord {\n    constructor(options) {\n        this.features = {\n            quotedTripleFiltering: false,\n        };\n        this.dictionary = options.dictionary;\n        this.nestedRecords = {};\n    }\n    set(terms, value) {\n        const map0 = this.nestedRecords;\n        const map1 = map0[terms[0]] || (map0[terms[0]] = {});\n        const map2 = map1[terms[1]] || (map1[terms[1]] = {});\n        const map3 = map2[terms[2]] || (map2[terms[2]] = {});\n        if (map3[terms[3]]) {\n            return false;\n        }\n        map3[terms[3]] = value;\n        return true;\n    }\n    remove(terms) {\n        const map0 = this.nestedRecords;\n        const map1 = map0[terms[0]];\n        if (!map1) {\n            return false;\n        }\n        const map2 = map1[terms[1]];\n        if (!map2) {\n            return false;\n        }\n        const map3 = map2[terms[2]];\n        if (!map3) {\n            return false;\n        }\n        if (!map3[terms[3]]) {\n            return false;\n        }\n        delete map3[terms[3]];\n        // Clean up intermediate maps\n        if (Object.keys(map3).length === 0) {\n            delete map2[terms[2]];\n            if (Object.keys(map2).length === 0) {\n                delete map1[terms[1]];\n                if (Object.keys(map1).length === 0) {\n                    delete map0[terms[0]];\n                }\n            }\n        }\n        return true;\n    }\n    get(key) {\n        const encoded = (0, OrderUtils_1.encodeOptionalTerms)(key, this.dictionary);\n        // eslint-disable-next-line unicorn/no-useless-undefined\n        if (!encoded || encoded.includes(undefined)) {\n            return undefined;\n        }\n        return this.getEncoded(encoded);\n    }\n    getEncoded(ids) {\n        return this.nestedRecords[ids[0]]?.[ids[1]]?.[ids[2]]?.[ids[3]];\n    }\n    *find(terms) {\n        const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n        if (!ids) {\n            return;\n        }\n        const [id0, id1, id2, id3] = ids;\n        const [term0, term1, term2, term3] = terms;\n        let partialQuad0;\n        let partialQuad1;\n        let partialQuad2;\n        let partialQuad3;\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedRecords;\n        const map0Keys = id0 !== undefined ? (id0 in map0 ? [id0] : []) : Object.keys(map0);\n        for (const key1 of map0Keys) {\n            map1 = map0[key1];\n            partialQuad0 = term0 || this.dictionary.decode(Number.parseInt(key1, 10));\n            const map1Keys = id1 !== undefined ? (id1 in map1 ? [id1] : []) : Object.keys(map1);\n            for (const key2 of map1Keys) {\n                map2 = map1[key2];\n                partialQuad1 = term1 || this.dictionary.decode(Number.parseInt(key2, 10));\n                const map2Keys = id2 !== undefined ? (id2 in map2 ? [id2] : []) : Object.keys(map2);\n                for (const key3 of map2Keys) {\n                    map3 = map2[key3];\n                    partialQuad2 = term2 || this.dictionary.decode(Number.parseInt(key3, 10));\n                    const map3Keys = id3 !== undefined ? (id3 in map3 ? [id3] : []) : Object.keys(map3);\n                    for (const key4 of map3Keys) {\n                        partialQuad3 = term3 || this.dictionary.decode(Number.parseInt(key4, 10));\n                        yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n                    }\n                }\n            }\n        }\n    }\n    // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n    *findEncoded(ids, terms) {\n        const [id0, id1, id2, id3] = ids;\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedRecords;\n        const map0Keys = id0 !== undefined ? (id0 in map0 ? [id0] : []) : Object.keys(map0);\n        for (const key1 of map0Keys) {\n            map1 = map0[key1];\n            const map1Keys = id1 !== undefined ? (id1 in map1 ? [id1] : []) : Object.keys(map1);\n            for (const key2 of map1Keys) {\n                map2 = map1[key2];\n                const map2Keys = id2 !== undefined ? (id2 in map2 ? [id2] : []) : Object.keys(map2);\n                for (const key3 of map2Keys) {\n                    map3 = map2[key3];\n                    const map3Keys = id3 !== undefined ? (id3 in map3 ? [id3] : []) : Object.keys(map3);\n                    for (const key4 of map3Keys) {\n                        yield [\n                            Number.parseInt(key1, 10),\n                            Number.parseInt(key2, 10),\n                            Number.parseInt(key3, 10),\n                            Number.parseInt(key4, 10),\n                        ];\n                    }\n                }\n            }\n        }\n    }\n    count(terms) {\n        let count = 0;\n        const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n        if (!ids) {\n            return 0;\n        }\n        const id0 = ids[0];\n        const id1 = ids[1];\n        const id2 = ids[2];\n        const id3 = ids[3];\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedRecords;\n        const map0Keys = id0 !== undefined ? (id0 in map0 ? [id0] : []) : Object.keys(map0);\n        for (const key1 of map0Keys) {\n            map1 = map0[key1];\n            const map1Keys = id1 !== undefined ? (id1 in map1 ? [id1] : []) : Object.keys(map1);\n            for (const key2 of map1Keys) {\n                map2 = map1[key2];\n                const map2Keys = id2 !== undefined ? (id2 in map2 ? [id2] : []) : Object.keys(map2);\n                for (const key3 of map2Keys) {\n                    map3 = map2[key3];\n                    if (id3 !== undefined) {\n                        if (id3 in map3) {\n                            count++;\n                        }\n                    }\n                    else {\n                        count += Object.keys(map3).length;\n                    }\n                }\n            }\n        }\n        return count;\n    }\n}\nexports.RdfStoreIndexNestedRecord = RdfStoreIndexNestedRecord;\n//# sourceMappingURL=RdfStoreIndexNestedRecord.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RdfStoreIndexNestedRecordQuoted = void 0;\nconst OrderUtils_1 = require(\"../OrderUtils\");\nconst RdfStoreIndexNestedRecord_1 = require(\"./RdfStoreIndexNestedRecord\");\n/**\n * An RDF store index that is implemented using nested records with optimized quoted triple support.\n */\nclass RdfStoreIndexNestedRecordQuoted extends RdfStoreIndexNestedRecord_1.RdfStoreIndexNestedRecord {\n    constructor(options) {\n        super(options);\n        this.features = {\n            quotedTripleFiltering: true,\n        };\n    }\n    *getQuotedPatternKeys(map, term) {\n        for (const quotedTripleEncoded of this.dictionary.findQuotedTriplesEncoded(term)) {\n            if (quotedTripleEncoded in map) {\n                yield quotedTripleEncoded;\n            }\n        }\n    }\n    *find(terms) {\n        const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n        if (!ids) {\n            return;\n        }\n        const [id0, id1, id2, id3] = ids;\n        const [term0, term1, term2, term3] = terms;\n        const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n        let partialQuad0;\n        let partialQuad1;\n        let partialQuad2;\n        let partialQuad3;\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedRecords;\n        const map0Keys = (term0 !== undefined ?\n            (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (id0 in map0 ? [id0] : [])) :\n            Object.keys(map0));\n        for (const key1 of map0Keys) {\n            map1 = map0[key1];\n            partialQuad0 = !quotedTerm0 && term0 ? term0 : this.dictionary.decode(Number.parseInt(key1, 10));\n            const map1Keys = (term1 !== undefined ?\n                (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (id1 in map1 ? [id1] : [])) :\n                Object.keys(map1));\n            for (const key2 of map1Keys) {\n                map2 = map1[key2];\n                partialQuad1 = !quotedTerm1 && term1 ? term1 : this.dictionary.decode(Number.parseInt(key2, 10));\n                const map2Keys = (term2 !== undefined ?\n                    (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (id2 in map2 ? [id2] : [])) :\n                    Object.keys(map2));\n                for (const key3 of map2Keys) {\n                    map3 = map2[key3];\n                    partialQuad2 = !quotedTerm2 && term2 ? term2 : this.dictionary.decode(Number.parseInt(key3, 10));\n                    const map3Keys = (term3 !== undefined ?\n                        (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (id3 in map3 ? [id3] : [])) :\n                        Object.keys(map3));\n                    for (const key4 of map3Keys) {\n                        partialQuad3 = !quotedTerm3 && term3 ? term3 : this.dictionary.decode(Number.parseInt(key4, 10));\n                        yield [partialQuad0, partialQuad1, partialQuad2, partialQuad3];\n                    }\n                }\n            }\n        }\n    }\n    // The code below is nearly identical. We duplicate because abstraction would result in a significant performance hit.\n    *findEncoded(ids, terms) {\n        const [id0, id1, id2, id3] = ids;\n        const [term0, term1, term2, term3] = terms;\n        const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedRecords;\n        const map0Keys = (term0 !== undefined ?\n            (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (id0 in map0 ? [id0] : [])) :\n            Object.keys(map0));\n        for (const key1 of map0Keys) {\n            map1 = map0[key1];\n            const map1Keys = (term1 !== undefined ?\n                (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (id1 in map1 ? [id1] : [])) :\n                Object.keys(map1));\n            for (const key2 of map1Keys) {\n                map2 = map1[key2];\n                const map2Keys = (term2 !== undefined ?\n                    (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (id2 in map2 ? [id2] : [])) :\n                    Object.keys(map2));\n                for (const key3 of map2Keys) {\n                    map3 = map2[key3];\n                    const map3Keys = (term3 !== undefined ?\n                        (quotedTerm3 ? this.getQuotedPatternKeys(map3, term3) : (id3 in map3 ? [id3] : [])) :\n                        Object.keys(map3));\n                    for (const key4 of map3Keys) {\n                        yield [\n                            Number.parseInt(key1, 10),\n                            Number.parseInt(key2, 10),\n                            Number.parseInt(key3, 10),\n                            Number.parseInt(key4, 10),\n                        ];\n                    }\n                }\n            }\n        }\n    }\n    count(terms) {\n        let count = 0;\n        const ids = (0, OrderUtils_1.encodeOptionalTerms)(terms, this.dictionary);\n        if (!ids) {\n            return 0;\n        }\n        const [id0, id1, id2, id3] = ids;\n        const [term0, term1, term2, term3] = terms;\n        const [quotedTerm0, quotedTerm1, quotedTerm2, quotedTerm3] = (0, OrderUtils_1.arePatternsQuoted)(terms);\n        let map1;\n        let map2;\n        let map3;\n        const map0 = this.nestedRecords;\n        const map0Keys = (term0 !== undefined ?\n            (quotedTerm0 ? this.getQuotedPatternKeys(map0, term0) : (id0 in map0 ? [id0] : [])) :\n            Object.keys(map0));\n        for (const key1 of map0Keys) {\n            map1 = map0[key1];\n            const map1Keys = (term1 !== undefined ?\n                (quotedTerm1 ? this.getQuotedPatternKeys(map1, term1) : (id1 in map1 ? [id1] : [])) :\n                Object.keys(map1));\n            for (const key2 of map1Keys) {\n                map2 = map1[key2];\n                const map2Keys = (term2 !== undefined ?\n                    (quotedTerm2 ? this.getQuotedPatternKeys(map2, term2) : (id2 in map2 ? [id2] : [])) :\n                    Object.keys(map2));\n                for (const key3 of map2Keys) {\n                    map3 = map2[key3];\n                    if (term3 !== undefined) {\n                        if (quotedTerm3) {\n                            count += [...this.getQuotedPatternKeys(map3, term3)].length;\n                        }\n                        else if (id3 in map3) {\n                            count++;\n                        }\n                    }\n                    else {\n                        count += Object.keys(map3).length;\n                    }\n                }\n            }\n        }\n        return count;\n    }\n}\nexports.RdfStoreIndexNestedRecordQuoted = RdfStoreIndexNestedRecordQuoted;\n//# sourceMappingURL=RdfStoreIndexNestedRecordQuoted.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=IRdfStoreOptions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=PatternTerm.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/dataset/DatasetCoreWrapper\"), exports);\n__exportStar(require(\"./lib/dictionary/ITermDictionary\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryNumberMap\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryNumberRecord\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryNumberRecordFullTerms\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryQuoted\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryQuotedIndexed\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionaryQuotedReferential\"), exports);\n__exportStar(require(\"./lib/dictionary/TermDictionarySymbol\"), exports);\n__exportStar(require(\"./lib/index/IRdfStoreIndex\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedMap\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedMapQuoted\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedMapRecursive\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedMapRecursiveQuoted\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedRecord\"), exports);\n__exportStar(require(\"./lib/index/RdfStoreIndexNestedRecordQuoted\"), exports);\n__exportStar(require(\"./lib/IRdfStoreOptions\"), exports);\n__exportStar(require(\"./lib/OrderUtils\"), exports);\n__exportStar(require(\"./lib/PatternTerm\"), exports);\n__exportStar(require(\"./lib/RdfStore\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.storeStream = storeStream;\nconst rdf_stores_1 = require(\"rdf-stores\");\n/**\n * Import all quads in the given stream into a new RDF store.\n *\n * The whole stream will be consumed for this,\n * and the promise will resolve once the stream's end event is emitted.\n *\n * @param {Stream<Q extends BaseQuad>} stream An RDF stream containing the quads to import into the store.\n * @return {Promise<Store<Q extends BaseQuad>>} A promise resolving to an RDF store.\n */\nfunction storeStream(stream) {\n    const store = rdf_stores_1.RdfStore.createDefault();\n    return new Promise((resolve, reject) => store.import(stream)\n        .on('error', reject)\n        .once('end', () => resolve(store)));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQuerySourceIdentifyHypermediaNone = void 0;\nconst actor_query_source_identify_rdfjs_1 = require(\"@comunica/actor-query-source-identify-rdfjs\");\nconst bus_query_source_identify_hypermedia_1 = require(\"@comunica/bus-query-source-identify-hypermedia\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst rdf_store_stream_1 = require(\"rdf-store-stream\");\n/**\n * A comunica None Query Source Identify Hypermedia Actor.\n */\nclass ActorQuerySourceIdentifyHypermediaNone extends bus_query_source_identify_hypermedia_1.ActorQuerySourceIdentifyHypermedia {\n    constructor(args) {\n        super(args, 'file');\n    }\n    async testMetadata(_action) {\n        return (0, core_1.passTest)({ filterFactor: 0 });\n    }\n    async run(action) {\n        this.logInfo(action.context, `Identified as file source: ${action.url}`);\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const source = new actor_query_source_identify_rdfjs_1.QuerySourceRdfJs(await (0, rdf_store_stream_1.storeStream)(action.quads), dataFactory, await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, action.context, dataFactory));\n        source.toString = () => `QuerySourceRdfJs(${action.url})`;\n        source.referenceValue = action.url;\n        return { source };\n    }\n}\nexports.ActorQuerySourceIdentifyHypermediaNone = ActorQuerySourceIdentifyHypermediaNone;\n//# sourceMappingURL=ActorQuerySourceIdentifyHypermediaNone.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQuerySourceIdentifyHypermediaNone\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorExpressionEvaluatorFactory = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for utils-expression-evaluator-factory events.\n *\n * Actor types:\n * * Input:  IActionExpressionEvaluatorFactory: The Query Operation and Function factory mediators.\n * * Test:   <none>\n * * Output: IActorExpressionEvaluatorFactoryOutput: TODO: fill in.\n *\n * @see IActionExpressionEvaluatorFactory\n * @see IActorExpressionEvaluatorFactoryOutput\n */\nclass ActorExpressionEvaluatorFactory extends core_1.Actor {\n    /**\n     * @param args -\n     * \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     * \\ @defaultNested {Creation of Expression Evaluator failed} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n        this.mediatorQueryOperation = args.mediatorQueryOperation;\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n        this.mediatorMergeBindingsContext = args.mediatorMergeBindingsContext;\n    }\n}\nexports.ActorExpressionEvaluatorFactory = ActorExpressionEvaluatorFactory;\n//# sourceMappingURL=ActorExpressionEvaluatorFactory.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorExpressionEvaluatorFactory\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AlgebraTransformer = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst ExprEval = require(\"@comunica/utils-expression-evaluator\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nclass AlgebraTransformer extends ExprEval.TermTransformer {\n    constructor(context, mediatorFunctionFactory) {\n        super(context.getSafe(context_entries_1.KeysExpressionEvaluator.superTypeProvider));\n        this.context = context;\n        this.mediatorFunctionFactory = mediatorFunctionFactory;\n    }\n    async transformAlgebra(expr) {\n        const types = sparqlalgebrajs_1.Algebra.expressionTypes;\n        switch (expr.expressionType) {\n            case types.TERM:\n                return this.transformTerm(expr);\n            case types.OPERATOR:\n                return await this.transformOperator(expr);\n            case types.NAMED:\n                return await this.transformNamed(expr);\n            case types.EXISTENCE:\n                return AlgebraTransformer.transformExistence(expr);\n            case types.AGGREGATE:\n                return AlgebraTransformer.transformAggregate(expr);\n            case types.WILDCARD:\n                return AlgebraTransformer.transformWildcard(expr);\n        }\n    }\n    static transformWildcard(term) {\n        return new ExprEval.NamedNode(term.wildcard.value);\n    }\n    async getOperator(operator, expr) {\n        const operatorFunc = await this.mediatorFunctionFactory.mediate({\n            functionName: operator,\n            arguments: expr.args,\n            context: this.context,\n        });\n        const operatorArgs = await Promise.all(expr.args.map(arg => this.transformAlgebra(arg)));\n        if (!operatorFunc.checkArity(operatorArgs)) {\n            throw new ExprEval.InvalidArity(operatorArgs, operator);\n        }\n        return new ExprEval.Operator(operator, operatorArgs, operatorFunc.apply);\n    }\n    async transformOperator(expr) {\n        return this.getOperator(expr.operator.toLowerCase(), expr);\n    }\n    async transformNamed(expr) {\n        return this.getOperator(expr.name.value, expr);\n    }\n    static transformAggregate(expr) {\n        const name = expr.aggregator;\n        return new ExprEval.Aggregate(name, expr);\n    }\n    static transformExistence(expr) {\n        return new ExprEval.Existence(expr);\n    }\n}\nexports.AlgebraTransformer = AlgebraTransformer;\n//# sourceMappingURL=AlgebraTransformer.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InternalEvaluator = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst types_1 = require(\"@comunica/types\");\nconst Eval = require(\"@comunica/utils-expression-evaluator\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst AlgebraTransformer_1 = require(\"./AlgebraTransformer\");\n/**\n * This class provides evaluation functionality to already transformed expressions.\n */\nclass InternalEvaluator {\n    constructor(context, mediatorFunctionFactory, mediatorQueryOperation, bindingsFactory) {\n        this.context = context;\n        this.mediatorQueryOperation = mediatorQueryOperation;\n        this.bindingsFactory = bindingsFactory;\n        this.subEvaluators = {\n            [types_1.ExpressionType.Term]: (expr, _mapping) => this.term(expr),\n            [types_1.ExpressionType.Variable]: (expr, mapping) => this.variable(expr, mapping),\n            [types_1.ExpressionType.Operator]: (expr, mapping) => this.evalFunction(expr, mapping),\n            [types_1.ExpressionType.Existence]: (expr, mapping) => this.evalExistence(expr, mapping),\n            [types_1.ExpressionType.Aggregate]: (_expr, _mapping) => this.evalAggregate(),\n        };\n        this.transformer = new AlgebraTransformer_1.AlgebraTransformer(context, mediatorFunctionFactory);\n    }\n    async evaluatorExpressionEvaluation(expr, mapping) {\n        const evaluator = this.subEvaluators[expr.expressionType];\n        return evaluator.bind(this)(expr, mapping);\n    }\n    term(expr) {\n        return expr;\n    }\n    variable(expr, mapping) {\n        const term = mapping.get(Eval.expressionToVar(this.context.getSafe(context_entries_1.KeysInitQuery.dataFactory), expr));\n        if (!term) {\n            throw new Eval.UnboundVariableError(expr.name, mapping);\n        }\n        return this.transformer.transformRDFTermUnsafe(term);\n    }\n    async evalFunction(expr, mapping) {\n        return expr.apply({\n            args: expr.args,\n            mapping,\n            exprEval: this,\n        });\n    }\n    async evalExistence(expr, mapping) {\n        const dataFactory = this.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const operation = (0, utils_query_operation_1.materializeOperation)(expr.expression.input, mapping, algebraFactory, this.bindingsFactory);\n        const outputRaw = await this.mediatorQueryOperation.mediate({ operation, context: this.context });\n        const output = (0, utils_query_operation_1.getSafeBindings)(outputRaw);\n        return await new Promise((resolve, reject) => {\n            output.bindingsStream.on('end', () => {\n                resolve(false);\n            });\n            output.bindingsStream.on('error', reject);\n            output.bindingsStream.on('data', () => {\n                output.bindingsStream.close();\n                resolve(true);\n            });\n        })\n            .then((exists) => expr.expression.not ? !exists : exists)\n            .then((exists) => new Eval.BooleanLiteral(exists));\n    }\n    evalAggregate() {\n        throw new Eval.NoAggregator();\n    }\n}\nexports.InternalEvaluator = InternalEvaluator;\n//# sourceMappingURL=InternalEvaluator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExpressionEvaluator = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst InternalEvaluator_1 = require(\"./InternalEvaluator\");\nclass ExpressionEvaluator {\n    constructor(context, expr, mediatorFunctionFactory, mediatorQueryOperation, bindingsFactory) {\n        this.context = context;\n        this.expr = expr;\n        this.mediatorFunctionFactory = mediatorFunctionFactory;\n        this.mediatorQueryOperation = mediatorQueryOperation;\n        this.bindingsFactory = bindingsFactory;\n        this.internalEvaluator =\n            new InternalEvaluator_1.InternalEvaluator(context, mediatorFunctionFactory, mediatorQueryOperation, bindingsFactory);\n    }\n    async evaluate(mapping) {\n        const result = await this.internalEvaluator.evaluatorExpressionEvaluation(this.expr, mapping);\n        return result.toRDF(this.context.getSafe(context_entries_1.KeysInitQuery.dataFactory));\n    }\n    async evaluateAsEBV(mapping) {\n        const result = await this.internalEvaluator.evaluatorExpressionEvaluation(this.expr, mapping);\n        return result.coerceEBV();\n    }\n    evaluateAsEvaluatorExpression(mapping) {\n        return this.evaluatorExpressionEvaluation(this.expr, mapping);\n    }\n    evaluatorExpressionEvaluation(expr, mapping) {\n        return this.internalEvaluator.evaluatorExpressionEvaluation(expr, mapping);\n    }\n}\nexports.ExpressionEvaluator = ExpressionEvaluator;\n//# sourceMappingURL=ExpressionEvaluator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorExpressionEvaluatorFactoryDefault = void 0;\nconst bus_expression_evaluator_factory_1 = require(\"@comunica/bus-expression-evaluator-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_expression_evaluator_1 = require(\"@comunica/utils-expression-evaluator\");\nconst AlgebraTransformer_1 = require(\"./AlgebraTransformer\");\nconst ExpressionEvaluator_1 = require(\"./ExpressionEvaluator\");\n/**\n * A comunica Default Expression Evaluator Factory Actor.\n */\nclass ActorExpressionEvaluatorFactoryDefault extends bus_expression_evaluator_factory_1.ActorExpressionEvaluatorFactory {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const fullContext = (0, utils_expression_evaluator_1.prepareEvaluatorActionContext)(action.context);\n        return new ExpressionEvaluator_1.ExpressionEvaluator(fullContext, await new AlgebraTransformer_1.AlgebraTransformer(fullContext, this.mediatorFunctionFactory).transformAlgebra(action.algExpr), this.mediatorFunctionFactory, this.mediatorQueryOperation, await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, action.context, action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory)));\n    }\n}\nexports.ActorExpressionEvaluatorFactoryDefault = ActorExpressionEvaluatorFactoryDefault;\n//# sourceMappingURL=ActorExpressionEvaluatorFactoryDefault.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorExpressionEvaluatorFactoryDefault\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GroupsState = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\n/**\n * A state manager for the groups constructed by consuming the bindings-stream.\n */\nclass GroupsState {\n    constructor(pattern, mediatorBindingsAggregatorFactory, context, bindingsFactory, variables) {\n        this.pattern = pattern;\n        this.mediatorBindingsAggregatorFactory = mediatorBindingsAggregatorFactory;\n        this.context = context;\n        this.bindingsFactory = bindingsFactory;\n        this.variables = variables;\n        this.groups = new Map();\n        this.groupsInitializer = new Map();\n        this.groupVariables = new Set(this.pattern.variables.map(x => x.value));\n        this.waitCounter = 1;\n        this.resultHasBeenCalled = false;\n    }\n    /**\n     * - Consumes a stream binding\n     * - Find the corresponding group and create one if need be\n     * - Feeds the binding to the group's aggregators\n     *\n     * @param {Bindings} bindings - The Bindings to consume\n     */\n    consumeBindings(bindings) {\n        const check = this.resultCheck();\n        if (check) {\n            return check;\n        }\n        // We increment the counter and decrement him when put action is performed.\n        this.waitCounter++;\n        // Select the bindings on which we group\n        const grouper = bindings\n            .filter((_, variable) => this.groupVariables.has(variable.value));\n        const groupHash = this.hashBindings(grouper);\n        // First member of group -> create new group\n        let groupInitializer = this.groupsInitializer.get(groupHash);\n        let res;\n        if (groupInitializer) {\n            const groupInitializerDefined = groupInitializer;\n            res = (async () => {\n                const group = await groupInitializerDefined;\n                await Promise.all(this.pattern.aggregates.map(async (aggregate) => {\n                    // Distinct handling is done in the aggregator.\n                    const variable = aggregate.variable.value;\n                    await group.aggregators[variable].putBindings(bindings);\n                }));\n            })().then(async () => {\n                await this.subtractWaitCounterAndCollect();\n            });\n        }\n        else {\n            // Initialize state for all aggregators for new group\n            groupInitializer = (async () => {\n                const aggregators = {};\n                await Promise.all(this.pattern.aggregates.map(async (aggregate) => {\n                    const key = aggregate.variable.value;\n                    aggregators[key] = await this.mediatorBindingsAggregatorFactory\n                        .mediate({ expr: aggregate, context: this.context });\n                    await aggregators[key].putBindings(bindings);\n                }));\n                const group = { aggregators, bindings: grouper };\n                this.groups.set(groupHash, group);\n                await this.subtractWaitCounterAndCollect();\n                return group;\n            })();\n            this.groupsInitializer.set(groupHash, groupInitializer);\n            res = groupInitializer;\n        }\n        return res;\n    }\n    async subtractWaitCounterAndCollect() {\n        if (--this.waitCounter === 0) {\n            await this.handleResultCollection();\n        }\n    }\n    async handleResultCollection() {\n        const dataFactory = this.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        // Collect groups\n        let rows = await Promise.all([...this.groups].map(async ([_, group]) => {\n            const { bindings: groupBindings, aggregators } = group;\n            // Collect aggregator bindings\n            // If the aggregate errorred, the result will be undefined\n            let returnBindings = groupBindings;\n            for (const variable in aggregators) {\n                const value = await aggregators[variable].result();\n                if (value) {\n                    // Filter undefined\n                    returnBindings = returnBindings.set(dataFactory.variable(variable), value);\n                }\n            }\n            // Merge grouping bindings and aggregator bindings\n            return returnBindings;\n        }));\n        // Case: No Input\n        // Some aggregators still define an output on the empty input\n        // Result is a single Bindings\n        if (rows.length === 0 && this.groupVariables.size === 0) {\n            const single = [];\n            await Promise.all(this.pattern.aggregates.map(async (aggregate) => {\n                const key = aggregate.variable;\n                const aggregator = await this.mediatorBindingsAggregatorFactory\n                    .mediate({ expr: aggregate, context: this.context });\n                const value = await aggregator.result();\n                if (value !== undefined) {\n                    single.push([key, value]);\n                }\n            }));\n            rows = [this.bindingsFactory.bindings(single)];\n        }\n        this.waitResolver(rows);\n    }\n    resultCheck() {\n        if (this.resultHasBeenCalled) {\n            return Promise.reject(new Error('Calling any function after calling collectResult is invalid.'));\n        }\n    }\n    /**\n     * Collect the result of the final state. This returns a Bindings per group,\n     * and a (possibly empty) Bindings in case no Bindings have been consumed yet.\n     * You can only call this method once, after calling this method,\n     * calling any function on this will result in an error being thrown.\n     */\n    async collectResults() {\n        const check = this.resultCheck();\n        if (check) {\n            return check;\n        }\n        this.resultHasBeenCalled = true;\n        const res = new Promise((resolve) => {\n            this.waitResolver = resolve;\n        });\n        await this.subtractWaitCounterAndCollect();\n        return res;\n    }\n    /**\n     * @param {Bindings} bindings - Bindings to hash\n     */\n    hashBindings(bindings) {\n        return (0, utils_bindings_factory_1.bindingsToCompactString)(bindings, this.variables);\n    }\n}\nexports.GroupsState = GroupsState;\n//# sourceMappingURL=GroupsState.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationGroup = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst GroupsState_1 = require(\"./GroupsState\");\n/**\n * A comunica Group Query Operation Actor.\n */\nclass ActorQueryOperationGroup extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'group');\n        this.mediatorBindingsAggregatorFactory = args.mediatorBindingsAggregatorFactory;\n    }\n    async testOperation() {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory);\n        // Get result stream for the input query\n        const { input, aggregates } = operation;\n        const outputRaw = await this.mediatorQueryOperation.mediate({ operation: input, context });\n        const output = (0, utils_query_operation_1.getSafeBindings)(outputRaw);\n        // The variables in scope are the variables on which we group, i.e. pattern.variables.\n        // For 'GROUP BY ?x, ?z', this is [?x, ?z], for 'GROUP by expr(?x) as ?e' this is [?e].\n        // But also in scope are the variables defined by the aggregations, since GROUP has to handle this.\n        const variables = [\n            ...operation.variables,\n            ...aggregates.map(agg => agg.variable),\n        ].map(variable => ({ variable, canBeUndef: false }));\n        const variablesInner = (await output.metadata()).variables.map(v => v.variable);\n        // Wrap a new promise inside an iterator that completes when the stream has ended or when an error occurs\n        const bindingsStream = new asynciterator_1.TransformIterator(() => new Promise((resolve, reject) => {\n            const groups = new GroupsState_1.GroupsState(operation, this.mediatorBindingsAggregatorFactory, context, bindingsFactory, variablesInner);\n            // Phase 2: Collect aggregator results\n            // We can only return when the binding stream ends, when that happens\n            // we return the identified groups. Which are nothing more than Bindings\n            // of the grouping variables merged with the aggregate variables\n            // eslint-disable-next-line ts/no-misused-promises\n            output.bindingsStream.on('end', async () => {\n                try {\n                    const bindingsStreamInner = new asynciterator_1.ArrayIterator(await groups.collectResults(), { autoStart: false });\n                    resolve(bindingsStreamInner);\n                }\n                catch (error) {\n                    reject(error);\n                }\n            });\n            // Make sure to propagate any errors in the binding stream\n            output.bindingsStream.on('error', reject);\n            // Phase 1: Consume the stream, identify the groups and populate the aggregators.\n            // We need to bind this after the 'error' and 'end' listeners to avoid the\n            // stream having ended before those listeners are bound.\n            output.bindingsStream.on('data', (bindings) => {\n                groups.consumeBindings(bindings).catch(reject);\n            });\n        }), { autoStart: false });\n        return {\n            type: 'bindings',\n            bindingsStream,\n            metadata: async () => ({ ...await output.metadata(), variables }),\n        };\n    }\n}\nexports.ActorQueryOperationGroup = ActorQueryOperationGroup;\n//# sourceMappingURL=ActorQueryOperationGroup.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationGroup\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationNop = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * A [Query Operation](https://github.com/comunica/comunica/tree/master/packages/bus-query-operation)\n * actor that handles SPARQL nop operations.\n */\nclass ActorQueryOperationNop extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'nop');\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory);\n        return {\n            bindingsStream: new asynciterator_1.SingletonIterator(bindingsFactory.bindings()),\n            metadata: () => Promise.resolve({\n                state: new utils_metadata_1.MetadataValidationState(),\n                cardinality: { type: 'exact', value: 1 },\n                variables: [],\n            }),\n            type: 'bindings',\n        };\n    }\n}\nexports.ActorQueryOperationNop = ActorQueryOperationNop;\n//# sourceMappingURL=ActorQueryOperationNop.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationNop\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationService = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * A comunica Service Query Operation Actor.\n * It unwraps the SERVICE operation and executes it on the given source.\n */\nclass ActorQueryOperationService extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'service');\n    }\n    async testOperation(operation, _context) {\n        if (operation.name.termType !== 'NamedNode') {\n            return (0, core_1.failTest)(`${this.name} can only query services by IRI, while a ${operation.name.termType} was given.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        // Identify the SERVICE target as query source\n        const { querySource } = await this.mediatorQuerySourceIdentify.mediate({\n            querySourceUnidentified: {\n                value: operation.name.value,\n                type: this.forceSparqlEndpoint ? 'sparql' : undefined,\n            },\n            context,\n        });\n        // Attach the source to the operation, and execute\n        let output;\n        try {\n            output = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({\n                operation: (0, utils_query_operation_1.assignOperationSource)(operation.input, querySource),\n                context,\n            }));\n        }\n        catch (error) {\n            if (operation.silent) {\n                // Emit a single empty binding\n                const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n                const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory);\n                output = {\n                    bindingsStream: new asynciterator_1.SingletonIterator(bindingsFactory.bindings()),\n                    type: 'bindings',\n                    metadata: async () => ({\n                        state: new utils_metadata_1.MetadataValidationState(),\n                        cardinality: { type: 'exact', value: 1 },\n                        variables: [],\n                    }),\n                };\n                this.logWarn(context, `An error occurred when executing a SERVICE clause: ${error.message}`);\n            }\n            else {\n                throw error;\n            }\n        }\n        return output;\n    }\n}\nexports.ActorQueryOperationService = ActorQueryOperationService;\n//# sourceMappingURL=ActorQueryOperationService.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationService\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationValues = void 0;\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * A comunica Values Query Operation Actor.\n */\nclass ActorQueryOperationValues extends bus_query_operation_1.ActorQueryOperationTyped {\n    constructor(args) {\n        super(args, 'values');\n    }\n    async testOperation(_operation, _context) {\n        return (0, core_1.passTestVoid)();\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory);\n        const bindingsStream = new asynciterator_1.ArrayIterator(operation.bindings\n            .map(x => bindingsFactory.bindings(Object.entries(x)\n            .map(([key, value]) => [dataFactory.variable(key.slice(1)), value]))));\n        const metadata = () => Promise.resolve({\n            state: new utils_metadata_1.MetadataValidationState(),\n            cardinality: { type: 'exact', value: operation.bindings.length },\n            variables: operation.variables.map(variable => ({\n                variable,\n                canBeUndef: operation.bindings.some(bindings => !(`?${variable.value}` in bindings)),\n            })),\n        });\n        return { type: 'bindings', bindingsStream, metadata };\n    }\n}\nexports.ActorQueryOperationValues = ActorQueryOperationValues;\n//# sourceMappingURL=ActorQueryOperationValues.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationValues\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationPathOneOrMore = void 0;\nconst actor_abstract_path_1 = require(\"@comunica/actor-abstract-path\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Path OneOrMore Query Operation Actor.\n */\nclass ActorQueryOperationPathOneOrMore extends actor_abstract_path_1.ActorAbstractPath {\n    constructor(args) {\n        super(args, sparqlalgebrajs_1.Algebra.types.ONE_OR_MORE_PATH);\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory);\n        const distinct = await this.isPathArbitraryLengthDistinct(algebraFactory, context, operation);\n        if (distinct.operation) {\n            return distinct.operation;\n        }\n        context = distinct.context;\n        const predicate = operation.predicate;\n        if (operation.subject.termType !== 'Variable' && operation.object.termType === 'Variable') {\n            const objectVar = operation.object;\n            const starEval = await this.getObjectsPredicateStarEval(operation.subject, predicate.path, objectVar, operation.graph, context, false, algebraFactory, bindingsFactory);\n            const variables = (operation.graph.termType === 'Variable' ? [objectVar, operation.graph] : [objectVar])\n                .map(variable => ({ variable, canBeUndef: false }));\n            return {\n                type: 'bindings',\n                bindingsStream: starEval.bindingsStream,\n                metadata: async () => ({ ...await starEval.metadata(), variables }),\n            };\n        }\n        if (operation.subject.termType === 'Variable' && operation.object.termType === 'Variable') {\n            // Get all the results of subjects with same predicate, but once, then fill in first variable for those\n            const single = algebraFactory.createDistinct(algebraFactory.createPath(operation.subject, operation.predicate.path, operation.object, operation.graph));\n            const results = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ context, operation: single }));\n            const subjectVar = operation.subject;\n            const objectVar = operation.object;\n            const termHashes = {};\n            const bindingsStream = new asynciterator_1.MultiTransformIterator(results.bindingsStream, {\n                multiTransform: (bindings) => {\n                    const subject = bindings.get(subjectVar);\n                    const object = bindings.get(objectVar);\n                    const graph = operation.graph.termType === 'Variable' ? bindings.get(operation.graph) : operation.graph;\n                    return new asynciterator_1.TransformIterator(async () => {\n                        const it = new asynciterator_1.BufferedIterator();\n                        await this.getSubjectAndObjectBindingsPredicateStar(subjectVar, objectVar, subject, object, predicate.path, graph, context, termHashes, {}, it, { count: 0 }, algebraFactory, bindingsFactory);\n                        return it.map((item) => {\n                            if (operation.graph.termType === 'Variable') {\n                                item = item.set(operation.graph, graph);\n                            }\n                            return item;\n                        });\n                    }, { autoStart: false, maxBufferSize: 128 });\n                },\n                autoStart: false,\n            });\n            const variables = (operation.graph.termType === 'Variable' ?\n                [subjectVar, objectVar, operation.graph] :\n                [subjectVar, objectVar])\n                .map(variable => ({ variable, canBeUndef: false }));\n            return {\n                type: 'bindings',\n                bindingsStream,\n                metadata: async () => ({ ...await results.metadata(), variables }),\n            };\n        }\n        if (operation.subject.termType === 'Variable' && operation.object.termType !== 'Variable') {\n            return this.mediatorQueryOperation.mediate({\n                context,\n                operation: algebraFactory.createPath(operation.object, algebraFactory.createOneOrMorePath(algebraFactory.createInv(predicate.path)), operation.subject, operation.graph),\n            });\n        }\n        // If (!sVar && !oVar)\n        const variable = this.generateVariable(dataFactory);\n        const results = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({\n            context,\n            operation: algebraFactory.createPath(operation.subject, predicate, variable, operation.graph),\n        }));\n        const bindingsStream = results.bindingsStream.map((item) => {\n            if (operation.object.equals(item.get(variable))) {\n                return operation.graph.termType === 'Variable' ?\n                    bindingsFactory.bindings([[operation.graph, item.get(operation.graph)]]) :\n                    bindingsFactory.bindings();\n            }\n            return null;\n        });\n        return {\n            type: 'bindings',\n            bindingsStream,\n            metadata: async () => ({\n                ...await results.metadata(),\n                variables: (operation.graph.termType === 'Variable' ? [operation.graph] : [])\n                    .map(variable => ({ variable, canBeUndef: false })),\n            }),\n        };\n    }\n}\nexports.ActorQueryOperationPathOneOrMore = ActorQueryOperationPathOneOrMore;\n//# sourceMappingURL=ActorQueryOperationPathOneOrMore.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationPathOneOrMore\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationPathZeroOrMore = void 0;\nconst actor_abstract_path_1 = require(\"@comunica/actor-abstract-path\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst rdf_string_1 = require(\"rdf-string\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Path ZeroOrMore Query Operation Actor.\n */\nclass ActorQueryOperationPathZeroOrMore extends actor_abstract_path_1.ActorAbstractPath {\n    constructor(args) {\n        super(args, sparqlalgebrajs_1.Algebra.types.ZERO_OR_MORE_PATH);\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory);\n        const distinct = await this.isPathArbitraryLengthDistinct(algebraFactory, context, operation);\n        if (distinct.operation) {\n            return distinct.operation;\n        }\n        context = distinct.context;\n        const predicate = operation.predicate;\n        const sources = this.getPathSources(predicate);\n        const sVar = operation.subject.termType === 'Variable';\n        const oVar = operation.object.termType === 'Variable';\n        if (operation.subject.termType === 'Variable' && operation.object.termType === 'Variable') {\n            // Query ?s ?p ?o, to get all possible namedNodes in de the db\n            const predVar = this.generateVariable(dataFactory, operation);\n            const single = this.assignPatternSources(algebraFactory, algebraFactory\n                .createPattern(operation.subject, predVar, operation.object, operation.graph), sources);\n            const results = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ context, operation: single }));\n            const subjectVar = operation.subject;\n            const objectVar = operation.object;\n            // Set with all namedNodes we have already started a predicate* search from\n            const entities = new Set();\n            const termHashes = {};\n            const bindingsStream = new asynciterator_1.MultiTransformIterator(results.bindingsStream, {\n                multiTransform: (bindings) => {\n                    // Get the subject and object of the triples (?s ?p ?o) and extract graph if it was a variable\n                    const subject = bindings.get(subjectVar);\n                    const object = bindings.get(objectVar);\n                    const graph = operation.graph.termType === 'Variable' ?\n                        bindings.get(operation.graph) :\n                        operation.graph;\n                    // Make a hash of namedNode + graph to remember from where we already started a search\n                    const subjectGraphHash = (0, rdf_string_1.termToString)(subject) + (0, rdf_string_1.termToString)(graph);\n                    const objectGraphHash = (0, rdf_string_1.termToString)(object) + (0, rdf_string_1.termToString)(graph);\n                    return new asynciterator_1.TransformIterator(async () => {\n                        // If no new namedNodes in this triple, return nothing\n                        if (entities.has(subjectGraphHash) && entities.has(objectGraphHash)) {\n                            return new asynciterator_1.EmptyIterator();\n                        }\n                        // Set up an iterator to which getSubjectAndObjectBindingsPredicateStar will push solutions\n                        const it = new asynciterator_1.BufferedIterator();\n                        const counter = { count: 0 };\n                        // If not started from this namedNode (subject in triple) in this graph, start a search\n                        if (!entities.has(subjectGraphHash)) {\n                            entities.add(subjectGraphHash);\n                            await this.getSubjectAndObjectBindingsPredicateStar(subjectVar, objectVar, subject, subject, predicate.path, graph, context, termHashes, {}, it, counter, algebraFactory, bindingsFactory);\n                        }\n                        // If not started from this namedNode (object in triple) in this graph, start a search\n                        if (!entities.has(objectGraphHash)) {\n                            entities.add(objectGraphHash);\n                            await this.getSubjectAndObjectBindingsPredicateStar(subjectVar, objectVar, object, object, predicate.path, graph, context, termHashes, {}, it, counter, algebraFactory, bindingsFactory);\n                        }\n                        return it.map((item) => {\n                            // If the graph was a variable, fill in it's binding (we got it from the ?s ?p ?o binding)\n                            if (operation.graph.termType === 'Variable') {\n                                item = item.set(operation.graph, graph);\n                            }\n                            return item;\n                        });\n                    }, { autoStart: false, maxBufferSize: 128 });\n                },\n                autoStart: false,\n            });\n            const variables = (operation.graph.termType === 'Variable' ?\n                [subjectVar, operation.object, operation.graph] :\n                [subjectVar, operation.object])\n                .map(variable => ({ variable, canBeUndef: false }));\n            return {\n                type: 'bindings',\n                bindingsStream,\n                metadata: async () => ({ ...await results.metadata(), variables }),\n            };\n        }\n        if (!sVar && !oVar) {\n            const variable = this.generateVariable(dataFactory);\n            const starEval = await this.getObjectsPredicateStarEval(operation.subject, predicate.path, variable, operation.graph, context, true, algebraFactory, bindingsFactory);\n            const bindingsStream = starEval.bindingsStream.map((item) => {\n                if (operation.object.equals(item.get(variable))) {\n                    return operation.graph.termType === 'Variable' ?\n                        bindingsFactory.bindings([[operation.graph, item.get(operation.graph)]]) :\n                        bindingsFactory.bindings();\n                }\n                return null;\n            });\n            return {\n                type: 'bindings',\n                bindingsStream,\n                metadata: async () => ({\n                    ...await starEval.metadata(),\n                    variables: (operation.graph.termType === 'Variable' ? [operation.graph] : [])\n                        .map(variable => ({ variable, canBeUndef: false })),\n                }),\n            };\n        }\n        // If (sVar || oVar)\n        const subject = sVar ? operation.object : operation.subject;\n        const value = (sVar ? operation.subject : operation.object);\n        const pred = sVar ? algebraFactory.createInv(predicate.path) : predicate.path;\n        const starEval = await this.getObjectsPredicateStarEval(subject, pred, value, operation.graph, context, true, algebraFactory, bindingsFactory);\n        const variables = (operation.graph.termType === 'Variable' ? [value, operation.graph] : [value])\n            .map(variable => ({ variable, canBeUndef: false }));\n        return {\n            type: 'bindings',\n            bindingsStream: starEval.bindingsStream,\n            metadata: async () => ({ ...await starEval.metadata(), variables }),\n        };\n    }\n}\nexports.ActorQueryOperationPathZeroOrMore = ActorQueryOperationPathZeroOrMore;\n//# sourceMappingURL=ActorQueryOperationPathZeroOrMore.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationPathZeroOrMore\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationPathZeroOrOne = void 0;\nconst actor_abstract_path_1 = require(\"@comunica/actor-abstract-path\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Path ZeroOrOne Query Operation Actor.\n */\nclass ActorQueryOperationPathZeroOrOne extends actor_abstract_path_1.ActorAbstractPath {\n    constructor(args) {\n        super(args, sparqlalgebrajs_1.Algebra.types.ZERO_OR_ONE_PATH);\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory);\n        const predicate = operation.predicate;\n        const sources = this.getPathSources(predicate);\n        const extra = [];\n        // Both subject and object non-variables\n        if (operation.subject.termType !== 'Variable' &&\n            operation.object.termType !== 'Variable' &&\n            operation.subject.equals(operation.object)) {\n            return {\n                type: 'bindings',\n                bindingsStream: new asynciterator_1.SingletonIterator(bindingsFactory.bindings()),\n                metadata: () => Promise.resolve({\n                    state: new utils_metadata_1.MetadataValidationState(),\n                    cardinality: { type: 'exact', value: 1 },\n                    variables: [],\n                }),\n            };\n        }\n        // Check if we require a distinct path operation\n        const distinct = await this.isPathArbitraryLengthDistinct(algebraFactory, context, operation);\n        if (distinct.operation) {\n            return distinct.operation;\n        }\n        context = distinct.context;\n        // Create an operator that resolve to the \"One\" part\n        const bindingsOne = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({\n            context,\n            operation: algebraFactory.createPath(operation.subject, predicate.path, operation.object, operation.graph),\n        }));\n        // Determine the bindings stream based on the variable-ness of subject and object\n        let bindingsStream;\n        if (operation.subject.termType === 'Variable' && operation.object.termType === 'Variable') {\n            // Both subject and object are variables\n            // To determine the \"Zero\" part, we\n            // query ?s ?p ?o. FILTER ?s = ?0, to get all possible namedNodes in de the db\n            const varP = this.generateVariable(dataFactory, operation);\n            const bindingsZero = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({\n                context,\n                operation: algebraFactory.createFilter(this.assignPatternSources(algebraFactory, algebraFactory\n                    .createPattern(operation.subject, varP, operation.object, operation.graph), sources), algebraFactory.createOperatorExpression('=', [\n                    algebraFactory.createTermExpression(operation.subject),\n                    algebraFactory.createTermExpression(operation.object),\n                ])),\n            })).bindingsStream.map(bindings => bindings.delete(varP));\n            bindingsStream = new asynciterator_1.UnionIterator([\n                bindingsZero,\n                bindingsOne.bindingsStream,\n            ], { autoStart: false });\n        }\n        else {\n            // If subject or object is not a variable, then determining the \"Zero\" part is simple.\n            if (operation.subject.termType === 'Variable') {\n                extra.push(bindingsFactory.bindings([[operation.subject, operation.object]]));\n            }\n            if (operation.object.termType === 'Variable') {\n                extra.push(bindingsFactory.bindings([[operation.object, operation.subject]]));\n            }\n            bindingsStream = bindingsOne.bindingsStream.prepend(extra);\n        }\n        const metadata = async () => {\n            const innerMetadata = await bindingsOne.metadata();\n            return {\n                ...innerMetadata,\n                cardinality: {\n                    ...innerMetadata.cardinality,\n                    // Add one to cardinality because we allow *ZERO* or more.\n                    value: innerMetadata.cardinality.value + 1,\n                },\n            };\n        };\n        return {\n            type: 'bindings',\n            bindingsStream,\n            metadata,\n        };\n    }\n}\nexports.ActorQueryOperationPathZeroOrOne = ActorQueryOperationPathZeroOrOne;\n//# sourceMappingURL=ActorQueryOperationPathZeroOrOne.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationPathZeroOrOne\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryOperationUpdateDeleteInsert = void 0;\nconst actor_query_operation_construct_1 = require(\"@comunica/actor-query-operation-construct\");\nconst bus_query_operation_1 = require(\"@comunica/bus-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * A comunica Update DeleteInsert Query Operation Actor.\n */\nclass ActorQueryOperationUpdateDeleteInsert extends bus_query_operation_1.ActorQueryOperationTypedMediated {\n    constructor(args) {\n        super(args, 'deleteinsert');\n        this.blankNodeCounter = 0;\n    }\n    async testOperation(operation, context) {\n        return (0, utils_query_operation_1.testReadOnly)(context);\n    }\n    async runOperation(operation, context) {\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory);\n        // Evaluate the where clause\n        const whereBindings = operation.where ?\n            (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation\n                .mediate({ operation: operation.where, context })).bindingsStream :\n            new asynciterator_1.ArrayIterator([bindingsFactory.bindings()], { autoStart: false });\n        // Construct triples using the result based on the pattern.\n        let quadStreamInsert;\n        let quadStreamDelete;\n        if (operation.insert) {\n            // Localize blank nodes in pattern, to avoid clashes across different INSERT/DELETE calls\n            quadStreamInsert = new actor_query_operation_construct_1.BindingsToQuadsIterator(dataFactory, operation.insert.map(actor_query_operation_construct_1.BindingsToQuadsIterator.localizeQuad.bind(null, dataFactory, this.blankNodeCounter)), whereBindings.clone());\n            this.blankNodeCounter++;\n        }\n        if (operation.delete) {\n            // Localize blank nodes in pattern, to avoid clashes across different INSERT/DELETE calls\n            quadStreamDelete = new actor_query_operation_construct_1.BindingsToQuadsIterator(dataFactory, operation.delete.map(actor_query_operation_construct_1.BindingsToQuadsIterator.localizeQuad.bind(null, dataFactory, this.blankNodeCounter)), whereBindings.clone());\n            this.blankNodeCounter++;\n        }\n        // Evaluate the required modifications\n        const { execute } = await this.mediatorUpdateQuads.mediate({\n            quadStreamInsert,\n            quadStreamDelete,\n            context,\n        });\n        return {\n            type: 'void',\n            execute,\n        };\n    }\n}\nexports.ActorQueryOperationUpdateDeleteInsert = ActorQueryOperationUpdateDeleteInsert;\n//# sourceMappingURL=ActorQueryOperationUpdateDeleteInsert.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryOperationUpdateDeleteInsert\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryProcess = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for query-process events.\n *\n * Actor types:\n * * Input:  IActionQueryProcess:      The input query to process.\n * * Test:   <none>\n * * Output: IActorQueryProcessOutput: Output of the query processing.\n *\n * @see IActionQueryProcess\n * @see IActorQueryProcessOutput\n */\nclass ActorQueryProcess extends core_1.Actor {\n    /* eslint-disable max-len */\n    /**\n     * @param args -\n     *   \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *   \\ @defaultNested {Query processing failed: none of the configured actor were process to the query \"${action.query}\"} busFailMessage\n     */\n    /* eslint-enable max-len */\n    constructor(args) {\n        super(args);\n    }\n}\nexports.ActorQueryProcess = ActorQueryProcess;\n//# sourceMappingURL=ActorQueryProcess.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryProcess\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryProcessSequential = void 0;\nconst bus_query_process_1 = require(\"@comunica/bus-query-process\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Sequential Query Process Actor.\n */\nclass ActorQueryProcessSequential extends bus_query_process_1.ActorQueryProcess {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (action.context.get(context_entries_1.KeysInitQuery.explain) ?? action.context.get(new core_1.ActionContextKey('explain'))) {\n            return (0, core_1.failTest)(`${this.name} is not able to explain queries.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        // Run all query processing steps in sequence\n        let { operation, context } = await this.parse(action.query, action.context);\n        ({ operation, context } = await this.optimize(operation, context));\n        const output = await this.evaluate(operation, context);\n        return { result: output };\n    }\n    async parse(query, context) {\n        // Pre-processing the context\n        context = (await this.mediatorContextPreprocess.mediate({ context, initialize: true })).context;\n        // Parse query\n        let operation;\n        if (typeof query === 'string') {\n            // Save the original query string in the context\n            context = context.set(context_entries_1.KeysInitQuery.queryString, query);\n            const baseIRI = context.get(context_entries_1.KeysInitQuery.baseIRI);\n            const queryFormat = context.get(context_entries_1.KeysInitQuery.queryFormat);\n            const queryParseOutput = await this.mediatorQueryParse.mediate({ context, query, queryFormat, baseIRI });\n            operation = queryParseOutput.operation;\n            // Update the baseIRI in the context if the query modified it.\n            if (queryParseOutput.baseIRI) {\n                context = context.set(context_entries_1.KeysInitQuery.baseIRI, queryParseOutput.baseIRI);\n            }\n        }\n        else {\n            operation = query;\n        }\n        // Apply initial bindings in context\n        if (context.has(context_entries_1.KeysInitQuery.initialBindings)) {\n            const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n            const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n            const bindingsFactory = await utils_bindings_factory_1.BindingsFactory\n                .create(this.mediatorMergeBindingsContext, context, dataFactory);\n            operation = (0, utils_query_operation_1.materializeOperation)(operation, context.get(context_entries_1.KeysInitQuery.initialBindings), algebraFactory, bindingsFactory, { strictTargetVariables: true });\n            // Delete the query string from the context, since our initial query might have changed\n            context = context.delete(context_entries_1.KeysInitQuery.queryString);\n        }\n        return { operation, context };\n    }\n    async optimize(operation, context) {\n        // Save initial query in context\n        context = context.set(context_entries_1.KeysInitQuery.query, operation);\n        ({ operation, context } = await this.mediatorOptimizeQueryOperation.mediate({ context, operation }));\n        // Save original query in context\n        context = context.set(context_entries_1.KeysInitQuery.query, operation);\n        return { operation, context };\n    }\n    async evaluate(operation, context) {\n        const output = await this.mediatorQueryOperation.mediate({ context, operation });\n        output.context = context;\n        return output;\n    }\n}\nexports.ActorQueryProcessSequential = ActorQueryProcessSequential;\n//# sourceMappingURL=ActorQueryProcessSequential.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryProcessSequential\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkedRdfSourcesAsyncRdfIterator = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst asynciterator_1 = require(\"asynciterator\");\nclass LinkedRdfSourcesAsyncRdfIterator extends asynciterator_1.BufferedIterator {\n    constructor(cacheSize, operation, queryBindingsOptions, context, firstUrl, maxIterators, sourceStateGetter, options) {\n        super({ autoStart: false, ...options });\n        this.started = false;\n        this.currentIterators = [];\n        this.iteratorsPendingCreation = 0;\n        this.iteratorsPendingTermination = 0;\n        // eslint-disable-next-line unicorn/no-useless-undefined\n        this.accumulatedMetadata = Promise.resolve(undefined);\n        this._reading = false;\n        this.cacheSize = cacheSize;\n        this.operation = operation;\n        this.queryBindingsOptions = queryBindingsOptions;\n        this.context = context;\n        this.firstUrl = firstUrl;\n        this.maxIterators = maxIterators;\n        this.sourceStateGetter = sourceStateGetter;\n        if (this.maxIterators <= 0) {\n            throw new Error(`LinkedRdfSourcesAsyncRdfIterator.maxIterators must be larger than zero, but got ${this.maxIterators}`);\n        }\n    }\n    /**\n     * Start filling the buffer of this iterator.\n     */\n    kickstart() {\n        if (!this.started) {\n            this._fillBufferAsync();\n        }\n    }\n    getProperty(propertyName, callback) {\n        if (propertyName === 'metadata' && !this.started) {\n            // If the iterator has not started yet, forcefully fetch the metadata from the source without starting the\n            // iterator. This way, we keep the iterator lazy.\n            if (!this.preflightMetadata) {\n                this.preflightMetadata = new Promise((resolve, reject) => {\n                    this.sourceStateGetter({ url: this.firstUrl }, {})\n                        .then((sourceState) => {\n                        // Don't pass query options, as we don't want to consume any passed iterators\n                        const bindingsStream = sourceState.source.queryBindings(this.operation, this.context);\n                        bindingsStream.getProperty('metadata', (metadata) => {\n                            metadata.state = new utils_metadata_1.MetadataValidationState();\n                            bindingsStream.destroy();\n                            this.accumulateMetadata(sourceState.metadata, metadata)\n                                .then((accumulatedMetadata) => {\n                                // Also merge fields that were not explicitly accumulated\n                                const returnMetadata = { ...sourceState.metadata, ...metadata, ...accumulatedMetadata };\n                                resolve(returnMetadata);\n                            })\n                                .catch(() => {\n                                resolve({\n                                    ...sourceState.metadata,\n                                    state: new utils_metadata_1.MetadataValidationState(),\n                                });\n                            });\n                        });\n                    })\n                        .catch(reject);\n                });\n            }\n            this.preflightMetadata\n                .then(metadata => this.setProperty('metadata', metadata))\n                .catch(e => this.emit('error', e));\n        }\n        return super.getProperty(propertyName, callback);\n    }\n    _end(destroy) {\n        // Close all running iterators\n        for (const it of this.currentIterators) {\n            it.destroy();\n        }\n        super._end(destroy);\n    }\n    _read(count, done) {\n        if (this.started) {\n            // Read from all current iterators\n            for (const iterator of this.currentIterators) {\n                while (count > 0) {\n                    const read = iterator.read();\n                    if (read === null) {\n                        break;\n                    }\n                    else {\n                        count--;\n                        this._push(read);\n                    }\n                }\n                if (count <= 0) {\n                    break;\n                }\n            }\n            // Schedule new iterators if needed\n            if (count >= 0 && this.canStartNewIterator()) {\n                // We can safely ignore skip catching the error, since we are guaranteed to have\n                // successfully got the source for this.firstUrl before.\n                // eslint-disable-next-line ts/no-floating-promises\n                this.sourceStateGetter({ url: this.firstUrl }, {})\n                    .then((sourceState) => {\n                    this.startIteratorsForNextUrls(sourceState.handledDatasets, false);\n                    done();\n                });\n            }\n            else {\n                done();\n            }\n        }\n        else {\n            // The first time this is called, prepare the first source\n            this.started = true;\n            // Await the source to be set, and start the source iterator\n            this.sourceStateGetter({ url: this.firstUrl }, {})\n                .then((sourceState) => {\n                this.startIterator(sourceState);\n                done();\n            })\n                // Destroy should be async because it can be called before it is listened to\n                .catch(error => setTimeout(() => this.destroy(error)));\n        }\n    }\n    canStartNewIterator() {\n        return (this.currentIterators.length + this.iteratorsPendingCreation + this.iteratorsPendingTermination) <\n            this.maxIterators && (!this.canStartNewIteratorConsiderReadable() || !this.readable);\n    }\n    canStartNewIteratorConsiderReadable() {\n        return true;\n    }\n    areIteratorsRunning() {\n        return (this.currentIterators.length + this.iteratorsPendingCreation + this.iteratorsPendingTermination) > 0;\n    }\n    /**\n     * Start a new iterator for the given source.\n     * Once the iterator is done, it will either determine a new source, or it will close the linked iterator.\n     * @param {ISourceState} startSource The start source state.\n     */\n    startIterator(startSource) {\n        // Delegate the quad pattern query to the given source\n        try {\n            const iterator = startSource.source.queryBindings(this.operation, this.context, this.queryBindingsOptions);\n            this.currentIterators.push(iterator);\n            let receivedEndEvent = false;\n            let receivedMetadata = false;\n            // Attach readers to the newly created iterator\n            iterator._destination = this;\n            iterator.on('error', (error) => this.destroy(error));\n            iterator.on('readable', () => this._fillBuffer());\n            iterator.on('end', () => {\n                this.currentIterators.splice(this.currentIterators.indexOf(iterator), 1);\n                // Indicate that this iterator still needs to flush its next-links.\n                // Without this, the linked iterator could sometimes be closed before next-links are obtained.\n                receivedEndEvent = true;\n                if (!receivedMetadata) {\n                    this.iteratorsPendingTermination++;\n                }\n                // If the metadata was already received, handle the next URL in the queue\n                if (receivedMetadata) {\n                    this.startIteratorsForNextUrls(startSource.handledDatasets, true);\n                }\n            });\n            // Listen for the metadata of the source\n            // The metadata property is guaranteed to be set\n            iterator.getProperty('metadata', (metadata) => {\n                // Accumulate the metadata object\n                this.accumulatedMetadata = this.accumulatedMetadata\n                    .then(previousMetadata => (async () => {\n                    if (!previousMetadata) {\n                        previousMetadata = startSource.metadata;\n                    }\n                    return this.accumulateMetadata(previousMetadata, metadata);\n                })()\n                    .then((accumulatedMetadata) => {\n                    // Also merge fields that were not explicitly accumulated\n                    const returnMetadata = { ...startSource.metadata, ...metadata, ...accumulatedMetadata };\n                    // Create new metadata state\n                    returnMetadata.state = new utils_metadata_1.MetadataValidationState();\n                    // Emit metadata, and invalidate any metadata that was set before\n                    this.updateMetadata(returnMetadata);\n                    // Invalidate any preflight metadata\n                    if (this.preflightMetadata) {\n                        this.preflightMetadata\n                            .then(metadataIn => metadataIn.state.invalidate())\n                            .catch(() => {\n                            // Ignore errors\n                        });\n                    }\n                    // Determine next urls, which will eventually become a next-next source.\n                    this.getSourceLinks(returnMetadata, startSource)\n                        .then((nextUrls) => Promise.all(nextUrls))\n                        .then(async (nextUrls) => {\n                        // Append all next URLs to our queue\n                        const linkQueue = await this.getLinkQueue();\n                        for (const nextUrl of nextUrls) {\n                            linkQueue.push(nextUrl, startSource.link);\n                        }\n                        receivedMetadata = true;\n                        if (receivedEndEvent) {\n                            this.iteratorsPendingTermination--;\n                        }\n                        this.startIteratorsForNextUrls(startSource.handledDatasets, true);\n                    }).catch(error => this.destroy(error));\n                    return returnMetadata;\n                })).catch((error) => {\n                    this.destroy(error);\n                    return {};\n                });\n            });\n        }\n        catch (syncError) {\n            this.destroy(syncError);\n        }\n    }\n    updateMetadata(metadataNew) {\n        const metadataToInvalidate = this.getProperty('metadata');\n        this.setProperty('metadata', metadataNew);\n        metadataToInvalidate?.state.invalidate();\n    }\n    isRunning() {\n        return !this.done;\n    }\n    /**\n     * Check if a next URL is in the queue.\n     * If yes, start a new iterator.\n     * If no, close this iterator.\n     * @param handledDatasets\n     * @param canClose\n     */\n    startIteratorsForNextUrls(handledDatasets, canClose) {\n        this.getLinkQueue()\n            .then((linkQueue) => {\n            // Create as many new iterators as possible\n            while (this.canStartNewIterator() && this.isRunning()) {\n                const nextLink = linkQueue.pop();\n                if (nextLink) {\n                    this.iteratorsPendingCreation++;\n                    this.sourceStateGetter(nextLink, handledDatasets)\n                        .then((nextSourceState) => {\n                        // If we find a statistic tracking dereference events we emit the relevant data\n                        const statisticDereferenceLinks = this.context.get(context_entries_1.KeysStatistics.dereferencedLinks);\n                        if (statisticDereferenceLinks) {\n                            statisticDereferenceLinks.updateStatistic({\n                                url: nextSourceState.link.url,\n                                metadata: { ...nextSourceState.metadata, ...nextSourceState.link.metadata },\n                            }, nextSourceState.source);\n                        }\n                        this.iteratorsPendingCreation--;\n                        this.startIterator(nextSourceState);\n                    })\n                        .catch(error => this.emit('error', error));\n                }\n                else {\n                    break;\n                }\n            }\n            // Close, only if no other iterators are still running\n            if (canClose && this.isCloseable(linkQueue, true)) {\n                this.close();\n            }\n        })\n            .catch(error => this.destroy(error));\n    }\n    isCloseable(linkQueue, _requireQueueEmpty) {\n        return linkQueue.isEmpty() && !this.areIteratorsRunning();\n    }\n}\nexports.LinkedRdfSourcesAsyncRdfIterator = LinkedRdfSourcesAsyncRdfIterator;\n//# sourceMappingURL=LinkedRdfSourcesAsyncRdfIterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MediatedLinkedRdfSourcesAsyncRdfIterator = void 0;\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst LinkedRdfSourcesAsyncRdfIterator_1 = require(\"./LinkedRdfSourcesAsyncRdfIterator\");\n/**\n * An quad iterator that can iterate over consecutive RDF sources\n * that are determined using the rdf-resolve-hypermedia-links bus.\n *\n * @see LinkedRdfSourcesAsyncRdfIterator\n */\nclass MediatedLinkedRdfSourcesAsyncRdfIterator extends LinkedRdfSourcesAsyncRdfIterator_1.LinkedRdfSourcesAsyncRdfIterator {\n    constructor(cacheSize, operation, queryBindingsOptions, context, forceSourceType, firstUrl, maxIterators, sourceStateGetter, aggregatedStore, mediatorMetadataAccumulate, mediatorRdfResolveHypermediaLinks, mediatorRdfResolveHypermediaLinksQueue, dataFactory, algebraFactory) {\n        super(cacheSize, operation, queryBindingsOptions, context, firstUrl, maxIterators, sourceStateGetter, \n        // Buffersize must be infinite for an aggregated store because it must keep filling until there are no more\n        // derived iterators in the aggregated store.\n        aggregatedStore ? { maxBufferSize: Number.POSITIVE_INFINITY } : undefined);\n        this.wasForcefullyClosed = false;\n        this.forceSourceType = forceSourceType;\n        this.mediatorMetadataAccumulate = mediatorMetadataAccumulate;\n        this.mediatorRdfResolveHypermediaLinks = mediatorRdfResolveHypermediaLinks;\n        this.mediatorRdfResolveHypermediaLinksQueue = mediatorRdfResolveHypermediaLinksQueue;\n        this.handledUrls = { [firstUrl]: true };\n        this.aggregatedStore = aggregatedStore;\n        this.dataFactory = dataFactory;\n        this.algebraFactory = algebraFactory;\n    }\n    // Mark the aggregated store as ended once we trigger the closing or destroying of this iterator.\n    // We don't override _end, because that would mean that we have to wait\n    // until the buffer of this iterator must be fully consumed, which will not always be the case.\n    close() {\n        if (!this.aggregatedStore) {\n            super.close();\n            return;\n        }\n        this.getLinkQueue()\n            .then((linkQueue) => {\n            if (this.isCloseable(linkQueue, false)) {\n                // Wait a tick before ending the aggregatedStore, to ensure that pending match() calls to it have started.\n                if (this.aggregatedStore) {\n                    setTimeout(() => this.aggregatedStore.end());\n                }\n                super.close();\n            }\n            else {\n                this.wasForcefullyClosed = true;\n            }\n        })\n            .catch(error => super.destroy(error));\n    }\n    destroy(cause) {\n        if (!this.aggregatedStore) {\n            super.destroy(cause);\n            return;\n        }\n        this.getLinkQueue()\n            .then((linkQueue) => {\n            if (cause ?? this.isCloseable(linkQueue, false)) {\n                // Wait a tick before ending the aggregatedStore, to ensure that pending match() calls to it have started.\n                if (this.aggregatedStore) {\n                    setTimeout(() => this.aggregatedStore.end());\n                }\n                super.destroy(cause);\n            }\n            else {\n                this.wasForcefullyClosed = true;\n            }\n        })\n            .catch(error => super.destroy(error));\n    }\n    isCloseable(linkQueue, requireQueueEmpty) {\n        return (requireQueueEmpty ? linkQueue.isEmpty() : this.wasForcefullyClosed || linkQueue.isEmpty()) &&\n            !this.areIteratorsRunning();\n    }\n    canStartNewIterator() {\n        // Also allow sub-iterators to be started if the aggregated store has at least one running iterator.\n        // We need this because there are cases where these running iterators will be consumed before this linked iterator.\n        return (!this.wasForcefullyClosed &&\n            // eslint-disable-next-line ts/prefer-nullish-coalescing\n            (this.aggregatedStore && this.aggregatedStore.hasRunningIterators())) || super.canStartNewIterator();\n    }\n    canStartNewIteratorConsiderReadable() {\n        return !this.aggregatedStore;\n    }\n    isRunning() {\n        // Same as above\n        // eslint-disable-next-line ts/prefer-nullish-coalescing\n        return (this.aggregatedStore && this.aggregatedStore.hasRunningIterators()) || !this.done;\n    }\n    getLinkQueue() {\n        if (!this.linkQueue) {\n            this.linkQueue = this.mediatorRdfResolveHypermediaLinksQueue\n                .mediate({ firstUrl: this.firstUrl, context: this.context })\n                .then(result => result.linkQueue);\n        }\n        return this.linkQueue;\n    }\n    async getSourceLinks(metadata, startSource) {\n        try {\n            const { links } = await this.mediatorRdfResolveHypermediaLinks.mediate({ context: this.context, metadata });\n            // Update discovery event statistic if available\n            const traversalTracker = this.context.get(context_entries_1.KeysStatistics.discoveredLinks);\n            if (traversalTracker) {\n                for (const link of links) {\n                    traversalTracker.updateStatistic({ url: link.url, metadata: { ...link.metadata } }, startSource.link);\n                }\n            }\n            // Filter URLs to avoid cyclic next-page loops\n            return links.filter((link) => {\n                if (this.handledUrls[link.url]) {\n                    return false;\n                }\n                this.handledUrls[link.url] = true;\n                return true;\n            });\n        }\n        catch {\n            // No next URLs may be available, for example when we've reached the end of a Hydra next-page sequence.\n            return [];\n        }\n    }\n    startIterator(startSource) {\n        if (this.aggregatedStore && !this.aggregatedStore.containedSources.has(startSource.link.url)) {\n            // A source that has been cached due to earlier query executions may not be part of the aggregated store yet.\n            // In that case, we add all quads from that source to the aggregated store.\n            this.aggregatedStore?.containedSources.add(startSource.link.url);\n            const stream = startSource.source.queryBindings(this.algebraFactory.createPattern(this.dataFactory.variable('s'), this.dataFactory.variable('p'), this.dataFactory.variable('o'), this.dataFactory.variable('g')), this.context.set(context_entries_1.KeysQueryOperation.unionDefaultGraph, true)).map(bindings => this.dataFactory.quad(bindings.get('s'), bindings.get('p'), bindings.get('o'), bindings.get('g')));\n            this.aggregatedStore.import(stream)\n                .on('end', () => {\n                super.startIterator(startSource);\n            });\n        }\n        else {\n            super.startIterator(startSource);\n        }\n    }\n    async accumulateMetadata(accumulatedMetadata, appendingMetadata) {\n        return (await this.mediatorMetadataAccumulate.mediate({\n            mode: 'append',\n            accumulatedMetadata,\n            appendingMetadata,\n            context: this.context,\n        })).metadata;\n    }\n    updateMetadata(metadataNew) {\n        super.updateMetadata(metadataNew);\n        this.aggregatedStore?.setBaseMetadata(metadataNew, true);\n    }\n}\nexports.MediatedLinkedRdfSourcesAsyncRdfIterator = MediatedLinkedRdfSourcesAsyncRdfIterator;\n//# sourceMappingURL=MediatedLinkedRdfSourcesAsyncRdfIterator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNode = void 0;\n/**\n * A term that represents an RDF blank node with a label.\n */\nclass BlankNode {\n    constructor(value) {\n        this.termType = 'BlankNode';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'BlankNode' && other.value === this.value;\n    }\n}\nexports.BlankNode = BlankNode;\n//# sourceMappingURL=BlankNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultGraph = void 0;\n/**\n * A singleton term instance that represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass DefaultGraph {\n    constructor() {\n        this.termType = 'DefaultGraph';\n        this.value = '';\n        // Private constructor\n    }\n    equals(other) {\n        return !!other && other.termType === 'DefaultGraph';\n    }\n}\nexports.DefaultGraph = DefaultGraph;\nDefaultGraph.INSTANCE = new DefaultGraph();\n//# sourceMappingURL=DefaultGraph.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NamedNode = void 0;\n/**\n * A term that contains an IRI.\n */\nclass NamedNode {\n    constructor(value) {\n        this.termType = 'NamedNode';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'NamedNode' && other.value === this.value;\n    }\n}\nexports.NamedNode = NamedNode;\n//# sourceMappingURL=NamedNode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Literal = void 0;\nconst NamedNode_1 = require(\"./NamedNode\");\n/**\n * A term that represents an RDF literal,\n * containing a string with an optional language tag and optional direction\n * or datatype.\n */\nclass Literal {\n    constructor(value, languageOrDatatype) {\n        this.termType = 'Literal';\n        this.value = value;\n        if (typeof languageOrDatatype === 'string') {\n            this.language = languageOrDatatype;\n            this.datatype = Literal.RDF_LANGUAGE_STRING;\n            this.direction = '';\n        }\n        else if (languageOrDatatype) {\n            if ('termType' in languageOrDatatype) {\n                this.language = '';\n                this.datatype = languageOrDatatype;\n                this.direction = '';\n            }\n            else {\n                this.language = languageOrDatatype.language;\n                this.datatype = languageOrDatatype.direction ?\n                    Literal.RDF_DIRECTIONAL_LANGUAGE_STRING :\n                    Literal.RDF_LANGUAGE_STRING;\n                this.direction = languageOrDatatype.direction || '';\n            }\n        }\n        else {\n            this.language = '';\n            this.datatype = Literal.XSD_STRING;\n            this.direction = '';\n        }\n    }\n    equals(other) {\n        return !!other && other.termType === 'Literal' && other.value === this.value &&\n            other.language === this.language &&\n            ((other.direction === this.direction) || (!other.direction && this.direction === '')) &&\n            this.datatype.equals(other.datatype);\n    }\n}\nexports.Literal = Literal;\nLiteral.RDF_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString');\nLiteral.RDF_DIRECTIONAL_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString');\nLiteral.XSD_STRING = new NamedNode_1.NamedNode('http://www.w3.org/2001/XMLSchema#string');\n//# sourceMappingURL=Literal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Quad = void 0;\n/**\n * An instance of DefaultGraph represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass Quad {\n    constructor(subject, predicate, object, graph) {\n        this.termType = 'Quad';\n        this.value = '';\n        this.subject = subject;\n        this.predicate = predicate;\n        this.object = object;\n        this.graph = graph;\n    }\n    equals(other) {\n        // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n        return !!other && (other.termType === 'Quad' || !other.termType) &&\n            this.subject.equals(other.subject) &&\n            this.predicate.equals(other.predicate) &&\n            this.object.equals(other.object) &&\n            this.graph.equals(other.graph);\n    }\n}\nexports.Quad = Quad;\n//# sourceMappingURL=Quad.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\n/**\n * A term that represents a variable.\n */\nclass Variable {\n    constructor(value) {\n        this.termType = 'Variable';\n        this.value = value;\n    }\n    equals(other) {\n        return !!other && other.termType === 'Variable' && other.value === this.value;\n    }\n}\nexports.Variable = Variable;\n//# sourceMappingURL=Variable.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataFactory = void 0;\nconst BlankNode_1 = require(\"./BlankNode\");\nconst DefaultGraph_1 = require(\"./DefaultGraph\");\nconst Literal_1 = require(\"./Literal\");\nconst NamedNode_1 = require(\"./NamedNode\");\nconst Quad_1 = require(\"./Quad\");\nconst Variable_1 = require(\"./Variable\");\nlet dataFactoryCounter = 0;\n/**\n * A factory for instantiating RDF terms and quads.\n */\nclass DataFactory {\n    constructor(options) {\n        this.blankNodeCounter = 0;\n        options = options || {};\n        this.blankNodePrefix = options.blankNodePrefix || `df_${dataFactoryCounter++}_`;\n    }\n    /**\n     * @param value The IRI for the named node.\n     * @return A new instance of NamedNode.\n     * @see NamedNode\n     */\n    namedNode(value) {\n        return new NamedNode_1.NamedNode(value);\n    }\n    /**\n     * @param value The optional blank node identifier.\n     * @return A new instance of BlankNode.\n     *         If the `value` parameter is undefined a new identifier\n     *         for the blank node is generated for each call.\n     * @see BlankNode\n     */\n    blankNode(value) {\n        return new BlankNode_1.BlankNode(value || `${this.blankNodePrefix}${this.blankNodeCounter++}`);\n    }\n    /**\n     * @param value              The literal value.\n     * @param languageOrDatatype The optional language, datatype, or directional language.\n     *                           If `languageOrDatatype` is a NamedNode,\n     *                           then it is used for the value of `NamedNode.datatype`.\n     *                           If `languageOrDatatype` is a NamedNode, it is used for the value\n     *                           of `NamedNode.language`.\n     *                           Otherwise, it is used as a directional language,\n     *                           from which the language is set to `languageOrDatatype.language`\n     *                           and the direction to `languageOrDatatype.direction`.\n     * @return A new instance of Literal.\n     * @see Literal\n     */\n    literal(value, languageOrDatatype) {\n        return new Literal_1.Literal(value, languageOrDatatype);\n    }\n    /**\n     * This method is optional.\n     * @param value The variable name\n     * @return A new instance of Variable.\n     * @see Variable\n     */\n    variable(value) {\n        return new Variable_1.Variable(value);\n    }\n    /**\n     * @return An instance of DefaultGraph.\n     */\n    defaultGraph() {\n        return DefaultGraph_1.DefaultGraph.INSTANCE;\n    }\n    /**\n     * @param subject   The quad subject term.\n     * @param predicate The quad predicate term.\n     * @param object    The quad object term.\n     * @param graph     The quad graph term.\n     * @return A new instance of Quad.\n     * @see Quad\n     */\n    quad(subject, predicate, object, graph) {\n        return new Quad_1.Quad(subject, predicate, object, graph || this.defaultGraph());\n    }\n    /**\n     * Create a deep copy of the given term using this data factory.\n     * @param original An RDF term.\n     * @return A deep copy of the given term.\n     */\n    fromTerm(original) {\n        // TODO: remove nasty any casts when this TS bug has been fixed:\n        //  https://github.com/microsoft/TypeScript/issues/26933\n        switch (original.termType) {\n            case 'NamedNode':\n                return this.namedNode(original.value);\n            case 'BlankNode':\n                return this.blankNode(original.value);\n            case 'Literal':\n                if (original.language) {\n                    return this.literal(original.value, original.language);\n                }\n                if (!original.datatype.equals(Literal_1.Literal.XSD_STRING)) {\n                    return this.literal(original.value, this.fromTerm(original.datatype));\n                }\n                return this.literal(original.value);\n            case 'Variable':\n                return this.variable(original.value);\n            case 'DefaultGraph':\n                return this.defaultGraph();\n            case 'Quad':\n                return this.quad(this.fromTerm(original.subject), this.fromTerm(original.predicate), this.fromTerm(original.object), this.fromTerm(original.graph));\n        }\n    }\n    /**\n     * Create a deep copy of the given quad using this data factory.\n     * @param original An RDF quad.\n     * @return A deep copy of the given quad.\n     */\n    fromQuad(original) {\n        return this.fromTerm(original);\n    }\n    /**\n     * Reset the internal blank node counter.\n     */\n    resetBlankNodeCounter() {\n        this.blankNodeCounter = 0;\n    }\n}\nexports.DataFactory = DataFactory;\n//# sourceMappingURL=DataFactory.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/BlankNode\"), exports);\n__exportStar(require(\"./lib/DataFactory\"), exports);\n__exportStar(require(\"./lib/DefaultGraph\"), exports);\n__exportStar(require(\"./lib/Literal\"), exports);\n__exportStar(require(\"./lib/NamedNode\"), exports);\n__exportStar(require(\"./lib/Quad\"), exports);\n__exportStar(require(\"./lib/Variable\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.termToString = termToString;\nexports.getLiteralValue = getLiteralValue;\nexports.getLiteralType = getLiteralType;\nexports.getLiteralLanguage = getLiteralLanguage;\nexports.getLiteralDirection = getLiteralDirection;\nexports.stringToTerm = stringToTerm;\nexports.quadToStringQuad = quadToStringQuad;\nexports.stringQuadToQuad = stringQuadToQuad;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst FACTORY = new rdf_data_factory_1.DataFactory();\n/**\n * Utility methods for converting between string-based RDF representations and RDFJS objects.\n *\n * RDF Terms are represented as follows:\n * * Blank nodes: '_:myBlankNode'\n * * Variables:   '?myVariable'\n * * Literals:    '\"myString\"', '\"myLanguageString\"@en-us', '\"myLanguageString\"@en-us--ltr', '\"3\"^^xsd:number'\n * * URIs:        'http://example.org'\n *\n * Quads/triples are represented as hashes with 'subject', 'predicate', 'object' and 'graph' (optional)\n * as keys, and string-based RDF terms as values.\n */\n/**\n * Convert an RDFJS term to a string-based representation.\n * @param {RDF.Term} term An RDFJS term.\n * @return {string} A string-based term representation.\n */\nfunction termToString(term) {\n    // TODO: remove nasty any casts when this TS bug has been fixed: https://github.com/microsoft/TypeScript/issues/26933\n    if (!term) {\n        return undefined;\n    }\n    switch (term.termType) {\n        case 'NamedNode': return term.value;\n        case 'BlankNode': return ('_:' + term.value);\n        case 'Literal':\n            const literalValue = term;\n            return ('\"' + literalValue.value + '\"' +\n                (literalValue.datatype &&\n                    literalValue.datatype.value !== 'http://www.w3.org/2001/XMLSchema#string' &&\n                    literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' &&\n                    literalValue.datatype.value !== 'http://www.w3.org/1999/02/22-rdf-syntax-ns#dirLangString' ?\n                    '^^' + literalValue.datatype.value : '') +\n                (literalValue.language ? '@' + literalValue.language : '') +\n                (literalValue.direction ? '--' + literalValue.direction : ''));\n        case 'Quad': return `<<${termToString(term.subject)} ${termToString(term.predicate)} ${termToString(term.object)}${term.graph.termType === 'DefaultGraph' ? '' : ' ' + termToString(term.graph)}>>`;\n        case 'Variable': return ('?' + term.value);\n        case 'DefaultGraph': return term.value;\n    }\n}\n/**\n * Get the string value of a literal.\n * @param {string} literalValue An RDF literal enclosed by '\"'.\n * @return {string} The literal value inside the '\"'.\n */\nfunction getLiteralValue(literalValue) {\n    const match = /^\"([^]*)\"/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    return match[1];\n}\n/**\n * Get the datatype of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The datatype of the literal.\n */\nfunction getLiteralType(literalValue) {\n    const match = /^\"[^]*\"(?:\\^\\^([^\"]+)|(@)[^@\"]+)?$/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    return match[1] || (match[2]\n        ? 'http://www.w3.org/1999/02/22-rdf-syntax-ns#langString' : 'http://www.w3.org/2001/XMLSchema#string');\n}\n/**\n * Get the language of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The language of the literal.\n */\nfunction getLiteralLanguage(literalValue) {\n    const match = /^\"[^]*\"(?:@([^@\"]+)|\\^\\^[^\"]+)?$/.exec(literalValue);\n    if (!match) {\n        throw new Error(literalValue + ' is not a literal');\n    }\n    if (match[1]) {\n        let ret = match[1].toLowerCase();\n        // Remove everything after --, since this indicates the base direction, which will be parsed later.\n        const doubleDashPos = ret.indexOf('--');\n        if (doubleDashPos >= 0) {\n            ret = ret.slice(0, doubleDashPos);\n        }\n        return ret;\n    }\n    return '';\n}\n/**\n * Get the direction of the given literal.\n * @param {string} literalValue An RDF literal.\n * @return {string} The direction of the literal.\n */\nfunction getLiteralDirection(literalValue) {\n    const doubleDashPos = literalValue.indexOf('--', literalValue.lastIndexOf('\"'));\n    if (doubleDashPos >= 0) {\n        const direction = literalValue.slice(doubleDashPos + 2, literalValue.length);\n        if (direction === 'ltr' || direction === 'rtl') {\n            return direction;\n        }\n        throw new Error(literalValue + ' is not a literal with a valid direction');\n    }\n    return '';\n}\n/**\n * Transform a string-based RDF term to an RDFJS term.\n * @param {string} value A string-based RDF-term.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {RDF.Term} An RDF-JS term.\n */\nfunction stringToTerm(value, dataFactory) {\n    dataFactory = dataFactory || FACTORY;\n    if (!value || !value.length) {\n        return dataFactory.defaultGraph();\n    }\n    switch (value[0]) {\n        case '_': return dataFactory.blankNode(value.substr(2));\n        case '?':\n            if (!dataFactory.variable) {\n                throw new Error(`Missing 'variable()' method on the given DataFactory`);\n            }\n            return dataFactory.variable(value.substr(1));\n        case '\"':\n            const language = getLiteralLanguage(value);\n            const direction = getLiteralDirection(value);\n            const type = dataFactory.namedNode(getLiteralType(value));\n            return dataFactory.literal(getLiteralValue(value), language ? { language, direction } : type);\n        case '<':\n        default:\n            if (value[0] === '<' && value.length > 4 && value[1] === '<' && value[value.length - 1] === '>' && value[value.length - 2] === '>') {\n                // Iterate character-by-character to detect spaces that are *not* wrapped in <<>>\n                const terms = value.slice(2, -2).trim();\n                let stringTerms = [];\n                let ignoreTags = 0;\n                let lastIndex = 0;\n                let inQuote = false;\n                for (let i = 0; i < terms.length; i++) {\n                    const char = terms[i];\n                    if (char === '<')\n                        ignoreTags++;\n                    if (char === '>') {\n                        if (ignoreTags === 0) {\n                            throw new Error('Found closing tag without opening tag in ' + value);\n                        }\n                        else {\n                            ignoreTags--;\n                        }\n                    }\n                    if (char === '\"') {\n                        let escaped = false;\n                        let j = i;\n                        while (j-- > 0 && terms[j] === '\\\\') {\n                            escaped = !escaped;\n                        }\n                        if (!escaped) {\n                            // We have reached an unescaped quote\n                            inQuote = !inQuote;\n                        }\n                    }\n                    if (char === ' ' && !inQuote && ignoreTags === 0) {\n                        stringTerms.push(terms.slice(lastIndex, i));\n                        while (terms[i + 1] === ' ') {\n                            i += 1;\n                        }\n                        lastIndex = i + 1;\n                    }\n                }\n                if (ignoreTags !== 0) {\n                    throw new Error('Found opening tag without closing tag in ' + value);\n                }\n                stringTerms.push(terms.slice(lastIndex, terms.length));\n                // We require 3 or 4 components\n                if (stringTerms.length !== 3 && stringTerms.length !== 4) {\n                    throw new Error('Nested quad syntax error ' + value);\n                }\n                stringTerms = stringTerms.map(term => term.startsWith('<') && !term.includes(' ') ? term.slice(1, -1) : term);\n                return dataFactory.quad(stringToTerm(stringTerms[0]), stringToTerm(stringTerms[1]), stringToTerm(stringTerms[2]), stringTerms[3] ? stringToTerm(stringTerms[3]) : undefined);\n            }\n            return dataFactory.namedNode(value);\n    }\n}\n/**\n * Convert an RDFJS quad to a string-based quad representation.\n * @param {Quad} q An RDFJS quad.\n * @return {IStringQuad} A hash with string-based quad terms.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction quadToStringQuad(q) {\n    // tslint:disable:object-literal-sort-keys\n    return {\n        subject: termToString(q.subject),\n        predicate: termToString(q.predicate),\n        object: termToString(q.object),\n        graph: termToString(q.graph),\n    };\n    // tslint:enable:object-literal-sort-keys\n}\n/**\n * Convert a string-based quad representation to an RDFJS quad.\n * @param {IStringQuad} stringQuad A hash with string-based quad terms.\n * @param {RDF.DataFactory} dataFactory An optional datafactory to create terms with.\n * @return {Q} An RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction stringQuadToQuad(stringQuad, dataFactory) {\n    dataFactory = dataFactory || FACTORY;\n    return dataFactory.quad(stringToTerm(stringQuad.subject, dataFactory), stringToTerm(stringQuad.predicate, dataFactory), stringToTerm(stringQuad.object, dataFactory), stringToTerm(stringQuad.graph, dataFactory));\n}\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.termToString = exports.stringToTerm = exports.stringQuadToQuad = exports.quadToStringQuad = exports.getLiteralValue = exports.getLiteralType = exports.getLiteralDirection = exports.getLiteralLanguage = void 0;\nconst TermUtil_1 = require(\"./lib/TermUtil\");\nObject.defineProperty(exports, \"getLiteralLanguage\", { enumerable: true, get: function () { return TermUtil_1.getLiteralLanguage; } });\nObject.defineProperty(exports, \"getLiteralDirection\", { enumerable: true, get: function () { return TermUtil_1.getLiteralDirection; } });\nObject.defineProperty(exports, \"getLiteralType\", { enumerable: true, get: function () { return TermUtil_1.getLiteralType; } });\nObject.defineProperty(exports, \"getLiteralValue\", { enumerable: true, get: function () { return TermUtil_1.getLiteralValue; } });\nObject.defineProperty(exports, \"quadToStringQuad\", { enumerable: true, get: function () { return TermUtil_1.quadToStringQuad; } });\nObject.defineProperty(exports, \"stringQuadToQuad\", { enumerable: true, get: function () { return TermUtil_1.stringQuadToQuad; } });\nObject.defineProperty(exports, \"stringToTerm\", { enumerable: true, get: function () { return TermUtil_1.stringToTerm; } });\nObject.defineProperty(exports, \"termToString\", { enumerable: true, get: function () { return TermUtil_1.termToString; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TRIPLE_TERM_NAMES = exports.QUAD_TERM_NAMES = void 0;\nexports.getTerms = getTerms;\nexports.getTermsNested = getTermsNested;\nexports.getNamedTerms = getNamedTerms;\nexports.collectNamedTerms = collectNamedTerms;\nexports.forEachTerms = forEachTerms;\nexports.forEachTermsNested = forEachTermsNested;\nexports.filterTerms = filterTerms;\nexports.filterTermsNested = filterTermsNested;\nexports.filterQuadTermNames = filterQuadTermNames;\nexports.filterQuadTermNamesNested = filterQuadTermNamesNested;\nexports.mapTerms = mapTerms;\nexports.mapTermsNested = mapTermsNested;\nexports.reduceTerms = reduceTerms;\nexports.reduceTermsNested = reduceTermsNested;\nexports.everyTerms = everyTerms;\nexports.everyTermsNested = everyTermsNested;\nexports.someTerms = someTerms;\nexports.someTermsNested = someTermsNested;\nexports.getValueNestedPath = getValueNestedPath;\nexports.matchTerm = matchTerm;\nexports.matchPattern = matchPattern;\nexports.matchPatternComplete = matchPatternComplete;\nexports.matchPatternMappings = matchPatternMappings;\nconst rdf_data_factory_1 = require(\"rdf-data-factory\");\nconst DF = new rdf_data_factory_1.DataFactory();\n/**\n * All available quad term names.\n * @type {[string , string , string , string]}\n */\nexports.QUAD_TERM_NAMES = ['subject', 'predicate', 'object', 'graph'];\n/**\n * All available triple term names.\n * @type {[string , string , string]}\n */\nexports.TRIPLE_TERM_NAMES = ['subject', 'predicate', 'object'];\n/**\n * Get all terms in the given quad.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {boolean} ignoreDefaultGraph If true and the quad has the default graph as graph,\n *                                     this term will not be returned in the array.\n *                                     (default: false)\n * @return {Term[]} The available terms in the quad.\n */\nfunction getTerms(quad, ignoreDefaultGraph) {\n    if (ignoreDefaultGraph && quad.graph.termType === 'DefaultGraph') {\n        return [quad.subject, quad.predicate, quad.object];\n    }\n    return [quad.subject, quad.predicate, quad.object, quad.graph];\n}\n/**\n * Get all terms in the given quad, including nested quads.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {boolean} ignoreDefaultGraph If true and the quad has the default graph as graph,\n *                                     this term will not be returned in the array.\n *                                     (default: false)\n * @return {Term[]} The available terms in the nested quad, excluding quad terms.\n */\nfunction getTermsNested(quad, ignoreDefaultGraph) {\n    const terms = [];\n    for (const term of getTerms(quad, ignoreDefaultGraph)) {\n        if (term.termType === 'Quad') {\n            getTermsNested(term, ignoreDefaultGraph).forEach(subTerm => terms.push(subTerm));\n        }\n        else {\n            terms.push(term);\n        }\n    }\n    return terms;\n}\n/**\n * Convert the given quad to an array of named terms.\n * This is the reverse operation of {@link collectNamedTerms}.\n * @param {BaseQuad} quad An RDFJS quad.\n * @return {INamedTerm[]} An array of named terms.\n */\nfunction getNamedTerms(quad) {\n    return [\n        { key: 'subject', value: quad.subject },\n        { key: 'predicate', value: quad.predicate },\n        { key: 'object', value: quad.object },\n        { key: 'graph', value: quad.graph },\n    ];\n}\n/**\n * Convert an array of named terms to an RDFJS quad.\n * This is the reverse operation of {@link getNamedTerms}.\n * @param {INamedTerm[]} namedTerms An array of named terms.\n * @param {(termName: QuadTermName) => Term} defaultCb An optional callback for when\n *                                                     certain terms are not available in the array.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @return {Q} The resulting RDFJS quad.\n * @template Q The type of quad to output, defaults to RDF.Quad.\n */\nfunction collectNamedTerms(namedTerms, defaultCb, dataFactory) {\n    const elements = {};\n    namedTerms.forEach((namedTerm) => elements[namedTerm.key] = namedTerm.value);\n    if (defaultCb) {\n        elements.subject = elements.subject || defaultCb('subject');\n        elements.predicate = elements.predicate || defaultCb('predicate');\n        elements.object = elements.object || defaultCb('object');\n        elements.graph = elements.graph || defaultCb('graph');\n    }\n    return (dataFactory || DF).quad(elements.subject, elements.predicate, elements.object, elements.graph);\n}\n/**\n * Iterates over each term.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} cb A callback function.\n */\nfunction forEachTerms(quad, cb) {\n    cb(quad.subject, 'subject');\n    cb(quad.predicate, 'predicate');\n    cb(quad.object, 'object');\n    cb(quad.graph, 'graph');\n}\n/**\n * Iterates over each leaf term, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} cb A callback function.\n * @param QuadTermName[] keys The current key path.\n */\nfunction forEachTermsNested(quad, cb, keys = []) {\n    if (quad.subject.termType === 'Quad') {\n        forEachTermsNested(quad.subject, cb, [...keys, 'subject']);\n    }\n    else {\n        cb(quad.subject, [...keys, 'subject']);\n    }\n    if (quad.predicate.termType === 'Quad') {\n        forEachTermsNested(quad.predicate, cb, [...keys, 'predicate']);\n    }\n    else {\n        cb(quad.predicate, [...keys, 'predicate']);\n    }\n    if (quad.object.termType === 'Quad') {\n        forEachTermsNested(quad.object, cb, [...keys, 'object']);\n    }\n    else {\n        cb(quad.object, [...keys, 'object']);\n    }\n    if (quad.graph.termType === 'Quad') {\n        forEachTermsNested(quad.graph, cb, [...keys, 'graph']);\n    }\n    else {\n        cb(quad.graph, [...keys, 'graph']);\n    }\n}\n/**\n * Get all terms in the given quad that return true on the given filter function.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName) => boolean} filter A filter callback.\n * @return {Term[]} The list of matching terms.\n */\nfunction filterTerms(quad, filter) {\n    const terms = [];\n    if (filter(quad.subject, 'subject')) {\n        terms.push(quad.subject);\n    }\n    if (filter(quad.predicate, 'predicate')) {\n        terms.push(quad.predicate);\n    }\n    if (filter(quad.object, 'object')) {\n        terms.push(quad.object);\n    }\n    if (filter(quad.graph, 'graph')) {\n        terms.push(quad.graph);\n    }\n    return terms;\n}\n/**\n * Get all terms in the given quad that return true on the given filter function, while recursing into quoted triples.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName) => boolean} filter A filter callback.\n * @param QuadTermName[] keys The current key path.\n * @return {Term[]} The list of matching terms.\n */\nfunction filterTermsNested(quad, filter, keys = []) {\n    let terms = [];\n    if (quad.subject.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.subject, filter, [...keys, 'subject'])];\n    }\n    else {\n        if (filter(quad.subject, [...keys, 'subject'])) {\n            terms.push(quad.subject);\n        }\n    }\n    if (quad.predicate.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.predicate, filter, [...keys, 'predicate'])];\n    }\n    else {\n        if (filter(quad.predicate, [...keys, 'predicate'])) {\n            terms.push(quad.predicate);\n        }\n    }\n    if (quad.object.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.object, filter, [...keys, 'object'])];\n    }\n    else {\n        if (filter(quad.object, [...keys, 'object'])) {\n            terms.push(quad.object);\n        }\n    }\n    if (quad.graph.termType === 'Quad') {\n        terms = [...terms, ...filterTermsNested(quad.graph, filter, [...keys, 'graph'])];\n    }\n    else {\n        if (filter(quad.graph, [...keys, 'graph'])) {\n            terms.push(quad.graph);\n        }\n    }\n    return terms;\n}\n/**\n * Get all quad term names in the given quad that return true on the given filter function.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName, all: INamedTerm[]) => boolean} filter A filter callback.\n * @return {QuadTermName[]} The list of matching quad term names.\n */\nfunction filterQuadTermNames(quad, filter) {\n    const names = [];\n    if (filter(quad.subject, 'subject')) {\n        names.push('subject');\n    }\n    if (filter(quad.predicate, 'predicate')) {\n        names.push('predicate');\n    }\n    if (filter(quad.object, 'object')) {\n        names.push('object');\n    }\n    if (filter(quad.graph, 'graph')) {\n        names.push('graph');\n    }\n    return names;\n}\n/**\n * Get all quad term names in the given quad that return true on the given filter function, while recursing into quoted triples.\n * @param {BaseQuad} quad A quad.\n * @param {(value: Term, key: QuadTermName, all: INamedTerm[]) => boolean} filter A filter callback.\n * @param QuadTermName[] keys The current key path.\n * @return {QuadTermName[]} The list of matching quad term names.\n */\nfunction filterQuadTermNamesNested(quad, filter, keys = []) {\n    let names = [];\n    const keysS = [...keys, 'subject'];\n    if (quad.subject.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.subject, filter, keysS)];\n    }\n    else {\n        if (filter(quad.subject, keysS)) {\n            names.push(keysS);\n        }\n    }\n    const keysP = [...keys, 'predicate'];\n    if (quad.predicate.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.predicate, filter, keysP)];\n    }\n    else {\n        if (filter(quad.predicate, keysP)) {\n            names.push(keysP);\n        }\n    }\n    const keysO = [...keys, 'object'];\n    if (quad.object.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.object, filter, keysO)];\n    }\n    else {\n        if (filter(quad.object, keysO)) {\n            names.push(keysO);\n        }\n    }\n    const keysG = [...keys, 'graph'];\n    if (quad.graph.termType === 'Quad') {\n        names = [...names, ...filterQuadTermNamesNested(quad.graph, filter, keysG)];\n    }\n    else {\n        if (filter(quad.graph, keysG)) {\n            names.push(keysG);\n        }\n    }\n    return names;\n}\n/**\n * Map all terms of a quad.\n * @param {Quad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName) => Term} mapper A mapper function.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @return {Quad} A new RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction mapTerms(quad, mapper, dataFactory) {\n    return (dataFactory || DF).quad(mapper(quad.subject, 'subject'), mapper(quad.predicate, 'predicate'), mapper(quad.object, 'object'), mapper(quad.graph, 'graph'));\n}\n/**\n * Map all terms of a quad, while recursing into quoted triples.\n * @param {Quad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName) => Term} mapper A mapper function.\n * @param {RDF.DataFactory} dataFactory A custom data factory to create quads.\n * @param QuadTermName[] keys The current key path.\n * @return {Quad} A new RDFJS quad.\n * @template Q The type of quad, defaults to RDF.Quad.\n */\nfunction mapTermsNested(quad, mapper, dataFactory, keys = []) {\n    return (dataFactory || DF).quad(quad.subject.termType === 'Quad' ?\n        mapTermsNested(quad.subject, mapper, dataFactory, [...keys, 'subject']) :\n        mapper(quad.subject, [...keys, 'subject']), quad.predicate.termType === 'Quad' ?\n        mapTermsNested(quad.predicate, mapper, dataFactory, [...keys, 'predicate']) :\n        mapper(quad.predicate, [...keys, 'predicate']), quad.object.termType === 'Quad' ?\n        mapTermsNested(quad.object, mapper, dataFactory, [...keys, 'object']) :\n        mapper(quad.object, [...keys, 'object']), quad.graph.termType === 'Quad' ?\n        mapTermsNested(quad.graph, mapper, dataFactory, [...keys, 'graph']) :\n        mapper(quad.graph, [...keys, 'graph']));\n}\n/**\n * Reduce all terms of a quad.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(previousValue: U, currentValue: Term, key: QuadTermName) => U} reducer A reduce function.\n * @param {U} initialValue The initial value.\n * @return {U} The final value.\n */\nfunction reduceTerms(quad, reducer, initialValue) {\n    let value = initialValue;\n    value = reducer(value, quad.subject, 'subject');\n    value = reducer(value, quad.predicate, 'predicate');\n    value = reducer(value, quad.object, 'object');\n    return reducer(value, quad.graph, 'graph');\n}\n/**\n * Reduce all terms of a quad, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(previousValue: U, currentValue: Term, key: QuadTermName) => U} reducer A reduce function.\n * @param {U} initialValue The initial value.\n * @param QuadTermName[] keys The current key path.\n * @return {U} The final value.\n */\nfunction reduceTermsNested(quad, reducer, initialValue, keys = []) {\n    let value = initialValue;\n    if (quad.subject.termType === 'Quad') {\n        value = reduceTermsNested(quad.subject, reducer, value, [...keys, 'subject']);\n    }\n    else {\n        value = reducer(value, quad.subject, [...keys, 'subject']);\n    }\n    if (quad.predicate.termType === 'Quad') {\n        value = reduceTermsNested(quad.predicate, reducer, value, [...keys, 'predicate']);\n    }\n    else {\n        value = reducer(value, quad.predicate, [...keys, 'predicate']);\n    }\n    if (quad.object.termType === 'Quad') {\n        value = reduceTermsNested(quad.object, reducer, value, [...keys, 'object']);\n    }\n    else {\n        value = reducer(value, quad.object, [...keys, 'object']);\n    }\n    if (quad.graph.termType === 'Quad') {\n        value = reduceTermsNested(quad.graph, reducer, value, [...keys, 'graph']);\n    }\n    else {\n        value = reducer(value, quad.graph, [...keys, 'graph']);\n    }\n    return value;\n}\n/**\n * Determines whether all terms satisfy the specified test.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @return {boolean} If all terms satisfy the specified test.\n */\nfunction everyTerms(quad, checker) {\n    return checker(quad.subject, 'subject')\n        && checker(quad.predicate, 'predicate')\n        && checker(quad.object, 'object')\n        && checker(quad.graph, 'graph');\n}\n/**\n * Determines whether all terms satisfy the specified test, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @param QuadTermName[] keys The current key path.\n * @return {boolean} If all terms satisfy the specified test.\n */\nfunction everyTermsNested(quad, checker, keys = []) {\n    return (quad.subject.termType === 'Quad' ?\n        everyTermsNested(quad.subject, checker, [...keys, 'subject']) :\n        checker(quad.subject, [...keys, 'subject']))\n        && (quad.predicate.termType === 'Quad' ?\n            everyTermsNested(quad.predicate, checker, [...keys, 'predicate']) :\n            checker(quad.predicate, [...keys, 'predicate']))\n        && (quad.object.termType === 'Quad' ?\n            everyTermsNested(quad.object, checker, [...keys, 'object']) :\n            checker(quad.object, [...keys, 'object']))\n        && (quad.graph.termType === 'Quad' ?\n            everyTermsNested(quad.graph, checker, [...keys, 'graph']) :\n            checker(quad.graph, [...keys, 'graph']));\n}\n/**\n * Determines whether at least one term satisfies the specified test.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @return {boolean} If at least one term satisfies the specified test.\n */\nfunction someTerms(quad, checker) {\n    return checker(quad.subject, 'subject')\n        || checker(quad.predicate, 'predicate')\n        || checker(quad.object, 'object')\n        || checker(quad.graph, 'graph');\n}\n/**\n * Determines whether at least one term satisfies the specified test, while recursing into quoted triples.\n * @param {BaseQuad} quad An RDFJS quad.\n * @param {(value: Term, key: QuadTermName} checker A checker function.\n * @param QuadTermName[] keys The current key path.\n * @return {boolean} If at least one term satisfies the specified test.\n */\nfunction someTermsNested(quad, checker, keys = []) {\n    return (quad.subject.termType === 'Quad' ?\n        someTermsNested(quad.subject, checker, [...keys, 'subject']) :\n        checker(quad.subject, [...keys, 'subject']))\n        || (quad.predicate.termType === 'Quad' ?\n            someTermsNested(quad.predicate, checker, [...keys, 'predicate']) :\n            checker(quad.predicate, [...keys, 'predicate']))\n        || (quad.object.termType === 'Quad' ?\n            someTermsNested(quad.object, checker, [...keys, 'object']) :\n            checker(quad.object, [...keys, 'object']))\n        || (quad.graph.termType === 'Quad' ?\n            someTermsNested(quad.graph, checker, [...keys, 'graph']) :\n            checker(quad.graph, [...keys, 'graph']));\n}\n/**\n * Get the nested value inside a quoted triple by the given path of quad keys.\n * @param term A term, that can be a quoted triple.\n * @param keys A path of quad term names.\n */\nfunction getValueNestedPath(term, keys) {\n    if (keys.length === 0) {\n        return term;\n    }\n    if (term.termType === 'Quad') {\n        return getValueNestedPath(term[keys[0]], keys.slice(1));\n    }\n    throw new Error(`Tried to get ${keys[0]} from term of type ${term.termType}`);\n}\n/**\n * Check if the given terms match.\n *\n * At least one of the following must be true:\n * * Term B is undefined.\n * * Term B is a variable.\n * * Term A and B are quads, and return true for `matchPatternComplete`.\n * * Quad term and term are equal (`termB.equals(termA)` return true)\n *\n * @param termA A term.\n * @param termB An optional term.\n */\nfunction matchTerm(termA, termB) {\n    return !termB\n        || termB.termType === 'Variable'\n        || (termB.termType === 'Quad' && termA.termType === 'Quad' && matchPatternComplete(termA, termB))\n        || termB.equals(termA);\n}\n/**\n * Check if the given quad matches with the given quad terms.\n *\n * Each term must match at least one of the following:\n * * Term is undefined.\n * * Term is a variable.\n * * Quad term and term are both quads, and return true for `matchPatternComplete`.\n * * Quad term and term are equal (`quadTerm.equals(term)` return true)\n *\n * @param {BaseQuad} quad A quad to match with (can not contain variables).\n * @param {Term} subject An optional subject.\n * @param {Term} predicate An optional predicate.\n * @param {Term} object An optional object.\n * @param {Term} graph An optional graph.\n * @return {boolean} If the quad matches with the quad terms.\n */\nfunction matchPattern(quad, subject, predicate, object, graph) {\n    return matchTerm(quad.subject, subject)\n        && matchTerm(quad.predicate, predicate)\n        && matchTerm(quad.object, object)\n        && matchTerm(quad.graph, graph);\n}\n/**\n * Check if the first quad matches with all terms from the second quad.\n *\n * Each term must match at least one of the following:\n * * Quad2 term is a variable.\n * * Quad1 term and Quad2 term are equal (`term1.equals(term2)` return true)\n *\n * @param {BaseQuad} quad A quad (can not contain variables).\n * @param {BaseQuad} pattern A quad pattern (can contain variables).\n * @return {boolean} If the quad terms match.\n */\nfunction matchPatternComplete(quad, pattern) {\n    return matchPattern(quad, pattern.subject, pattern.predicate, pattern.object, pattern.graph);\n}\nfunction matchPatternMappings(quad, pattern, opt = {}) {\n    const map = {};\n    function match(_pattern, _quad) {\n        return everyTerms(_pattern, (t1, key) => {\n            var _a, _b;\n            const t2 = _quad[key];\n            switch (t1.termType) {\n                case 'Variable':\n                    return (opt.skipVarMapping && t2.termType === 'Variable')\n                        || ((_b = (_a = map[t1.value]) === null || _a === void 0 ? void 0 : _a.equals(t2)) !== null && _b !== void 0 ? _b : (map[t1.value] = t2, true));\n                case 'Quad':\n                    return t2.termType === 'Quad' && match(t1, t2);\n                default:\n                    return t1.equals(t2);\n            }\n        });\n    }\n    return match(pattern, quad) && (opt.returnMappings ? map : true);\n}\n//# sourceMappingURL=QuadTermUtil.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TERM_TYPES = void 0;\nexports.uniqTerms = uniqTerms;\nexports.getTermsOfType = getTermsOfType;\nexports.getNamedNodes = getNamedNodes;\nexports.getBlankNodes = getBlankNodes;\nexports.getLiterals = getLiterals;\nexports.getVariables = getVariables;\nexports.getDefaultGraphs = getDefaultGraphs;\nexports.getQuads = getQuads;\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * All known term types.\n * @see RDF.Term\n * @type {[string , string , string , string , string, string]}\n */\nexports.TERM_TYPES = ['NamedNode', 'BlankNode', 'Literal', 'Variable', 'DefaultGraph', 'Quad'];\n/*\n * Utility methods for handling RDFJS terms.\n */\n/**\n * Create an array of unique terms from the given array.\n * @param {T[]} terms An array of RDFJS terms.\n * @return {T[]} A new array of unique RDFJS terms.\n */\nfunction uniqTerms(terms) {\n    const hash = {};\n    return terms.filter(term => {\n        const termString = (0, rdf_string_1.termToString)(term);\n        return !(termString in hash) && (hash[termString] = true);\n    });\n}\n/**\n * Find all terms of the given type in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @param {\"NamedNode\" | \"BlankNode\" | \"Literal\" | \"Variable\" | \"DefaultGraph\" | \"Quad\"} termType A term type.\n * @return {Term[]} A new array with elements from the given array only containing elements of the given type.\n */\nfunction getTermsOfType(terms, termType) {\n    return terms.filter((term) => term.termType === termType);\n}\n/**\n * Find all named nodes in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {NamedNode[]} A new array with elements from the given array only containing named nodes.\n */\nfunction getNamedNodes(terms) {\n    return getTermsOfType(terms, 'NamedNode');\n}\n/**\n * Find all blank nodes in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {BlankNode[]} A new array with elements from the given array only containing blank nodes.\n */\nfunction getBlankNodes(terms) {\n    return getTermsOfType(terms, 'BlankNode');\n}\n/**\n * Find all literals in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {Literal[]} A new array with elements from the given array only containing literals.\n */\nfunction getLiterals(terms) {\n    return getTermsOfType(terms, 'Literal');\n}\n/**\n * Find all variables in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {Variable[]} A new array with elements from the given array only containing variables.\n */\nfunction getVariables(terms) {\n    return getTermsOfType(terms, 'Variable');\n}\n/**\n * Find all default graphs in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {DefaultGraph[]} A new array with elements from the given array only containing default graphs.\n */\nfunction getDefaultGraphs(terms) {\n    return getTermsOfType(terms, 'DefaultGraph');\n}\n/**\n * Find all quads in the given array.\n * @param {Term[]} terms An array of RDFJS terms.\n * @return {BaseQuad[]} A new array with elements from the given array only containing quads.\n */\nfunction getQuads(terms) {\n    return getTermsOfType(terms, 'Quad');\n}\n//# sourceMappingURL=TermUtil.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/QuadTermUtil\"), exports);\n__exportStar(require(\"./lib/TermUtil\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PendingStreamsIndex = void 0;\nconst rdf_string_1 = require(\"rdf-string\");\nconst rdf_terms_1 = require(\"rdf-terms\");\n/**\n * A PendingStreamsIndex stores pending streams indexed by the quad pattern they have been created for.\n */\nclass PendingStreamsIndex {\n    constructor() {\n        this.indexedStreams = new Map();\n        this.allStreams = [];\n    }\n    termToString(term) {\n        return term && term.termType !== 'Variable' ? (0, rdf_string_1.termToString)(term) : PendingStreamsIndex.ID_VARIABLE;\n    }\n    /**\n     * Add a new pending stream for the given quad pattern.\n     * @param pendingStream A pending stream.\n     * @param subject A term.\n     * @param predicate A term.\n     * @param object A term.\n     * @param graph A term.\n     */\n    addPatternListener(pendingStream, subject, predicate, object, graph) {\n        // Append to list of pendingStreams\n        this.allStreams.push(pendingStream);\n        // Append to index of pendingStreams\n        const key = `${this.termToString(subject)}${PendingStreamsIndex.ID_SEPARATOR}${this.termToString(predicate)}${PendingStreamsIndex.ID_SEPARATOR}${this.termToString(object)}${PendingStreamsIndex.ID_SEPARATOR}${this.termToString(graph)}`;\n        let existingListeners = this.indexedStreams.get(key);\n        if (!existingListeners) {\n            existingListeners = [];\n            this.indexedStreams.set(key, existingListeners);\n        }\n        existingListeners.push(pendingStream);\n    }\n    /**\n     * Find all the pending streams from which their quad pattern match the given quad.\n     * @param quad The quad to match patterns to.\n     */\n    getPendingStreamsForQuad(quad) {\n        // Determine the combinations of quad patterns to look up\n        let keys = [(0, rdf_terms_1.getTerms)(quad).map(term => (0, rdf_string_1.termToString)(term))];\n        for (let i = 0; i < rdf_terms_1.QUAD_TERM_NAMES.length; i++) {\n            const keysOld = keys;\n            keys = [];\n            for (const key of keysOld) {\n                keys.push(key);\n                const keyModified = [...key];\n                keyModified[i] = PendingStreamsIndex.ID_VARIABLE;\n                keys.push(keyModified);\n            }\n        }\n        // Fetch the pendingStreams for the quad pattern combinations\n        const pendingStreams = [];\n        for (const key of keys) {\n            const found = this.indexedStreams.get(key.join(PendingStreamsIndex.ID_SEPARATOR));\n            if (found) {\n                pendingStreams.push(...found);\n            }\n        }\n        return pendingStreams;\n    }\n}\nPendingStreamsIndex.ID_VARIABLE = '?';\nPendingStreamsIndex.ID_SEPARATOR = ':';\nexports.PendingStreamsIndex = PendingStreamsIndex;\n//# sourceMappingURL=PendingStreamsIndex.js.map","\"use strict\";\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n    var m = o[Symbol.asyncIterator], i;\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n    function fulfill(value) { resume(\"next\", value); }\n    function reject(value) { resume(\"throw\", value); }\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingStore = void 0;\nconst n3_1 = require(\"n3\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst PendingStreamsIndex_1 = require(\"./PendingStreamsIndex\");\n/**\n * A StreamingStore allows data lookup and insertion to happen in parallel.\n * Concretely, this means that `match()` calls happening before `import()` calls, will still consider those triples that\n * are inserted later, which is done by keeping the response streams of `match()` open.\n * Only when the `end()` method is invoked, all response streams will close, and the StreamingStore will be considered\n * immutable.\n *\n * WARNING: `end()` MUST be called at some point, otherwise all `match` streams will remain unended.\n */\nclass StreamingStore {\n    constructor(store = new n3_1.Store()) {\n        this.pendingStreams = new PendingStreamsIndex_1.PendingStreamsIndex();\n        this.ended = false;\n        this.listeners = [];\n        this.store = store;\n    }\n    addEndListener(listener) {\n        this.listeners.push(listener);\n    }\n    emitEndEvent() {\n        for (const listener of this.listeners) {\n            listener();\n        }\n    }\n    hasEnded() {\n        return this.ended;\n    }\n    /**\n     * Mark this store as ended.\n     *\n     * This will make sure that all running and future `match` calls will end,\n     * and all next `import` calls to this store will throw an error.\n     * It will run all the listeners added with `addEndListener`.\n     */\n    end() {\n        this.ended = true;\n        // Mark all pendingStreams as ended.\n        for (const pendingStream of this.pendingStreams.allStreams) {\n            pendingStream.push(null);\n        }\n        this.emitEndEvent();\n    }\n    importToListeners(stream) {\n        stream.on('data', (quad) => {\n            if (!this.ended && !this.store.countQuads(quad.subject, quad.predicate, quad.object, quad.graph)) {\n                for (const pendingStream of this.pendingStreams.getPendingStreamsForQuad(quad)) {\n                    /**\n                     * The pendingStream emits 'quad' events even before it is initialized.\n                     * This allows us to detect when matching quads are added to the store,\n                     * without having to consume the stream returned by the `match` method.\n                     */\n                    pendingStream.emit('quad', quad);\n                    if (pendingStream.isInitialized) {\n                        pendingStream.push(quad);\n                    }\n                }\n            }\n        });\n    }\n    static concatStreams(readables) {\n        return __asyncGenerator(this, arguments, function* concatStreams_1() {\n            var _a, e_1, _b, _c;\n            for (const readable of readables) {\n                try {\n                    for (var _d = true, readable_1 = (e_1 = void 0, __asyncValues(readable)), readable_1_1; readable_1_1 = yield __await(readable_1.next()), _a = readable_1_1.done, !_a;) {\n                        _c = readable_1_1.value;\n                        _d = false;\n                        try {\n                            const chunk = _c;\n                            yield yield __await(chunk);\n                        }\n                        finally {\n                            _d = true;\n                        }\n                    }\n                }\n                catch (e_1_1) { e_1 = { error: e_1_1 }; }\n                finally {\n                    try {\n                        if (!_d && !_a && (_b = readable_1.return)) yield __await(_b.call(readable_1));\n                    }\n                    finally { if (e_1) throw e_1.error; }\n                }\n            }\n        });\n    }\n    import(stream) {\n        if (this.ended) {\n            throw new Error('Attempted to import into an ended StreamingStore');\n        }\n        this.importToListeners(stream);\n        return this.store.import(stream);\n    }\n    match(subject, predicate, object, graph) {\n        const storeResult = this.store.match(subject, predicate, object, graph);\n        let stream = storeResult;\n        // If the store hasn't ended yet, also create a new pendingStream\n        if (!this.ended) {\n            // The new pendingStream remains open, until the store is ended.\n            const pendingStream = new readable_stream_1.PassThrough({ objectMode: true });\n            this.pendingStreams.addPatternListener(pendingStream, subject, predicate, object, graph);\n            stream = readable_stream_1.Readable.from(StreamingStore.concatStreams([storeResult, pendingStream]));\n            pendingStream.on('quad', quad => {\n                stream.emit('quad', quad);\n            });\n            stream._pipeSource = storeResult;\n            // This is an ugly hack to annotate pendingStream with the isInitialized once the store stream started being read.\n            // This is necessary to avoid duplicate quads cases where match() is called but not yet read, an import is done,\n            // and only then the match() stream is read.\n            // eslint-disable-next-line @typescript-eslint/unbound-method\n            const readOld = storeResult._read;\n            storeResult._read = (size) => {\n                pendingStream.isInitialized = true;\n                readOld.call(storeResult, size);\n            };\n        }\n        return stream;\n    }\n    /**\n     * The internal store with all imported quads.\n     */\n    getStore() {\n        return this.store;\n    }\n}\nexports.StreamingStore = StreamingStore;\n//# sourceMappingURL=StreamingStore.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./lib/PendingStreamsIndex\"), exports);\n__exportStar(require(\"./lib/StreamingStore\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamingStoreMetadata = void 0;\nconst utils_iterator_1 = require(\"@comunica/utils-iterator\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst rdf_streaming_store_1 = require(\"rdf-streaming-store\");\n/**\n * A StreamingStore that returns an AsyncIterator with a valid MetadataQuads property.\n */\nclass StreamingStoreMetadata extends rdf_streaming_store_1.StreamingStore {\n    constructor(store, metadataAccumulator) {\n        super(store);\n        this.started = false;\n        this.containedSources = new Set();\n        this.runningIterators = new Set();\n        this.iteratorCreatedListeners = new Set();\n        this.baseMetadata = {\n            state: new utils_metadata_1.MetadataValidationState(),\n            cardinality: { type: 'exact', value: 0 },\n            variables: [],\n        };\n        this.metadataAccumulator = metadataAccumulator;\n    }\n    import(stream) {\n        if (!this.ended) {\n            super.import(stream);\n        }\n        return stream;\n    }\n    hasRunningIterators() {\n        return this.runningIterators.size > 0;\n    }\n    match(subject, predicate, object, graph) {\n        // Wrap the raw stream in an AsyncIterator\n        const rawStream = super.match(subject, predicate, object, graph);\n        const iterator = new utils_iterator_1.ClosableTransformIterator(rawStream, {\n            autoStart: false,\n            onClose: () => {\n                // Running iterators are deleted once closed or destroyed\n                this.runningIterators.delete(iterator);\n            },\n        });\n        // Expose the metadata property containing the cardinality\n        let count = this.getStore().countQuads(subject, predicate, object, graph);\n        const metadata = {\n            state: new utils_metadata_1.MetadataValidationState(),\n            cardinality: {\n                type: 'estimate',\n                value: count,\n            },\n        };\n        iterator.setProperty('metadata', metadata);\n        iterator.setProperty('lastCount', count);\n        // Every time a new quad is pushed into the iterator, update the metadata\n        rawStream.on('quad', () => {\n            iterator.setProperty('lastCount', ++count);\n            this.updateMetadataState(iterator, count);\n        });\n        // Store all running iterators until they close or are destroyed\n        this.runningIterators.add(iterator);\n        // Invoke creation listeners\n        for (const listener of this.iteratorCreatedListeners) {\n            listener();\n        }\n        return iterator;\n    }\n    setBaseMetadata(metadata, updateStates) {\n        this.baseMetadata = { ...metadata };\n        this.baseMetadata.cardinality = { type: 'exact', value: 0 };\n        if (updateStates) {\n            for (const iterator of this.runningIterators) {\n                const count = iterator.getProperty('lastCount');\n                this.updateMetadataState(iterator, count);\n            }\n        }\n    }\n    updateMetadataState(iterator, count) {\n        // Append the given cardinality to the base metadata\n        const metadataNew = {\n            state: new utils_metadata_1.MetadataValidationState(),\n            cardinality: {\n                type: 'estimate',\n                value: count,\n            },\n            variables: [],\n        };\n        this.metadataAccumulator(this.baseMetadata, metadataNew)\n            .then((accumulatedMetadata) => {\n            accumulatedMetadata.state = new utils_metadata_1.MetadataValidationState();\n            // Set the new metadata, and invalidate the previous state\n            const metadataToInvalidate = iterator.getProperty('metadata');\n            iterator.setProperty('metadata', accumulatedMetadata);\n            metadataToInvalidate?.state.invalidate();\n        })\n            .catch(() => {\n            // Void errors\n        });\n    }\n    addIteratorCreatedListener(listener) {\n        this.iteratorCreatedListeners.add(listener);\n    }\n    removeIteratorCreatedListener(listener) {\n        this.iteratorCreatedListeners.delete(listener);\n    }\n}\nexports.StreamingStoreMetadata = StreamingStoreMetadata;\n//# sourceMappingURL=StreamingStoreMetadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuerySourceHypermedia = void 0;\nconst actor_query_source_identify_rdfjs_1 = require(\"@comunica/actor-query-source-identify-rdfjs\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst lru_cache_1 = require(\"lru-cache\");\nconst readable_stream_1 = require(\"readable-stream\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\nconst MediatedLinkedRdfSourcesAsyncRdfIterator_1 = require(\"./MediatedLinkedRdfSourcesAsyncRdfIterator\");\nconst StreamingStoreMetadata_1 = require(\"./StreamingStoreMetadata\");\nclass QuerySourceHypermedia {\n    constructor(cacheSize, firstUrl, forceSourceType, maxIterators, aggregateStore, mediators, logWarning, dataFactory, bindingsFactory) {\n        this.referenceValue = firstUrl;\n        this.cacheSize = cacheSize;\n        this.firstUrl = firstUrl;\n        this.forceSourceType = forceSourceType;\n        this.maxIterators = maxIterators;\n        this.mediators = mediators;\n        this.aggregateStore = aggregateStore;\n        this.logWarning = logWarning;\n        this.dataFactory = dataFactory;\n        this.bindingsFactory = bindingsFactory;\n        this.sourcesState = new lru_cache_1.LRUCache({ max: this.cacheSize });\n    }\n    async getSelectorShape(context) {\n        const source = await this.getSourceCached({ url: this.firstUrl }, {}, context, this.getAggregateStore(context));\n        return source.source.getSelectorShape(context);\n    }\n    queryBindings(operation, context, options) {\n        // Optimized match with aggregated store if enabled and started.\n        const aggregatedStore = this.getAggregateStore(context);\n        if (aggregatedStore && operation.type === 'pattern' && aggregatedStore.started) {\n            return new actor_query_source_identify_rdfjs_1.QuerySourceRdfJs(aggregatedStore, context.getSafe(context_entries_1.KeysInitQuery.dataFactory), this.bindingsFactory).queryBindings(operation, context);\n        }\n        // Initialize the sources state on first call\n        if (this.sourcesState.size === 0) {\n            this.getSourceCached({ url: this.firstUrl }, {}, context, aggregatedStore)\n                .catch(error => it.destroy(error));\n        }\n        const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const it = new MediatedLinkedRdfSourcesAsyncRdfIterator_1.MediatedLinkedRdfSourcesAsyncRdfIterator(this.cacheSize, operation, options, context, this.forceSourceType, this.firstUrl, this.maxIterators, (link, handledDatasets) => this.getSourceCached(link, handledDatasets, context, aggregatedStore), aggregatedStore, this.mediators.mediatorMetadataAccumulate, this.mediators.mediatorRdfResolveHypermediaLinks, this.mediators.mediatorRdfResolveHypermediaLinksQueue, dataFactory, algebraFactory);\n        if (aggregatedStore) {\n            aggregatedStore.started = true;\n            // Kickstart this iterator when derived iterators are created from the aggregatedStore,\n            // otherwise the traversal process will not start if this iterator is not the first one to be consumed.\n            const listener = () => it.kickstart();\n            aggregatedStore.addIteratorCreatedListener(listener);\n            it.on('end', () => aggregatedStore.removeIteratorCreatedListener(listener));\n        }\n        return it;\n    }\n    queryQuads(operation, context) {\n        return new asynciterator_1.TransformIterator(async () => {\n            const source = await this.getSourceCached({ url: this.firstUrl }, {}, context, this.getAggregateStore(context));\n            return source.source.queryQuads(operation, context);\n        });\n    }\n    async queryBoolean(operation, context) {\n        const source = await this.getSourceCached({ url: this.firstUrl }, {}, context, this.getAggregateStore(context));\n        return await source.source.queryBoolean(operation, context);\n    }\n    async queryVoid(operation, context) {\n        const source = await this.getSourceCached({ url: this.firstUrl }, {}, context, this.getAggregateStore(context));\n        return await source.source.queryVoid(operation, context);\n    }\n    /**\n     * Resolve a source for the given URL.\n     * @param link A source link.\n     * @param handledDatasets A hash of dataset identifiers that have already been handled.\n     * @param context The action context.\n     * @param aggregatedStore An optional aggregated store.\n     */\n    async getSource(link, handledDatasets, context, aggregatedStore) {\n        // Include context entries from link\n        if (link.context) {\n            context = context.merge(link.context);\n        }\n        // Get the RDF representation of the given document\n        let url = link.url;\n        let quads;\n        let metadata;\n        if (this.forceSourceType === 'sparql' && context.get(context_entries_1.KeysQueryOperation.querySources)?.length === 1) {\n            // Skip metadata extraction if we're querying over just a single SPARQL endpoint.\n            quads = new readable_stream_1.Readable();\n            quads.read = () => null;\n            ({ metadata } = await this.mediators.mediatorMetadataAccumulate.mediate({ context, mode: 'initialize' }));\n        }\n        else {\n            try {\n                const dereferenceRdfOutput = await this.mediators.mediatorDereferenceRdf\n                    .mediate({ context, url });\n                url = dereferenceRdfOutput.url;\n                // Determine the metadata\n                const rdfMetadataOutput = await this.mediators.mediatorMetadata.mediate({ context, url, quads: dereferenceRdfOutput.data, triples: dereferenceRdfOutput.metadata?.triples });\n                rdfMetadataOutput.data.on('error', () => {\n                    // Silence errors in the data stream,\n                    // as they will be emitted again in the metadata stream,\n                    // and will result in a promise rejection anyways.\n                    // If we don't do this, we end up with an unhandled error message\n                });\n                metadata = (await this.mediators.mediatorMetadataExtract.mediate({\n                    context,\n                    url,\n                    // The problem appears to be conflicting metadata keys here\n                    metadata: rdfMetadataOutput.metadata,\n                    headers: dereferenceRdfOutput.headers,\n                    requestTime: dereferenceRdfOutput.requestTime,\n                })).metadata;\n                quads = rdfMetadataOutput.data;\n                // Optionally filter the resulting data\n                if (link.transform) {\n                    quads = await link.transform(quads);\n                }\n            }\n            catch (error) {\n                // Make sure that dereference errors are only emitted once an actor really needs the read quads\n                // This allows SPARQL endpoints that error on service description fetching to still be source-forcible\n                quads = new readable_stream_1.Readable();\n                quads.read = () => {\n                    setTimeout(() => quads.emit('error', error));\n                    return null;\n                };\n                ({ metadata } = await this.mediators.mediatorMetadataAccumulate.mediate({ context, mode: 'initialize' }));\n                // Log as warning, because the quads above may not always be consumed (e.g. for SPARQL endpoints),\n                // so the user would not be notified of something going wrong otherwise.\n                this.logWarning(`Metadata extraction for ${url} failed: ${error.message}`);\n            }\n        }\n        // Aggregate all discovered quads into a store.\n        aggregatedStore?.setBaseMetadata(metadata, false);\n        aggregatedStore?.containedSources.add(link.url);\n        aggregatedStore?.import(quads);\n        // Determine the source\n        const { source, dataset } = await this.mediators.mediatorQuerySourceIdentifyHypermedia.mediate({\n            context,\n            forceSourceType: link.url === this.firstUrl ? this.forceSourceType : undefined,\n            handledDatasets,\n            metadata,\n            quads,\n            url,\n        });\n        if (dataset) {\n            // Mark the dataset as applied\n            // This is needed to make sure that things like QPF search forms are only applied once,\n            // and next page links are followed after that.\n            handledDatasets[dataset] = true;\n        }\n        return { link, source, metadata: metadata, handledDatasets };\n    }\n    /**\n     * Resolve a source for the given URL.\n     * This will first try to retrieve the source from cache.\n     * @param link A source ILink.\n     * @param handledDatasets A hash of dataset identifiers that have already been handled.\n     * @param context The action context.\n     * @param aggregatedStore An optional aggregated store.\n     */\n    getSourceCached(link, handledDatasets, context, aggregatedStore) {\n        let source = this.sourcesState.get(link.url);\n        if (source) {\n            return source;\n        }\n        source = this.getSource(link, handledDatasets, context, aggregatedStore);\n        if (link.url === this.firstUrl || aggregatedStore === undefined) {\n            this.sourcesState.set(link.url, source);\n        }\n        return source;\n    }\n    getAggregateStore(context) {\n        let aggregatedStore;\n        if (this.aggregateStore) {\n            const aggregatedStores = context\n                .get(context_entries_1.KeysQuerySourceIdentify.hypermediaSourcesAggregatedStores);\n            if (aggregatedStores) {\n                aggregatedStore = aggregatedStores.get(this.firstUrl);\n                if (!aggregatedStore) {\n                    aggregatedStore = new StreamingStoreMetadata_1.StreamingStoreMetadata(undefined, async (accumulatedMetadata, appendingMetadata) => (await this.mediators.mediatorMetadataAccumulate.mediate({\n                        mode: 'append',\n                        accumulatedMetadata,\n                        appendingMetadata,\n                        context,\n                    })).metadata);\n                    aggregatedStores.set(this.firstUrl, aggregatedStore);\n                }\n                return aggregatedStore;\n            }\n        }\n    }\n    toString() {\n        return `QuerySourceHypermedia(${this.firstUrl})`;\n    }\n}\nexports.QuerySourceHypermedia = QuerySourceHypermedia;\n//# sourceMappingURL=QuerySourceHypermedia.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQuerySourceIdentifyHypermedia = void 0;\nconst bus_query_source_identify_1 = require(\"@comunica/bus-query-source-identify\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst QuerySourceHypermedia_1 = require(\"./QuerySourceHypermedia\");\n/**\n * A comunica Hypermedia Query Source Identify Actor.\n */\nclass ActorQuerySourceIdentifyHypermedia extends bus_query_source_identify_1.ActorQuerySourceIdentify {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (typeof action.querySourceUnidentified.value !== 'string') {\n            return (0, core_1.failTest)(`${this.name} requires a single query source with a URL value to be present in the context.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        return {\n            querySource: {\n                source: new QuerySourceHypermedia_1.QuerySourceHypermedia(this.cacheSize, action.querySourceUnidentified.value, action.querySourceUnidentified.type, this.maxIterators, this.aggregateTraversalStore &&\n                    Boolean(action.querySourceUnidentified.context?.get(context_entries_1.KeysQuerySourceIdentify.traverse)), {\n                    mediatorMetadata: this.mediatorMetadata,\n                    mediatorMetadataExtract: this.mediatorMetadataExtract,\n                    mediatorMetadataAccumulate: this.mediatorMetadataAccumulate,\n                    mediatorDereferenceRdf: this.mediatorDereferenceRdf,\n                    mediatorQuerySourceIdentifyHypermedia: this.mediatorQuerySourceIdentifyHypermedia,\n                    mediatorRdfResolveHypermediaLinks: this.mediatorRdfResolveHypermediaLinks,\n                    mediatorRdfResolveHypermediaLinksQueue: this.mediatorRdfResolveHypermediaLinksQueue,\n                }, warningMessage => this.logWarn(action.context, warningMessage), dataFactory, await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, action.context, dataFactory)),\n                context: action.querySourceUnidentified.context ?? new core_1.ActionContext(),\n            },\n        };\n    }\n}\nexports.ActorQuerySourceIdentifyHypermedia = ActorQuerySourceIdentifyHypermedia;\n//# sourceMappingURL=ActorQuerySourceIdentifyHypermedia.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQuerySourceIdentifyHypermedia\"), exports);\n__exportStar(require(\"./QuerySourceHypermedia\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinNone = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_metadata_1 = require(\"@comunica/utils-metadata\");\nconst asynciterator_1 = require(\"asynciterator\");\n/**\n * A comunica None RDF Join Actor.\n */\nclass ActorRdfJoinNone extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'inner',\n            physicalName: 'none',\n            limitEntries: 0,\n        });\n    }\n    async test(action) {\n        // Allow joining of one or zero streams\n        if (action.entries.length > 0) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only join zero entries`);\n        }\n        return await this.getJoinCoefficients(action, undefined);\n    }\n    async getOutput(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, action.context, dataFactory);\n        return {\n            result: {\n                bindingsStream: new asynciterator_1.ArrayIterator([bindingsFactory.bindings()], { autoStart: false }),\n                metadata: () => Promise.resolve({\n                    state: new utils_metadata_1.MetadataValidationState(),\n                    cardinality: { type: 'exact', value: 1 },\n                    variables: [],\n                }),\n                type: 'bindings',\n            },\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        return (0, core_1.passTestWithSideData)({\n            iterations: 0,\n            persistedItems: 0,\n            blockingItems: 0,\n            requestTime: 0,\n        }, sideData);\n    }\n}\nexports.ActorRdfJoinNone = ActorRdfJoinNone;\n//# sourceMappingURL=ActorRdfJoinNone.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinNone\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinMultiBind = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Multi-way Bind RDF Join Actor.\n */\nclass ActorRdfJoinMultiBind extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'inner',\n            physicalName: 'bind',\n            canHandleUndefs: true,\n            isLeaf: false,\n        });\n    }\n    /**\n     * Create a new bindings stream that takes every binding of the base stream\n     * and binds it to the remaining patterns, evaluates those patterns, and emits all their bindings.\n     *\n     * @param bindOrder The order in which elements should be bound.\n     * @param baseStream The base stream.\n     * @param operations The operations to bind with each binding of the base stream.\n     * @param operationBinder A callback to retrieve the bindings stream of bound operations.\n     * @param optional If the original bindings should be emitted when the resulting bindings stream is empty.\n     * @return {BindingsStream}\n     */\n    static createBindStream(bindOrder, baseStream, operations, operationBinder, optional, algebraFactory, bindingsFactory) {\n        // Enable auto-start on sub-bindings during depth-first binding for best performance.\n        const autoStartSubBindings = bindOrder === 'depth-first';\n        // Create bindings function\n        const binder = (bindings) => {\n            // We don't bind the filter because filters are always handled last,\n            // and we need to avoid binding filters of sub-queries, which are to be handled first. (see spec test bind10)\n            const subOperations = operations.map(operation => (0, utils_query_operation_1.materializeOperation)(operation, bindings, algebraFactory, bindingsFactory, { bindFilter: true }));\n            const bindingsMerger = (subBindings) => subBindings.merge(bindings);\n            return new asynciterator_1.TransformIterator(async () => (await operationBinder(subOperations, bindings))\n                .transform({ map: bindingsMerger }), { maxBufferSize: 128, autoStart: autoStartSubBindings });\n        };\n        // Create an iterator that binds elements from the base stream in different orders\n        switch (bindOrder) {\n            case 'depth-first':\n                return new asynciterator_1.MultiTransformIterator(baseStream, { autoStart: false, multiTransform: binder, optional });\n            case 'breadth-first':\n                return new asynciterator_1.UnionIterator(baseStream.transform({\n                    map: binder,\n                    optional,\n                }), { autoStart: false });\n            default:\n                // eslint-disable-next-line ts/restrict-template-expressions\n                throw new Error(`Received request for unknown bind order: ${bindOrder}`);\n        }\n    }\n    async getOutput(action, sideData) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, action.context, dataFactory);\n        const entries = sideData.entriesSorted;\n        this.logDebug(action.context, 'First entry for Bind Join: ', () => ({\n            entry: entries[0].operation,\n            cardinality: entries[0].metadata.cardinality,\n            order: entries[0].metadata.order,\n            availableOrders: entries[0].metadata.availableOrders,\n        }));\n        // Close the non-smallest streams\n        for (const [i, element] of entries.entries()) {\n            if (i !== 0) {\n                element.output.bindingsStream.close();\n            }\n        }\n        // Take the stream with the lowest cardinality\n        const smallestStream = entries[0].output;\n        const remainingEntries = [...entries];\n        remainingEntries.splice(0, 1);\n        // Bind the remaining patterns for each binding in the stream\n        const subContext = action.context\n            .set(context_entries_1.KeysQueryOperation.joinLeftMetadata, entries[0].metadata)\n            .set(context_entries_1.KeysQueryOperation.joinRightMetadatas, remainingEntries.map(entry => entry.metadata));\n        const bindingsStream = ActorRdfJoinMultiBind.createBindStream(this.bindOrder, smallestStream.bindingsStream, remainingEntries.map(entry => entry.operation), async (operations, operationBindings) => {\n            // Send the materialized patterns to the mediator for recursive join evaluation.\n            const operation = operations.length === 1 ?\n                operations[0] :\n                // Flattening should only take place if none of the input operations have associated metadata\n                algebraFactory.createJoin(operations, operations.every(op => !op.metadata));\n            const output = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation, context: subContext?.set(context_entries_1.KeysQueryOperation.joinBindings, operationBindings) }));\n            return output.bindingsStream;\n        }, false, algebraFactory, bindingsFactory);\n        return {\n            result: {\n                type: 'bindings',\n                bindingsStream,\n                metadata: () => this.constructResultMetadata(entries, entries.map(entry => entry.metadata), action.context),\n            },\n            physicalPlanMetadata: {\n                bindIndex: sideData.entriesUnsorted.indexOf(entries[0]),\n                bindOperation: entries[0].operation,\n                bindOperationCardinality: entries[0].metadata.cardinality,\n                bindOrder: this.bindOrder,\n            },\n        };\n    }\n    canBindWithOperation(operation) {\n        let valid = true;\n        sparqlalgebrajs_1.Util.recurseOperation(operation, {\n            [sparqlalgebrajs_1.Algebra.types.EXTEND]() {\n                valid = false;\n                return false;\n            },\n            [sparqlalgebrajs_1.Algebra.types.GROUP]() {\n                valid = false;\n                return false;\n            },\n        });\n        return valid;\n    }\n    async getJoinCoefficients(action, sideData) {\n        let { metadatas } = sideData;\n        // Order the entries so we can pick the first one (usually the one with the lowest cardinality)\n        const entriesUnsorted = action.entries\n            .map((entry, i) => ({ ...entry, metadata: metadatas[i] }));\n        const entriesTest = await bus_rdf_join_1.ActorRdfJoin\n            .sortJoinEntries(this.mediatorJoinEntriesSort, entriesUnsorted, action.context);\n        if (entriesTest.isFailed()) {\n            return entriesTest;\n        }\n        const entriesSorted = entriesTest.get();\n        metadatas = entriesSorted.map(entry => entry.metadata);\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        // Determine first stream and remaining ones\n        const remainingEntries = [...entriesSorted];\n        const remainingRequestInitialTimes = [...requestInitialTimes];\n        const remainingRequestItemTimes = [...requestItemTimes];\n        remainingEntries.splice(0, 1);\n        remainingRequestInitialTimes.splice(0, 1);\n        remainingRequestItemTimes.splice(0, 1);\n        // Reject binding on some operation types\n        if (remainingEntries\n            .some(entry => !this.canBindWithOperation(entry.operation))) {\n            return (0, core_1.failTest)(`Actor ${this.name} can not bind on Extend and Group operations`);\n        }\n        // Reject binding on modified operations, since using the output directly would be significantly more efficient.\n        if (remainingEntries.some(entry => entry.operationModified)) {\n            return (0, core_1.failTest)(`Actor ${this.name} can not be used over remaining entries with modified operations`);\n        }\n        // Only run this actor if the smallest stream is significantly smaller than the largest stream.\n        // We must use Math.max, because the last metadata is not necessarily the biggest, but it's the least preferred.\n        // If join entries are produced locally, we increase the possibility of doing this bind join, as it's cheap.\n        const isRemoteAccess = requestItemTimes.some(time => time > 0);\n        if (metadatas[0].cardinality.value * this.minMaxCardinalityRatio / (isRemoteAccess ? 1 : 3) >\n            Math.max(...metadatas.map(metadata => metadata.cardinality.value))) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only run if the smallest stream is much smaller than largest stream`);\n        }\n        // Determine selectivities of smallest entry with all other entries\n        const selectivities = await Promise.all(remainingEntries\n            .map(async (entry) => (await this.mediatorJoinSelectivity.mediate({\n            entries: [entriesSorted[0], entry],\n            context: action.context,\n        })).selectivity * this.selectivityModifier));\n        // Determine coefficients for remaining entries\n        const cardinalityRemaining = remainingEntries\n            .map((entry, i) => entry.metadata.cardinality.value * selectivities[i])\n            .reduce((sum, element) => sum + element, 0);\n        const receiveInitialCostRemaining = remainingRequestInitialTimes\n            .reduce((sum, element) => sum + element, 0);\n        const receiveItemCostRemaining = remainingRequestItemTimes\n            .reduce((sum, element) => sum + element, 0);\n        return (0, core_1.passTestWithSideData)({\n            iterations: metadatas[0].cardinality.value * cardinalityRemaining,\n            persistedItems: 0,\n            blockingItems: 0,\n            requestTime: requestInitialTimes[0] +\n                metadatas[0].cardinality.value * (requestItemTimes[0] +\n                    receiveInitialCostRemaining +\n                    cardinalityRemaining * receiveItemCostRemaining),\n        }, { ...sideData, entriesUnsorted, entriesSorted });\n    }\n}\nexports.ActorRdfJoinMultiBind = ActorRdfJoinMultiBind;\n//# sourceMappingURL=ActorRdfJoinMultiBind.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinMultiBind\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinOptionalBind = void 0;\nconst actor_rdf_join_inner_multi_bind_1 = require(\"@comunica/actor-rdf-join-inner-multi-bind\");\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Optional Bind RDF Join Actor.\n */\nclass ActorRdfJoinOptionalBind extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'optional',\n            physicalName: 'bind',\n            limitEntries: 2,\n            canHandleUndefs: true,\n            isLeaf: false,\n            requiresVariableOverlap: true,\n        });\n    }\n    async getOutput(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, action.context, dataFactory);\n        // Close the right stream, since we don't need that one\n        action.entries[1].output.bindingsStream.close();\n        // Bind the right pattern for each binding in the stream\n        const subContext = action.context\n            .set(context_entries_1.KeysQueryOperation.joinLeftMetadata, await action.entries[0].output.metadata())\n            .set(context_entries_1.KeysQueryOperation.joinRightMetadatas, [await action.entries[1].output.metadata()]);\n        const bindingsStream = actor_rdf_join_inner_multi_bind_1.ActorRdfJoinMultiBind.createBindStream(this.bindOrder, action.entries[0].output.bindingsStream, [action.entries[1].operation], async (operations, operationBindings) => {\n            // Send the materialized patterns to the mediator for recursive join evaluation.\n            // Length of operations will always be 1\n            const operation = operations[0];\n            const output = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation, context: subContext?.set(context_entries_1.KeysQueryOperation.joinBindings, operationBindings) }));\n            return output.bindingsStream;\n        }, true, algebraFactory, bindingsFactory);\n        return {\n            result: {\n                type: 'bindings',\n                bindingsStream,\n                metadata: async () => await this.constructResultMetadata(action.entries, await bus_rdf_join_1.ActorRdfJoin.getMetadatas(action.entries), action.context, {}, true),\n            },\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        const { metadatas } = sideData;\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        // Reject binding on some operation types\n        if (action.entries[1].operation.type === sparqlalgebrajs_1.Algebra.types.EXTEND ||\n            action.entries[1].operation.type === sparqlalgebrajs_1.Algebra.types.GROUP) {\n            return (0, core_1.failTest)(`Actor ${this.name} can not bind on Extend and Group operations`);\n        }\n        // Determine selectivity of join\n        const selectivity = (await this.mediatorJoinSelectivity.mediate({\n            entries: action.entries,\n            context: action.context,\n        })).selectivity * this.selectivityModifier;\n        return (0, core_1.passTestWithSideData)({\n            iterations: metadatas[0].cardinality.value * metadatas[1].cardinality.value * selectivity,\n            persistedItems: 0,\n            blockingItems: 0,\n            requestTime: requestInitialTimes[0] +\n                metadatas[0].cardinality.value * (requestItemTimes[0] +\n                    requestInitialTimes[1] +\n                    selectivity * metadatas[1].cardinality.value * requestItemTimes[1]),\n        }, sideData);\n    }\n}\nexports.ActorRdfJoinOptionalBind = ActorRdfJoinOptionalBind;\n//# sourceMappingURL=ActorRdfJoinOptionalBind.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinOptionalBind\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorTermComparatorFactory = void 0;\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica actor for term-comparator-factory events.\n *\n * Actor types:\n * * Input:  IActionTermComparatorFactory: the Query Operation Mediator and Function Factory Mediator.\n * * Test:   <none>\n * * Output: IActorTermComparatorFactoryOutput: An object that can order RDF terms.\n *\n * @see IActionTermComparatorFactory\n * @see IActorTermComparatorFactoryOutput\n */\nclass ActorTermComparatorFactory extends core_1.Actor {\n    /**\n     * @param args -\n     *  \\ @defaultNested {<default_bus> a <cc:components/Bus.jsonld#Bus>} bus\n     *  \\ @defaultNested {Creation of term comparator failed} busFailMessage\n     */\n    constructor(args) {\n        super(args);\n        this.mediatorQueryOperation = args.mediatorQueryOperation;\n        this.mediatorFunctionFactory = args.mediatorFunctionFactory;\n        this.mediatorMergeBindingsContext = args.mediatorMergeBindingsContext;\n    }\n}\nexports.ActorTermComparatorFactory = ActorTermComparatorFactory;\n//# sourceMappingURL=ActorTermComparatorFactory.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorTermComparatorFactory\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TermComparatorExpressionEvaluator = void 0;\nclass TermComparatorExpressionEvaluator {\n    constructor(internalEvaluator, equalityFunction, lessThanFunction) {\n        this.internalEvaluator = internalEvaluator;\n        this.equalityFunction = equalityFunction;\n        this.lessThanFunction = lessThanFunction;\n        // SPARQL specifies that blankNode < namedNode < literal. Sparql star expands with < quads and we say < defaultGraph\n        this._TERM_ORDERING_PRIORITY = {\n            Variable: 0,\n            BlankNode: 1,\n            NamedNode: 2,\n            Literal: 3,\n            Quad: 4,\n            DefaultGraph: 5,\n        };\n    }\n    // Determine the relative numerical order of the two given terms.\n    // In accordance with https://www.w3.org/TR/sparql11-query/#modOrderBy\n    orderTypes(termA, termB) {\n        // Check if terms are the same by reference\n        if (termA === termB) {\n            return 0;\n        }\n        // We handle undefined that is lower than everything else.\n        if (termA === undefined) {\n            return -1;\n        }\n        if (termB === undefined) {\n            return 1;\n        }\n        //\n        if (termA.termType !== termB.termType) {\n            return this._TERM_ORDERING_PRIORITY[termA.termType] < this._TERM_ORDERING_PRIORITY[termB.termType] ? -1 : 1;\n        }\n        // Check exact term equality\n        if (termA.equals(termB)) {\n            return 0;\n        }\n        // Handle quoted triples\n        if (termA.termType === 'Quad' && termB.termType === 'Quad') {\n            const orderSubject = this.orderTypes(termA.subject, termB.subject);\n            if (orderSubject !== 0) {\n                return orderSubject;\n            }\n            const orderPredicate = this.orderTypes(termA.predicate, termB.predicate);\n            if (orderPredicate !== 0) {\n                return orderPredicate;\n            }\n            const orderObject = this.orderTypes(termA.object, termB.object);\n            if (orderObject !== 0) {\n                return orderObject;\n            }\n            return this.orderTypes(termA.graph, termB.graph);\n        }\n        // Handle literals\n        if (termA.termType === 'Literal') {\n            return this.orderLiteralTypes(termA, termB);\n        }\n        return this.comparePrimitives(termA.value, termB.value);\n    }\n    orderLiteralTypes(litA, litB) {\n        const myLitA = this.internalEvaluator.transformer.transformLiteral(litA);\n        const myLitB = this.internalEvaluator.transformer.transformLiteral(litB);\n        try {\n            if (this.equalityFunction.applyOnTerms([myLitA, myLitB], this.internalEvaluator)\n                .typedValue) {\n                return 0;\n            }\n            if (this.lessThanFunction.applyOnTerms([myLitA, myLitB], this.internalEvaluator)\n                .typedValue) {\n                return -1;\n            }\n            return 1;\n        }\n        catch {\n            // Fallback to string-based comparison\n            const compareType = this.comparePrimitives(myLitA.dataType, myLitB.dataType);\n            if (compareType !== 0) {\n                return compareType;\n            }\n            return this.comparePrimitives(myLitA.str(), myLitB.str());\n        }\n    }\n    comparePrimitives(valueA, valueB) {\n        return valueA === valueB ? 0 : (valueA < valueB ? -1 : 1);\n    }\n}\nexports.TermComparatorExpressionEvaluator = TermComparatorExpressionEvaluator;\n//# sourceMappingURL=TermComparatorExpressionEvaluator.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorTermComparatorFactoryExpressionEvaluator = void 0;\nconst InternalEvaluator_1 = require(\"@comunica/actor-expression-evaluator-factory-default/lib/InternalEvaluator\");\nconst bus_term_comparator_factory_1 = require(\"@comunica/bus-term-comparator-factory\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst Eval = require(\"@comunica/utils-expression-evaluator\");\nconst TermComparatorExpressionEvaluator_1 = require(\"./TermComparatorExpressionEvaluator\");\n/**\n * A comunica Expression Evaluator Based Term Comparator Factory Actor.\n */\nclass ActorTermComparatorFactoryExpressionEvaluator extends bus_term_comparator_factory_1.ActorTermComparatorFactory {\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    /**\n     * Context item superTypeProvider can be expected here\n     * @param context IActionTermComparatorFactory\n     * @param context.context IActionContext\n     */\n    async run({ context }) {\n        context = Eval.prepareEvaluatorActionContext(context);\n        return new TermComparatorExpressionEvaluator_1.TermComparatorExpressionEvaluator(new InternalEvaluator_1.InternalEvaluator(context, this.mediatorFunctionFactory, this.mediatorQueryOperation, await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, context.getSafe(context_entries_1.KeysInitQuery.dataFactory))), await this.mediatorFunctionFactory\n            .mediate({ functionName: Eval.SparqlOperator.EQUAL, context, requireTermExpression: true }), await this.mediatorFunctionFactory\n            .mediate({ functionName: Eval.SparqlOperator.LT, context, requireTermExpression: true }));\n    }\n}\nexports.ActorTermComparatorFactoryExpressionEvaluator = ActorTermComparatorFactoryExpressionEvaluator;\n//# sourceMappingURL=ActorTermComparatorFactoryExpressionEvaluator.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorTermComparatorFactoryExpressionEvaluator\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinMultiSmallestFilterBindings = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_bindings_factory_1 = require(\"@comunica/utils-bindings-factory\");\nconst utils_iterator_1 = require(\"@comunica/utils-iterator\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Inner Multi Smallest Filter Bindings RDF Join Actor.\n */\nclass ActorRdfJoinMultiSmallestFilterBindings extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'inner',\n            physicalName: 'multi-smallest-filter-bindings',\n            limitEntries: 2,\n            limitEntriesMin: true,\n            isLeaf: false,\n        });\n    }\n    /**\n     * Order the given join entries using the join-entries-sort bus.\n     * @param {IJoinEntryWithMetadata[]} entries An array of join entries.\n     * @param context The action context.\n     * @return {IJoinEntryWithMetadata[]} The sorted join entries.\n     */\n    async sortJoinEntries(entries, context) {\n        let { entries: entriesSorted } = await this.mediatorJoinEntriesSort.mediate({ entries, context });\n        // Prioritize entries with modified operations, so these are not re-executed\n        entriesSorted = entriesSorted.sort((entryLeft, entryRight) => {\n            if (entryLeft.operationModified && !entryRight.operationModified) {\n                return -1;\n            }\n            return 0;\n        });\n        const first = entriesSorted.splice(0, 1)[0];\n        // Let second entry first be prioritized for sharing as many variables with first as possible,\n        // then having the fewest variables,\n        // and then having the lowest cardinality.\n        let second;\n        let secondIndex = -1;\n        let secondSharedVariables = 0;\n        for (const [i, entry] of entriesSorted.entries()) {\n            const sharedVariables = first.metadata.variables\n                .filter(variableFirst => entry.metadata.variables\n                .some(variableSecond => variableFirst.variable.equals(variableSecond.variable))).length;\n            if (!second || (sharedVariables > secondSharedVariables ||\n                (sharedVariables === secondSharedVariables &&\n                    (entry.metadata.variables.length < second.metadata.variables.length ||\n                        (entry.metadata.variables.length === second.metadata.variables.length &&\n                            entry.metadata.cardinality.value < second.metadata.cardinality.value))))) {\n                second = entry;\n                secondIndex = i;\n                secondSharedVariables = sharedVariables;\n            }\n        }\n        if (secondSharedVariables === 0) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only join with common variables`);\n        }\n        const remaining = entriesSorted;\n        remaining.splice(secondIndex, 1);\n        return (0, core_1.passTest)({ first, second: second, remaining });\n    }\n    async getOutput(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        // Determine the two smallest streams by sorting (e.g. via cardinality)\n        const entriesUnsorted = await bus_rdf_join_1.ActorRdfJoin.getEntriesWithMetadatas([...action.entries]);\n        const { first, second: secondIn, remaining: remainingIn } = (await this.sortJoinEntries(entriesUnsorted, action.context)).getOrThrow();\n        // Clone first stream, because we will use it twice\n        const smallestStream1 = first.output.bindingsStream;\n        first.output.bindingsStream = smallestStream1.clone();\n        // Project the first stream on common variables, and filter out duplicates\n        // The common variables array is guaranteed to be non-empty, due to the way the test of this actor is implemented.\n        const commonVariables = first.metadata.variables\n            .filter(variableFirst => secondIn.metadata.variables\n            .some(variableSecond => variableFirst.variable.equals(variableSecond.variable)));\n        const hashes = {};\n        const smallestStream1Projected = smallestStream1.clone()\n            .map(binding => binding.filter((value, key) => commonVariables.some(commonVariable => commonVariable.variable.equals(key))))\n            .filter((binding) => {\n            const hash = (0, utils_bindings_factory_1.bindingsToString)(binding);\n            return !(hash in hashes) && (hashes[hash] = true);\n        });\n        // Slice the first stream into chunks according to the block size, so we avoid blocking too long.\n        const chunkedStreams = new utils_iterator_1.ChunkedIterator(smallestStream1Projected, this.blockSize, { autoStart: false });\n        // Push down bindings of first stream when querying for second stream\n        const sourceWrapper = (0, utils_query_operation_1.getOperationSource)(secondIn.operation);\n        const secondStream = new asynciterator_1.UnionIterator(chunkedStreams.map(chunk => sourceWrapper.source.queryBindings(secondIn.operation, sourceWrapper.context ? action.context.merge(sourceWrapper.context) : action.context, { filterBindings: { bindings: chunk, metadata: first.metadata } })));\n        const second = {\n            output: {\n                type: 'bindings',\n                bindingsStream: secondStream,\n                metadata: secondIn.output.metadata,\n            },\n            operation: secondIn.operation,\n            operationModified: true,\n        };\n        // Destroy the unused original second stream\n        secondIn.output.bindingsStream.destroy();\n        // Join the two selected streams\n        const joinedEntry = {\n            output: (0, utils_query_operation_1.getSafeBindings)(await this.mediatorJoin\n                .mediate({\n                type: action.type,\n                entries: [first, second],\n                context: action.context.set(context_entries_1.KeysRdfJoin.lastPhysicalJoin, this.physicalName),\n            })),\n            operation: algebraFactory.createJoin([first.operation, second.operation], false),\n            operationModified: true,\n        };\n        // And then join the result with the remaining streams\n        const remaining = remainingIn;\n        remaining.unshift(joinedEntry);\n        return {\n            result: await this.mediatorJoin.mediate({\n                type: action.type,\n                entries: remaining,\n                context: action.context,\n            }),\n            physicalPlanMetadata: {\n                firstIndex: entriesUnsorted.indexOf(first),\n                secondIndex: entriesUnsorted.indexOf(secondIn),\n            },\n        };\n    }\n    async getJoinCoefficients(action, sideData) {\n        let { metadatas } = sideData;\n        // Avoid infinite recursion\n        if (action.context.get(context_entries_1.KeysRdfJoin.lastPhysicalJoin) === this.physicalName) {\n            return (0, core_1.failTest)(`Actor ${this.name} can not be called recursively`);\n        }\n        metadatas = [...metadatas];\n        // Determine the two smallest streams by sorting (e.g. via cardinality)\n        const sortedResult = await this.sortJoinEntries(action.entries\n            .map((entry, i) => ({ ...entry, metadata: metadatas[i] })), action.context);\n        if (sortedResult.isFailed()) {\n            return sortedResult;\n        }\n        const { first, second, remaining } = sortedResult.get();\n        // Only pass if the second entry accepts filterBindings\n        const sourceWrapper = (0, utils_query_operation_1.getOperationSource)(second.operation);\n        if (!sourceWrapper) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only process if entries[1] has a source`);\n        }\n        const testingOperation = second.operation;\n        const selectorShape = await sourceWrapper.source.getSelectorShape(action.context);\n        if (!(0, utils_query_operation_1.doesShapeAcceptOperation)(selectorShape, testingOperation, { filterBindings: true })) {\n            return (0, core_1.failTest)(`Actor ${this.name} can only process if entries[1] accept filterBindings`);\n        }\n        // Determine cost coefficients\n        metadatas = [first.metadata, second.metadata, ...remaining.map(remain => remain.metadata)];\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        const { selectivity } = await this.mediatorJoinSelectivity.mediate({\n            entries: [first, second],\n            context: action.context,\n        });\n        const cardinalityRemaining = remaining\n            .reduce((mul, remain) => mul * remain.metadata.cardinality.value * this.selectivityModifier, 1);\n        return (0, core_1.passTestWithSideData)({\n            iterations: selectivity * this.selectivityModifier *\n                second.metadata.cardinality.value * cardinalityRemaining,\n            persistedItems: first.metadata.cardinality.value,\n            blockingItems: first.metadata.cardinality.value,\n            requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n                requestInitialTimes[1] + cardinalityRemaining * requestItemTimes[1],\n        }, sideData);\n    }\n}\nexports.ActorRdfJoinMultiSmallestFilterBindings = ActorRdfJoinMultiSmallestFilterBindings;\n//# sourceMappingURL=ActorRdfJoinMultiSmallestFilterBindings.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinMultiSmallestFilterBindings\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryProcessExplainLogical = void 0;\nconst bus_query_process_1 = require(\"@comunica/bus-query-process\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Explain Logical Query Process Actor.\n */\nclass ActorQueryProcessExplainLogical extends bus_query_process_1.ActorQueryProcess {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if ((action.context.get(context_entries_1.KeysInitQuery.explain) ??\n            action.context.get(new core_1.ActionContextKey('explain'))) !== 'logical') {\n            return (0, core_1.failTest)(`${this.name} can only explain in 'logical' mode.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        // Parse and optimize the query\n        let { operation, context } = await this.queryProcessor.parse(action.query, action.context);\n        ({ operation, context } = await this.queryProcessor.optimize(operation, context));\n        return {\n            result: {\n                explain: true,\n                type: 'logical',\n                data: operation,\n            },\n        };\n    }\n}\nexports.ActorQueryProcessExplainLogical = ActorQueryProcessExplainLogical;\n//# sourceMappingURL=ActorQueryProcessExplainLogical.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryProcessExplainLogical\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryProcessExplainParsed = void 0;\nconst bus_query_process_1 = require(\"@comunica/bus-query-process\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\n/**\n * A comunica Explain Parsed Query Process Actor.\n */\nclass ActorQueryProcessExplainParsed extends bus_query_process_1.ActorQueryProcess {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if ((action.context.get(context_entries_1.KeysInitQuery.explain) ??\n            action.context.get(new core_1.ActionContextKey('explain'))) !== 'parsed') {\n            return (0, core_1.failTest)(`${this.name} can only explain in 'parsed' mode.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        // Parse the query\n        const { operation } = await this.queryProcessor.parse(action.query, action.context);\n        return {\n            result: {\n                explain: true,\n                type: 'parsed',\n                data: operation,\n            },\n        };\n    }\n}\nexports.ActorQueryProcessExplainParsed = ActorQueryProcessExplainParsed;\n//# sourceMappingURL=ActorQueryProcessExplainParsed.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryProcessExplainParsed\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.numberToString = exports.MemoryPhysicalQueryPlanLogger = void 0;\nconst rdf_string_1 = require(\"rdf-string\");\n/**\n * A physical query plan logger that stores everything in memory.\n */\nclass MemoryPhysicalQueryPlanLogger {\n    constructor() {\n        this.planNodes = new Map();\n    }\n    logOperation(logicalOperator, physicalOperator, node, parentNode, actor, metadata) {\n        const planNode = {\n            actor,\n            logicalOperator,\n            physicalOperator,\n            rawNode: node,\n            children: [],\n            metadata,\n        };\n        this.planNodes.set(node, planNode);\n        if (this.rootNode) {\n            if (!parentNode) {\n                throw new Error(`Detected more than one parent-less node`);\n            }\n            const planParentNode = this.planNodes.get(parentNode);\n            if (!planParentNode) {\n                throw new Error(`Could not find parent node`);\n            }\n            planParentNode.children.push(planNode);\n        }\n        else {\n            if (parentNode) {\n                throw new Error(`No root node has been set yet, while a parent is being referenced`);\n            }\n            this.rootNode = planNode;\n        }\n    }\n    stashChildren(node, filter) {\n        const planNode = this.planNodes.get(node);\n        if (!planNode) {\n            throw new Error(`Could not find plan node`);\n        }\n        planNode.children = filter ? planNode.children.filter(filter) : [];\n    }\n    unstashChild(node, parentNode) {\n        const planNode = this.planNodes.get(node);\n        if (planNode) {\n            const planParentNode = this.planNodes.get(parentNode);\n            if (!planParentNode) {\n                throw new Error(`Could not find plan parent node`);\n            }\n            planParentNode.children.push(planNode);\n        }\n    }\n    appendMetadata(node, metadata) {\n        const planNode = this.planNodes.get(node);\n        if (planNode) {\n            planNode.metadata = {\n                ...planNode.metadata,\n                ...metadata,\n            };\n        }\n    }\n    toJson() {\n        return this.rootNode ? this.planNodeToJson(this.rootNode) : {};\n    }\n    planNodeToJson(node) {\n        const data = {\n            logical: node.logicalOperator,\n            physical: node.physicalOperator,\n            ...this.getLogicalMetadata(node.rawNode),\n            ...this.compactMetadata(node.metadata),\n        };\n        if (node.children.length > 0) {\n            data.children = node.children.map(child => this.planNodeToJson(child));\n        }\n        // Special case: compact children for bind joins.\n        if (data.physical === 'bind' && data.children) {\n            // Group children by query plan format\n            const childrenGrouped = {};\n            for (const child of data.children) {\n                const lastSubChild = child.children?.at(-1) ?? child;\n                const key = this.getPlanHash(lastSubChild).join(',');\n                if (!childrenGrouped[key]) {\n                    childrenGrouped[key] = [];\n                }\n                childrenGrouped[key].push(child);\n            }\n            // Compact query plan occurrences\n            const childrenCompact = [];\n            for (const children of Object.values(childrenGrouped)) {\n                childrenCompact.push({\n                    occurrences: children.length,\n                    firstOccurrence: children[0],\n                });\n            }\n            // Replace children with compacted representation\n            data.childrenCompact = childrenCompact;\n            delete data.children;\n        }\n        return data;\n    }\n    getPlanHash(node) {\n        let entries = [`${node.logical}-${node.physical}`];\n        if (node.children) {\n            entries = [\n                ...entries,\n                ...node.children.flatMap(child => this.getPlanHash(child)),\n            ];\n        }\n        else if (node.childrenCompact) {\n            entries = [\n                ...entries,\n                ...node.childrenCompact.flatMap(child => this.getPlanHash(child.firstOccurrence)),\n            ];\n        }\n        return entries;\n    }\n    compactMetadata(metadata) {\n        return Object.fromEntries(Object.entries(metadata)\n            .map(([key, value]) => [key, this.compactMetadataValue(value)]));\n    }\n    compactMetadataValue(value) {\n        return value && typeof value === 'object' && 'termType' in value ? this.getLogicalMetadata(value) : value;\n    }\n    getLogicalMetadata(rawNode) {\n        const data = {};\n        if ('type' in rawNode) {\n            const operation = rawNode;\n            if (operation.metadata?.scopedSource) {\n                data.source = operation.metadata.scopedSource.source.toString();\n            }\n            // eslint-disable-next-line ts/switch-exhaustiveness-check\n            switch (operation.type) {\n                case 'pattern':\n                    data.pattern = this.quadToString(operation);\n                    break;\n                case 'project':\n                    data.variables = operation.variables.map(variable => variable.value);\n                    break;\n            }\n        }\n        return data;\n    }\n    quadToString(quad) {\n        return `${(0, rdf_string_1.termToString)(quad.subject)} ${(0, rdf_string_1.termToString)(quad.predicate)} ${(0, rdf_string_1.termToString)(quad.object)}${quad.graph.termType === 'DefaultGraph' ? '' : ` ${(0, rdf_string_1.termToString)(quad.graph)}`}`;\n    }\n    toCompactString() {\n        const node = this.toJson();\n        const lines = [];\n        const sources = new Map();\n        if ('logical' in node) {\n            this.nodeToCompactString(lines, sources, '', node);\n        }\n        else {\n            lines.push('Empty');\n        }\n        if (sources.size > 0) {\n            lines.push('');\n            lines.push('sources:');\n            for (const [key, id] of sources.entries()) {\n                lines.push(`  ${id}: ${key}`);\n            }\n        }\n        return lines.join('\\n');\n    }\n    nodeToCompactString(lines, sources, indent, node, metadata) {\n        let sourceId;\n        if (node.source) {\n            sourceId = sources.get(node.source);\n            if (sourceId === undefined) {\n                sourceId = sources.size;\n                sources.set(node.source, sourceId);\n            }\n        }\n        lines.push(`${indent}${node.logical}${node.physical ? `(${node.physical})` : ''}${node.pattern ? ` (${node.pattern})` : ''}${node.variables ? ` (${node.variables.join(',')})` : ''}${node.bindOperation ? ` bindOperation:(${node.bindOperation.pattern}) bindCardEst:${node.bindOperationCardinality.type === 'estimate' ? '~' : ''}${numberToString(node.bindOperationCardinality.value)}` : ''}${node.cardinality ? ` cardEst:${node.cardinality.type === 'estimate' ? '~' : ''}${numberToString(node.cardinality.value)}` : ''}${node.source ? ` src:${sourceId}` : ''}${node.cardinalityReal ? ` cardReal:${node.cardinalityReal}` : ''}${node.timeSelf ? ` timeSelf:${numberToString(node.timeSelf)}ms` : ''}${node.timeLife ? ` timeLife:${numberToString(node.timeLife)}ms` : ''}${metadata ? ` ${metadata}` : ''}`);\n        for (const child of node.children ?? []) {\n            this.nodeToCompactString(lines, sources, `${indent}  `, child);\n        }\n        for (const child of node.childrenCompact ?? []) {\n            this.nodeToCompactString(lines, sources, `${indent}  `, child.firstOccurrence, `compacted-occurrences:${child.occurrences}`);\n        }\n    }\n}\nexports.MemoryPhysicalQueryPlanLogger = MemoryPhysicalQueryPlanLogger;\nfunction numberToString(value) {\n    return value.toLocaleString('en-US', { minimumFractionDigits: 0, maximumFractionDigits: 3 });\n}\nexports.numberToString = numberToString;\n//# sourceMappingURL=MemoryPhysicalQueryPlanLogger.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQueryProcessExplainPhysical = void 0;\nconst bus_query_process_1 = require(\"@comunica/bus-query-process\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst MemoryPhysicalQueryPlanLogger_1 = require(\"./MemoryPhysicalQueryPlanLogger\");\n/**\n * A comunica Explain Physical Query Process Actor.\n */\nclass ActorQueryProcessExplainPhysical extends bus_query_process_1.ActorQueryProcess {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        const mode = (action.context.get(context_entries_1.KeysInitQuery.explain) ?? action.context.get(new core_1.ActionContextKey('explain')));\n        if (mode !== 'physical' && mode !== 'physical-json') {\n            return (0, core_1.failTest)(`${this.name} can only explain in 'physical' or 'physical-json' mode.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        // Run all query processing steps in sequence\n        let { operation, context } = await this.queryProcessor.parse(action.query, action.context);\n        ({ operation, context } = await this.queryProcessor.optimize(operation, context));\n        // If we need a physical query plan, store a physical query plan logger in the context, and collect it after exec\n        const physicalQueryPlanLogger = new MemoryPhysicalQueryPlanLogger_1.MemoryPhysicalQueryPlanLogger();\n        context = context.set(context_entries_1.KeysInitQuery.physicalQueryPlanLogger, physicalQueryPlanLogger);\n        const output = await this.queryProcessor.evaluate(operation, context);\n        // Make sure the whole result is produced\n        switch (output.type) {\n            case 'bindings':\n                await output.bindingsStream.toArray();\n                break;\n            case 'quads':\n                await output.quadStream.toArray();\n                break;\n            case 'boolean':\n                await output.execute();\n                break;\n            case 'void':\n                await output.execute();\n                break;\n        }\n        const mode = (action.context.get(context_entries_1.KeysInitQuery.explain) ??\n            action.context.getSafe(new core_1.ActionContextKey('explain')));\n        return {\n            result: {\n                explain: true,\n                type: mode,\n                data: mode === 'physical' ? physicalQueryPlanLogger.toCompactString() : physicalQueryPlanLogger.toJson(),\n            },\n        };\n    }\n}\nexports.ActorQueryProcessExplainPhysical = ActorQueryProcessExplainPhysical;\n//# sourceMappingURL=ActorQueryProcessExplainPhysical.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQueryProcessExplainPhysical\"), exports);\n__exportStar(require(\"./MemoryPhysicalQueryPlanLogger\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationPruneEmptySourceOperations = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Prune Empty Source Operations Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationPruneEmptySourceOperations extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if ((0, utils_query_operation_1.getOperationSource)(action.operation)) {\n            return (0, core_1.failTest)(`Actor ${this.name} does not work with top-level operation sources.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        let operation = action.operation;\n        // Collect all operations with source types\n        // Only consider unions of patterns or alts of links, since these are created during exhaustive source assignment.\n        const collectedOperations = [];\n        // eslint-disable-next-line ts/no-this-alias\n        const self = this;\n        sparqlalgebrajs_1.Util.recurseOperation(operation, {\n            [sparqlalgebrajs_1.Algebra.types.UNION](subOperation) {\n                self.collectMultiOperationInputs(subOperation.input, collectedOperations, sparqlalgebrajs_1.Algebra.types.PATTERN);\n                return true;\n            },\n            [sparqlalgebrajs_1.Algebra.types.ALT](subOperation) {\n                self.collectMultiOperationInputs(subOperation.input, collectedOperations, sparqlalgebrajs_1.Algebra.types.LINK);\n                return false;\n            },\n            [sparqlalgebrajs_1.Algebra.types.SERVICE]() {\n                return false;\n            },\n        });\n        // Determine in an async manner whether or not these sources return non-empty results\n        const emptyOperations = new Set();\n        await Promise.all(collectedOperations.map(async (collectedOperation) => {\n            const checkOperation = collectedOperation.type === 'link' ?\n                algebraFactory.createPattern(dataFactory.variable('s'), collectedOperation.iri, dataFactory.variable('o')) :\n                collectedOperation;\n            if (!await this.hasSourceResults(algebraFactory, (0, utils_query_operation_1.getOperationSource)(collectedOperation), checkOperation, action.context)) {\n                emptyOperations.add(collectedOperation);\n            }\n        }));\n        // Only perform next mapping if we have at least one empty operation\n        if (emptyOperations.size > 0) {\n            this.logDebug(action.context, `Pruning ${emptyOperations.size} source-specific operations`);\n            // Rewrite operations by removing the empty children\n            operation = sparqlalgebrajs_1.Util.mapOperation(operation, {\n                [sparqlalgebrajs_1.Algebra.types.UNION](subOperation, factory) {\n                    return self.mapMultiOperation(subOperation, emptyOperations, children => factory.createUnion(children));\n                },\n                [sparqlalgebrajs_1.Algebra.types.ALT](subOperation, factory) {\n                    return self.mapMultiOperation(subOperation, emptyOperations, children => factory.createAlt(children));\n                },\n            }, algebraFactory);\n            // Identify and remove operations that have become empty now due to missing variables\n            operation = sparqlalgebrajs_1.Util.mapOperation(operation, {\n                [sparqlalgebrajs_1.Algebra.types.PROJECT](subOperation, factory) {\n                    // Remove projections that have become empty now due to missing variables\n                    if (ActorOptimizeQueryOperationPruneEmptySourceOperations.hasEmptyOperation(subOperation)) {\n                        return {\n                            recurse: false,\n                            result: factory.createUnion([]),\n                        };\n                    }\n                    return {\n                        recurse: true,\n                        result: subOperation,\n                    };\n                },\n                [sparqlalgebrajs_1.Algebra.types.LEFT_JOIN](subOperation) {\n                    // Remove left joins with empty right operation\n                    if (ActorOptimizeQueryOperationPruneEmptySourceOperations.hasEmptyOperation(subOperation.input[1])) {\n                        return {\n                            recurse: true,\n                            result: subOperation.input[0],\n                        };\n                    }\n                    return {\n                        recurse: true,\n                        result: subOperation,\n                    };\n                },\n            }, algebraFactory);\n        }\n        return { operation, context: action.context };\n    }\n    static hasEmptyOperation(operation) {\n        // If union (or alt) is empty, consider it empty (`Array.every` on an empty array always returns true)\n        // But if we find a union with multiple children,\n        // *all* of the children must be empty before the full operation is considered empty.\n        let emptyOperation = false;\n        sparqlalgebrajs_1.Util.recurseOperation(operation, {\n            [sparqlalgebrajs_1.Algebra.types.UNION](subOperation) {\n                if (subOperation.input.every(subSubOperation => ActorOptimizeQueryOperationPruneEmptySourceOperations\n                    .hasEmptyOperation(subSubOperation))) {\n                    emptyOperation = true;\n                }\n                return false;\n            },\n            [sparqlalgebrajs_1.Algebra.types.ALT](subOperation) {\n                if (subOperation.input.length === 0) {\n                    emptyOperation = true;\n                }\n                return false;\n            },\n            [sparqlalgebrajs_1.Algebra.types.LEFT_JOIN](subOperation) {\n                // Only recurse into left part of left-join\n                if (ActorOptimizeQueryOperationPruneEmptySourceOperations.hasEmptyOperation(subOperation.input[0])) {\n                    emptyOperation = true;\n                }\n                return false;\n            },\n        });\n        return emptyOperation;\n    }\n    collectMultiOperationInputs(inputs, collectedOperations, inputType) {\n        for (const input of inputs) {\n            if ((0, utils_query_operation_1.getOperationSource)(input) && input.type === inputType) {\n                collectedOperations.push(input);\n            }\n        }\n    }\n    mapMultiOperation(operation, emptyOperations, multiOperationFactory) {\n        // Determine which operations return non-empty results\n        const nonEmptyInputs = operation.input.filter(input => !emptyOperations.has(input));\n        // Remove empty operations\n        if (nonEmptyInputs.length === operation.input.length) {\n            return { result: operation, recurse: true };\n        }\n        if (nonEmptyInputs.length === 0) {\n            return { result: multiOperationFactory([]), recurse: false };\n        }\n        if (nonEmptyInputs.length === 1) {\n            return { result: nonEmptyInputs[0], recurse: true };\n        }\n        return { result: multiOperationFactory(nonEmptyInputs), recurse: true };\n    }\n    /**\n     * Check if the given query operation will produce at least one result in the given source.\n     * @param algebraFactory The algebra factory.\n     * @param source A query source.\n     * @param input A query operation.\n     * @param context The query context.\n     */\n    async hasSourceResults(algebraFactory, source, input, context) {\n        // Traversal sources should never be considered empty at optimization time.\n        if (source.context?.get(context_entries_1.KeysQuerySourceIdentify.traverse) ?? context.get(context_entries_1.KeysQuerySourceIdentify.traverse)) {\n            return true;\n        }\n        // Send an ASK query\n        if (this.useAskIfSupported) {\n            const askOperation = algebraFactory.createAsk(input);\n            if ((0, utils_query_operation_1.doesShapeAcceptOperation)(await source.source.getSelectorShape(context), askOperation)) {\n                return source.source.queryBoolean(askOperation, context);\n            }\n        }\n        // Send the operation as-is and check the response cardinality\n        const bindingsStream = source.source.queryBindings(input, context);\n        return new Promise((resolve, reject) => {\n            bindingsStream.on('error', reject);\n            bindingsStream.getProperty('metadata', (metadata) => {\n                bindingsStream.destroy();\n                resolve(metadata.cardinality.value > 0);\n            });\n        });\n    }\n}\nexports.ActorOptimizeQueryOperationPruneEmptySourceOperations = ActorOptimizeQueryOperationPruneEmptySourceOperations;\n//# sourceMappingURL=ActorOptimizeQueryOperationPruneEmptySourceOperations.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationPruneEmptySourceOperations\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHttpRetry = void 0;\nconst bus_http_1 = require(\"@comunica/bus-http\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nclass ActorHttpRetry extends bus_http_1.ActorHttp {\n    constructor(args) {\n        super(args);\n        this.activeDelays = {};\n        this.httpInvalidator = args.httpInvalidator;\n        this.httpInvalidator.addInvalidateListener(action => this.handleHttpInvalidateEvent(action));\n        this.mediatorHttp = args.mediatorHttp;\n    }\n    async test(action) {\n        if (action.context.has(ActorHttpRetry.keyWrapped)) {\n            return (0, core_1.failTest)(`${this.name} can only wrap a request once`);\n        }\n        const retryCount = action.context.get(context_entries_1.KeysHttp.httpRetryCount);\n        if (!retryCount || retryCount < 1) {\n            return (0, core_1.failTest)(`${this.name} requires a retry count greater than zero to function`);\n        }\n        return (0, core_1.passTest)({ time: 0 });\n    }\n    async run(action) {\n        const url = bus_http_1.ActorHttp.getInputUrl(action.input);\n        // Attempt once + the number of retries specified by the user\n        const attemptLimit = action.context.getSafe(context_entries_1.KeysHttp.httpRetryCount) + 1;\n        const retryDelayFallback = action.context.get(context_entries_1.KeysHttp.httpRetryDelayFallback) ?? 0;\n        const retryDelayLimit = action.context.get(context_entries_1.KeysHttp.httpRetryDelayLimit);\n        const retryStatusCodes = action.context.get(context_entries_1.KeysHttp.httpRetryStatusCodes);\n        for (let attempt = 1; attempt <= attemptLimit; attempt++) {\n            const retryDelay = url.host in this.activeDelays ?\n                this.activeDelays[url.host].date.getTime() - Date.now() :\n                retryDelayFallback;\n            if (retryDelayLimit && retryDelay > retryDelayLimit) {\n                this.logWarn(action.context, 'Requested delay exceeds the limit', () => ({\n                    url: url.href,\n                    delay: retryDelay,\n                    delayDate: this.activeDelays[url.host].date.toISOString(),\n                    delayLimit: retryDelayLimit,\n                    currentAttempt: `${attempt} / ${attemptLimit}`,\n                }));\n                break;\n            }\n            else if (retryDelay > 0 && attempt > 1) {\n                this.logDebug(action.context, 'Delaying request', () => ({\n                    url: url.href,\n                    delay: retryDelay,\n                    currentAttempt: `${attempt} / ${attemptLimit}`,\n                }));\n                await ActorHttpRetry.sleep(retryDelay);\n            }\n            const response = await this.mediatorHttp.mediate({\n                ...action,\n                context: action.context.set(ActorHttpRetry.keyWrapped, true),\n            });\n            if (response.ok) {\n                return response;\n            }\n            if (retryStatusCodes && retryStatusCodes.includes(response.status)) {\n                this.logDebug(action.context, 'Status code in force retry list, forcing retry', () => ({\n                    url: url.href,\n                    status: response.status,\n                    statusText: response.statusText,\n                    currentAttempt: `${attempt} / ${attemptLimit}`,\n                }));\n                continue;\n            }\n            if (response.status === 504) {\n                // When the server is acting as a proxy and the source times it, it makes sense to retry\n                // with the hope that the source server replies within the timeout\n                this.logDebug(action.context, 'Received proxy timeout', () => ({\n                    url: url.href,\n                    status: response.status,\n                    statusText: response.statusText,\n                    currentAttempt: `${attempt} / ${attemptLimit}`,\n                }));\n                continue;\n            }\n            if (\n            // Status codes 429 (Too Many Requests) and 503 (Temporarily Unavailable) can have Retry-After\n            response.status === 429 || response.status === 503 ||\n                // DBPedia SPARQL endpoint uses 405 instead of 429 and sends a Retry-After with it to indicate rate limits\n                (response.status === 405 && response.headers.has('retry-after'))) {\n                const retryAfterHeader = response.headers.get('retry-after');\n                if (retryAfterHeader) {\n                    const retryAfter = ActorHttpRetry.parseRetryAfterHeader(retryAfterHeader);\n                    if (retryAfter) {\n                        // Clear any previous clean-up timers for the host\n                        if (url.host in this.activeDelays) {\n                            clearTimeout(this.activeDelays[url.host].timeout);\n                        }\n                        // Record the current host-specific active delay, and add a clean-up timer for this new delay\n                        this.activeDelays[url.host] = {\n                            date: retryAfter,\n                            timeout: setTimeout(() => delete this.activeDelays[url.host], retryAfter.getTime() - Date.now()),\n                        };\n                    }\n                    else {\n                        this.logDebug(action.context, 'Invalid Retry-After header value from server', () => ({\n                            url: url.href,\n                            status: response.status,\n                            statusText: response.statusText,\n                            retryAfterHeader,\n                            currentAttempt: `${attempt} / ${attemptLimit}`,\n                        }));\n                    }\n                }\n                this.logDebug(action.context, 'Server temporarily unavailable', () => ({\n                    url: url.href,\n                    status: response.status,\n                    statusText: response.statusText,\n                    currentAttempt: `${attempt} / ${attemptLimit}`,\n                }));\n                continue;\n            }\n            if (response.status >= 400 && response.status < 500) {\n                // When the server reports a missing document, insufficient permissions, bad request or other error\n                // in the 400 range except for the rate limit, it makes sense to skip further retries.\n                // Sending the same, potentially invalid request for missing or inaccessible resources is unlikely to succeed.\n                this.logDebug(action.context, 'Server reported client-side error', () => ({\n                    url: url.href,\n                    status: response.status,\n                    statusText: response.statusText,\n                    currentAttempt: `${attempt} / ${attemptLimit}`,\n                }));\n                break;\n            }\n            if (response.status >= 500 && response.status < 600) {\n                // When a server-side error is encountered, it will likely not be fixable client-side,\n                // and sending the same request again will most likely result in the same server-side failure.\n                // Therefore, it makes sense not to retry on such errors at all.\n                this.logDebug(action.context, 'Server-side error encountered, terminating', () => ({\n                    url: url.href,\n                    status: response.status,\n                    statusText: response.statusText,\n                    currentAttempt: `${attempt} / ${attemptLimit}`,\n                }));\n                break;\n            }\n            // Error codes not specifically handled should be logged as-is for user to notice\n            this.logDebug(action.context, 'Request failed', () => ({\n                url: url.href,\n                status: response.status,\n                statusText: response.statusText,\n                currentAttempt: `${attempt} / ${attemptLimit}`,\n            }));\n        }\n        throw new Error(`Request failed: ${url.href}`);\n    }\n    /**\n     * Sleeps for the specified amount of time, using a timeout\n     * @param {number} ms The amount of milliseconds to sleep\n     */\n    static async sleep(ms) {\n        if (ms > 0) {\n            await new Promise(resolve => setTimeout(resolve, ms));\n        }\n    }\n    /**\n     * Parses a Retry-After HTTP header value following the specification:\n     * https://httpwg.org/specs/rfc9110.html#field.retry-after\n     * @param {string} retryAfter The raw header value as string\n     * @returns The parsed Date object, or undefined in case of invalid header value\n     */\n    static parseRetryAfterHeader(retryAfter) {\n        if (ActorHttpRetry.numberRegex.test(retryAfter)) {\n            return new Date(Date.now() + Number.parseInt(retryAfter, 10) * 1_000);\n        }\n        if (ActorHttpRetry.dateRegex.test(retryAfter)) {\n            return new Date(retryAfter);\n        }\n    }\n    /**\n     * Handles HTTP cache invalidation events.\n     * @param {IActionHttpInvalidate} action The invalidation action\n     */\n    handleHttpInvalidateEvent(action) {\n        const invalidatedHost = action.url ? new URL(action.url).host : undefined;\n        for (const host of Object.keys(this.activeDelays)) {\n            if (!invalidatedHost || host === invalidatedHost) {\n                clearTimeout(this.activeDelays[host].timeout);\n                delete this.activeDelays[host];\n            }\n        }\n    }\n}\nexports.ActorHttpRetry = ActorHttpRetry;\n// Expression that matches dates expressed in the HTTP Date header format\n// eslint-disable-next-line max-len\nActorHttpRetry.dateRegex = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), [0-9]{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT$/u;\n// Expression that matches numeric values of Retry-After\nActorHttpRetry.numberRegex = /^[0-9]+$/u;\n// Context key to indicate that the actor has already wrapped the given request\nActorHttpRetry.keyWrapped = new core_1.ActionContextKey('urn:comunica:actor-http-retry#wrapped');\n//# sourceMappingURL=ActorHttpRetry.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHttpRetry\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorHttpLimitRate = void 0;\nconst bus_http_1 = require(\"@comunica/bus-http\");\nconst core_1 = require(\"@comunica/core\");\nclass ActorHttpLimitRate extends bus_http_1.ActorHttp {\n    constructor(args) {\n        super(args);\n        this.mediatorHttp = args.mediatorHttp;\n        this.httpInvalidator = args.httpInvalidator;\n        this.httpInvalidator.addInvalidateListener(action => this.handleHttpInvalidateEvent(action));\n        this.correctionMultiplier = args.correctionMultiplier;\n        this.failureMultiplier = args.failureMultiplier;\n        this.limitByDefault = args.limitByDefault;\n        this.allowOverlap = args.allowOverlap;\n        this.hostData = new Map();\n    }\n    async test(action) {\n        if (action.context.has(ActorHttpLimitRate.keyWrapped)) {\n            return (0, core_1.failTest)(`${this.name} can only wrap a request once`);\n        }\n        return (0, core_1.passTest)({ time: 0 });\n    }\n    async run(action) {\n        const requestUrl = bus_http_1.ActorHttp.getInputUrl(action.input);\n        let requestHostData = this.hostData.get(requestUrl.host);\n        if (!requestHostData) {\n            requestHostData = {\n                latestRequestTimestamp: 0,\n                rateLimited: this.limitByDefault,\n                requestInterval: Number.NEGATIVE_INFINITY,\n            };\n            this.hostData.set(requestUrl.host, requestHostData);\n        }\n        const currentTimestamp = Date.now();\n        let currentRequestDelay = 0;\n        if (requestHostData.rateLimited) {\n            currentRequestDelay = Math.max(0, requestHostData.latestRequestTimestamp + requestHostData.requestInterval - currentTimestamp);\n        }\n        // Update the latest request timestamp before waiting, so that further requests will be delayed correctly.\n        // When overlap is disallowed, the timestamp is set to the expected despatch time of the current request,\n        // which will help smooth out request bursts by spacing them out evently. With overlap allowed, however,\n        // the timestamp is set to current time, which will result in overlapping requests and prevent smoothing.\n        requestHostData.latestRequestTimestamp = currentTimestamp + (this.allowOverlap ? 0 : 1) * currentRequestDelay;\n        if (currentRequestDelay > 0) {\n            this.logDebug(action.context, 'Delaying request', () => ({\n                url: requestUrl.href,\n                requestInterval: requestHostData.requestInterval,\n                currentDelay: currentRequestDelay,\n            }));\n            await new Promise(resolve => setTimeout(resolve, currentRequestDelay));\n        }\n        const registerCompletedRequest = (success) => {\n            const requestDuration = (success ? 1 : this.failureMultiplier) *\n                (Date.now() - currentTimestamp - currentRequestDelay);\n            if (requestHostData.requestInterval < 0) {\n                requestHostData.requestInterval = Math.round(requestDuration * this.correctionMultiplier);\n            }\n            else {\n                requestHostData.requestInterval += Math.round(this.correctionMultiplier * (requestDuration - requestHostData.requestInterval));\n            }\n            if (!success && !requestHostData.rateLimited) {\n                this.logDebug(action.context, 'Marking host as rate-limited', () => ({\n                    host: requestUrl.host,\n                }));\n                requestHostData.rateLimited = true;\n            }\n        };\n        try {\n            const response = await this.mediatorHttp.mediate({\n                ...action,\n                context: action.context.set(ActorHttpLimitRate.keyWrapped, true),\n            });\n            registerCompletedRequest(response.ok);\n            return response;\n        }\n        catch (error) {\n            registerCompletedRequest(false);\n            throw error;\n        }\n    }\n    /**\n     * Handles HTTP cache invalidation events.\n     * @param {IActionHttpInvalidate} action The invalidation action\n     */\n    handleHttpInvalidateEvent(action) {\n        if (action.url) {\n            const invalidatedHost = new URL(action.url).host;\n            this.hostData.delete(invalidatedHost);\n        }\n        else {\n            this.hostData.clear();\n        }\n    }\n}\nexports.ActorHttpLimitRate = ActorHttpLimitRate;\n// Context key to indicate that the actor has already wrapped the given request\nActorHttpLimitRate.keyWrapped = new core_1.ActionContextKey('urn:comunica:actor-http-limit-rate#wrapped');\n//# sourceMappingURL=ActorHttpLimitRate.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorHttpLimitRate\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorQuerySourceIdentifySerialized = void 0;\nconst bus_query_source_identify_1 = require(\"@comunica/bus-query-source-identify\");\nconst core_1 = require(\"@comunica/core\");\nconst rdf_store_stream_1 = require(\"rdf-store-stream\");\nconst readable_stream_1 = require(\"readable-stream\");\n/**\n * A comunica Serialized Query Source Identify Actor.\n */\nclass ActorQuerySourceIdentifySerialized extends bus_query_source_identify_1.ActorQuerySourceIdentify {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (!this.isStringSource(action.querySourceUnidentified)) {\n            return (0, core_1.failTest)(`${this.name} requires a single query source with serialized type to be present in the context.`);\n        }\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        // Delegate source identification to the same bus again, by converting the string into an RDF/JS source\n        return await this.mediatorQuerySourceIdentify.mediate({\n            querySourceUnidentified: {\n                type: 'rdfjs',\n                value: await this.getRdfSource(action.context, action.querySourceUnidentified),\n                context: action.querySourceUnidentified.context,\n            },\n            context: action.context,\n        });\n    }\n    /**\n     * Parses the string data source through the RDF parse bus, returning the RDF source.\n     * @param context The run action context\n     * @param source The source from the run action context\n     * @returns Parsed RDF source that can be passed to quad pattern resolve mediator as an RDF/JS source\n     */\n    async getRdfSource(context, source) {\n        const textStream = new readable_stream_1.Readable({ objectMode: true });\n        /* istanbul ignore next */\n        textStream._read = () => {\n            // Do nothing\n        };\n        textStream.push(source.value);\n        textStream.push(null);\n        const parseAction = {\n            context,\n            handle: {\n                metadata: { baseIRI: source.baseIRI },\n                data: textStream,\n                context,\n            },\n            handleMediaType: source.mediaType,\n        };\n        const parseResult = await this.mediatorRdfParse.mediate(parseAction);\n        return await (0, rdf_store_stream_1.storeStream)(parseResult.handle.data);\n    }\n    isStringSource(source) {\n        if (!('type' in source)) {\n            if (!(typeof source.value === 'string')) {\n                return false;\n            }\n            return 'mediaType' in source;\n        }\n        return source.type === 'serialized';\n    }\n}\nexports.ActorQuerySourceIdentifySerialized = ActorQuerySourceIdentifySerialized;\n//# sourceMappingURL=ActorQuerySourceIdentifySerialized.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorQuerySourceIdentifySerialized\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorRdfJoinMultiBindSource = void 0;\nconst bus_rdf_join_1 = require(\"@comunica/bus-rdf-join\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_iterator_1 = require(\"@comunica/utils-iterator\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst asynciterator_1 = require(\"asynciterator\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Inner Multi Bind Source RDF Join Actor.\n */\nclass ActorRdfJoinMultiBindSource extends bus_rdf_join_1.ActorRdfJoin {\n    constructor(args) {\n        super(args, {\n            logicalType: 'inner',\n            physicalName: 'bind-source',\n            canHandleUndefs: true,\n        });\n    }\n    async getOutput(action, sideData) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        // Order the entries so we can pick the first one (usually the one with the lowest cardinality)\n        const entries = sideData.entriesSorted;\n        this.logDebug(action.context, 'First entry for Bind Join Source: ', () => ({\n            entry: entries[0].operation,\n            cardinality: entries[0].metadata.cardinality,\n            order: entries[0].metadata.order,\n            availableOrders: entries[0].metadata.availableOrders,\n        }));\n        // Close the non-smallest streams\n        for (const [i, element] of entries.entries()) {\n            if (i !== 0) {\n                element.output.bindingsStream.close();\n            }\n        }\n        // Take the stream with the lowest cardinality\n        const smallestStream = entries[0].output;\n        const smallestMetadata = entries[0].metadata;\n        const remainingEntries = [...entries];\n        remainingEntries.splice(0, 1);\n        // Get source for remaining entries (guaranteed thanks to prior check in getJoinCoefficients())\n        const sourceWrapper = (0, utils_query_operation_1.getOperationSource)(remainingEntries[0].operation);\n        // Determine the operation to pass\n        const operation = this.createOperationFromEntries(algebraFactory, remainingEntries);\n        // Slice the smallest stream into chunks according to the block size, so we avoid blocking too long.\n        const chunkedStreams = new utils_iterator_1.ChunkedIterator(smallestStream.bindingsStream, this.blockSize, { autoStart: false });\n        // For each chunk, pass the query and the bindings to the source for execution\n        const bindingsStream = new asynciterator_1.UnionIterator(chunkedStreams.map(chunk => sourceWrapper.source.queryBindings(operation, sourceWrapper.context ? action.context.merge(sourceWrapper.context) : action.context, { joinBindings: { bindings: chunk, metadata: smallestMetadata } })));\n        return {\n            result: {\n                type: 'bindings',\n                bindingsStream,\n                metadata: () => this.constructResultMetadata(entries, entries.map(entry => entry.metadata), action.context),\n            },\n            physicalPlanMetadata: {\n                bindIndex: sideData.entriesUnsorted.indexOf(entries[0]),\n            },\n        };\n    }\n    async sortJoinEntries(entries, context) {\n        const entriesTest = await bus_rdf_join_1.ActorRdfJoin.sortJoinEntries(this.mediatorJoinEntriesSort, entries, context);\n        if (entriesTest.isFailed()) {\n            return entriesTest;\n        }\n        entries = entriesTest.get();\n        // Prioritize entries with modified operations, so these are not re-executed\n        entries = entries.sort((entryLeft, entryRight) => {\n            if (entryLeft.operationModified && !entryRight.operationModified) {\n                return -1;\n            }\n            return 0;\n        });\n        return (0, core_1.passTest)(entries);\n    }\n    async getJoinCoefficients(action, sideData) {\n        let { metadatas } = sideData;\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        // Order the entries so we can pick the first one (usually the one with the lowest cardinality)\n        const entriesUnsorted = action.entries.map((entry, i) => ({ ...entry, metadata: metadatas[i] }));\n        const entriesTest = await this.sortJoinEntries(entriesUnsorted, action.context);\n        if (entriesTest.isFailed()) {\n            return entriesTest;\n        }\n        const entriesSorted = entriesTest.get();\n        metadatas = entriesSorted.map(entry => entry.metadata);\n        const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);\n        const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);\n        // Determine first stream and remaining ones\n        const remainingEntries = [...entriesSorted];\n        const remainingRequestInitialTimes = [...requestInitialTimes];\n        const remainingRequestItemTimes = [...requestItemTimes];\n        remainingEntries.splice(0, 1);\n        remainingRequestInitialTimes.splice(0, 1);\n        remainingRequestItemTimes.splice(0, 1);\n        // Reject binding on operations without sources\n        const sources = remainingEntries.map(entry => (0, utils_query_operation_1.getOperationSource)(entry.operation));\n        if (sources.some(source => !source)) {\n            return (0, core_1.failTest)(`Actor ${this.name} can not bind on remaining operations without source annotation`);\n        }\n        // Reject binding on operations with un-equal sources\n        if (sources.some(source => source !== sources[0])) {\n            return (0, core_1.failTest)(`Actor ${this.name} can not bind on remaining operations with non-equal source annotation`);\n        }\n        // Reject if the source can not handle bindings\n        const sourceWrapper = sources[0];\n        const testingOperation = this.createOperationFromEntries(algebraFactory, remainingEntries);\n        const selectorShape = await sourceWrapper.source.getSelectorShape(action.context);\n        if (!(0, utils_query_operation_1.doesShapeAcceptOperation)(selectorShape, testingOperation, { joinBindings: true })) {\n            return (0, core_1.failTest)(`Actor ${this.name} detected a source that can not handle passing down join bindings`);\n        }\n        // Determine selectivities of smallest entry with all other entries\n        const selectivities = await Promise.all(remainingEntries\n            .map(async (entry) => (await this.mediatorJoinSelectivity.mediate({\n            entries: [entriesSorted[0], entry],\n            context: action.context,\n        })).selectivity * this.selectivityModifier));\n        // Determine coefficients for remaining entries\n        const cardinalityRemaining = remainingEntries\n            .map((entry, i) => entry.metadata.cardinality.value * selectivities[i])\n            .reduce((sum, element) => sum + element, 0);\n        return (0, core_1.passTestWithSideData)({\n            iterations: 1,\n            persistedItems: metadatas[0].cardinality.value,\n            blockingItems: metadatas[0].cardinality.value,\n            requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n                requestInitialTimes[1] + cardinalityRemaining * requestItemTimes[1],\n        }, { ...sideData, entriesUnsorted, entriesSorted });\n    }\n    createOperationFromEntries(algebraFactory, remainingEntries) {\n        if (remainingEntries.length === 1) {\n            return remainingEntries[0].operation;\n        }\n        return algebraFactory.createJoin(remainingEntries.map(entry => entry.operation), true);\n    }\n}\nexports.ActorRdfJoinMultiBindSource = ActorRdfJoinMultiBindSource;\n//# sourceMappingURL=ActorRdfJoinMultiBindSource.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorRdfJoinMultiBindSource\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationJoinConnected = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Join Connected Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationJoinConnected extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const operation = sparqlalgebrajs_1.Util.mapOperation(action.operation, {\n            join(op, factory) {\n                return {\n                    recurse: false,\n                    result: ActorOptimizeQueryOperationJoinConnected.cluster(op, factory),\n                };\n            },\n        }, algebraFactory);\n        return { operation, context: action.context };\n    }\n    /**\n     * Iteratively cluster join entries based on their overlapping variables.\n     * @param op A join operation.\n     * @param factory An algebra factory.\n     */\n    static cluster(op, factory) {\n        // Initialize each entry to be in a separate cluster\n        const initialClusters = op.input.map(subOp => ({\n            inScopeVariables: Object.fromEntries(sparqlalgebrajs_1.Util.inScopeVariables(subOp).map(variable => [variable.value, true])),\n            entries: [subOp],\n        }));\n        // Iteratively merge clusters until they don't change anymore\n        let oldClusters;\n        let newClusters = initialClusters;\n        do {\n            oldClusters = newClusters;\n            newClusters = ActorOptimizeQueryOperationJoinConnected.clusterIteration(oldClusters);\n        } while (oldClusters.length !== newClusters.length);\n        // Create new join operation of latest clusters\n        const subJoins = newClusters\n            .map(cluster => cluster.entries.length === 1 ? cluster.entries[0] : factory.createJoin(cluster.entries));\n        return subJoins.length === 1 ? subJoins[0] : factory.createJoin(subJoins, false);\n    }\n    /**\n     * Perform a single clustering iteration.\n     * Clusters will be joined if they have overlapping variables.\n     * @param oldCluster\n     */\n    static clusterIteration(oldCluster) {\n        const newClusters = [];\n        for (const entry of oldCluster) {\n            // Try to add entry to a join cluster\n            let joined = false;\n            for (const newEntry of newClusters) {\n                if (ActorOptimizeQueryOperationJoinConnected\n                    .haveOverlappingVariables(entry.inScopeVariables, newEntry.inScopeVariables)) {\n                    newEntry.entries = [...newEntry.entries, ...entry.entries];\n                    newEntry.inScopeVariables = { ...newEntry.inScopeVariables, ...entry.inScopeVariables };\n                    joined = true;\n                    break;\n                }\n            }\n            // If none was found, create new cluster\n            if (!joined) {\n                newClusters.push({\n                    inScopeVariables: entry.inScopeVariables,\n                    entries: entry.entries,\n                });\n            }\n        }\n        return newClusters;\n    }\n    /**\n     * Check if the two given variable objects are overlapping.\n     * @param variablesA A variables objects.\n     * @param variablesB A variables objects.\n     */\n    static haveOverlappingVariables(variablesA, variablesB) {\n        for (const variableA of Object.keys(variablesA)) {\n            if (variablesB[variableA]) {\n                return true;\n            }\n        }\n        return false;\n    }\n}\nexports.ActorOptimizeQueryOperationJoinConnected = ActorOptimizeQueryOperationJoinConnected;\n//# sourceMappingURL=ActorOptimizeQueryOperationJoinConnected.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationJoinConnected\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationBgpToJoin = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica BGP to Join Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationBgpToJoin extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const operation = sparqlalgebrajs_1.Util.mapOperation(action.operation, {\n            bgp(op, factory) {\n                return {\n                    recurse: false,\n                    result: factory.createJoin(op.patterns),\n                };\n            },\n        }, algebraFactory);\n        return { operation, context: action.context };\n    }\n}\nexports.ActorOptimizeQueryOperationBgpToJoin = ActorOptimizeQueryOperationBgpToJoin;\n//# sourceMappingURL=ActorOptimizeQueryOperationBgpToJoin.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationBgpToJoin\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationJoinBgp = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Join BGP Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationJoinBgp extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const operation = sparqlalgebrajs_1.Util.mapOperation(action.operation, {\n            join(op, factory) {\n                if (op.input.every(subInput => subInput.type === 'bgp')) {\n                    return {\n                        recurse: false,\n                        result: factory.createBgp(op.input.flatMap(subInput => subInput.patterns)),\n                    };\n                }\n                return {\n                    recurse: false,\n                    result: op,\n                };\n            },\n        }, algebraFactory);\n        return { operation, context: action.context };\n    }\n}\nexports.ActorOptimizeQueryOperationJoinBgp = ActorOptimizeQueryOperationJoinBgp;\n//# sourceMappingURL=ActorOptimizeQueryOperationJoinBgp.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationJoinBgp\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationAssignSourcesExhaustive = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst bus_rdf_update_quads_1 = require(\"@comunica/bus-rdf-update-quads\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst utils_query_operation_1 = require(\"@comunica/utils-query-operation\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Assign Sources Exhaustive Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationAssignSourcesExhaustive extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    constructor(args) {\n        super(args);\n    }\n    async test(_action) {\n        return (0, core_1.passTestVoid)();\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const sources = action.context.get(context_entries_1.KeysQueryOperation.querySources) ?? [];\n        if (sources.length === 0) {\n            return { operation: action.operation, context: action.context };\n        }\n        if (sources.length === 1) {\n            const sourceWrapper = sources[0];\n            const destination = action.context.get(context_entries_1.KeysRdfUpdateQuads.destination);\n            if (!destination || sourceWrapper.source.referenceValue === (0, bus_rdf_update_quads_1.getDataDestinationValue)(destination)) {\n                try {\n                    const shape = await sourceWrapper.source.getSelectorShape(action.context);\n                    if ((0, utils_query_operation_1.doesShapeAcceptOperation)(shape, action.operation)) {\n                        return {\n                            operation: (0, utils_query_operation_1.assignOperationSource)(action.operation, sourceWrapper),\n                            context: action.context,\n                        };\n                    }\n                }\n                catch {\n                    // Fallback to the default case when the selector shape does not exist,\n                    // which can occur for a non-existent destination.\n                }\n            }\n        }\n        return {\n            operation: this.assignExhaustive(algebraFactory, action.operation, sources),\n            // We only keep queryString in the context if we only have a single source that accepts the full operation.\n            // In that case, the queryString can be sent to the source as-is.\n            context: action.context\n                .delete(context_entries_1.KeysInitQuery.queryString),\n        };\n    }\n    /**\n     * Assign the given sources to the leaves in the given query operation.\n     * Leaves will be wrapped in a union operation and duplicated for every source.\n     * The input operation will not be modified.\n     * @param algebraFactory The algebra factory.\n     * @param operation The input operation.\n     * @param sources The sources to assign.\n     */\n    assignExhaustive(algebraFactory, operation, sources) {\n        // eslint-disable-next-line ts/no-this-alias\n        const self = this;\n        return sparqlalgebrajs_1.Util.mapOperation(operation, {\n            [sparqlalgebrajs_1.Algebra.types.PATTERN](subOperation, factory) {\n                if (sources.length === 1) {\n                    return {\n                        result: (0, utils_query_operation_1.assignOperationSource)(subOperation, sources[0]),\n                        recurse: false,\n                    };\n                }\n                return {\n                    result: factory.createUnion(sources\n                        .map(source => (0, utils_query_operation_1.assignOperationSource)(subOperation, source))),\n                    recurse: false,\n                };\n            },\n            [sparqlalgebrajs_1.Algebra.types.LINK](subOperation, factory) {\n                if (sources.length === 1) {\n                    return {\n                        result: (0, utils_query_operation_1.assignOperationSource)(subOperation, sources[0]),\n                        recurse: false,\n                    };\n                }\n                return {\n                    result: factory.createAlt(sources\n                        .map(source => (0, utils_query_operation_1.assignOperationSource)(subOperation, source))),\n                    recurse: false,\n                };\n            },\n            [sparqlalgebrajs_1.Algebra.types.NPS](subOperation, factory) {\n                if (sources.length === 1) {\n                    return {\n                        result: (0, utils_query_operation_1.assignOperationSource)(subOperation, sources[0]),\n                        recurse: false,\n                    };\n                }\n                return {\n                    result: factory.createAlt(sources\n                        .map(source => (0, utils_query_operation_1.assignOperationSource)(subOperation, source))),\n                    recurse: false,\n                };\n            },\n            [sparqlalgebrajs_1.Algebra.types.SERVICE](subOperation) {\n                return {\n                    result: subOperation,\n                    recurse: false,\n                };\n            },\n            [sparqlalgebrajs_1.Algebra.types.CONSTRUCT](subOperation, factory) {\n                return {\n                    result: factory.createConstruct(self.assignExhaustive(algebraFactory, subOperation.input, sources), subOperation.template),\n                    recurse: false,\n                };\n            },\n            [sparqlalgebrajs_1.Algebra.types.DELETE_INSERT](subOperation, factory) {\n                return {\n                    result: factory.createDeleteInsert(subOperation.delete, subOperation.insert, subOperation.where ? self.assignExhaustive(algebraFactory, subOperation.where, sources) : undefined),\n                    recurse: false,\n                };\n            },\n        }, algebraFactory);\n    }\n}\nexports.ActorOptimizeQueryOperationAssignSourcesExhaustive = ActorOptimizeQueryOperationAssignSourcesExhaustive;\n//# sourceMappingURL=ActorOptimizeQueryOperationAssignSourcesExhaustive.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationAssignSourcesExhaustive\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActorOptimizeQueryOperationDescribeToConstructsSubject = void 0;\nconst bus_optimize_query_operation_1 = require(\"@comunica/bus-optimize-query-operation\");\nconst context_entries_1 = require(\"@comunica/context-entries\");\nconst core_1 = require(\"@comunica/core\");\nconst sparqlalgebrajs_1 = require(\"sparqlalgebrajs\");\n/**\n * A comunica Describe To Constructs Subject Optimize Query Operation Actor.\n */\nclass ActorOptimizeQueryOperationDescribeToConstructsSubject extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {\n    constructor(args) {\n        super(args);\n    }\n    async test(action) {\n        if (action.operation.type !== sparqlalgebrajs_1.Algebra.types.DESCRIBE) {\n            return (0, core_1.failTest)(`Actor ${this.name} only supports describe operations, but got ${action.operation.type}`);\n        }\n        return (0, core_1.passTest)(true);\n    }\n    async run(action) {\n        const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);\n        const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);\n        const operationOriginal = action.operation;\n        // Create separate construct queries for all non-variable terms\n        const operations = operationOriginal.terms\n            .filter(term => term.termType !== 'Variable')\n            .map((term) => {\n            // Transform each term to a separate construct operation with S ?p ?o patterns (BGP) for all terms\n            const patterns = [\n                dataFactory.quad(term, dataFactory.variable('__predicate'), dataFactory.variable('__object')),\n            ];\n            // eslint-disable-next-line unicorn/no-array-for-each\n            patterns.forEach((templatePattern) => templatePattern.type = 'pattern');\n            const templateOperation = {\n                type: sparqlalgebrajs_1.Algebra.types.BGP,\n                patterns: patterns,\n            };\n            // Create a construct query\n            return {\n                input: templateOperation,\n                template: patterns,\n                type: 'construct',\n            };\n        });\n        // If we have variables in the term list,\n        // create one separate construct operation to determine these variables using the input pattern.\n        if (operations.length !== operationOriginal.terms.length) {\n            let variablePatterns = [];\n            operationOriginal.terms\n                .filter(term => term.termType === 'Variable')\n                // eslint-disable-next-line unicorn/no-array-for-each\n                .forEach((term, i) => {\n                // Transform each term to an S ?p ?o pattern in a non-conflicting way\n                const patterns = [\n                    dataFactory.quad(term, dataFactory.variable(`__predicate${i}`), dataFactory.variable(`__object${i}`)),\n                ];\n                // eslint-disable-next-line unicorn/no-array-for-each\n                patterns.forEach((templatePattern) => templatePattern.type = 'pattern');\n                variablePatterns = [...variablePatterns, ...patterns];\n            });\n            // Add a single construct for the variables\n            // This requires a join between the input pattern and our variable patterns that form a simple BGP\n            operations.push({\n                input: {\n                    type: sparqlalgebrajs_1.Algebra.types.JOIN,\n                    input: [\n                        operationOriginal.input,\n                        { type: sparqlalgebrajs_1.Algebra.types.BGP, patterns: variablePatterns },\n                    ],\n                },\n                template: variablePatterns,\n                type: sparqlalgebrajs_1.Algebra.types.CONSTRUCT,\n            });\n        }\n        // Union the construct operations\n        const operation = algebraFactory.createUnion(operations, false);\n        return { operation, context: action.context };\n    }\n}\nexports.ActorOptimizeQueryOperationDescribeToConstructsSubject = ActorOptimizeQueryOperationDescribeToConstructsSubject;\n//# sourceMappingURL=ActorOptimizeQueryOperationDescribeToConstructsSubject.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ActorOptimizeQueryOperationDescribeToConstructsSubject\"), exports);\n//# sourceMappingURL=index.js.map","module.exports = function(variables) {\nfunction getVariableValue(name) {\n  if (!variables || !(name in variables)) {\n    throw new Error('Undefined variable: ' + name);\n  }\n  return variables[name];\n}\nconst df_719_1 = new (require('@comunica/logger-void').LoggerVoid)();\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_init__4_0_0_components_ActorInit_jsonld_ActorInit_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-init/^4.0.0/components/ActorInit.jsonld#ActorInit_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__4_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-context-preprocess/^4.0.0/components/ActorContextPreprocess.jsonld#ActorContextPreprocess_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_bindings__4_0_0_components_ActorHashBindings_jsonld_ActorHashBindings_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-hash-bindings/^4.0.0/components/ActorHashBindings.jsonld#ActorHashBindings_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_quads__4_0_0_components_ActorHashQuads_jsonld_ActorHashQuads_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-hash-quads/^4.0.0/components/ActorHashQuads.jsonld#ActorHashQuads_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-optimize-query-operation/^4.0.0/components/ActorOptimizeQueryOperation.jsonld#ActorOptimizeQueryOperation_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_parse__4_0_0_components_ActorQueryParse_jsonld_ActorQueryParse_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-parse/^4.0.0/components/ActorQueryParse.jsonld#ActorQueryParse_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-result-serialize/^4.0.0/components/ActorQueryResultSerialize.jsonld#ActorQueryResultSerialize_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__4_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-source-identify-hypermedia/^4.0.0/components/ActorQuerySourceIdentifyHypermedia.jsonld#ActorQuerySourceIdentifyHypermedia_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference__4_0_0_components_ActorDereference_jsonld_ActorDereference_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-dereference/^4.0.0/components/ActorDereference.jsonld#ActorDereference_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference_rdf__4_0_0_components_ActorDereferenceRdf_jsonld_ActorDereferenceRdf_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-dereference-rdf/^4.0.0/components/ActorDereferenceRdf.jsonld#ActorDereferenceRdf_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_entries_sort__4_0_0_components_ActorRdfJoinEntriesSort_jsonld_ActorRdfJoinEntriesSort_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join-entries-sort/^4.0.0/components/ActorRdfJoinEntriesSort.jsonld#ActorRdfJoinEntriesSort_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_selectivity__4_0_0_components_ActorRdfJoinSelectivity_jsonld_ActorRdfJoinSelectivity_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join-selectivity/^4.0.0/components/ActorRdfJoinSelectivity.jsonld#ActorRdfJoinSelectivity_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata__4_0_0_components_ActorRdfMetadata_jsonld_ActorRdfMetadata_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata/^4.0.0/components/ActorRdfMetadata.jsonld#ActorRdfMetadata_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__4_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata-accumulate/^4.0.0/components/ActorRdfMetadataAccumulate.jsonld#ActorRdfMetadataAccumulate_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-metadata-extract/^4.0.0/components/ActorRdfMetadataExtract.jsonld#ActorRdfMetadataExtract_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__4_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse/^4.0.0/components/ActorRdfParse.jsonld#ActorRdfParse_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__4_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-parse-html/^4.0.0/components/ActorRdfParseHtml.jsonld#ActorRdfParseHtml_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links__4_0_0_components_ActorRdfResolveHypermediaLinks_jsonld_ActorRdfResolveHypermediaLinks_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia-links/^4.0.0/components/ActorRdfResolveHypermediaLinks.jsonld#ActorRdfResolveHypermediaLinks_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links_queue__4_0_0_components_ActorRdfResolveHypermediaLinksQueue_jsonld_ActorRdfResolveHypermediaLinksQueue_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-resolve-hypermedia-links-queue/^4.0.0/components/ActorRdfResolveHypermediaLinksQueue.jsonld#ActorRdfResolveHypermediaLinksQueue_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__4_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-serialize/^4.0.0/components/ActorRdfSerialize.jsonld#ActorRdfSerialize_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__4_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-update-hypermedia/^4.0.0/components/ActorRdfUpdateHypermedia.jsonld#ActorRdfUpdateHypermedia_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_quads__4_0_0_components_ActorRdfUpdateQuads_jsonld_ActorRdfUpdateQuads_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-update-quads/^4.0.0/components/ActorRdfUpdateQuads.jsonld#ActorRdfUpdateQuads_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-bindings-aggregator-factory/^4.0.0/components/ActorBindingsAggregatorFactory.jsonld#ActorBindingsAggregatorFactory_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_expression_evaluator_factory__4_0_0_components_ActorExpressionEvaluatorFactory_jsonld_ActorExpressionEvaluatorFactory_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-expression-evaluator-factory/^4.0.0/components/ActorExpressionEvaluatorFactory.jsonld#ActorExpressionEvaluatorFactory_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus = new (require('@comunica/bus-function-factory').BusFunctionFactory)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-function-factory/^4.0.0/components/ActorFunctionFactory.jsonld#ActorFunctionFactory_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http/^4.0.0/components/ActorHttp.jsonld#ActorHttp_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_fallback_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http/^4.0.0/components/ActorHttp.jsonld#ActorHttp_fallback_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus = new (require('@comunica/bus-query-operation').BusQueryOperation)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-operation/^4.0.0/components/ActorQueryOperation.jsonld#ActorQueryOperation_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__4_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-process/^4.0.0/components/ActorQueryProcess.jsonld#ActorQueryProcess_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__4_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-source-identify/^4.0.0/components/ActorQuerySourceIdentify.jsonld#ActorQuerySourceIdentify_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join/^4.0.0/components/ActorRdfJoin.jsonld#ActorRdfJoin_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_term_comparator_factory__4_0_0_components_ActorTermComparatorFactory_jsonld_ActorTermComparatorFactory_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-term-comparator-factory/^4.0.0/components/ActorTermComparatorFactory.jsonld#ActorTermComparatorFactory_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__4_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-http-invalidate/^4.0.0/components/ActorHttpInvalidate.jsonld#ActorHttpInvalidate_default_bus'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_merge_bindings_context__4_0_0_components_ActorMergeBindingsContext_jsonld_ActorMergeBindingsContext_default_bus = new (require('@comunica/core').Bus)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-merge-bindings-context/^4.0.0/components/ActorMergeBindingsContext.jsonld#ActorMergeBindingsContext_default_bus'\n});\nconst urn_comunica_default_context_preprocess_actors_convert_shortcuts = new (require('@comunica/actor-context-preprocess-convert-shortcuts').ActorContextPreprocessConvertShortcuts)({\n  'contextKeyShortcuts': {\"baseIRI\":\"@comunica/actor-init-query:baseIRI\",\"dataFactory\":\"@comunica/actor-init-query:dataFactory\",\"datetime\":\"@comunica/actor-http-memento:datetime\",\"destination\":\"@comunica/bus-rdf-update-quads:destination\",\"distinctConstruct\":\"@comunica/actor-init-query:distinctConstruct\",\"explain\":\"@comunica/actor-init-query:explain\",\"extensionFunctionCreator\":\"@comunica/actor-init-query:extensionFunctionCreator\",\"extensionFunctions\":\"@comunica/actor-init-query:extensionFunctions\",\"fetch\":\"@comunica/bus-http:fetch\",\"functionArgumentsCache\":\"@comunica/actor-init-query:functionArgumentsCache\",\"httpAuth\":\"@comunica/bus-http:auth\",\"httpBodyTimeout\":\"@comunica/bus-http:http-body-timeout\",\"httpIncludeCredentials\":\"@comunica/bus-http:include-credentials\",\"httpProxyHandler\":\"@comunica/actor-http-proxy:httpProxyHandler\",\"httpRetryCount\":\"@comunica/bus-http:http-retry-count\",\"httpRetryDelayFallback\":\"@comunica/bus-http:http-retry-delay-fallback\",\"httpRetryDelayLimit\":\"@comunica/bus-http:http-retry-delay-limit\",\"httpTimeout\":\"@comunica/bus-http:http-timeout\",\"initialBindings\":\"@comunica/actor-init-query:initialBindings\",\"invalidateCache\":\"@comunica/actor-init-query:invalidateCache\",\"lenient\":\"@comunica/actor-init-query:lenient\",\"log\":\"@comunica/core:log\",\"queryFormat\":\"@comunica/actor-init-query:queryFormat\",\"queryTimestamp\":\"@comunica/actor-init-query:queryTimestamp\",\"queryTimestampHighResolution\":\"@comunica/actor-init-query:queryTimestampHighResolution\",\"readOnly\":\"@comunica/bus-query-operation:readOnly\",\"recoverBrokenLinks\":\"@comunica/bus-http-wayback:recover-broken-links\",\"sources\":\"@comunica/actor-init-query:querySourcesUnidentified\",\"traverse\":\"@comunica/bus-query-source-identify:traverse\",\"unionDefaultGraph\":\"@comunica/bus-query-operation:unionDefaultGraph\"},\n  'name': 'urn:comunica:default:context-preprocess/actors#convert-shortcuts',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__4_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus,\n  'busFailMessage': 'Context preprocessing failed'\n});\nconst urn_comunica_default_context_preprocess_actors_set_defaults = new (require('@comunica/actor-context-preprocess-set-defaults').ActorContextPreprocessSetDefaults)({\n  'logger': df_719_1,\n  'name': 'urn:comunica:default:context-preprocess/actors#set-defaults',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__4_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus,\n  'busFailMessage': 'Context preprocessing failed'\n});\nconst urn_comunica_default_context_preprocess_actors_source_to_destination = new (require('@comunica/actor-context-preprocess-source-to-destination').ActorContextPreprocessSourceToDestination)({\n  'name': 'urn:comunica:default:context-preprocess/actors#source-to-destination',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__4_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus,\n  'busFailMessage': 'Context preprocessing failed'\n});\nconst urn_comunica_default_context_preprocess_actors_query_source_skolemize = new (require('@comunica/actor-context-preprocess-query-source-skolemize').ActorContextPreprocessQuerySourceSkolemize)({\n  'name': 'urn:comunica:default:context-preprocess/actors#query-source-skolemize',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__4_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus,\n  'busFailMessage': 'Context preprocessing failed'\n});\nconst urn_comunica_default_context_preprocess_mediators_main = new (require('@comunica/mediator-combine-pipeline').MediatorCombinePipeline)({\n  'name': 'urn:comunica:default:context-preprocess/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__4_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus\n});\nconst urn_comunica_default_hash_bindings_actors_murmur = new (require('@comunica/actor-hash-bindings-murmur').ActorHashBindingsMurmur)({\n  'name': 'urn:comunica:default:hash-bindings/actors#murmur',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_bindings__4_0_0_components_ActorHashBindings_jsonld_ActorHashBindings_default_bus,\n  'busFailMessage': 'Failed to obtaining hash functions for bindings'\n});\nconst urn_comunica_default_hash_bindings_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:hash-bindings/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_bindings__4_0_0_components_ActorHashBindings_jsonld_ActorHashBindings_default_bus\n});\nconst urn_comunica_default_hash_quads_actors_murmur = new (require('@comunica/actor-hash-quads-murmur').ActorHashQuadsMurmur)({\n  'name': 'urn:comunica:default:hash-quads/actors#murmur',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_quads__4_0_0_components_ActorHashQuads_jsonld_ActorHashQuads_default_bus,\n  'busFailMessage': 'Failed to obtaining hash functions for quads'\n});\nconst urn_comunica_default_optimize_query_operation_actors_rewrite_copy = new (require('@comunica/actor-optimize-query-operation-rewrite-copy').ActorOptimizeQueryOperationRewriteCopy)({\n  'name': 'urn:comunica:default:optimize-query-operation/actors#rewrite-copy',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize'\n});\nconst urn_comunica_default_optimize_query_operation_actors_rewrite_move = new (require('@comunica/actor-optimize-query-operation-rewrite-move').ActorOptimizeQueryOperationRewriteMove)({\n  'name': 'urn:comunica:default:optimize-query-operation/actors#rewrite-move',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize'\n});\nconst urn_comunica_default_optimize_query_operation_actors_rewrite_add = new (require('@comunica/actor-optimize-query-operation-rewrite-add').ActorOptimizeQueryOperationRewriteAdd)({\n  'name': 'urn:comunica:default:optimize-query-operation/actors#rewrite-add',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize'\n});\nconst urn_comunica_default_optimize_query_operation_actors_group_sources = new (require('@comunica/actor-optimize-query-operation-group-sources').ActorOptimizeQueryOperationGroupSources)({\n  'name': 'urn:comunica:default:optimize-query-operation/actors#group-sources',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize'\n});\nconst urn_comunica_default_optimize_query_operation_actors_construct_distinct = new (require('@comunica/actor-optimize-query-operation-construct-distinct').ActorOptimizeQueryOperationConstructDistinct)({\n  'name': 'urn:comunica:default:optimize-query-operation/actors#construct-distinct',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize'\n});\nconst urn_comunica_default_optimize_query_operation_mediators_main = new (require('@comunica/mediator-combine-pipeline').MediatorCombinePipeline)({\n  'filterFailures': true,\n  'name': 'urn:comunica:default:optimize-query-operation/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus\n});\nconst urn_comunica_default_query_parse_actors_sparql = new (require('@comunica/actor-query-parse-sparql').ActorQueryParseSparql)({\n  'prefixes': {\"dbpedia\":\"http://dbpedia.org/resource/\",\"dbpedia-owl\":\"http://dbpedia.org/ontology/\",\"dbpprop\":\"http://dbpedia.org/property/\",\"dc\":\"http://purl.org/dc/terms/\",\"dc11\":\"http://purl.org/dc/elements/1.1/\",\"dcterms\":\"http://purl.org/dc/terms/\",\"foaf\":\"http://xmlns.com/foaf/0.1/\",\"geo\":\"http://www.w3.org/2003/01/geo/wgs84_pos#\",\"owl\":\"http://www.w3.org/2002/07/owl#\",\"rdf\":\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\"rdfs\":\"http://www.w3.org/2000/01/rdf-schema#\",\"schema\":\"http://schema.org/\",\"skos\":\"http://www.w3.org/2008/05/skos#\",\"xsd\":\"http://www.w3.org/2001/XMLSchema#\"},\n  'name': 'urn:comunica:default:query-parse/actors#sparql',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_parse__4_0_0_components_ActorQueryParse_jsonld_ActorQueryParse_default_bus,\n  'busFailMessage': 'Query parsing failed: none of the configured parsers were able to the query \"${action.query}\"'\n});\nconst urn_comunica_default_query_parse_actors_graphql = new (require('@comunica/actor-query-parse-graphql').ActorQueryParseGraphql)({\n  'name': 'urn:comunica:default:query-parse/actors#graphql',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_parse__4_0_0_components_ActorQueryParse_jsonld_ActorQueryParse_default_bus,\n  'busFailMessage': 'Query parsing failed: none of the configured parsers were able to the query \"${action.query}\"'\n});\nconst urn_comunica_default_query_parse_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:query-parse/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_parse__4_0_0_components_ActorQueryParse_jsonld_ActorQueryParse_default_bus\n});\nconst urn_comunica_default_query_result_serialize_actors_json = new (require('@comunica/actor-query-result-serialize-json').ActorQueryResultSerializeJson)({\n  'mediaTypePriorities': {\"application/json\":1},\n  'mediaTypeFormats': {\"application/json\":\"https://comunica.linkeddatafragments.org/#results_JSON\"},\n  'name': 'urn:comunica:default:query-result-serialize/actors#json',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus,\n  'busFailMessage': 'Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}'\n});\nconst urn_comunica_default_query_result_serialize_actors_simple = new (require('@comunica/actor-query-result-serialize-simple').ActorQueryResultSerializeSimple)({\n  'mediaTypePriorities': {\"simple\":0.9},\n  'mediaTypeFormats': {\"simple\":\"https://comunica.linkeddatafragments.org/#results_simple\"},\n  'name': 'urn:comunica:default:query-result-serialize/actors#simple',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus,\n  'busFailMessage': 'Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}'\n});\nconst urn_comunica_default_query_result_serialize_actors_csv = new (require('@comunica/actor-query-result-serialize-sparql-csv').ActorQueryResultSerializeSparqlCsv)({\n  'mediaTypePriorities': {\"text/csv\":0.75},\n  'mediaTypeFormats': {\"text/csv\":\"http://www.w3.org/ns/formats/SPARQL_Results_CSV\"},\n  'name': 'urn:comunica:default:query-result-serialize/actors#csv',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus,\n  'busFailMessage': 'Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}'\n});\nconst urn_comunica_default_query_result_serialize_actors_sparql_tsv = new (require('@comunica/actor-query-result-serialize-sparql-tsv').ActorQueryResultSerializeSparqlTsv)({\n  'mediaTypePriorities': {\"text/tab-separated-values\":0.75},\n  'mediaTypeFormats': {\"text/tab-separated-values\":\"http://www.w3.org/ns/formats/SPARQL_Results_TSV\"},\n  'name': 'urn:comunica:default:query-result-serialize/actors#sparql-tsv',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus,\n  'busFailMessage': 'Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}'\n});\nconst urn_comunica_default_query_result_serialize_actors_sparql_xml = new (require('@comunica/actor-query-result-serialize-sparql-xml').ActorQueryResultSerializeSparqlXml)({\n  'mediaTypePriorities': {\"application/sparql-results+xml\":0.8},\n  'mediaTypeFormats': {\"application/sparql-results+xml\":\"http://www.w3.org/ns/formats/SPARQL_Results_XML\"},\n  'name': 'urn:comunica:default:query-result-serialize/actors#sparql-xml',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus,\n  'busFailMessage': 'Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}'\n});\nconst urn_comunica_default_query_result_serialize_actors_table = new (require('@comunica/actor-query-result-serialize-table').ActorQueryResultSerializeTable)({\n  'columnWidth': 50,\n  'mediaTypePriorities': {\"table\":0.6},\n  'mediaTypeFormats': {\"table\":\"https://comunica.linkeddatafragments.org/#results_table\"},\n  'name': 'urn:comunica:default:query-result-serialize/actors#table',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus,\n  'busFailMessage': 'Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}'\n});\nconst urn_comunica_default_query_result_serialize_actors_tree = new (require('@comunica/actor-query-result-serialize-tree').ActorQueryResultSerializeTree)({\n  'mediaTypePriorities': {\"tree\":0.5},\n  'mediaTypeFormats': {\"tree\":\"https://comunica.linkeddatafragments.org/#results_tree\"},\n  'name': 'urn:comunica:default:query-result-serialize/actors#tree',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus,\n  'busFailMessage': 'Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}'\n});\nconst urn_comunica_default_query_result_serialize_mediators_serialize = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:query-result-serialize/mediators#serialize',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_mediators_mediaType = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n  'field': 'mediaTypes',\n  'name': 'urn:comunica:default:query-result-serialize/mediators#mediaType',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_result_serialize_mediators_mediaTypeFormat = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n  'field': 'mediaTypeFormats',\n  'name': 'urn:comunica:default:query-result-serialize/mediators#mediaTypeFormat',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus\n});\nconst urn_comunica_default_query_source_identify_hypermedia_mediators_main = new (require('@comunica/mediator-number').MediatorNumber)({\n  'field': 'filterFactor',\n  'type': 'max',\n  'ignoreFailures': true,\n  'name': 'urn:comunica:default:query-source-identify-hypermedia/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__4_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus\n});\nconst urn_comunica_default_dereference_actors_fallback = new (require('@comunica/actor-dereference-fallback').ActorDereferenceFallback)({\n  'name': 'urn:comunica:default:dereference/actors#fallback',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference__4_0_0_components_ActorDereference_jsonld_ActorDereference_default_bus,\n  'busFailMessage': 'Dereferencing failed: none of the configured actors were able to handle ${action.url}'\n});\nconst urn_comunica_default_dereference_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:dereference/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference__4_0_0_components_ActorDereference_jsonld_ActorDereference_default_bus\n});\nconst urn_comunica_default_dereference_rdf_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:dereference-rdf/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference_rdf__4_0_0_components_ActorDereferenceRdf_jsonld_ActorDereferenceRdf_default_bus\n});\nconst urn_comunica_default_rdf_join_entries_sort_actors_cardinality = new (require('@comunica/actor-rdf-join-entries-sort-cardinality').ActorRdfJoinEntriesSortCardinality)({\n  'name': 'urn:comunica:default:rdf-join-entries-sort/actors#cardinality',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_entries_sort__4_0_0_components_ActorRdfJoinEntriesSort_jsonld_ActorRdfJoinEntriesSort_default_bus,\n  'busFailMessage': 'Sorting join entries failed: none of the configured actors were able to sort'\n});\nconst urn_comunica_default_rdf_join_entries_sort_mediators_main = new (require('@comunica/mediator-number').MediatorNumber)({\n  'field': 'accuracy',\n  'type': 'max',\n  'ignoreFailures': true,\n  'name': 'urn:comunica:default:rdf-join-entries-sort/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_entries_sort__4_0_0_components_ActorRdfJoinEntriesSort_jsonld_ActorRdfJoinEntriesSort_default_bus\n});\nconst urn_comunica_default_rdf_join_selectivity_actors_variable_counting = new (require('@comunica/actor-rdf-join-selectivity-variable-counting').ActorRdfJoinSelectivityVariableCounting)({\n  'name': 'urn:comunica:default:rdf-join-selectivity/actors#variable-counting',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_selectivity__4_0_0_components_ActorRdfJoinSelectivity_jsonld_ActorRdfJoinSelectivity_default_bus,\n  'busFailMessage': 'Determining join selectivity failed: none of the configured actors were able to calculate selectivities'\n});\nconst urn_comunica_default_rdf_join_selectivity_mediators_main = new (require('@comunica/mediator-number').MediatorNumber)({\n  'field': 'accuracy',\n  'type': 'max',\n  'ignoreFailures': true,\n  'name': 'urn:comunica:default:rdf-join-selectivity/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_selectivity__4_0_0_components_ActorRdfJoinSelectivity_jsonld_ActorRdfJoinSelectivity_default_bus\n});\nconst urn_comunica_default_rdf_metadata_actors_primary_topic = new (require('@comunica/actor-rdf-metadata-primary-topic').ActorRdfMetadataPrimaryTopic)({\n  'metadataToData': false,\n  'dataToMetadataOnInvalidMetadataGraph': true,\n  'name': 'urn:comunica:default:rdf-metadata/actors#primary-topic',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata__4_0_0_components_ActorRdfMetadata_jsonld_ActorRdfMetadata_default_bus,\n  'busFailMessage': 'Metadata splicing failed: none of the configured actors were able to splice metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_actors_all = new (require('@comunica/actor-rdf-metadata-all').ActorRdfMetadataAll)({\n  'name': 'urn:comunica:default:rdf-metadata/actors#all',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata__4_0_0_components_ActorRdfMetadata_jsonld_ActorRdfMetadata_default_bus,\n  'busFailMessage': 'Metadata splicing failed: none of the configured actors were able to splice metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:rdf-metadata/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata__4_0_0_components_ActorRdfMetadata_jsonld_ActorRdfMetadata_default_bus\n});\nconst urn_comunica_default_rdf_metadata_accumulate_actors_cardinality = new (require('@comunica/actor-rdf-metadata-accumulate-cardinality').ActorRdfMetadataAccumulateCardinality)({\n  'name': 'urn:comunica:default:rdf-metadata-accumulate/actors#cardinality',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__4_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus,\n  'busFailMessage': 'Metadata accumulation failed: none of the configured actors were able to accumulate metadata in mode ${action.mode}'\n});\nconst urn_comunica_default_rdf_metadata_accumulate_actors_pagesize = new (require('@comunica/actor-rdf-metadata-accumulate-pagesize').ActorRdfMetadataAccumulatePageSize)({\n  'name': 'urn:comunica:default:rdf-metadata-accumulate/actors#pagesize',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__4_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus,\n  'busFailMessage': 'Metadata accumulation failed: none of the configured actors were able to accumulate metadata in mode ${action.mode}'\n});\nconst urn_comunica_default_rdf_metadata_accumulate_actors_requesttime = new (require('@comunica/actor-rdf-metadata-accumulate-requesttime').ActorRdfMetadataAccumulateRequestTime)({\n  'name': 'urn:comunica:default:rdf-metadata-accumulate/actors#requesttime',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__4_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus,\n  'busFailMessage': 'Metadata accumulation failed: none of the configured actors were able to accumulate metadata in mode ${action.mode}'\n});\nconst urn_comunica_default_rdf_metadata_accumulate_mediators_main = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n  'field': 'metadata',\n  'name': 'urn:comunica:default:rdf-metadata-accumulate/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__4_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_hydra_controls = new (require('@comunica/actor-rdf-metadata-extract-hydra-controls').ActorRdfMetadataExtractHydraControls)({\n  'name': 'urn:comunica:default:rdf-metadata-extract/actors#hydra-controls',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus,\n  'busFailMessage': 'Metadata extraction failed: none of the configured actors were able to extract metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_hydra_count = new (require('@comunica/actor-rdf-metadata-extract-hydra-count').ActorRdfMetadataExtractHydraCount)({\n  'predicates': [\n  'http://www.w3.org/ns/hydra/core#totalItems',\n  'http://rdfs.org/ns/void#triples'\n],\n  'name': 'urn:comunica:default:rdf-metadata-extract/actors#hydra-count',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus,\n  'busFailMessage': 'Metadata extraction failed: none of the configured actors were able to extract metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_hydra_pagesize = new (require('@comunica/actor-rdf-metadata-extract-hydra-pagesize').ActorRdfMetadataExtractHydraPagesize)({\n  'predicates': [\n  'http://www.w3.org/ns/hydra/core#itemsPerPage'\n],\n  'name': 'urn:comunica:default:rdf-metadata-extract/actors#hydra-pagesize',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus,\n  'busFailMessage': 'Metadata extraction failed: none of the configured actors were able to extract metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_request_time = new (require('@comunica/actor-rdf-metadata-extract-request-time').ActorRdfMetadataExtractRequestTime)({\n  'name': 'urn:comunica:default:rdf-metadata-extract/actors#request-time',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus,\n  'busFailMessage': 'Metadata extraction failed: none of the configured actors were able to extract metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_allow_http_methods = new (require('@comunica/actor-rdf-metadata-extract-allow-http-methods').ActorRdfMetadataExtractAllowHttpMethods)({\n  'name': 'urn:comunica:default:rdf-metadata-extract/actors#allow-http-methods',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus,\n  'busFailMessage': 'Metadata extraction failed: none of the configured actors were able to extract metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_put_accepted = new (require('@comunica/actor-rdf-metadata-extract-put-accepted').ActorRdfMetadataExtractPutAccepted)({\n  'name': 'urn:comunica:default:rdf-metadata-extract/actors#put-accepted',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus,\n  'busFailMessage': 'Metadata extraction failed: none of the configured actors were able to extract metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_patch_sparql_update = new (require('@comunica/actor-rdf-metadata-extract-patch-sparql-update').ActorRdfMetadataExtractPatchSparqlUpdate)({\n  'name': 'urn:comunica:default:rdf-metadata-extract/actors#patch-sparql-update',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus,\n  'busFailMessage': 'Metadata extraction failed: none of the configured actors were able to extract metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_sparql_service = new (require('@comunica/actor-rdf-metadata-extract-sparql-service').ActorRdfMetadataExtractSparqlService)({\n  'inferHttpsEndpoint': true,\n  'name': 'urn:comunica:default:rdf-metadata-extract/actors#sparql-service',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus,\n  'busFailMessage': 'Metadata extraction failed: none of the configured actors were able to extract metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_extract_actors_void = new (require('@comunica/actor-rdf-metadata-extract-void').ActorRdfMetadataExtractVoid)({\n  'name': 'urn:comunica:default:rdf-metadata-extract/actors#void',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus,\n  'busFailMessage': 'Metadata extraction failed: none of the configured actors were able to extract metadata from ${action.url}'\n});\nconst urn_comunica_default_rdf_metadata_extract_mediators_main = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n  'filterFailures': true,\n  'field': 'metadata',\n  'name': 'urn:comunica:default:rdf-metadata-extract/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus\n});\nconst urn_comunica_default_rdf_parse_actors_n3 = new (require('@comunica/actor-rdf-parse-n3').ActorRdfParseN3)({\n  'mediaTypePriorities': {\"application/n-quads\":1,\"application/n-triples\":0.8,\"application/trig\":0.95,\"text/n3\":0.35,\"text/turtle\":0.6},\n  'mediaTypeFormats': {\"application/n-quads\":\"http://www.w3.org/ns/formats/N-Quads\",\"application/n-triples\":\"http://www.w3.org/ns/formats/N-Triples\",\"application/trig\":\"http://www.w3.org/ns/formats/TriG\",\"text/n3\":\"http://www.w3.org/ns/formats/N3\",\"text/turtle\":\"http://www.w3.org/ns/formats/Turtle\"},\n  'priorityScale': 1,\n  'name': 'urn:comunica:default:rdf-parse/actors#n3',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__4_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus,\n  'busFailMessage': 'RDF parsing failed: none of the configured parsers were able to handle the media type ${action.handle.mediaType} for ${action.handle.url}'\n});\nconst urn_comunica_default_rdf_parse_actors_rdfxml = new (require('@comunica/actor-rdf-parse-rdfxml').ActorRdfParseRdfXml)({\n  'mediaTypePriorities': {\"application/rdf+xml\":1},\n  'mediaTypeFormats': {\"application/rdf+xml\":\"http://www.w3.org/ns/formats/RDF_XML\"},\n  'priorityScale': 0.5,\n  'name': 'urn:comunica:default:rdf-parse/actors#rdfxml',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__4_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus,\n  'busFailMessage': 'RDF parsing failed: none of the configured parsers were able to handle the media type ${action.handle.mediaType} for ${action.handle.url}'\n});\nconst urn_comunica_default_rdf_parse_actors_xmlrdfa = new (require('@comunica/actor-rdf-parse-xml-rdfa').ActorRdfParseXmlRdfa)({\n  'mediaTypePriorities': {\"application/xml\":1,\"image/svg+xml\":1,\"text/xml\":1},\n  'mediaTypeFormats': {\"application/xml\":\"http://www.w3.org/ns/formats/RDFa\",\"image/svg+xml\":\"http://www.w3.org/ns/formats/RDFa\",\"text/xml\":\"http://www.w3.org/ns/formats/RDFa\"},\n  'priorityScale': 0.3,\n  'name': 'urn:comunica:default:rdf-parse/actors#xmlrdfa',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__4_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus,\n  'busFailMessage': 'RDF parsing failed: none of the configured parsers were able to handle the media type ${action.handle.mediaType} for ${action.handle.url}'\n});\nconst urn_comunica_default_rdf_parse_actors_shaclc = new (require('@comunica/actor-rdf-parse-shaclc').ActorRdfParseShaclc)({\n  'mediaTypePriorities': {\"text/shaclc\":1,\"text/shaclc-ext\":0.5},\n  'mediaTypeFormats': {\"text/shaclc\":\"http://www.w3.org/ns/formats/Shaclc\",\"text/shaclc-ext\":\"http://www.w3.org/ns/formats/ShaclcExtended\"},\n  'priorityScale': 0.1,\n  'name': 'urn:comunica:default:rdf-parse/actors#shaclc',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__4_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus,\n  'busFailMessage': 'RDF parsing failed: none of the configured parsers were able to handle the media type ${action.handle.mediaType} for ${action.handle.url}'\n});\nconst urn_comunica_default_rdf_parse_mediators_parse = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:rdf-parse/mediators#parse',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__4_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus\n});\nconst urn_comunica_default_rdf_parse_mediators_mediaType = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n  'field': 'mediaTypes',\n  'name': 'urn:comunica:default:rdf-parse/mediators#mediaType',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__4_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus\n});\nconst urn_comunica_default_rdf_parse_actors_html = new (require('@comunica/actor-rdf-parse-html').ActorRdfParseHtml)({\n  'busRdfParseHtml': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__4_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus,\n  'mediaTypePriorities': {\"application/xhtml+xml\":0.9,\"text/html\":1},\n  'mediaTypeFormats': {\"application/xhtml+xml\":\"http://www.w3.org/ns/formats/HTML\",\"text/html\":\"http://www.w3.org/ns/formats/HTML\"},\n  'priorityScale': 0.2,\n  'name': 'urn:comunica:default:rdf-parse/actors#html',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__4_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus,\n  'busFailMessage': 'RDF parsing failed: none of the configured parsers were able to handle the media type ${action.handle.mediaType} for ${action.handle.url}'\n});\nconst urn_comunica_default_rdf_parse_html_actors_microdata = new (require('@comunica/actor-rdf-parse-html-microdata').ActorRdfParseHtmlMicrodata)({\n  'name': 'urn:comunica:default:rdf-parse-html/actors#microdata',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__4_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus,\n  'busFailMessage': 'RDF HTML parsing failed: none of the configured parsers were able to parse RDF in HTML'\n});\nconst urn_comunica_default_rdf_parse_html_actors_rdfa = new (require('@comunica/actor-rdf-parse-html-rdfa').ActorRdfParseHtmlRdfa)({\n  'name': 'urn:comunica:default:rdf-parse-html/actors#rdfa',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__4_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus,\n  'busFailMessage': 'RDF HTML parsing failed: none of the configured parsers were able to parse RDF in HTML'\n});\nconst urn_comunica_default_rdf_resolve_hypermedia_links_actors_next = new (require('@comunica/actor-rdf-resolve-hypermedia-links-next').ActorRdfResolveHypermediaLinksNext)({\n  'name': 'urn:comunica:default:rdf-resolve-hypermedia-links/actors#next',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links__4_0_0_components_ActorRdfResolveHypermediaLinks_jsonld_ActorRdfResolveHypermediaLinks_default_bus,\n  'busFailMessage': 'Hypermedia link resolution failed: none of the configured actors were able to resolve links from metadata'\n});\nconst urn_comunica_default_rdf_resolve_hypermedia_links_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:rdf-resolve-hypermedia-links/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links__4_0_0_components_ActorRdfResolveHypermediaLinks_jsonld_ActorRdfResolveHypermediaLinks_default_bus\n});\nconst urn_comunica_default_rdf_resolve_hypermedia_links_queue_actors_fifo = new (require('@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo').ActorRdfResolveHypermediaLinksQueueFifo)({\n  'name': 'urn:comunica:default:rdf-resolve-hypermedia-links-queue/actors#fifo',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links_queue__4_0_0_components_ActorRdfResolveHypermediaLinksQueue_jsonld_ActorRdfResolveHypermediaLinksQueue_default_bus,\n  'busFailMessage': 'Link queue creation failed: none of the configured actors were able to create a link queue starting from ${action.firstUrl}'\n});\nconst urn_comunica_default_rdf_resolve_hypermedia_links_queue_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:rdf-resolve-hypermedia-links-queue/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links_queue__4_0_0_components_ActorRdfResolveHypermediaLinksQueue_jsonld_ActorRdfResolveHypermediaLinksQueue_default_bus\n});\nconst urn_comunica_default_rdf_serialize_actors_n3 = new (require('@comunica/actor-rdf-serialize-n3').ActorRdfSerializeN3)({\n  'mediaTypePriorities': {\"application/n-quads\":1,\"application/n-triples\":0.8,\"application/trig\":0.95,\"text/n3\":0.35,\"text/turtle\":0.6},\n  'mediaTypeFormats': {\"application/n-quads\":\"http://www.w3.org/ns/formats/N-Quads\",\"application/n-triples\":\"http://www.w3.org/ns/formats/N-Triples\",\"application/trig\":\"http://www.w3.org/ns/formats/TriG\",\"text/n3\":\"http://www.w3.org/ns/formats/N3\",\"text/turtle\":\"http://www.w3.org/ns/formats/Turtle\"},\n  'name': 'urn:comunica:default:rdf-serialize/actors#n3',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__4_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus,\n  'busFailMessage': 'RDF serialization failed: none of the configured serializers were able to handle media type ${action.handleMediaType}'\n});\nconst urn_comunica_default_rdf_serialize_actors_jsonld = new (require('@comunica/actor-rdf-serialize-jsonld').ActorRdfSerializeJsonLd)({\n  'jsonStringifyIndentSpaces': 2,\n  'mediaTypePriorities': {\"application/ld+json\":1},\n  'mediaTypeFormats': {\"application/ld+json\":\"http://www.w3.org/ns/formats/JSON-LD\"},\n  'priorityScale': 0.9,\n  'name': 'urn:comunica:default:rdf-serialize/actors#jsonld',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__4_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus,\n  'busFailMessage': 'RDF serialization failed: none of the configured serializers were able to handle media type ${action.handleMediaType}'\n});\nconst urn_comunica_default_rdf_serialize_actors_shaclc = new (require('@comunica/actor-rdf-serialize-shaclc').ActorRdfSerializeShaclc)({\n  'mediaTypePriorities': {\"text/shaclc\":1,\"text/shaclc-ext\":0.5},\n  'mediaTypeFormats': {\"text/shaclc\":\"http://www.w3.org/ns/formats/Shaclc\",\"text/shaclc-ext\":\"http://www.w3.org/ns/formats/ShaclcExtended\"},\n  'priorityScale': 0.1,\n  'name': 'urn:comunica:default:rdf-serialize/actors#shaclc',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__4_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus,\n  'busFailMessage': 'RDF serialization failed: none of the configured serializers were able to handle media type ${action.handleMediaType}'\n});\nconst urn_comunica_default_rdf_serialize_mediators_serialize = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:rdf-serialize/mediators#serialize',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__4_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus\n});\nconst urn_comunica_default_rdf_serialize_mediators_mediaType = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n  'field': 'mediaTypes',\n  'name': 'urn:comunica:default:rdf-serialize/mediators#mediaType',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__4_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus\n});\nconst urn_comunica_default_rdf_serialize_mediators_mediaTypeFormat = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n  'field': 'mediaTypeFormats',\n  'name': 'urn:comunica:default:rdf-serialize/mediators#mediaTypeFormat',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__4_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus\n});\nconst urn_comunica_default_rdf_update_hypermedia_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:rdf-update-hypermedia/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__4_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus\n});\nconst urn_comunica_default_rdf_update_quads_actors_rdfjs_store = new (require('@comunica/actor-rdf-update-quads-rdfjs-store').ActorRdfUpdateQuadsRdfJsStore)({\n  'name': 'urn:comunica:default:rdf-update-quads/actors#rdfjs-store',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_quads__4_0_0_components_ActorRdfUpdateQuads_jsonld_ActorRdfUpdateQuads_default_bus,\n  'busFailMessage': 'RDF updating failed: none of the configured actors were able to handle an update'\n});\nconst urn_comunica_default_rdf_update_quads_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:rdf-update-quads/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_quads__4_0_0_components_ActorRdfUpdateQuads_jsonld_ActorRdfUpdateQuads_default_bus\n});\nconst urn_comunica_default_bindings_aggregator_factory_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:bindings-aggregator-factory/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus\n});\nconst urn_comunica_default_expression_evaluator_factory_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:expression-evaluator-factory/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_expression_evaluator_factory__4_0_0_components_ActorExpressionEvaluatorFactory_jsonld_ActorExpressionEvaluatorFactory_default_bus\n});\nconst urn_comunica_default_function_factory_actors_expression_function_bnode = new (require('@comunica/actor-function-factory-expression-bnode').ActorFunctionFactoryExpressionBnode)({\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-bnode',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_expression_function_bound = new (require('@comunica/actor-function-factory-expression-bound').ActorFunctionFactoryExpressionBound)({\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-bound',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_expression_function_coalesce = new (require('@comunica/actor-function-factory-expression-coalesce').ActorFunctionFactoryExpressionCoalesce)({\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-coalesce',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_expression_function_concat = new (require('@comunica/actor-function-factory-expression-concat').ActorFunctionFactoryExpressionConcat)({\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-concat',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_expression_function_extensions = new (require('@comunica/actor-function-factory-expression-extensions').ActorFunctionFactoryExpressionExtensions)({\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-extensions',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_expression_function_if = new (require('@comunica/actor-function-factory-expression-if').ActorFunctionFactoryExpressionIf)({\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-if',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_expression_function_logical_and = new (require('@comunica/actor-function-factory-expression-logical-and').ActorFunctionFactoryExpressionLogicalAnd)({\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-logical-and',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_expression_function_logical_or = new (require('@comunica/actor-function-factory-expression-logical-or').ActorFunctionFactoryExpressionLogicalOr)({\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-logical-or',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_expression_function_same_term = new (require('@comunica/actor-function-factory-expression-same-term').ActorFunctionFactoryExpressionSameTerm)({\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-same-term',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_abs = new (require('@comunica/actor-function-factory-term-abs').ActorFunctionFactoryTermAbs)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-abs',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_addition = new (require('@comunica/actor-function-factory-term-addition').ActorFunctionFactoryTermAddition)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-addition',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_ceil = new (require('@comunica/actor-function-factory-term-ceil').ActorFunctionFactoryTermCeil)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-ceil',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_contains = new (require('@comunica/actor-function-factory-term-contains').ActorFunctionFactoryTermContains)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-contains',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_datatype = new (require('@comunica/actor-function-factory-term-datatype').ActorFunctionFactoryTermDatatype)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-datatype',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_day = new (require('@comunica/actor-function-factory-term-day').ActorFunctionFactoryTermDay)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-day',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_division = new (require('@comunica/actor-function-factory-term-division').ActorFunctionFactoryTermDivision)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-division',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_encode_for_uri = new (require('@comunica/actor-function-factory-term-encode-for-uri').ActorFunctionFactoryTermEncodeForUri)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-encode-for-uri',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_equality = new (require('@comunica/actor-function-factory-term-equality').ActorFunctionFactoryTermEquality)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-equality',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_floor = new (require('@comunica/actor-function-factory-term-floor').ActorFunctionFactoryTermFloor)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-floor',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_hours = new (require('@comunica/actor-function-factory-term-hours').ActorFunctionFactoryTermHours)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-hours',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_iri = new (require('@comunica/actor-function-factory-term-iri').ActorFunctionFactoryTermIri)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-iri',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_is_blank = new (require('@comunica/actor-function-factory-term-is-blank').ActorFunctionFactoryTermIsBlank)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-is-blank',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_is_iri = new (require('@comunica/actor-function-factory-term-is-iri').ActorFunctionFactoryTermIsIri)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-is-iri',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_is_literal = new (require('@comunica/actor-function-factory-term-is-literal').ActorFunctionFactoryTermIsLiteral)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-is-literal',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_is_numeric = new (require('@comunica/actor-function-factory-term-is-numeric').ActorFunctionFactoryTermIsNumeric)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-is-numeric',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_is_triple = new (require('@comunica/actor-function-factory-term-is-triple').ActorFunctionFactoryTermIsTriple)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-is-triple',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_lang = new (require('@comunica/actor-function-factory-term-lang').ActorFunctionFactoryTermLang)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-lang',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_langmatches = new (require('@comunica/actor-function-factory-term-langmatches').ActorFunctionFactoryTermLangmatches)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-langmatches',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_lcase = new (require('@comunica/actor-function-factory-term-lcase').ActorFunctionFactoryTermLcase)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-lcase',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_md5 = new (require('@comunica/actor-function-factory-term-md5').ActorFunctionFactoryTermMd5)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-md5',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_minutes = new (require('@comunica/actor-function-factory-term-minutes').ActorFunctionFactoryTermMinutes)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-minutes',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_month = new (require('@comunica/actor-function-factory-term-month').ActorFunctionFactoryTermMonth)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-month',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_multiplication = new (require('@comunica/actor-function-factory-term-multiplication').ActorFunctionFactoryTermMultiplication)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-multiplication',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_not = new (require('@comunica/actor-function-factory-term-not').ActorFunctionFactoryTermNot)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-not',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_now = new (require('@comunica/actor-function-factory-term-now').ActorFunctionFactoryTermNow)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-now',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_object = new (require('@comunica/actor-function-factory-term-object').ActorFunctionFactoryTermObject)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-object',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_predicate = new (require('@comunica/actor-function-factory-term-predicate').ActorFunctionFactoryTermPredicate)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-predicate',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_rand = new (require('@comunica/actor-function-factory-term-rand').ActorFunctionFactoryTermRand)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-rand',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_regex = new (require('@comunica/actor-function-factory-term-regex').ActorFunctionFactoryTermRegex)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-regex',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_replace = new (require('@comunica/actor-function-factory-term-replace').ActorFunctionFactoryTermReplace)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-replace',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_round = new (require('@comunica/actor-function-factory-term-round').ActorFunctionFactoryTermRound)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-round',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_seconds = new (require('@comunica/actor-function-factory-term-seconds').ActorFunctionFactoryTermSeconds)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-seconds',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_sha1 = new (require('@comunica/actor-function-factory-term-sha1').ActorFunctionFactoryTermSha1)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-sha1',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_sha256 = new (require('@comunica/actor-function-factory-term-sha256').ActorFunctionFactoryTermSha256)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-sha256',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_sha384 = new (require('@comunica/actor-function-factory-term-sha384').ActorFunctionFactoryTermSha384)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-sha384',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_sha512 = new (require('@comunica/actor-function-factory-term-sha512').ActorFunctionFactoryTermSha512)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-sha512',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_str_after = new (require('@comunica/actor-function-factory-term-str-after').ActorFunctionFactoryTermStrAfter)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-str-after',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_str_before = new (require('@comunica/actor-function-factory-term-str-before').ActorFunctionFactoryTermStrBefore)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-str-before',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_str_dt = new (require('@comunica/actor-function-factory-term-str-dt').ActorFunctionFactoryTermStrDt)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-str-dt',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_str_ends = new (require('@comunica/actor-function-factory-term-str-ends').ActorFunctionFactoryTermStrEnds)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-str-ends',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_str_lang = new (require('@comunica/actor-function-factory-term-str-lang').ActorFunctionFactoryTermStrLang)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-str-lang',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_str_len = new (require('@comunica/actor-function-factory-term-str-len').ActorFunctionFactoryTermStrLen)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-str-len',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_str_starts = new (require('@comunica/actor-function-factory-term-str-starts').ActorFunctionFactoryTermStrStarts)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-str-starts',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_str_uuid = new (require('@comunica/actor-function-factory-term-str-uuid').ActorFunctionFactoryTermStrUuid)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-str-uuid',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_str = new (require('@comunica/actor-function-factory-term-str').ActorFunctionFactoryTermStr)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-str',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_sub_str = new (require('@comunica/actor-function-factory-term-sub-str').ActorFunctionFactoryTermSubStr)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-sub-str',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_subject = new (require('@comunica/actor-function-factory-term-subject').ActorFunctionFactoryTermSubject)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-subject',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_subtraction = new (require('@comunica/actor-function-factory-term-subtraction').ActorFunctionFactoryTermSubtraction)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-subtraction',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_timezone = new (require('@comunica/actor-function-factory-term-timezone').ActorFunctionFactoryTermTimezone)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-timezone',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_triple = new (require('@comunica/actor-function-factory-term-triple').ActorFunctionFactoryTermTriple)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-triple',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_tz = new (require('@comunica/actor-function-factory-term-tz').ActorFunctionFactoryTermTz)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-tz',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_ucase = new (require('@comunica/actor-function-factory-term-ucase').ActorFunctionFactoryTermUcase)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-ucase',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_unary_minus = new (require('@comunica/actor-function-factory-term-unary-minus').ActorFunctionFactoryTermUnaryMinus)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-unary-minus',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_unary_plus = new (require('@comunica/actor-function-factory-term-unary-plus').ActorFunctionFactoryTermUnaryPlus)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-unary-plus',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_uuid = new (require('@comunica/actor-function-factory-term-uuid').ActorFunctionFactoryTermUuid)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-uuid',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_boolean = new (require('@comunica/actor-function-factory-term-xsd-to-boolean').ActorFunctionFactoryTermXsdToBoolean)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-boolean',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_date = new (require('@comunica/actor-function-factory-term-xsd-to-date').ActorFunctionFactoryTermXsdToDate)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-date',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_datetime = new (require('@comunica/actor-function-factory-term-xsd-to-datetime').ActorFunctionFactoryTermXsdToDatetime)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-datetime',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_day_time_duration = new (require('@comunica/actor-function-factory-term-xsd-to-day-time-duration').ActorFunctionFactoryTermXsdToDayTimeDuration)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-day-time-duration',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_decimal = new (require('@comunica/actor-function-factory-term-xsd-to-decimal').ActorFunctionFactoryTermXsdToDecimal)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-decimal',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_double = new (require('@comunica/actor-function-factory-term-xsd-to-double').ActorFunctionFactoryTermXsdToDouble)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-double',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_duration = new (require('@comunica/actor-function-factory-term-xsd-to-duration').ActorFunctionFactoryTermXsdToDuration)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-duration',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_float = new (require('@comunica/actor-function-factory-term-xsd-to-float').ActorFunctionFactoryTermXsdToFloat)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-float',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_integer = new (require('@comunica/actor-function-factory-term-xsd-to-integer').ActorFunctionFactoryTermXsdToInteger)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-integer',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_string = new (require('@comunica/actor-function-factory-term-xsd-to-string').ActorFunctionFactoryTermXsdToString)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-string',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_time = new (require('@comunica/actor-function-factory-term-xsd-to-time').ActorFunctionFactoryTermXsdToTime)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-time',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_xsd_to_year_month_duration = new (require('@comunica/actor-function-factory-term-xsd-to-year-month-duration').ActorFunctionFactoryTermXsdToYearMonthDuration)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-xsd-to-year-month-duration',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_year = new (require('@comunica/actor-function-factory-term-year').ActorFunctionFactoryTermYear)({\n  'name': 'urn:comunica:default:function-factory/actors#term-function-year',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:function-factory/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus\n});\nconst urn_comunica_default_http_actors_fetch = new (require('@comunica/actor-http-fetch').ActorHttpFetch)({\n  'agentOptions': {\"keepAlive\":true,\"maxSockets\":5},\n  'name': 'urn:comunica:default:http/actors#fetch',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus,\n  'busFailMessage': 'HTTP request failed: none of the configured actors were able to handle ${action.input}'\n});\nconst urn_comunica_default_http_mediators_no_fallback = new (require('@comunica/mediator-number').MediatorNumber)({\n  'field': 'time',\n  'type': 'min',\n  'ignoreFailures': true,\n  'name': 'urn:comunica:default:http/mediators#no-fallback',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus\n});\nconst urn_comunica_default_http_mediators_main = new (require('@comunica/mediator-number').MediatorNumber)({\n  'field': 'time',\n  'type': 'min',\n  'ignoreFailures': true,\n  'name': 'urn:comunica:default:http/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_fallback_bus\n});\nconst urn_comunica_default_query_operation_actors_source = new (require('@comunica/actor-query-operation-source').ActorQueryOperationSource)({\n  'name': 'urn:comunica:default:query-operation/actors#source',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_mediators_main = new (require('@comunica/mediator-number').MediatorNumber)({\n  'field': 'httpRequests',\n  'type': 'min',\n  'ignoreFailures': true,\n  'name': 'urn:comunica:default:query-operation/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus\n});\nconst urn_comunica_default_query_process_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:query-process/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__4_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus\n});\nconst urn_comunica_default_query_source_identify_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:query-source-identify/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__4_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus\n});\nconst urn_comunica_default_rdf_join_mediators_main = new (require('@comunica/mediator-join-coefficients-fixed').MediatorJoinCoefficientsFixed)({\n  'cpuWeight': 10,\n  'memoryWeight': 1,\n  'timeWeight': 2,\n  'ioWeight': 10,\n  'name': 'urn:comunica:default:rdf-join/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus\n});\nconst urn_comunica_default_term_comparator_factory_mediators_main = new (require('@comunica/mediator-race').MediatorRace)({\n  'name': 'urn:comunica:default:term-comparator-factory/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_term_comparator_factory__4_0_0_components_ActorTermComparatorFactory_jsonld_ActorTermComparatorFactory_default_bus\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_context_preprocess_query_source_identify__4_0_0_components_ActorContextPreprocessQuerySourceIdentify_jsonld_IActorContextPreprocessQuerySourceIdentifyArgs_default_invalidator = new (require('@comunica/bus-http-invalidate').ActorHttpInvalidateListenable)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-context-preprocess-query-source-identify/^4.0.0/components/ActorContextPreprocessQuerySourceIdentify.jsonld#IActorContextPreprocessQuerySourceIdentifyArgs_default_invalidator',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__4_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus,\n  'busFailMessage': 'HTTP invalidation failed: none of the configured actors were able to invalidate ${action.url}'\n});\nconst urn_comunica_default_http_invalidate_mediators_main = new (require('@comunica/mediator-all').MediatorAll)({\n  'name': 'urn:comunica:default:http-invalidate/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__4_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_rdf_update_quads_hypermedia__4_0_0_components_ActorRdfUpdateQuadsHypermedia_jsonld_IActorRdfUpdateQuadsHypermediaArgs_default_invalidator = new (require('@comunica/bus-http-invalidate').ActorHttpInvalidateListenable)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-update-quads-hypermedia/^4.0.0/components/ActorRdfUpdateQuadsHypermedia.jsonld#IActorRdfUpdateQuadsHypermediaArgs_default_invalidator',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__4_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus,\n  'busFailMessage': 'HTTP invalidation failed: none of the configured actors were able to invalidate ${action.url}'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_http_retry__4_0_0_components_ActorHttpRetry_jsonld_IActorHttpQueueArgs_default_invalidator = new (require('@comunica/bus-http-invalidate').ActorHttpInvalidateListenable)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-http-retry/^4.0.0/components/ActorHttpRetry.jsonld#IActorHttpQueueArgs_default_invalidator',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__4_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus,\n  'busFailMessage': 'HTTP invalidation failed: none of the configured actors were able to invalidate ${action.url}'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_http_limit_rate__4_0_0_components_ActorHttpLimitRate_jsonld_IActorHttpLimitRateArgs_default_invalidator = new (require('@comunica/bus-http-invalidate').ActorHttpInvalidateListenable)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-http-limit-rate/^4.0.0/components/ActorHttpLimitRate.jsonld#IActorHttpLimitRateArgs_default_invalidator',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__4_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus,\n  'busFailMessage': 'HTTP invalidation failed: none of the configured actors were able to invalidate ${action.url}'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_sparql_json__4_0_0_components_ActionObserverHttp_jsonld_IActionObserverHttpArgs_default_invalidator = new (require('@comunica/bus-http-invalidate').ActorHttpInvalidateListenable)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-result-serialize-sparql-json/^4.0.0/components/ActionObserverHttp.jsonld#IActionObserverHttpArgs_default_invalidator',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__4_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus,\n  'busFailMessage': 'HTTP invalidation failed: none of the configured actors were able to invalidate ${action.url}'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_stats__4_0_0_components_ActionObserverHttp_jsonld_IActionObserverHttpArgs_default_invalidator = new (require('@comunica/bus-http-invalidate').ActorHttpInvalidateListenable)({\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-result-serialize-stats/^4.0.0/components/ActionObserverHttp.jsonld#IActionObserverHttpArgs_default_invalidator',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__4_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus,\n  'busFailMessage': 'HTTP invalidation failed: none of the configured actors were able to invalidate ${action.url}'\n});\nconst urn_comunica_default_merge_bindings_context_mediators_main = new (require('@comunica/mediator-combine-union').MediatorCombineUnion)({\n  'field': 'mergeHandlers',\n  'name': 'urn:comunica:default:merge-bindings-context/mediators#main',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_merge_bindings_context__4_0_0_components_ActorMergeBindingsContext_jsonld_ActorMergeBindingsContext_default_bus\n});\nconst urn_comunica_default_rdf_join_entries_sort_actors_selectivity = new (require('@comunica/actor-rdf-join-entries-sort-selectivity').ActorRdfJoinEntriesSortSelectivity)({\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join-entries-sort/actors#selectivity',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_entries_sort__4_0_0_components_ActorRdfJoinEntriesSort_jsonld_ActorRdfJoinEntriesSort_default_bus,\n  'busFailMessage': 'Sorting join entries failed: none of the configured actors were able to sort'\n});\nconst urn_comunica_default_rdf_join_actors_inner_single = new (require('@comunica/actor-rdf-join-inner-single').ActorRdfJoinSingle)({\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-single',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_inner_multi_empty = new (require('@comunica/actor-rdf-join-inner-multi-empty').ActorRdfJoinMultiEmpty)({\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-multi-empty',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_inner_hash_def = new (require('@comunica/actor-rdf-join-inner-hash').ActorRdfJoinHash)({\n  'mediatorHashBindings': urn_comunica_default_hash_bindings_mediators_main,\n  'canHandleUndefs': false,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-hash-def',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_inner_hash_undef = new (require('@comunica/actor-rdf-join-inner-hash').ActorRdfJoinHash)({\n  'mediatorHashBindings': urn_comunica_default_hash_bindings_mediators_main,\n  'canHandleUndefs': true,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-hash-undef',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_inner_symmetric_hash = new (require('@comunica/actor-rdf-join-inner-symmetrichash').ActorRdfJoinSymmetricHash)({\n  'mediatorHashBindings': urn_comunica_default_hash_bindings_mediators_main,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-symmetric-hash',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_inner_nested_loop = new (require('@comunica/actor-rdf-join-inner-nestedloop').ActorRdfJoinNestedLoop)({\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-nested-loop',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_optional_hash_def_nonblocking = new (require('@comunica/actor-rdf-join-optional-hash').ActorRdfJoinOptionalHash)({\n  'canHandleUndefs': false,\n  'blocking': false,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#optional-hash-def-nonblocking',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_optional_hash_def_blocking = new (require('@comunica/actor-rdf-join-optional-hash').ActorRdfJoinOptionalHash)({\n  'canHandleUndefs': false,\n  'blocking': true,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#optional-hash-def-blocking',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_optional_hash_undef_nonblocking = new (require('@comunica/actor-rdf-join-optional-hash').ActorRdfJoinOptionalHash)({\n  'canHandleUndefs': true,\n  'blocking': false,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#optional-hash-undef-nonblocking',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_optional_hash_undef_blocking = new (require('@comunica/actor-rdf-join-optional-hash').ActorRdfJoinOptionalHash)({\n  'canHandleUndefs': true,\n  'blocking': true,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#optional-hash-undef-blocking',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_optional_nested_loop = new (require('@comunica/actor-rdf-join-optional-nestedloop').ActorRdfJoinOptionalNestedLoop)({\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#optional-nested-loop',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_minus_hash_def = new (require('@comunica/actor-rdf-join-minus-hash').ActorRdfJoinMinusHash)({\n  'canHandleUndefs': false,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#minus-hash-def',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_minus_hash_undef = new (require('@comunica/actor-rdf-join-minus-hash').ActorRdfJoinMinusHash)({\n  'canHandleUndefs': true,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#minus-hash-undef',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_dereference_rdf_actors_parse = new (require('@comunica/actor-dereference-rdf-parse').ActorDereferenceRdfParse)({\n  'mediatorDereference': urn_comunica_default_dereference_mediators_main,\n  'mediatorParse': urn_comunica_default_rdf_parse_mediators_parse,\n  'mediatorParseMediatypes': urn_comunica_default_rdf_parse_mediators_mediaType,\n  'mediaMappings': {\"htm\":\"text/html\",\"html\":\"text/html\",\"json\":\"application/json\",\"jsonld\":\"application/ld+json\",\"n3\":\"text/n3\",\"nq\":\"application/n-quads\",\"nquads\":\"application/n-quads\",\"nt\":\"application/n-triples\",\"ntriples\":\"application/n-triples\",\"owl\":\"application/rdf+xml\",\"rdf\":\"application/rdf+xml\",\"rdfxml\":\"application/rdf+xml\",\"shaclc\":\"text/shaclc\",\"shaclce\":\"text/shaclc-ext\",\"shc\":\"text/shaclc\",\"shce\":\"text/shaclc-ext\",\"svg\":\"image/svg+xml\",\"svgz\":\"image/svg+xml\",\"trig\":\"application/trig\",\"ttl\":\"text/turtle\",\"turtle\":\"text/turtle\",\"xht\":\"application/xhtml+xml\",\"xhtml\":\"application/xhtml+xml\",\"xml\":\"application/xml\"},\n  'name': 'urn:comunica:default:dereference-rdf/actors#parse',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference_rdf__4_0_0_components_ActorDereferenceRdf_jsonld_ActorDereferenceRdf_default_bus,\n  'busFailMessage': 'RDF dereferencing failed: none of the configured parsers were able to handle the media type ${action.handle.mediaType} for ${action.handle.url}'\n});\nconst urn_comunica_default_rdf_parse_html_actors_script = new (require('@comunica/actor-rdf-parse-html-script').ActorRdfParseHtmlScript)({\n  'mediatorRdfParseMediatypes': urn_comunica_default_rdf_parse_mediators_mediaType,\n  'mediatorRdfParseHandle': urn_comunica_default_rdf_parse_mediators_parse,\n  'name': 'urn:comunica:default:rdf-parse-html/actors#script',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__4_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus,\n  'busFailMessage': 'RDF HTML parsing failed: none of the configured parsers were able to parse RDF in HTML'\n});\nconst urn_comunica_default_query_result_serialize_actors_rdf = new (require('@comunica/actor-query-result-serialize-rdf').ActorQueryResultSerializeRdf)({\n  'mediatorRdfSerialize': urn_comunica_default_rdf_serialize_mediators_serialize,\n  'mediatorMediaTypeCombiner': urn_comunica_default_rdf_serialize_mediators_mediaType,\n  'mediatorMediaTypeFormatCombiner': urn_comunica_default_rdf_serialize_mediators_mediaTypeFormat,\n  'name': 'urn:comunica:default:query-result-serialize/actors#rdf',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus,\n  'busFailMessage': 'Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}'\n});\nconst urn_comunica_default_bindings_aggregator_factory_actors_group_concat = new (require('@comunica/actor-bindings-aggregator-factory-group-concat').ActorBindingsAggregatorFactoryGroupConcat)({\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'name': 'urn:comunica:default:bindings-aggregator-factory/actors#group-concat',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus,\n  'busFailMessage': 'Creation of Aggregator failed: none of the configured actors were able to handle ${action.expr.aggregator}'\n});\nconst urn_comunica_default_bindings_aggregator_factory_actors_count = new (require('@comunica/actor-bindings-aggregator-factory-count').ActorBindingsAggregatorFactoryCount)({\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'name': 'urn:comunica:default:bindings-aggregator-factory/actors#count',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus,\n  'busFailMessage': 'Creation of Aggregator failed: none of the configured actors were able to handle ${action.expr.aggregator}'\n});\nconst urn_comunica_default_bindings_aggregator_factory_actors_sample = new (require('@comunica/actor-bindings-aggregator-factory-sample').ActorBindingsAggregatorFactorySample)({\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'name': 'urn:comunica:default:bindings-aggregator-factory/actors#sample',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus,\n  'busFailMessage': 'Creation of Aggregator failed: none of the configured actors were able to handle ${action.expr.aggregator}'\n});\nconst urn_comunica_default_bindings_aggregator_factory_actors_wildcard_count = new (require('@comunica/actor-bindings-aggregator-factory-wildcard-count').ActorBindingsAggregatorFactoryWildcardCount)({\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'name': 'urn:comunica:default:bindings-aggregator-factory/actors#wildcard-count',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus,\n  'busFailMessage': 'Creation of Aggregator failed: none of the configured actors were able to handle ${action.expr.aggregator}'\n});\nconst urn_comunica_default_bindings_aggregator_factory_actors_average = new (require('@comunica/actor-bindings-aggregator-factory-average').ActorBindingsAggregatorFactoryAverage)({\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'name': 'urn:comunica:default:bindings-aggregator-factory/actors#average',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus,\n  'busFailMessage': 'Creation of Aggregator failed: none of the configured actors were able to handle ${action.expr.aggregator}'\n});\nconst urn_comunica_default_bindings_aggregator_factory_actors_sum = new (require('@comunica/actor-bindings-aggregator-factory-sum').ActorBindingsAggregatorFactorySum)({\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'name': 'urn:comunica:default:bindings-aggregator-factory/actors#sum',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus,\n  'busFailMessage': 'Creation of Aggregator failed: none of the configured actors were able to handle ${action.expr.aggregator}'\n});\nconst urn_comunica_default_function_factory_actors_expression_function_in = new (require('@comunica/actor-function-factory-expression-in').ActorFunctionFactoryExpressionIn)({\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-in',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_expression_function_not_in = new (require('@comunica/actor-function-factory-expression-not-in').ActorFunctionFactoryExpressionNotIn)({\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'name': 'urn:comunica:default:function-factory/actors#expression-function-not-in',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_greater_than_equal = new (require('@comunica/actor-function-factory-term-greater-than-equal').ActorFunctionFactoryTermGreaterThanEqual)({\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'name': 'urn:comunica:default:function-factory/actors#term-function-greater-than-equal',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_greater_than = new (require('@comunica/actor-function-factory-term-greater-than').ActorFunctionFactoryTermGreaterThan)({\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'name': 'urn:comunica:default:function-factory/actors#term-function-greater-than',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_inequality = new (require('@comunica/actor-function-factory-term-inequality').ActorFunctionFactoryTermInequality)({\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'name': 'urn:comunica:default:function-factory/actors#term-function-inequality',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_lesser_than_equal = new (require('@comunica/actor-function-factory-term-lesser-than-equal').ActorFunctionFactoryTermLesserThanEqual)({\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'name': 'urn:comunica:default:function-factory/actors#term-function-lesser-than-equal',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_function_factory_actors_term_function_lesser_than = new (require('@comunica/actor-function-factory-term-lesser-than').ActorFunctionFactoryTermLesserThan)({\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'name': 'urn:comunica:default:function-factory/actors#term-function-lesser-than',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus,\n  'busFailMessage': 'Creation of function evaluator failed: no configured actor was able to evaluate function ${action.functionName}'\n});\nconst urn_comunica_default_http_actors_wayback = new (require('@comunica/actor-http-wayback').ActorHttpWayback)({\n  'mediatorHttp': urn_comunica_default_http_mediators_no_fallback,\n  'name': 'urn:comunica:default:http/actors#wayback',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_fallback_bus,\n  'busFailMessage': 'HTTP request failed: none of the configured actors were able to handle ${action.input}'\n});\nconst urn_comunica_default_rdf_parse_actors_jsonld = new (require('@comunica/actor-rdf-parse-jsonld').ActorRdfParseJsonLd)({\n  'mediatorHttp': urn_comunica_default_http_mediators_main,\n  'mediaTypePriorities': {\"application/json\":0.15,\"application/ld+json\":1},\n  'mediaTypeFormats': {\"application/json\":\"http://www.w3.org/ns/formats/JSON-LD\",\"application/ld+json\":\"http://www.w3.org/ns/formats/JSON-LD\"},\n  'priorityScale': 0.9,\n  'name': 'urn:comunica:default:rdf-parse/actors#jsonld',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__4_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus,\n  'busFailMessage': 'RDF parsing failed: none of the configured parsers were able to handle the media type ${action.handle.mediaType} for ${action.handle.url}'\n});\nconst urn_comunica_default_rdf_update_hypermedia_actors_patch_sparql_update = new (require('@comunica/actor-rdf-update-hypermedia-patch-sparql-update').ActorRdfUpdateHypermediaPatchSparqlUpdate)({\n  'mediatorHttp': urn_comunica_default_http_mediators_main,\n  'name': 'urn:comunica:default:rdf-update-hypermedia/actors#patch-sparql-update',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__4_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus,\n  'busFailMessage': 'RDF hypermedia updating failed: none of the configured actors were able to handle an update for ${action.url}'\n});\nconst urn_comunica_default_rdf_update_hypermedia_actors_put_ldp = new (require('@comunica/actor-rdf-update-hypermedia-put-ldp').ActorRdfUpdateHypermediaPutLdp)({\n  'mediatorHttp': urn_comunica_default_http_mediators_main,\n  'mediatorRdfSerializeMediatypes': urn_comunica_default_rdf_serialize_mediators_mediaType,\n  'mediatorRdfSerialize': urn_comunica_default_rdf_serialize_mediators_serialize,\n  'name': 'urn:comunica:default:rdf-update-hypermedia/actors#put-ldp',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__4_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus,\n  'busFailMessage': 'RDF hypermedia updating failed: none of the configured actors were able to handle an update for ${action.url}'\n});\nconst urn_comunica_default_rdf_update_hypermedia_actors_sparql = new (require('@comunica/actor-rdf-update-hypermedia-sparql').ActorRdfUpdateHypermediaSparql)({\n  'mediatorHttp': urn_comunica_default_http_mediators_main,\n  'checkUrlSuffixSparql': true,\n  'checkUrlSuffixUpdate': true,\n  'name': 'urn:comunica:default:rdf-update-hypermedia/actors#sparql',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__4_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus,\n  'busFailMessage': 'RDF hypermedia updating failed: none of the configured actors were able to handle an update for ${action.url}'\n});\nconst urn_comunica_default_query_operation_actors_ask = new (require('@comunica/actor-query-operation-ask').ActorQueryOperationAsk)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#ask',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_bgp = new (require('@comunica/actor-query-operation-bgp-join').ActorQueryOperationBgpJoin)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#bgp',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_construct = new (require('@comunica/actor-query-operation-construct').ActorQueryOperationConstruct)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#construct',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_distinct = new (require('@comunica/actor-query-operation-distinct-identity').ActorQueryOperationDistinctIdentity)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#distinct',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_extend = new (require('@comunica/actor-query-operation-extend').ActorQueryOperationExtend)({\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#extend',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_filter = new (require('@comunica/actor-query-operation-filter').ActorQueryOperationFilter)({\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#filter',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_from = new (require('@comunica/actor-query-operation-from-quad').ActorQueryOperationFromQuad)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#from',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_project = new (require('@comunica/actor-query-operation-project').ActorQueryOperationProject)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#project',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_reduced = new (require('@comunica/actor-query-operation-reduced-hash').ActorQueryOperationReducedHash)({\n  'mediatorHashBindings': urn_comunica_default_hash_bindings_mediators_main,\n  'cacheSize': 100,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#reduced',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_slice = new (require('@comunica/actor-query-operation-slice').ActorQueryOperationSlice)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#slice',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_union = new (require('@comunica/actor-query-operation-union').ActorQueryOperationUnion)({\n  'mediatorRdfMetadataAccumulate': urn_comunica_default_rdf_metadata_accumulate_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#union',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_path_alt = new (require('@comunica/actor-query-operation-path-alt').ActorQueryOperationPathAlt)({\n  'mediatorRdfMetadataAccumulate': urn_comunica_default_rdf_metadata_accumulate_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#path-alt',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_path_inv = new (require('@comunica/actor-query-operation-path-inv').ActorQueryOperationPathInv)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#path-inv',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_path_link = new (require('@comunica/actor-query-operation-path-link').ActorQueryOperationPathLink)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#path-link',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_path_nps = new (require('@comunica/actor-query-operation-path-nps').ActorQueryOperationPathNps)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#path-nps',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_update_clear = new (require('@comunica/actor-query-operation-update-clear').ActorQueryOperationClear)({\n  'mediatorUpdateQuads': urn_comunica_default_rdf_update_quads_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#update-clear',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_update_composite = new (require('@comunica/actor-query-operation-update-compositeupdate').ActorQueryOperationUpdateCompositeUpdate)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#update-composite',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_update_create = new (require('@comunica/actor-query-operation-update-create').ActorQueryOperationCreate)({\n  'mediatorUpdateQuads': urn_comunica_default_rdf_update_quads_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#update-create',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_update_drop = new (require('@comunica/actor-query-operation-update-drop').ActorQueryOperationDrop)({\n  'mediatorUpdateQuads': urn_comunica_default_rdf_update_quads_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#update-drop',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_update_load = new (require('@comunica/actor-query-operation-update-load').ActorQueryOperationLoad)({\n  'mediatorUpdateQuads': urn_comunica_default_rdf_update_quads_mediators_main,\n  'mediatorQuerySourceIdentify': urn_comunica_default_query_source_identify_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#update-load',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_join = new (require('@comunica/actor-query-operation-join').ActorQueryOperationJoin)({\n  'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#join',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_leftjoin = new (require('@comunica/actor-query-operation-leftjoin').ActorQueryOperationLeftJoin)({\n  'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#leftjoin',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_minus = new (require('@comunica/actor-query-operation-minus').ActorQueryOperationMinus)({\n  'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#minus',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_path_seq = new (require('@comunica/actor-query-operation-path-seq').ActorQueryOperationPathSeq)({\n  'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#path-seq',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_rdf_join_actors_inner_multi_smallest = new (require('@comunica/actor-rdf-join-inner-multi-smallest').ActorRdfJoinMultiSmallest)({\n  'mediatorJoinEntriesSort': urn_comunica_default_rdf_join_entries_sort_mediators_main,\n  'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-multi-smallest',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_bindings_aggregator_factory_actors_max = new (require('@comunica/actor-bindings-aggregator-factory-max').ActorBindingsAggregatorFactoryMax)({\n  'mediatorTermComparatorFactory': urn_comunica_default_term_comparator_factory_mediators_main,\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'name': 'urn:comunica:default:bindings-aggregator-factory/actors#max',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus,\n  'busFailMessage': 'Creation of Aggregator failed: none of the configured actors were able to handle ${action.expr.aggregator}'\n});\nconst urn_comunica_default_bindings_aggregator_factory_actors_min = new (require('@comunica/actor-bindings-aggregator-factory-min').ActorBindingsAggregatorFactoryMin)({\n  'mediatorTermComparatorFactory': urn_comunica_default_term_comparator_factory_mediators_main,\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'name': 'urn:comunica:default:bindings-aggregator-factory/actors#min',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus,\n  'busFailMessage': 'Creation of Aggregator failed: none of the configured actors were able to handle ${action.expr.aggregator}'\n});\nconst urn_comunica_default_query_operation_actors_orderby = new (require('@comunica/actor-query-operation-orderby').ActorQueryOperationOrderBy)({\n  'mediatorExpressionEvaluatorFactory': urn_comunica_default_expression_evaluator_factory_mediators_main,\n  'mediatorTermComparatorFactory': urn_comunica_default_term_comparator_factory_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#orderby',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_optimize_query_operation_actors_filter_pushdown = new (require('@comunica/actor-optimize-query-operation-filter-pushdown').ActorOptimizeQueryOperationFilterPushdown)({\n  'aggressivePushdown': false,\n  'maxIterations': 10,\n  'splitConjunctive': true,\n  'mergeConjunctive': true,\n  'pushIntoLeftJoins': true,\n  'pushEqualityIntoPatterns': true,\n  'name': 'urn:comunica:default:optimize-query-operation/actors#filter-pushdown',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize',\n  'beforeActors': [\n  urn_comunica_default_optimize_query_operation_actors_group_sources\n]\n});\nconst urn_comunica_default_dereference_actors_http = new (require('@comunica/actor-dereference-http').ActorDereferenceHttp)({\n  'mediatorHttp': urn_comunica_default_http_mediators_main,\n  'maxAcceptHeaderLength': 1024,\n  'maxAcceptHeaderLengthBrowser': 128,\n  'name': 'urn:comunica:default:dereference/actors#http',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference__4_0_0_components_ActorDereference_jsonld_ActorDereference_default_bus,\n  'busFailMessage': 'Dereferencing failed: none of the configured actors were able to handle ${action.url}',\n  'beforeActors': [\n  urn_comunica_default_dereference_actors_fallback\n]\n});\nconst urn_comunica_default_http_actors_proxy = new (require('@comunica/actor-http-proxy').ActorHttpProxy)({\n  'mediatorHttp': urn_comunica_default_http_mediators_main,\n  'name': 'urn:comunica:default:http/actors#proxy',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus,\n  'busFailMessage': 'HTTP request failed: none of the configured actors were able to handle ${action.input}',\n  'beforeActors': [\n  urn_comunica_default_http_actors_fetch\n]\n});\nconst urn_comunica_default_context_preprocess_actors_query_source_identify = new (require('@comunica/actor-context-preprocess-query-source-identify').ActorContextPreprocessQuerySourceIdentify)({\n  'cacheSize': 100,\n  'httpInvalidator': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_context_preprocess_query_source_identify__4_0_0_components_ActorContextPreprocessQuerySourceIdentify_jsonld_IActorContextPreprocessQuerySourceIdentifyArgs_default_invalidator,\n  'mediatorQuerySourceIdentify': urn_comunica_default_query_source_identify_mediators_main,\n  'mediatorContextPreprocess': urn_comunica_default_context_preprocess_mediators_main,\n  'name': 'urn:comunica:default:context-preprocess/actors#query-source-identify',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__4_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus,\n  'busFailMessage': 'Context preprocessing failed',\n  'beforeActors': [\n  urn_comunica_default_context_preprocess_actors_query_source_skolemize\n]\n});\nconst urn_comunica_default_init_actors_query = new (require('@comunica/actor-init-query').ActorInitQuery)({\n  'mediatorQueryProcess': urn_comunica_default_query_process_mediators_main,\n  'mediatorQueryResultSerialize': urn_comunica_default_query_result_serialize_mediators_serialize,\n  'mediatorQueryResultSerializeMediaTypeCombiner': urn_comunica_default_query_result_serialize_mediators_mediaType,\n  'mediatorQueryResultSerializeMediaTypeFormatCombiner': urn_comunica_default_query_result_serialize_mediators_mediaTypeFormat,\n  'mediatorHttpInvalidate': urn_comunica_default_http_invalidate_mediators_main,\n  'defaultQueryInputFormat': 'sparql',\n  'allowNoSources': false,\n  'name': 'urn:comunica:default:init/actors#query',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_init__4_0_0_components_ActorInit_jsonld_ActorInit_default_bus,\n  'busFailMessage': 'Initialization failed: none of the configured actors were to initialize'\n});\nconst urn_comunica_default_rdf_update_quads_actors_hypermedia = new (require('@comunica/actor-rdf-update-quads-hypermedia').ActorRdfUpdateQuadsHypermedia)({\n  'cacheSize': 100,\n  'httpInvalidator': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_rdf_update_quads_hypermedia__4_0_0_components_ActorRdfUpdateQuadsHypermedia_jsonld_IActorRdfUpdateQuadsHypermediaArgs_default_invalidator,\n  'mediatorDereferenceRdf': urn_comunica_default_dereference_rdf_mediators_main,\n  'mediatorMetadata': urn_comunica_default_rdf_metadata_mediators_main,\n  'mediatorMetadataExtract': urn_comunica_default_rdf_metadata_extract_mediators_main,\n  'mediatorRdfUpdateHypermedia': urn_comunica_default_rdf_update_hypermedia_mediators_main,\n  'name': 'urn:comunica:default:rdf-update-quads/actors#hypermedia',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_quads__4_0_0_components_ActorRdfUpdateQuads_jsonld_ActorRdfUpdateQuads_default_bus,\n  'busFailMessage': 'RDF updating failed: none of the configured actors were able to handle an update'\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_sparql_json__4_0_0_components_ActorQueryResultSerializeSparqlJson_jsonld_ActorQueryResultSerializeSparqlJson_default_observer = new (require('@comunica/actor-query-result-serialize-sparql-json').ActionObserverHttp)({\n  'httpInvalidator': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_sparql_json__4_0_0_components_ActionObserverHttp_jsonld_IActionObserverHttpArgs_default_invalidator,\n  'observedActors': [\n  'urn:comunica:default:http/actors#fetch'\n],\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-result-serialize-sparql-json/^4.0.0/components/ActorQueryResultSerializeSparqlJson.jsonld#ActorQueryResultSerializeSparqlJson_default_observer',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus\n});\nconst https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_stats__4_0_0_components_ActorQueryResultSerializeStats_jsonld_ActorQueryResultSerializeStats_default_observer = new (require('@comunica/actor-query-result-serialize-stats').ActionObserverHttp)({\n  'httpInvalidator': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_stats__4_0_0_components_ActionObserverHttp_jsonld_IActionObserverHttpArgs_default_invalidator,\n  'observedActors': [\n  'urn:comunica:default:http/actors#fetch'\n],\n  'name': 'https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-result-serialize-stats/^4.0.0/components/ActorQueryResultSerializeStats.jsonld#ActorQueryResultSerializeStats_default_observer',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus\n});\nconst urn_comunica_default_query_source_identify_hypermedia_actors_qpf = new (require('@comunica/actor-query-source-identify-hypermedia-qpf').ActorQuerySourceIdentifyHypermediaQpf)({\n  'mediatorMetadata': urn_comunica_default_rdf_metadata_mediators_main,\n  'mediatorMetadataExtract': urn_comunica_default_rdf_metadata_extract_mediators_main,\n  'mediatorDereferenceRdf': urn_comunica_default_dereference_rdf_mediators_main,\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'subjectUri': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#subject',\n  'predicateUri': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate',\n  'objectUri': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#object',\n  'graphUri': 'http://www.w3.org/ns/sparql-service-description#graph',\n  'name': 'urn:comunica:default:query-source-identify-hypermedia/actors#qpf',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__4_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus,\n  'busFailMessage': 'Query source hypermedia identification failed: none of the configured actors were able to identify ${action.url}'\n});\nconst urn_comunica_default_query_source_identify_hypermedia_actors_sparql = new (require('@comunica/actor-query-source-identify-hypermedia-sparql').ActorQuerySourceIdentifyHypermediaSparql)({\n  'mediatorHttp': urn_comunica_default_http_mediators_main,\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'checkUrlSuffix': true,\n  'forceHttpGet': false,\n  'cacheSize': 1024,\n  'forceSourceType': false,\n  'bindMethod': 'values',\n  'countTimeout': 3000,\n  'cardinalityCountQueries': true,\n  'cardinalityEstimateConstruction': false,\n  'name': 'urn:comunica:default:query-source-identify-hypermedia/actors#sparql',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__4_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus,\n  'busFailMessage': 'Query source hypermedia identification failed: none of the configured actors were able to identify ${action.url}'\n});\nconst urn_comunica_default_query_source_identify_hypermedia_actors_none = new (require('@comunica/actor-query-source-identify-hypermedia-none').ActorQuerySourceIdentifyHypermediaNone)({\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'name': 'urn:comunica:default:query-source-identify-hypermedia/actors#none',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__4_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus,\n  'busFailMessage': 'Query source hypermedia identification failed: none of the configured actors were able to identify ${action.url}'\n});\nconst urn_comunica_default_expression_evaluator_factory_actors_default = new (require('@comunica/actor-expression-evaluator-factory-default').ActorExpressionEvaluatorFactoryDefault)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'name': 'urn:comunica:default:expression-evaluator-factory/actors#default',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_expression_evaluator_factory__4_0_0_components_ActorExpressionEvaluatorFactory_jsonld_ActorExpressionEvaluatorFactory_default_bus,\n  'busFailMessage': 'Creation of Expression Evaluator failed'\n});\nconst urn_comunica_default_query_operation_actors_group = new (require('@comunica/actor-query-operation-group').ActorQueryOperationGroup)({\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'mediatorBindingsAggregatorFactory': urn_comunica_default_bindings_aggregator_factory_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#group',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_nop = new (require('@comunica/actor-query-operation-nop').ActorQueryOperationNop)({\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#nop',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_service = new (require('@comunica/actor-query-operation-service').ActorQueryOperationService)({\n  'forceSparqlEndpoint': false,\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'mediatorQuerySourceIdentify': urn_comunica_default_query_source_identify_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#service',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_values = new (require('@comunica/actor-query-operation-values').ActorQueryOperationValues)({\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#values',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_path_one_or_more = new (require('@comunica/actor-query-operation-path-one-or-more').ActorQueryOperationPathOneOrMore)({\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#path-one-or-more',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_path_zero_or_more = new (require('@comunica/actor-query-operation-path-zero-or-more').ActorQueryOperationPathZeroOrMore)({\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#path-zero-or-more',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_path_zero_or_one = new (require('@comunica/actor-query-operation-path-zero-or-one').ActorQueryOperationPathZeroOrOne)({\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#path-zero-or-one',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_operation_actors_update_delete_insert = new (require('@comunica/actor-query-operation-update-deleteinsert').ActorQueryOperationUpdateDeleteInsert)({\n  'mediatorUpdateQuads': urn_comunica_default_rdf_update_quads_mediators_main,\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'name': 'urn:comunica:default:query-operation/actors#update-delete-insert',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus,\n  'busFailMessage': 'Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}'\n});\nconst urn_comunica_default_query_process_actors_sequential = new (require('@comunica/actor-query-process-sequential').ActorQueryProcessSequential)({\n  'mediatorContextPreprocess': urn_comunica_default_context_preprocess_mediators_main,\n  'mediatorQueryParse': urn_comunica_default_query_parse_mediators_main,\n  'mediatorOptimizeQueryOperation': urn_comunica_default_optimize_query_operation_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'name': 'urn:comunica:default:query-process/actors#sequential',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__4_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus,\n  'busFailMessage': 'Query processing failed: none of the configured actor were process to the query \"${action.query}\"'\n});\nconst urn_comunica_default_query_source_identify_actors_hypermedia = new (require('@comunica/actor-query-source-identify-hypermedia').ActorQuerySourceIdentifyHypermedia)({\n  'cacheSize': 100,\n  'maxIterators': 64,\n  'aggregateTraversalStore': true,\n  'mediatorDereferenceRdf': urn_comunica_default_dereference_rdf_mediators_main,\n  'mediatorMetadata': urn_comunica_default_rdf_metadata_mediators_main,\n  'mediatorMetadataExtract': urn_comunica_default_rdf_metadata_extract_mediators_main,\n  'mediatorMetadataAccumulate': urn_comunica_default_rdf_metadata_accumulate_mediators_main,\n  'mediatorQuerySourceIdentifyHypermedia': urn_comunica_default_query_source_identify_hypermedia_mediators_main,\n  'mediatorRdfResolveHypermediaLinks': urn_comunica_default_rdf_resolve_hypermedia_links_mediators_main,\n  'mediatorRdfResolveHypermediaLinksQueue': urn_comunica_default_rdf_resolve_hypermedia_links_queue_mediators_main,\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'name': 'urn:comunica:default:query-source-identify/actors#hypermedia',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__4_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus,\n  'busFailMessage': 'Query source identification failed: none of the configured actors were able to identify ${action.querySourceUnidentified.value}'\n});\nconst urn_comunica_default_rdf_join_actors_inner_none = new (require('@comunica/actor-rdf-join-inner-none').ActorRdfJoinNone)({\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-none',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_rdf_join_actors_optional_bind = new (require('@comunica/actor-rdf-join-optional-bind').ActorRdfJoinOptionalBind)({\n  'bindOrder': 'depth-first',\n  'selectivityModifier': 0.000001,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#optional-bind',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}'\n});\nconst urn_comunica_default_term_comparator_factory_actors_expression_evaluator = new (require('@comunica/actor-term-comparator-factory-expression-evaluator').ActorTermComparatorFactoryExpressionEvaluator)({\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'mediatorFunctionFactory': urn_comunica_default_function_factory_mediators_main,\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'name': 'urn:comunica:default:term-comparator-factory/actors#expression-evaluator',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_term_comparator_factory__4_0_0_components_ActorTermComparatorFactory_jsonld_ActorTermComparatorFactory_default_bus,\n  'busFailMessage': 'Creation of term comparator failed'\n});\nconst urn_comunica_default_rdf_join_actors_inner_multi_bind = new (require('@comunica/actor-rdf-join-inner-multi-bind').ActorRdfJoinMultiBind)({\n  'bindOrder': 'depth-first',\n  'selectivityModifier': 0.0001,\n  'minMaxCardinalityRatio': 60,\n  'mediatorJoinEntriesSort': urn_comunica_default_rdf_join_entries_sort_mediators_main,\n  'mediatorQueryOperation': urn_comunica_default_query_operation_mediators_main,\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-multi-bind',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}',\n  'beforeActors': [\n  urn_comunica_default_rdf_join_actors_inner_multi_smallest,\n  urn_comunica_default_rdf_join_actors_inner_hash_def,\n  urn_comunica_default_rdf_join_actors_inner_hash_undef,\n  urn_comunica_default_rdf_join_actors_inner_symmetric_hash,\n  urn_comunica_default_rdf_join_actors_inner_nested_loop\n]\n});\nconst urn_comunica_default_rdf_join_actors_inner_multi_smallest_filter_bindings = new (require('@comunica/actor-rdf-join-inner-multi-smallest-filter-bindings').ActorRdfJoinMultiSmallestFilterBindings)({\n  'selectivityModifier': 0.0001,\n  'blockSize': 64,\n  'mediatorJoinEntriesSort': urn_comunica_default_rdf_join_entries_sort_mediators_main,\n  'mediatorJoin': urn_comunica_default_rdf_join_mediators_main,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-multi-smallest-filter-bindings',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}',\n  'beforeActors': [\n  urn_comunica_default_rdf_join_actors_inner_multi_smallest,\n  urn_comunica_default_rdf_join_actors_inner_hash_def,\n  urn_comunica_default_rdf_join_actors_inner_hash_undef,\n  urn_comunica_default_rdf_join_actors_inner_symmetric_hash,\n  urn_comunica_default_rdf_join_actors_inner_nested_loop\n]\n});\nconst urn_comunica_default_query_result_serialize_actors_sparql_json = new (require('@comunica/actor-query-result-serialize-sparql-json').ActorQueryResultSerializeSparqlJson)({\n  'emitMetadata': true,\n  'httpObserver': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_sparql_json__4_0_0_components_ActorQueryResultSerializeSparqlJson_jsonld_ActorQueryResultSerializeSparqlJson_default_observer,\n  'mediaTypePriorities': {\"application/sparql-results+json\":0.8},\n  'mediaTypeFormats': {\"application/sparql-results+json\":\"http://www.w3.org/ns/formats/SPARQL_Results_JSON\"},\n  'name': 'urn:comunica:default:query-result-serialize/actors#sparql-json',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus,\n  'busFailMessage': 'Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}'\n});\nconst urn_comunica_default_query_result_serialize_actors_stats = new (require('@comunica/actor-query-result-serialize-stats').ActorQueryResultSerializeStats)({\n  'httpObserver': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_stats__4_0_0_components_ActorQueryResultSerializeStats_jsonld_ActorQueryResultSerializeStats_default_observer,\n  'mediaTypePriorities': {\"stats\":0.5},\n  'mediaTypeFormats': {\"stats\":\"https://comunica.linkeddatafragments.org/#results_stats\"},\n  'name': 'urn:comunica:default:query-result-serialize/actors#stats',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus,\n  'busFailMessage': 'Query result serialization failed: none of the configured actors were able to serialize for type ${action.handle.type}'\n});\nconst urn_comunica_default_query_process_actors_explain_logical = new (require('@comunica/actor-query-process-explain-logical').ActorQueryProcessExplainLogical)({\n  'queryProcessor': urn_comunica_default_query_process_actors_sequential,\n  'name': 'urn:comunica:default:query-process/actors#explain-logical',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__4_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus,\n  'busFailMessage': 'Query processing failed: none of the configured actor were process to the query \"${action.query}\"'\n});\nconst urn_comunica_default_query_process_actors_explain_parsed = new (require('@comunica/actor-query-process-explain-parsed').ActorQueryProcessExplainParsed)({\n  'queryProcessor': urn_comunica_default_query_process_actors_sequential,\n  'name': 'urn:comunica:default:query-process/actors#explain-parsed',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__4_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus,\n  'busFailMessage': 'Query processing failed: none of the configured actor were process to the query \"${action.query}\"'\n});\nconst urn_comunica_default_query_process_actors_explain_physical = new (require('@comunica/actor-query-process-explain-physical').ActorQueryProcessExplainPhysical)({\n  'queryProcessor': urn_comunica_default_query_process_actors_sequential,\n  'name': 'urn:comunica:default:query-process/actors#explain-physical',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__4_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus,\n  'busFailMessage': 'Query processing failed: none of the configured actor were process to the query \"${action.query}\"'\n});\nconst urn_comunica_default_optimize_query_operation_actors_prune_empty_source_operations = new (require('@comunica/actor-optimize-query-operation-prune-empty-source-operations').ActorOptimizeQueryOperationPruneEmptySourceOperations)({\n  'useAskIfSupported': false,\n  'name': 'urn:comunica:default:optimize-query-operation/actors#prune-empty-source-operations',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize',\n  'beforeActors': [\n  urn_comunica_default_optimize_query_operation_actors_filter_pushdown\n]\n});\nconst urn_comunica_default_http_actors_retry = new (require('@comunica/actor-http-retry').ActorHttpRetry)({\n  'mediatorHttp': urn_comunica_default_http_mediators_main,\n  'httpInvalidator': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_http_retry__4_0_0_components_ActorHttpRetry_jsonld_IActorHttpQueueArgs_default_invalidator,\n  'name': 'urn:comunica:default:http/actors#retry',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus,\n  'busFailMessage': 'HTTP request failed: none of the configured actors were able to handle ${action.input}',\n  'beforeActors': [\n  urn_comunica_default_http_actors_proxy\n]\n});\nconst urn_comunica_default_http_actors_limit_rate = new (require('@comunica/actor-http-limit-rate').ActorHttpLimitRate)({\n  'mediatorHttp': urn_comunica_default_http_mediators_main,\n  'httpInvalidator': https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_http_limit_rate__4_0_0_components_ActorHttpLimitRate_jsonld_IActorHttpLimitRateArgs_default_invalidator,\n  'correctionMultiplier': 0.1,\n  'failureMultiplier': 10,\n  'limitByDefault': false,\n  'allowOverlap': false,\n  'name': 'urn:comunica:default:http/actors#limit-rate',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus,\n  'busFailMessage': 'HTTP request failed: none of the configured actors were able to handle ${action.input}',\n  'beforeActors': [\n  urn_comunica_default_http_actors_proxy\n]\n});\nconst urn_comunica_default_query_source_identify_actors_rdfjs = new (require('@comunica/actor-query-source-identify-rdfjs').ActorQuerySourceIdentifyRdfJs)({\n  'mediatorMergeBindingsContext': urn_comunica_default_merge_bindings_context_mediators_main,\n  'name': 'urn:comunica:default:query-source-identify/actors#rdfjs',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__4_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus,\n  'busFailMessage': 'Query source identification failed: none of the configured actors were able to identify ${action.querySourceUnidentified.value}',\n  'beforeActors': [\n  urn_comunica_default_query_source_identify_actors_hypermedia\n]\n});\nconst urn_comunica_default_query_source_identify_actors_serialized = new (require('@comunica/actor-query-source-identify-serialized').ActorQuerySourceIdentifySerialized)({\n  'mediatorRdfParse': urn_comunica_default_rdf_parse_mediators_parse,\n  'mediatorQuerySourceIdentify': urn_comunica_default_query_source_identify_mediators_main,\n  'name': 'urn:comunica:default:query-source-identify/actors#serialized',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__4_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus,\n  'busFailMessage': 'Query source identification failed: none of the configured actors were able to identify ${action.querySourceUnidentified.value}',\n  'beforeActors': [\n  urn_comunica_default_query_source_identify_actors_hypermedia\n]\n});\nconst urn_comunica_default_rdf_join_actors_inner_multi_bind_source = new (require('@comunica/actor-rdf-join-inner-multi-bind-source').ActorRdfJoinMultiBindSource)({\n  'selectivityModifier': 0.0001,\n  'blockSize': 16,\n  'mediatorJoinEntriesSort': urn_comunica_default_rdf_join_entries_sort_mediators_main,\n  'mediatorJoinSelectivity': urn_comunica_default_rdf_join_selectivity_mediators_main,\n  'name': 'urn:comunica:default:rdf-join/actors#inner-multi-bind-source',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus,\n  'busFailMessage': 'RDF joining failed: none of the configured actors were able to handle the join type ${action.type}',\n  'beforeActors': [\n  urn_comunica_default_rdf_join_actors_inner_multi_smallest,\n  urn_comunica_default_rdf_join_actors_inner_multi_bind,\n  urn_comunica_default_rdf_join_actors_inner_hash_def,\n  urn_comunica_default_rdf_join_actors_inner_hash_undef,\n  urn_comunica_default_rdf_join_actors_inner_symmetric_hash,\n  urn_comunica_default_rdf_join_actors_inner_nested_loop\n]\n});\nconst urn_comunica_default_optimize_query_operation_actors_join_connected = new (require('@comunica/actor-optimize-query-operation-join-connected').ActorOptimizeQueryOperationJoinConnected)({\n  'name': 'urn:comunica:default:optimize-query-operation/actors#join-connected',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize',\n  'beforeActors': [\n  urn_comunica_default_optimize_query_operation_actors_prune_empty_source_operations\n]\n});\nconst urn_comunica_default_optimize_query_operation_actors_bgp_to_join = new (require('@comunica/actor-optimize-query-operation-bgp-to-join').ActorOptimizeQueryOperationBgpToJoin)({\n  'name': 'urn:comunica:default:optimize-query-operation/actors#bgp-to-join',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize',\n  'beforeActors': [\n  urn_comunica_default_optimize_query_operation_actors_join_connected\n]\n});\nconst urn_comunica_default_optimize_query_operation_actors_join_bgp = new (require('@comunica/actor-optimize-query-operation-join-bgp').ActorOptimizeQueryOperationJoinBgp)({\n  'name': 'urn:comunica:default:optimize-query-operation/actors#join-bgp',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize',\n  'beforeActors': [\n  urn_comunica_default_optimize_query_operation_actors_bgp_to_join\n]\n});\nconst urn_comunica_default_optimize_query_operation_actors_assign_sources_exhaustive = new (require('@comunica/actor-optimize-query-operation-assign-sources-exhaustive').ActorOptimizeQueryOperationAssignSourcesExhaustive)({\n  'name': 'urn:comunica:default:optimize-query-operation/actors#assign-sources-exhaustive',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize',\n  'beforeActors': [\n  urn_comunica_default_optimize_query_operation_actors_join_bgp\n]\n});\nconst urn_comunica_default_optimize_query_operation_actors_describe_to_constructs_subject = new (require('@comunica/actor-optimize-query-operation-describe-to-constructs-subject').ActorOptimizeQueryOperationDescribeToConstructsSubject)({\n  'name': 'urn:comunica:default:optimize-query-operation/actors#describe-to-constructs-subject',\n  'bus': https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus,\n  'busFailMessage': 'Query optimization failed: none of the configured actors were able to optimize',\n  'beforeActors': [\n  urn_comunica_default_optimize_query_operation_actors_assign_sources_exhaustive\n]\n});\nconst urn_comunica_default_Runner = (https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_init__4_0_0_components_ActorInit_jsonld_ActorInit_default_bus, [\n  urn_comunica_default_context_preprocess_actors_convert_shortcuts,\n  urn_comunica_default_context_preprocess_actors_set_defaults,\n  urn_comunica_default_context_preprocess_actors_source_to_destination,\n  urn_comunica_default_context_preprocess_actors_query_source_identify,\n  urn_comunica_default_context_preprocess_actors_query_source_skolemize,\n  urn_comunica_default_hash_bindings_actors_murmur,\n  urn_comunica_default_hash_quads_actors_murmur,\n  urn_comunica_default_init_actors_query,\n  urn_comunica_default_optimize_query_operation_actors_rewrite_copy,\n  urn_comunica_default_optimize_query_operation_actors_rewrite_move,\n  urn_comunica_default_optimize_query_operation_actors_rewrite_add,\n  urn_comunica_default_optimize_query_operation_actors_describe_to_constructs_subject,\n  urn_comunica_default_optimize_query_operation_actors_assign_sources_exhaustive,\n  urn_comunica_default_optimize_query_operation_actors_join_bgp,\n  urn_comunica_default_optimize_query_operation_actors_bgp_to_join,\n  urn_comunica_default_optimize_query_operation_actors_join_connected,\n  urn_comunica_default_optimize_query_operation_actors_prune_empty_source_operations,\n  urn_comunica_default_optimize_query_operation_actors_filter_pushdown,\n  urn_comunica_default_optimize_query_operation_actors_group_sources,\n  urn_comunica_default_optimize_query_operation_actors_construct_distinct,\n  urn_comunica_default_query_parse_actors_sparql,\n  urn_comunica_default_query_parse_actors_graphql,\n  urn_comunica_default_query_result_serialize_actors_json,\n  urn_comunica_default_query_result_serialize_actors_rdf,\n  urn_comunica_default_query_result_serialize_actors_simple,\n  urn_comunica_default_query_result_serialize_actors_csv,\n  urn_comunica_default_query_result_serialize_actors_sparql_json,\n  urn_comunica_default_query_result_serialize_actors_sparql_tsv,\n  urn_comunica_default_query_result_serialize_actors_sparql_xml,\n  urn_comunica_default_query_result_serialize_actors_stats,\n  urn_comunica_default_query_result_serialize_actors_table,\n  urn_comunica_default_query_result_serialize_actors_tree,\n  urn_comunica_default_query_source_identify_hypermedia_actors_qpf,\n  urn_comunica_default_query_source_identify_hypermedia_actors_sparql,\n  urn_comunica_default_query_source_identify_hypermedia_actors_none,\n  urn_comunica_default_dereference_actors_http,\n  urn_comunica_default_dereference_actors_fallback,\n  urn_comunica_default_dereference_rdf_actors_parse,\n  urn_comunica_default_rdf_join_entries_sort_actors_cardinality,\n  urn_comunica_default_rdf_join_entries_sort_actors_selectivity,\n  urn_comunica_default_rdf_join_selectivity_actors_variable_counting,\n  urn_comunica_default_rdf_metadata_actors_primary_topic,\n  urn_comunica_default_rdf_metadata_actors_all,\n  urn_comunica_default_rdf_metadata_accumulate_actors_cardinality,\n  urn_comunica_default_rdf_metadata_accumulate_actors_pagesize,\n  urn_comunica_default_rdf_metadata_accumulate_actors_requesttime,\n  urn_comunica_default_rdf_metadata_extract_actors_hydra_controls,\n  urn_comunica_default_rdf_metadata_extract_actors_hydra_count,\n  urn_comunica_default_rdf_metadata_extract_actors_hydra_pagesize,\n  urn_comunica_default_rdf_metadata_extract_actors_request_time,\n  urn_comunica_default_rdf_metadata_extract_actors_allow_http_methods,\n  urn_comunica_default_rdf_metadata_extract_actors_put_accepted,\n  urn_comunica_default_rdf_metadata_extract_actors_patch_sparql_update,\n  urn_comunica_default_rdf_metadata_extract_actors_sparql_service,\n  urn_comunica_default_rdf_metadata_extract_actors_void,\n  urn_comunica_default_rdf_parse_actors_n3,\n  urn_comunica_default_rdf_parse_actors_jsonld,\n  urn_comunica_default_rdf_parse_actors_rdfxml,\n  urn_comunica_default_rdf_parse_actors_xmlrdfa,\n  urn_comunica_default_rdf_parse_actors_html,\n  urn_comunica_default_rdf_parse_actors_shaclc,\n  urn_comunica_default_rdf_parse_html_actors_microdata,\n  urn_comunica_default_rdf_parse_html_actors_rdfa,\n  urn_comunica_default_rdf_parse_html_actors_script,\n  urn_comunica_default_rdf_resolve_hypermedia_links_actors_next,\n  urn_comunica_default_rdf_resolve_hypermedia_links_queue_actors_fifo,\n  urn_comunica_default_rdf_serialize_actors_n3,\n  urn_comunica_default_rdf_serialize_actors_jsonld,\n  urn_comunica_default_rdf_serialize_actors_shaclc,\n  urn_comunica_default_rdf_update_hypermedia_actors_patch_sparql_update,\n  urn_comunica_default_rdf_update_hypermedia_actors_put_ldp,\n  urn_comunica_default_rdf_update_hypermedia_actors_sparql,\n  urn_comunica_default_rdf_update_quads_actors_hypermedia,\n  urn_comunica_default_rdf_update_quads_actors_rdfjs_store,\n  urn_comunica_default_bindings_aggregator_factory_actors_average,\n  urn_comunica_default_bindings_aggregator_factory_actors_group_concat,\n  urn_comunica_default_bindings_aggregator_factory_actors_count,\n  urn_comunica_default_bindings_aggregator_factory_actors_max,\n  urn_comunica_default_bindings_aggregator_factory_actors_min,\n  urn_comunica_default_bindings_aggregator_factory_actors_sample,\n  urn_comunica_default_bindings_aggregator_factory_actors_sum,\n  urn_comunica_default_bindings_aggregator_factory_actors_wildcard_count,\n  urn_comunica_default_expression_evaluator_factory_actors_default,\n  urn_comunica_default_function_factory_actors_expression_function_bnode,\n  urn_comunica_default_function_factory_actors_expression_function_bound,\n  urn_comunica_default_function_factory_actors_expression_function_coalesce,\n  urn_comunica_default_function_factory_actors_expression_function_concat,\n  urn_comunica_default_function_factory_actors_expression_function_extensions,\n  urn_comunica_default_function_factory_actors_expression_function_if,\n  urn_comunica_default_function_factory_actors_expression_function_in,\n  urn_comunica_default_function_factory_actors_expression_function_logical_and,\n  urn_comunica_default_function_factory_actors_expression_function_logical_or,\n  urn_comunica_default_function_factory_actors_expression_function_not_in,\n  urn_comunica_default_function_factory_actors_expression_function_same_term,\n  urn_comunica_default_function_factory_actors_term_function_abs,\n  urn_comunica_default_function_factory_actors_term_function_addition,\n  urn_comunica_default_function_factory_actors_term_function_ceil,\n  urn_comunica_default_function_factory_actors_term_function_contains,\n  urn_comunica_default_function_factory_actors_term_function_datatype,\n  urn_comunica_default_function_factory_actors_term_function_day,\n  urn_comunica_default_function_factory_actors_term_function_division,\n  urn_comunica_default_function_factory_actors_term_function_encode_for_uri,\n  urn_comunica_default_function_factory_actors_term_function_equality,\n  urn_comunica_default_function_factory_actors_term_function_floor,\n  urn_comunica_default_function_factory_actors_term_function_greater_than_equal,\n  urn_comunica_default_function_factory_actors_term_function_greater_than,\n  urn_comunica_default_function_factory_actors_term_function_hours,\n  urn_comunica_default_function_factory_actors_term_function_inequality,\n  urn_comunica_default_function_factory_actors_term_function_iri,\n  urn_comunica_default_function_factory_actors_term_function_is_blank,\n  urn_comunica_default_function_factory_actors_term_function_is_iri,\n  urn_comunica_default_function_factory_actors_term_function_is_literal,\n  urn_comunica_default_function_factory_actors_term_function_is_numeric,\n  urn_comunica_default_function_factory_actors_term_function_is_triple,\n  urn_comunica_default_function_factory_actors_term_function_lang,\n  urn_comunica_default_function_factory_actors_term_function_langmatches,\n  urn_comunica_default_function_factory_actors_term_function_lcase,\n  urn_comunica_default_function_factory_actors_term_function_lesser_than_equal,\n  urn_comunica_default_function_factory_actors_term_function_lesser_than,\n  urn_comunica_default_function_factory_actors_term_function_md5,\n  urn_comunica_default_function_factory_actors_term_function_minutes,\n  urn_comunica_default_function_factory_actors_term_function_month,\n  urn_comunica_default_function_factory_actors_term_function_multiplication,\n  urn_comunica_default_function_factory_actors_term_function_not,\n  urn_comunica_default_function_factory_actors_term_function_now,\n  urn_comunica_default_function_factory_actors_term_function_object,\n  urn_comunica_default_function_factory_actors_term_function_predicate,\n  urn_comunica_default_function_factory_actors_term_function_rand,\n  urn_comunica_default_function_factory_actors_term_function_regex,\n  urn_comunica_default_function_factory_actors_term_function_replace,\n  urn_comunica_default_function_factory_actors_term_function_round,\n  urn_comunica_default_function_factory_actors_term_function_seconds,\n  urn_comunica_default_function_factory_actors_term_function_sha1,\n  urn_comunica_default_function_factory_actors_term_function_sha256,\n  urn_comunica_default_function_factory_actors_term_function_sha384,\n  urn_comunica_default_function_factory_actors_term_function_sha512,\n  urn_comunica_default_function_factory_actors_term_function_str_after,\n  urn_comunica_default_function_factory_actors_term_function_str_before,\n  urn_comunica_default_function_factory_actors_term_function_str_dt,\n  urn_comunica_default_function_factory_actors_term_function_str_ends,\n  urn_comunica_default_function_factory_actors_term_function_str_lang,\n  urn_comunica_default_function_factory_actors_term_function_str_len,\n  urn_comunica_default_function_factory_actors_term_function_str_starts,\n  urn_comunica_default_function_factory_actors_term_function_str_uuid,\n  urn_comunica_default_function_factory_actors_term_function_str,\n  urn_comunica_default_function_factory_actors_term_function_sub_str,\n  urn_comunica_default_function_factory_actors_term_function_subject,\n  urn_comunica_default_function_factory_actors_term_function_subtraction,\n  urn_comunica_default_function_factory_actors_term_function_timezone,\n  urn_comunica_default_function_factory_actors_term_function_triple,\n  urn_comunica_default_function_factory_actors_term_function_tz,\n  urn_comunica_default_function_factory_actors_term_function_ucase,\n  urn_comunica_default_function_factory_actors_term_function_unary_minus,\n  urn_comunica_default_function_factory_actors_term_function_unary_plus,\n  urn_comunica_default_function_factory_actors_term_function_uuid,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_boolean,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_date,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_datetime,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_day_time_duration,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_decimal,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_double,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_duration,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_float,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_integer,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_string,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_time,\n  urn_comunica_default_function_factory_actors_term_function_xsd_to_year_month_duration,\n  urn_comunica_default_function_factory_actors_term_function_year,\n  urn_comunica_default_http_actors_retry,\n  urn_comunica_default_http_actors_proxy,\n  urn_comunica_default_http_actors_fetch,\n  urn_comunica_default_http_actors_limit_rate,\n  urn_comunica_default_http_actors_wayback,\n  urn_comunica_default_query_operation_actors_ask,\n  urn_comunica_default_query_operation_actors_bgp,\n  urn_comunica_default_query_operation_actors_construct,\n  urn_comunica_default_query_operation_actors_distinct,\n  urn_comunica_default_query_operation_actors_extend,\n  urn_comunica_default_query_operation_actors_filter,\n  urn_comunica_default_query_operation_actors_from,\n  urn_comunica_default_query_operation_actors_group,\n  urn_comunica_default_query_operation_actors_join,\n  urn_comunica_default_query_operation_actors_leftjoin,\n  urn_comunica_default_query_operation_actors_minus,\n  urn_comunica_default_query_operation_actors_nop,\n  urn_comunica_default_query_operation_actors_orderby,\n  urn_comunica_default_query_operation_actors_project,\n  urn_comunica_default_query_operation_actors_reduced,\n  urn_comunica_default_query_operation_actors_service,\n  urn_comunica_default_query_operation_actors_slice,\n  urn_comunica_default_query_operation_actors_source,\n  urn_comunica_default_query_operation_actors_union,\n  urn_comunica_default_query_operation_actors_values,\n  urn_comunica_default_query_operation_actors_path_alt,\n  urn_comunica_default_query_operation_actors_path_inv,\n  urn_comunica_default_query_operation_actors_path_link,\n  urn_comunica_default_query_operation_actors_path_nps,\n  urn_comunica_default_query_operation_actors_path_one_or_more,\n  urn_comunica_default_query_operation_actors_path_seq,\n  urn_comunica_default_query_operation_actors_path_zero_or_more,\n  urn_comunica_default_query_operation_actors_path_zero_or_one,\n  urn_comunica_default_query_operation_actors_update_clear,\n  urn_comunica_default_query_operation_actors_update_composite,\n  urn_comunica_default_query_operation_actors_update_create,\n  urn_comunica_default_query_operation_actors_update_delete_insert,\n  urn_comunica_default_query_operation_actors_update_drop,\n  urn_comunica_default_query_operation_actors_update_load,\n  urn_comunica_default_query_process_actors_sequential,\n  urn_comunica_default_query_process_actors_explain_logical,\n  urn_comunica_default_query_process_actors_explain_parsed,\n  urn_comunica_default_query_process_actors_explain_physical,\n  urn_comunica_default_query_source_identify_actors_hypermedia,\n  urn_comunica_default_query_source_identify_actors_rdfjs,\n  urn_comunica_default_query_source_identify_actors_serialized,\n  urn_comunica_default_rdf_join_actors_inner_none,\n  urn_comunica_default_rdf_join_actors_inner_single,\n  urn_comunica_default_rdf_join_actors_inner_multi_empty,\n  urn_comunica_default_rdf_join_actors_inner_multi_bind_source,\n  urn_comunica_default_rdf_join_actors_inner_multi_bind,\n  urn_comunica_default_rdf_join_actors_inner_hash_def,\n  urn_comunica_default_rdf_join_actors_inner_hash_undef,\n  urn_comunica_default_rdf_join_actors_inner_symmetric_hash,\n  urn_comunica_default_rdf_join_actors_inner_nested_loop,\n  urn_comunica_default_rdf_join_actors_inner_multi_smallest,\n  urn_comunica_default_rdf_join_actors_inner_multi_smallest_filter_bindings,\n  urn_comunica_default_rdf_join_actors_optional_bind,\n  urn_comunica_default_rdf_join_actors_optional_hash_def_nonblocking,\n  urn_comunica_default_rdf_join_actors_optional_hash_def_blocking,\n  urn_comunica_default_rdf_join_actors_optional_hash_undef_nonblocking,\n  urn_comunica_default_rdf_join_actors_optional_hash_undef_blocking,\n  urn_comunica_default_rdf_join_actors_optional_nested_loop,\n  urn_comunica_default_rdf_join_actors_minus_hash_def,\n  urn_comunica_default_rdf_join_actors_minus_hash_undef,\n  urn_comunica_default_term_comparator_factory_actors_expression_evaluator\n]);\nreturn urn_comunica_default_init_actors_query;\n}\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QueryEngine = void 0;\nconst actor_init_query_1 = require(\"@comunica/actor-init-query\");\n// eslint-disable-next-line ts/no-require-imports,ts/no-var-requires,import/extensions\nconst engineDefault = require('../engine-default.js');\n/**\n * A Comunica SPARQL query engine.\n */\nclass QueryEngine extends actor_init_query_1.QueryEngineBase {\n    constructor(engine = engineDefault()) {\n        super(engine);\n    }\n}\nexports.QueryEngine = QueryEngine;\n//# sourceMappingURL=QueryEngine.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./QueryEngine\"), exports);\n//# sourceMappingURL=index-browser.js.map",null,"var Ur = Object.defineProperty, Br = Object.defineProperties;\nvar Mr = Object.getOwnPropertyDescriptors;\nvar ui = Object.getOwnPropertySymbols;\nvar Hr = Object.prototype.hasOwnProperty, jr = Object.prototype.propertyIsEnumerable;\nvar hi = (n, i, t) => i in n ? Ur(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t, ht = (n, i) => {\n  for (var t in i || (i = {}))\n    Hr.call(i, t) && hi(n, t, i[t]);\n  if (ui)\n    for (var t of ui(i))\n      jr.call(i, t) && hi(n, t, i[t]);\n  return n;\n}, di = (n, i) => Br(n, Mr(i));\nvar ze = (n, i, t) => new Promise((e, r) => {\n  var a = (u) => {\n    try {\n      s(t.next(u));\n    } catch (h) {\n      r(h);\n    }\n  }, o = (u) => {\n    try {\n      s(t.throw(u));\n    } catch (h) {\n      r(h);\n    }\n  }, s = (u) => u.done ? e(u.value) : Promise.resolve(u.value).then(a, o);\n  s((t = t.apply(n, i)).next());\n});\nfunction yt(n) {\n  return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar dt = { exports: {} }, li;\nfunction Wr() {\n  if (li) return dt.exports;\n  li = 1;\n  var n = typeof Reflect == \"object\" ? Reflect : null, i = n && typeof n.apply == \"function\" ? n.apply : function(g, w, T) {\n    return Function.prototype.apply.call(g, w, T);\n  }, t;\n  n && typeof n.ownKeys == \"function\" ? t = n.ownKeys : Object.getOwnPropertySymbols ? t = function(g) {\n    return Object.getOwnPropertyNames(g).concat(Object.getOwnPropertySymbols(g));\n  } : t = function(g) {\n    return Object.getOwnPropertyNames(g);\n  };\n  function e(f) {\n    console && console.warn && console.warn(f);\n  }\n  var r = Number.isNaN || function(g) {\n    return g !== g;\n  };\n  function a() {\n    a.init.call(this);\n  }\n  dt.exports = a, dt.exports.once = C, a.EventEmitter = a, a.prototype._events = void 0, a.prototype._eventsCount = 0, a.prototype._maxListeners = void 0;\n  var o = 10;\n  function s(f) {\n    if (typeof f != \"function\")\n      throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof f);\n  }\n  Object.defineProperty(a, \"defaultMaxListeners\", {\n    enumerable: !0,\n    get: function() {\n      return o;\n    },\n    set: function(f) {\n      if (typeof f != \"number\" || f < 0 || r(f))\n        throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + f + \".\");\n      o = f;\n    }\n  }), a.init = function() {\n    (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) && (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0;\n  }, a.prototype.setMaxListeners = function(g) {\n    if (typeof g != \"number\" || g < 0 || r(g))\n      throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + g + \".\");\n    return this._maxListeners = g, this;\n  };\n  function u(f) {\n    return f._maxListeners === void 0 ? a.defaultMaxListeners : f._maxListeners;\n  }\n  a.prototype.getMaxListeners = function() {\n    return u(this);\n  }, a.prototype.emit = function(g) {\n    for (var w = [], T = 1; T < arguments.length; T++) w.push(arguments[T]);\n    var x = g === \"error\", L = this._events;\n    if (L !== void 0)\n      x = x && L.error === void 0;\n    else if (!x)\n      return !1;\n    if (x) {\n      var F;\n      if (w.length > 0 && (F = w[0]), F instanceof Error)\n        throw F;\n      var N = new Error(\"Unhandled error.\" + (F ? \" (\" + F.message + \")\" : \"\"));\n      throw N.context = F, N;\n    }\n    var O = L[g];\n    if (O === void 0)\n      return !1;\n    if (typeof O == \"function\")\n      i(O, this, w);\n    else\n      for (var m = O.length, j = A(O, m), T = 0; T < m; ++T)\n        i(j[T], this, w);\n    return !0;\n  };\n  function h(f, g, w, T) {\n    var x, L, F;\n    if (s(w), L = f._events, L === void 0 ? (L = f._events = /* @__PURE__ */ Object.create(null), f._eventsCount = 0) : (L.newListener !== void 0 && (f.emit(\n      \"newListener\",\n      g,\n      w.listener ? w.listener : w\n    ), L = f._events), F = L[g]), F === void 0)\n      F = L[g] = w, ++f._eventsCount;\n    else if (typeof F == \"function\" ? F = L[g] = T ? [w, F] : [F, w] : T ? F.unshift(w) : F.push(w), x = u(f), x > 0 && F.length > x && !F.warned) {\n      F.warned = !0;\n      var N = new Error(\"Possible EventEmitter memory leak detected. \" + F.length + \" \" + String(g) + \" listeners added. Use emitter.setMaxListeners() to increase limit\");\n      N.name = \"MaxListenersExceededWarning\", N.emitter = f, N.type = g, N.count = F.length, e(N);\n    }\n    return f;\n  }\n  a.prototype.addListener = function(g, w) {\n    return h(this, g, w, !1);\n  }, a.prototype.on = a.prototype.addListener, a.prototype.prependListener = function(g, w) {\n    return h(this, g, w, !0);\n  };\n  function l() {\n    if (!this.fired)\n      return this.target.removeListener(this.type, this.wrapFn), this.fired = !0, arguments.length === 0 ? this.listener.call(this.target) : this.listener.apply(this.target, arguments);\n  }\n  function d(f, g, w) {\n    var T = { fired: !1, wrapFn: void 0, target: f, type: g, listener: w }, x = l.bind(T);\n    return x.listener = w, T.wrapFn = x, x;\n  }\n  a.prototype.once = function(g, w) {\n    return s(w), this.on(g, d(this, g, w)), this;\n  }, a.prototype.prependOnceListener = function(g, w) {\n    return s(w), this.prependListener(g, d(this, g, w)), this;\n  }, a.prototype.removeListener = function(g, w) {\n    var T, x, L, F, N;\n    if (s(w), x = this._events, x === void 0)\n      return this;\n    if (T = x[g], T === void 0)\n      return this;\n    if (T === w || T.listener === w)\n      --this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : (delete x[g], x.removeListener && this.emit(\"removeListener\", g, T.listener || w));\n    else if (typeof T != \"function\") {\n      for (L = -1, F = T.length - 1; F >= 0; F--)\n        if (T[F] === w || T[F].listener === w) {\n          N = T[F].listener, L = F;\n          break;\n        }\n      if (L < 0)\n        return this;\n      L === 0 ? T.shift() : p(T, L), T.length === 1 && (x[g] = T[0]), x.removeListener !== void 0 && this.emit(\"removeListener\", g, N || w);\n    }\n    return this;\n  }, a.prototype.off = a.prototype.removeListener, a.prototype.removeAllListeners = function(g) {\n    var w, T, x;\n    if (T = this._events, T === void 0)\n      return this;\n    if (T.removeListener === void 0)\n      return arguments.length === 0 ? (this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0) : T[g] !== void 0 && (--this._eventsCount === 0 ? this._events = /* @__PURE__ */ Object.create(null) : delete T[g]), this;\n    if (arguments.length === 0) {\n      var L = Object.keys(T), F;\n      for (x = 0; x < L.length; ++x)\n        F = L[x], F !== \"removeListener\" && this.removeAllListeners(F);\n      return this.removeAllListeners(\"removeListener\"), this._events = /* @__PURE__ */ Object.create(null), this._eventsCount = 0, this;\n    }\n    if (w = T[g], typeof w == \"function\")\n      this.removeListener(g, w);\n    else if (w !== void 0)\n      for (x = w.length - 1; x >= 0; x--)\n        this.removeListener(g, w[x]);\n    return this;\n  };\n  function c(f, g, w) {\n    var T = f._events;\n    if (T === void 0)\n      return [];\n    var x = T[g];\n    return x === void 0 ? [] : typeof x == \"function\" ? w ? [x.listener || x] : [x] : w ? S(x) : A(x, x.length);\n  }\n  a.prototype.listeners = function(g) {\n    return c(this, g, !0);\n  }, a.prototype.rawListeners = function(g) {\n    return c(this, g, !1);\n  }, a.listenerCount = function(f, g) {\n    return typeof f.listenerCount == \"function\" ? f.listenerCount(g) : y.call(f, g);\n  }, a.prototype.listenerCount = y;\n  function y(f) {\n    var g = this._events;\n    if (g !== void 0) {\n      var w = g[f];\n      if (typeof w == \"function\")\n        return 1;\n      if (w !== void 0)\n        return w.length;\n    }\n    return 0;\n  }\n  a.prototype.eventNames = function() {\n    return this._eventsCount > 0 ? t(this._events) : [];\n  };\n  function A(f, g) {\n    for (var w = new Array(g), T = 0; T < g; ++T)\n      w[T] = f[T];\n    return w;\n  }\n  function p(f, g) {\n    for (; g + 1 < f.length; g++)\n      f[g] = f[g + 1];\n    f.pop();\n  }\n  function S(f) {\n    for (var g = new Array(f.length), w = 0; w < g.length; ++w)\n      g[w] = f[w].listener || f[w];\n    return g;\n  }\n  function C(f, g) {\n    return new Promise(function(w, T) {\n      function x(F) {\n        f.removeListener(g, L), T(F);\n      }\n      function L() {\n        typeof f.removeListener == \"function\" && f.removeListener(\"error\", x), w([].slice.call(arguments));\n      }\n      k(f, g, L, { once: !0 }), g !== \"error\" && _(f, x, { once: !0 });\n    });\n  }\n  function _(f, g, w) {\n    typeof f.on == \"function\" && k(f, \"error\", g, w);\n  }\n  function k(f, g, w, T) {\n    if (typeof f.on == \"function\")\n      T.once ? f.once(g, w) : f.on(g, w);\n    else if (typeof f.addEventListener == \"function\")\n      f.addEventListener(g, function x(L) {\n        T.once && f.removeEventListener(g, x), w(L);\n      });\n    else\n      throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof f);\n  }\n  return dt.exports;\n}\nvar Zi = Wr();\nfunction qr() {\n  const n = arguments[0];\n  for (let i = 1, t = arguments.length; i < t; i++)\n    if (arguments[i])\n      for (const e in arguments[i]) n[e] = arguments[i][e];\n  return n;\n}\nlet ue = qr;\ntypeof Object.assign == \"function\" && (ue = Object.assign);\nfunction we(n, i, t, e) {\n  const r = n._nodes.get(i);\n  let a = null;\n  return r && (e === \"mixed\" ? a = r.out && r.out[t] || r.undirected && r.undirected[t] : e === \"directed\" ? a = r.out && r.out[t] : a = r.undirected && r.undirected[t]), a;\n}\nfunction de(n) {\n  return typeof n == \"object\" && n !== null;\n}\nfunction Xi(n) {\n  let i;\n  for (i in n) return !1;\n  return !0;\n}\nfunction be(n, i, t) {\n  Object.defineProperty(n, i, {\n    enumerable: !1,\n    configurable: !1,\n    writable: !0,\n    value: t\n  });\n}\nfunction Se(n, i, t) {\n  const e = {\n    enumerable: !0,\n    configurable: !0\n  };\n  typeof t == \"function\" ? e.get = t : (e.value = t, e.writable = !1), Object.defineProperty(n, i, e);\n}\nfunction ci(n) {\n  return !(!de(n) || n.attributes && !Array.isArray(n.attributes));\n}\nfunction Vr() {\n  let n = Math.floor(Math.random() * 256) & 255;\n  return () => n++;\n}\nfunction Ie() {\n  const n = arguments;\n  let i = null, t = -1;\n  return {\n    [Symbol.iterator]() {\n      return this;\n    },\n    next() {\n      let e = null;\n      do {\n        if (i === null) {\n          if (t++, t >= n.length) return { done: !0 };\n          i = n[t][Symbol.iterator]();\n        }\n        if (e = i.next(), e.done) {\n          i = null;\n          continue;\n        }\n        break;\n      } while (!0);\n      return e;\n    }\n  };\n}\nfunction Ve() {\n  return {\n    [Symbol.iterator]() {\n      return this;\n    },\n    next() {\n      return { done: !0 };\n    }\n  };\n}\nclass Jt extends Error {\n  constructor(i) {\n    super(), this.name = \"GraphError\", this.message = i;\n  }\n}\nclass B extends Jt {\n  constructor(i) {\n    super(i), this.name = \"InvalidArgumentsGraphError\", typeof Error.captureStackTrace == \"function\" && Error.captureStackTrace(\n      this,\n      B.prototype.constructor\n    );\n  }\n}\nclass $ extends Jt {\n  constructor(i) {\n    super(i), this.name = \"NotFoundGraphError\", typeof Error.captureStackTrace == \"function\" && Error.captureStackTrace(this, $.prototype.constructor);\n  }\n}\nclass Z extends Jt {\n  constructor(i) {\n    super(i), this.name = \"UsageGraphError\", typeof Error.captureStackTrace == \"function\" && Error.captureStackTrace(this, Z.prototype.constructor);\n  }\n}\nfunction Qi(n, i) {\n  this.key = n, this.attributes = i, this.clear();\n}\nQi.prototype.clear = function() {\n  this.inDegree = 0, this.outDegree = 0, this.undirectedDegree = 0, this.undirectedLoops = 0, this.directedLoops = 0, this.in = {}, this.out = {}, this.undirected = {};\n};\nfunction Ji(n, i) {\n  this.key = n, this.attributes = i, this.clear();\n}\nJi.prototype.clear = function() {\n  this.inDegree = 0, this.outDegree = 0, this.directedLoops = 0, this.in = {}, this.out = {};\n};\nfunction er(n, i) {\n  this.key = n, this.attributes = i, this.clear();\n}\ner.prototype.clear = function() {\n  this.undirectedDegree = 0, this.undirectedLoops = 0, this.undirected = {};\n};\nfunction Ye(n, i, t, e, r) {\n  this.key = i, this.attributes = r, this.undirected = n, this.source = t, this.target = e;\n}\nYe.prototype.attach = function() {\n  let n = \"out\", i = \"in\";\n  this.undirected && (n = i = \"undirected\");\n  const t = this.source.key, e = this.target.key;\n  this.source[n][e] = this, !(this.undirected && t === e) && (this.target[i][t] = this);\n};\nYe.prototype.attachMulti = function() {\n  let n = \"out\", i = \"in\";\n  const t = this.source.key, e = this.target.key;\n  this.undirected && (n = i = \"undirected\");\n  const r = this.source[n], a = r[e];\n  if (typeof a == \"undefined\") {\n    r[e] = this, this.undirected && t === e || (this.target[i][t] = this);\n    return;\n  }\n  a.previous = this, this.next = a, r[e] = this, this.target[i][t] = this;\n};\nYe.prototype.detach = function() {\n  const n = this.source.key, i = this.target.key;\n  let t = \"out\", e = \"in\";\n  this.undirected && (t = e = \"undirected\"), delete this.source[t][i], delete this.target[e][n];\n};\nYe.prototype.detachMulti = function() {\n  const n = this.source.key, i = this.target.key;\n  let t = \"out\", e = \"in\";\n  this.undirected && (t = e = \"undirected\"), this.previous === void 0 ? this.next === void 0 ? (delete this.source[t][i], delete this.target[e][n]) : (this.next.previous = void 0, this.source[t][i] = this.next, this.target[e][n] = this.next) : (this.previous.next = this.next, this.next !== void 0 && (this.next.previous = this.previous));\n};\nconst tr = 0, ir = 1, Yr = 2, rr = 3;\nfunction Fe(n, i, t, e, r, a, o) {\n  let s, u, h, l;\n  if (e = \"\" + e, t === tr) {\n    if (s = n._nodes.get(e), !s)\n      throw new $(\n        `Graph.${i}: could not find the \"${e}\" node in the graph.`\n      );\n    h = r, l = a;\n  } else if (t === rr) {\n    if (r = \"\" + r, u = n._edges.get(r), !u)\n      throw new $(\n        `Graph.${i}: could not find the \"${r}\" edge in the graph.`\n      );\n    const d = u.source.key, c = u.target.key;\n    if (e === d)\n      s = u.target;\n    else if (e === c)\n      s = u.source;\n    else\n      throw new $(\n        `Graph.${i}: the \"${e}\" node is not attached to the \"${r}\" edge (${d}, ${c}).`\n      );\n    h = a, l = o;\n  } else {\n    if (u = n._edges.get(e), !u)\n      throw new $(\n        `Graph.${i}: could not find the \"${e}\" edge in the graph.`\n      );\n    t === ir ? s = u.source : s = u.target, h = r, l = a;\n  }\n  return [s, h, l];\n}\nfunction Kr(n, i, t) {\n  n.prototype[i] = function(e, r, a) {\n    const [o, s] = Fe(\n      this,\n      i,\n      t,\n      e,\n      r,\n      a\n    );\n    return o.attributes[s];\n  };\n}\nfunction Zr(n, i, t) {\n  n.prototype[i] = function(e, r) {\n    const [a] = Fe(\n      this,\n      i,\n      t,\n      e,\n      r\n    );\n    return a.attributes;\n  };\n}\nfunction Xr(n, i, t) {\n  n.prototype[i] = function(e, r, a) {\n    const [o, s] = Fe(\n      this,\n      i,\n      t,\n      e,\n      r,\n      a\n    );\n    return o.attributes.hasOwnProperty(s);\n  };\n}\nfunction Qr(n, i, t) {\n  n.prototype[i] = function(e, r, a, o) {\n    const [s, u, h] = Fe(\n      this,\n      i,\n      t,\n      e,\n      r,\n      a,\n      o\n    );\n    return s.attributes[u] = h, this.emit(\"nodeAttributesUpdated\", {\n      key: s.key,\n      type: \"set\",\n      attributes: s.attributes,\n      name: u\n    }), this;\n  };\n}\nfunction Jr(n, i, t) {\n  n.prototype[i] = function(e, r, a, o) {\n    const [s, u, h] = Fe(\n      this,\n      i,\n      t,\n      e,\n      r,\n      a,\n      o\n    );\n    if (typeof h != \"function\")\n      throw new B(\n        `Graph.${i}: updater should be a function.`\n      );\n    const l = s.attributes, d = h(l[u]);\n    return l[u] = d, this.emit(\"nodeAttributesUpdated\", {\n      key: s.key,\n      type: \"set\",\n      attributes: s.attributes,\n      name: u\n    }), this;\n  };\n}\nfunction en(n, i, t) {\n  n.prototype[i] = function(e, r, a) {\n    const [o, s] = Fe(\n      this,\n      i,\n      t,\n      e,\n      r,\n      a\n    );\n    return delete o.attributes[s], this.emit(\"nodeAttributesUpdated\", {\n      key: o.key,\n      type: \"remove\",\n      attributes: o.attributes,\n      name: s\n    }), this;\n  };\n}\nfunction tn(n, i, t) {\n  n.prototype[i] = function(e, r, a) {\n    const [o, s] = Fe(\n      this,\n      i,\n      t,\n      e,\n      r,\n      a\n    );\n    if (!de(s))\n      throw new B(\n        `Graph.${i}: provided attributes are not a plain object.`\n      );\n    return o.attributes = s, this.emit(\"nodeAttributesUpdated\", {\n      key: o.key,\n      type: \"replace\",\n      attributes: o.attributes\n    }), this;\n  };\n}\nfunction rn(n, i, t) {\n  n.prototype[i] = function(e, r, a) {\n    const [o, s] = Fe(\n      this,\n      i,\n      t,\n      e,\n      r,\n      a\n    );\n    if (!de(s))\n      throw new B(\n        `Graph.${i}: provided attributes are not a plain object.`\n      );\n    return ue(o.attributes, s), this.emit(\"nodeAttributesUpdated\", {\n      key: o.key,\n      type: \"merge\",\n      attributes: o.attributes,\n      data: s\n    }), this;\n  };\n}\nfunction nn(n, i, t) {\n  n.prototype[i] = function(e, r, a) {\n    const [o, s] = Fe(\n      this,\n      i,\n      t,\n      e,\n      r,\n      a\n    );\n    if (typeof s != \"function\")\n      throw new B(\n        `Graph.${i}: provided updater is not a function.`\n      );\n    return o.attributes = s(o.attributes), this.emit(\"nodeAttributesUpdated\", {\n      key: o.key,\n      type: \"update\",\n      attributes: o.attributes\n    }), this;\n  };\n}\nconst an = [\n  {\n    name: (n) => `get${n}Attribute`,\n    attacher: Kr\n  },\n  {\n    name: (n) => `get${n}Attributes`,\n    attacher: Zr\n  },\n  {\n    name: (n) => `has${n}Attribute`,\n    attacher: Xr\n  },\n  {\n    name: (n) => `set${n}Attribute`,\n    attacher: Qr\n  },\n  {\n    name: (n) => `update${n}Attribute`,\n    attacher: Jr\n  },\n  {\n    name: (n) => `remove${n}Attribute`,\n    attacher: en\n  },\n  {\n    name: (n) => `replace${n}Attributes`,\n    attacher: tn\n  },\n  {\n    name: (n) => `merge${n}Attributes`,\n    attacher: rn\n  },\n  {\n    name: (n) => `update${n}Attributes`,\n    attacher: nn\n  }\n];\nfunction on(n) {\n  an.forEach(function({ name: i, attacher: t }) {\n    t(n, i(\"Node\"), tr), t(n, i(\"Source\"), ir), t(n, i(\"Target\"), Yr), t(n, i(\"Opposite\"), rr);\n  });\n}\nfunction sn(n, i, t) {\n  n.prototype[i] = function(e, r) {\n    let a;\n    if (this.type !== \"mixed\" && t !== \"mixed\" && t !== this.type)\n      throw new Z(\n        `Graph.${i}: cannot find this type of edges in your ${this.type} graph.`\n      );\n    if (arguments.length > 2) {\n      if (this.multi)\n        throw new Z(\n          `Graph.${i}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`\n        );\n      const o = \"\" + e, s = \"\" + r;\n      if (r = arguments[2], a = we(this, o, s, t), !a)\n        throw new $(\n          `Graph.${i}: could not find an edge for the given path (\"${o}\" - \"${s}\").`\n        );\n    } else {\n      if (t !== \"mixed\")\n        throw new Z(\n          `Graph.${i}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`\n        );\n      if (e = \"\" + e, a = this._edges.get(e), !a)\n        throw new $(\n          `Graph.${i}: could not find the \"${e}\" edge in the graph.`\n        );\n    }\n    return a.attributes[r];\n  };\n}\nfunction un(n, i, t) {\n  n.prototype[i] = function(e) {\n    let r;\n    if (this.type !== \"mixed\" && t !== \"mixed\" && t !== this.type)\n      throw new Z(\n        `Graph.${i}: cannot find this type of edges in your ${this.type} graph.`\n      );\n    if (arguments.length > 1) {\n      if (this.multi)\n        throw new Z(\n          `Graph.${i}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`\n        );\n      const a = \"\" + e, o = \"\" + arguments[1];\n      if (r = we(this, a, o, t), !r)\n        throw new $(\n          `Graph.${i}: could not find an edge for the given path (\"${a}\" - \"${o}\").`\n        );\n    } else {\n      if (t !== \"mixed\")\n        throw new Z(\n          `Graph.${i}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`\n        );\n      if (e = \"\" + e, r = this._edges.get(e), !r)\n        throw new $(\n          `Graph.${i}: could not find the \"${e}\" edge in the graph.`\n        );\n    }\n    return r.attributes;\n  };\n}\nfunction hn(n, i, t) {\n  n.prototype[i] = function(e, r) {\n    let a;\n    if (this.type !== \"mixed\" && t !== \"mixed\" && t !== this.type)\n      throw new Z(\n        `Graph.${i}: cannot find this type of edges in your ${this.type} graph.`\n      );\n    if (arguments.length > 2) {\n      if (this.multi)\n        throw new Z(\n          `Graph.${i}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`\n        );\n      const o = \"\" + e, s = \"\" + r;\n      if (r = arguments[2], a = we(this, o, s, t), !a)\n        throw new $(\n          `Graph.${i}: could not find an edge for the given path (\"${o}\" - \"${s}\").`\n        );\n    } else {\n      if (t !== \"mixed\")\n        throw new Z(\n          `Graph.${i}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`\n        );\n      if (e = \"\" + e, a = this._edges.get(e), !a)\n        throw new $(\n          `Graph.${i}: could not find the \"${e}\" edge in the graph.`\n        );\n    }\n    return a.attributes.hasOwnProperty(r);\n  };\n}\nfunction dn(n, i, t) {\n  n.prototype[i] = function(e, r, a) {\n    let o;\n    if (this.type !== \"mixed\" && t !== \"mixed\" && t !== this.type)\n      throw new Z(\n        `Graph.${i}: cannot find this type of edges in your ${this.type} graph.`\n      );\n    if (arguments.length > 3) {\n      if (this.multi)\n        throw new Z(\n          `Graph.${i}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`\n        );\n      const s = \"\" + e, u = \"\" + r;\n      if (r = arguments[2], a = arguments[3], o = we(this, s, u, t), !o)\n        throw new $(\n          `Graph.${i}: could not find an edge for the given path (\"${s}\" - \"${u}\").`\n        );\n    } else {\n      if (t !== \"mixed\")\n        throw new Z(\n          `Graph.${i}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`\n        );\n      if (e = \"\" + e, o = this._edges.get(e), !o)\n        throw new $(\n          `Graph.${i}: could not find the \"${e}\" edge in the graph.`\n        );\n    }\n    return o.attributes[r] = a, this.emit(\"edgeAttributesUpdated\", {\n      key: o.key,\n      type: \"set\",\n      attributes: o.attributes,\n      name: r\n    }), this;\n  };\n}\nfunction ln(n, i, t) {\n  n.prototype[i] = function(e, r, a) {\n    let o;\n    if (this.type !== \"mixed\" && t !== \"mixed\" && t !== this.type)\n      throw new Z(\n        `Graph.${i}: cannot find this type of edges in your ${this.type} graph.`\n      );\n    if (arguments.length > 3) {\n      if (this.multi)\n        throw new Z(\n          `Graph.${i}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`\n        );\n      const s = \"\" + e, u = \"\" + r;\n      if (r = arguments[2], a = arguments[3], o = we(this, s, u, t), !o)\n        throw new $(\n          `Graph.${i}: could not find an edge for the given path (\"${s}\" - \"${u}\").`\n        );\n    } else {\n      if (t !== \"mixed\")\n        throw new Z(\n          `Graph.${i}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`\n        );\n      if (e = \"\" + e, o = this._edges.get(e), !o)\n        throw new $(\n          `Graph.${i}: could not find the \"${e}\" edge in the graph.`\n        );\n    }\n    if (typeof a != \"function\")\n      throw new B(\n        `Graph.${i}: updater should be a function.`\n      );\n    return o.attributes[r] = a(o.attributes[r]), this.emit(\"edgeAttributesUpdated\", {\n      key: o.key,\n      type: \"set\",\n      attributes: o.attributes,\n      name: r\n    }), this;\n  };\n}\nfunction cn(n, i, t) {\n  n.prototype[i] = function(e, r) {\n    let a;\n    if (this.type !== \"mixed\" && t !== \"mixed\" && t !== this.type)\n      throw new Z(\n        `Graph.${i}: cannot find this type of edges in your ${this.type} graph.`\n      );\n    if (arguments.length > 2) {\n      if (this.multi)\n        throw new Z(\n          `Graph.${i}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`\n        );\n      const o = \"\" + e, s = \"\" + r;\n      if (r = arguments[2], a = we(this, o, s, t), !a)\n        throw new $(\n          `Graph.${i}: could not find an edge for the given path (\"${o}\" - \"${s}\").`\n        );\n    } else {\n      if (t !== \"mixed\")\n        throw new Z(\n          `Graph.${i}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`\n        );\n      if (e = \"\" + e, a = this._edges.get(e), !a)\n        throw new $(\n          `Graph.${i}: could not find the \"${e}\" edge in the graph.`\n        );\n    }\n    return delete a.attributes[r], this.emit(\"edgeAttributesUpdated\", {\n      key: a.key,\n      type: \"remove\",\n      attributes: a.attributes,\n      name: r\n    }), this;\n  };\n}\nfunction fn(n, i, t) {\n  n.prototype[i] = function(e, r) {\n    let a;\n    if (this.type !== \"mixed\" && t !== \"mixed\" && t !== this.type)\n      throw new Z(\n        `Graph.${i}: cannot find this type of edges in your ${this.type} graph.`\n      );\n    if (arguments.length > 2) {\n      if (this.multi)\n        throw new Z(\n          `Graph.${i}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`\n        );\n      const o = \"\" + e, s = \"\" + r;\n      if (r = arguments[2], a = we(this, o, s, t), !a)\n        throw new $(\n          `Graph.${i}: could not find an edge for the given path (\"${o}\" - \"${s}\").`\n        );\n    } else {\n      if (t !== \"mixed\")\n        throw new Z(\n          `Graph.${i}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`\n        );\n      if (e = \"\" + e, a = this._edges.get(e), !a)\n        throw new $(\n          `Graph.${i}: could not find the \"${e}\" edge in the graph.`\n        );\n    }\n    if (!de(r))\n      throw new B(\n        `Graph.${i}: provided attributes are not a plain object.`\n      );\n    return a.attributes = r, this.emit(\"edgeAttributesUpdated\", {\n      key: a.key,\n      type: \"replace\",\n      attributes: a.attributes\n    }), this;\n  };\n}\nfunction gn(n, i, t) {\n  n.prototype[i] = function(e, r) {\n    let a;\n    if (this.type !== \"mixed\" && t !== \"mixed\" && t !== this.type)\n      throw new Z(\n        `Graph.${i}: cannot find this type of edges in your ${this.type} graph.`\n      );\n    if (arguments.length > 2) {\n      if (this.multi)\n        throw new Z(\n          `Graph.${i}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`\n        );\n      const o = \"\" + e, s = \"\" + r;\n      if (r = arguments[2], a = we(this, o, s, t), !a)\n        throw new $(\n          `Graph.${i}: could not find an edge for the given path (\"${o}\" - \"${s}\").`\n        );\n    } else {\n      if (t !== \"mixed\")\n        throw new Z(\n          `Graph.${i}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`\n        );\n      if (e = \"\" + e, a = this._edges.get(e), !a)\n        throw new $(\n          `Graph.${i}: could not find the \"${e}\" edge in the graph.`\n        );\n    }\n    if (!de(r))\n      throw new B(\n        `Graph.${i}: provided attributes are not a plain object.`\n      );\n    return ue(a.attributes, r), this.emit(\"edgeAttributesUpdated\", {\n      key: a.key,\n      type: \"merge\",\n      attributes: a.attributes,\n      data: r\n    }), this;\n  };\n}\nfunction pn(n, i, t) {\n  n.prototype[i] = function(e, r) {\n    let a;\n    if (this.type !== \"mixed\" && t !== \"mixed\" && t !== this.type)\n      throw new Z(\n        `Graph.${i}: cannot find this type of edges in your ${this.type} graph.`\n      );\n    if (arguments.length > 2) {\n      if (this.multi)\n        throw new Z(\n          `Graph.${i}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`\n        );\n      const o = \"\" + e, s = \"\" + r;\n      if (r = arguments[2], a = we(this, o, s, t), !a)\n        throw new $(\n          `Graph.${i}: could not find an edge for the given path (\"${o}\" - \"${s}\").`\n        );\n    } else {\n      if (t !== \"mixed\")\n        throw new Z(\n          `Graph.${i}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`\n        );\n      if (e = \"\" + e, a = this._edges.get(e), !a)\n        throw new $(\n          `Graph.${i}: could not find the \"${e}\" edge in the graph.`\n        );\n    }\n    if (typeof r != \"function\")\n      throw new B(\n        `Graph.${i}: provided updater is not a function.`\n      );\n    return a.attributes = r(a.attributes), this.emit(\"edgeAttributesUpdated\", {\n      key: a.key,\n      type: \"update\",\n      attributes: a.attributes\n    }), this;\n  };\n}\nconst vn = [\n  {\n    name: (n) => `get${n}Attribute`,\n    attacher: sn\n  },\n  {\n    name: (n) => `get${n}Attributes`,\n    attacher: un\n  },\n  {\n    name: (n) => `has${n}Attribute`,\n    attacher: hn\n  },\n  {\n    name: (n) => `set${n}Attribute`,\n    attacher: dn\n  },\n  {\n    name: (n) => `update${n}Attribute`,\n    attacher: ln\n  },\n  {\n    name: (n) => `remove${n}Attribute`,\n    attacher: cn\n  },\n  {\n    name: (n) => `replace${n}Attributes`,\n    attacher: fn\n  },\n  {\n    name: (n) => `merge${n}Attributes`,\n    attacher: gn\n  },\n  {\n    name: (n) => `update${n}Attributes`,\n    attacher: pn\n  }\n];\nfunction mn(n) {\n  vn.forEach(function({ name: i, attacher: t }) {\n    t(n, i(\"Edge\"), \"mixed\"), t(n, i(\"DirectedEdge\"), \"directed\"), t(n, i(\"UndirectedEdge\"), \"undirected\");\n  });\n}\nconst yn = [\n  {\n    name: \"edges\",\n    type: \"mixed\"\n  },\n  {\n    name: \"inEdges\",\n    type: \"directed\",\n    direction: \"in\"\n  },\n  {\n    name: \"outEdges\",\n    type: \"directed\",\n    direction: \"out\"\n  },\n  {\n    name: \"inboundEdges\",\n    type: \"mixed\",\n    direction: \"in\"\n  },\n  {\n    name: \"outboundEdges\",\n    type: \"mixed\",\n    direction: \"out\"\n  },\n  {\n    name: \"directedEdges\",\n    type: \"directed\"\n  },\n  {\n    name: \"undirectedEdges\",\n    type: \"undirected\"\n  }\n];\nfunction bn(n, i, t, e) {\n  let r = !1;\n  for (const a in i) {\n    if (a === e) continue;\n    const o = i[a];\n    if (r = t(\n      o.key,\n      o.attributes,\n      o.source.key,\n      o.target.key,\n      o.source.attributes,\n      o.target.attributes,\n      o.undirected\n    ), n && r) return o.key;\n  }\n}\nfunction wn(n, i, t, e) {\n  let r, a, o, s = !1;\n  for (const u in i)\n    if (u !== e) {\n      r = i[u];\n      do {\n        if (a = r.source, o = r.target, s = t(\n          r.key,\n          r.attributes,\n          a.key,\n          o.key,\n          a.attributes,\n          o.attributes,\n          r.undirected\n        ), n && s) return r.key;\n        r = r.next;\n      } while (r !== void 0);\n    }\n}\nfunction Tt(n, i) {\n  const t = Object.keys(n), e = t.length;\n  let r, a = 0;\n  return {\n    [Symbol.iterator]() {\n      return this;\n    },\n    next() {\n      do\n        if (r)\n          r = r.next;\n        else {\n          if (a >= e) return { done: !0 };\n          const o = t[a++];\n          if (o === i) {\n            r = void 0;\n            continue;\n          }\n          r = n[o];\n        }\n      while (!r);\n      return {\n        done: !1,\n        value: {\n          edge: r.key,\n          attributes: r.attributes,\n          source: r.source.key,\n          target: r.target.key,\n          sourceAttributes: r.source.attributes,\n          targetAttributes: r.target.attributes,\n          undirected: r.undirected\n        }\n      };\n    }\n  };\n}\nfunction En(n, i, t, e) {\n  const r = i[t];\n  if (!r) return;\n  const a = r.source, o = r.target;\n  if (e(\n    r.key,\n    r.attributes,\n    a.key,\n    o.key,\n    a.attributes,\n    o.attributes,\n    r.undirected\n  ) && n)\n    return r.key;\n}\nfunction _n(n, i, t, e) {\n  let r = i[t];\n  if (!r) return;\n  let a = !1;\n  do {\n    if (a = e(\n      r.key,\n      r.attributes,\n      r.source.key,\n      r.target.key,\n      r.source.attributes,\n      r.target.attributes,\n      r.undirected\n    ), n && a) return r.key;\n    r = r.next;\n  } while (r !== void 0);\n}\nfunction St(n, i) {\n  let t = n[i];\n  if (t.next !== void 0)\n    return {\n      [Symbol.iterator]() {\n        return this;\n      },\n      next() {\n        if (!t) return { done: !0 };\n        const r = {\n          edge: t.key,\n          attributes: t.attributes,\n          source: t.source.key,\n          target: t.target.key,\n          sourceAttributes: t.source.attributes,\n          targetAttributes: t.target.attributes,\n          undirected: t.undirected\n        };\n        return t = t.next, {\n          done: !1,\n          value: r\n        };\n      }\n    };\n  let e = !1;\n  return {\n    [Symbol.iterator]() {\n      return this;\n    },\n    next() {\n      return e === !0 ? { done: !0 } : (e = !0, {\n        done: !1,\n        value: {\n          edge: t.key,\n          attributes: t.attributes,\n          source: t.source.key,\n          target: t.target.key,\n          sourceAttributes: t.source.attributes,\n          targetAttributes: t.target.attributes,\n          undirected: t.undirected\n        }\n      });\n    }\n  };\n}\nfunction Tn(n, i) {\n  if (n.size === 0) return [];\n  if (i === \"mixed\" || i === n.type)\n    return Array.from(n._edges.keys());\n  const t = i === \"undirected\" ? n.undirectedSize : n.directedSize, e = new Array(t), r = i === \"undirected\", a = n._edges.values();\n  let o = 0, s, u;\n  for (; s = a.next(), s.done !== !0; )\n    u = s.value, u.undirected === r && (e[o++] = u.key);\n  return e;\n}\nfunction nr(n, i, t, e) {\n  if (i.size === 0) return;\n  const r = t !== \"mixed\" && t !== i.type, a = t === \"undirected\";\n  let o, s, u = !1;\n  const h = i._edges.values();\n  for (; o = h.next(), o.done !== !0; ) {\n    if (s = o.value, r && s.undirected !== a) continue;\n    const { key: l, attributes: d, source: c, target: y } = s;\n    if (u = e(\n      l,\n      d,\n      c.key,\n      y.key,\n      c.attributes,\n      y.attributes,\n      s.undirected\n    ), n && u) return l;\n  }\n}\nfunction Sn(n, i) {\n  if (n.size === 0) return Ve();\n  const t = i !== \"mixed\" && i !== n.type, e = i === \"undirected\", r = n._edges.values();\n  return {\n    [Symbol.iterator]() {\n      return this;\n    },\n    next() {\n      let a, o;\n      for (; ; ) {\n        if (a = r.next(), a.done) return a;\n        if (o = a.value, !(t && o.undirected !== e))\n          break;\n      }\n      return { value: {\n        edge: o.key,\n        attributes: o.attributes,\n        source: o.source.key,\n        target: o.target.key,\n        sourceAttributes: o.source.attributes,\n        targetAttributes: o.target.attributes,\n        undirected: o.undirected\n      }, done: !1 };\n    }\n  };\n}\nfunction ei(n, i, t, e, r, a) {\n  const o = i ? wn : bn;\n  let s;\n  if (t !== \"undirected\" && (e !== \"out\" && (s = o(n, r.in, a), n && s) || e !== \"in\" && (s = o(\n    n,\n    r.out,\n    a,\n    e ? void 0 : r.key\n  ), n && s)) || t !== \"directed\" && (s = o(n, r.undirected, a), n && s))\n    return s;\n}\nfunction An(n, i, t, e) {\n  const r = [];\n  return ei(!1, n, i, t, e, function(a) {\n    r.push(a);\n  }), r;\n}\nfunction kn(n, i, t) {\n  let e = Ve();\n  return n !== \"undirected\" && (i !== \"out\" && typeof t.in != \"undefined\" && (e = Ie(e, Tt(t.in))), i !== \"in\" && typeof t.out != \"undefined\" && (e = Ie(\n    e,\n    Tt(t.out, i ? void 0 : t.key)\n  ))), n !== \"directed\" && typeof t.undirected != \"undefined\" && (e = Ie(e, Tt(t.undirected))), e;\n}\nfunction ti(n, i, t, e, r, a, o) {\n  const s = t ? _n : En;\n  let u;\n  if (i !== \"undirected\" && (typeof r.in != \"undefined\" && e !== \"out\" && (u = s(n, r.in, a, o), n && u) || typeof r.out != \"undefined\" && e !== \"in\" && (e || r.key !== a) && (u = s(n, r.out, a, o), n && u)) || i !== \"directed\" && typeof r.undirected != \"undefined\" && (u = s(n, r.undirected, a, o), n && u))\n    return u;\n}\nfunction Cn(n, i, t, e, r) {\n  const a = [];\n  return ti(\n    !1,\n    n,\n    i,\n    t,\n    e,\n    r,\n    function(o) {\n      a.push(o);\n    }\n  ), a;\n}\nfunction Rn(n, i, t, e) {\n  let r = Ve();\n  return n !== \"undirected\" && (typeof t.in != \"undefined\" && i !== \"out\" && e in t.in && (r = Ie(r, St(t.in, e))), typeof t.out != \"undefined\" && i !== \"in\" && e in t.out && (i || t.key !== e) && (r = Ie(r, St(t.out, e)))), n !== \"directed\" && typeof t.undirected != \"undefined\" && e in t.undirected && (r = Ie(\n    r,\n    St(t.undirected, e)\n  )), r;\n}\nfunction Ln(n, i) {\n  const { name: t, type: e, direction: r } = i;\n  n.prototype[t] = function(a, o) {\n    if (e !== \"mixed\" && this.type !== \"mixed\" && e !== this.type)\n      return [];\n    if (!arguments.length) return Tn(this, e);\n    if (arguments.length === 1) {\n      a = \"\" + a;\n      const s = this._nodes.get(a);\n      if (typeof s == \"undefined\")\n        throw new $(\n          `Graph.${t}: could not find the \"${a}\" node in the graph.`\n        );\n      return An(\n        this.multi,\n        e === \"mixed\" ? this.type : e,\n        r,\n        s\n      );\n    }\n    if (arguments.length === 2) {\n      a = \"\" + a, o = \"\" + o;\n      const s = this._nodes.get(a);\n      if (!s)\n        throw new $(\n          `Graph.${t}:  could not find the \"${a}\" source node in the graph.`\n        );\n      if (!this._nodes.has(o))\n        throw new $(\n          `Graph.${t}:  could not find the \"${o}\" target node in the graph.`\n        );\n      return Cn(\n        e,\n        this.multi,\n        r,\n        s,\n        o\n      );\n    }\n    throw new B(\n      `Graph.${t}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`\n    );\n  };\n}\nfunction Dn(n, i) {\n  const { name: t, type: e, direction: r } = i, a = \"forEach\" + t[0].toUpperCase() + t.slice(1, -1);\n  n.prototype[a] = function(h, l, d) {\n    if (!(e !== \"mixed\" && this.type !== \"mixed\" && e !== this.type)) {\n      if (arguments.length === 1)\n        return d = h, nr(!1, this, e, d);\n      if (arguments.length === 2) {\n        h = \"\" + h, d = l;\n        const c = this._nodes.get(h);\n        if (typeof c == \"undefined\")\n          throw new $(\n            `Graph.${a}: could not find the \"${h}\" node in the graph.`\n          );\n        return ei(\n          !1,\n          this.multi,\n          e === \"mixed\" ? this.type : e,\n          r,\n          c,\n          d\n        );\n      }\n      if (arguments.length === 3) {\n        h = \"\" + h, l = \"\" + l;\n        const c = this._nodes.get(h);\n        if (!c)\n          throw new $(\n            `Graph.${a}:  could not find the \"${h}\" source node in the graph.`\n          );\n        if (!this._nodes.has(l))\n          throw new $(\n            `Graph.${a}:  could not find the \"${l}\" target node in the graph.`\n          );\n        return ti(\n          !1,\n          e,\n          this.multi,\n          r,\n          c,\n          l,\n          d\n        );\n      }\n      throw new B(\n        `Graph.${a}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`\n      );\n    }\n  };\n  const o = \"map\" + t[0].toUpperCase() + t.slice(1);\n  n.prototype[o] = function() {\n    const h = Array.prototype.slice.call(arguments), l = h.pop();\n    let d;\n    if (h.length === 0) {\n      let c = 0;\n      e !== \"directed\" && (c += this.undirectedSize), e !== \"undirected\" && (c += this.directedSize), d = new Array(c);\n      let y = 0;\n      h.push((A, p, S, C, _, k, f) => {\n        d[y++] = l(A, p, S, C, _, k, f);\n      });\n    } else\n      d = [], h.push((c, y, A, p, S, C, _) => {\n        d.push(l(c, y, A, p, S, C, _));\n      });\n    return this[a].apply(this, h), d;\n  };\n  const s = \"filter\" + t[0].toUpperCase() + t.slice(1);\n  n.prototype[s] = function() {\n    const h = Array.prototype.slice.call(arguments), l = h.pop(), d = [];\n    return h.push((c, y, A, p, S, C, _) => {\n      l(c, y, A, p, S, C, _) && d.push(c);\n    }), this[a].apply(this, h), d;\n  };\n  const u = \"reduce\" + t[0].toUpperCase() + t.slice(1);\n  n.prototype[u] = function() {\n    let h = Array.prototype.slice.call(arguments);\n    if (h.length < 2 || h.length > 4)\n      throw new B(\n        `Graph.${u}: invalid number of arguments (expecting 2, 3 or 4 and got ${h.length}).`\n      );\n    if (typeof h[h.length - 1] == \"function\" && typeof h[h.length - 2] != \"function\")\n      throw new B(\n        `Graph.${u}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`\n      );\n    let l, d;\n    h.length === 2 ? (l = h[0], d = h[1], h = []) : h.length === 3 ? (l = h[1], d = h[2], h = [h[0]]) : h.length === 4 && (l = h[2], d = h[3], h = [h[0], h[1]]);\n    let c = d;\n    return h.push((y, A, p, S, C, _, k) => {\n      c = l(c, y, A, p, S, C, _, k);\n    }), this[a].apply(this, h), c;\n  };\n}\nfunction xn(n, i) {\n  const { name: t, type: e, direction: r } = i, a = \"find\" + t[0].toUpperCase() + t.slice(1, -1);\n  n.prototype[a] = function(u, h, l) {\n    if (e !== \"mixed\" && this.type !== \"mixed\" && e !== this.type)\n      return !1;\n    if (arguments.length === 1)\n      return l = u, nr(!0, this, e, l);\n    if (arguments.length === 2) {\n      u = \"\" + u, l = h;\n      const d = this._nodes.get(u);\n      if (typeof d == \"undefined\")\n        throw new $(\n          `Graph.${a}: could not find the \"${u}\" node in the graph.`\n        );\n      return ei(\n        !0,\n        this.multi,\n        e === \"mixed\" ? this.type : e,\n        r,\n        d,\n        l\n      );\n    }\n    if (arguments.length === 3) {\n      u = \"\" + u, h = \"\" + h;\n      const d = this._nodes.get(u);\n      if (!d)\n        throw new $(\n          `Graph.${a}:  could not find the \"${u}\" source node in the graph.`\n        );\n      if (!this._nodes.has(h))\n        throw new $(\n          `Graph.${a}:  could not find the \"${h}\" target node in the graph.`\n        );\n      return ti(\n        !0,\n        e,\n        this.multi,\n        r,\n        d,\n        h,\n        l\n      );\n    }\n    throw new B(\n      `Graph.${a}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`\n    );\n  };\n  const o = \"some\" + t[0].toUpperCase() + t.slice(1, -1);\n  n.prototype[o] = function() {\n    const u = Array.prototype.slice.call(arguments), h = u.pop();\n    return u.push((d, c, y, A, p, S, C) => h(d, c, y, A, p, S, C)), !!this[a].apply(this, u);\n  };\n  const s = \"every\" + t[0].toUpperCase() + t.slice(1, -1);\n  n.prototype[s] = function() {\n    const u = Array.prototype.slice.call(arguments), h = u.pop();\n    return u.push((d, c, y, A, p, S, C) => !h(d, c, y, A, p, S, C)), !this[a].apply(this, u);\n  };\n}\nfunction Gn(n, i) {\n  const { name: t, type: e, direction: r } = i, a = t.slice(0, -1) + \"Entries\";\n  n.prototype[a] = function(o, s) {\n    if (e !== \"mixed\" && this.type !== \"mixed\" && e !== this.type)\n      return Ve();\n    if (!arguments.length) return Sn(this, e);\n    if (arguments.length === 1) {\n      o = \"\" + o;\n      const u = this._nodes.get(o);\n      if (!u)\n        throw new $(\n          `Graph.${a}: could not find the \"${o}\" node in the graph.`\n        );\n      return kn(e, r, u);\n    }\n    if (arguments.length === 2) {\n      o = \"\" + o, s = \"\" + s;\n      const u = this._nodes.get(o);\n      if (!u)\n        throw new $(\n          `Graph.${a}:  could not find the \"${o}\" source node in the graph.`\n        );\n      if (!this._nodes.has(s))\n        throw new $(\n          `Graph.${a}:  could not find the \"${s}\" target node in the graph.`\n        );\n      return Rn(e, r, u, s);\n    }\n    throw new B(\n      `Graph.${a}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`\n    );\n  };\n}\nfunction Pn(n) {\n  yn.forEach((i) => {\n    Ln(n, i), Dn(n, i), xn(n, i), Gn(n, i);\n  });\n}\nconst In = [\n  {\n    name: \"neighbors\",\n    type: \"mixed\"\n  },\n  {\n    name: \"inNeighbors\",\n    type: \"directed\",\n    direction: \"in\"\n  },\n  {\n    name: \"outNeighbors\",\n    type: \"directed\",\n    direction: \"out\"\n  },\n  {\n    name: \"inboundNeighbors\",\n    type: \"mixed\",\n    direction: \"in\"\n  },\n  {\n    name: \"outboundNeighbors\",\n    type: \"mixed\",\n    direction: \"out\"\n  },\n  {\n    name: \"directedNeighbors\",\n    type: \"directed\"\n  },\n  {\n    name: \"undirectedNeighbors\",\n    type: \"undirected\"\n  }\n];\nfunction bt() {\n  this.A = null, this.B = null;\n}\nbt.prototype.wrap = function(n) {\n  this.A === null ? this.A = n : this.B === null && (this.B = n);\n};\nbt.prototype.has = function(n) {\n  return this.A !== null && n in this.A || this.B !== null && n in this.B;\n};\nfunction Qe(n, i, t, e, r) {\n  for (const a in e) {\n    const o = e[a], s = o.source, u = o.target, h = s === t ? u : s;\n    if (i && i.has(h.key)) continue;\n    const l = r(h.key, h.attributes);\n    if (n && l) return h.key;\n  }\n}\nfunction ii(n, i, t, e, r) {\n  if (i !== \"mixed\") {\n    if (i === \"undirected\")\n      return Qe(\n        n,\n        null,\n        e,\n        e.undirected,\n        r\n      );\n    if (typeof t == \"string\")\n      return Qe(\n        n,\n        null,\n        e,\n        e[t],\n        r\n      );\n  }\n  const a = new bt();\n  let o;\n  if (i !== \"undirected\") {\n    if (t !== \"out\") {\n      if (o = Qe(\n        n,\n        null,\n        e,\n        e.in,\n        r\n      ), n && o) return o;\n      a.wrap(e.in);\n    }\n    if (t !== \"in\") {\n      if (o = Qe(\n        n,\n        a,\n        e,\n        e.out,\n        r\n      ), n && o) return o;\n      a.wrap(e.out);\n    }\n  }\n  if (i !== \"directed\" && (o = Qe(\n    n,\n    a,\n    e,\n    e.undirected,\n    r\n  ), n && o))\n    return o;\n}\nfunction Fn(n, i, t) {\n  if (n !== \"mixed\") {\n    if (n === \"undirected\") return Object.keys(t.undirected);\n    if (typeof i == \"string\") return Object.keys(t[i]);\n  }\n  const e = [];\n  return ii(!1, n, i, t, function(r) {\n    e.push(r);\n  }), e;\n}\nfunction Je(n, i, t) {\n  const e = Object.keys(t), r = e.length;\n  let a = 0;\n  return {\n    [Symbol.iterator]() {\n      return this;\n    },\n    next() {\n      let o = null;\n      do {\n        if (a >= r)\n          return n && n.wrap(t), { done: !0 };\n        const s = t[e[a++]], u = s.source, h = s.target;\n        if (o = u === i ? h : u, n && n.has(o.key)) {\n          o = null;\n          continue;\n        }\n      } while (o === null);\n      return {\n        done: !1,\n        value: { neighbor: o.key, attributes: o.attributes }\n      };\n    }\n  };\n}\nfunction On(n, i, t) {\n  if (n !== \"mixed\") {\n    if (n === \"undirected\")\n      return Je(null, t, t.undirected);\n    if (typeof i == \"string\")\n      return Je(null, t, t[i]);\n  }\n  let e = Ve();\n  const r = new bt();\n  return n !== \"undirected\" && (i !== \"out\" && (e = Ie(\n    e,\n    Je(r, t, t.in)\n  )), i !== \"in\" && (e = Ie(\n    e,\n    Je(r, t, t.out)\n  ))), n !== \"directed\" && (e = Ie(\n    e,\n    Je(r, t, t.undirected)\n  )), e;\n}\nfunction zn(n, i) {\n  const { name: t, type: e, direction: r } = i;\n  n.prototype[t] = function(a) {\n    if (e !== \"mixed\" && this.type !== \"mixed\" && e !== this.type)\n      return [];\n    a = \"\" + a;\n    const o = this._nodes.get(a);\n    if (typeof o == \"undefined\")\n      throw new $(\n        `Graph.${t}: could not find the \"${a}\" node in the graph.`\n      );\n    return Fn(\n      e === \"mixed\" ? this.type : e,\n      r,\n      o\n    );\n  };\n}\nfunction Nn(n, i) {\n  const { name: t, type: e, direction: r } = i, a = \"forEach\" + t[0].toUpperCase() + t.slice(1, -1);\n  n.prototype[a] = function(h, l) {\n    if (e !== \"mixed\" && this.type !== \"mixed\" && e !== this.type) return;\n    h = \"\" + h;\n    const d = this._nodes.get(h);\n    if (typeof d == \"undefined\")\n      throw new $(\n        `Graph.${a}: could not find the \"${h}\" node in the graph.`\n      );\n    ii(\n      !1,\n      e === \"mixed\" ? this.type : e,\n      r,\n      d,\n      l\n    );\n  };\n  const o = \"map\" + t[0].toUpperCase() + t.slice(1);\n  n.prototype[o] = function(h, l) {\n    const d = [];\n    return this[a](h, (c, y) => {\n      d.push(l(c, y));\n    }), d;\n  };\n  const s = \"filter\" + t[0].toUpperCase() + t.slice(1);\n  n.prototype[s] = function(h, l) {\n    const d = [];\n    return this[a](h, (c, y) => {\n      l(c, y) && d.push(c);\n    }), d;\n  };\n  const u = \"reduce\" + t[0].toUpperCase() + t.slice(1);\n  n.prototype[u] = function(h, l, d) {\n    if (arguments.length < 3)\n      throw new B(\n        `Graph.${u}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`\n      );\n    let c = d;\n    return this[a](h, (y, A) => {\n      c = l(c, y, A);\n    }), c;\n  };\n}\nfunction $n(n, i) {\n  const { name: t, type: e, direction: r } = i, a = t[0].toUpperCase() + t.slice(1, -1), o = \"find\" + a;\n  n.prototype[o] = function(h, l) {\n    if (e !== \"mixed\" && this.type !== \"mixed\" && e !== this.type) return;\n    h = \"\" + h;\n    const d = this._nodes.get(h);\n    if (typeof d == \"undefined\")\n      throw new $(\n        `Graph.${o}: could not find the \"${h}\" node in the graph.`\n      );\n    return ii(\n      !0,\n      e === \"mixed\" ? this.type : e,\n      r,\n      d,\n      l\n    );\n  };\n  const s = \"some\" + a;\n  n.prototype[s] = function(h, l) {\n    return !!this[o](h, l);\n  };\n  const u = \"every\" + a;\n  n.prototype[u] = function(h, l) {\n    return !this[o](h, (c, y) => !l(c, y));\n  };\n}\nfunction Un(n, i) {\n  const { name: t, type: e, direction: r } = i, a = t.slice(0, -1) + \"Entries\";\n  n.prototype[a] = function(o) {\n    if (e !== \"mixed\" && this.type !== \"mixed\" && e !== this.type)\n      return Ve();\n    o = \"\" + o;\n    const s = this._nodes.get(o);\n    if (typeof s == \"undefined\")\n      throw new $(\n        `Graph.${a}: could not find the \"${o}\" node in the graph.`\n      );\n    return On(\n      e === \"mixed\" ? this.type : e,\n      r,\n      s\n    );\n  };\n}\nfunction Bn(n) {\n  In.forEach((i) => {\n    zn(n, i), Nn(n, i), $n(n, i), Un(n, i);\n  });\n}\nfunction lt(n, i, t, e, r) {\n  const a = e._nodes.values(), o = e.type;\n  let s, u, h, l, d, c;\n  for (; s = a.next(), s.done !== !0; ) {\n    let y = !1;\n    if (u = s.value, o !== \"undirected\") {\n      l = u.out;\n      for (h in l) {\n        d = l[h];\n        do\n          c = d.target, y = !0, r(\n            u.key,\n            c.key,\n            u.attributes,\n            c.attributes,\n            d.key,\n            d.attributes,\n            d.undirected\n          ), d = d.next;\n        while (d);\n      }\n    }\n    if (o !== \"directed\") {\n      l = u.undirected;\n      for (h in l)\n        if (!(i && u.key > h)) {\n          d = l[h];\n          do\n            c = d.target, c.key !== h && (c = d.source), y = !0, r(\n              u.key,\n              c.key,\n              u.attributes,\n              c.attributes,\n              d.key,\n              d.attributes,\n              d.undirected\n            ), d = d.next;\n          while (d);\n        }\n    }\n    t && !y && r(\n      u.key,\n      null,\n      u.attributes,\n      null,\n      null,\n      null,\n      null\n    );\n  }\n}\nfunction Mn(n, i) {\n  const t = { key: n };\n  return Xi(i.attributes) || (t.attributes = ue({}, i.attributes)), t;\n}\nfunction Hn(n, i, t) {\n  const e = {\n    key: i,\n    source: t.source.key,\n    target: t.target.key\n  };\n  return Xi(t.attributes) || (e.attributes = ue({}, t.attributes)), n === \"mixed\" && t.undirected && (e.undirected = !0), e;\n}\nfunction jn(n) {\n  if (!de(n))\n    throw new B(\n      'Graph.import: invalid serialized node. A serialized node should be a plain object with at least a \"key\" property.'\n    );\n  if (!(\"key\" in n))\n    throw new B(\n      \"Graph.import: serialized node is missing its key.\"\n    );\n  if (\"attributes\" in n && (!de(n.attributes) || n.attributes === null))\n    throw new B(\n      \"Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.\"\n    );\n}\nfunction Wn(n) {\n  if (!de(n))\n    throw new B(\n      'Graph.import: invalid serialized edge. A serialized edge should be a plain object with at least a \"source\" & \"target\" property.'\n    );\n  if (!(\"source\" in n))\n    throw new B(\n      \"Graph.import: serialized edge is missing its source.\"\n    );\n  if (!(\"target\" in n))\n    throw new B(\n      \"Graph.import: serialized edge is missing its target.\"\n    );\n  if (\"attributes\" in n && (!de(n.attributes) || n.attributes === null))\n    throw new B(\n      \"Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.\"\n    );\n  if (\"undirected\" in n && typeof n.undirected != \"boolean\")\n    throw new B(\n      \"Graph.import: invalid undirectedness information. Undirected should be boolean or omitted.\"\n    );\n}\nconst qn = Vr(), Vn = /* @__PURE__ */ new Set([\"directed\", \"undirected\", \"mixed\"]), fi = /* @__PURE__ */ new Set([\n  \"domain\",\n  \"_events\",\n  \"_eventsCount\",\n  \"_maxListeners\"\n]), Yn = [\n  {\n    name: (n) => `${n}Edge`,\n    generateKey: !0\n  },\n  {\n    name: (n) => `${n}DirectedEdge`,\n    generateKey: !0,\n    type: \"directed\"\n  },\n  {\n    name: (n) => `${n}UndirectedEdge`,\n    generateKey: !0,\n    type: \"undirected\"\n  },\n  {\n    name: (n) => `${n}EdgeWithKey`\n  },\n  {\n    name: (n) => `${n}DirectedEdgeWithKey`,\n    type: \"directed\"\n  },\n  {\n    name: (n) => `${n}UndirectedEdgeWithKey`,\n    type: \"undirected\"\n  }\n], Kn = {\n  allowSelfLoops: !0,\n  multi: !1,\n  type: \"mixed\"\n};\nfunction Zn(n, i, t) {\n  if (t && !de(t))\n    throw new B(\n      `Graph.addNode: invalid attributes. Expecting an object but got \"${t}\"`\n    );\n  if (i = \"\" + i, t = t || {}, n._nodes.has(i))\n    throw new Z(\n      `Graph.addNode: the \"${i}\" node already exist in the graph.`\n    );\n  const e = new n.NodeDataClass(i, t);\n  return n._nodes.set(i, e), n.emit(\"nodeAdded\", {\n    key: i,\n    attributes: t\n  }), e;\n}\nfunction gi(n, i, t) {\n  const e = new n.NodeDataClass(i, t);\n  return n._nodes.set(i, e), n.emit(\"nodeAdded\", {\n    key: i,\n    attributes: t\n  }), e;\n}\nfunction ar(n, i, t, e, r, a, o, s) {\n  if (!e && n.type === \"undirected\")\n    throw new Z(\n      `Graph.${i}: you cannot add a directed edge to an undirected graph. Use the #.addEdge or #.addUndirectedEdge instead.`\n    );\n  if (e && n.type === \"directed\")\n    throw new Z(\n      `Graph.${i}: you cannot add an undirected edge to a directed graph. Use the #.addEdge or #.addDirectedEdge instead.`\n    );\n  if (s && !de(s))\n    throw new B(\n      `Graph.${i}: invalid attributes. Expecting an object but got \"${s}\"`\n    );\n  if (a = \"\" + a, o = \"\" + o, s = s || {}, !n.allowSelfLoops && a === o)\n    throw new Z(\n      `Graph.${i}: source & target are the same (\"${a}\"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`\n    );\n  const u = n._nodes.get(a), h = n._nodes.get(o);\n  if (!u)\n    throw new $(\n      `Graph.${i}: source node \"${a}\" not found.`\n    );\n  if (!h)\n    throw new $(\n      `Graph.${i}: target node \"${o}\" not found.`\n    );\n  const l = {\n    key: null,\n    undirected: e,\n    source: a,\n    target: o,\n    attributes: s\n  };\n  if (t)\n    r = n._edgeKeyGenerator();\n  else if (r = \"\" + r, n._edges.has(r))\n    throw new Z(\n      `Graph.${i}: the \"${r}\" edge already exists in the graph.`\n    );\n  if (!n.multi && (e ? typeof u.undirected[o] != \"undefined\" : typeof u.out[o] != \"undefined\"))\n    throw new Z(\n      `Graph.${i}: an edge linking \"${a}\" to \"${o}\" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.`\n    );\n  const d = new Ye(\n    e,\n    r,\n    u,\n    h,\n    s\n  );\n  n._edges.set(r, d);\n  const c = a === o;\n  return e ? (u.undirectedDegree++, h.undirectedDegree++, c && (u.undirectedLoops++, n._undirectedSelfLoopCount++)) : (u.outDegree++, h.inDegree++, c && (u.directedLoops++, n._directedSelfLoopCount++)), n.multi ? d.attachMulti() : d.attach(), e ? n._undirectedSize++ : n._directedSize++, l.key = r, n.emit(\"edgeAdded\", l), r;\n}\nfunction Xn(n, i, t, e, r, a, o, s, u) {\n  if (!e && n.type === \"undirected\")\n    throw new Z(\n      `Graph.${i}: you cannot merge/update a directed edge to an undirected graph. Use the #.mergeEdge/#.updateEdge or #.addUndirectedEdge instead.`\n    );\n  if (e && n.type === \"directed\")\n    throw new Z(\n      `Graph.${i}: you cannot merge/update an undirected edge to a directed graph. Use the #.mergeEdge/#.updateEdge or #.addDirectedEdge instead.`\n    );\n  if (s) {\n    if (u) {\n      if (typeof s != \"function\")\n        throw new B(\n          `Graph.${i}: invalid updater function. Expecting a function but got \"${s}\"`\n        );\n    } else if (!de(s))\n      throw new B(\n        `Graph.${i}: invalid attributes. Expecting an object but got \"${s}\"`\n      );\n  }\n  a = \"\" + a, o = \"\" + o;\n  let h;\n  if (u && (h = s, s = void 0), !n.allowSelfLoops && a === o)\n    throw new Z(\n      `Graph.${i}: source & target are the same (\"${a}\"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`\n    );\n  let l = n._nodes.get(a), d = n._nodes.get(o), c, y;\n  if (!t && (c = n._edges.get(r), c)) {\n    if ((c.source.key !== a || c.target.key !== o) && (!e || c.source.key !== o || c.target.key !== a))\n      throw new Z(\n        `Graph.${i}: inconsistency detected when attempting to merge the \"${r}\" edge with \"${a}\" source & \"${o}\" target vs. (\"${c.source.key}\", \"${c.target.key}\").`\n      );\n    y = c;\n  }\n  if (!y && !n.multi && l && (y = e ? l.undirected[o] : l.out[o]), y) {\n    const _ = [y.key, !1, !1, !1];\n    if (u ? !h : !s) return _;\n    if (u) {\n      const k = y.attributes;\n      y.attributes = h(k), n.emit(\"edgeAttributesUpdated\", {\n        type: \"replace\",\n        key: y.key,\n        attributes: y.attributes\n      });\n    } else\n      ue(y.attributes, s), n.emit(\"edgeAttributesUpdated\", {\n        type: \"merge\",\n        key: y.key,\n        attributes: y.attributes,\n        data: s\n      });\n    return _;\n  }\n  s = s || {}, u && h && (s = h(s));\n  const A = {\n    key: null,\n    undirected: e,\n    source: a,\n    target: o,\n    attributes: s\n  };\n  if (t)\n    r = n._edgeKeyGenerator();\n  else if (r = \"\" + r, n._edges.has(r))\n    throw new Z(\n      `Graph.${i}: the \"${r}\" edge already exists in the graph.`\n    );\n  let p = !1, S = !1;\n  l || (l = gi(n, a, {}), p = !0, a === o && (d = l, S = !0)), d || (d = gi(n, o, {}), S = !0), c = new Ye(e, r, l, d, s), n._edges.set(r, c);\n  const C = a === o;\n  return e ? (l.undirectedDegree++, d.undirectedDegree++, C && (l.undirectedLoops++, n._undirectedSelfLoopCount++)) : (l.outDegree++, d.inDegree++, C && (l.directedLoops++, n._directedSelfLoopCount++)), n.multi ? c.attachMulti() : c.attach(), e ? n._undirectedSize++ : n._directedSize++, A.key = r, n.emit(\"edgeAdded\", A), [r, !0, p, S];\n}\nfunction Me(n, i) {\n  n._edges.delete(i.key);\n  const { source: t, target: e, attributes: r } = i, a = i.undirected, o = t === e;\n  a ? (t.undirectedDegree--, e.undirectedDegree--, o && (t.undirectedLoops--, n._undirectedSelfLoopCount--)) : (t.outDegree--, e.inDegree--, o && (t.directedLoops--, n._directedSelfLoopCount--)), n.multi ? i.detachMulti() : i.detach(), a ? n._undirectedSize-- : n._directedSize--, n.emit(\"edgeDropped\", {\n    key: i.key,\n    attributes: r,\n    source: t.key,\n    target: e.key,\n    undirected: a\n  });\n}\nclass oe extends Zi.EventEmitter {\n  constructor(i) {\n    if (super(), i = ue({}, Kn, i), typeof i.multi != \"boolean\")\n      throw new B(\n        `Graph.constructor: invalid 'multi' option. Expecting a boolean but got \"${i.multi}\".`\n      );\n    if (!Vn.has(i.type))\n      throw new B(\n        `Graph.constructor: invalid 'type' option. Should be one of \"mixed\", \"directed\" or \"undirected\" but got \"${i.type}\".`\n      );\n    if (typeof i.allowSelfLoops != \"boolean\")\n      throw new B(\n        `Graph.constructor: invalid 'allowSelfLoops' option. Expecting a boolean but got \"${i.allowSelfLoops}\".`\n      );\n    const t = i.type === \"mixed\" ? Qi : i.type === \"directed\" ? Ji : er;\n    be(this, \"NodeDataClass\", t);\n    const e = \"geid_\" + qn() + \"_\";\n    let r = 0;\n    const a = () => {\n      let o;\n      do\n        o = e + r++;\n      while (this._edges.has(o));\n      return o;\n    };\n    be(this, \"_attributes\", {}), be(this, \"_nodes\", /* @__PURE__ */ new Map()), be(this, \"_edges\", /* @__PURE__ */ new Map()), be(this, \"_directedSize\", 0), be(this, \"_undirectedSize\", 0), be(this, \"_directedSelfLoopCount\", 0), be(this, \"_undirectedSelfLoopCount\", 0), be(this, \"_edgeKeyGenerator\", a), be(this, \"_options\", i), fi.forEach((o) => be(this, o, this[o])), Se(this, \"order\", () => this._nodes.size), Se(this, \"size\", () => this._edges.size), Se(this, \"directedSize\", () => this._directedSize), Se(this, \"undirectedSize\", () => this._undirectedSize), Se(\n      this,\n      \"selfLoopCount\",\n      () => this._directedSelfLoopCount + this._undirectedSelfLoopCount\n    ), Se(\n      this,\n      \"directedSelfLoopCount\",\n      () => this._directedSelfLoopCount\n    ), Se(\n      this,\n      \"undirectedSelfLoopCount\",\n      () => this._undirectedSelfLoopCount\n    ), Se(this, \"multi\", this._options.multi), Se(this, \"type\", this._options.type), Se(this, \"allowSelfLoops\", this._options.allowSelfLoops), Se(this, \"implementation\", () => \"graphology\");\n  }\n  _resetInstanceCounters() {\n    this._directedSize = 0, this._undirectedSize = 0, this._directedSelfLoopCount = 0, this._undirectedSelfLoopCount = 0;\n  }\n  /**---------------------------------------------------------------------------\n   * Read\n   **---------------------------------------------------------------------------\n   */\n  /**\n   * Method returning whether the given node is found in the graph.\n   *\n   * @param  {any}     node - The node.\n   * @return {boolean}\n   */\n  hasNode(i) {\n    return this._nodes.has(\"\" + i);\n  }\n  /**\n   * Method returning whether the given directed edge is found in the graph.\n   *\n   * Arity 1:\n   * @param  {any}     edge - The edge's key.\n   *\n   * Arity 2:\n   * @param  {any}     source - The edge's source.\n   * @param  {any}     target - The edge's target.\n   *\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the arguments are invalid.\n   */\n  hasDirectedEdge(i, t) {\n    if (this.type === \"undirected\") return !1;\n    if (arguments.length === 1) {\n      const e = \"\" + i, r = this._edges.get(e);\n      return !!r && !r.undirected;\n    } else if (arguments.length === 2) {\n      i = \"\" + i, t = \"\" + t;\n      const e = this._nodes.get(i);\n      return e ? e.out.hasOwnProperty(t) : !1;\n    }\n    throw new B(\n      `Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`\n    );\n  }\n  /**\n   * Method returning whether the given undirected edge is found in the graph.\n   *\n   * Arity 1:\n   * @param  {any}     edge - The edge's key.\n   *\n   * Arity 2:\n   * @param  {any}     source - The edge's source.\n   * @param  {any}     target - The edge's target.\n   *\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the arguments are invalid.\n   */\n  hasUndirectedEdge(i, t) {\n    if (this.type === \"directed\") return !1;\n    if (arguments.length === 1) {\n      const e = \"\" + i, r = this._edges.get(e);\n      return !!r && r.undirected;\n    } else if (arguments.length === 2) {\n      i = \"\" + i, t = \"\" + t;\n      const e = this._nodes.get(i);\n      return e ? e.undirected.hasOwnProperty(t) : !1;\n    }\n    throw new B(\n      `Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`\n    );\n  }\n  /**\n   * Method returning whether the given edge is found in the graph.\n   *\n   * Arity 1:\n   * @param  {any}     edge - The edge's key.\n   *\n   * Arity 2:\n   * @param  {any}     source - The edge's source.\n   * @param  {any}     target - The edge's target.\n   *\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the arguments are invalid.\n   */\n  hasEdge(i, t) {\n    if (arguments.length === 1) {\n      const e = \"\" + i;\n      return this._edges.has(e);\n    } else if (arguments.length === 2) {\n      i = \"\" + i, t = \"\" + t;\n      const e = this._nodes.get(i);\n      return e ? typeof e.out != \"undefined\" && e.out.hasOwnProperty(t) || typeof e.undirected != \"undefined\" && e.undirected.hasOwnProperty(t) : !1;\n    }\n    throw new B(\n      `Graph.hasEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`\n    );\n  }\n  /**\n   * Method returning the edge matching source & target in a directed fashion.\n   *\n   * @param  {any} source - The edge's source.\n   * @param  {any} target - The edge's target.\n   *\n   * @return {any|undefined}\n   *\n   * @throws {Error} - Will throw if the graph is multi.\n   * @throws {Error} - Will throw if source or target doesn't exist.\n   */\n  directedEdge(i, t) {\n    if (this.type === \"undirected\") return;\n    if (i = \"\" + i, t = \"\" + t, this.multi)\n      throw new Z(\n        \"Graph.directedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.directedEdges instead.\"\n      );\n    const e = this._nodes.get(i);\n    if (!e)\n      throw new $(\n        `Graph.directedEdge: could not find the \"${i}\" source node in the graph.`\n      );\n    if (!this._nodes.has(t))\n      throw new $(\n        `Graph.directedEdge: could not find the \"${t}\" target node in the graph.`\n      );\n    const r = e.out && e.out[t] || void 0;\n    if (r) return r.key;\n  }\n  /**\n   * Method returning the edge matching source & target in a undirected fashion.\n   *\n   * @param  {any} source - The edge's source.\n   * @param  {any} target - The edge's target.\n   *\n   * @return {any|undefined}\n   *\n   * @throws {Error} - Will throw if the graph is multi.\n   * @throws {Error} - Will throw if source or target doesn't exist.\n   */\n  undirectedEdge(i, t) {\n    if (this.type === \"directed\") return;\n    if (i = \"\" + i, t = \"\" + t, this.multi)\n      throw new Z(\n        \"Graph.undirectedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.undirectedEdges instead.\"\n      );\n    const e = this._nodes.get(i);\n    if (!e)\n      throw new $(\n        `Graph.undirectedEdge: could not find the \"${i}\" source node in the graph.`\n      );\n    if (!this._nodes.has(t))\n      throw new $(\n        `Graph.undirectedEdge: could not find the \"${t}\" target node in the graph.`\n      );\n    const r = e.undirected && e.undirected[t] || void 0;\n    if (r) return r.key;\n  }\n  /**\n   * Method returning the edge matching source & target in a mixed fashion.\n   *\n   * @param  {any} source - The edge's source.\n   * @param  {any} target - The edge's target.\n   *\n   * @return {any|undefined}\n   *\n   * @throws {Error} - Will throw if the graph is multi.\n   * @throws {Error} - Will throw if source or target doesn't exist.\n   */\n  edge(i, t) {\n    if (this.multi)\n      throw new Z(\n        \"Graph.edge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.edges instead.\"\n      );\n    i = \"\" + i, t = \"\" + t;\n    const e = this._nodes.get(i);\n    if (!e)\n      throw new $(\n        `Graph.edge: could not find the \"${i}\" source node in the graph.`\n      );\n    if (!this._nodes.has(t))\n      throw new $(\n        `Graph.edge: could not find the \"${t}\" target node in the graph.`\n      );\n    const r = e.out && e.out[t] || e.undirected && e.undirected[t] || void 0;\n    if (r) return r.key;\n  }\n  /**\n   * Method returning whether two nodes are directed neighbors.\n   *\n   * @param  {any}     node     - The node's key.\n   * @param  {any}     neighbor - The neighbor's key.\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  areDirectedNeighbors(i, t) {\n    i = \"\" + i, t = \"\" + t;\n    const e = this._nodes.get(i);\n    if (!e)\n      throw new $(\n        `Graph.areDirectedNeighbors: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"undirected\" ? !1 : t in e.in || t in e.out;\n  }\n  /**\n   * Method returning whether two nodes are out neighbors.\n   *\n   * @param  {any}     node     - The node's key.\n   * @param  {any}     neighbor - The neighbor's key.\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  areOutNeighbors(i, t) {\n    i = \"\" + i, t = \"\" + t;\n    const e = this._nodes.get(i);\n    if (!e)\n      throw new $(\n        `Graph.areOutNeighbors: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"undirected\" ? !1 : t in e.out;\n  }\n  /**\n   * Method returning whether two nodes are in neighbors.\n   *\n   * @param  {any}     node     - The node's key.\n   * @param  {any}     neighbor - The neighbor's key.\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  areInNeighbors(i, t) {\n    i = \"\" + i, t = \"\" + t;\n    const e = this._nodes.get(i);\n    if (!e)\n      throw new $(\n        `Graph.areInNeighbors: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"undirected\" ? !1 : t in e.in;\n  }\n  /**\n   * Method returning whether two nodes are undirected neighbors.\n   *\n   * @param  {any}     node     - The node's key.\n   * @param  {any}     neighbor - The neighbor's key.\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  areUndirectedNeighbors(i, t) {\n    i = \"\" + i, t = \"\" + t;\n    const e = this._nodes.get(i);\n    if (!e)\n      throw new $(\n        `Graph.areUndirectedNeighbors: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"directed\" ? !1 : t in e.undirected;\n  }\n  /**\n   * Method returning whether two nodes are neighbors.\n   *\n   * @param  {any}     node     - The node's key.\n   * @param  {any}     neighbor - The neighbor's key.\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  areNeighbors(i, t) {\n    i = \"\" + i, t = \"\" + t;\n    const e = this._nodes.get(i);\n    if (!e)\n      throw new $(\n        `Graph.areNeighbors: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type !== \"undirected\" && (t in e.in || t in e.out) || this.type !== \"directed\" && t in e.undirected;\n  }\n  /**\n   * Method returning whether two nodes are inbound neighbors.\n   *\n   * @param  {any}     node     - The node's key.\n   * @param  {any}     neighbor - The neighbor's key.\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  areInboundNeighbors(i, t) {\n    i = \"\" + i, t = \"\" + t;\n    const e = this._nodes.get(i);\n    if (!e)\n      throw new $(\n        `Graph.areInboundNeighbors: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type !== \"undirected\" && t in e.in || this.type !== \"directed\" && t in e.undirected;\n  }\n  /**\n   * Method returning whether two nodes are outbound neighbors.\n   *\n   * @param  {any}     node     - The node's key.\n   * @param  {any}     neighbor - The neighbor's key.\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  areOutboundNeighbors(i, t) {\n    i = \"\" + i, t = \"\" + t;\n    const e = this._nodes.get(i);\n    if (!e)\n      throw new $(\n        `Graph.areOutboundNeighbors: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type !== \"undirected\" && t in e.out || this.type !== \"directed\" && t in e.undirected;\n  }\n  /**\n   * Method returning the given node's in degree.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's in degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  inDegree(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.inDegree: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"undirected\" ? 0 : t.inDegree;\n  }\n  /**\n   * Method returning the given node's out degree.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's in degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  outDegree(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.outDegree: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"undirected\" ? 0 : t.outDegree;\n  }\n  /**\n   * Method returning the given node's directed degree.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's in degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  directedDegree(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.directedDegree: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"undirected\" ? 0 : t.inDegree + t.outDegree;\n  }\n  /**\n   * Method returning the given node's undirected degree.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's in degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  undirectedDegree(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.undirectedDegree: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"directed\" ? 0 : t.undirectedDegree;\n  }\n  /**\n   * Method returning the given node's inbound degree.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's inbound degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  inboundDegree(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.inboundDegree: could not find the \"${i}\" node in the graph.`\n      );\n    let e = 0;\n    return this.type !== \"directed\" && (e += t.undirectedDegree), this.type !== \"undirected\" && (e += t.inDegree), e;\n  }\n  /**\n   * Method returning the given node's outbound degree.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's outbound degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  outboundDegree(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.outboundDegree: could not find the \"${i}\" node in the graph.`\n      );\n    let e = 0;\n    return this.type !== \"directed\" && (e += t.undirectedDegree), this.type !== \"undirected\" && (e += t.outDegree), e;\n  }\n  /**\n   * Method returning the given node's directed degree.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  degree(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.degree: could not find the \"${i}\" node in the graph.`\n      );\n    let e = 0;\n    return this.type !== \"directed\" && (e += t.undirectedDegree), this.type !== \"undirected\" && (e += t.inDegree + t.outDegree), e;\n  }\n  /**\n   * Method returning the given node's in degree without considering self loops.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's in degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  inDegreeWithoutSelfLoops(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.inDegreeWithoutSelfLoops: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"undirected\" ? 0 : t.inDegree - t.directedLoops;\n  }\n  /**\n   * Method returning the given node's out degree without considering self loops.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's in degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  outDegreeWithoutSelfLoops(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.outDegreeWithoutSelfLoops: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"undirected\" ? 0 : t.outDegree - t.directedLoops;\n  }\n  /**\n   * Method returning the given node's directed degree without considering self loops.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's in degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  directedDegreeWithoutSelfLoops(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.directedDegreeWithoutSelfLoops: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"undirected\" ? 0 : t.inDegree + t.outDegree - t.directedLoops * 2;\n  }\n  /**\n   * Method returning the given node's undirected degree without considering self loops.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's in degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  undirectedDegreeWithoutSelfLoops(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.undirectedDegreeWithoutSelfLoops: could not find the \"${i}\" node in the graph.`\n      );\n    return this.type === \"directed\" ? 0 : t.undirectedDegree - t.undirectedLoops * 2;\n  }\n  /**\n   * Method returning the given node's inbound degree without considering self loops.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's inbound degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  inboundDegreeWithoutSelfLoops(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.inboundDegreeWithoutSelfLoops: could not find the \"${i}\" node in the graph.`\n      );\n    let e = 0, r = 0;\n    return this.type !== \"directed\" && (e += t.undirectedDegree, r += t.undirectedLoops * 2), this.type !== \"undirected\" && (e += t.inDegree, r += t.directedLoops), e - r;\n  }\n  /**\n   * Method returning the given node's outbound degree without considering self loops.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's outbound degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  outboundDegreeWithoutSelfLoops(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.outboundDegreeWithoutSelfLoops: could not find the \"${i}\" node in the graph.`\n      );\n    let e = 0, r = 0;\n    return this.type !== \"directed\" && (e += t.undirectedDegree, r += t.undirectedLoops * 2), this.type !== \"undirected\" && (e += t.outDegree, r += t.directedLoops), e - r;\n  }\n  /**\n   * Method returning the given node's directed degree without considering self loops.\n   *\n   * @param  {any}     node - The node's key.\n   * @return {number}       - The node's degree.\n   *\n   * @throws {Error} - Will throw if the node isn't in the graph.\n   */\n  degreeWithoutSelfLoops(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.degreeWithoutSelfLoops: could not find the \"${i}\" node in the graph.`\n      );\n    let e = 0, r = 0;\n    return this.type !== \"directed\" && (e += t.undirectedDegree, r += t.undirectedLoops * 2), this.type !== \"undirected\" && (e += t.inDegree + t.outDegree, r += t.directedLoops * 2), e - r;\n  }\n  /**\n   * Method returning the given edge's source.\n   *\n   * @param  {any} edge - The edge's key.\n   * @return {any}      - The edge's source.\n   *\n   * @throws {Error} - Will throw if the edge isn't in the graph.\n   */\n  source(i) {\n    i = \"\" + i;\n    const t = this._edges.get(i);\n    if (!t)\n      throw new $(\n        `Graph.source: could not find the \"${i}\" edge in the graph.`\n      );\n    return t.source.key;\n  }\n  /**\n   * Method returning the given edge's target.\n   *\n   * @param  {any} edge - The edge's key.\n   * @return {any}      - The edge's target.\n   *\n   * @throws {Error} - Will throw if the edge isn't in the graph.\n   */\n  target(i) {\n    i = \"\" + i;\n    const t = this._edges.get(i);\n    if (!t)\n      throw new $(\n        `Graph.target: could not find the \"${i}\" edge in the graph.`\n      );\n    return t.target.key;\n  }\n  /**\n   * Method returning the given edge's extremities.\n   *\n   * @param  {any}   edge - The edge's key.\n   * @return {array}      - The edge's extremities.\n   *\n   * @throws {Error} - Will throw if the edge isn't in the graph.\n   */\n  extremities(i) {\n    i = \"\" + i;\n    const t = this._edges.get(i);\n    if (!t)\n      throw new $(\n        `Graph.extremities: could not find the \"${i}\" edge in the graph.`\n      );\n    return [t.source.key, t.target.key];\n  }\n  /**\n   * Given a node & an edge, returns the other extremity of the edge.\n   *\n   * @param  {any}   node - The node's key.\n   * @param  {any}   edge - The edge's key.\n   * @return {any}        - The related node.\n   *\n   * @throws {Error} - Will throw if the edge isn't in the graph or if the\n   *                   edge & node are not related.\n   */\n  opposite(i, t) {\n    i = \"\" + i, t = \"\" + t;\n    const e = this._edges.get(t);\n    if (!e)\n      throw new $(\n        `Graph.opposite: could not find the \"${t}\" edge in the graph.`\n      );\n    const r = e.source.key, a = e.target.key;\n    if (i === r) return a;\n    if (i === a) return r;\n    throw new $(\n      `Graph.opposite: the \"${i}\" node is not attached to the \"${t}\" edge (${r}, ${a}).`\n    );\n  }\n  /**\n   * Returns whether the given edge has the given node as extremity.\n   *\n   * @param  {any}     edge - The edge's key.\n   * @param  {any}     node - The node's key.\n   * @return {boolean}      - The related node.\n   *\n   * @throws {Error} - Will throw if either the node or the edge isn't in the graph.\n   */\n  hasExtremity(i, t) {\n    i = \"\" + i, t = \"\" + t;\n    const e = this._edges.get(i);\n    if (!e)\n      throw new $(\n        `Graph.hasExtremity: could not find the \"${i}\" edge in the graph.`\n      );\n    return e.source.key === t || e.target.key === t;\n  }\n  /**\n   * Method returning whether the given edge is undirected.\n   *\n   * @param  {any}     edge - The edge's key.\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the edge isn't in the graph.\n   */\n  isUndirected(i) {\n    i = \"\" + i;\n    const t = this._edges.get(i);\n    if (!t)\n      throw new $(\n        `Graph.isUndirected: could not find the \"${i}\" edge in the graph.`\n      );\n    return t.undirected;\n  }\n  /**\n   * Method returning whether the given edge is directed.\n   *\n   * @param  {any}     edge - The edge's key.\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the edge isn't in the graph.\n   */\n  isDirected(i) {\n    i = \"\" + i;\n    const t = this._edges.get(i);\n    if (!t)\n      throw new $(\n        `Graph.isDirected: could not find the \"${i}\" edge in the graph.`\n      );\n    return !t.undirected;\n  }\n  /**\n   * Method returning whether the given edge is a self loop.\n   *\n   * @param  {any}     edge - The edge's key.\n   * @return {boolean}\n   *\n   * @throws {Error} - Will throw if the edge isn't in the graph.\n   */\n  isSelfLoop(i) {\n    i = \"\" + i;\n    const t = this._edges.get(i);\n    if (!t)\n      throw new $(\n        `Graph.isSelfLoop: could not find the \"${i}\" edge in the graph.`\n      );\n    return t.source === t.target;\n  }\n  /**---------------------------------------------------------------------------\n   * Mutation\n   **---------------------------------------------------------------------------\n   */\n  /**\n   * Method used to add a node to the graph.\n   *\n   * @param  {any}    node         - The node.\n   * @param  {object} [attributes] - Optional attributes.\n   * @return {any}                 - The node.\n   *\n   * @throws {Error} - Will throw if the given node already exist.\n   * @throws {Error} - Will throw if the given attributes are not an object.\n   */\n  addNode(i, t) {\n    return Zn(this, i, t).key;\n  }\n  /**\n   * Method used to merge a node into the graph.\n   *\n   * @param  {any}    node         - The node.\n   * @param  {object} [attributes] - Optional attributes.\n   * @return {any}                 - The node.\n   */\n  mergeNode(i, t) {\n    if (t && !de(t))\n      throw new B(\n        `Graph.mergeNode: invalid attributes. Expecting an object but got \"${t}\"`\n      );\n    i = \"\" + i, t = t || {};\n    let e = this._nodes.get(i);\n    return e ? (t && (ue(e.attributes, t), this.emit(\"nodeAttributesUpdated\", {\n      type: \"merge\",\n      key: i,\n      attributes: e.attributes,\n      data: t\n    })), [i, !1]) : (e = new this.NodeDataClass(i, t), this._nodes.set(i, e), this.emit(\"nodeAdded\", {\n      key: i,\n      attributes: t\n    }), [i, !0]);\n  }\n  /**\n   * Method used to add a node if it does not exist in the graph or else to\n   * update its attributes using a function.\n   *\n   * @param  {any}      node      - The node.\n   * @param  {function} [updater] - Optional updater function.\n   * @return {any}                - The node.\n   */\n  updateNode(i, t) {\n    if (t && typeof t != \"function\")\n      throw new B(\n        `Graph.updateNode: invalid updater function. Expecting a function but got \"${t}\"`\n      );\n    i = \"\" + i;\n    let e = this._nodes.get(i);\n    if (e) {\n      if (t) {\n        const a = e.attributes;\n        e.attributes = t(a), this.emit(\"nodeAttributesUpdated\", {\n          type: \"replace\",\n          key: i,\n          attributes: e.attributes\n        });\n      }\n      return [i, !1];\n    }\n    const r = t ? t({}) : {};\n    return e = new this.NodeDataClass(i, r), this._nodes.set(i, e), this.emit(\"nodeAdded\", {\n      key: i,\n      attributes: r\n    }), [i, !0];\n  }\n  /**\n   * Method used to drop a single node & all its attached edges from the graph.\n   *\n   * @param  {any}    node - The node.\n   * @return {Graph}\n   *\n   * @throws {Error} - Will throw if the node doesn't exist.\n   */\n  dropNode(i) {\n    i = \"\" + i;\n    const t = this._nodes.get(i);\n    if (!t)\n      throw new $(\n        `Graph.dropNode: could not find the \"${i}\" node in the graph.`\n      );\n    let e;\n    if (this.type !== \"undirected\") {\n      for (const r in t.out) {\n        e = t.out[r];\n        do\n          Me(this, e), e = e.next;\n        while (e);\n      }\n      for (const r in t.in) {\n        e = t.in[r];\n        do\n          Me(this, e), e = e.next;\n        while (e);\n      }\n    }\n    if (this.type !== \"directed\")\n      for (const r in t.undirected) {\n        e = t.undirected[r];\n        do\n          Me(this, e), e = e.next;\n        while (e);\n      }\n    this._nodes.delete(i), this.emit(\"nodeDropped\", {\n      key: i,\n      attributes: t.attributes\n    });\n  }\n  /**\n   * Method used to drop a single edge from the graph.\n   *\n   * Arity 1:\n   * @param  {any}    edge - The edge.\n   *\n   * Arity 2:\n   * @param  {any}    source - Source node.\n   * @param  {any}    target - Target node.\n   *\n   * @return {Graph}\n   *\n   * @throws {Error} - Will throw if the edge doesn't exist.\n   */\n  dropEdge(i) {\n    let t;\n    if (arguments.length > 1) {\n      const e = \"\" + arguments[0], r = \"\" + arguments[1];\n      if (t = we(this, e, r, this.type), !t)\n        throw new $(\n          `Graph.dropEdge: could not find the \"${e}\" -> \"${r}\" edge in the graph.`\n        );\n    } else if (i = \"\" + i, t = this._edges.get(i), !t)\n      throw new $(\n        `Graph.dropEdge: could not find the \"${i}\" edge in the graph.`\n      );\n    return Me(this, t), this;\n  }\n  /**\n   * Method used to drop a single directed edge from the graph.\n   *\n   * @param  {any}    source - Source node.\n   * @param  {any}    target - Target node.\n   *\n   * @return {Graph}\n   *\n   * @throws {Error} - Will throw if the edge doesn't exist.\n   */\n  dropDirectedEdge(i, t) {\n    if (arguments.length < 2)\n      throw new Z(\n        \"Graph.dropDirectedEdge: it does not make sense to try and drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.\"\n      );\n    if (this.multi)\n      throw new Z(\n        \"Graph.dropDirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.\"\n      );\n    i = \"\" + i, t = \"\" + t;\n    const e = we(this, i, t, \"directed\");\n    if (!e)\n      throw new $(\n        `Graph.dropDirectedEdge: could not find a \"${i}\" -> \"${t}\" edge in the graph.`\n      );\n    return Me(this, e), this;\n  }\n  /**\n   * Method used to drop a single undirected edge from the graph.\n   *\n   * @param  {any}    source - Source node.\n   * @param  {any}    target - Target node.\n   *\n   * @return {Graph}\n   *\n   * @throws {Error} - Will throw if the edge doesn't exist.\n   */\n  dropUndirectedEdge(i, t) {\n    if (arguments.length < 2)\n      throw new Z(\n        \"Graph.dropUndirectedEdge: it does not make sense to drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.\"\n      );\n    if (this.multi)\n      throw new Z(\n        \"Graph.dropUndirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.\"\n      );\n    const e = we(this, i, t, \"undirected\");\n    if (!e)\n      throw new $(\n        `Graph.dropUndirectedEdge: could not find a \"${i}\" -> \"${t}\" edge in the graph.`\n      );\n    return Me(this, e), this;\n  }\n  /**\n   * Method used to remove every edge & every node from the graph.\n   *\n   * @return {Graph}\n   */\n  clear() {\n    this._edges.clear(), this._nodes.clear(), this._resetInstanceCounters(), this.emit(\"cleared\");\n  }\n  /**\n   * Method used to remove every edge from the graph.\n   *\n   * @return {Graph}\n   */\n  clearEdges() {\n    const i = this._nodes.values();\n    let t;\n    for (; t = i.next(), t.done !== !0; )\n      t.value.clear();\n    this._edges.clear(), this._resetInstanceCounters(), this.emit(\"edgesCleared\");\n  }\n  /**---------------------------------------------------------------------------\n   * Attributes-related methods\n   **---------------------------------------------------------------------------\n   */\n  /**\n   * Method returning the desired graph's attribute.\n   *\n   * @param  {string} name - Name of the attribute.\n   * @return {any}\n   */\n  getAttribute(i) {\n    return this._attributes[i];\n  }\n  /**\n   * Method returning the graph's attributes.\n   *\n   * @return {object}\n   */\n  getAttributes() {\n    return this._attributes;\n  }\n  /**\n   * Method returning whether the graph has the desired attribute.\n   *\n   * @param  {string}  name - Name of the attribute.\n   * @return {boolean}\n   */\n  hasAttribute(i) {\n    return this._attributes.hasOwnProperty(i);\n  }\n  /**\n   * Method setting a value for the desired graph's attribute.\n   *\n   * @param  {string}  name  - Name of the attribute.\n   * @param  {any}     value - Value for the attribute.\n   * @return {Graph}\n   */\n  setAttribute(i, t) {\n    return this._attributes[i] = t, this.emit(\"attributesUpdated\", {\n      type: \"set\",\n      attributes: this._attributes,\n      name: i\n    }), this;\n  }\n  /**\n   * Method using a function to update the desired graph's attribute's value.\n   *\n   * @param  {string}   name    - Name of the attribute.\n   * @param  {function} updater - Function use to update the attribute's value.\n   * @return {Graph}\n   */\n  updateAttribute(i, t) {\n    if (typeof t != \"function\")\n      throw new B(\n        \"Graph.updateAttribute: updater should be a function.\"\n      );\n    const e = this._attributes[i];\n    return this._attributes[i] = t(e), this.emit(\"attributesUpdated\", {\n      type: \"set\",\n      attributes: this._attributes,\n      name: i\n    }), this;\n  }\n  /**\n   * Method removing the desired graph's attribute.\n   *\n   * @param  {string} name  - Name of the attribute.\n   * @return {Graph}\n   */\n  removeAttribute(i) {\n    return delete this._attributes[i], this.emit(\"attributesUpdated\", {\n      type: \"remove\",\n      attributes: this._attributes,\n      name: i\n    }), this;\n  }\n  /**\n   * Method replacing the graph's attributes.\n   *\n   * @param  {object} attributes - New attributes.\n   * @return {Graph}\n   *\n   * @throws {Error} - Will throw if given attributes are not a plain object.\n   */\n  replaceAttributes(i) {\n    if (!de(i))\n      throw new B(\n        \"Graph.replaceAttributes: provided attributes are not a plain object.\"\n      );\n    return this._attributes = i, this.emit(\"attributesUpdated\", {\n      type: \"replace\",\n      attributes: this._attributes\n    }), this;\n  }\n  /**\n   * Method merging the graph's attributes.\n   *\n   * @param  {object} attributes - Attributes to merge.\n   * @return {Graph}\n   *\n   * @throws {Error} - Will throw if given attributes are not a plain object.\n   */\n  mergeAttributes(i) {\n    if (!de(i))\n      throw new B(\n        \"Graph.mergeAttributes: provided attributes are not a plain object.\"\n      );\n    return ue(this._attributes, i), this.emit(\"attributesUpdated\", {\n      type: \"merge\",\n      attributes: this._attributes,\n      data: i\n    }), this;\n  }\n  /**\n   * Method updating the graph's attributes.\n   *\n   * @param  {function} updater - Function used to update the attributes.\n   * @return {Graph}\n   *\n   * @throws {Error} - Will throw if given updater is not a function.\n   */\n  updateAttributes(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.updateAttributes: provided updater is not a function.\"\n      );\n    return this._attributes = i(this._attributes), this.emit(\"attributesUpdated\", {\n      type: \"update\",\n      attributes: this._attributes\n    }), this;\n  }\n  /**\n   * Method used to update each node's attributes using the given function.\n   *\n   * @param {function}  updater - Updater function to use.\n   * @param {object}    [hints] - Optional hints.\n   */\n  updateEachNodeAttributes(i, t) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.updateEachNodeAttributes: expecting an updater function.\"\n      );\n    if (t && !ci(t))\n      throw new B(\n        \"Graph.updateEachNodeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}\"\n      );\n    const e = this._nodes.values();\n    let r, a;\n    for (; r = e.next(), r.done !== !0; )\n      a = r.value, a.attributes = i(a.key, a.attributes);\n    this.emit(\"eachNodeAttributesUpdated\", {\n      hints: t || null\n    });\n  }\n  /**\n   * Method used to update each edge's attributes using the given function.\n   *\n   * @param {function}  updater - Updater function to use.\n   * @param {object}    [hints] - Optional hints.\n   */\n  updateEachEdgeAttributes(i, t) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.updateEachEdgeAttributes: expecting an updater function.\"\n      );\n    if (t && !ci(t))\n      throw new B(\n        \"Graph.updateEachEdgeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}\"\n      );\n    const e = this._edges.values();\n    let r, a, o, s;\n    for (; r = e.next(), r.done !== !0; )\n      a = r.value, o = a.source, s = a.target, a.attributes = i(\n        a.key,\n        a.attributes,\n        o.key,\n        s.key,\n        o.attributes,\n        s.attributes,\n        a.undirected\n      );\n    this.emit(\"eachEdgeAttributesUpdated\", {\n      hints: t || null\n    });\n  }\n  /**---------------------------------------------------------------------------\n   * Iteration-related methods\n   **---------------------------------------------------------------------------\n   */\n  /**\n   * Method iterating over the graph's adjacency using the given callback.\n   *\n   * @param  {function}  callback - Callback to use.\n   */\n  forEachAdjacencyEntry(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.forEachAdjacencyEntry: expecting a callback.\"\n      );\n    lt(!1, !1, !1, this, i);\n  }\n  forEachAdjacencyEntryWithOrphans(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.forEachAdjacencyEntryWithOrphans: expecting a callback.\"\n      );\n    lt(!1, !1, !0, this, i);\n  }\n  /**\n   * Method iterating over the graph's assymetric adjacency using the given callback.\n   *\n   * @param  {function}  callback - Callback to use.\n   */\n  forEachAssymetricAdjacencyEntry(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.forEachAssymetricAdjacencyEntry: expecting a callback.\"\n      );\n    lt(!1, !0, !1, this, i);\n  }\n  forEachAssymetricAdjacencyEntryWithOrphans(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.forEachAssymetricAdjacencyEntryWithOrphans: expecting a callback.\"\n      );\n    lt(!1, !0, !0, this, i);\n  }\n  /**\n   * Method returning the list of the graph's nodes.\n   *\n   * @return {array} - The nodes.\n   */\n  nodes() {\n    return Array.from(this._nodes.keys());\n  }\n  /**\n   * Method iterating over the graph's nodes using the given callback.\n   *\n   * @param  {function}  callback - Callback (key, attributes, index).\n   */\n  forEachNode(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.forEachNode: expecting a callback.\"\n      );\n    const t = this._nodes.values();\n    let e, r;\n    for (; e = t.next(), e.done !== !0; )\n      r = e.value, i(r.key, r.attributes);\n  }\n  /**\n   * Method iterating attempting to find a node matching the given predicate\n   * function.\n   *\n   * @param  {function}  callback - Callback (key, attributes).\n   */\n  findNode(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.findNode: expecting a callback.\"\n      );\n    const t = this._nodes.values();\n    let e, r;\n    for (; e = t.next(), e.done !== !0; )\n      if (r = e.value, i(r.key, r.attributes)) return r.key;\n  }\n  /**\n   * Method mapping nodes.\n   *\n   * @param  {function}  callback - Callback (key, attributes).\n   */\n  mapNodes(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.mapNode: expecting a callback.\"\n      );\n    const t = this._nodes.values();\n    let e, r;\n    const a = new Array(this.order);\n    let o = 0;\n    for (; e = t.next(), e.done !== !0; )\n      r = e.value, a[o++] = i(r.key, r.attributes);\n    return a;\n  }\n  /**\n   * Method returning whether some node verify the given predicate.\n   *\n   * @param  {function}  callback - Callback (key, attributes).\n   */\n  someNode(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.someNode: expecting a callback.\"\n      );\n    const t = this._nodes.values();\n    let e, r;\n    for (; e = t.next(), e.done !== !0; )\n      if (r = e.value, i(r.key, r.attributes)) return !0;\n    return !1;\n  }\n  /**\n   * Method returning whether all node verify the given predicate.\n   *\n   * @param  {function}  callback - Callback (key, attributes).\n   */\n  everyNode(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.everyNode: expecting a callback.\"\n      );\n    const t = this._nodes.values();\n    let e, r;\n    for (; e = t.next(), e.done !== !0; )\n      if (r = e.value, !i(r.key, r.attributes)) return !1;\n    return !0;\n  }\n  /**\n   * Method filtering nodes.\n   *\n   * @param  {function}  callback - Callback (key, attributes).\n   */\n  filterNodes(i) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.filterNodes: expecting a callback.\"\n      );\n    const t = this._nodes.values();\n    let e, r;\n    const a = [];\n    for (; e = t.next(), e.done !== !0; )\n      r = e.value, i(r.key, r.attributes) && a.push(r.key);\n    return a;\n  }\n  /**\n   * Method reducing nodes.\n   *\n   * @param  {function}  callback - Callback (accumulator, key, attributes).\n   */\n  reduceNodes(i, t) {\n    if (typeof i != \"function\")\n      throw new B(\n        \"Graph.reduceNodes: expecting a callback.\"\n      );\n    if (arguments.length < 2)\n      throw new B(\n        \"Graph.reduceNodes: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.\"\n      );\n    let e = t;\n    const r = this._nodes.values();\n    let a, o;\n    for (; a = r.next(), a.done !== !0; )\n      o = a.value, e = i(e, o.key, o.attributes);\n    return e;\n  }\n  /**\n   * Method returning an iterator over the graph's node entries.\n   *\n   * @return {Iterator}\n   */\n  nodeEntries() {\n    const i = this._nodes.values();\n    return {\n      [Symbol.iterator]() {\n        return this;\n      },\n      next() {\n        const t = i.next();\n        if (t.done) return t;\n        const e = t.value;\n        return {\n          value: { node: e.key, attributes: e.attributes },\n          done: !1\n        };\n      }\n    };\n  }\n  /**---------------------------------------------------------------------------\n   * Serialization\n   **---------------------------------------------------------------------------\n   */\n  /**\n   * Method used to export the whole graph.\n   *\n   * @return {object} - The serialized graph.\n   */\n  export() {\n    const i = new Array(this._nodes.size);\n    let t = 0;\n    this._nodes.forEach((r, a) => {\n      i[t++] = Mn(a, r);\n    });\n    const e = new Array(this._edges.size);\n    return t = 0, this._edges.forEach((r, a) => {\n      e[t++] = Hn(this.type, a, r);\n    }), {\n      options: {\n        type: this.type,\n        multi: this.multi,\n        allowSelfLoops: this.allowSelfLoops\n      },\n      attributes: this.getAttributes(),\n      nodes: i,\n      edges: e\n    };\n  }\n  /**\n   * Method used to import a serialized graph.\n   *\n   * @param  {object|Graph} data  - The serialized graph.\n   * @param  {boolean}      merge - Whether to merge data.\n   * @return {Graph}              - Returns itself for chaining.\n   */\n  import(i, t = !1) {\n    if (i instanceof oe)\n      return i.forEachNode((u, h) => {\n        t ? this.mergeNode(u, h) : this.addNode(u, h);\n      }), i.forEachEdge((u, h, l, d, c, y, A) => {\n        t ? A ? this.mergeUndirectedEdgeWithKey(u, l, d, h) : this.mergeDirectedEdgeWithKey(u, l, d, h) : A ? this.addUndirectedEdgeWithKey(u, l, d, h) : this.addDirectedEdgeWithKey(u, l, d, h);\n      }), this;\n    if (!de(i))\n      throw new B(\n        \"Graph.import: invalid argument. Expecting a serialized graph or, alternatively, a Graph instance.\"\n      );\n    if (i.attributes) {\n      if (!de(i.attributes))\n        throw new B(\n          \"Graph.import: invalid attributes. Expecting a plain object.\"\n        );\n      t ? this.mergeAttributes(i.attributes) : this.replaceAttributes(i.attributes);\n    }\n    let e, r, a, o, s;\n    if (i.nodes) {\n      if (a = i.nodes, !Array.isArray(a))\n        throw new B(\n          \"Graph.import: invalid nodes. Expecting an array.\"\n        );\n      for (e = 0, r = a.length; e < r; e++) {\n        o = a[e], jn(o);\n        const { key: u, attributes: h } = o;\n        t ? this.mergeNode(u, h) : this.addNode(u, h);\n      }\n    }\n    if (i.edges) {\n      let u = !1;\n      if (this.type === \"undirected\" && (u = !0), a = i.edges, !Array.isArray(a))\n        throw new B(\n          \"Graph.import: invalid edges. Expecting an array.\"\n        );\n      for (e = 0, r = a.length; e < r; e++) {\n        s = a[e], Wn(s);\n        const {\n          source: h,\n          target: l,\n          attributes: d,\n          undirected: c = u\n        } = s;\n        let y;\n        \"key\" in s ? (y = t ? c ? this.mergeUndirectedEdgeWithKey : this.mergeDirectedEdgeWithKey : c ? this.addUndirectedEdgeWithKey : this.addDirectedEdgeWithKey, y.call(this, s.key, h, l, d)) : (y = t ? c ? this.mergeUndirectedEdge : this.mergeDirectedEdge : c ? this.addUndirectedEdge : this.addDirectedEdge, y.call(this, h, l, d));\n      }\n    }\n    return this;\n  }\n  /**---------------------------------------------------------------------------\n   * Utils\n   **---------------------------------------------------------------------------\n   */\n  /**\n   * Method returning a null copy of the graph, i.e. a graph without nodes\n   * & edges but with the exact same options.\n   *\n   * @param  {object} options - Options to merge with the current ones.\n   * @return {Graph}          - The null copy.\n   */\n  nullCopy(i) {\n    const t = new oe(ue({}, this._options, i));\n    return t.replaceAttributes(ue({}, this.getAttributes())), t;\n  }\n  /**\n   * Method returning an empty copy of the graph, i.e. a graph without edges but\n   * with the exact same options.\n   *\n   * @param  {object} options - Options to merge with the current ones.\n   * @return {Graph}          - The empty copy.\n   */\n  emptyCopy(i) {\n    const t = this.nullCopy(i);\n    return this._nodes.forEach((e, r) => {\n      const a = ue({}, e.attributes);\n      e = new t.NodeDataClass(r, a), t._nodes.set(r, e);\n    }), t;\n  }\n  /**\n   * Method returning an exact copy of the graph.\n   *\n   * @param  {object} options - Upgrade options.\n   * @return {Graph}          - The copy.\n   */\n  copy(i) {\n    if (i = i || {}, typeof i.type == \"string\" && i.type !== this.type && i.type !== \"mixed\")\n      throw new Z(\n        `Graph.copy: cannot create an incompatible copy from \"${this.type}\" type to \"${i.type}\" because this would mean losing information about the current graph.`\n      );\n    if (typeof i.multi == \"boolean\" && i.multi !== this.multi && i.multi !== !0)\n      throw new Z(\n        \"Graph.copy: cannot create an incompatible copy by downgrading a multi graph to a simple one because this would mean losing information about the current graph.\"\n      );\n    if (typeof i.allowSelfLoops == \"boolean\" && i.allowSelfLoops !== this.allowSelfLoops && i.allowSelfLoops !== !0)\n      throw new Z(\n        \"Graph.copy: cannot create an incompatible copy from a graph allowing self loops to one that does not because this would mean losing information about the current graph.\"\n      );\n    const t = this.emptyCopy(i), e = this._edges.values();\n    let r, a;\n    for (; r = e.next(), r.done !== !0; )\n      a = r.value, ar(\n        t,\n        \"copy\",\n        !1,\n        a.undirected,\n        a.key,\n        a.source.key,\n        a.target.key,\n        ue({}, a.attributes)\n      );\n    return t;\n  }\n  /**---------------------------------------------------------------------------\n   * Known methods\n   **---------------------------------------------------------------------------\n   */\n  /**\n   * Method used by JavaScript to perform JSON serialization.\n   *\n   * @return {object} - The serialized graph.\n   */\n  toJSON() {\n    return this.export();\n  }\n  /**\n   * Method returning [object Graph].\n   */\n  toString() {\n    return \"[object Graph]\";\n  }\n  /**\n   * Method used internally by node's console to display a custom object.\n   *\n   * @return {object} - Formatted object representation of the graph.\n   */\n  inspect() {\n    const i = {};\n    this._nodes.forEach((a, o) => {\n      i[o] = a.attributes;\n    });\n    const t = {}, e = {};\n    this._edges.forEach((a, o) => {\n      const s = a.undirected ? \"--\" : \"->\";\n      let u = \"\", h = a.source.key, l = a.target.key, d;\n      a.undirected && h > l && (d = h, h = l, l = d);\n      const c = `(${h})${s}(${l})`;\n      o.startsWith(\"geid_\") ? this.multi && (typeof e[c] == \"undefined\" ? e[c] = 0 : e[c]++, u += `${e[c]}. `) : u += `[${o}]: `, u += c, t[u] = a.attributes;\n    });\n    const r = {};\n    for (const a in this)\n      this.hasOwnProperty(a) && !fi.has(a) && typeof this[a] != \"function\" && typeof a != \"symbol\" && (r[a] = this[a]);\n    return r.attributes = this._attributes, r.nodes = i, r.edges = t, be(r, \"constructor\", this.constructor), r;\n  }\n}\ntypeof Symbol != \"undefined\" && (oe.prototype[Symbol.for(\"nodejs.util.inspect.custom\")] = oe.prototype.inspect);\nYn.forEach((n) => {\n  [\"add\", \"merge\", \"update\"].forEach((i) => {\n    const t = n.name(i), e = i === \"add\" ? ar : Xn;\n    n.generateKey ? oe.prototype[t] = function(r, a, o) {\n      return e(\n        this,\n        t,\n        !0,\n        (n.type || this.type) === \"undirected\",\n        null,\n        r,\n        a,\n        o,\n        i === \"update\"\n      );\n    } : oe.prototype[t] = function(r, a, o, s) {\n      return e(\n        this,\n        t,\n        !1,\n        (n.type || this.type) === \"undirected\",\n        r,\n        a,\n        o,\n        s,\n        i === \"update\"\n      );\n    };\n  });\n});\non(oe);\nmn(oe);\nPn(oe);\nBn(oe);\nclass or extends oe {\n  constructor(i) {\n    const t = ue({ type: \"directed\" }, i);\n    if (\"multi\" in t && t.multi !== !1)\n      throw new B(\n        \"DirectedGraph.from: inconsistent indication that the graph should be multi in given options!\"\n      );\n    if (t.type !== \"directed\")\n      throw new B(\n        'DirectedGraph.from: inconsistent \"' + t.type + '\" type in given options!'\n      );\n    super(t);\n  }\n}\nclass sr extends oe {\n  constructor(i) {\n    const t = ue({ type: \"undirected\" }, i);\n    if (\"multi\" in t && t.multi !== !1)\n      throw new B(\n        \"UndirectedGraph.from: inconsistent indication that the graph should be multi in given options!\"\n      );\n    if (t.type !== \"undirected\")\n      throw new B(\n        'UndirectedGraph.from: inconsistent \"' + t.type + '\" type in given options!'\n      );\n    super(t);\n  }\n}\nclass ur extends oe {\n  constructor(i) {\n    const t = ue({ multi: !0 }, i);\n    if (\"multi\" in t && t.multi !== !0)\n      throw new B(\n        \"MultiGraph.from: inconsistent indication that the graph should be simple in given options!\"\n      );\n    super(t);\n  }\n}\nclass hr extends oe {\n  constructor(i) {\n    const t = ue({ type: \"directed\", multi: !0 }, i);\n    if (\"multi\" in t && t.multi !== !0)\n      throw new B(\n        \"MultiDirectedGraph.from: inconsistent indication that the graph should be simple in given options!\"\n      );\n    if (t.type !== \"directed\")\n      throw new B(\n        'MultiDirectedGraph.from: inconsistent \"' + t.type + '\" type in given options!'\n      );\n    super(t);\n  }\n}\nclass dr extends oe {\n  constructor(i) {\n    const t = ue({ type: \"undirected\", multi: !0 }, i);\n    if (\"multi\" in t && t.multi !== !0)\n      throw new B(\n        \"MultiUndirectedGraph.from: inconsistent indication that the graph should be simple in given options!\"\n      );\n    if (t.type !== \"undirected\")\n      throw new B(\n        'MultiUndirectedGraph.from: inconsistent \"' + t.type + '\" type in given options!'\n      );\n    super(t);\n  }\n}\nfunction Ke(n) {\n  n.from = function(i, t) {\n    const e = ue({}, i.options, t), r = new n(e);\n    return r.import(i), r;\n  };\n}\nKe(oe);\nKe(or);\nKe(sr);\nKe(ur);\nKe(hr);\nKe(dr);\noe.Graph = oe;\noe.DirectedGraph = or;\noe.UndirectedGraph = sr;\noe.MultiGraph = ur;\noe.MultiDirectedGraph = hr;\noe.MultiUndirectedGraph = dr;\noe.InvalidArgumentsGraphError = B;\noe.NotFoundGraphError = $;\noe.UsageGraphError = Z;\nfunction Qn(n, i) {\n  if (typeof n != \"object\" || !n) return n;\n  var t = n[Symbol.toPrimitive];\n  if (t !== void 0) {\n    var e = t.call(n, i);\n    if (typeof e != \"object\") return e;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (i === \"string\" ? String : Number)(n);\n}\nfunction at(n) {\n  var i = Qn(n, \"string\");\n  return typeof i == \"symbol\" ? i : i + \"\";\n}\nfunction ce(n, i) {\n  if (!(n instanceof i)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction pi(n, i) {\n  for (var t = 0; t < i.length; t++) {\n    var e = i[t];\n    e.enumerable = e.enumerable || !1, e.configurable = !0, \"value\" in e && (e.writable = !0), Object.defineProperty(n, at(e.key), e);\n  }\n}\nfunction fe(n, i, t) {\n  return i && pi(n.prototype, i), t && pi(n, t), Object.defineProperty(n, \"prototype\", {\n    writable: !1\n  }), n;\n}\nfunction je(n) {\n  return je = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(i) {\n    return i.__proto__ || Object.getPrototypeOf(i);\n  }, je(n);\n}\nfunction lr() {\n  try {\n    var n = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n    }));\n  } catch (i) {\n  }\n  return (lr = function() {\n    return !!n;\n  })();\n}\nfunction Jn(n) {\n  if (n === void 0) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return n;\n}\nfunction ea(n, i) {\n  if (i && (typeof i == \"object\" || typeof i == \"function\")) return i;\n  if (i !== void 0) throw new TypeError(\"Derived constructors may only return object or undefined\");\n  return Jn(n);\n}\nfunction Ee(n, i, t) {\n  return i = je(i), ea(n, lr() ? Reflect.construct(i, t || [], je(n).constructor) : i.apply(n, t));\n}\nfunction Wt(n, i) {\n  return Wt = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t, e) {\n    return t.__proto__ = e, t;\n  }, Wt(n, i);\n}\nfunction _e(n, i) {\n  if (typeof i != \"function\" && i !== null) throw new TypeError(\"Super expression must either be null or a function\");\n  n.prototype = Object.create(i && i.prototype, {\n    constructor: {\n      value: n,\n      writable: !0,\n      configurable: !0\n    }\n  }), Object.defineProperty(n, \"prototype\", {\n    writable: !1\n  }), i && Wt(n, i);\n}\nfunction ta(n) {\n  if (Array.isArray(n)) return n;\n}\nfunction ia(n, i) {\n  var t = n == null ? null : typeof Symbol != \"undefined\" && n[Symbol.iterator] || n[\"@@iterator\"];\n  if (t != null) {\n    var e, r, a, o, s = [], u = !0, h = !1;\n    try {\n      if (a = (t = t.call(n)).next, i === 0) {\n        if (Object(t) !== t) return;\n        u = !1;\n      } else for (; !(u = (e = a.call(t)).done) && (s.push(e.value), s.length !== i); u = !0) ;\n    } catch (l) {\n      h = !0, r = l;\n    } finally {\n      try {\n        if (!u && t.return != null && (o = t.return(), Object(o) !== o)) return;\n      } finally {\n        if (h) throw r;\n      }\n    }\n    return s;\n  }\n}\nfunction qt(n, i) {\n  (i == null || i > n.length) && (i = n.length);\n  for (var t = 0, e = Array(i); t < i; t++) e[t] = n[t];\n  return e;\n}\nfunction cr(n, i) {\n  if (n) {\n    if (typeof n == \"string\") return qt(n, i);\n    var t = {}.toString.call(n).slice(8, -1);\n    return t === \"Object\" && n.constructor && (t = n.constructor.name), t === \"Map\" || t === \"Set\" ? Array.from(n) : t === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? qt(n, i) : void 0;\n  }\n}\nfunction ra() {\n  throw new TypeError(`Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);\n}\nfunction We(n, i) {\n  return ta(n) || ia(n, i) || cr(n, i) || ra();\n}\nvar At = {\n  black: \"#000000\",\n  silver: \"#C0C0C0\",\n  gray: \"#808080\",\n  grey: \"#808080\",\n  white: \"#FFFFFF\",\n  maroon: \"#800000\",\n  red: \"#FF0000\",\n  purple: \"#800080\",\n  fuchsia: \"#FF00FF\",\n  green: \"#008000\",\n  lime: \"#00FF00\",\n  olive: \"#808000\",\n  yellow: \"#FFFF00\",\n  navy: \"#000080\",\n  blue: \"#0000FF\",\n  teal: \"#008080\",\n  aqua: \"#00FFFF\",\n  darkblue: \"#00008B\",\n  mediumblue: \"#0000CD\",\n  darkgreen: \"#006400\",\n  darkcyan: \"#008B8B\",\n  deepskyblue: \"#00BFFF\",\n  darkturquoise: \"#00CED1\",\n  mediumspringgreen: \"#00FA9A\",\n  springgreen: \"#00FF7F\",\n  cyan: \"#00FFFF\",\n  midnightblue: \"#191970\",\n  dodgerblue: \"#1E90FF\",\n  lightseagreen: \"#20B2AA\",\n  forestgreen: \"#228B22\",\n  seagreen: \"#2E8B57\",\n  darkslategray: \"#2F4F4F\",\n  darkslategrey: \"#2F4F4F\",\n  limegreen: \"#32CD32\",\n  mediumseagreen: \"#3CB371\",\n  turquoise: \"#40E0D0\",\n  royalblue: \"#4169E1\",\n  steelblue: \"#4682B4\",\n  darkslateblue: \"#483D8B\",\n  mediumturquoise: \"#48D1CC\",\n  indigo: \"#4B0082\",\n  darkolivegreen: \"#556B2F\",\n  cadetblue: \"#5F9EA0\",\n  cornflowerblue: \"#6495ED\",\n  rebeccapurple: \"#663399\",\n  mediumaquamarine: \"#66CDAA\",\n  dimgray: \"#696969\",\n  dimgrey: \"#696969\",\n  slateblue: \"#6A5ACD\",\n  olivedrab: \"#6B8E23\",\n  slategray: \"#708090\",\n  slategrey: \"#708090\",\n  lightslategray: \"#778899\",\n  lightslategrey: \"#778899\",\n  mediumslateblue: \"#7B68EE\",\n  lawngreen: \"#7CFC00\",\n  chartreuse: \"#7FFF00\",\n  aquamarine: \"#7FFFD4\",\n  skyblue: \"#87CEEB\",\n  lightskyblue: \"#87CEFA\",\n  blueviolet: \"#8A2BE2\",\n  darkred: \"#8B0000\",\n  darkmagenta: \"#8B008B\",\n  saddlebrown: \"#8B4513\",\n  darkseagreen: \"#8FBC8F\",\n  lightgreen: \"#90EE90\",\n  mediumpurple: \"#9370DB\",\n  darkviolet: \"#9400D3\",\n  palegreen: \"#98FB98\",\n  darkorchid: \"#9932CC\",\n  yellowgreen: \"#9ACD32\",\n  sienna: \"#A0522D\",\n  brown: \"#A52A2A\",\n  darkgray: \"#A9A9A9\",\n  darkgrey: \"#A9A9A9\",\n  lightblue: \"#ADD8E6\",\n  greenyellow: \"#ADFF2F\",\n  paleturquoise: \"#AFEEEE\",\n  lightsteelblue: \"#B0C4DE\",\n  powderblue: \"#B0E0E6\",\n  firebrick: \"#B22222\",\n  darkgoldenrod: \"#B8860B\",\n  mediumorchid: \"#BA55D3\",\n  rosybrown: \"#BC8F8F\",\n  darkkhaki: \"#BDB76B\",\n  mediumvioletred: \"#C71585\",\n  indianred: \"#CD5C5C\",\n  peru: \"#CD853F\",\n  chocolate: \"#D2691E\",\n  tan: \"#D2B48C\",\n  lightgray: \"#D3D3D3\",\n  lightgrey: \"#D3D3D3\",\n  thistle: \"#D8BFD8\",\n  orchid: \"#DA70D6\",\n  goldenrod: \"#DAA520\",\n  palevioletred: \"#DB7093\",\n  crimson: \"#DC143C\",\n  gainsboro: \"#DCDCDC\",\n  plum: \"#DDA0DD\",\n  burlywood: \"#DEB887\",\n  lightcyan: \"#E0FFFF\",\n  lavender: \"#E6E6FA\",\n  darksalmon: \"#E9967A\",\n  violet: \"#EE82EE\",\n  palegoldenrod: \"#EEE8AA\",\n  lightcoral: \"#F08080\",\n  khaki: \"#F0E68C\",\n  aliceblue: \"#F0F8FF\",\n  honeydew: \"#F0FFF0\",\n  azure: \"#F0FFFF\",\n  sandybrown: \"#F4A460\",\n  wheat: \"#F5DEB3\",\n  beige: \"#F5F5DC\",\n  whitesmoke: \"#F5F5F5\",\n  mintcream: \"#F5FFFA\",\n  ghostwhite: \"#F8F8FF\",\n  salmon: \"#FA8072\",\n  antiquewhite: \"#FAEBD7\",\n  linen: \"#FAF0E6\",\n  lightgoldenrodyellow: \"#FAFAD2\",\n  oldlace: \"#FDF5E6\",\n  magenta: \"#FF00FF\",\n  deeppink: \"#FF1493\",\n  orangered: \"#FF4500\",\n  tomato: \"#FF6347\",\n  hotpink: \"#FF69B4\",\n  coral: \"#FF7F50\",\n  darkorange: \"#FF8C00\",\n  lightsalmon: \"#FFA07A\",\n  orange: \"#FFA500\",\n  lightpink: \"#FFB6C1\",\n  pink: \"#FFC0CB\",\n  gold: \"#FFD700\",\n  peachpuff: \"#FFDAB9\",\n  navajowhite: \"#FFDEAD\",\n  moccasin: \"#FFE4B5\",\n  bisque: \"#FFE4C4\",\n  mistyrose: \"#FFE4E1\",\n  blanchedalmond: \"#FFEBCD\",\n  papayawhip: \"#FFEFD5\",\n  lavenderblush: \"#FFF0F5\",\n  seashell: \"#FFF5EE\",\n  cornsilk: \"#FFF8DC\",\n  lemonchiffon: \"#FFFACD\",\n  floralwhite: \"#FFFAF0\",\n  snow: \"#FFFAFA\",\n  lightyellow: \"#FFFFE0\",\n  ivory: \"#FFFFF0\"\n}, fr = new Int8Array(4), kt = new Int32Array(fr.buffer, 0, 1), na = new Float32Array(fr.buffer, 0, 1), aa = /^\\s*rgba?\\s*\\(/, oa = /^\\s*rgba?\\s*\\(\\s*([0-9]*)\\s*,\\s*([0-9]*)\\s*,\\s*([0-9]*)(?:\\s*,\\s*(.*)?)?\\)\\s*$/;\nfunction sa(n) {\n  var i = 0, t = 0, e = 0, r = 1;\n  if (n[0] === \"#\")\n    n.length === 4 ? (i = parseInt(n.charAt(1) + n.charAt(1), 16), t = parseInt(n.charAt(2) + n.charAt(2), 16), e = parseInt(n.charAt(3) + n.charAt(3), 16)) : (i = parseInt(n.charAt(1) + n.charAt(2), 16), t = parseInt(n.charAt(3) + n.charAt(4), 16), e = parseInt(n.charAt(5) + n.charAt(6), 16)), n.length === 9 && (r = parseInt(n.charAt(7) + n.charAt(8), 16) / 255);\n  else if (aa.test(n)) {\n    var a = n.match(oa);\n    a && (i = +a[1], t = +a[2], e = +a[3], a[4] && (r = +a[4]));\n  }\n  return {\n    r: i,\n    g: t,\n    b: e,\n    a: r\n  };\n}\nvar He = {};\nfor (var ct in At)\n  He[ct] = Ze(At[ct]), He[At[ct]] = He[ct];\nfunction gr(n, i, t, e, r) {\n  return kt[0] = e << 24 | t << 16 | i << 8 | n, kt[0] = kt[0] & 4278190079, na[0];\n}\nfunction Ze(n) {\n  if (n = n.toLowerCase(), typeof He[n] != \"undefined\") return He[n];\n  var i = sa(n), t = i.r, e = i.g, r = i.b, a = i.a;\n  a = a * 255 | 0;\n  var o = gr(t, e, r, a);\n  return He[n] = o, o;\n}\nvar Ct = {};\nfunction pr(n) {\n  if (typeof Ct[n] != \"undefined\") return Ct[n];\n  var i = (n & 16711680) >>> 16, t = (n & 65280) >>> 8, e = n & 255, r = 255, a = gr(i, t, e, r);\n  return Ct[n] = a, a;\n}\nfunction vi(n, i, t, e) {\n  return t + (i << 8) + (n << 16);\n}\nfunction mi(n, i, t, e, r, a) {\n  var o = Math.floor(t / a * r), s = Math.floor(n.drawingBufferHeight / a - e / a * r), u = new Uint8Array(4);\n  n.bindFramebuffer(n.FRAMEBUFFER, i), n.readPixels(o, s, 1, 1, n.RGBA, n.UNSIGNED_BYTE, u);\n  var h = We(u, 4), l = h[0], d = h[1], c = h[2], y = h[3];\n  return [l, d, c, y];\n}\nfunction I(n, i, t) {\n  return (i = at(i)) in n ? Object.defineProperty(n, i, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : n[i] = t, n;\n}\nfunction yi(n, i) {\n  var t = Object.keys(n);\n  if (Object.getOwnPropertySymbols) {\n    var e = Object.getOwnPropertySymbols(n);\n    i && (e = e.filter(function(r) {\n      return Object.getOwnPropertyDescriptor(n, r).enumerable;\n    })), t.push.apply(t, e);\n  }\n  return t;\n}\nfunction W(n) {\n  for (var i = 1; i < arguments.length; i++) {\n    var t = arguments[i] != null ? arguments[i] : {};\n    i % 2 ? yi(Object(t), !0).forEach(function(e) {\n      I(n, e, t[e]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(t)) : yi(Object(t)).forEach(function(e) {\n      Object.defineProperty(n, e, Object.getOwnPropertyDescriptor(t, e));\n    });\n  }\n  return n;\n}\nfunction ua(n, i) {\n  for (; !{}.hasOwnProperty.call(n, i) && (n = je(n)) !== null; ) ;\n  return n;\n}\nfunction Vt() {\n  return Vt = typeof Reflect != \"undefined\" && Reflect.get ? Reflect.get.bind() : function(n, i, t) {\n    var e = ua(n, i);\n    if (e) {\n      var r = Object.getOwnPropertyDescriptor(e, i);\n      return r.get ? r.get.call(arguments.length < 3 ? n : t) : r.value;\n    }\n  }, Vt.apply(null, arguments);\n}\nfunction vr(n, i, t, e) {\n  var r = Vt(je(n.prototype), i, t);\n  return typeof r == \"function\" ? function(a) {\n    return r.apply(t, a);\n  } : r;\n}\nfunction ha(n) {\n  return n.normalized ? 1 : n.size;\n}\nfunction Rt(n) {\n  var i = 0;\n  return n.forEach(function(t) {\n    return i += ha(t);\n  }), i;\n}\nfunction mr(n, i, t) {\n  var e = n === \"VERTEX\" ? i.VERTEX_SHADER : i.FRAGMENT_SHADER, r = i.createShader(e);\n  if (r === null)\n    throw new Error(\"loadShader: error while creating the shader\");\n  i.shaderSource(r, t), i.compileShader(r);\n  var a = i.getShaderParameter(r, i.COMPILE_STATUS);\n  if (!a) {\n    var o = i.getShaderInfoLog(r);\n    throw i.deleteShader(r), new Error(`loadShader: error while compiling the shader:\n`.concat(o, `\n`).concat(t));\n  }\n  return r;\n}\nfunction da(n, i) {\n  return mr(\"VERTEX\", n, i);\n}\nfunction la(n, i) {\n  return mr(\"FRAGMENT\", n, i);\n}\nfunction ca(n, i) {\n  var t = n.createProgram();\n  if (t === null)\n    throw new Error(\"loadProgram: error while creating the program.\");\n  var e, r;\n  for (e = 0, r = i.length; e < r; e++) n.attachShader(t, i[e]);\n  n.linkProgram(t);\n  var a = n.getProgramParameter(t, n.LINK_STATUS);\n  if (!a)\n    throw n.deleteProgram(t), new Error(\"loadProgram: error while linking the program.\");\n  return t;\n}\nfunction bi(n) {\n  var i = n.gl, t = n.buffer, e = n.program, r = n.vertexShader, a = n.fragmentShader;\n  i.deleteShader(r), i.deleteShader(a), i.deleteProgram(e), i.deleteBuffer(t);\n}\nvar wi = `#define PICKING_MODE\n`, fa = I(I(I(I(I(I(I(I({}, WebGL2RenderingContext.BOOL, 1), WebGL2RenderingContext.BYTE, 1), WebGL2RenderingContext.UNSIGNED_BYTE, 1), WebGL2RenderingContext.SHORT, 2), WebGL2RenderingContext.UNSIGNED_SHORT, 2), WebGL2RenderingContext.INT, 4), WebGL2RenderingContext.UNSIGNED_INT, 4), WebGL2RenderingContext.FLOAT, 4), yr = /* @__PURE__ */ function() {\n  function n(i, t, e) {\n    ce(this, n), I(this, \"array\", new Float32Array()), I(this, \"constantArray\", new Float32Array()), I(this, \"capacity\", 0), I(this, \"verticesCount\", 0);\n    var r = this.getDefinition();\n    if (this.VERTICES = r.VERTICES, this.VERTEX_SHADER_SOURCE = r.VERTEX_SHADER_SOURCE, this.FRAGMENT_SHADER_SOURCE = r.FRAGMENT_SHADER_SOURCE, this.UNIFORMS = r.UNIFORMS, this.ATTRIBUTES = r.ATTRIBUTES, this.METHOD = r.METHOD, this.CONSTANT_ATTRIBUTES = \"CONSTANT_ATTRIBUTES\" in r ? r.CONSTANT_ATTRIBUTES : [], this.CONSTANT_DATA = \"CONSTANT_DATA\" in r ? r.CONSTANT_DATA : [], this.isInstanced = \"CONSTANT_ATTRIBUTES\" in r, this.ATTRIBUTES_ITEMS_COUNT = Rt(this.ATTRIBUTES), this.STRIDE = this.VERTICES * this.ATTRIBUTES_ITEMS_COUNT, this.renderer = e, this.normalProgram = this.getProgramInfo(\"normal\", i, r.VERTEX_SHADER_SOURCE, r.FRAGMENT_SHADER_SOURCE, null), this.pickProgram = t ? this.getProgramInfo(\"pick\", i, wi + r.VERTEX_SHADER_SOURCE, wi + r.FRAGMENT_SHADER_SOURCE, t) : null, this.isInstanced) {\n      var a = Rt(this.CONSTANT_ATTRIBUTES);\n      if (this.CONSTANT_DATA.length !== this.VERTICES) throw new Error(\"Program: error while getting constant data (expected \".concat(this.VERTICES, \" items, received \").concat(this.CONSTANT_DATA.length, \" instead)\"));\n      this.constantArray = new Float32Array(this.CONSTANT_DATA.length * a);\n      for (var o = 0; o < this.CONSTANT_DATA.length; o++) {\n        var s = this.CONSTANT_DATA[o];\n        if (s.length !== a) throw new Error(\"Program: error while getting constant data (one vector has \".concat(s.length, \" items instead of \").concat(a, \")\"));\n        for (var u = 0; u < s.length; u++) this.constantArray[o * a + u] = s[u];\n      }\n      this.STRIDE = this.ATTRIBUTES_ITEMS_COUNT;\n    }\n  }\n  return fe(n, [{\n    key: \"kill\",\n    value: function() {\n      bi(this.normalProgram), this.pickProgram && (bi(this.pickProgram), this.pickProgram = null);\n    }\n  }, {\n    key: \"getProgramInfo\",\n    value: function(t, e, r, a, o) {\n      var s = this.getDefinition(), u = e.createBuffer();\n      if (u === null) throw new Error(\"Program: error while creating the WebGL buffer.\");\n      var h = da(e, r), l = la(e, a), d = ca(e, [h, l]), c = {};\n      s.UNIFORMS.forEach(function(p) {\n        var S = e.getUniformLocation(d, p);\n        S && (c[p] = S);\n      });\n      var y = {};\n      s.ATTRIBUTES.forEach(function(p) {\n        y[p.name] = e.getAttribLocation(d, p.name);\n      });\n      var A;\n      if (\"CONSTANT_ATTRIBUTES\" in s && (s.CONSTANT_ATTRIBUTES.forEach(function(p) {\n        y[p.name] = e.getAttribLocation(d, p.name);\n      }), A = e.createBuffer(), A === null))\n        throw new Error(\"Program: error while creating the WebGL constant buffer.\");\n      return {\n        name: t,\n        program: d,\n        gl: e,\n        frameBuffer: o,\n        buffer: u,\n        constantBuffer: A || {},\n        uniformLocations: c,\n        attributeLocations: y,\n        isPicking: t === \"pick\",\n        vertexShader: h,\n        fragmentShader: l\n      };\n    }\n  }, {\n    key: \"bindProgram\",\n    value: function(t) {\n      var e = this, r = 0, a = t.gl, o = t.buffer;\n      this.isInstanced ? (a.bindBuffer(a.ARRAY_BUFFER, t.constantBuffer), r = 0, this.CONSTANT_ATTRIBUTES.forEach(function(s) {\n        return r += e.bindAttribute(s, t, r, !1);\n      }), a.bufferData(a.ARRAY_BUFFER, this.constantArray, a.STATIC_DRAW), a.bindBuffer(a.ARRAY_BUFFER, t.buffer), r = 0, this.ATTRIBUTES.forEach(function(s) {\n        return r += e.bindAttribute(s, t, r, !0);\n      }), a.bufferData(a.ARRAY_BUFFER, this.array, a.DYNAMIC_DRAW)) : (a.bindBuffer(a.ARRAY_BUFFER, o), r = 0, this.ATTRIBUTES.forEach(function(s) {\n        return r += e.bindAttribute(s, t, r);\n      }), a.bufferData(a.ARRAY_BUFFER, this.array, a.DYNAMIC_DRAW)), a.bindBuffer(a.ARRAY_BUFFER, null);\n    }\n  }, {\n    key: \"unbindProgram\",\n    value: function(t) {\n      var e = this;\n      this.isInstanced ? (this.CONSTANT_ATTRIBUTES.forEach(function(r) {\n        return e.unbindAttribute(r, t, !1);\n      }), this.ATTRIBUTES.forEach(function(r) {\n        return e.unbindAttribute(r, t, !0);\n      })) : this.ATTRIBUTES.forEach(function(r) {\n        return e.unbindAttribute(r, t);\n      });\n    }\n  }, {\n    key: \"bindAttribute\",\n    value: function(t, e, r, a) {\n      var o = fa[t.type];\n      if (typeof o != \"number\") throw new Error('Program.bind: yet unsupported attribute type \"'.concat(t.type, '\"'));\n      var s = e.attributeLocations[t.name], u = e.gl;\n      if (s !== -1) {\n        u.enableVertexAttribArray(s);\n        var h = this.isInstanced ? (a ? this.ATTRIBUTES_ITEMS_COUNT : Rt(this.CONSTANT_ATTRIBUTES)) * Float32Array.BYTES_PER_ELEMENT : this.ATTRIBUTES_ITEMS_COUNT * Float32Array.BYTES_PER_ELEMENT;\n        if (u.vertexAttribPointer(s, t.size, t.type, t.normalized || !1, h, r), this.isInstanced && a)\n          if (u instanceof WebGL2RenderingContext)\n            u.vertexAttribDivisor(s, 1);\n          else {\n            var l = u.getExtension(\"ANGLE_instanced_arrays\");\n            l && l.vertexAttribDivisorANGLE(s, 1);\n          }\n      }\n      return t.size * o;\n    }\n  }, {\n    key: \"unbindAttribute\",\n    value: function(t, e, r) {\n      var a = e.attributeLocations[t.name], o = e.gl;\n      if (a !== -1 && (o.disableVertexAttribArray(a), this.isInstanced && r))\n        if (o instanceof WebGL2RenderingContext)\n          o.vertexAttribDivisor(a, 0);\n        else {\n          var s = o.getExtension(\"ANGLE_instanced_arrays\");\n          s && s.vertexAttribDivisorANGLE(a, 0);\n        }\n    }\n  }, {\n    key: \"reallocate\",\n    value: function(t) {\n      t !== this.capacity && (this.capacity = t, this.verticesCount = this.VERTICES * t, this.array = new Float32Array(this.isInstanced ? this.capacity * this.ATTRIBUTES_ITEMS_COUNT : this.verticesCount * this.ATTRIBUTES_ITEMS_COUNT));\n    }\n  }, {\n    key: \"hasNothingToRender\",\n    value: function() {\n      return this.verticesCount === 0;\n    }\n  }, {\n    key: \"renderProgram\",\n    value: function(t, e) {\n      var r = e.gl, a = e.program;\n      r.enable(r.BLEND), r.useProgram(a), this.setUniforms(t, e), this.drawWebGL(this.METHOD, e);\n    }\n  }, {\n    key: \"render\",\n    value: function(t) {\n      this.hasNothingToRender() || (this.pickProgram && (this.pickProgram.gl.viewport(0, 0, t.width * t.pixelRatio / t.downSizingRatio, t.height * t.pixelRatio / t.downSizingRatio), this.bindProgram(this.pickProgram), this.renderProgram(W(W({}, t), {}, {\n        pixelRatio: t.pixelRatio / t.downSizingRatio\n      }), this.pickProgram), this.unbindProgram(this.pickProgram)), this.normalProgram.gl.viewport(0, 0, t.width * t.pixelRatio, t.height * t.pixelRatio), this.bindProgram(this.normalProgram), this.renderProgram(t, this.normalProgram), this.unbindProgram(this.normalProgram));\n    }\n  }, {\n    key: \"drawWebGL\",\n    value: function(t, e) {\n      var r = e.gl, a = e.frameBuffer;\n      if (r.bindFramebuffer(r.FRAMEBUFFER, a), !this.isInstanced)\n        r.drawArrays(t, 0, this.verticesCount);\n      else if (r instanceof WebGL2RenderingContext)\n        r.drawArraysInstanced(t, 0, this.VERTICES, this.capacity);\n      else {\n        var o = r.getExtension(\"ANGLE_instanced_arrays\");\n        o && o.drawArraysInstancedANGLE(t, 0, this.VERTICES, this.capacity);\n      }\n    }\n  }]);\n}(), ga = /* @__PURE__ */ function(n) {\n  function i() {\n    return ce(this, i), Ee(this, i, arguments);\n  }\n  return _e(i, n), fe(i, [{\n    key: \"kill\",\n    value: function() {\n      vr(i, \"kill\", this)([]);\n    }\n  }, {\n    key: \"process\",\n    value: function(e, r, a) {\n      var o = r * this.STRIDE;\n      if (a.hidden) {\n        for (var s = o + this.STRIDE; o < s; o++)\n          this.array[o] = 0;\n        return;\n      }\n      return this.processVisibleItem(pr(e), o, a);\n    }\n  }]);\n}(yr), wt = /* @__PURE__ */ function(n) {\n  function i() {\n    var t;\n    ce(this, i);\n    for (var e = arguments.length, r = new Array(e), a = 0; a < e; a++)\n      r[a] = arguments[a];\n    return t = Ee(this, i, [].concat(r)), I(t, \"drawLabel\", void 0), t;\n  }\n  return _e(i, n), fe(i, [{\n    key: \"kill\",\n    value: function() {\n      vr(i, \"kill\", this)([]);\n    }\n  }, {\n    key: \"process\",\n    value: function(e, r, a, o, s) {\n      var u = r * this.STRIDE;\n      if (s.hidden || a.hidden || o.hidden) {\n        for (var h = u + this.STRIDE; u < h; u++)\n          this.array[u] = 0;\n        return;\n      }\n      return this.processVisibleItem(pr(e), u, a, o, s);\n    }\n  }]);\n}(yr);\nfunction pa(n, i) {\n  return /* @__PURE__ */ function() {\n    function t(e, r, a) {\n      ce(this, t), I(this, \"drawLabel\", i), this.programs = n.map(function(o) {\n        return new o(e, r, a);\n      });\n    }\n    return fe(t, [{\n      key: \"reallocate\",\n      value: function(r) {\n        this.programs.forEach(function(a) {\n          return a.reallocate(r);\n        });\n      }\n    }, {\n      key: \"process\",\n      value: function(r, a, o, s, u) {\n        this.programs.forEach(function(h) {\n          return h.process(r, a, o, s, u);\n        });\n      }\n    }, {\n      key: \"render\",\n      value: function(r) {\n        this.programs.forEach(function(a) {\n          return a.render(r);\n        });\n      }\n    }, {\n      key: \"kill\",\n      value: function() {\n        this.programs.forEach(function(r) {\n          return r.kill();\n        });\n      }\n    }]);\n  }();\n}\nfunction va(n, i, t, e, r) {\n  var a = r.edgeLabelSize, o = r.edgeLabelFont, s = r.edgeLabelWeight, u = r.edgeLabelColor.attribute ? i[r.edgeLabelColor.attribute] || r.edgeLabelColor.color || \"#000\" : r.edgeLabelColor.color, h = i.label;\n  if (h) {\n    n.fillStyle = u, n.font = \"\".concat(s, \" \").concat(a, \"px \").concat(o);\n    var l = t.size, d = e.size, c = t.x, y = t.y, A = e.x, p = e.y, S = (c + A) / 2, C = (y + p) / 2, _ = A - c, k = p - y, f = Math.sqrt(_ * _ + k * k);\n    if (!(f < l + d)) {\n      c += _ * l / f, y += k * l / f, A -= _ * d / f, p -= k * d / f, S = (c + A) / 2, C = (y + p) / 2, _ = A - c, k = p - y, f = Math.sqrt(_ * _ + k * k);\n      var g = n.measureText(h).width;\n      if (g > f) {\n        var w = \"…\";\n        for (h = h + w, g = n.measureText(h).width; g > f && h.length > 1; )\n          h = h.slice(0, -2) + w, g = n.measureText(h).width;\n        if (h.length < 4) return;\n      }\n      var T;\n      _ > 0 ? k > 0 ? T = Math.acos(_ / f) : T = Math.asin(k / f) : k > 0 ? T = Math.acos(_ / f) + Math.PI : T = Math.asin(_ / f) + Math.PI / 2, n.save(), n.translate(S, C), n.rotate(T), n.fillText(h, -g / 2, i.size / 2 + a), n.restore();\n    }\n  }\n}\nfunction br(n, i, t) {\n  if (i.label) {\n    var e = t.labelSize, r = t.labelFont, a = t.labelWeight, o = t.labelColor.attribute ? i[t.labelColor.attribute] || t.labelColor.color || \"#000\" : t.labelColor.color;\n    n.fillStyle = o, n.font = \"\".concat(a, \" \").concat(e, \"px \").concat(r), n.fillText(i.label, i.x + i.size + 3, i.y + e / 3);\n  }\n}\nfunction ma(n, i, t) {\n  var e = t.labelSize, r = t.labelFont, a = t.labelWeight;\n  n.font = \"\".concat(a, \" \").concat(e, \"px \").concat(r), n.fillStyle = \"#FFF\", n.shadowOffsetX = 0, n.shadowOffsetY = 0, n.shadowBlur = 8, n.shadowColor = \"#000\";\n  var o = 2;\n  if (typeof i.label == \"string\") {\n    var s = n.measureText(i.label).width, u = Math.round(s + 5), h = Math.round(e + 2 * o), l = Math.max(i.size, e / 2) + o, d = Math.asin(h / 2 / l), c = Math.sqrt(Math.abs(Math.pow(l, 2) - Math.pow(h / 2, 2)));\n    n.beginPath(), n.moveTo(i.x + c, i.y + h / 2), n.lineTo(i.x + l + u, i.y + h / 2), n.lineTo(i.x + l + u, i.y - h / 2), n.lineTo(i.x + c, i.y - h / 2), n.arc(i.x, i.y, l, d, -d), n.closePath(), n.fill();\n  } else\n    n.beginPath(), n.arc(i.x, i.y, i.size + o, 0, Math.PI * 2), n.closePath(), n.fill();\n  n.shadowOffsetX = 0, n.shadowOffsetY = 0, n.shadowBlur = 0, br(n, i, t);\n}\nvar ya = (\n  /*glsl*/\n  `\nprecision highp float;\n\nvarying vec4 v_color;\nvarying vec2 v_diffVector;\nvarying float v_radius;\n\nuniform float u_correctionRatio;\n\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\nvoid main(void) {\n  float border = u_correctionRatio * 2.0;\n  float dist = length(v_diffVector) - v_radius + border;\n\n  // No antialiasing for picking mode:\n  #ifdef PICKING_MODE\n  if (dist > border)\n    gl_FragColor = transparent;\n  else\n    gl_FragColor = v_color;\n\n  #else\n  float t = 0.0;\n  if (dist > border)\n    t = 1.0;\n  else if (dist > 0.0)\n    t = dist / border;\n\n  gl_FragColor = mix(v_color, transparent, t);\n  #endif\n}\n`\n), ba = ya, wa = (\n  /*glsl*/\n  `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_position;\nattribute float a_size;\nattribute float a_angle;\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_correctionRatio;\n\nvarying vec4 v_color;\nvarying vec2 v_diffVector;\nvarying float v_radius;\nvarying float v_border;\n\nconst float bias = 255.0 / 254.0;\n\nvoid main() {\n  float size = a_size * u_correctionRatio / u_sizeRatio * 4.0;\n  vec2 diffVector = size * vec2(cos(a_angle), sin(a_angle));\n  vec2 position = a_position + diffVector;\n  gl_Position = vec4(\n    (u_matrix * vec3(position, 1)).xy,\n    0,\n    1\n  );\n\n  v_diffVector = diffVector;\n  v_radius = size / 2.0;\n\n  #ifdef PICKING_MODE\n  // For picking mode, we use the ID as the color:\n  v_color = a_id;\n  #else\n  // For normal mode, we use the color:\n  v_color = a_color;\n  #endif\n\n  v_color.a *= bias;\n}\n`\n), Ea = wa, wr = WebGLRenderingContext, Ei = wr.UNSIGNED_BYTE, Lt = wr.FLOAT, _a = [\"u_sizeRatio\", \"u_correctionRatio\", \"u_matrix\"], Et = /* @__PURE__ */ function(n) {\n  function i() {\n    return ce(this, i), Ee(this, i, arguments);\n  }\n  return _e(i, n), fe(i, [{\n    key: \"getDefinition\",\n    value: function() {\n      return {\n        VERTICES: 3,\n        VERTEX_SHADER_SOURCE: Ea,\n        FRAGMENT_SHADER_SOURCE: ba,\n        METHOD: WebGLRenderingContext.TRIANGLES,\n        UNIFORMS: _a,\n        ATTRIBUTES: [{\n          name: \"a_position\",\n          size: 2,\n          type: Lt\n        }, {\n          name: \"a_size\",\n          size: 1,\n          type: Lt\n        }, {\n          name: \"a_color\",\n          size: 4,\n          type: Ei,\n          normalized: !0\n        }, {\n          name: \"a_id\",\n          size: 4,\n          type: Ei,\n          normalized: !0\n        }],\n        CONSTANT_ATTRIBUTES: [{\n          name: \"a_angle\",\n          size: 1,\n          type: Lt\n        }],\n        CONSTANT_DATA: [[i.ANGLE_1], [i.ANGLE_2], [i.ANGLE_3]]\n      };\n    }\n  }, {\n    key: \"processVisibleItem\",\n    value: function(e, r, a) {\n      var o = this.array, s = Ze(a.color);\n      o[r++] = a.x, o[r++] = a.y, o[r++] = a.size, o[r++] = s, o[r++] = e;\n    }\n  }, {\n    key: \"setUniforms\",\n    value: function(e, r) {\n      var a = r.gl, o = r.uniformLocations, s = o.u_sizeRatio, u = o.u_correctionRatio, h = o.u_matrix;\n      a.uniform1f(u, e.correctionRatio), a.uniform1f(s, e.sizeRatio), a.uniformMatrix3fv(h, !1, e.matrix);\n    }\n  }]);\n}(ga);\nI(Et, \"ANGLE_1\", 0);\nI(Et, \"ANGLE_2\", 2 * Math.PI / 3);\nI(Et, \"ANGLE_3\", 4 * Math.PI / 3);\nvar Ta = (\n  /*glsl*/\n  `\nprecision mediump float;\n\nvarying vec4 v_color;\n\nvoid main(void) {\n  gl_FragColor = v_color;\n}\n`\n), Sa = Ta, Aa = (\n  /*glsl*/\n  `\nattribute vec2 a_position;\nattribute vec2 a_normal;\nattribute float a_radius;\nattribute vec3 a_barycentric;\n\n#ifdef PICKING_MODE\nattribute vec4 a_id;\n#else\nattribute vec4 a_color;\n#endif\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_correctionRatio;\nuniform float u_minEdgeThickness;\nuniform float u_lengthToThicknessRatio;\nuniform float u_widenessToThicknessRatio;\n\nvarying vec4 v_color;\n\nconst float bias = 255.0 / 254.0;\n\nvoid main() {\n  float minThickness = u_minEdgeThickness;\n\n  float normalLength = length(a_normal);\n  vec2 unitNormal = a_normal / normalLength;\n\n  // These first computations are taken from edge.vert.glsl and\n  // edge.clamped.vert.glsl. Please read it to get better comments on what's\n  // happening:\n  float pixelsThickness = max(normalLength / u_sizeRatio, minThickness);\n  float webGLThickness = pixelsThickness * u_correctionRatio;\n  float webGLNodeRadius = a_radius * 2.0 * u_correctionRatio / u_sizeRatio;\n  float webGLArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;\n  float webGLArrowHeadThickness = webGLThickness * u_widenessToThicknessRatio;\n\n  float da = a_barycentric.x;\n  float db = a_barycentric.y;\n  float dc = a_barycentric.z;\n\n  vec2 delta = vec2(\n      da * (webGLNodeRadius * unitNormal.y)\n    + db * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y + webGLArrowHeadThickness * unitNormal.x)\n    + dc * ((webGLNodeRadius + webGLArrowHeadLength) * unitNormal.y - webGLArrowHeadThickness * unitNormal.x),\n\n      da * (-webGLNodeRadius * unitNormal.x)\n    + db * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x + webGLArrowHeadThickness * unitNormal.y)\n    + dc * (-(webGLNodeRadius + webGLArrowHeadLength) * unitNormal.x - webGLArrowHeadThickness * unitNormal.y)\n  );\n\n  vec2 position = (u_matrix * vec3(a_position + delta, 1)).xy;\n\n  gl_Position = vec4(position, 0, 1);\n\n  #ifdef PICKING_MODE\n  // For picking mode, we use the ID as the color:\n  v_color = a_id;\n  #else\n  // For normal mode, we use the color:\n  v_color = a_color;\n  #endif\n\n  v_color.a *= bias;\n}\n`\n), ka = Aa, Er = WebGLRenderingContext, _i = Er.UNSIGNED_BYTE, ft = Er.FLOAT, Ca = [\"u_matrix\", \"u_sizeRatio\", \"u_correctionRatio\", \"u_minEdgeThickness\", \"u_lengthToThicknessRatio\", \"u_widenessToThicknessRatio\"], _t = {\n  extremity: \"target\",\n  lengthToThicknessRatio: 2.5,\n  widenessToThicknessRatio: 2\n};\nfunction _r(n) {\n  var i = W(W({}, _t), {});\n  return /* @__PURE__ */ function(t) {\n    function e() {\n      return ce(this, e), Ee(this, e, arguments);\n    }\n    return _e(e, t), fe(e, [{\n      key: \"getDefinition\",\n      value: function() {\n        return {\n          VERTICES: 3,\n          VERTEX_SHADER_SOURCE: ka,\n          FRAGMENT_SHADER_SOURCE: Sa,\n          METHOD: WebGLRenderingContext.TRIANGLES,\n          UNIFORMS: Ca,\n          ATTRIBUTES: [{\n            name: \"a_position\",\n            size: 2,\n            type: ft\n          }, {\n            name: \"a_normal\",\n            size: 2,\n            type: ft\n          }, {\n            name: \"a_radius\",\n            size: 1,\n            type: ft\n          }, {\n            name: \"a_color\",\n            size: 4,\n            type: _i,\n            normalized: !0\n          }, {\n            name: \"a_id\",\n            size: 4,\n            type: _i,\n            normalized: !0\n          }],\n          CONSTANT_ATTRIBUTES: [{\n            name: \"a_barycentric\",\n            size: 3,\n            type: ft\n          }],\n          CONSTANT_DATA: [[1, 0, 0], [0, 1, 0], [0, 0, 1]]\n        };\n      }\n    }, {\n      key: \"processVisibleItem\",\n      value: function(a, o, s, u, h) {\n        if (i.extremity === \"source\") {\n          var l = [u, s];\n          s = l[0], u = l[1];\n        }\n        var d = h.size || 1, c = u.size || 1, y = s.x, A = s.y, p = u.x, S = u.y, C = Ze(h.color), _ = p - y, k = S - A, f = _ * _ + k * k, g = 0, w = 0;\n        f && (f = 1 / Math.sqrt(f), g = -k * f * d, w = _ * f * d);\n        var T = this.array;\n        T[o++] = p, T[o++] = S, T[o++] = -g, T[o++] = -w, T[o++] = c, T[o++] = C, T[o++] = a;\n      }\n    }, {\n      key: \"setUniforms\",\n      value: function(a, o) {\n        var s = o.gl, u = o.uniformLocations, h = u.u_matrix, l = u.u_sizeRatio, d = u.u_correctionRatio, c = u.u_minEdgeThickness, y = u.u_lengthToThicknessRatio, A = u.u_widenessToThicknessRatio;\n        s.uniformMatrix3fv(h, !1, a.matrix), s.uniform1f(l, a.sizeRatio), s.uniform1f(d, a.correctionRatio), s.uniform1f(c, a.minEdgeThickness), s.uniform1f(y, i.lengthToThicknessRatio), s.uniform1f(A, i.widenessToThicknessRatio);\n      }\n    }]);\n  }(wt);\n}\n_r();\nvar Ra = (\n  /*glsl*/\n  `\nprecision mediump float;\n\nvarying vec4 v_color;\nvarying vec2 v_normal;\nvarying float v_thickness;\nvarying float v_feather;\n\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\nvoid main(void) {\n  // We only handle antialiasing for normal mode:\n  #ifdef PICKING_MODE\n  gl_FragColor = v_color;\n  #else\n  float dist = length(v_normal) * v_thickness;\n\n  float t = smoothstep(\n    v_thickness - v_feather,\n    v_thickness,\n    dist\n  );\n\n  gl_FragColor = mix(v_color, transparent, t);\n  #endif\n}\n`\n), Tr = Ra, La = (\n  /*glsl*/\n  `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_normal;\nattribute float a_normalCoef;\nattribute vec2 a_positionStart;\nattribute vec2 a_positionEnd;\nattribute float a_positionCoef;\nattribute float a_radius;\nattribute float a_radiusCoef;\n\nuniform mat3 u_matrix;\nuniform float u_zoomRatio;\nuniform float u_sizeRatio;\nuniform float u_pixelRatio;\nuniform float u_correctionRatio;\nuniform float u_minEdgeThickness;\nuniform float u_lengthToThicknessRatio;\nuniform float u_feather;\n\nvarying vec4 v_color;\nvarying vec2 v_normal;\nvarying float v_thickness;\nvarying float v_feather;\n\nconst float bias = 255.0 / 254.0;\n\nvoid main() {\n  float minThickness = u_minEdgeThickness;\n\n  float radius = a_radius * a_radiusCoef;\n  vec2 normal = a_normal * a_normalCoef;\n  vec2 position = a_positionStart * (1.0 - a_positionCoef) + a_positionEnd * a_positionCoef;\n\n  float normalLength = length(normal);\n  vec2 unitNormal = normal / normalLength;\n\n  // These first computations are taken from edge.vert.glsl. Please read it to\n  // get better comments on what's happening:\n  float pixelsThickness = max(normalLength, minThickness * u_sizeRatio);\n  float webGLThickness = pixelsThickness * u_correctionRatio / u_sizeRatio;\n\n  // Here, we move the point to leave space for the arrow head:\n  float direction = sign(radius);\n  float webGLNodeRadius = direction * radius * 2.0 * u_correctionRatio / u_sizeRatio;\n  float webGLArrowHeadLength = webGLThickness * u_lengthToThicknessRatio * 2.0;\n\n  vec2 compensationVector = vec2(-direction * unitNormal.y, direction * unitNormal.x) * (webGLNodeRadius + webGLArrowHeadLength);\n\n  // Here is the proper position of the vertex\n  gl_Position = vec4((u_matrix * vec3(position + unitNormal * webGLThickness + compensationVector, 1)).xy, 0, 1);\n\n  v_thickness = webGLThickness / u_zoomRatio;\n\n  v_normal = unitNormal;\n\n  v_feather = u_feather * u_correctionRatio / u_zoomRatio / u_pixelRatio * 2.0;\n\n  #ifdef PICKING_MODE\n  // For picking mode, we use the ID as the color:\n  v_color = a_id;\n  #else\n  // For normal mode, we use the color:\n  v_color = a_color;\n  #endif\n\n  v_color.a *= bias;\n}\n`\n), Da = La, Sr = WebGLRenderingContext, Ti = Sr.UNSIGNED_BYTE, Be = Sr.FLOAT, xa = [\"u_matrix\", \"u_zoomRatio\", \"u_sizeRatio\", \"u_correctionRatio\", \"u_pixelRatio\", \"u_feather\", \"u_minEdgeThickness\", \"u_lengthToThicknessRatio\"], Ga = {\n  lengthToThicknessRatio: _t.lengthToThicknessRatio\n};\nfunction Ar(n) {\n  var i = W(W({}, Ga), {});\n  return /* @__PURE__ */ function(t) {\n    function e() {\n      return ce(this, e), Ee(this, e, arguments);\n    }\n    return _e(e, t), fe(e, [{\n      key: \"getDefinition\",\n      value: function() {\n        return {\n          VERTICES: 6,\n          VERTEX_SHADER_SOURCE: Da,\n          FRAGMENT_SHADER_SOURCE: Tr,\n          METHOD: WebGLRenderingContext.TRIANGLES,\n          UNIFORMS: xa,\n          ATTRIBUTES: [{\n            name: \"a_positionStart\",\n            size: 2,\n            type: Be\n          }, {\n            name: \"a_positionEnd\",\n            size: 2,\n            type: Be\n          }, {\n            name: \"a_normal\",\n            size: 2,\n            type: Be\n          }, {\n            name: \"a_color\",\n            size: 4,\n            type: Ti,\n            normalized: !0\n          }, {\n            name: \"a_id\",\n            size: 4,\n            type: Ti,\n            normalized: !0\n          }, {\n            name: \"a_radius\",\n            size: 1,\n            type: Be\n          }],\n          CONSTANT_ATTRIBUTES: [\n            // If 0, then position will be a_positionStart\n            // If 1, then position will be a_positionEnd\n            {\n              name: \"a_positionCoef\",\n              size: 1,\n              type: Be\n            },\n            {\n              name: \"a_normalCoef\",\n              size: 1,\n              type: Be\n            },\n            {\n              name: \"a_radiusCoef\",\n              size: 1,\n              type: Be\n            }\n          ],\n          CONSTANT_DATA: [[0, 1, 0], [0, -1, 0], [1, 1, 1], [1, 1, 1], [0, -1, 0], [1, -1, -1]]\n        };\n      }\n    }, {\n      key: \"processVisibleItem\",\n      value: function(a, o, s, u, h) {\n        var l = h.size || 1, d = s.x, c = s.y, y = u.x, A = u.y, p = Ze(h.color), S = y - d, C = A - c, _ = u.size || 1, k = S * S + C * C, f = 0, g = 0;\n        k && (k = 1 / Math.sqrt(k), f = -C * k * l, g = S * k * l);\n        var w = this.array;\n        w[o++] = d, w[o++] = c, w[o++] = y, w[o++] = A, w[o++] = f, w[o++] = g, w[o++] = p, w[o++] = a, w[o++] = _;\n      }\n    }, {\n      key: \"setUniforms\",\n      value: function(a, o) {\n        var s = o.gl, u = o.uniformLocations, h = u.u_matrix, l = u.u_zoomRatio, d = u.u_feather, c = u.u_pixelRatio, y = u.u_correctionRatio, A = u.u_sizeRatio, p = u.u_minEdgeThickness, S = u.u_lengthToThicknessRatio;\n        s.uniformMatrix3fv(h, !1, a.matrix), s.uniform1f(l, a.zoomRatio), s.uniform1f(A, a.sizeRatio), s.uniform1f(y, a.correctionRatio), s.uniform1f(c, a.pixelRatio), s.uniform1f(d, a.antiAliasingFeather), s.uniform1f(p, a.minEdgeThickness), s.uniform1f(S, i.lengthToThicknessRatio);\n      }\n    }]);\n  }(wt);\n}\nAr();\nfunction Pa(n) {\n  return pa([Ar(), _r()]);\n}\nvar Ia = Pa(), kr = Ia, Fa = (\n  /*glsl*/\n  `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute vec2 a_normal;\nattribute float a_normalCoef;\nattribute vec2 a_positionStart;\nattribute vec2 a_positionEnd;\nattribute float a_positionCoef;\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_zoomRatio;\nuniform float u_pixelRatio;\nuniform float u_correctionRatio;\nuniform float u_minEdgeThickness;\nuniform float u_feather;\n\nvarying vec4 v_color;\nvarying vec2 v_normal;\nvarying float v_thickness;\nvarying float v_feather;\n\nconst float bias = 255.0 / 254.0;\n\nvoid main() {\n  float minThickness = u_minEdgeThickness;\n\n  vec2 normal = a_normal * a_normalCoef;\n  vec2 position = a_positionStart * (1.0 - a_positionCoef) + a_positionEnd * a_positionCoef;\n\n  float normalLength = length(normal);\n  vec2 unitNormal = normal / normalLength;\n\n  // We require edges to be at least \"minThickness\" pixels thick *on screen*\n  // (so we need to compensate the size ratio):\n  float pixelsThickness = max(normalLength, minThickness * u_sizeRatio);\n\n  // Then, we need to retrieve the normalized thickness of the edge in the WebGL\n  // referential (in a ([0, 1], [0, 1]) space), using our \"magic\" correction\n  // ratio:\n  float webGLThickness = pixelsThickness * u_correctionRatio / u_sizeRatio;\n\n  // Here is the proper position of the vertex\n  gl_Position = vec4((u_matrix * vec3(position + unitNormal * webGLThickness, 1)).xy, 0, 1);\n\n  // For the fragment shader though, we need a thickness that takes the \"magic\"\n  // correction ratio into account (as in webGLThickness), but so that the\n  // antialiasing effect does not depend on the zoom level. So here's yet\n  // another thickness version:\n  v_thickness = webGLThickness / u_zoomRatio;\n\n  v_normal = unitNormal;\n\n  v_feather = u_feather * u_correctionRatio / u_zoomRatio / u_pixelRatio * 2.0;\n\n  #ifdef PICKING_MODE\n  // For picking mode, we use the ID as the color:\n  v_color = a_id;\n  #else\n  // For normal mode, we use the color:\n  v_color = a_color;\n  #endif\n\n  v_color.a *= bias;\n}\n`\n), Oa = Fa, Cr = WebGLRenderingContext, Si = Cr.UNSIGNED_BYTE, et = Cr.FLOAT, za = [\"u_matrix\", \"u_zoomRatio\", \"u_sizeRatio\", \"u_correctionRatio\", \"u_pixelRatio\", \"u_feather\", \"u_minEdgeThickness\"], Na = /* @__PURE__ */ function(n) {\n  function i() {\n    return ce(this, i), Ee(this, i, arguments);\n  }\n  return _e(i, n), fe(i, [{\n    key: \"getDefinition\",\n    value: function() {\n      return {\n        VERTICES: 6,\n        VERTEX_SHADER_SOURCE: Oa,\n        FRAGMENT_SHADER_SOURCE: Tr,\n        METHOD: WebGLRenderingContext.TRIANGLES,\n        UNIFORMS: za,\n        ATTRIBUTES: [{\n          name: \"a_positionStart\",\n          size: 2,\n          type: et\n        }, {\n          name: \"a_positionEnd\",\n          size: 2,\n          type: et\n        }, {\n          name: \"a_normal\",\n          size: 2,\n          type: et\n        }, {\n          name: \"a_color\",\n          size: 4,\n          type: Si,\n          normalized: !0\n        }, {\n          name: \"a_id\",\n          size: 4,\n          type: Si,\n          normalized: !0\n        }],\n        CONSTANT_ATTRIBUTES: [\n          // If 0, then position will be a_positionStart\n          // If 2, then position will be a_positionEnd\n          {\n            name: \"a_positionCoef\",\n            size: 1,\n            type: et\n          },\n          {\n            name: \"a_normalCoef\",\n            size: 1,\n            type: et\n          }\n        ],\n        CONSTANT_DATA: [[0, 1], [0, -1], [1, 1], [1, 1], [0, -1], [1, -1]]\n      };\n    }\n  }, {\n    key: \"processVisibleItem\",\n    value: function(e, r, a, o, s) {\n      var u = s.size || 1, h = a.x, l = a.y, d = o.x, c = o.y, y = Ze(s.color), A = d - h, p = c - l, S = A * A + p * p, C = 0, _ = 0;\n      S && (S = 1 / Math.sqrt(S), C = -p * S * u, _ = A * S * u);\n      var k = this.array;\n      k[r++] = h, k[r++] = l, k[r++] = d, k[r++] = c, k[r++] = C, k[r++] = _, k[r++] = y, k[r++] = e;\n    }\n  }, {\n    key: \"setUniforms\",\n    value: function(e, r) {\n      var a = r.gl, o = r.uniformLocations, s = o.u_matrix, u = o.u_zoomRatio, h = o.u_feather, l = o.u_pixelRatio, d = o.u_correctionRatio, c = o.u_sizeRatio, y = o.u_minEdgeThickness;\n      a.uniformMatrix3fv(s, !1, e.matrix), a.uniform1f(u, e.zoomRatio), a.uniform1f(c, e.sizeRatio), a.uniform1f(d, e.correctionRatio), a.uniform1f(l, e.pixelRatio), a.uniform1f(h, e.antiAliasingFeather), a.uniform1f(y, e.minEdgeThickness);\n    }\n  }]);\n}(wt), ri = /* @__PURE__ */ function(n) {\n  function i() {\n    var t;\n    return ce(this, i), t = Ee(this, i), t.rawEmitter = t, t;\n  }\n  return _e(i, n), fe(i);\n}(Zi.EventEmitter), Dt, Ai;\nfunction ni() {\n  return Ai || (Ai = 1, Dt = function(i) {\n    return i !== null && typeof i == \"object\" && typeof i.addUndirectedEdgeWithKey == \"function\" && typeof i.dropNode == \"function\" && typeof i.multi == \"boolean\";\n  }), Dt;\n}\nvar $a = ni();\nconst Ua = /* @__PURE__ */ yt($a);\nvar Ba = function(i) {\n  return i;\n}, Ma = function(i) {\n  return i * i;\n}, Ha = function(i) {\n  return i * (2 - i);\n}, ja = function(i) {\n  return (i *= 2) < 1 ? 0.5 * i * i : -0.5 * (--i * (i - 2) - 1);\n}, Wa = function(i) {\n  return i * i * i;\n}, qa = function(i) {\n  return --i * i * i + 1;\n}, Va = function(i) {\n  return (i *= 2) < 1 ? 0.5 * i * i * i : 0.5 * ((i -= 2) * i * i + 2);\n}, Ya = {\n  linear: Ba,\n  quadraticIn: Ma,\n  quadraticOut: Ha,\n  quadraticInOut: ja,\n  cubicIn: Wa,\n  cubicOut: qa,\n  cubicInOut: Va\n}, Ka = {\n  easing: \"quadraticInOut\",\n  duration: 150\n};\nfunction Ae() {\n  return Float32Array.of(1, 0, 0, 0, 1, 0, 0, 0, 1);\n}\nfunction gt(n, i, t) {\n  return n[0] = i, n[4] = typeof t == \"number\" ? t : i, n;\n}\nfunction ki(n, i) {\n  var t = Math.sin(i), e = Math.cos(i);\n  return n[0] = e, n[1] = t, n[3] = -t, n[4] = e, n;\n}\nfunction Ci(n, i, t) {\n  return n[6] = i, n[7] = t, n;\n}\nfunction Ne(n, i) {\n  var t = n[0], e = n[1], r = n[2], a = n[3], o = n[4], s = n[5], u = n[6], h = n[7], l = n[8], d = i[0], c = i[1], y = i[2], A = i[3], p = i[4], S = i[5], C = i[6], _ = i[7], k = i[8];\n  return n[0] = d * t + c * a + y * u, n[1] = d * e + c * o + y * h, n[2] = d * r + c * s + y * l, n[3] = A * t + p * a + S * u, n[4] = A * e + p * o + S * h, n[5] = A * r + p * s + S * l, n[6] = C * t + _ * a + k * u, n[7] = C * e + _ * o + k * h, n[8] = C * r + _ * s + k * l, n;\n}\nfunction Yt(n, i) {\n  var t = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1, e = n[0], r = n[1], a = n[3], o = n[4], s = n[6], u = n[7], h = i.x, l = i.y;\n  return {\n    x: h * e + l * a + s * t,\n    y: h * r + l * o + u * t\n  };\n}\nfunction Za(n, i) {\n  var t = n.height / n.width, e = i.height / i.width;\n  return t < 1 && e > 1 || t > 1 && e < 1 ? 1 : Math.min(Math.max(e, 1 / e), Math.max(1 / t, t));\n}\nfunction tt(n, i, t, e, r) {\n  var a = n.angle, o = n.ratio, s = n.x, u = n.y, h = i.width, l = i.height, d = Ae(), c = Math.min(h, l) - 2 * e, y = Za(i, t);\n  return r ? (Ne(d, Ci(Ae(), s, u)), Ne(d, gt(Ae(), o)), Ne(d, ki(Ae(), a)), Ne(d, gt(Ae(), h / c / 2 / y, l / c / 2 / y))) : (Ne(d, gt(Ae(), 2 * (c / h) * y, 2 * (c / l) * y)), Ne(d, ki(Ae(), -a)), Ne(d, gt(Ae(), 1 / o)), Ne(d, Ci(Ae(), -s, -u))), d;\n}\nfunction Xa(n, i, t) {\n  var e = Yt(n, {\n    x: Math.cos(i.angle),\n    y: Math.sin(i.angle)\n  }, 0), r = e.x, a = e.y;\n  return 1 / Math.sqrt(Math.pow(r, 2) + Math.pow(a, 2)) / t.width;\n}\nfunction Qa(n) {\n  if (!n.order) return {\n    x: [0, 1],\n    y: [0, 1]\n  };\n  var i = 1 / 0, t = -1 / 0, e = 1 / 0, r = -1 / 0;\n  return n.forEachNode(function(a, o) {\n    var s = o.x, u = o.y;\n    s < i && (i = s), s > t && (t = s), u < e && (e = u), u > r && (r = u);\n  }), {\n    x: [i, t],\n    y: [e, r]\n  };\n}\nfunction Ja(n) {\n  if (!Ua(n)) throw new Error(\"Sigma: invalid graph instance.\");\n  n.forEachNode(function(i, t) {\n    if (!Number.isFinite(t.x) || !Number.isFinite(t.y))\n      throw new Error(\"Sigma: Coordinates of node \".concat(i, \" are invalid. A node must have a numeric 'x' and 'y' attribute.\"));\n  });\n}\nfunction eo(n, i, t) {\n  var e = document.createElement(n);\n  if (i)\n    for (var r in i)\n      e.style[r] = i[r];\n  if (t)\n    for (var a in t)\n      e.setAttribute(a, t[a]);\n  return e;\n}\nfunction Ri() {\n  return typeof window.devicePixelRatio != \"undefined\" ? window.devicePixelRatio : 1;\n}\nfunction Li(n, i, t) {\n  return t.sort(function(e, r) {\n    var a = i(e) || 0, o = i(r) || 0;\n    return a < o ? -1 : a > o ? 1 : 0;\n  });\n}\nfunction Di(n) {\n  var i = We(n.x, 2), t = i[0], e = i[1], r = We(n.y, 2), a = r[0], o = r[1], s = Math.max(e - t, o - a), u = (e + t) / 2, h = (o + a) / 2;\n  (s === 0 || Math.abs(s) === 1 / 0 || isNaN(s)) && (s = 1), isNaN(u) && (u = 0), isNaN(h) && (h = 0);\n  var l = function(c) {\n    return {\n      x: 0.5 + (c.x - u) / s,\n      y: 0.5 + (c.y - h) / s\n    };\n  };\n  return l.applyTo = function(d) {\n    d.x = 0.5 + (d.x - u) / s, d.y = 0.5 + (d.y - h) / s;\n  }, l.inverse = function(d) {\n    return {\n      x: u + s * (d.x - 0.5),\n      y: h + s * (d.y - 0.5)\n    };\n  }, l.ratio = s, l;\n}\nfunction Kt(n) {\n  \"@babel/helpers - typeof\";\n  return Kt = typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? function(i) {\n    return typeof i;\n  } : function(i) {\n    return i && typeof Symbol == \"function\" && i.constructor === Symbol && i !== Symbol.prototype ? \"symbol\" : typeof i;\n  }, Kt(n);\n}\nfunction xi(n, i) {\n  var t = i.size;\n  if (t !== 0) {\n    var e = n.length;\n    n.length += t;\n    var r = 0;\n    i.forEach(function(a) {\n      n[e + r] = a, r++;\n    });\n  }\n}\nfunction xt(n) {\n  n = n || {};\n  for (var i = 0, t = arguments.length <= 1 ? 0 : arguments.length - 1; i < t; i++) {\n    var e = i + 1 < 1 || arguments.length <= i + 1 ? void 0 : arguments[i + 1];\n    e && Object.assign(n, e);\n  }\n  return n;\n}\nvar ai = {\n  // Performance\n  hideEdgesOnMove: !1,\n  hideLabelsOnMove: !1,\n  renderLabels: !0,\n  renderEdgeLabels: !1,\n  enableEdgeEvents: !1,\n  // Component rendering\n  defaultNodeColor: \"#999\",\n  defaultNodeType: \"circle\",\n  defaultEdgeColor: \"#ccc\",\n  defaultEdgeType: \"line\",\n  labelFont: \"Arial\",\n  labelSize: 14,\n  labelWeight: \"normal\",\n  labelColor: {\n    color: \"#000\"\n  },\n  edgeLabelFont: \"Arial\",\n  edgeLabelSize: 14,\n  edgeLabelWeight: \"normal\",\n  edgeLabelColor: {\n    attribute: \"color\"\n  },\n  stagePadding: 30,\n  defaultDrawEdgeLabel: va,\n  defaultDrawNodeLabel: br,\n  defaultDrawNodeHover: ma,\n  minEdgeThickness: 1.7,\n  antiAliasingFeather: 1,\n  // Mouse and touch settings\n  dragTimeout: 100,\n  draggedEventsTolerance: 3,\n  inertiaDuration: 200,\n  inertiaRatio: 3,\n  zoomDuration: 250,\n  zoomingRatio: 1.7,\n  doubleClickTimeout: 300,\n  doubleClickZoomingRatio: 2.2,\n  doubleClickZoomingDuration: 200,\n  tapMoveTolerance: 10,\n  // Size and scaling\n  zoomToSizeRatioFunction: Math.sqrt,\n  itemSizesReference: \"screen\",\n  autoRescale: !0,\n  autoCenter: !0,\n  // Labels\n  labelDensity: 1,\n  labelGridCellSize: 100,\n  labelRenderedSizeThreshold: 6,\n  // Reducers\n  nodeReducer: null,\n  edgeReducer: null,\n  // Features\n  zIndex: !1,\n  minCameraRatio: null,\n  maxCameraRatio: null,\n  enableCameraZooming: !0,\n  enableCameraPanning: !0,\n  enableCameraRotation: !0,\n  cameraPanBoundaries: null,\n  // Lifecycle\n  allowInvalidContainer: !1,\n  // Program classes\n  nodeProgramClasses: {},\n  nodeHoverProgramClasses: {},\n  edgeProgramClasses: {}\n}, to = {\n  circle: Et\n}, io = {\n  arrow: kr,\n  line: Na\n};\nfunction Gt(n) {\n  if (typeof n.labelDensity != \"number\" || n.labelDensity < 0)\n    throw new Error(\"Settings: invalid `labelDensity`. Expecting a positive number.\");\n  var i = n.minCameraRatio, t = n.maxCameraRatio;\n  if (typeof i == \"number\" && typeof t == \"number\" && t < i)\n    throw new Error(\"Settings: invalid camera ratio boundaries. Expecting `maxCameraRatio` to be greater than `minCameraRatio`.\");\n}\nfunction ro(n) {\n  var i = xt({}, ai, n);\n  return i.nodeProgramClasses = xt({}, to, i.nodeProgramClasses), i.edgeProgramClasses = xt({}, io, i.edgeProgramClasses), i;\n}\nvar pt = 1.5, Gi = /* @__PURE__ */ function(n) {\n  function i() {\n    var t;\n    return ce(this, i), t = Ee(this, i), I(t, \"x\", 0.5), I(t, \"y\", 0.5), I(t, \"angle\", 0), I(t, \"ratio\", 1), I(t, \"minRatio\", null), I(t, \"maxRatio\", null), I(t, \"enabledZooming\", !0), I(t, \"enabledPanning\", !0), I(t, \"enabledRotation\", !0), I(t, \"clean\", null), I(t, \"nextFrame\", null), I(t, \"previousState\", null), I(t, \"enabled\", !0), t.previousState = t.getState(), t;\n  }\n  return _e(i, n), fe(i, [{\n    key: \"enable\",\n    value: (\n      /**\n       * Method used to enable the camera.\n       */\n      function() {\n        return this.enabled = !0, this;\n      }\n    )\n    /**\n     * Method used to disable the camera.\n     */\n  }, {\n    key: \"disable\",\n    value: function() {\n      return this.enabled = !1, this;\n    }\n    /**\n     * Method used to retrieve the camera's current state.\n     */\n  }, {\n    key: \"getState\",\n    value: function() {\n      return {\n        x: this.x,\n        y: this.y,\n        angle: this.angle,\n        ratio: this.ratio\n      };\n    }\n    /**\n     * Method used to check whether the camera has the given state.\n     */\n  }, {\n    key: \"hasState\",\n    value: function(e) {\n      return this.x === e.x && this.y === e.y && this.ratio === e.ratio && this.angle === e.angle;\n    }\n    /**\n     * Method used to retrieve the camera's previous state.\n     */\n  }, {\n    key: \"getPreviousState\",\n    value: function() {\n      var e = this.previousState;\n      return e ? {\n        x: e.x,\n        y: e.y,\n        angle: e.angle,\n        ratio: e.ratio\n      } : null;\n    }\n    /**\n     * Method used to check minRatio and maxRatio values.\n     */\n  }, {\n    key: \"getBoundedRatio\",\n    value: function(e) {\n      var r = e;\n      return typeof this.minRatio == \"number\" && (r = Math.max(r, this.minRatio)), typeof this.maxRatio == \"number\" && (r = Math.min(r, this.maxRatio)), r;\n    }\n    /**\n     * Method used to check various things to return a legit state candidate.\n     */\n  }, {\n    key: \"validateState\",\n    value: function(e) {\n      var r = {};\n      return this.enabledPanning && typeof e.x == \"number\" && (r.x = e.x), this.enabledPanning && typeof e.y == \"number\" && (r.y = e.y), this.enabledZooming && typeof e.ratio == \"number\" && (r.ratio = this.getBoundedRatio(e.ratio)), this.enabledRotation && typeof e.angle == \"number\" && (r.angle = e.angle), this.clean ? this.clean(W(W({}, this.getState()), r)) : r;\n    }\n    /**\n     * Method used to check whether the camera is currently being animated.\n     */\n  }, {\n    key: \"isAnimated\",\n    value: function() {\n      return !!this.nextFrame;\n    }\n    /**\n     * Method used to set the camera's state.\n     */\n  }, {\n    key: \"setState\",\n    value: function(e) {\n      if (!this.enabled) return this;\n      this.previousState = this.getState();\n      var r = this.validateState(e);\n      return typeof r.x == \"number\" && (this.x = r.x), typeof r.y == \"number\" && (this.y = r.y), typeof r.ratio == \"number\" && (this.ratio = r.ratio), typeof r.angle == \"number\" && (this.angle = r.angle), this.hasState(this.previousState) || this.emit(\"updated\", this.getState()), this;\n    }\n    /**\n     * Method used to update the camera's state using a function.\n     */\n  }, {\n    key: \"updateState\",\n    value: function(e) {\n      return this.setState(e(this.getState())), this;\n    }\n    /**\n     * Method used to animate the camera.\n     */\n  }, {\n    key: \"animate\",\n    value: function(e) {\n      var r = this, a = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, o = arguments.length > 2 ? arguments[2] : void 0;\n      if (!o) return new Promise(function(y) {\n        return r.animate(e, a, y);\n      });\n      if (this.enabled) {\n        var s = W(W({}, Ka), a), u = this.validateState(e), h = typeof s.easing == \"function\" ? s.easing : Ya[s.easing], l = Date.now(), d = this.getState(), c = function() {\n          var A = (Date.now() - l) / s.duration;\n          if (A >= 1) {\n            r.nextFrame = null, r.setState(u), r.animationCallback && (r.animationCallback.call(null), r.animationCallback = void 0);\n            return;\n          }\n          var p = h(A), S = {};\n          typeof u.x == \"number\" && (S.x = d.x + (u.x - d.x) * p), typeof u.y == \"number\" && (S.y = d.y + (u.y - d.y) * p), r.enabledRotation && typeof u.angle == \"number\" && (S.angle = d.angle + (u.angle - d.angle) * p), typeof u.ratio == \"number\" && (S.ratio = d.ratio + (u.ratio - d.ratio) * p), r.setState(S), r.nextFrame = requestAnimationFrame(c);\n        };\n        this.nextFrame ? (cancelAnimationFrame(this.nextFrame), this.animationCallback && this.animationCallback.call(null), this.nextFrame = requestAnimationFrame(c)) : c(), this.animationCallback = o;\n      }\n    }\n    /**\n     * Method used to zoom the camera.\n     */\n  }, {\n    key: \"animatedZoom\",\n    value: function(e) {\n      return e ? typeof e == \"number\" ? this.animate({\n        ratio: this.ratio / e\n      }) : this.animate({\n        ratio: this.ratio / (e.factor || pt)\n      }, e) : this.animate({\n        ratio: this.ratio / pt\n      });\n    }\n    /**\n     * Method used to unzoom the camera.\n     */\n  }, {\n    key: \"animatedUnzoom\",\n    value: function(e) {\n      return e ? typeof e == \"number\" ? this.animate({\n        ratio: this.ratio * e\n      }) : this.animate({\n        ratio: this.ratio * (e.factor || pt)\n      }, e) : this.animate({\n        ratio: this.ratio * pt\n      });\n    }\n    /**\n     * Method used to reset the camera.\n     */\n  }, {\n    key: \"animatedReset\",\n    value: function(e) {\n      return this.animate({\n        x: 0.5,\n        y: 0.5,\n        ratio: 1,\n        angle: 0\n      }, e);\n    }\n    /**\n     * Returns a new Camera instance, with the same state as the current camera.\n     */\n  }, {\n    key: \"copy\",\n    value: function() {\n      return i.from(this.getState());\n    }\n  }], [{\n    key: \"from\",\n    value: function(e) {\n      var r = new i();\n      return r.setState(e);\n    }\n  }]);\n}(ri);\nfunction ke(n, i) {\n  var t = i.getBoundingClientRect();\n  return {\n    x: n.clientX - t.left,\n    y: n.clientY - t.top\n  };\n}\nfunction Ge(n, i) {\n  var t = W(W({}, ke(n, i)), {}, {\n    sigmaDefaultPrevented: !1,\n    preventSigmaDefault: function() {\n      t.sigmaDefaultPrevented = !0;\n    },\n    original: n\n  });\n  return t;\n}\nfunction it(n) {\n  var i = \"x\" in n ? n : W(W({}, n.touches[0] || n.previousTouches[0]), {}, {\n    original: n.original,\n    sigmaDefaultPrevented: n.sigmaDefaultPrevented,\n    preventSigmaDefault: function() {\n      n.sigmaDefaultPrevented = !0, i.sigmaDefaultPrevented = !0;\n    }\n  });\n  return i;\n}\nfunction no(n, i) {\n  return W(W({}, Ge(n, i)), {}, {\n    delta: Rr(n)\n  });\n}\nvar ao = 2;\nfunction vt(n) {\n  for (var i = [], t = 0, e = Math.min(n.length, ao); t < e; t++) i.push(n[t]);\n  return i;\n}\nfunction rt(n, i, t) {\n  var e = {\n    touches: vt(n.touches).map(function(r) {\n      return ke(r, t);\n    }),\n    previousTouches: i.map(function(r) {\n      return ke(r, t);\n    }),\n    sigmaDefaultPrevented: !1,\n    preventSigmaDefault: function() {\n      e.sigmaDefaultPrevented = !0;\n    },\n    original: n\n  };\n  return e;\n}\nfunction Rr(n) {\n  if (typeof n.deltaY != \"undefined\") return n.deltaY * -3 / 360;\n  if (typeof n.detail != \"undefined\") return n.detail / -9;\n  throw new Error(\"Captor: could not extract delta from event.\");\n}\nvar Lr = /* @__PURE__ */ function(n) {\n  function i(t, e) {\n    var r;\n    return ce(this, i), r = Ee(this, i), r.container = t, r.renderer = e, r;\n  }\n  return _e(i, n), fe(i);\n}(ri), oo = [\"doubleClickTimeout\", \"doubleClickZoomingDuration\", \"doubleClickZoomingRatio\", \"dragTimeout\", \"draggedEventsTolerance\", \"inertiaDuration\", \"inertiaRatio\", \"zoomDuration\", \"zoomingRatio\"], so = oo.reduce(function(n, i) {\n  return W(W({}, n), {}, I({}, i, ai[i]));\n}, {}), uo = /* @__PURE__ */ function(n) {\n  function i(t, e) {\n    var r;\n    return ce(this, i), r = Ee(this, i, [t, e]), I(r, \"enabled\", !0), I(r, \"draggedEvents\", 0), I(r, \"downStartTime\", null), I(r, \"lastMouseX\", null), I(r, \"lastMouseY\", null), I(r, \"isMouseDown\", !1), I(r, \"isMoving\", !1), I(r, \"movingTimeout\", null), I(r, \"startCameraState\", null), I(r, \"clicks\", 0), I(r, \"doubleClickTimeout\", null), I(r, \"currentWheelDirection\", 0), I(r, \"settings\", so), r.handleClick = r.handleClick.bind(r), r.handleRightClick = r.handleRightClick.bind(r), r.handleDown = r.handleDown.bind(r), r.handleUp = r.handleUp.bind(r), r.handleMove = r.handleMove.bind(r), r.handleWheel = r.handleWheel.bind(r), r.handleLeave = r.handleLeave.bind(r), r.handleEnter = r.handleEnter.bind(r), t.addEventListener(\"click\", r.handleClick, {\n      capture: !1\n    }), t.addEventListener(\"contextmenu\", r.handleRightClick, {\n      capture: !1\n    }), t.addEventListener(\"mousedown\", r.handleDown, {\n      capture: !1\n    }), t.addEventListener(\"wheel\", r.handleWheel, {\n      capture: !1\n    }), t.addEventListener(\"mouseleave\", r.handleLeave, {\n      capture: !1\n    }), t.addEventListener(\"mouseenter\", r.handleEnter, {\n      capture: !1\n    }), document.addEventListener(\"mousemove\", r.handleMove, {\n      capture: !1\n    }), document.addEventListener(\"mouseup\", r.handleUp, {\n      capture: !1\n    }), r;\n  }\n  return _e(i, n), fe(i, [{\n    key: \"kill\",\n    value: function() {\n      var e = this.container;\n      e.removeEventListener(\"click\", this.handleClick), e.removeEventListener(\"contextmenu\", this.handleRightClick), e.removeEventListener(\"mousedown\", this.handleDown), e.removeEventListener(\"wheel\", this.handleWheel), e.removeEventListener(\"mouseleave\", this.handleLeave), e.removeEventListener(\"mouseenter\", this.handleEnter), document.removeEventListener(\"mousemove\", this.handleMove), document.removeEventListener(\"mouseup\", this.handleUp);\n    }\n  }, {\n    key: \"handleClick\",\n    value: function(e) {\n      var r = this;\n      if (this.enabled) {\n        if (this.clicks++, this.clicks === 2)\n          return this.clicks = 0, typeof this.doubleClickTimeout == \"number\" && (clearTimeout(this.doubleClickTimeout), this.doubleClickTimeout = null), this.handleDoubleClick(e);\n        setTimeout(function() {\n          r.clicks = 0, r.doubleClickTimeout = null;\n        }, this.settings.doubleClickTimeout), this.draggedEvents < this.settings.draggedEventsTolerance && this.emit(\"click\", Ge(e, this.container));\n      }\n    }\n  }, {\n    key: \"handleRightClick\",\n    value: function(e) {\n      this.enabled && this.emit(\"rightClick\", Ge(e, this.container));\n    }\n  }, {\n    key: \"handleDoubleClick\",\n    value: function(e) {\n      if (this.enabled) {\n        e.preventDefault(), e.stopPropagation();\n        var r = Ge(e, this.container);\n        if (this.emit(\"doubleClick\", r), !r.sigmaDefaultPrevented) {\n          var a = this.renderer.getCamera(), o = a.getBoundedRatio(a.getState().ratio / this.settings.doubleClickZoomingRatio);\n          a.animate(this.renderer.getViewportZoomedState(ke(e, this.container), o), {\n            easing: \"quadraticInOut\",\n            duration: this.settings.doubleClickZoomingDuration\n          });\n        }\n      }\n    }\n  }, {\n    key: \"handleDown\",\n    value: function(e) {\n      if (this.enabled) {\n        if (e.button === 0) {\n          this.startCameraState = this.renderer.getCamera().getState();\n          var r = ke(e, this.container), a = r.x, o = r.y;\n          this.lastMouseX = a, this.lastMouseY = o, this.draggedEvents = 0, this.downStartTime = Date.now(), this.isMouseDown = !0;\n        }\n        this.emit(\"mousedown\", Ge(e, this.container));\n      }\n    }\n  }, {\n    key: \"handleUp\",\n    value: function(e) {\n      var r = this;\n      if (!(!this.enabled || !this.isMouseDown)) {\n        var a = this.renderer.getCamera();\n        this.isMouseDown = !1, typeof this.movingTimeout == \"number\" && (clearTimeout(this.movingTimeout), this.movingTimeout = null);\n        var o = ke(e, this.container), s = o.x, u = o.y, h = a.getState(), l = a.getPreviousState() || {\n          x: 0,\n          y: 0\n        };\n        this.isMoving ? a.animate({\n          x: h.x + this.settings.inertiaRatio * (h.x - l.x),\n          y: h.y + this.settings.inertiaRatio * (h.y - l.y)\n        }, {\n          duration: this.settings.inertiaDuration,\n          easing: \"quadraticOut\"\n        }) : (this.lastMouseX !== s || this.lastMouseY !== u) && a.setState({\n          x: h.x,\n          y: h.y\n        }), this.isMoving = !1, setTimeout(function() {\n          var d = r.draggedEvents > 0;\n          r.draggedEvents = 0, d && r.renderer.getSetting(\"hideEdgesOnMove\") && r.renderer.refresh();\n        }, 0), this.emit(\"mouseup\", Ge(e, this.container));\n      }\n    }\n  }, {\n    key: \"handleMove\",\n    value: function(e) {\n      var r = this;\n      if (this.enabled) {\n        var a = Ge(e, this.container);\n        if (this.emit(\"mousemovebody\", a), (e.target === this.container || e.composedPath()[0] === this.container) && this.emit(\"mousemove\", a), !a.sigmaDefaultPrevented && this.isMouseDown) {\n          this.isMoving = !0, this.draggedEvents++, typeof this.movingTimeout == \"number\" && clearTimeout(this.movingTimeout), this.movingTimeout = window.setTimeout(function() {\n            r.movingTimeout = null, r.isMoving = !1;\n          }, this.settings.dragTimeout);\n          var o = this.renderer.getCamera(), s = ke(e, this.container), u = s.x, h = s.y, l = this.renderer.viewportToFramedGraph({\n            x: this.lastMouseX,\n            y: this.lastMouseY\n          }), d = this.renderer.viewportToFramedGraph({\n            x: u,\n            y: h\n          }), c = l.x - d.x, y = l.y - d.y, A = o.getState(), p = A.x + c, S = A.y + y;\n          o.setState({\n            x: p,\n            y: S\n          }), this.lastMouseX = u, this.lastMouseY = h, e.preventDefault(), e.stopPropagation();\n        }\n      }\n    }\n  }, {\n    key: \"handleLeave\",\n    value: function(e) {\n      this.emit(\"mouseleave\", Ge(e, this.container));\n    }\n  }, {\n    key: \"handleEnter\",\n    value: function(e) {\n      this.emit(\"mouseenter\", Ge(e, this.container));\n    }\n  }, {\n    key: \"handleWheel\",\n    value: function(e) {\n      var r = this, a = this.renderer.getCamera();\n      if (!(!this.enabled || !a.enabledZooming)) {\n        var o = Rr(e);\n        if (o) {\n          var s = no(e, this.container);\n          if (this.emit(\"wheel\", s), s.sigmaDefaultPrevented) {\n            e.preventDefault(), e.stopPropagation();\n            return;\n          }\n          var u = a.getState().ratio, h = o > 0 ? 1 / this.settings.zoomingRatio : this.settings.zoomingRatio, l = a.getBoundedRatio(u * h), d = o > 0 ? 1 : -1, c = Date.now();\n          u !== l && (e.preventDefault(), e.stopPropagation(), !(this.currentWheelDirection === d && this.lastWheelTriggerTime && c - this.lastWheelTriggerTime < this.settings.zoomDuration / 5) && (a.animate(this.renderer.getViewportZoomedState(ke(e, this.container), l), {\n            easing: \"quadraticOut\",\n            duration: this.settings.zoomDuration\n          }, function() {\n            r.currentWheelDirection = 0;\n          }), this.currentWheelDirection = d, this.lastWheelTriggerTime = c));\n        }\n      }\n    }\n  }, {\n    key: \"setSettings\",\n    value: function(e) {\n      this.settings = e;\n    }\n  }]);\n}(Lr), ho = [\"dragTimeout\", \"inertiaDuration\", \"inertiaRatio\", \"doubleClickTimeout\", \"doubleClickZoomingRatio\", \"doubleClickZoomingDuration\", \"tapMoveTolerance\"], lo = ho.reduce(function(n, i) {\n  return W(W({}, n), {}, I({}, i, ai[i]));\n}, {}), co = /* @__PURE__ */ function(n) {\n  function i(t, e) {\n    var r;\n    return ce(this, i), r = Ee(this, i, [t, e]), I(r, \"enabled\", !0), I(r, \"isMoving\", !1), I(r, \"hasMoved\", !1), I(r, \"touchMode\", 0), I(r, \"startTouchesPositions\", []), I(r, \"lastTouches\", []), I(r, \"lastTap\", null), I(r, \"settings\", lo), r.handleStart = r.handleStart.bind(r), r.handleLeave = r.handleLeave.bind(r), r.handleMove = r.handleMove.bind(r), t.addEventListener(\"touchstart\", r.handleStart, {\n      capture: !1\n    }), t.addEventListener(\"touchcancel\", r.handleLeave, {\n      capture: !1\n    }), document.addEventListener(\"touchend\", r.handleLeave, {\n      capture: !1,\n      passive: !1\n    }), document.addEventListener(\"touchmove\", r.handleMove, {\n      capture: !1,\n      passive: !1\n    }), r;\n  }\n  return _e(i, n), fe(i, [{\n    key: \"kill\",\n    value: function() {\n      var e = this.container;\n      e.removeEventListener(\"touchstart\", this.handleStart), e.removeEventListener(\"touchcancel\", this.handleLeave), document.removeEventListener(\"touchend\", this.handleLeave), document.removeEventListener(\"touchmove\", this.handleMove);\n    }\n  }, {\n    key: \"getDimensions\",\n    value: function() {\n      return {\n        width: this.container.offsetWidth,\n        height: this.container.offsetHeight\n      };\n    }\n  }, {\n    key: \"handleStart\",\n    value: function(e) {\n      var r = this;\n      if (this.enabled) {\n        e.preventDefault();\n        var a = vt(e.touches);\n        if (this.touchMode = a.length, this.startCameraState = this.renderer.getCamera().getState(), this.startTouchesPositions = a.map(function(y) {\n          return ke(y, r.container);\n        }), this.touchMode === 2) {\n          var o = We(this.startTouchesPositions, 2), s = o[0], u = s.x, h = s.y, l = o[1], d = l.x, c = l.y;\n          this.startTouchesAngle = Math.atan2(c - h, d - u), this.startTouchesDistance = Math.sqrt(Math.pow(d - u, 2) + Math.pow(c - h, 2));\n        }\n        this.emit(\"touchdown\", rt(e, this.lastTouches, this.container)), this.lastTouches = a, this.lastTouchesPositions = this.startTouchesPositions;\n      }\n    }\n  }, {\n    key: \"handleLeave\",\n    value: function(e) {\n      if (!(!this.enabled || !this.startTouchesPositions.length)) {\n        switch (e.cancelable && e.preventDefault(), this.movingTimeout && (this.isMoving = !1, clearTimeout(this.movingTimeout)), this.touchMode) {\n          // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n          // @ts-ignore\n          case 2:\n            if (e.touches.length === 1) {\n              this.handleStart(e), e.preventDefault();\n              break;\n            }\n          /* falls through */\n          case 1:\n            if (this.isMoving) {\n              var r = this.renderer.getCamera(), a = r.getState(), o = r.getPreviousState() || {\n                x: 0,\n                y: 0\n              };\n              r.animate({\n                x: a.x + this.settings.inertiaRatio * (a.x - o.x),\n                y: a.y + this.settings.inertiaRatio * (a.y - o.y)\n              }, {\n                duration: this.settings.inertiaDuration,\n                easing: \"quadraticOut\"\n              });\n            }\n            this.hasMoved = !1, this.isMoving = !1, this.touchMode = 0;\n            break;\n        }\n        if (this.emit(\"touchup\", rt(e, this.lastTouches, this.container)), !e.touches.length) {\n          var s = ke(this.lastTouches[0], this.container), u = this.startTouchesPositions[0], h = Math.pow(s.x - u.x, 2) + Math.pow(s.y - u.y, 2);\n          if (!e.touches.length && h < Math.pow(this.settings.tapMoveTolerance, 2))\n            if (this.lastTap && Date.now() - this.lastTap.time < this.settings.doubleClickTimeout) {\n              var l = rt(e, this.lastTouches, this.container);\n              if (this.emit(\"doubletap\", l), this.lastTap = null, !l.sigmaDefaultPrevented) {\n                var d = this.renderer.getCamera(), c = d.getBoundedRatio(d.getState().ratio / this.settings.doubleClickZoomingRatio);\n                d.animate(this.renderer.getViewportZoomedState(s, c), {\n                  easing: \"quadraticInOut\",\n                  duration: this.settings.doubleClickZoomingDuration\n                });\n              }\n            } else {\n              var y = rt(e, this.lastTouches, this.container);\n              this.emit(\"tap\", y), this.lastTap = {\n                time: Date.now(),\n                position: y.touches[0] || y.previousTouches[0]\n              };\n            }\n        }\n        this.lastTouches = vt(e.touches), this.startTouchesPositions = [];\n      }\n    }\n  }, {\n    key: \"handleMove\",\n    value: function(e) {\n      var r = this;\n      if (!(!this.enabled || !this.startTouchesPositions.length)) {\n        e.preventDefault();\n        var a = vt(e.touches), o = a.map(function(P) {\n          return ke(P, r.container);\n        }), s = this.lastTouches;\n        this.lastTouches = a, this.lastTouchesPositions = o;\n        var u = rt(e, s, this.container);\n        if (this.emit(\"touchmove\", u), !u.sigmaDefaultPrevented && (this.hasMoved || (this.hasMoved = o.some(function(P, E) {\n          var z = r.startTouchesPositions[E];\n          return z && (P.x !== z.x || P.y !== z.y);\n        })), !!this.hasMoved)) {\n          this.isMoving = !0, this.movingTimeout && clearTimeout(this.movingTimeout), this.movingTimeout = window.setTimeout(function() {\n            r.isMoving = !1;\n          }, this.settings.dragTimeout);\n          var h = this.renderer.getCamera(), l = this.startCameraState, d = this.renderer.getSetting(\"stagePadding\");\n          switch (this.touchMode) {\n            case 1: {\n              var c = this.renderer.viewportToFramedGraph((this.startTouchesPositions || [])[0]), y = c.x, A = c.y, p = this.renderer.viewportToFramedGraph(o[0]), S = p.x, C = p.y;\n              h.setState({\n                x: l.x + y - S,\n                y: l.y + A - C\n              });\n              break;\n            }\n            case 2: {\n              var _ = {\n                x: 0.5,\n                y: 0.5,\n                angle: 0,\n                ratio: 1\n              }, k = o[0], f = k.x, g = k.y, w = o[1], T = w.x, x = w.y, L = Math.atan2(x - g, T - f) - this.startTouchesAngle, F = Math.hypot(x - g, T - f) / this.startTouchesDistance, N = h.getBoundedRatio(l.ratio / F);\n              _.ratio = N, _.angle = l.angle + L;\n              var O = this.getDimensions(), m = this.renderer.viewportToFramedGraph((this.startTouchesPositions || [])[0], {\n                cameraState: l\n              }), j = Math.min(O.width, O.height) - 2 * d, re = j / O.width, G = j / O.height, b = N / j, v = f - j / 2 / re, M = g - j / 2 / G, K = [v * Math.cos(-_.angle) - M * Math.sin(-_.angle), M * Math.cos(-_.angle) + v * Math.sin(-_.angle)];\n              v = K[0], M = K[1], _.x = m.x - v * b, _.y = m.y + M * b, h.setState(_);\n              break;\n            }\n          }\n        }\n      }\n    }\n  }, {\n    key: \"setSettings\",\n    value: function(e) {\n      this.settings = e;\n    }\n  }]);\n}(Lr);\nfunction fo(n) {\n  if (Array.isArray(n)) return qt(n);\n}\nfunction go(n) {\n  if (typeof Symbol != \"undefined\" && n[Symbol.iterator] != null || n[\"@@iterator\"] != null) return Array.from(n);\n}\nfunction po() {\n  throw new TypeError(`Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);\n}\nfunction Pi(n) {\n  return fo(n) || go(n) || cr(n) || po();\n}\nfunction vo(n, i) {\n  if (n == null) return {};\n  var t = {};\n  for (var e in n) if ({}.hasOwnProperty.call(n, e)) {\n    if (i.indexOf(e) !== -1) continue;\n    t[e] = n[e];\n  }\n  return t;\n}\nfunction Pt(n, i) {\n  if (n == null) return {};\n  var t, e, r = vo(n, i);\n  if (Object.getOwnPropertySymbols) {\n    var a = Object.getOwnPropertySymbols(n);\n    for (e = 0; e < a.length; e++) t = a[e], i.indexOf(t) === -1 && {}.propertyIsEnumerable.call(n, t) && (r[t] = n[t]);\n  }\n  return r;\n}\nvar Ii = /* @__PURE__ */ function() {\n  function n(i, t) {\n    ce(this, n), this.key = i, this.size = t;\n  }\n  return fe(n, null, [{\n    key: \"compare\",\n    value: function(t, e) {\n      return t.size > e.size ? -1 : t.size < e.size || t.key > e.key ? 1 : -1;\n    }\n  }]);\n}(), Fi = /* @__PURE__ */ function() {\n  function n() {\n    ce(this, n), I(this, \"width\", 0), I(this, \"height\", 0), I(this, \"cellSize\", 0), I(this, \"columns\", 0), I(this, \"rows\", 0), I(this, \"cells\", {});\n  }\n  return fe(n, [{\n    key: \"resizeAndClear\",\n    value: function(t, e) {\n      this.width = t.width, this.height = t.height, this.cellSize = e, this.columns = Math.ceil(t.width / e), this.rows = Math.ceil(t.height / e), this.cells = {};\n    }\n  }, {\n    key: \"getIndex\",\n    value: function(t) {\n      var e = Math.floor(t.x / this.cellSize), r = Math.floor(t.y / this.cellSize);\n      return r * this.columns + e;\n    }\n  }, {\n    key: \"add\",\n    value: function(t, e, r) {\n      var a = new Ii(t, e), o = this.getIndex(r), s = this.cells[o];\n      s || (s = [], this.cells[o] = s), s.push(a);\n    }\n  }, {\n    key: \"organize\",\n    value: function() {\n      for (var t in this.cells) {\n        var e = this.cells[t];\n        e.sort(Ii.compare);\n      }\n    }\n  }, {\n    key: \"getLabelsToDisplay\",\n    value: function(t, e) {\n      var r = this.cellSize * this.cellSize, a = r / t / t, o = a * e / r, s = Math.ceil(o), u = [];\n      for (var h in this.cells)\n        for (var l = this.cells[h], d = 0; d < Math.min(s, l.length); d++)\n          u.push(l[d].key);\n      return u;\n    }\n  }]);\n}();\nfunction mo(n) {\n  var i = n.graph, t = n.hoveredNode, e = n.highlightedNodes, r = n.displayedNodeLabels, a = [];\n  return i.forEachEdge(function(o, s, u, h) {\n    (u === t || h === t || e.has(u) || e.has(h) || r.has(u) && r.has(h)) && a.push(o);\n  }), a;\n}\nvar yo = 150, bo = 50, Pe = Object.prototype.hasOwnProperty;\nfunction wo(n, i, t) {\n  if (!Pe.call(t, \"x\") || !Pe.call(t, \"y\")) throw new Error('Sigma: could not find a valid position (x, y) for node \"'.concat(i, '\". All your nodes must have a number \"x\" and \"y\". Maybe your forgot to apply a layout or your \"nodeReducer\" is not returning the correct data?'));\n  return t.color || (t.color = n.defaultNodeColor), !t.label && t.label !== \"\" && (t.label = null), t.label !== void 0 && t.label !== null ? t.label = \"\" + t.label : t.label = null, t.size || (t.size = 2), Pe.call(t, \"hidden\") || (t.hidden = !1), Pe.call(t, \"highlighted\") || (t.highlighted = !1), Pe.call(t, \"forceLabel\") || (t.forceLabel = !1), (!t.type || t.type === \"\") && (t.type = n.defaultNodeType), t.zIndex || (t.zIndex = 0), t;\n}\nfunction Eo(n, i, t) {\n  return t.color || (t.color = n.defaultEdgeColor), t.label || (t.label = \"\"), t.size || (t.size = 0.5), Pe.call(t, \"hidden\") || (t.hidden = !1), Pe.call(t, \"forceLabel\") || (t.forceLabel = !1), (!t.type || t.type === \"\") && (t.type = n.defaultEdgeType), t.zIndex || (t.zIndex = 0), t;\n}\nvar _o = /* @__PURE__ */ function(n) {\n  function i(t, e) {\n    var r, a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n    if (ce(this, i), r = Ee(this, i), I(r, \"elements\", {}), I(r, \"canvasContexts\", {}), I(r, \"webGLContexts\", {}), I(r, \"pickingLayers\", /* @__PURE__ */ new Set()), I(r, \"textures\", {}), I(r, \"frameBuffers\", {}), I(r, \"activeListeners\", {}), I(r, \"labelGrid\", new Fi()), I(r, \"nodeDataCache\", {}), I(r, \"edgeDataCache\", {}), I(r, \"nodeProgramIndex\", {}), I(r, \"edgeProgramIndex\", {}), I(r, \"nodesWithForcedLabels\", /* @__PURE__ */ new Set()), I(r, \"edgesWithForcedLabels\", /* @__PURE__ */ new Set()), I(r, \"nodeExtent\", {\n      x: [0, 1],\n      y: [0, 1]\n    }), I(r, \"nodeZExtent\", [1 / 0, -1 / 0]), I(r, \"edgeZExtent\", [1 / 0, -1 / 0]), I(r, \"matrix\", Ae()), I(r, \"invMatrix\", Ae()), I(r, \"correctionRatio\", 1), I(r, \"customBBox\", null), I(r, \"normalizationFunction\", Di({\n      x: [0, 1],\n      y: [0, 1]\n    })), I(r, \"graphToViewportRatio\", 1), I(r, \"itemIDsIndex\", {}), I(r, \"nodeIndices\", {}), I(r, \"edgeIndices\", {}), I(r, \"width\", 0), I(r, \"height\", 0), I(r, \"pixelRatio\", Ri()), I(r, \"pickingDownSizingRatio\", 2 * r.pixelRatio), I(r, \"displayedNodeLabels\", /* @__PURE__ */ new Set()), I(r, \"displayedEdgeLabels\", /* @__PURE__ */ new Set()), I(r, \"highlightedNodes\", /* @__PURE__ */ new Set()), I(r, \"hoveredNode\", null), I(r, \"hoveredEdge\", null), I(r, \"renderFrame\", null), I(r, \"renderHighlightedNodesFrame\", null), I(r, \"needToProcess\", !1), I(r, \"checkEdgesEventsFrame\", null), I(r, \"nodePrograms\", {}), I(r, \"nodeHoverPrograms\", {}), I(r, \"edgePrograms\", {}), r.settings = ro(a), Gt(r.settings), Ja(t), !(e instanceof HTMLElement)) throw new Error(\"Sigma: container should be an html element.\");\n    r.graph = t, r.container = e, r.createWebGLContext(\"edges\", {\n      picking: a.enableEdgeEvents\n    }), r.createCanvasContext(\"edgeLabels\"), r.createWebGLContext(\"nodes\", {\n      picking: !0\n    }), r.createCanvasContext(\"labels\"), r.createCanvasContext(\"hovers\"), r.createWebGLContext(\"hoverNodes\"), r.createCanvasContext(\"mouse\", {\n      style: {\n        touchAction: \"none\",\n        userSelect: \"none\"\n      }\n    }), r.resize();\n    for (var o in r.settings.nodeProgramClasses)\n      r.registerNodeProgram(o, r.settings.nodeProgramClasses[o], r.settings.nodeHoverProgramClasses[o]);\n    for (var s in r.settings.edgeProgramClasses)\n      r.registerEdgeProgram(s, r.settings.edgeProgramClasses[s]);\n    return r.camera = new Gi(), r.bindCameraHandlers(), r.mouseCaptor = new uo(r.elements.mouse, r), r.mouseCaptor.setSettings(r.settings), r.touchCaptor = new co(r.elements.mouse, r), r.touchCaptor.setSettings(r.settings), r.bindEventHandlers(), r.bindGraphHandlers(), r.handleSettingsUpdate(), r.refresh(), r;\n  }\n  return _e(i, n), fe(i, [{\n    key: \"registerNodeProgram\",\n    value: function(e, r, a) {\n      return this.nodePrograms[e] && this.nodePrograms[e].kill(), this.nodeHoverPrograms[e] && this.nodeHoverPrograms[e].kill(), this.nodePrograms[e] = new r(this.webGLContexts.nodes, this.frameBuffers.nodes, this), this.nodeHoverPrograms[e] = new (a || r)(this.webGLContexts.hoverNodes, null, this), this;\n    }\n    /**\n     * Internal function used to register an edge program\n     *\n     * @param  {string}          key              - The program's key, matching the related edges \"type\" values.\n     * @param  {EdgeProgramType} EdgeProgramClass - An edges program class.\n     * @return {Sigma}\n     */\n  }, {\n    key: \"registerEdgeProgram\",\n    value: function(e, r) {\n      return this.edgePrograms[e] && this.edgePrograms[e].kill(), this.edgePrograms[e] = new r(this.webGLContexts.edges, this.frameBuffers.edges, this), this;\n    }\n    /**\n     * Internal function used to unregister a node program\n     *\n     * @param  {string} key - The program's key, matching the related nodes \"type\" values.\n     * @return {Sigma}\n     */\n  }, {\n    key: \"unregisterNodeProgram\",\n    value: function(e) {\n      if (this.nodePrograms[e]) {\n        var r = this.nodePrograms, a = r[e], o = Pt(r, [e].map(at));\n        a.kill(), this.nodePrograms = o;\n      }\n      if (this.nodeHoverPrograms[e]) {\n        var s = this.nodeHoverPrograms, u = s[e], h = Pt(s, [e].map(at));\n        u.kill(), this.nodePrograms = h;\n      }\n      return this;\n    }\n    /**\n     * Internal function used to unregister an edge program\n     *\n     * @param  {string} key - The program's key, matching the related edges \"type\" values.\n     * @return {Sigma}\n     */\n  }, {\n    key: \"unregisterEdgeProgram\",\n    value: function(e) {\n      if (this.edgePrograms[e]) {\n        var r = this.edgePrograms, a = r[e], o = Pt(r, [e].map(at));\n        a.kill(), this.edgePrograms = o;\n      }\n      return this;\n    }\n    /**\n     * Method (re)binding WebGL texture (for picking).\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"resetWebGLTexture\",\n    value: function(e) {\n      var r = this.webGLContexts[e], a = this.frameBuffers[e], o = this.textures[e];\n      o && r.deleteTexture(o);\n      var s = r.createTexture();\n      return r.bindFramebuffer(r.FRAMEBUFFER, a), r.bindTexture(r.TEXTURE_2D, s), r.texImage2D(r.TEXTURE_2D, 0, r.RGBA, this.width, this.height, 0, r.RGBA, r.UNSIGNED_BYTE, null), r.framebufferTexture2D(r.FRAMEBUFFER, r.COLOR_ATTACHMENT0, r.TEXTURE_2D, s, 0), this.textures[e] = s, this;\n    }\n    /**\n     * Method binding camera handlers.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"bindCameraHandlers\",\n    value: function() {\n      var e = this;\n      return this.activeListeners.camera = function() {\n        e.scheduleRender();\n      }, this.camera.on(\"updated\", this.activeListeners.camera), this;\n    }\n    /**\n     * Method unbinding camera handlers.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"unbindCameraHandlers\",\n    value: function() {\n      return this.camera.removeListener(\"updated\", this.activeListeners.camera), this;\n    }\n    /**\n     * Method that returns the closest node to a given position.\n     */\n  }, {\n    key: \"getNodeAtPosition\",\n    value: function(e) {\n      var r = e.x, a = e.y, o = mi(this.webGLContexts.nodes, this.frameBuffers.nodes, r, a, this.pixelRatio, this.pickingDownSizingRatio), s = vi.apply(void 0, Pi(o)), u = this.itemIDsIndex[s];\n      return u && u.type === \"node\" ? u.id : null;\n    }\n    /**\n     * Method binding event handlers.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"bindEventHandlers\",\n    value: function() {\n      var e = this;\n      this.activeListeners.handleResize = function() {\n        e.scheduleRefresh();\n      }, window.addEventListener(\"resize\", this.activeListeners.handleResize), this.activeListeners.handleMove = function(a) {\n        var o = it(a), s = {\n          event: o,\n          preventSigmaDefault: function() {\n            o.preventSigmaDefault();\n          }\n        }, u = e.getNodeAtPosition(o);\n        if (u && e.hoveredNode !== u && !e.nodeDataCache[u].hidden) {\n          e.hoveredNode && e.emit(\"leaveNode\", W(W({}, s), {}, {\n            node: e.hoveredNode\n          })), e.hoveredNode = u, e.emit(\"enterNode\", W(W({}, s), {}, {\n            node: u\n          })), e.scheduleHighlightedNodesRender();\n          return;\n        }\n        if (e.hoveredNode && e.getNodeAtPosition(o) !== e.hoveredNode) {\n          var h = e.hoveredNode;\n          e.hoveredNode = null, e.emit(\"leaveNode\", W(W({}, s), {}, {\n            node: h\n          })), e.scheduleHighlightedNodesRender();\n          return;\n        }\n        if (e.settings.enableEdgeEvents) {\n          var l = e.hoveredNode ? null : e.getEdgeAtPoint(s.event.x, s.event.y);\n          l !== e.hoveredEdge && (e.hoveredEdge && e.emit(\"leaveEdge\", W(W({}, s), {}, {\n            edge: e.hoveredEdge\n          })), l && e.emit(\"enterEdge\", W(W({}, s), {}, {\n            edge: l\n          })), e.hoveredEdge = l);\n        }\n      }, this.activeListeners.handleMoveBody = function(a) {\n        var o = it(a);\n        e.emit(\"moveBody\", {\n          event: o,\n          preventSigmaDefault: function() {\n            o.preventSigmaDefault();\n          }\n        });\n      }, this.activeListeners.handleLeave = function(a) {\n        var o = it(a), s = {\n          event: o,\n          preventSigmaDefault: function() {\n            o.preventSigmaDefault();\n          }\n        };\n        e.hoveredNode && (e.emit(\"leaveNode\", W(W({}, s), {}, {\n          node: e.hoveredNode\n        })), e.scheduleHighlightedNodesRender()), e.settings.enableEdgeEvents && e.hoveredEdge && (e.emit(\"leaveEdge\", W(W({}, s), {}, {\n          edge: e.hoveredEdge\n        })), e.scheduleHighlightedNodesRender()), e.emit(\"leaveStage\", W({}, s));\n      }, this.activeListeners.handleEnter = function(a) {\n        var o = it(a), s = {\n          event: o,\n          preventSigmaDefault: function() {\n            o.preventSigmaDefault();\n          }\n        };\n        e.emit(\"enterStage\", W({}, s));\n      };\n      var r = function(o) {\n        return function(s) {\n          var u = it(s), h = {\n            event: u,\n            preventSigmaDefault: function() {\n              u.preventSigmaDefault();\n            }\n          }, l = e.getNodeAtPosition(u);\n          if (l) return e.emit(\"\".concat(o, \"Node\"), W(W({}, h), {}, {\n            node: l\n          }));\n          if (e.settings.enableEdgeEvents) {\n            var d = e.getEdgeAtPoint(u.x, u.y);\n            if (d) return e.emit(\"\".concat(o, \"Edge\"), W(W({}, h), {}, {\n              edge: d\n            }));\n          }\n          return e.emit(\"\".concat(o, \"Stage\"), h);\n        };\n      };\n      return this.activeListeners.handleClick = r(\"click\"), this.activeListeners.handleRightClick = r(\"rightClick\"), this.activeListeners.handleDoubleClick = r(\"doubleClick\"), this.activeListeners.handleWheel = r(\"wheel\"), this.activeListeners.handleDown = r(\"down\"), this.activeListeners.handleUp = r(\"up\"), this.mouseCaptor.on(\"mousemove\", this.activeListeners.handleMove), this.mouseCaptor.on(\"mousemovebody\", this.activeListeners.handleMoveBody), this.mouseCaptor.on(\"click\", this.activeListeners.handleClick), this.mouseCaptor.on(\"rightClick\", this.activeListeners.handleRightClick), this.mouseCaptor.on(\"doubleClick\", this.activeListeners.handleDoubleClick), this.mouseCaptor.on(\"wheel\", this.activeListeners.handleWheel), this.mouseCaptor.on(\"mousedown\", this.activeListeners.handleDown), this.mouseCaptor.on(\"mouseup\", this.activeListeners.handleUp), this.mouseCaptor.on(\"mouseleave\", this.activeListeners.handleLeave), this.mouseCaptor.on(\"mouseenter\", this.activeListeners.handleEnter), this.touchCaptor.on(\"touchdown\", this.activeListeners.handleDown), this.touchCaptor.on(\"touchdown\", this.activeListeners.handleMove), this.touchCaptor.on(\"touchup\", this.activeListeners.handleUp), this.touchCaptor.on(\"touchmove\", this.activeListeners.handleMove), this.touchCaptor.on(\"tap\", this.activeListeners.handleClick), this.touchCaptor.on(\"doubletap\", this.activeListeners.handleDoubleClick), this.touchCaptor.on(\"touchmove\", this.activeListeners.handleMoveBody), this;\n    }\n    /**\n     * Method binding graph handlers\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"bindGraphHandlers\",\n    value: function() {\n      var e = this, r = this.graph, a = /* @__PURE__ */ new Set([\"x\", \"y\", \"zIndex\", \"type\"]);\n      return this.activeListeners.eachNodeAttributesUpdatedGraphUpdate = function(o) {\n        var s, u = (s = o.hints) === null || s === void 0 ? void 0 : s.attributes;\n        e.graph.forEachNode(function(l) {\n          return e.updateNode(l);\n        });\n        var h = !u || u.some(function(l) {\n          return a.has(l);\n        });\n        e.refresh({\n          partialGraph: {\n            nodes: r.nodes()\n          },\n          skipIndexation: !h,\n          schedule: !0\n        });\n      }, this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate = function(o) {\n        var s, u = (s = o.hints) === null || s === void 0 ? void 0 : s.attributes;\n        e.graph.forEachEdge(function(l) {\n          return e.updateEdge(l);\n        });\n        var h = u && [\"zIndex\", \"type\"].some(function(l) {\n          return u == null ? void 0 : u.includes(l);\n        });\n        e.refresh({\n          partialGraph: {\n            edges: r.edges()\n          },\n          skipIndexation: !h,\n          schedule: !0\n        });\n      }, this.activeListeners.addNodeGraphUpdate = function(o) {\n        var s = o.key;\n        e.addNode(s), e.refresh({\n          partialGraph: {\n            nodes: [s]\n          },\n          skipIndexation: !1,\n          schedule: !0\n        });\n      }, this.activeListeners.updateNodeGraphUpdate = function(o) {\n        var s = o.key;\n        e.refresh({\n          partialGraph: {\n            nodes: [s]\n          },\n          skipIndexation: !1,\n          schedule: !0\n        });\n      }, this.activeListeners.dropNodeGraphUpdate = function(o) {\n        var s = o.key;\n        e.removeNode(s), e.refresh({\n          schedule: !0\n        });\n      }, this.activeListeners.addEdgeGraphUpdate = function(o) {\n        var s = o.key;\n        e.addEdge(s), e.refresh({\n          partialGraph: {\n            edges: [s]\n          },\n          schedule: !0\n        });\n      }, this.activeListeners.updateEdgeGraphUpdate = function(o) {\n        var s = o.key;\n        e.refresh({\n          partialGraph: {\n            edges: [s]\n          },\n          skipIndexation: !1,\n          schedule: !0\n        });\n      }, this.activeListeners.dropEdgeGraphUpdate = function(o) {\n        var s = o.key;\n        e.removeEdge(s), e.refresh({\n          schedule: !0\n        });\n      }, this.activeListeners.clearEdgesGraphUpdate = function() {\n        e.clearEdgeState(), e.clearEdgeIndices(), e.refresh({\n          schedule: !0\n        });\n      }, this.activeListeners.clearGraphUpdate = function() {\n        e.clearEdgeState(), e.clearNodeState(), e.clearEdgeIndices(), e.clearNodeIndices(), e.refresh({\n          schedule: !0\n        });\n      }, r.on(\"nodeAdded\", this.activeListeners.addNodeGraphUpdate), r.on(\"nodeDropped\", this.activeListeners.dropNodeGraphUpdate), r.on(\"nodeAttributesUpdated\", this.activeListeners.updateNodeGraphUpdate), r.on(\"eachNodeAttributesUpdated\", this.activeListeners.eachNodeAttributesUpdatedGraphUpdate), r.on(\"edgeAdded\", this.activeListeners.addEdgeGraphUpdate), r.on(\"edgeDropped\", this.activeListeners.dropEdgeGraphUpdate), r.on(\"edgeAttributesUpdated\", this.activeListeners.updateEdgeGraphUpdate), r.on(\"eachEdgeAttributesUpdated\", this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate), r.on(\"edgesCleared\", this.activeListeners.clearEdgesGraphUpdate), r.on(\"cleared\", this.activeListeners.clearGraphUpdate), this;\n    }\n    /**\n     * Method used to unbind handlers from the graph.\n     *\n     * @return {undefined}\n     */\n  }, {\n    key: \"unbindGraphHandlers\",\n    value: function() {\n      var e = this.graph;\n      e.removeListener(\"nodeAdded\", this.activeListeners.addNodeGraphUpdate), e.removeListener(\"nodeDropped\", this.activeListeners.dropNodeGraphUpdate), e.removeListener(\"nodeAttributesUpdated\", this.activeListeners.updateNodeGraphUpdate), e.removeListener(\"eachNodeAttributesUpdated\", this.activeListeners.eachNodeAttributesUpdatedGraphUpdate), e.removeListener(\"edgeAdded\", this.activeListeners.addEdgeGraphUpdate), e.removeListener(\"edgeDropped\", this.activeListeners.dropEdgeGraphUpdate), e.removeListener(\"edgeAttributesUpdated\", this.activeListeners.updateEdgeGraphUpdate), e.removeListener(\"eachEdgeAttributesUpdated\", this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate), e.removeListener(\"edgesCleared\", this.activeListeners.clearEdgesGraphUpdate), e.removeListener(\"cleared\", this.activeListeners.clearGraphUpdate);\n    }\n    /**\n     * Method looking for an edge colliding with a given point at (x, y). Returns\n     * the key of the edge if any, or null else.\n     */\n  }, {\n    key: \"getEdgeAtPoint\",\n    value: function(e, r) {\n      var a = mi(this.webGLContexts.edges, this.frameBuffers.edges, e, r, this.pixelRatio, this.pickingDownSizingRatio), o = vi.apply(void 0, Pi(a)), s = this.itemIDsIndex[o];\n      return s && s.type === \"edge\" ? s.id : null;\n    }\n    /**\n     * Method used to process the whole graph's data.\n     *  - extent\n     *  - normalizationFunction\n     *  - compute node's coordinate\n     *  - labelgrid\n     *  - program data allocation\n     * @return {Sigma}\n     */\n  }, {\n    key: \"process\",\n    value: function() {\n      var e = this;\n      this.emit(\"beforeProcess\");\n      var r = this.graph, a = this.settings, o = this.getDimensions();\n      if (this.nodeExtent = Qa(this.graph), !this.settings.autoRescale) {\n        var s = o.width, u = o.height, h = this.nodeExtent, l = h.x, d = h.y;\n        this.nodeExtent = {\n          x: [(l[0] + l[1]) / 2 - s / 2, (l[0] + l[1]) / 2 + s / 2],\n          y: [(d[0] + d[1]) / 2 - u / 2, (d[0] + d[1]) / 2 + u / 2]\n        };\n      }\n      this.normalizationFunction = Di(this.customBBox || this.nodeExtent);\n      var c = new Gi(), y = tt(c.getState(), o, this.getGraphDimensions(), this.getStagePadding());\n      this.labelGrid.resizeAndClear(o, a.labelGridCellSize);\n      for (var A = {}, p = {}, S = {}, C = {}, _ = 1, k = r.nodes(), f = 0, g = k.length; f < g; f++) {\n        var w = k[f], T = this.nodeDataCache[w], x = r.getNodeAttributes(w);\n        T.x = x.x, T.y = x.y, this.normalizationFunction.applyTo(T), typeof T.label == \"string\" && !T.hidden && this.labelGrid.add(w, T.size, this.framedGraphToViewport(T, {\n          matrix: y\n        })), A[T.type] = (A[T.type] || 0) + 1;\n      }\n      this.labelGrid.organize();\n      for (var L in this.nodePrograms) {\n        if (!Pe.call(this.nodePrograms, L))\n          throw new Error('Sigma: could not find a suitable program for node type \"'.concat(L, '\"!'));\n        this.nodePrograms[L].reallocate(A[L] || 0), A[L] = 0;\n      }\n      this.settings.zIndex && this.nodeZExtent[0] !== this.nodeZExtent[1] && (k = Li(this.nodeZExtent, function(Q) {\n        return e.nodeDataCache[Q].zIndex;\n      }, k));\n      for (var F = 0, N = k.length; F < N; F++) {\n        var O = k[F];\n        p[O] = _, C[p[O]] = {\n          type: \"node\",\n          id: O\n        }, _++;\n        var m = this.nodeDataCache[O];\n        this.addNodeToProgram(O, p[O], A[m.type]++);\n      }\n      for (var j = {}, re = r.edges(), G = 0, b = re.length; G < b; G++) {\n        var v = re[G], M = this.edgeDataCache[v];\n        j[M.type] = (j[M.type] || 0) + 1;\n      }\n      this.settings.zIndex && this.edgeZExtent[0] !== this.edgeZExtent[1] && (re = Li(this.edgeZExtent, function(Q) {\n        return e.edgeDataCache[Q].zIndex;\n      }, re));\n      for (var K in this.edgePrograms) {\n        if (!Pe.call(this.edgePrograms, K))\n          throw new Error('Sigma: could not find a suitable program for edge type \"'.concat(K, '\"!'));\n        this.edgePrograms[K].reallocate(j[K] || 0), j[K] = 0;\n      }\n      for (var P = 0, E = re.length; P < E; P++) {\n        var z = re[P];\n        S[z] = _, C[S[z]] = {\n          type: \"edge\",\n          id: z\n        }, _++;\n        var J = this.edgeDataCache[z];\n        this.addEdgeToProgram(z, S[z], j[J.type]++);\n      }\n      return this.itemIDsIndex = C, this.nodeIndices = p, this.edgeIndices = S, this.emit(\"afterProcess\"), this;\n    }\n    /**\n     * Method that backports potential settings updates where it's needed.\n     * @private\n     */\n  }, {\n    key: \"handleSettingsUpdate\",\n    value: function(e) {\n      var r = this, a = this.settings;\n      if (this.camera.minRatio = a.minCameraRatio, this.camera.maxRatio = a.maxCameraRatio, this.camera.enabledZooming = a.enableCameraZooming, this.camera.enabledPanning = a.enableCameraPanning, this.camera.enabledRotation = a.enableCameraRotation, a.cameraPanBoundaries ? this.camera.clean = function(l) {\n        return r.cleanCameraState(l, a.cameraPanBoundaries && Kt(a.cameraPanBoundaries) === \"object\" ? a.cameraPanBoundaries : {});\n      } : this.camera.clean = null, this.camera.setState(this.camera.validateState(this.camera.getState())), e) {\n        if (e.edgeProgramClasses !== a.edgeProgramClasses) {\n          for (var o in a.edgeProgramClasses)\n            a.edgeProgramClasses[o] !== e.edgeProgramClasses[o] && this.registerEdgeProgram(o, a.edgeProgramClasses[o]);\n          for (var s in e.edgeProgramClasses)\n            a.edgeProgramClasses[s] || this.unregisterEdgeProgram(s);\n        }\n        if (e.nodeProgramClasses !== a.nodeProgramClasses || e.nodeHoverProgramClasses !== a.nodeHoverProgramClasses) {\n          for (var u in a.nodeProgramClasses)\n            (a.nodeProgramClasses[u] !== e.nodeProgramClasses[u] || a.nodeHoverProgramClasses[u] !== e.nodeHoverProgramClasses[u]) && this.registerNodeProgram(u, a.nodeProgramClasses[u], a.nodeHoverProgramClasses[u]);\n          for (var h in e.nodeProgramClasses)\n            a.nodeProgramClasses[h] || this.unregisterNodeProgram(h);\n        }\n      }\n      return this.mouseCaptor.setSettings(this.settings), this.touchCaptor.setSettings(this.settings), this;\n    }\n  }, {\n    key: \"cleanCameraState\",\n    value: function(e) {\n      var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, a = r.tolerance, o = a === void 0 ? 0 : a, s = r.boundaries, u = W({}, e), h = s || this.nodeExtent, l = We(h.x, 2), d = l[0], c = l[1], y = We(h.y, 2), A = y[0], p = y[1], S = [this.graphToViewport({\n        x: d,\n        y: A\n      }, {\n        cameraState: e\n      }), this.graphToViewport({\n        x: c,\n        y: A\n      }, {\n        cameraState: e\n      }), this.graphToViewport({\n        x: d,\n        y: p\n      }, {\n        cameraState: e\n      }), this.graphToViewport({\n        x: c,\n        y: p\n      }, {\n        cameraState: e\n      })], C = 1 / 0, _ = -1 / 0, k = 1 / 0, f = -1 / 0;\n      S.forEach(function(j) {\n        var re = j.x, G = j.y;\n        C = Math.min(C, re), _ = Math.max(_, re), k = Math.min(k, G), f = Math.max(f, G);\n      });\n      var g = _ - C, w = f - k, T = this.getDimensions(), x = T.width, L = T.height, F = 0, N = 0;\n      if (g >= x ? _ < x - o ? F = _ - (x - o) : C > o && (F = C - o) : _ > x + o ? F = _ - (x + o) : C < -o && (F = C + o), w >= L ? f < L - o ? N = f - (L - o) : k > o && (N = k - o) : f > L + o ? N = f - (L + o) : k < -o && (N = k + o), F || N) {\n        var O = this.viewportToFramedGraph({\n          x: 0,\n          y: 0\n        }, {\n          cameraState: e\n        }), m = this.viewportToFramedGraph({\n          x: F,\n          y: N\n        }, {\n          cameraState: e\n        });\n        F = m.x - O.x, N = m.y - O.y, u.x += F, u.y += N;\n      }\n      return u;\n    }\n    /**\n     * Method used to render labels.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"renderLabels\",\n    value: function() {\n      if (!this.settings.renderLabels) return this;\n      var e = this.camera.getState(), r = this.labelGrid.getLabelsToDisplay(e.ratio, this.settings.labelDensity);\n      xi(r, this.nodesWithForcedLabels), this.displayedNodeLabels = /* @__PURE__ */ new Set();\n      for (var a = this.canvasContexts.labels, o = 0, s = r.length; o < s; o++) {\n        var u = r[o], h = this.nodeDataCache[u];\n        if (!this.displayedNodeLabels.has(u) && !h.hidden) {\n          var l = this.framedGraphToViewport(h), d = l.x, c = l.y, y = this.scaleSize(h.size);\n          if (!(!h.forceLabel && y < this.settings.labelRenderedSizeThreshold) && !(d < -150 || d > this.width + yo || c < -50 || c > this.height + bo)) {\n            this.displayedNodeLabels.add(u);\n            var A = this.settings.defaultDrawNodeLabel, p = this.nodePrograms[h.type], S = (p == null ? void 0 : p.drawLabel) || A;\n            S(a, W(W({\n              key: u\n            }, h), {}, {\n              size: y,\n              x: d,\n              y: c\n            }), this.settings);\n          }\n        }\n      }\n      return this;\n    }\n    /**\n     * Method used to render edge labels, based on which node labels were\n     * rendered.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"renderEdgeLabels\",\n    value: function() {\n      if (!this.settings.renderEdgeLabels) return this;\n      var e = this.canvasContexts.edgeLabels;\n      e.clearRect(0, 0, this.width, this.height);\n      var r = mo({\n        graph: this.graph,\n        hoveredNode: this.hoveredNode,\n        displayedNodeLabels: this.displayedNodeLabels,\n        highlightedNodes: this.highlightedNodes\n      });\n      xi(r, this.edgesWithForcedLabels);\n      for (var a = /* @__PURE__ */ new Set(), o = 0, s = r.length; o < s; o++) {\n        var u = r[o], h = this.graph.extremities(u), l = this.nodeDataCache[h[0]], d = this.nodeDataCache[h[1]], c = this.edgeDataCache[u];\n        if (!a.has(u) && !(c.hidden || l.hidden || d.hidden)) {\n          var y = this.settings.defaultDrawEdgeLabel, A = this.edgePrograms[c.type], p = (A == null ? void 0 : A.drawLabel) || y;\n          p(e, W(W({\n            key: u\n          }, c), {}, {\n            size: this.scaleSize(c.size)\n          }), W(W(W({\n            key: h[0]\n          }, l), this.framedGraphToViewport(l)), {}, {\n            size: this.scaleSize(l.size)\n          }), W(W(W({\n            key: h[1]\n          }, d), this.framedGraphToViewport(d)), {}, {\n            size: this.scaleSize(d.size)\n          }), this.settings), a.add(u);\n        }\n      }\n      return this.displayedEdgeLabels = a, this;\n    }\n    /**\n     * Method used to render the highlighted nodes.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"renderHighlightedNodes\",\n    value: function() {\n      var e = this, r = this.canvasContexts.hovers;\n      r.clearRect(0, 0, this.width, this.height);\n      var a = function(y) {\n        var A = e.nodeDataCache[y], p = e.framedGraphToViewport(A), S = p.x, C = p.y, _ = e.scaleSize(A.size), k = e.settings.defaultDrawNodeHover, f = e.nodePrograms[A.type], g = (f == null ? void 0 : f.drawHover) || k;\n        g(r, W(W({\n          key: y\n        }, A), {}, {\n          size: _,\n          x: S,\n          y: C\n        }), e.settings);\n      }, o = [];\n      this.hoveredNode && !this.nodeDataCache[this.hoveredNode].hidden && o.push(this.hoveredNode), this.highlightedNodes.forEach(function(c) {\n        c !== e.hoveredNode && o.push(c);\n      }), o.forEach(function(c) {\n        return a(c);\n      });\n      var s = {};\n      o.forEach(function(c) {\n        var y = e.nodeDataCache[c].type;\n        s[y] = (s[y] || 0) + 1;\n      });\n      for (var u in this.nodeHoverPrograms)\n        this.nodeHoverPrograms[u].reallocate(s[u] || 0), s[u] = 0;\n      o.forEach(function(c) {\n        var y = e.nodeDataCache[c];\n        e.nodeHoverPrograms[y.type].process(0, s[y.type]++, y);\n      }), this.webGLContexts.hoverNodes.clear(this.webGLContexts.hoverNodes.COLOR_BUFFER_BIT);\n      var h = this.getRenderParams();\n      for (var l in this.nodeHoverPrograms) {\n        var d = this.nodeHoverPrograms[l];\n        d.render(h);\n      }\n    }\n    /**\n     * Method used to schedule a hover render.\n     *\n     */\n  }, {\n    key: \"scheduleHighlightedNodesRender\",\n    value: function() {\n      var e = this;\n      this.renderHighlightedNodesFrame || this.renderFrame || (this.renderHighlightedNodesFrame = requestAnimationFrame(function() {\n        e.renderHighlightedNodesFrame = null, e.renderHighlightedNodes(), e.renderEdgeLabels();\n      }));\n    }\n    /**\n     * Method used to render.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"render\",\n    value: function() {\n      var e = this;\n      this.emit(\"beforeRender\");\n      var r = function() {\n        return e.emit(\"afterRender\"), e;\n      };\n      if (this.renderFrame && (cancelAnimationFrame(this.renderFrame), this.renderFrame = null), this.resize(), this.needToProcess && this.process(), this.needToProcess = !1, this.clear(), this.pickingLayers.forEach(function(S) {\n        return e.resetWebGLTexture(S);\n      }), !this.graph.order) return r();\n      var a = this.mouseCaptor, o = this.camera.isAnimated() || a.isMoving || a.draggedEvents || a.currentWheelDirection, s = this.camera.getState(), u = this.getDimensions(), h = this.getGraphDimensions(), l = this.getStagePadding();\n      this.matrix = tt(s, u, h, l), this.invMatrix = tt(s, u, h, l, !0), this.correctionRatio = Xa(this.matrix, s, u), this.graphToViewportRatio = this.getGraphToViewportRatio();\n      var d = this.getRenderParams();\n      for (var c in this.nodePrograms) {\n        var y = this.nodePrograms[c];\n        y.render(d);\n      }\n      if (!this.settings.hideEdgesOnMove || !o)\n        for (var A in this.edgePrograms) {\n          var p = this.edgePrograms[A];\n          p.render(d);\n        }\n      return this.settings.hideLabelsOnMove && o || (this.renderLabels(), this.renderEdgeLabels(), this.renderHighlightedNodes()), r();\n    }\n    /**\n     * Add a node in the internal data structures.\n     * @private\n     * @param key The node's graphology ID\n     */\n  }, {\n    key: \"addNode\",\n    value: function(e) {\n      var r = Object.assign({}, this.graph.getNodeAttributes(e));\n      this.settings.nodeReducer && (r = this.settings.nodeReducer(e, r));\n      var a = wo(this.settings, e, r);\n      this.nodeDataCache[e] = a, this.nodesWithForcedLabels.delete(e), a.forceLabel && !a.hidden && this.nodesWithForcedLabels.add(e), this.highlightedNodes.delete(e), a.highlighted && !a.hidden && this.highlightedNodes.add(e), this.settings.zIndex && (a.zIndex < this.nodeZExtent[0] && (this.nodeZExtent[0] = a.zIndex), a.zIndex > this.nodeZExtent[1] && (this.nodeZExtent[1] = a.zIndex));\n    }\n    /**\n     * Update a node the internal data structures.\n     * @private\n     * @param key The node's graphology ID\n     */\n  }, {\n    key: \"updateNode\",\n    value: function(e) {\n      this.addNode(e);\n      var r = this.nodeDataCache[e];\n      this.normalizationFunction.applyTo(r);\n    }\n    /**\n     * Remove a node from the internal data structures.\n     * @private\n     * @param key The node's graphology ID\n     */\n  }, {\n    key: \"removeNode\",\n    value: function(e) {\n      delete this.nodeDataCache[e], delete this.nodeProgramIndex[e], this.highlightedNodes.delete(e), this.hoveredNode === e && (this.hoveredNode = null), this.nodesWithForcedLabels.delete(e);\n    }\n    /**\n     * Add an edge into the internal data structures.\n     * @private\n     * @param key The edge's graphology ID\n     */\n  }, {\n    key: \"addEdge\",\n    value: function(e) {\n      var r = Object.assign({}, this.graph.getEdgeAttributes(e));\n      this.settings.edgeReducer && (r = this.settings.edgeReducer(e, r));\n      var a = Eo(this.settings, e, r);\n      this.edgeDataCache[e] = a, this.edgesWithForcedLabels.delete(e), a.forceLabel && !a.hidden && this.edgesWithForcedLabels.add(e), this.settings.zIndex && (a.zIndex < this.edgeZExtent[0] && (this.edgeZExtent[0] = a.zIndex), a.zIndex > this.edgeZExtent[1] && (this.edgeZExtent[1] = a.zIndex));\n    }\n    /**\n     * Update an edge in the internal data structures.\n     * @private\n     * @param key The edge's graphology ID\n     */\n  }, {\n    key: \"updateEdge\",\n    value: function(e) {\n      this.addEdge(e);\n    }\n    /**\n     * Remove an edge from the internal data structures.\n     * @private\n     * @param key The edge's graphology ID\n     */\n  }, {\n    key: \"removeEdge\",\n    value: function(e) {\n      delete this.edgeDataCache[e], delete this.edgeProgramIndex[e], this.hoveredEdge === e && (this.hoveredEdge = null), this.edgesWithForcedLabels.delete(e);\n    }\n    /**\n     * Clear all indices related to nodes.\n     * @private\n     */\n  }, {\n    key: \"clearNodeIndices\",\n    value: function() {\n      this.labelGrid = new Fi(), this.nodeExtent = {\n        x: [0, 1],\n        y: [0, 1]\n      }, this.nodeDataCache = {}, this.edgeProgramIndex = {}, this.nodesWithForcedLabels = /* @__PURE__ */ new Set(), this.nodeZExtent = [1 / 0, -1 / 0], this.highlightedNodes = /* @__PURE__ */ new Set();\n    }\n    /**\n     * Clear all indices related to edges.\n     * @private\n     */\n  }, {\n    key: \"clearEdgeIndices\",\n    value: function() {\n      this.edgeDataCache = {}, this.edgeProgramIndex = {}, this.edgesWithForcedLabels = /* @__PURE__ */ new Set(), this.edgeZExtent = [1 / 0, -1 / 0];\n    }\n    /**\n     * Clear all indices.\n     * @private\n     */\n  }, {\n    key: \"clearIndices\",\n    value: function() {\n      this.clearEdgeIndices(), this.clearNodeIndices();\n    }\n    /**\n     * Clear all graph state related to nodes.\n     * @private\n     */\n  }, {\n    key: \"clearNodeState\",\n    value: function() {\n      this.displayedNodeLabels = /* @__PURE__ */ new Set(), this.highlightedNodes = /* @__PURE__ */ new Set(), this.hoveredNode = null;\n    }\n    /**\n     * Clear all graph state related to edges.\n     * @private\n     */\n  }, {\n    key: \"clearEdgeState\",\n    value: function() {\n      this.displayedEdgeLabels = /* @__PURE__ */ new Set(), this.highlightedNodes = /* @__PURE__ */ new Set(), this.hoveredEdge = null;\n    }\n    /**\n     * Clear all graph state.\n     * @private\n     */\n  }, {\n    key: \"clearState\",\n    value: function() {\n      this.clearEdgeState(), this.clearNodeState();\n    }\n    /**\n     * Add the node data to its program.\n     * @private\n     * @param node The node's graphology ID\n     * @param fingerprint A fingerprint used to identity the node with picking\n     * @param position The index where to place the node in the program\n     */\n  }, {\n    key: \"addNodeToProgram\",\n    value: function(e, r, a) {\n      var o = this.nodeDataCache[e], s = this.nodePrograms[o.type];\n      if (!s) throw new Error('Sigma: could not find a suitable program for node type \"'.concat(o.type, '\"!'));\n      s.process(r, a, o), this.nodeProgramIndex[e] = a;\n    }\n    /**\n     * Add the edge data to its program.\n     * @private\n     * @param edge The edge's graphology ID\n     * @param fingerprint A fingerprint used to identity the edge with picking\n     * @param position The index where to place the edge in the program\n     */\n  }, {\n    key: \"addEdgeToProgram\",\n    value: function(e, r, a) {\n      var o = this.edgeDataCache[e], s = this.edgePrograms[o.type];\n      if (!s) throw new Error('Sigma: could not find a suitable program for edge type \"'.concat(o.type, '\"!'));\n      var u = this.graph.extremities(e), h = this.nodeDataCache[u[0]], l = this.nodeDataCache[u[1]];\n      s.process(r, a, h, l, o), this.edgeProgramIndex[e] = a;\n    }\n    /**---------------------------------------------------------------------------\n     * Public API.\n     **---------------------------------------------------------------------------\n     */\n    /**\n     * Function used to get the render params.\n     *\n     * @return {RenderParams}\n     */\n  }, {\n    key: \"getRenderParams\",\n    value: function() {\n      return {\n        matrix: this.matrix,\n        invMatrix: this.invMatrix,\n        width: this.width,\n        height: this.height,\n        pixelRatio: this.pixelRatio,\n        zoomRatio: this.camera.ratio,\n        cameraAngle: this.camera.angle,\n        sizeRatio: 1 / this.scaleSize(),\n        correctionRatio: this.correctionRatio,\n        downSizingRatio: this.pickingDownSizingRatio,\n        minEdgeThickness: this.settings.minEdgeThickness,\n        antiAliasingFeather: this.settings.antiAliasingFeather\n      };\n    }\n    /**\n     * Function used to retrieve the actual stage padding value.\n     *\n     * @return {number}\n     */\n  }, {\n    key: \"getStagePadding\",\n    value: function() {\n      var e = this.settings, r = e.stagePadding, a = e.autoRescale;\n      return a && r || 0;\n    }\n    /**\n     * Function used to create a layer element.\n     *\n     * @param {string} id - Context's id.\n     * @param {string} tag - The HTML tag to use.\n     * @param options\n     * @return {Sigma}\n     */\n  }, {\n    key: \"createLayer\",\n    value: function(e, r) {\n      var a = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};\n      if (this.elements[e]) throw new Error('Sigma: a layer named \"'.concat(e, '\" already exists'));\n      var o = eo(r, {\n        position: \"absolute\"\n      }, {\n        class: \"sigma-\".concat(e)\n      });\n      return a.style && Object.assign(o.style, a.style), this.elements[e] = o, \"beforeLayer\" in a && a.beforeLayer ? this.elements[a.beforeLayer].before(o) : \"afterLayer\" in a && a.afterLayer ? this.elements[a.afterLayer].after(o) : this.container.appendChild(o), o;\n    }\n    /**\n     * Function used to create a canvas element.\n     *\n     * @param {string} id - Context's id.\n     * @param options\n     * @return {Sigma}\n     */\n  }, {\n    key: \"createCanvas\",\n    value: function(e) {\n      var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n      return this.createLayer(e, \"canvas\", r);\n    }\n    /**\n     * Function used to create a canvas context and add the relevant DOM elements.\n     *\n     * @param  {string} id - Context's id.\n     * @param  options\n     * @return {Sigma}\n     */\n  }, {\n    key: \"createCanvasContext\",\n    value: function(e) {\n      var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, a = this.createCanvas(e, r), o = {\n        preserveDrawingBuffer: !1,\n        antialias: !1\n      };\n      return this.canvasContexts[e] = a.getContext(\"2d\", o), this;\n    }\n    /**\n     * Function used to create a WebGL context and add the relevant DOM\n     * elements.\n     *\n     * @param  {string}  id      - Context's id.\n     * @param  {object?} options - #getContext params to override (optional)\n     * @return {WebGLRenderingContext}\n     */\n  }, {\n    key: \"createWebGLContext\",\n    value: function(e) {\n      var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, a = (r == null ? void 0 : r.canvas) || this.createCanvas(e, r);\n      r.hidden && a.remove();\n      var o = W({\n        preserveDrawingBuffer: !1,\n        antialias: !1\n      }, r), s;\n      s = a.getContext(\"webgl2\", o), s || (s = a.getContext(\"webgl\", o)), s || (s = a.getContext(\"experimental-webgl\", o));\n      var u = s;\n      if (this.webGLContexts[e] = u, u.blendFunc(u.ONE, u.ONE_MINUS_SRC_ALPHA), r.picking) {\n        this.pickingLayers.add(e);\n        var h = u.createFramebuffer();\n        if (!h) throw new Error(\"Sigma: cannot create a new frame buffer for layer \".concat(e));\n        this.frameBuffers[e] = h;\n      }\n      return u;\n    }\n    /**\n     * Function used to properly kill a layer.\n     *\n     * @param  {string} id - Layer id.\n     * @return {Sigma}\n     */\n  }, {\n    key: \"killLayer\",\n    value: function(e) {\n      var r = this.elements[e];\n      if (!r) throw new Error(\"Sigma: cannot kill layer \".concat(e, \", which does not exist\"));\n      if (this.webGLContexts[e]) {\n        var a, o = this.webGLContexts[e];\n        (a = o.getExtension(\"WEBGL_lose_context\")) === null || a === void 0 || a.loseContext(), delete this.webGLContexts[e];\n      } else this.canvasContexts[e] && delete this.canvasContexts[e];\n      return r.remove(), delete this.elements[e], this;\n    }\n    /**\n     * Method returning the renderer's camera.\n     *\n     * @return {Camera}\n     */\n  }, {\n    key: \"getCamera\",\n    value: function() {\n      return this.camera;\n    }\n    /**\n     * Method setting the renderer's camera.\n     *\n     * @param  {Camera} camera - New camera.\n     * @return {Sigma}\n     */\n  }, {\n    key: \"setCamera\",\n    value: function(e) {\n      this.unbindCameraHandlers(), this.camera = e, this.bindCameraHandlers();\n    }\n    /**\n     * Method returning the container DOM element.\n     *\n     * @return {HTMLElement}\n     */\n  }, {\n    key: \"getContainer\",\n    value: function() {\n      return this.container;\n    }\n    /**\n     * Method returning the renderer's graph.\n     *\n     * @return {Graph}\n     */\n  }, {\n    key: \"getGraph\",\n    value: function() {\n      return this.graph;\n    }\n    /**\n     * Method used to set the renderer's graph.\n     *\n     * @return {Graph}\n     */\n  }, {\n    key: \"setGraph\",\n    value: function(e) {\n      e !== this.graph && (this.hoveredNode && !e.hasNode(this.hoveredNode) && (this.hoveredNode = null), this.hoveredEdge && !e.hasEdge(this.hoveredEdge) && (this.hoveredEdge = null), this.unbindGraphHandlers(), this.checkEdgesEventsFrame !== null && (cancelAnimationFrame(this.checkEdgesEventsFrame), this.checkEdgesEventsFrame = null), this.graph = e, this.bindGraphHandlers(), this.refresh());\n    }\n    /**\n     * Method returning the mouse captor.\n     *\n     * @return {MouseCaptor}\n     */\n  }, {\n    key: \"getMouseCaptor\",\n    value: function() {\n      return this.mouseCaptor;\n    }\n    /**\n     * Method returning the touch captor.\n     *\n     * @return {TouchCaptor}\n     */\n  }, {\n    key: \"getTouchCaptor\",\n    value: function() {\n      return this.touchCaptor;\n    }\n    /**\n     * Method returning the current renderer's dimensions.\n     *\n     * @return {Dimensions}\n     */\n  }, {\n    key: \"getDimensions\",\n    value: function() {\n      return {\n        width: this.width,\n        height: this.height\n      };\n    }\n    /**\n     * Method returning the current graph's dimensions.\n     *\n     * @return {Dimensions}\n     */\n  }, {\n    key: \"getGraphDimensions\",\n    value: function() {\n      var e = this.customBBox || this.nodeExtent;\n      return {\n        width: e.x[1] - e.x[0] || 1,\n        height: e.y[1] - e.y[0] || 1\n      };\n    }\n    /**\n     * Method used to get all the sigma node attributes.\n     * It's useful for example to get the position of a node\n     * and to get values that are set by the nodeReducer\n     *\n     * @param  {string} key - The node's key.\n     * @return {NodeDisplayData | undefined} A copy of the desired node's attribute or undefined if not found\n     */\n  }, {\n    key: \"getNodeDisplayData\",\n    value: function(e) {\n      var r = this.nodeDataCache[e];\n      return r ? Object.assign({}, r) : void 0;\n    }\n    /**\n     * Method used to get all the sigma edge attributes.\n     * It's useful for example to get values that are set by the edgeReducer.\n     *\n     * @param  {string} key - The edge's key.\n     * @return {EdgeDisplayData | undefined} A copy of the desired edge's attribute or undefined if not found\n     */\n  }, {\n    key: \"getEdgeDisplayData\",\n    value: function(e) {\n      var r = this.edgeDataCache[e];\n      return r ? Object.assign({}, r) : void 0;\n    }\n    /**\n     * Method used to get the set of currently displayed node labels.\n     *\n     * @return {Set<string>} A set of node keys whose label is displayed.\n     */\n  }, {\n    key: \"getNodeDisplayedLabels\",\n    value: function() {\n      return new Set(this.displayedNodeLabels);\n    }\n    /**\n     * Method used to get the set of currently displayed edge labels.\n     *\n     * @return {Set<string>} A set of edge keys whose label is displayed.\n     */\n  }, {\n    key: \"getEdgeDisplayedLabels\",\n    value: function() {\n      return new Set(this.displayedEdgeLabels);\n    }\n    /**\n     * Method returning a copy of the settings collection.\n     *\n     * @return {Settings} A copy of the settings collection.\n     */\n  }, {\n    key: \"getSettings\",\n    value: function() {\n      return W({}, this.settings);\n    }\n    /**\n     * Method returning the current value for a given setting key.\n     *\n     * @param  {string} key - The setting key to get.\n     * @return {any} The value attached to this setting key or undefined if not found\n     */\n  }, {\n    key: \"getSetting\",\n    value: function(e) {\n      return this.settings[e];\n    }\n    /**\n     * Method setting the value of a given setting key. Note that this will schedule\n     * a new render next frame.\n     *\n     * @param  {string} key - The setting key to set.\n     * @param  {any}    value - The value to set.\n     * @return {Sigma}\n     */\n  }, {\n    key: \"setSetting\",\n    value: function(e, r) {\n      var a = W({}, this.settings);\n      return this.settings[e] = r, Gt(this.settings), this.handleSettingsUpdate(a), this.scheduleRefresh(), this;\n    }\n    /**\n     * Method updating the value of a given setting key using the provided function.\n     * Note that this will schedule a new render next frame.\n     *\n     * @param  {string}   key     - The setting key to set.\n     * @param  {function} updater - The update function.\n     * @return {Sigma}\n     */\n  }, {\n    key: \"updateSetting\",\n    value: function(e, r) {\n      return this.setSetting(e, r(this.settings[e])), this;\n    }\n    /**\n     * Method setting multiple settings at once.\n     *\n     * @param  {Partial<Settings>} settings - The settings to set.\n     * @return {Sigma}\n     */\n  }, {\n    key: \"setSettings\",\n    value: function(e) {\n      var r = W({}, this.settings);\n      return this.settings = W(W({}, this.settings), e), Gt(this.settings), this.handleSettingsUpdate(r), this.scheduleRefresh(), this;\n    }\n    /**\n     * Method used to resize the renderer.\n     *\n     * @param  {boolean} force - If true, then resize is processed even if size is unchanged (optional).\n     * @return {Sigma}\n     */\n  }, {\n    key: \"resize\",\n    value: function(e) {\n      var r = this.width, a = this.height;\n      if (this.width = this.container.offsetWidth, this.height = this.container.offsetHeight, this.pixelRatio = Ri(), this.width === 0)\n        if (this.settings.allowInvalidContainer) this.width = 1;\n        else throw new Error(\"Sigma: Container has no width. You can set the allowInvalidContainer setting to true to stop seeing this error.\");\n      if (this.height === 0)\n        if (this.settings.allowInvalidContainer) this.height = 1;\n        else throw new Error(\"Sigma: Container has no height. You can set the allowInvalidContainer setting to true to stop seeing this error.\");\n      if (!e && r === this.width && a === this.height) return this;\n      for (var o in this.elements) {\n        var s = this.elements[o];\n        s.style.width = this.width + \"px\", s.style.height = this.height + \"px\";\n      }\n      for (var u in this.canvasContexts)\n        this.elements[u].setAttribute(\"width\", this.width * this.pixelRatio + \"px\"), this.elements[u].setAttribute(\"height\", this.height * this.pixelRatio + \"px\"), this.pixelRatio !== 1 && this.canvasContexts[u].scale(this.pixelRatio, this.pixelRatio);\n      for (var h in this.webGLContexts) {\n        this.elements[h].setAttribute(\"width\", this.width * this.pixelRatio + \"px\"), this.elements[h].setAttribute(\"height\", this.height * this.pixelRatio + \"px\");\n        var l = this.webGLContexts[h];\n        if (l.viewport(0, 0, this.width * this.pixelRatio, this.height * this.pixelRatio), this.pickingLayers.has(h)) {\n          var d = this.textures[h];\n          d && l.deleteTexture(d);\n        }\n      }\n      return this.emit(\"resize\"), this;\n    }\n    /**\n     * Method used to clear all the canvases.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"clear\",\n    value: function() {\n      return this.emit(\"beforeClear\"), this.webGLContexts.nodes.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER, null), this.webGLContexts.nodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT), this.webGLContexts.edges.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER, null), this.webGLContexts.edges.clear(WebGLRenderingContext.COLOR_BUFFER_BIT), this.webGLContexts.hoverNodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT), this.canvasContexts.labels.clearRect(0, 0, this.width, this.height), this.canvasContexts.hovers.clearRect(0, 0, this.width, this.height), this.canvasContexts.edgeLabels.clearRect(0, 0, this.width, this.height), this.emit(\"afterClear\"), this;\n    }\n    /**\n     * Method used to refresh, i.e. force the renderer to reprocess graph\n     * data and render, but keep the state.\n     * - if a partialGraph is provided, we only reprocess those nodes & edges.\n     * - if schedule is TRUE, we schedule a render instead of sync render\n     * - if skipIndexation is TRUE, then labelGrid & program indexation are skipped (can be used if you haven't modify x, y, zIndex & size)\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"refresh\",\n    value: function(e) {\n      var r = this, a = (e == null ? void 0 : e.skipIndexation) !== void 0 ? e == null ? void 0 : e.skipIndexation : !1, o = (e == null ? void 0 : e.schedule) !== void 0 ? e.schedule : !1, s = !e || !e.partialGraph;\n      if (s)\n        this.clearEdgeIndices(), this.clearNodeIndices(), this.graph.forEachNode(function(f) {\n          return r.addNode(f);\n        }), this.graph.forEachEdge(function(f) {\n          return r.addEdge(f);\n        });\n      else {\n        for (var u, h, l = ((u = e.partialGraph) === null || u === void 0 ? void 0 : u.nodes) || [], d = 0, c = (l == null ? void 0 : l.length) || 0; d < c; d++) {\n          var y = l[d];\n          if (this.updateNode(y), a) {\n            var A = this.nodeProgramIndex[y];\n            if (A === void 0) throw new Error('Sigma: node \"'.concat(y, `\" can't be repaint`));\n            this.addNodeToProgram(y, this.nodeIndices[y], A);\n          }\n        }\n        for (var p = (e == null || (h = e.partialGraph) === null || h === void 0 ? void 0 : h.edges) || [], S = 0, C = p.length; S < C; S++) {\n          var _ = p[S];\n          if (this.updateEdge(_), a) {\n            var k = this.edgeProgramIndex[_];\n            if (k === void 0) throw new Error('Sigma: edge \"'.concat(_, `\" can't be repaint`));\n            this.addEdgeToProgram(_, this.edgeIndices[_], k);\n          }\n        }\n      }\n      return (s || !a) && (this.needToProcess = !0), o ? this.scheduleRender() : this.render(), this;\n    }\n    /**\n     * Method used to schedule a render at the next available frame.\n     * This method can be safely called on a same frame because it basically\n     * debounces refresh to the next frame.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"scheduleRender\",\n    value: function() {\n      var e = this;\n      return this.renderFrame || (this.renderFrame = requestAnimationFrame(function() {\n        e.render();\n      })), this;\n    }\n    /**\n     * Method used to schedule a refresh (i.e. fully reprocess graph data and render)\n     * at the next available frame.\n     * This method can be safely called on a same frame because it basically\n     * debounces refresh to the next frame.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"scheduleRefresh\",\n    value: function(e) {\n      return this.refresh(W(W({}, e), {}, {\n        schedule: !0\n      }));\n    }\n    /**\n     * Method used to (un)zoom, while preserving the position of a viewport point.\n     * Used for instance to zoom \"on the mouse cursor\".\n     *\n     * @param viewportTarget\n     * @param newRatio\n     * @return {CameraState}\n     */\n  }, {\n    key: \"getViewportZoomedState\",\n    value: function(e, r) {\n      var a = this.camera.getState(), o = a.ratio, s = a.angle, u = a.x, h = a.y, l = this.settings, d = l.minCameraRatio, c = l.maxCameraRatio;\n      typeof c == \"number\" && (r = Math.min(r, c)), typeof d == \"number\" && (r = Math.max(r, d));\n      var y = r / o, A = {\n        x: this.width / 2,\n        y: this.height / 2\n      }, p = this.viewportToFramedGraph(e), S = this.viewportToFramedGraph(A);\n      return {\n        angle: s,\n        x: (p.x - S.x) * (1 - y) + u,\n        y: (p.y - S.y) * (1 - y) + h,\n        ratio: r\n      };\n    }\n    /**\n     * Method returning the abstract rectangle containing the graph according\n     * to the camera's state.\n     *\n     * @return {object} - The view's rectangle.\n     */\n  }, {\n    key: \"viewRectangle\",\n    value: function() {\n      var e = this.viewportToFramedGraph({\n        x: 0,\n        y: 0\n      }), r = this.viewportToFramedGraph({\n        x: this.width,\n        y: 0\n      }), a = this.viewportToFramedGraph({\n        x: 0,\n        y: this.height\n      });\n      return {\n        x1: e.x,\n        y1: e.y,\n        x2: r.x,\n        y2: r.y,\n        height: r.y - a.y\n      };\n    }\n    /**\n     * Method returning the coordinates of a point from the framed graph system to the viewport system. It allows\n     * overriding anything that is used to get the translation matrix, or even the matrix itself.\n     *\n     * Be careful if overriding dimensions, padding or cameraState, as the computation of the matrix is not the lightest\n     * of computations.\n     */\n  }, {\n    key: \"framedGraphToViewport\",\n    value: function(e) {\n      var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, a = !!r.cameraState || !!r.viewportDimensions || !!r.graphDimensions, o = r.matrix ? r.matrix : a ? tt(r.cameraState || this.camera.getState(), r.viewportDimensions || this.getDimensions(), r.graphDimensions || this.getGraphDimensions(), r.padding || this.getStagePadding()) : this.matrix, s = Yt(o, e);\n      return {\n        x: (1 + s.x) * this.width / 2,\n        y: (1 - s.y) * this.height / 2\n      };\n    }\n    /**\n     * Method returning the coordinates of a point from the viewport system to the framed graph system. It allows\n     * overriding anything that is used to get the translation matrix, or even the matrix itself.\n     *\n     * Be careful if overriding dimensions, padding or cameraState, as the computation of the matrix is not the lightest\n     * of computations.\n     */\n  }, {\n    key: \"viewportToFramedGraph\",\n    value: function(e) {\n      var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, a = !!r.cameraState || !!r.viewportDimensions || !r.graphDimensions, o = r.matrix ? r.matrix : a ? tt(r.cameraState || this.camera.getState(), r.viewportDimensions || this.getDimensions(), r.graphDimensions || this.getGraphDimensions(), r.padding || this.getStagePadding(), !0) : this.invMatrix, s = Yt(o, {\n        x: e.x / this.width * 2 - 1,\n        y: 1 - e.y / this.height * 2\n      });\n      return isNaN(s.x) && (s.x = 0), isNaN(s.y) && (s.y = 0), s;\n    }\n    /**\n     * Method used to translate a point's coordinates from the viewport system (pixel distance from the top-left of the\n     * stage) to the graph system (the reference system of data as they are in the given graph instance).\n     *\n     * This method accepts an optional camera which can be useful if you need to translate coordinates\n     * based on a different view than the one being currently being displayed on screen.\n     *\n     * @param {Coordinates}                  viewportPoint\n     * @param {CoordinateConversionOverride} override\n     */\n  }, {\n    key: \"viewportToGraph\",\n    value: function(e) {\n      var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n      return this.normalizationFunction.inverse(this.viewportToFramedGraph(e, r));\n    }\n    /**\n     * Method used to translate a point's coordinates from the graph system (the reference system of data as they are in\n     * the given graph instance) to the viewport system (pixel distance from the top-left of the stage).\n     *\n     * This method accepts an optional camera which can be useful if you need to translate coordinates\n     * based on a different view than the one being currently being displayed on screen.\n     *\n     * @param {Coordinates}                  graphPoint\n     * @param {CoordinateConversionOverride} override\n     */\n  }, {\n    key: \"graphToViewport\",\n    value: function(e) {\n      var r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n      return this.framedGraphToViewport(this.normalizationFunction(e), r);\n    }\n    /**\n     * Method returning the distance multiplier between the graph system and the\n     * viewport system.\n     */\n  }, {\n    key: \"getGraphToViewportRatio\",\n    value: function() {\n      var e = {\n        x: 0,\n        y: 0\n      }, r = {\n        x: 1,\n        y: 1\n      }, a = Math.sqrt(Math.pow(e.x - r.x, 2) + Math.pow(e.y - r.y, 2)), o = this.graphToViewport(e), s = this.graphToViewport(r), u = Math.sqrt(Math.pow(o.x - s.x, 2) + Math.pow(o.y - s.y, 2));\n      return u / a;\n    }\n    /**\n     * Method returning the graph's bounding box.\n     *\n     * @return {{ x: Extent, y: Extent }}\n     */\n  }, {\n    key: \"getBBox\",\n    value: function() {\n      return this.nodeExtent;\n    }\n    /**\n     * Method returning the graph's custom bounding box, if any.\n     *\n     * @return {{ x: Extent, y: Extent } | null}\n     */\n  }, {\n    key: \"getCustomBBox\",\n    value: function() {\n      return this.customBBox;\n    }\n    /**\n     * Method used to override the graph's bounding box with a custom one. Give `null` as the argument to stop overriding.\n     *\n     * @return {Sigma}\n     */\n  }, {\n    key: \"setCustomBBox\",\n    value: function(e) {\n      return this.customBBox = e, this.scheduleRender(), this;\n    }\n    /**\n     * Method used to shut the container & release event listeners.\n     *\n     * @return {undefined}\n     */\n  }, {\n    key: \"kill\",\n    value: function() {\n      this.emit(\"kill\"), this.removeAllListeners(), this.unbindCameraHandlers(), window.removeEventListener(\"resize\", this.activeListeners.handleResize), this.mouseCaptor.kill(), this.touchCaptor.kill(), this.unbindGraphHandlers(), this.clearIndices(), this.clearState(), this.nodeDataCache = {}, this.edgeDataCache = {}, this.highlightedNodes.clear(), this.renderFrame && (cancelAnimationFrame(this.renderFrame), this.renderFrame = null), this.renderHighlightedNodesFrame && (cancelAnimationFrame(this.renderHighlightedNodesFrame), this.renderHighlightedNodesFrame = null);\n      for (var e = this.container; e.firstChild; ) e.removeChild(e.firstChild);\n      for (var r in this.nodePrograms)\n        this.nodePrograms[r].kill();\n      for (var a in this.nodeHoverPrograms)\n        this.nodeHoverPrograms[a].kill();\n      for (var o in this.edgePrograms)\n        this.edgePrograms[o].kill();\n      this.nodePrograms = {}, this.nodeHoverPrograms = {}, this.edgePrograms = {};\n      for (var s in this.elements)\n        this.killLayer(s);\n      this.canvasContexts = {}, this.webGLContexts = {}, this.elements = {};\n    }\n    /**\n     * Method used to scale the given size according to the camera's ratio, i.e.\n     * zooming state.\n     *\n     * @param  {number?} size -        The size to scale (node size, edge thickness etc.).\n     * @param  {number?} cameraRatio - A camera ratio (defaults to the actual camera ratio).\n     * @return {number}              - The scaled size.\n     */\n  }, {\n    key: \"scaleSize\",\n    value: function() {\n      var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 1, r = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : this.camera.ratio;\n      return e / this.settings.zoomToSizeRatioFunction(r) * (this.getSetting(\"itemSizesReference\") === \"positions\" ? r * this.graphToViewportRatio : 1);\n    }\n    /**\n     * Method that returns the collection of all used canvases.\n     * At the moment, the instantiated canvases are the following, and in the\n     * following order in the DOM:\n     * - `edges`\n     * - `nodes`\n     * - `edgeLabels`\n     * - `labels`\n     * - `hovers`\n     * - `hoverNodes`\n     * - `mouse`\n     *\n     * @return {PlainObject<HTMLCanvasElement>} - The collection of canvases.\n     */\n  }, {\n    key: \"getCanvases\",\n    value: function() {\n      var e = {};\n      for (var r in this.elements) this.elements[r] instanceof HTMLCanvasElement && (e[r] = this.elements[r]);\n      return e;\n    }\n  }]);\n}(ri), To = _o, nt = {}, Oi;\nfunction Dr() {\n  if (Oi) return nt;\n  Oi = 1;\n  function n(e) {\n    return typeof e != \"number\" || isNaN(e) ? 1 : e;\n  }\n  function i(e, r) {\n    var a = {}, o = function(h) {\n      return typeof h == \"undefined\" ? r : h;\n    };\n    typeof r == \"function\" && (o = r);\n    var s = function(h) {\n      return o(h[e]);\n    }, u = function() {\n      return o(void 0);\n    };\n    return typeof e == \"string\" ? (a.fromAttributes = s, a.fromGraph = function(h, l) {\n      return s(h.getNodeAttributes(l));\n    }, a.fromEntry = function(h, l) {\n      return s(l);\n    }) : typeof e == \"function\" ? (a.fromAttributes = function() {\n      throw new Error(\n        \"graphology-utils/getters/createNodeValueGetter: irrelevant usage.\"\n      );\n    }, a.fromGraph = function(h, l) {\n      return o(\n        e(l, h.getNodeAttributes(l))\n      );\n    }, a.fromEntry = function(h, l) {\n      return o(e(h, l));\n    }) : (a.fromAttributes = u, a.fromGraph = u, a.fromEntry = u), a;\n  }\n  function t(e, r) {\n    var a = {}, o = function(h) {\n      return typeof h == \"undefined\" ? r : h;\n    };\n    typeof r == \"function\" && (o = r);\n    var s = function(h) {\n      return o(h[e]);\n    }, u = function() {\n      return o(void 0);\n    };\n    return typeof e == \"string\" ? (a.fromAttributes = s, a.fromGraph = function(h, l) {\n      return s(h.getEdgeAttributes(l));\n    }, a.fromEntry = function(h, l) {\n      return s(l);\n    }, a.fromPartialEntry = a.fromEntry, a.fromMinimalEntry = a.fromEntry) : typeof e == \"function\" ? (a.fromAttributes = function() {\n      throw new Error(\n        \"graphology-utils/getters/createEdgeValueGetter: irrelevant usage.\"\n      );\n    }, a.fromGraph = function(h, l) {\n      var d = h.extremities(l);\n      return o(\n        e(\n          l,\n          h.getEdgeAttributes(l),\n          d[0],\n          d[1],\n          h.getNodeAttributes(d[0]),\n          h.getNodeAttributes(d[1]),\n          h.isUndirected(l)\n        )\n      );\n    }, a.fromEntry = function(h, l, d, c, y, A, p) {\n      return o(e(h, l, d, c, y, A, p));\n    }, a.fromPartialEntry = function(h, l, d, c) {\n      return o(e(h, l, d, c));\n    }, a.fromMinimalEntry = function(h, l) {\n      return o(e(h, l));\n    }) : (a.fromAttributes = u, a.fromGraph = u, a.fromEntry = u, a.fromMinimalEntry = u), a;\n  }\n  return nt.createNodeValueGetter = i, nt.createEdgeValueGetter = t, nt.createEdgeWeightGetter = function(e) {\n    return t(e, n);\n  }, nt;\n}\nvar It, zi;\nfunction So() {\n  if (zi) return It;\n  zi = 1;\n  var n = 0, i = 1, t = 2, e = 3, r = 4, a = 5, o = 6, s = 7, u = 8, h = 9, l = 0, d = 1, c = 2, y = 0, A = 1, p = 2, S = 3, C = 4, _ = 5, k = 6, f = 7, g = 8, w = 3, T = 10, x = 3, L = 9, F = 10;\n  return It = function(O, m, j) {\n    var re, G, b, v, M, K, P, E, z, J, Q = m.length, se = j.length, ne = O.adjustSizes, H = O.barnesHutTheta * O.barnesHutTheta, ae, X, te, ee, ge, Y, U, R = [];\n    for (b = 0; b < Q; b += T)\n      m[b + r] = m[b + t], m[b + a] = m[b + e], m[b + t] = 0, m[b + e] = 0;\n    if (O.outboundAttractionDistribution) {\n      for (ae = 0, b = 0; b < Q; b += T)\n        ae += m[b + o];\n      ae /= Q / T;\n    }\n    if (O.barnesHutOptimize) {\n      var ie = 1 / 0, le = -1 / 0, V = 1 / 0, q = -1 / 0, D, pe, Ce;\n      for (b = 0; b < Q; b += T)\n        ie = Math.min(ie, m[b + n]), le = Math.max(le, m[b + n]), V = Math.min(V, m[b + i]), q = Math.max(q, m[b + i]);\n      var ve = le - ie, Te = q - V;\n      for (ve > Te ? (V -= (ve - Te) / 2, q = V + ve) : (ie -= (Te - ve) / 2, le = ie + Te), R[0 + y] = -1, R[0 + A] = (ie + le) / 2, R[0 + p] = (V + q) / 2, R[0 + S] = Math.max(le - ie, q - V), R[0 + C] = -1, R[0 + _] = -1, R[0 + k] = 0, R[0 + f] = 0, R[0 + g] = 0, re = 1, b = 0; b < Q; b += T)\n        for (G = 0, Ce = w; ; )\n          if (R[G + _] >= 0) {\n            m[b + n] < R[G + A] ? m[b + i] < R[G + p] ? D = R[G + _] : D = R[G + _] + L : m[b + i] < R[G + p] ? D = R[G + _] + L * 2 : D = R[G + _] + L * 3, R[G + f] = (R[G + f] * R[G + k] + m[b + n] * m[b + o]) / (R[G + k] + m[b + o]), R[G + g] = (R[G + g] * R[G + k] + m[b + i] * m[b + o]) / (R[G + k] + m[b + o]), R[G + k] += m[b + o], G = D;\n            continue;\n          } else if (R[G + y] < 0) {\n            R[G + y] = b;\n            break;\n          } else {\n            if (R[G + _] = re * L, E = R[G + S] / 2, z = R[G + _], R[z + y] = -1, R[z + A] = R[G + A] - E, R[z + p] = R[G + p] - E, R[z + S] = E, R[z + C] = z + L, R[z + _] = -1, R[z + k] = 0, R[z + f] = 0, R[z + g] = 0, z += L, R[z + y] = -1, R[z + A] = R[G + A] - E, R[z + p] = R[G + p] + E, R[z + S] = E, R[z + C] = z + L, R[z + _] = -1, R[z + k] = 0, R[z + f] = 0, R[z + g] = 0, z += L, R[z + y] = -1, R[z + A] = R[G + A] + E, R[z + p] = R[G + p] - E, R[z + S] = E, R[z + C] = z + L, R[z + _] = -1, R[z + k] = 0, R[z + f] = 0, R[z + g] = 0, z += L, R[z + y] = -1, R[z + A] = R[G + A] + E, R[z + p] = R[G + p] + E, R[z + S] = E, R[z + C] = R[G + C], R[z + _] = -1, R[z + k] = 0, R[z + f] = 0, R[z + g] = 0, re += 4, m[R[G + y] + n] < R[G + A] ? m[R[G + y] + i] < R[G + p] ? D = R[G + _] : D = R[G + _] + L : m[R[G + y] + i] < R[G + p] ? D = R[G + _] + L * 2 : D = R[G + _] + L * 3, R[G + k] = m[R[G + y] + o], R[G + f] = m[R[G + y] + n], R[G + g] = m[R[G + y] + i], R[D + y] = R[G + y], R[G + y] = -1, m[b + n] < R[G + A] ? m[b + i] < R[G + p] ? pe = R[G + _] : pe = R[G + _] + L : m[b + i] < R[G + p] ? pe = R[G + _] + L * 2 : pe = R[G + _] + L * 3, D === pe)\n              if (Ce--) {\n                G = D;\n                continue;\n              } else {\n                Ce = w;\n                break;\n              }\n            R[pe + y] = b;\n            break;\n          }\n    }\n    if (O.barnesHutOptimize)\n      for (X = O.scalingRatio, b = 0; b < Q; b += T)\n        for (G = 0; ; )\n          if (R[G + _] >= 0)\n            if (Y = Math.pow(\n              m[b + n] - R[G + f],\n              2\n            ) + Math.pow(\n              m[b + i] - R[G + g],\n              2\n            ), J = R[G + S], 4 * J * J / Y < H) {\n              if (te = m[b + n] - R[G + f], ee = m[b + i] - R[G + g], ne === !0 ? Y > 0 ? (U = X * m[b + o] * R[G + k] / Y, m[b + t] += te * U, m[b + e] += ee * U) : Y < 0 && (U = -X * m[b + o] * R[G + k] / Math.sqrt(Y), m[b + t] += te * U, m[b + e] += ee * U) : Y > 0 && (U = X * m[b + o] * R[G + k] / Y, m[b + t] += te * U, m[b + e] += ee * U), G = R[G + C], G < 0) break;\n              continue;\n            } else {\n              G = R[G + _];\n              continue;\n            }\n          else {\n            if (K = R[G + y], K >= 0 && K !== b && (te = m[b + n] - m[K + n], ee = m[b + i] - m[K + i], Y = te * te + ee * ee, ne === !0 ? Y > 0 ? (U = X * m[b + o] * m[K + o] / Y, m[b + t] += te * U, m[b + e] += ee * U) : Y < 0 && (U = -X * m[b + o] * m[K + o] / Math.sqrt(Y), m[b + t] += te * U, m[b + e] += ee * U) : Y > 0 && (U = X * m[b + o] * m[K + o] / Y, m[b + t] += te * U, m[b + e] += ee * U)), G = R[G + C], G < 0) break;\n            continue;\n          }\n    else\n      for (X = O.scalingRatio, v = 0; v < Q; v += T)\n        for (M = 0; M < v; M += T)\n          te = m[v + n] - m[M + n], ee = m[v + i] - m[M + i], ne === !0 ? (Y = Math.sqrt(te * te + ee * ee) - m[v + u] - m[M + u], Y > 0 ? (U = X * m[v + o] * m[M + o] / Y / Y, m[v + t] += te * U, m[v + e] += ee * U, m[M + t] -= te * U, m[M + e] -= ee * U) : Y < 0 && (U = 100 * X * m[v + o] * m[M + o], m[v + t] += te * U, m[v + e] += ee * U, m[M + t] -= te * U, m[M + e] -= ee * U)) : (Y = Math.sqrt(te * te + ee * ee), Y > 0 && (U = X * m[v + o] * m[M + o] / Y / Y, m[v + t] += te * U, m[v + e] += ee * U, m[M + t] -= te * U, m[M + e] -= ee * U));\n    for (z = O.gravity / O.scalingRatio, X = O.scalingRatio, b = 0; b < Q; b += T)\n      U = 0, te = m[b + n], ee = m[b + i], Y = Math.sqrt(Math.pow(te, 2) + Math.pow(ee, 2)), O.strongGravityMode ? Y > 0 && (U = X * m[b + o] * z) : Y > 0 && (U = X * m[b + o] * z / Y), m[b + t] -= te * U, m[b + e] -= ee * U;\n    for (X = 1 * (O.outboundAttractionDistribution ? ae : 1), P = 0; P < se; P += x)\n      v = j[P + l], M = j[P + d], E = j[P + c], ge = Math.pow(E, O.edgeWeightInfluence), te = m[v + n] - m[M + n], ee = m[v + i] - m[M + i], ne === !0 ? (Y = Math.sqrt(te * te + ee * ee) - m[v + u] - m[M + u], O.linLogMode ? O.outboundAttractionDistribution ? Y > 0 && (U = -X * ge * Math.log(1 + Y) / Y / m[v + o]) : Y > 0 && (U = -X * ge * Math.log(1 + Y) / Y) : O.outboundAttractionDistribution ? Y > 0 && (U = -X * ge / m[v + o]) : Y > 0 && (U = -X * ge)) : (Y = Math.sqrt(Math.pow(te, 2) + Math.pow(ee, 2)), O.linLogMode ? O.outboundAttractionDistribution ? Y > 0 && (U = -X * ge * Math.log(1 + Y) / Y / m[v + o]) : Y > 0 && (U = -X * ge * Math.log(1 + Y) / Y) : O.outboundAttractionDistribution ? (Y = 1, U = -X * ge / m[v + o]) : (Y = 1, U = -X * ge)), Y > 0 && (m[v + t] += te * U, m[v + e] += ee * U, m[M + t] -= te * U, m[M + e] -= ee * U);\n    var he, me, Oe, ye, Re, Le;\n    if (ne === !0)\n      for (b = 0; b < Q; b += T)\n        m[b + h] !== 1 && (he = Math.sqrt(\n          Math.pow(m[b + t], 2) + Math.pow(m[b + e], 2)\n        ), he > F && (m[b + t] = m[b + t] * F / he, m[b + e] = m[b + e] * F / he), me = m[b + o] * Math.sqrt(\n          (m[b + r] - m[b + t]) * (m[b + r] - m[b + t]) + (m[b + a] - m[b + e]) * (m[b + a] - m[b + e])\n        ), Oe = Math.sqrt(\n          (m[b + r] + m[b + t]) * (m[b + r] + m[b + t]) + (m[b + a] + m[b + e]) * (m[b + a] + m[b + e])\n        ) / 2, ye = 0.1 * Math.log(1 + Oe) / (1 + Math.sqrt(me)), Re = m[b + n] + m[b + t] * (ye / O.slowDown), m[b + n] = Re, Le = m[b + i] + m[b + e] * (ye / O.slowDown), m[b + i] = Le);\n    else\n      for (b = 0; b < Q; b += T)\n        m[b + h] !== 1 && (me = m[b + o] * Math.sqrt(\n          (m[b + r] - m[b + t]) * (m[b + r] - m[b + t]) + (m[b + a] - m[b + e]) * (m[b + a] - m[b + e])\n        ), Oe = Math.sqrt(\n          (m[b + r] + m[b + t]) * (m[b + r] + m[b + t]) + (m[b + a] + m[b + e]) * (m[b + a] + m[b + e])\n        ) / 2, ye = m[b + s] * Math.log(1 + Oe) / (1 + Math.sqrt(me)), m[b + s] = Math.min(\n          1,\n          Math.sqrt(\n            ye * (Math.pow(m[b + t], 2) + Math.pow(m[b + e], 2)) / (1 + Math.sqrt(me))\n          )\n        ), Re = m[b + n] + m[b + t] * (ye / O.slowDown), m[b + n] = Re, Le = m[b + i] + m[b + e] * (ye / O.slowDown), m[b + i] = Le);\n    return {};\n  }, It;\n}\nvar De = {}, Ni;\nfunction xr() {\n  if (Ni) return De;\n  Ni = 1;\n  var n = 10, i = 3;\n  return De.assign = function(t) {\n    t = t || {};\n    var e = Array.prototype.slice.call(arguments).slice(1), r, a, o;\n    for (r = 0, o = e.length; r < o; r++)\n      if (e[r])\n        for (a in e[r]) t[a] = e[r][a];\n    return t;\n  }, De.validateSettings = function(t) {\n    return \"linLogMode\" in t && typeof t.linLogMode != \"boolean\" ? { message: \"the `linLogMode` setting should be a boolean.\" } : \"outboundAttractionDistribution\" in t && typeof t.outboundAttractionDistribution != \"boolean\" ? {\n      message: \"the `outboundAttractionDistribution` setting should be a boolean.\"\n    } : \"adjustSizes\" in t && typeof t.adjustSizes != \"boolean\" ? { message: \"the `adjustSizes` setting should be a boolean.\" } : \"edgeWeightInfluence\" in t && typeof t.edgeWeightInfluence != \"number\" ? {\n      message: \"the `edgeWeightInfluence` setting should be a number.\"\n    } : \"scalingRatio\" in t && !(typeof t.scalingRatio == \"number\" && t.scalingRatio >= 0) ? { message: \"the `scalingRatio` setting should be a number >= 0.\" } : \"strongGravityMode\" in t && typeof t.strongGravityMode != \"boolean\" ? { message: \"the `strongGravityMode` setting should be a boolean.\" } : \"gravity\" in t && !(typeof t.gravity == \"number\" && t.gravity >= 0) ? { message: \"the `gravity` setting should be a number >= 0.\" } : \"slowDown\" in t && !(typeof t.slowDown == \"number\" || t.slowDown >= 0) ? { message: \"the `slowDown` setting should be a number >= 0.\" } : \"barnesHutOptimize\" in t && typeof t.barnesHutOptimize != \"boolean\" ? { message: \"the `barnesHutOptimize` setting should be a boolean.\" } : \"barnesHutTheta\" in t && !(typeof t.barnesHutTheta == \"number\" && t.barnesHutTheta >= 0) ? { message: \"the `barnesHutTheta` setting should be a number >= 0.\" } : null;\n  }, De.graphToByteArrays = function(t, e) {\n    var r = t.order, a = t.size, o = {}, s, u = new Float32Array(r * n), h = new Float32Array(a * i);\n    return s = 0, t.forEachNode(function(l, d) {\n      o[l] = s, u[s] = d.x, u[s + 1] = d.y, u[s + 2] = 0, u[s + 3] = 0, u[s + 4] = 0, u[s + 5] = 0, u[s + 6] = 1, u[s + 7] = 1, u[s + 8] = d.size || 1, u[s + 9] = d.fixed ? 1 : 0, s += n;\n    }), s = 0, t.forEachEdge(function(l, d, c, y, A, p, S) {\n      var C = o[c], _ = o[y], k = e(l, d, c, y, A, p, S);\n      u[C + 6] += k, u[_ + 6] += k, h[s] = C, h[s + 1] = _, h[s + 2] = k, s += i;\n    }), {\n      nodes: u,\n      edges: h\n    };\n  }, De.assignLayoutChanges = function(t, e, r) {\n    var a = 0;\n    t.updateEachNodeAttributes(function(o, s) {\n      return s.x = e[a], s.y = e[a + 1], a += n, r ? r(o, s) : s;\n    });\n  }, De.readGraphPositions = function(t, e) {\n    var r = 0;\n    t.forEachNode(function(a, o) {\n      e[r] = o.x, e[r + 1] = o.y, r += n;\n    });\n  }, De.collectLayoutChanges = function(t, e, r) {\n    for (var a = t.nodes(), o = {}, s = 0, u = 0, h = e.length; s < h; s += n) {\n      if (r) {\n        var l = Object.assign({}, t.getNodeAttributes(a[u]));\n        l.x = e[s], l.y = e[s + 1], l = r(a[u], l), o[a[u]] = {\n          x: l.x,\n          y: l.y\n        };\n      } else\n        o[a[u]] = {\n          x: e[s],\n          y: e[s + 1]\n        };\n      u++;\n    }\n    return o;\n  }, De.createWorker = function(e) {\n    var r = window.URL || window.webkitURL, a = e.toString(), o = r.createObjectURL(\n      new Blob([\"(\" + a + \").call(this);\"], { type: \"text/javascript\" })\n    ), s = new Worker(o);\n    return r.revokeObjectURL(o), s;\n  }, De;\n}\nvar Ft, $i;\nfunction Gr() {\n  return $i || ($i = 1, Ft = {\n    linLogMode: !1,\n    outboundAttractionDistribution: !1,\n    adjustSizes: !1,\n    edgeWeightInfluence: 1,\n    scalingRatio: 1,\n    strongGravityMode: !1,\n    gravity: 1,\n    slowDown: 1,\n    barnesHutOptimize: !1,\n    barnesHutTheta: 0.5\n  }), Ft;\n}\nvar Ot, Ui;\nfunction Ao() {\n  if (Ui) return Ot;\n  Ui = 1;\n  var n = ni(), i = Dr().createEdgeWeightGetter, t = So(), e = xr(), r = Gr();\n  function a(u, h, l) {\n    if (!n(h))\n      throw new Error(\n        \"graphology-layout-forceatlas2: the given graph is not a valid graphology instance.\"\n      );\n    typeof l == \"number\" && (l = { iterations: l });\n    var d = l.iterations;\n    if (typeof d != \"number\")\n      throw new Error(\n        \"graphology-layout-forceatlas2: invalid number of iterations.\"\n      );\n    if (d <= 0)\n      throw new Error(\n        \"graphology-layout-forceatlas2: you should provide a positive number of iterations.\"\n      );\n    var c = i(\n      \"getEdgeWeight\" in l ? l.getEdgeWeight : \"weight\"\n    ).fromEntry, y = typeof l.outputReducer == \"function\" ? l.outputReducer : null, A = e.assign({}, r, l.settings), p = e.validateSettings(A);\n    if (p)\n      throw new Error(\n        \"graphology-layout-forceatlas2: \" + p.message\n      );\n    var S = e.graphToByteArrays(h, c), C;\n    for (C = 0; C < d; C++)\n      t(A, S.nodes, S.edges);\n    if (u) {\n      e.assignLayoutChanges(h, S.nodes, y);\n      return;\n    }\n    return e.collectLayoutChanges(h, S.nodes);\n  }\n  function o(u) {\n    var h = typeof u == \"number\" ? u : u.order;\n    return {\n      barnesHutOptimize: h > 2e3,\n      strongGravityMode: !0,\n      gravity: 0.05,\n      scalingRatio: 10,\n      slowDown: 1 + Math.log(h)\n    };\n  }\n  var s = a.bind(null, !1);\n  return s.assign = a.bind(null, !0), s.inferSettings = o, Ot = s, Ot;\n}\nvar ko = Ao();\nconst Co = /* @__PURE__ */ yt(ko);\nvar zt, Bi;\nfunction Ro() {\n  return Bi || (Bi = 1, zt = function() {\n    var i, t, e = {};\n    (function() {\n      var a = 0, o = 1, s = 2, u = 3, h = 4, l = 5, d = 6, c = 7, y = 8, A = 9, p = 0, S = 1, C = 2, _ = 0, k = 1, f = 2, g = 3, w = 4, T = 5, x = 6, L = 7, F = 8, N = 3, O = 10, m = 3, j = 9, re = 10;\n      e.exports = function(b, v, M) {\n        var K, P, E, z, J, Q, se, ne, H, ae, X = v.length, te = M.length, ee = b.adjustSizes, ge = b.barnesHutTheta * b.barnesHutTheta, Y, U, R, ie, le, V, q, D = [];\n        for (E = 0; E < X; E += O)\n          v[E + h] = v[E + s], v[E + l] = v[E + u], v[E + s] = 0, v[E + u] = 0;\n        if (b.outboundAttractionDistribution) {\n          for (Y = 0, E = 0; E < X; E += O)\n            Y += v[E + d];\n          Y /= X / O;\n        }\n        if (b.barnesHutOptimize) {\n          var pe = 1 / 0, Ce = -1 / 0, ve = 1 / 0, Te = -1 / 0, he, me, Oe;\n          for (E = 0; E < X; E += O)\n            pe = Math.min(pe, v[E + a]), Ce = Math.max(Ce, v[E + a]), ve = Math.min(ve, v[E + o]), Te = Math.max(Te, v[E + o]);\n          var ye = Ce - pe, Re = Te - ve;\n          for (ye > Re ? (ve -= (ye - Re) / 2, Te = ve + ye) : (pe -= (Re - ye) / 2, Ce = pe + Re), D[0 + _] = -1, D[0 + k] = (pe + Ce) / 2, D[0 + f] = (ve + Te) / 2, D[0 + g] = Math.max(Ce - pe, Te - ve), D[0 + w] = -1, D[0 + T] = -1, D[0 + x] = 0, D[0 + L] = 0, D[0 + F] = 0, K = 1, E = 0; E < X; E += O)\n            for (P = 0, Oe = N; ; )\n              if (D[P + T] >= 0) {\n                v[E + a] < D[P + k] ? v[E + o] < D[P + f] ? he = D[P + T] : he = D[P + T] + j : v[E + o] < D[P + f] ? he = D[P + T] + j * 2 : he = D[P + T] + j * 3, D[P + L] = (D[P + L] * D[P + x] + v[E + a] * v[E + d]) / (D[P + x] + v[E + d]), D[P + F] = (D[P + F] * D[P + x] + v[E + o] * v[E + d]) / (D[P + x] + v[E + d]), D[P + x] += v[E + d], P = he;\n                continue;\n              } else if (D[P + _] < 0) {\n                D[P + _] = E;\n                break;\n              } else {\n                if (D[P + T] = K * j, ne = D[P + g] / 2, H = D[P + T], D[H + _] = -1, D[H + k] = D[P + k] - ne, D[H + f] = D[P + f] - ne, D[H + g] = ne, D[H + w] = H + j, D[H + T] = -1, D[H + x] = 0, D[H + L] = 0, D[H + F] = 0, H += j, D[H + _] = -1, D[H + k] = D[P + k] - ne, D[H + f] = D[P + f] + ne, D[H + g] = ne, D[H + w] = H + j, D[H + T] = -1, D[H + x] = 0, D[H + L] = 0, D[H + F] = 0, H += j, D[H + _] = -1, D[H + k] = D[P + k] + ne, D[H + f] = D[P + f] - ne, D[H + g] = ne, D[H + w] = H + j, D[H + T] = -1, D[H + x] = 0, D[H + L] = 0, D[H + F] = 0, H += j, D[H + _] = -1, D[H + k] = D[P + k] + ne, D[H + f] = D[P + f] + ne, D[H + g] = ne, D[H + w] = D[P + w], D[H + T] = -1, D[H + x] = 0, D[H + L] = 0, D[H + F] = 0, K += 4, v[D[P + _] + a] < D[P + k] ? v[D[P + _] + o] < D[P + f] ? he = D[P + T] : he = D[P + T] + j : v[D[P + _] + o] < D[P + f] ? he = D[P + T] + j * 2 : he = D[P + T] + j * 3, D[P + x] = v[D[P + _] + d], D[P + L] = v[D[P + _] + a], D[P + F] = v[D[P + _] + o], D[he + _] = D[P + _], D[P + _] = -1, v[E + a] < D[P + k] ? v[E + o] < D[P + f] ? me = D[P + T] : me = D[P + T] + j : v[E + o] < D[P + f] ? me = D[P + T] + j * 2 : me = D[P + T] + j * 3, he === me)\n                  if (Oe--) {\n                    P = he;\n                    continue;\n                  } else {\n                    Oe = N;\n                    break;\n                  }\n                D[me + _] = E;\n                break;\n              }\n        }\n        if (b.barnesHutOptimize)\n          for (U = b.scalingRatio, E = 0; E < X; E += O)\n            for (P = 0; ; )\n              if (D[P + T] >= 0)\n                if (V = Math.pow(\n                  v[E + a] - D[P + L],\n                  2\n                ) + Math.pow(\n                  v[E + o] - D[P + F],\n                  2\n                ), ae = D[P + g], 4 * ae * ae / V < ge) {\n                  if (R = v[E + a] - D[P + L], ie = v[E + o] - D[P + F], ee === !0 ? V > 0 ? (q = U * v[E + d] * D[P + x] / V, v[E + s] += R * q, v[E + u] += ie * q) : V < 0 && (q = -U * v[E + d] * D[P + x] / Math.sqrt(V), v[E + s] += R * q, v[E + u] += ie * q) : V > 0 && (q = U * v[E + d] * D[P + x] / V, v[E + s] += R * q, v[E + u] += ie * q), P = D[P + w], P < 0) break;\n                  continue;\n                } else {\n                  P = D[P + T];\n                  continue;\n                }\n              else {\n                if (Q = D[P + _], Q >= 0 && Q !== E && (R = v[E + a] - v[Q + a], ie = v[E + o] - v[Q + o], V = R * R + ie * ie, ee === !0 ? V > 0 ? (q = U * v[E + d] * v[Q + d] / V, v[E + s] += R * q, v[E + u] += ie * q) : V < 0 && (q = -U * v[E + d] * v[Q + d] / Math.sqrt(V), v[E + s] += R * q, v[E + u] += ie * q) : V > 0 && (q = U * v[E + d] * v[Q + d] / V, v[E + s] += R * q, v[E + u] += ie * q)), P = D[P + w], P < 0) break;\n                continue;\n              }\n        else\n          for (U = b.scalingRatio, z = 0; z < X; z += O)\n            for (J = 0; J < z; J += O)\n              R = v[z + a] - v[J + a], ie = v[z + o] - v[J + o], ee === !0 ? (V = Math.sqrt(R * R + ie * ie) - v[z + y] - v[J + y], V > 0 ? (q = U * v[z + d] * v[J + d] / V / V, v[z + s] += R * q, v[z + u] += ie * q, v[J + s] -= R * q, v[J + u] -= ie * q) : V < 0 && (q = 100 * U * v[z + d] * v[J + d], v[z + s] += R * q, v[z + u] += ie * q, v[J + s] -= R * q, v[J + u] -= ie * q)) : (V = Math.sqrt(R * R + ie * ie), V > 0 && (q = U * v[z + d] * v[J + d] / V / V, v[z + s] += R * q, v[z + u] += ie * q, v[J + s] -= R * q, v[J + u] -= ie * q));\n        for (H = b.gravity / b.scalingRatio, U = b.scalingRatio, E = 0; E < X; E += O)\n          q = 0, R = v[E + a], ie = v[E + o], V = Math.sqrt(Math.pow(R, 2) + Math.pow(ie, 2)), b.strongGravityMode ? V > 0 && (q = U * v[E + d] * H) : V > 0 && (q = U * v[E + d] * H / V), v[E + s] -= R * q, v[E + u] -= ie * q;\n        for (U = 1 * (b.outboundAttractionDistribution ? Y : 1), se = 0; se < te; se += m)\n          z = M[se + p], J = M[se + S], ne = M[se + C], le = Math.pow(ne, b.edgeWeightInfluence), R = v[z + a] - v[J + a], ie = v[z + o] - v[J + o], ee === !0 ? (V = Math.sqrt(R * R + ie * ie) - v[z + y] - v[J + y], b.linLogMode ? b.outboundAttractionDistribution ? V > 0 && (q = -U * le * Math.log(1 + V) / V / v[z + d]) : V > 0 && (q = -U * le * Math.log(1 + V) / V) : b.outboundAttractionDistribution ? V > 0 && (q = -U * le / v[z + d]) : V > 0 && (q = -U * le)) : (V = Math.sqrt(Math.pow(R, 2) + Math.pow(ie, 2)), b.linLogMode ? b.outboundAttractionDistribution ? V > 0 && (q = -U * le * Math.log(1 + V) / V / v[z + d]) : V > 0 && (q = -U * le * Math.log(1 + V) / V) : b.outboundAttractionDistribution ? (V = 1, q = -U * le / v[z + d]) : (V = 1, q = -U * le)), V > 0 && (v[z + s] += R * q, v[z + u] += ie * q, v[J + s] -= R * q, v[J + u] -= ie * q);\n        var Le, Xe, ot, Ue, st, ut;\n        if (ee === !0)\n          for (E = 0; E < X; E += O)\n            v[E + A] !== 1 && (Le = Math.sqrt(\n              Math.pow(v[E + s], 2) + Math.pow(v[E + u], 2)\n            ), Le > re && (v[E + s] = v[E + s] * re / Le, v[E + u] = v[E + u] * re / Le), Xe = v[E + d] * Math.sqrt(\n              (v[E + h] - v[E + s]) * (v[E + h] - v[E + s]) + (v[E + l] - v[E + u]) * (v[E + l] - v[E + u])\n            ), ot = Math.sqrt(\n              (v[E + h] + v[E + s]) * (v[E + h] + v[E + s]) + (v[E + l] + v[E + u]) * (v[E + l] + v[E + u])\n            ) / 2, Ue = 0.1 * Math.log(1 + ot) / (1 + Math.sqrt(Xe)), st = v[E + a] + v[E + s] * (Ue / b.slowDown), v[E + a] = st, ut = v[E + o] + v[E + u] * (Ue / b.slowDown), v[E + o] = ut);\n        else\n          for (E = 0; E < X; E += O)\n            v[E + A] !== 1 && (Xe = v[E + d] * Math.sqrt(\n              (v[E + h] - v[E + s]) * (v[E + h] - v[E + s]) + (v[E + l] - v[E + u]) * (v[E + l] - v[E + u])\n            ), ot = Math.sqrt(\n              (v[E + h] + v[E + s]) * (v[E + h] + v[E + s]) + (v[E + l] + v[E + u]) * (v[E + l] + v[E + u])\n            ) / 2, Ue = v[E + c] * Math.log(1 + ot) / (1 + Math.sqrt(Xe)), v[E + c] = Math.min(\n              1,\n              Math.sqrt(\n                Ue * (Math.pow(v[E + s], 2) + Math.pow(v[E + u], 2)) / (1 + Math.sqrt(Xe))\n              )\n            ), st = v[E + a] + v[E + s] * (Ue / b.slowDown), v[E + a] = st, ut = v[E + o] + v[E + u] * (Ue / b.slowDown), v[E + o] = ut);\n        return {};\n      };\n    })();\n    var r = e.exports;\n    self.addEventListener(\"message\", function(a) {\n      var o = a.data;\n      i = new Float32Array(o.nodes), o.edges && (t = new Float32Array(o.edges)), r(o.settings, i, t), self.postMessage(\n        {\n          nodes: i.buffer\n        },\n        [i.buffer]\n      );\n    });\n  }), zt;\n}\nvar Nt, Mi;\nfunction Lo() {\n  if (Mi) return Nt;\n  Mi = 1;\n  var n = Ro(), i = ni(), t = Dr().createEdgeWeightGetter, e = xr(), r = Gr();\n  function a(o, s) {\n    if (s = s || {}, !i(o))\n      throw new Error(\n        \"graphology-layout-forceatlas2/worker: the given graph is not a valid graphology instance.\"\n      );\n    var u = t(\n      \"getEdgeWeight\" in s ? s.getEdgeWeight : \"weight\"\n    ).fromEntry, h = e.assign({}, r, s.settings), l = e.validateSettings(h);\n    if (l)\n      throw new Error(\n        \"graphology-layout-forceatlas2/worker: \" + l.message\n      );\n    this.worker = null, this.graph = o, this.settings = h, this.getEdgeWeight = u, this.matrices = null, this.running = !1, this.killed = !1, this.outputReducer = typeof s.outputReducer == \"function\" ? s.outputReducer : null, this.handleMessage = this.handleMessage.bind(this);\n    var d = void 0, c = this;\n    this.handleGraphUpdate = function() {\n      c.worker && c.worker.terminate(), d && clearTimeout(d), d = setTimeout(function() {\n        d = void 0, c.spawnWorker();\n      }, 0);\n    }, o.on(\"nodeAdded\", this.handleGraphUpdate), o.on(\"edgeAdded\", this.handleGraphUpdate), o.on(\"nodeDropped\", this.handleGraphUpdate), o.on(\"edgeDropped\", this.handleGraphUpdate), this.spawnWorker();\n  }\n  return a.prototype.isRunning = function() {\n    return this.running;\n  }, a.prototype.spawnWorker = function() {\n    this.worker && this.worker.terminate(), this.worker = e.createWorker(n), this.worker.addEventListener(\"message\", this.handleMessage), this.running && (this.running = !1, this.start());\n  }, a.prototype.handleMessage = function(o) {\n    if (this.running) {\n      var s = new Float32Array(o.data.nodes);\n      e.assignLayoutChanges(this.graph, s, this.outputReducer), this.outputReducer && e.readGraphPositions(this.graph, s), this.matrices.nodes = s, this.askForIterations();\n    }\n  }, a.prototype.askForIterations = function(o) {\n    var s = this.matrices, u = {\n      settings: this.settings,\n      nodes: s.nodes.buffer\n    }, h = [s.nodes.buffer];\n    return o && (u.edges = s.edges.buffer, h.push(s.edges.buffer)), this.worker.postMessage(u, h), this;\n  }, a.prototype.start = function() {\n    if (this.killed)\n      throw new Error(\n        \"graphology-layout-forceatlas2/worker.start: layout was killed.\"\n      );\n    return this.running ? this : (this.matrices = e.graphToByteArrays(this.graph, this.getEdgeWeight), this.running = !0, this.askForIterations(!0), this);\n  }, a.prototype.stop = function() {\n    return this.running = !1, this;\n  }, a.prototype.kill = function() {\n    if (this.killed) return this;\n    this.running = !1, this.killed = !0, this.matrices = null, this.worker.terminate(), this.graph.removeListener(\"nodeAdded\", this.handleGraphUpdate), this.graph.removeListener(\"edgeAdded\", this.handleGraphUpdate), this.graph.removeListener(\"nodeDropped\", this.handleGraphUpdate), this.graph.removeListener(\"edgeDropped\", this.handleGraphUpdate);\n  }, Nt = a, Nt;\n}\nvar Do = Lo();\nconst xo = /* @__PURE__ */ yt(Do);\nvar $t, Hi;\nfunction Go() {\n  if (Hi) return $t;\n  Hi = 1;\n  function n(t, e) {\n    return t + Math.floor(Math.random() * (e - t + 1));\n  }\n  function i(t) {\n    t || (t = n(0, Math.pow(2, 31) - 1)), this.seed = t % 2147483647, this.seed <= 0 && (this.seed += 2147483646);\n  }\n  return i.prototype.next = function() {\n    return this.seed = this.seed * 16807 % 2147483647, this.seed;\n  }, i.prototype.nextFloat = function() {\n    return (this.next() - 1) / 2147483646;\n  }, $t = i, $t;\n}\nvar xe = {}, ji;\nfunction Pr() {\n  if (ji) return xe;\n  ji = 1;\n  var n = {\n    // D65 standard referent\n    Xn: 0.95047,\n    Yn: 1,\n    Zn: 1.08883,\n    t0: 0.137931034,\n    // 4 / 29\n    t1: 0.206896552,\n    // 6 / 29\n    t2: 0.12841855,\n    // 3 * t1 * t1\n    t3: 8856452e-9\n    // t1 * t1 * t1\n  };\n  function i(p) {\n    return Math.round(\n      255 * (p <= 304e-5 ? 12.92 * p : 1.055 * Math.pow(p, 1 / 2.4) - 0.055)\n    );\n  }\n  function t(p) {\n    return (p /= 255) <= 0.04045 ? p / 12.92 : Math.pow((p + 0.055) / 1.055, 2.4);\n  }\n  function e(p) {\n    return p > n.t3 ? Math.pow(p, 1 / 3) : p / n.t2 + n.t0;\n  }\n  function r(p) {\n    var S = p[0], C = p[1], _ = p[2];\n    S = t(S), C = t(C), _ = t(_);\n    var k = e((0.4124564 * S + 0.3575761 * C + 0.1804375 * _) / n.Xn), f = e((0.2126729 * S + 0.7151522 * C + 0.072175 * _) / n.Yn), g = e((0.0193339 * S + 0.119192 * C + 0.9503041 * _) / n.Zn);\n    return [k, f, g];\n  }\n  function a(p) {\n    return p > n.t1 ? p * p * p : n.t2 * (p - n.t0);\n  }\n  function o(p) {\n    var S = p[0], C = p[1], _ = p[2], k = (S + 16) / 116, f = isNaN(C) ? k : k + C / 500, g = isNaN(_) ? k : k - _ / 200;\n    k = n.Yn * a(k), f = n.Xn * a(f), g = n.Zn * a(g);\n    var w = i(3.2404542 * f - 1.5371385 * k - 0.4985314 * g), T = i(-0.969266 * f + 1.8760108 * k + 0.041556 * g);\n    return _ = i(0.0556434 * f - 0.2040259 * k + 1.0572252 * g), [w, T, _];\n  }\n  function s(p) {\n    var S = r(p), C = S[0], _ = S[1], k = S[2], f = 116 * _ - 16;\n    return [f < 0 ? 0 : f, 500 * (C - _), 200 * (_ - k)];\n  }\n  function u(p) {\n    var S = p[0], C = p[1], _ = p[2];\n    return S >= 0 && S <= 255 && C >= 0 && C <= 255 && _ >= 0 && _ <= 255;\n  }\n  function h(p) {\n    return (\"0\" + p.toString(16)).slice(-2);\n  }\n  function l(p) {\n    var S = o(p);\n    return \"#\" + h(S[0]) + h(S[1]) + h(S[2]);\n  }\n  var d = 180 / Math.PI;\n  function c(p) {\n    var S = p[0], C = p[1], _ = p[2], k = Math.sqrt(C * C + _ * _), f = (Math.atan2(_, C) * d + 360) % 360;\n    return Math.round(k * 1e4) === 0 && (f = NaN), [f, k, S];\n  }\n  function y(p, S) {\n    S = S.slice();\n    for (var C = [S.shift()], _, k, f, g, w, T, x; S.length > 0; ) {\n      for (_ = -1, k = -1 / 0, f = 0; f < S.length; f++)\n        for (g = S[f], x = 0; x < C.length; x++)\n          w = C[x], T = p(g, w), T > k && (k = T, _ = f);\n      C.push(S[_]), S.splice(_, 1);\n    }\n    return C;\n  }\n  function A(p, S) {\n    var C, _, k, f = 1 / 0, g, w = 0, T = 0;\n    for (C = 0, k = S.length; C < k; C++)\n      for (_ = C + 1; _ < k; _++)\n        g = p(S[C], S[_]), g < f && (f = g), w += g, T++;\n    return { min: f, mean: w / T };\n  }\n  return xe.validateRgb = u, xe.labToRgb = o, xe.labToRgbHex = l, xe.rgbToLab = s, xe.labToHcl = c, xe.diffSort = y, xe.computeQualityMetrics = A, xe;\n}\nvar Ut, Wi;\nfunction Po() {\n  if (Wi) return Ut;\n  Wi = 1;\n  var n = Pr(), i = {\n    protanope: {\n      x: 0.7465,\n      y: 0.2535,\n      m: 1.273463,\n      yint: -0.073894\n    },\n    deuteranope: {\n      x: 1.4,\n      y: -0.4,\n      m: 0.968437,\n      yint: 3331e-6\n    },\n    tritanope: {\n      x: 0.1748,\n      y: 0,\n      m: 0.062921,\n      yint: 0.292119\n    }\n  };\n  function t(o, s) {\n    return Math.sqrt(\n      Math.pow(o[0] - s[0], 2) + Math.pow(o[1] - s[1], 2) + Math.pow(o[2] - s[2], 2)\n    );\n  }\n  function e(o, s, u, h) {\n    for (var l = u[0], d = h[0], c = u[1], y = h[1], A = u[2], p = h[2], S = Math.sqrt(Math.pow(c, 2) + Math.pow(A, 2)), C = Math.sqrt(Math.pow(y, 2) + Math.pow(p, 2)), _ = S - C, k = l - d, f = c - y, g = A - p, w = Math.sqrt(\n      Math.pow(f, 2) + Math.pow(g, 2) + Math.pow(_, 2)\n    ), T = Math.atan2(A, c) * (180 / Math.PI); T < 0; )\n      T += 360;\n    var x = Math.sqrt(Math.pow(S, 4) / (Math.pow(S, 4) + 1900)), L = T >= 164 && T <= 345 ? 0.56 + Math.abs(0.2 * Math.cos(T + 168)) : 0.36 + Math.abs(0.4 * Math.cos(T + 35)), F = u[0] < 16 ? 0.511 : 0.040975 * l / (1 + 0.01765 * l), N = 0.0638 * S / (1 + 0.0131 * S) + 0.638, O = N * (x * L + 1 - x), m = Math.sqrt(\n      Math.pow(k / (o * F), 2) + Math.pow(_ / (s * N), 2) + Math.pow(w / O, 2)\n    );\n    return m;\n  }\n  function r() {\n    this.cache = {};\n  }\n  r.prototype.simulate = function(o, s, u) {\n    u = u || 1;\n    var h = o.join(\"-\") + \"-\" + s + \"-\" + u, l = this.cache[h];\n    if (l)\n      return l;\n    var d = i[s].x, c = i[s].y, y = i[s].m, A = i[s].yint, p = n.labToRgb(o), S = p[0], C = p[1], _ = p[2], k = S, f = C, g = _, w = Math.pow(S, 2.2), T = Math.pow(C, 2.2), x = Math.pow(_, 2.2), L = w * 0.412424 + T * 0.357579 + x * 0.180464, F = w * 0.212656 + T * 0.715158 + x * 0.0721856, N = w * 0.0193324 + T * 0.119193 + x * 0.950444, O = L / (L + F + N), m = F / (L + F + N), j = (m - c) / (O - d), re = m - O * j, G = (A - re) / (j - y), b = j * G + re;\n    L = G * F / b, N = (1 - (G + b)) * F / b;\n    var v = 0.312713 * F / 0.329016, M = 0.358271 * F / 0.329016, K = v - L, P = M - N, E = K * 3.24071 + P * -0.498571, z = K * -0.969258 + P * 0.0415557, J = K * 0.0556352 + P * 1.05707;\n    k = L * 3.24071 + F * -1.53726 + N * -0.498571, f = L * -0.969258 + F * 1.87599 + N * 0.0415557, g = L * 0.0556352 + F * -0.203996 + N * 1.05707;\n    var Q = ((k < 0 ? 0 : 1) - k) / E, se = ((f < 0 ? 0 : 1) - f) / z, ne = ((g < 0 ? 0 : 1) - g) / J, H = Math.max(\n      // highest value\n      Q > 1 || Q < 0 ? 0 : Q,\n      se > 1 || se < 0 ? 0 : se,\n      ne > 1 || ne < 0 ? 0 : ne\n    );\n    k = k + H * E, f = f + H * z, g = g + H * J, k = Math.pow(k, 1 / 2.2), f = Math.pow(f, 1 / 2.2), g = Math.pow(g, 1 / 2.2), k = S * (1 - u) + k * u, f = C * (1 - u) + f * u, g = _ * (1 - u) + g * u;\n    var ae = [k, f, g], X = n.rgbToLab(ae);\n    return this.cache[h] = X, X;\n  }, r.prototype.euclidean = t, r.prototype.cmc = e.bind(null, 2, 1), r.prototype.colorblind = function(o, s, u) {\n    return s = this.simulate(s, o), u = this.simulate(u, o), this.cmc(s, u);\n  }, Object.keys(i).forEach(function(o) {\n    r.prototype[o] = function(s, u) {\n      return this.colorblind(o, s, u);\n    };\n  });\n  var a = 1601;\n  return r.prototype.compromise = function(o, s) {\n    var u = 0, h = this.cmc(o, s);\n    return u += h * 1e3, h = this.colorblind(\"protanope\", o, s), isNaN(h) || (u += h * 100), h = this.colorblind(\"deuteranope\", o, s), isNaN(h) || (u += h * 500), h = this.colorblind(\"tritanope\", o, s), isNaN(h) || (u += h * 1), u / a;\n  }, r.prototype.get = function(o) {\n    return o in i ? this.colorblind.bind(this, o) : this[o].bind(this);\n  }, Ut = r, Ut;\n}\nvar Bt, qi;\nfunction Io() {\n  if (qi) return Bt;\n  qi = 1;\n  var n = {\n    all: [0, 360, 0, 100, 0, 100],\n    default: [0, 360, 30, 80, 35, 80],\n    sensible: [0, 360, 25.59, 55.59, 60.94, 90.94],\n    colorblind: [0, 360, 40, 70, 15, 85],\n    \"fancy-light\": [0, 360, 15, 40, 70, 100],\n    \"fancy-dark\": [0, 360, 8, 40, 7, 40],\n    shades: [0, 240, 0, 15, 0, 100],\n    tarnish: [0, 360, 0, 15, 30, 70],\n    pastel: [0, 360, 0, 30, 70, 100],\n    pimp: [0, 360, 30, 100, 25, 70],\n    intense: [0, 360, 20, 100, 15, 80],\n    fluo: [0, 300, 35, 100, 75, 100],\n    \"red-roses\": [330, 20, 10, 100, 35, 100],\n    \"ochre-sand\": [20, 60, 20, 50, 35, 100],\n    \"yellow-lime\": [60, 90, 10, 100, 35, 100],\n    \"green-mint\": [90, 150, 10, 100, 35, 100],\n    \"ice-cube\": [150, 200, 0, 100, 35, 100],\n    \"blue-ocean\": [220, 260, 8, 80, 0, 50],\n    \"indigo-night\": [260, 290, 40, 100, 35, 100],\n    \"purple-wine\": [290, 330, 0, 100, 0, 40]\n  };\n  return Bt = n, Bt;\n}\nvar Mt, Vi;\nfunction Fo() {\n  if (Vi) return Mt;\n  Vi = 1;\n  var n = Go(), i = Po(), t = Pr(), e = Io(), r = t.validateRgb, a = t.labToRgb, o = t.labToRgbHex, s = t.labToHcl, u = t.diffSort, h = {\n    attempts: 1,\n    colorFilter: null,\n    colorSpace: \"default\",\n    clustering: \"k-means\",\n    quality: 50,\n    ultraPrecision: !1,\n    distance: \"euclidean\",\n    seed: null\n  }, l = /* @__PURE__ */ new Set([\"force-vector\", \"k-means\"]), d = /* @__PURE__ */ new Set([\n    \"euclidean\",\n    \"cmc\",\n    \"compromise\",\n    \"protanope\",\n    \"deuteranope\",\n    \"tritanope\"\n  ]), c = new Set(Object.keys(e));\n  function y(f) {\n    for (var g = 0, w = 0, T = f.length; w < T; w++)\n      g += f.charCodeAt(w);\n    return g;\n  }\n  function A(f) {\n    var g = Object.assign({}, h, f);\n    if (typeof g.attempts != \"number\" || g.attempts <= 0)\n      throw new Error(\"iwanthue: invalid `attempts` setting. Expecting a positive number.\");\n    if (g.colorFilter && typeof g.colorFilter != \"function\")\n      throw new Error(\"iwanthue: invalid `colorFilter` setting. Expecting a function.\");\n    if (!l.has(g.clustering))\n      throw new Error('iwanthue: unknown `clustering` \"' + g.clustering + '\".');\n    if (typeof g.quality != \"number\" || isNaN(g.quality) || g.quality < 1)\n      throw new Error(\"iwanthue: invalid `quality`. Expecting a number > 0.\");\n    if (typeof g.ultraPrecision != \"boolean\")\n      throw new Error(\"iwanthue: invalid `ultraPrecision`. Expecting a boolean.\");\n    if (!d.has(g.distance))\n      throw new Error('iwanthue: unknown `distance` \"' + g.distance + '\".');\n    if (typeof g.seed == \"string\" && (g.seed = y(g.seed)), g.seed !== null && typeof g.seed != \"number\")\n      throw new Error(\"iwanthue: invalid `seed`. Expecting an integer or a string.\");\n    if (!g.colorFilter && g.colorSpace && g.colorSpace !== \"all\") {\n      var w;\n      if (typeof g.colorSpace == \"string\") {\n        if (!c.has(g.colorSpace))\n          throw new Error('iwanthue: unknown `colorSpace` \"' + g.colorSpace + '\".');\n        w = e[g.colorSpace];\n      } else if (Array.isArray(g.colorSpace)) {\n        if (g.colorSpace.length !== 6)\n          throw new Error(\"iwanthue: expecting a `colorSpace` array of length 6 ([hmin, hmax, cmin, cmax, lmin, lmax]).\");\n        w = g.colorSpace;\n      } else\n        w = [\n          g.colorSpace.hmin || 0,\n          g.colorSpace.hmax || 360,\n          g.colorSpace.cmin || 0,\n          g.colorSpace.cmax || 100,\n          g.colorSpace.lmin || 0,\n          g.colorSpace.lmax || 100\n        ];\n      w[0] < w[1] ? g.colorFilter = function(T, x) {\n        var L = s(x);\n        return L[0] >= w[0] && L[0] <= w[1] && L[1] >= w[2] && L[1] <= w[3] && L[2] >= w[4] && L[2] <= w[5];\n      } : g.colorFilter = function(T, x) {\n        var L = s(x);\n        return (L[0] >= w[0] || L[0] <= w[1]) && L[1] >= w[2] && L[1] <= w[3] && L[2] >= w[4] && L[2] <= w[5];\n      };\n    }\n    return g;\n  }\n  function p(f, g, w) {\n    for (var T = new Array(g), x, L, F = 0; F < g; F++) {\n      do\n        x = [\n          100 * f(),\n          100 * (2 * f() - 1),\n          100 * (2 * f() - 1)\n        ], L = a(x);\n      while (!w(L, x));\n      T[F] = x;\n    }\n    return T;\n  }\n  var S = 100, C = 100;\n  function _(f, g, w, T, x) {\n    for (var L = new Array(T.length), F = x.quality * 20, N, O, m = T.length, j, re, G, b, v, M, K, P, E, z, J, Q; F-- > 0; ) {\n      for (N = 0; N < m; N++)\n        L[N] = { dl: 0, da: 0, db: 0 };\n      for (N = 0; N < m; N++)\n        for (j = T[N], O = 0; O < N; O++)\n          re = T[O], G = g(j, re), G > 0 ? (b = j[0] - re[0], v = j[1] - re[1], M = j[2] - re[2], K = S / Math.pow(G, 2), L[N].dl += b * K / G, L[N].da += v * K / G, L[N].db += M * K / G, L[O].dl -= b * K / G, L[O].da -= v * K / G, L[O].db -= M * K / G) : (L[O].dl += 2 - 4 * f(), L[O].da += 2 - 4 * f(), L[O].db += 2 - 4 * f());\n      for (N = 0; N < m; N++)\n        E = T[N], J = C * Math.sqrt(\n          Math.pow(L[N].dl, 2) + Math.pow(L[N].da, 2) + Math.pow(L[N].db, 2)\n        ), J > 0 && (z = C * Math.min(0.1, J) / J, P = [\n          E[0] + L[N].dl * z,\n          E[1] + L[N].da * z,\n          E[2] + L[N].db * z\n        ], Q = a(P), w(Q, P) && (T[N] = P));\n    }\n  }\n  function k(f, g, w, T) {\n    var x = [], L = [], F, N, O, m, j, re = 5, G = 10, b = 10;\n    for (T.ultraPrecision && (re = 1, G = 5, b = 5), F = 0; F <= 100; F += re)\n      for (N = -100; N <= 100; N += G)\n        for (O = -100; O <= 100; O += b)\n          m = [F, N, O], j = a(m), g(j, m) && (x.push(m), L.push(null));\n    for (var v = T.quality, M, K, P, E, z = x.length, J = w.length, Q, se, ne, H, ae, X; v-- > 0; ) {\n      for (M = 0; M < z; M++)\n        for (E = x[M], se = 1 / 0, K = 0; K < J; K++)\n          P = w[K], Q = f(P, E), Q < se && (se = Q, L[M] = K);\n      for (ne = x.slice(), K = 0; K < J; K++) {\n        for (H = 0, ae = [0, 0, 0], M = 0; M < z; M++)\n          L[M] === K && (H++, ae[0] += x[M][0], ae[1] += x[M][1], ae[2] += x[M][2]);\n        if (H !== 0)\n          if (ae[0] /= H, ae[1] /= H, ae[2] /= H, j = a(ae), g(j, ae))\n            w[K] = ae;\n          else {\n            if (ne.length > 0) {\n              for (se = 1 / 0, X = -1, M = 0; M < ne.length; M++)\n                Q = f(ne[M], ae), Q < se && (se = Q, X = M);\n              w[K] = x[X];\n            } else {\n              for (se = 1 / 0, X = -1, M = 0; M < x.length; M++)\n                Q = f(x[M], ae), Q < se && (se = Q, X = M);\n              w[K] = x[X];\n            }\n            ne = ne.filter(function(te) {\n              return te[0] !== w[K][0] || te[1] !== w[K][1] || te[2] !== w[K][2];\n            });\n          }\n      }\n    }\n    return w;\n  }\n  return Mt = function(g, w) {\n    if (typeof g != \"number\" || g < 1)\n      throw new Error(\"iwanthue: expecting a color count > 1.\");\n    w = A(w);\n    var T = new n(w.seed), x = function() {\n      return T.nextFloat();\n    }, L = new i(), F = L.get(w.distance), N = function(b, v) {\n      return r(b) ? w.colorFilter ? !!w.colorFilter(b, v) : !0 : !1;\n    }, O;\n    if (g === 1)\n      return O = p(x, g, N), [o(O[0])];\n    for (var m = w.attempts, j, re = -1 / 0, G; m > 0; )\n      O = p(x, g, N), w.clustering === \"force-vector\" ? _(x, F, N, O, w) : k(F, N, O, w), j = t.computeQualityMetrics(F, O), j.min > re && (re = j.min, G = O), m--;\n    return O = G, O = u(F, O), O.map(o);\n  }, Mt;\n}\nvar Oo = Fo();\nconst zo = /* @__PURE__ */ yt(Oo);\nfunction No(n, i) {\n  if (typeof n != \"object\" || !n) return n;\n  var t = n[Symbol.toPrimitive];\n  if (t !== void 0) {\n    var e = t.call(n, i);\n    if (typeof e != \"object\") return e;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (i === \"string\" ? String : Number)(n);\n}\nfunction Ir(n) {\n  var i = No(n, \"string\");\n  return typeof i == \"symbol\" ? i : i + \"\";\n}\nfunction Fr(n, i, t) {\n  return (i = Ir(i)) in n ? Object.defineProperty(n, i, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : n[i] = t, n;\n}\nfunction Yi(n, i) {\n  var t = Object.keys(n);\n  if (Object.getOwnPropertySymbols) {\n    var e = Object.getOwnPropertySymbols(n);\n    i && (e = e.filter(function(r) {\n      return Object.getOwnPropertyDescriptor(n, r).enumerable;\n    })), t.push.apply(t, e);\n  }\n  return t;\n}\nfunction qe(n) {\n  for (var i = 1; i < arguments.length; i++) {\n    var t = arguments[i] != null ? arguments[i] : {};\n    i % 2 ? Yi(Object(t), !0).forEach(function(e) {\n      Fr(n, e, t[e]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(t)) : Yi(Object(t)).forEach(function(e) {\n      Object.defineProperty(n, e, Object.getOwnPropertyDescriptor(t, e));\n    });\n  }\n  return n;\n}\nfunction $o(n, i) {\n  if (!(n instanceof i)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction Uo(n, i) {\n  for (var t = 0; t < i.length; t++) {\n    var e = i[t];\n    e.enumerable = e.enumerable || !1, e.configurable = !0, \"value\" in e && (e.writable = !0), Object.defineProperty(n, Ir(e.key), e);\n  }\n}\nfunction Bo(n, i, t) {\n  return i && Uo(n.prototype, i), Object.defineProperty(n, \"prototype\", {\n    writable: !1\n  }), n;\n}\nfunction mt(n) {\n  return mt = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(i) {\n    return i.__proto__ || Object.getPrototypeOf(i);\n  }, mt(n);\n}\nfunction Or() {\n  try {\n    var n = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n    }));\n  } catch (i) {\n  }\n  return (Or = function() {\n    return !!n;\n  })();\n}\nfunction zr(n) {\n  if (n === void 0) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return n;\n}\nfunction Mo(n, i) {\n  if (i && (typeof i == \"object\" || typeof i == \"function\")) return i;\n  if (i !== void 0) throw new TypeError(\"Derived constructors may only return object or undefined\");\n  return zr(n);\n}\nfunction Ho(n, i, t) {\n  return i = mt(i), Mo(n, Or() ? Reflect.construct(i, t || [], mt(n).constructor) : i.apply(n, t));\n}\nfunction Zt(n, i) {\n  return Zt = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t, e) {\n    return t.__proto__ = e, t;\n  }, Zt(n, i);\n}\nfunction jo(n, i) {\n  if (typeof i != \"function\" && i !== null) throw new TypeError(\"Super expression must either be null or a function\");\n  n.prototype = Object.create(i && i.prototype, {\n    constructor: {\n      value: n,\n      writable: !0,\n      configurable: !0\n    }\n  }), Object.defineProperty(n, \"prototype\", {\n    writable: !1\n  }), i && Zt(n, i);\n}\nfunction Xt(n, i) {\n  (i == null || i > n.length) && (i = n.length);\n  for (var t = 0, e = Array(i); t < i; t++) e[t] = n[t];\n  return e;\n}\nfunction Wo(n) {\n  if (Array.isArray(n)) return Xt(n);\n}\nfunction qo(n) {\n  if (typeof Symbol != \"undefined\" && n[Symbol.iterator] != null || n[\"@@iterator\"] != null) return Array.from(n);\n}\nfunction Vo(n, i) {\n  if (n) {\n    if (typeof n == \"string\") return Xt(n, i);\n    var t = {}.toString.call(n).slice(8, -1);\n    return t === \"Object\" && n.constructor && (t = n.constructor.name), t === \"Map\" || t === \"Set\" ? Array.from(n) : t === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Xt(n, i) : void 0;\n  }\n}\nfunction Yo() {\n  throw new TypeError(`Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);\n}\nfunction Ht(n) {\n  return Wo(n) || qo(n) || Vo(n) || Yo();\n}\nfunction Nr(n, i, t, e) {\n  var r = Math.pow(1 - n, 2) * i.x + 2 * (1 - n) * n * t.x + Math.pow(n, 2) * e.x, a = Math.pow(1 - n, 2) * i.y + 2 * (1 - n) * n * t.y + Math.pow(n, 2) * e.y;\n  return {\n    x: r,\n    y: a\n  };\n}\nfunction Ko(n, i, t) {\n  for (var e = 20, r = 0, a = n, o = 0; o < e; o++) {\n    var s = Nr((o + 1) / e, n, i, t);\n    r += Math.sqrt(Math.pow(a.x - s.x, 2) + Math.pow(a.y - s.y, 2)), a = s;\n  }\n  return r;\n}\nfunction Zo(n) {\n  var i = n.curvatureAttribute, t = n.defaultCurvature, e = n.keepLabelUpright, r = e === void 0 ? !0 : e;\n  return function(a, o, s, u, h) {\n    var l = h.edgeLabelSize, d = o[i] || t, c = h.edgeLabelFont, y = h.edgeLabelWeight, A = h.edgeLabelColor.attribute ? o[h.edgeLabelColor.attribute] || h.edgeLabelColor.color || \"#000\" : h.edgeLabelColor.color, p = o.label;\n    if (p) {\n      a.fillStyle = A, a.font = \"\".concat(y, \" \").concat(l, \"px \").concat(c);\n      var S = !r || s.x < u.x, C = S ? s.x : u.x, _ = S ? s.y : u.y, k = S ? u.x : s.x, f = S ? u.y : s.y, g = (C + k) / 2, w = (_ + f) / 2, T = k - C, x = f - _, L = Math.sqrt(Math.pow(T, 2) + Math.pow(x, 2)), F = S ? 1 : -1, N = g + x * d * F, O = w - T * d * F, m = o.size * 0.7 + 5, j = {\n        x: O - _,\n        y: -(N - C)\n      }, re = Math.sqrt(Math.pow(j.x, 2) + Math.pow(j.y, 2)), G = {\n        x: f - O,\n        y: -(k - N)\n      }, b = Math.sqrt(Math.pow(G.x, 2) + Math.pow(G.y, 2));\n      C += m * j.x / re, _ += m * j.y / re, k += m * G.x / b, f += m * G.y / b, N += m * x / L, O -= m * T / L;\n      var v = {\n        x: N,\n        y: O\n      }, M = {\n        x: C,\n        y: _\n      }, K = {\n        x: k,\n        y: f\n      }, P = Ko(M, v, K);\n      if (!(P < s.size + u.size)) {\n        var E = a.measureText(p).width, z = P - s.size - u.size;\n        if (E > z) {\n          var J = \"…\";\n          for (p = p + J, E = a.measureText(p).width; E > z && p.length > 1; )\n            p = p.slice(0, -2) + J, E = a.measureText(p).width;\n          if (p.length < 4) return;\n        }\n        for (var Q = {}, se = 0, ne = p.length; se < ne; se++) {\n          var H = p[se];\n          Q[H] || (Q[H] = a.measureText(H).width * (1 + d * 0.35));\n        }\n        for (var ae = 0.5 - E / P / 2, X = 0, te = p.length; X < te; X++) {\n          var ee = p[X], ge = Nr(ae, M, v, K), Y = 2 * (1 - ae) * (N - C) + 2 * ae * (k - N), U = 2 * (1 - ae) * (O - _) + 2 * ae * (f - O), R = Math.atan2(U, Y);\n          a.save(), a.translate(ge.x, ge.y), a.rotate(R), a.fillText(ee, 0, 0), a.restore(), ae += Q[ee] / P;\n        }\n      }\n    }\n  };\n}\nfunction Xo(n) {\n  var i = n.arrowHead, t = (i == null ? void 0 : i.extremity) === \"target\" || (i == null ? void 0 : i.extremity) === \"both\", e = (i == null ? void 0 : i.extremity) === \"source\" || (i == null ? void 0 : i.extremity) === \"both\", r = (\n    /*glsl*/\n    `\nprecision highp float;\n\nvarying vec4 v_color;\nvarying float v_thickness;\nvarying float v_feather;\nvarying vec2 v_cpA;\nvarying vec2 v_cpB;\nvarying vec2 v_cpC;\n`.concat(t ? `\nvarying float v_targetSize;\nvarying vec2 v_targetPoint;` : \"\", `\n`).concat(e ? `\nvarying float v_sourceSize;\nvarying vec2 v_sourcePoint;` : \"\", `\n`).concat(i ? `\nuniform float u_lengthToThicknessRatio;\nuniform float u_widenessToThicknessRatio;` : \"\", `\n\nfloat det(vec2 a, vec2 b) {\n  return a.x * b.y - b.x * a.y;\n}\n\nvec2 getDistanceVector(vec2 b0, vec2 b1, vec2 b2) {\n  float a = det(b0, b2), b = 2.0 * det(b1, b0), d = 2.0 * det(b2, b1);\n  float f = b * d - a * a;\n  vec2 d21 = b2 - b1, d10 = b1 - b0, d20 = b2 - b0;\n  vec2 gf = 2.0 * (b * d21 + d * d10 + a * d20);\n  gf = vec2(gf.y, -gf.x);\n  vec2 pp = -f * gf / dot(gf, gf);\n  vec2 d0p = b0 - pp;\n  float ap = det(d0p, d20), bp = 2.0 * det(d10, d0p);\n  float t = clamp((ap + bp) / (2.0 * a + b + d), 0.0, 1.0);\n  return mix(mix(b0, b1, t), mix(b1, b2, t), t);\n}\n\nfloat distToQuadraticBezierCurve(vec2 p, vec2 b0, vec2 b1, vec2 b2) {\n  return length(getDistanceVector(b0 - p, b1 - p, b2 - p));\n}\n\nconst vec4 transparent = vec4(0.0, 0.0, 0.0, 0.0);\n\nvoid main(void) {\n  float dist = distToQuadraticBezierCurve(gl_FragCoord.xy, v_cpA, v_cpB, v_cpC);\n  float thickness = v_thickness;\n`).concat(t ? `\n  float distToTarget = length(gl_FragCoord.xy - v_targetPoint);\n  float targetArrowLength = v_targetSize + thickness * u_lengthToThicknessRatio;\n  if (distToTarget < targetArrowLength) {\n    thickness = (distToTarget - v_targetSize) / (targetArrowLength - v_targetSize) * u_widenessToThicknessRatio * thickness;\n  }` : \"\", `\n`).concat(e ? `\n  float distToSource = length(gl_FragCoord.xy - v_sourcePoint);\n  float sourceArrowLength = v_sourceSize + thickness * u_lengthToThicknessRatio;\n  if (distToSource < sourceArrowLength) {\n    thickness = (distToSource - v_sourceSize) / (sourceArrowLength - v_sourceSize) * u_widenessToThicknessRatio * thickness;\n  }` : \"\", `\n\n  float halfThickness = thickness / 2.0;\n  if (dist < halfThickness) {\n    #ifdef PICKING_MODE\n    gl_FragColor = v_color;\n    #else\n    float t = smoothstep(\n      halfThickness - v_feather,\n      halfThickness,\n      dist\n    );\n\n    gl_FragColor = mix(v_color, transparent, t);\n    #endif\n  } else {\n    gl_FragColor = transparent;\n  }\n}\n`)\n  );\n  return r;\n}\nfunction Qo(n) {\n  var i = n.arrowHead, t = (i == null ? void 0 : i.extremity) === \"target\" || (i == null ? void 0 : i.extremity) === \"both\", e = (i == null ? void 0 : i.extremity) === \"source\" || (i == null ? void 0 : i.extremity) === \"both\", r = (\n    /*glsl*/\n    `\nattribute vec4 a_id;\nattribute vec4 a_color;\nattribute float a_direction;\nattribute float a_thickness;\nattribute vec2 a_source;\nattribute vec2 a_target;\nattribute float a_current;\nattribute float a_curvature;\n`.concat(t ? `attribute float a_targetSize;\n` : \"\", `\n`).concat(e ? `attribute float a_sourceSize;\n` : \"\", `\n\nuniform mat3 u_matrix;\nuniform float u_sizeRatio;\nuniform float u_pixelRatio;\nuniform vec2 u_dimensions;\nuniform float u_minEdgeThickness;\nuniform float u_feather;\n\nvarying vec4 v_color;\nvarying float v_thickness;\nvarying float v_feather;\nvarying vec2 v_cpA;\nvarying vec2 v_cpB;\nvarying vec2 v_cpC;\n`).concat(t ? `\nvarying float v_targetSize;\nvarying vec2 v_targetPoint;` : \"\", `\n`).concat(e ? `\nvarying float v_sourceSize;\nvarying vec2 v_sourcePoint;` : \"\", `\n`).concat(i ? `\nuniform float u_widenessToThicknessRatio;` : \"\", `\n\nconst float bias = 255.0 / 254.0;\nconst float epsilon = 0.7;\n\nvec2 clipspaceToViewport(vec2 pos, vec2 dimensions) {\n  return vec2(\n    (pos.x + 1.0) * dimensions.x / 2.0,\n    (pos.y + 1.0) * dimensions.y / 2.0\n  );\n}\n\nvec2 viewportToClipspace(vec2 pos, vec2 dimensions) {\n  return vec2(\n    pos.x / dimensions.x * 2.0 - 1.0,\n    pos.y / dimensions.y * 2.0 - 1.0\n  );\n}\n\nvoid main() {\n  float minThickness = u_minEdgeThickness;\n\n  // Selecting the correct position\n  // Branchless \"position = a_source if a_current == 1.0 else a_target\"\n  vec2 position = a_source * max(0.0, a_current) + a_target * max(0.0, 1.0 - a_current);\n  position = (u_matrix * vec3(position, 1)).xy;\n\n  vec2 source = (u_matrix * vec3(a_source, 1)).xy;\n  vec2 target = (u_matrix * vec3(a_target, 1)).xy;\n\n  vec2 viewportPosition = clipspaceToViewport(position, u_dimensions);\n  vec2 viewportSource = clipspaceToViewport(source, u_dimensions);\n  vec2 viewportTarget = clipspaceToViewport(target, u_dimensions);\n\n  vec2 delta = viewportTarget.xy - viewportSource.xy;\n  float len = length(delta);\n  vec2 normal = vec2(-delta.y, delta.x) * a_direction;\n  vec2 unitNormal = normal / len;\n  float boundingBoxThickness = len * a_curvature;\n\n  float curveThickness = max(minThickness, a_thickness / u_sizeRatio);\n  v_thickness = curveThickness * u_pixelRatio;\n  v_feather = u_feather;\n\n  v_cpA = viewportSource;\n  v_cpB = 0.5 * (viewportSource + viewportTarget) + unitNormal * a_direction * boundingBoxThickness;\n  v_cpC = viewportTarget;\n\n  vec2 viewportOffsetPosition = (\n    viewportPosition +\n    unitNormal * (boundingBoxThickness / 2.0 + sign(boundingBoxThickness) * (`).concat(i ? \"curveThickness * u_widenessToThicknessRatio\" : \"curveThickness\", ` + epsilon)) *\n    max(0.0, a_direction) // NOTE: cutting the bounding box in half to avoid overdraw\n  );\n\n  position = viewportToClipspace(viewportOffsetPosition, u_dimensions);\n  gl_Position = vec4(position, 0, 1);\n    \n`).concat(t ? `\n  v_targetSize = a_targetSize * u_pixelRatio / u_sizeRatio;\n  v_targetPoint = viewportTarget;\n` : \"\", `\n`).concat(e ? `\n  v_sourceSize = a_sourceSize * u_pixelRatio / u_sizeRatio;\n  v_sourcePoint = viewportSource;\n` : \"\", `\n\n  #ifdef PICKING_MODE\n  // For picking mode, we use the ID as the color:\n  v_color = a_id;\n  #else\n  // For normal mode, we use the color:\n  v_color = a_color;\n  #endif\n\n  v_color.a *= bias;\n}\n`)\n  );\n  return r;\n}\nvar oi = 0.25, Jo = {\n  arrowHead: null,\n  curvatureAttribute: \"curvature\",\n  defaultCurvature: oi\n}, es = {\n  edgeIndexAttribute: \"parallelIndex\",\n  edgeMinIndexAttribute: \"parallelMinIndex\",\n  edgeMaxIndexAttribute: \"parallelMaxIndex\"\n};\nfunction ts(n, i) {\n  var t = qe(qe({}, es), i || {}), e = {}, r = {}, a = {}, o = 0;\n  n.forEachNode(function(w) {\n    e[w] = ++o + \"\";\n  }), n.forEachEdge(function(w, T, x, L) {\n    var F = e[x], N = e[L], O = [F, N].join(\"-\");\n    r[w] = O, a[O] = [F, N].sort().join(\"-\");\n  });\n  var s = {}, u = {};\n  n.forEachEdge(function(w) {\n    var T = r[w], x = a[T];\n    s[T] = s[T] || [], s[T].push(w), u[x] = u[x] || [], u[x].push(w);\n  });\n  for (var h in s) {\n    var l = s[h], d = l.length, c = u[a[h]].length;\n    if (d === 1 && c === 1) {\n      var y = l[0];\n      n.setEdgeAttribute(y, t.edgeIndexAttribute, null), n.setEdgeAttribute(y, t.edgeMaxIndexAttribute, null);\n    } else if (d === 1) {\n      var A = l[0];\n      n.setEdgeAttribute(A, t.edgeIndexAttribute, 1), n.setEdgeAttribute(A, t.edgeMaxIndexAttribute, 1);\n    } else if (d === c)\n      for (var p = (d - 1) / 2, S = -p, C = 0; C < d; C++) {\n        var _ = l[C], k = -(d - 1) / 2 + C;\n        n.setEdgeAttribute(_, t.edgeIndexAttribute, k), n.setEdgeAttribute(_, t.edgeMinIndexAttribute, S), n.setEdgeAttribute(_, t.edgeMaxIndexAttribute, p);\n      }\n    else\n      for (var f = 0; f < d; f++) {\n        var g = l[f];\n        n.setEdgeAttribute(g, t.edgeIndexAttribute, f + 1), n.setEdgeAttribute(g, t.edgeMaxIndexAttribute, d);\n      }\n  }\n}\nvar $r = WebGLRenderingContext, Ki = $r.UNSIGNED_BYTE, $e = $r.FLOAT;\nfunction si(n) {\n  var i = qe(qe({}, Jo), n || {}), t = i, e = t.arrowHead, r = t.curvatureAttribute, a = t.drawLabel, o = (e == null ? void 0 : e.extremity) === \"target\" || (e == null ? void 0 : e.extremity) === \"both\", s = (e == null ? void 0 : e.extremity) === \"source\" || (e == null ? void 0 : e.extremity) === \"both\", u = [\"u_matrix\", \"u_sizeRatio\", \"u_dimensions\", \"u_pixelRatio\", \"u_feather\", \"u_minEdgeThickness\"].concat(Ht(e ? [\"u_lengthToThicknessRatio\", \"u_widenessToThicknessRatio\"] : []));\n  return /* @__PURE__ */ function(h) {\n    jo(l, h);\n    function l() {\n      var d;\n      $o(this, l);\n      for (var c = arguments.length, y = new Array(c), A = 0; A < c; A++)\n        y[A] = arguments[A];\n      return d = Ho(this, l, [].concat(y)), Fr(zr(d), \"drawLabel\", a || Zo(i)), d;\n    }\n    return Bo(l, [{\n      key: \"getDefinition\",\n      value: function() {\n        return {\n          VERTICES: 6,\n          VERTEX_SHADER_SOURCE: Qo(i),\n          FRAGMENT_SHADER_SOURCE: Xo(i),\n          METHOD: WebGLRenderingContext.TRIANGLES,\n          UNIFORMS: u,\n          ATTRIBUTES: [{\n            name: \"a_source\",\n            size: 2,\n            type: $e\n          }, {\n            name: \"a_target\",\n            size: 2,\n            type: $e\n          }].concat(Ht(o ? [{\n            name: \"a_targetSize\",\n            size: 1,\n            type: $e\n          }] : []), Ht(s ? [{\n            name: \"a_sourceSize\",\n            size: 1,\n            type: $e\n          }] : []), [{\n            name: \"a_thickness\",\n            size: 1,\n            type: $e\n          }, {\n            name: \"a_curvature\",\n            size: 1,\n            type: $e\n          }, {\n            name: \"a_color\",\n            size: 4,\n            type: Ki,\n            normalized: !0\n          }, {\n            name: \"a_id\",\n            size: 4,\n            type: Ki,\n            normalized: !0\n          }]),\n          CONSTANT_ATTRIBUTES: [\n            {\n              name: \"a_current\",\n              size: 1,\n              type: $e\n            },\n            // TODO: could optimize to bool\n            {\n              name: \"a_direction\",\n              size: 1,\n              type: $e\n            }\n            // TODO: could optimize to byte\n          ],\n          CONSTANT_DATA: [[0, 1], [0, -1], [1, 1], [0, -1], [1, 1], [1, -1]]\n        };\n      }\n    }, {\n      key: \"processVisibleItem\",\n      value: function(c, y, A, p, S) {\n        var C, _ = S.size || 1, k = A.x, f = A.y, g = p.x, w = p.y, T = Ze(S.color), x = (C = S[r]) !== null && C !== void 0 ? C : oi, L = this.array;\n        L[y++] = k, L[y++] = f, L[y++] = g, L[y++] = w, o && (L[y++] = p.size), s && (L[y++] = A.size), L[y++] = _, L[y++] = x, L[y++] = T, L[y++] = c;\n      }\n    }, {\n      key: \"setUniforms\",\n      value: function(c, y) {\n        var A = y.gl, p = y.uniformLocations, S = p.u_matrix, C = p.u_pixelRatio, _ = p.u_feather, k = p.u_sizeRatio, f = p.u_dimensions, g = p.u_minEdgeThickness;\n        if (A.uniformMatrix3fv(S, !1, c.matrix), A.uniform1f(C, c.pixelRatio), A.uniform1f(k, c.sizeRatio), A.uniform1f(_, c.antiAliasingFeather), A.uniform2f(f, c.width * c.pixelRatio, c.height * c.pixelRatio), A.uniform1f(g, c.minEdgeThickness), e) {\n          var w = p.u_lengthToThicknessRatio, T = p.u_widenessToThicknessRatio;\n          A.uniform1f(w, e.lengthToThicknessRatio), A.uniform1f(T, e.widenessToThicknessRatio);\n        }\n      }\n    }]), l;\n  }(wt);\n}\nsi();\nvar is = si({\n  arrowHead: _t\n});\nsi({\n  arrowHead: qe(qe({}, _t), {}, {\n    extremity: \"both\"\n  })\n});\nfunction rs(n, i) {\n  let t = \"\";\n  for (const e in n)\n    i.startsWith(n[e]) && e.length > t.length && (t = e);\n  return t === \"\" ? i : i.replace(n[t], t + \":\");\n}\nfunction Qt(n, i) {\n  if (i <= 0)\n    throw new Error(\"Invalid maxIndex\");\n  if (n < 0)\n    return -Qt(-n, i);\n  const t = 3.5;\n  return t * (1 - Math.exp(-i / t)) * oi * n / i;\n}\nconst ns = `\n  #sparql-overview {\n    height: 100%;\n\n    a {\n      text-decoration: none;\n    }\n    a:hover {\n      filter: brightness(60%);\n      text-decoration: underline;\n    }\n    #overview-predicate-sidebar {\n      float: left;\n      // width: fit-content;\n      width: 230px;\n      padding-right: 0.5em;\n      overflow-y: auto;\n      height: 100%;\n    }\n    #overview-predicate-sidebar p, h3, h5 {\n      margin: .5em 0;\n    }\n    #network-container {\n      width: 100%;\n      float: right;\n      height: 100%;\n      border: 1px solid lightgray;\n      border-radius: 2px;\n    }\n    hr {\n      width: 80%;\n      border: none;\n      height: 1px;\n      background: lightgrey;\n    }\n    .clusterLabel {\n      position: absolute;\n      // transform: translate(-50%, -50%);\n      font-size: 1.5rem;\n      font-family: sans-serif;\n      font-variant: small-caps;\n      font-weight: 400;\n      text-shadow: 2px 2px 1px white, -2px -2px 1px white, -2px 2px 1px white, 2px -2px 1px white;\n    }\n    code {\n      font-family: 'Fira Code', monospace;\n      font-size: 0.95rem;\n      border-radius: 6px;\n      padding: 0.2em 0.4em;\n      box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n      border: 1px solid #e0e0e0;\n      display: inline-block;\n      word-wrap: break-word;\n    }\n    dialog {\n      border-color: #cccccc;\n      background-color: #f5f5f5;\n      border-radius: 10px;\n    }\n    button {\n      font-size: 0.9em;\n      border: none;\n      padding: 0.3em 0.4em;\n      border-radius: 5px;\n      transition: background-color 0.3s ease, box-shadow 0.3s ease;\n    }\n    button:hover {\n      filter: brightness(90%);\n    }\n    #loading-msg {\n      position: fixed;\n      top: 50%;\n      left: 50%;\n      transform: translate(-50%, -50%);\n      z-index: 1000;\n      background-color: rgba(255, 255, 255, 0.8);\n      padding: 1em 2em;\n      border: 1px solid #ccc;\n      border-radius: 8px;\n      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n      // display: none;\n    }\n  }\n`, as = \"Endpoint Metadata\", jt = \"Default\";\nclass ss {\n  /** Create a new SPARQL overview instance\n   *\n   * @param containerElement - The HTML element where the component will be rendered\n   * @param endpoints - An object with SPARQL endpoint URLs as keys and their VoID description as values\n   * @param prefixes - An object with prefixes as keys and their full URIs as values\n   */\n  constructor(i, t, e = {}) {\n    if (this.storedMeta = {}, this.graph = new oe({ multi: !0 }), this.clusters = {}, this.predicates = {}, this.hidePredicates = /* @__PURE__ */ new Set(), this.hideClusters = /* @__PURE__ */ new Set(), this.selectedNodes = /* @__PURE__ */ new Set(), this.searchQuery = \"\", this.dialogElOpen = null, this.dom = i, this.endpoints = t, this.prefixes = e, this.loadGraph(), Object.keys(this.endpoints).length === 0)\n      throw new Error(\"No endpoints provided. Please provide at least one SPARQL endpoint URL.\");\n    this.dom.style.height = \"100%\";\n    const r = document.createElement(\"style\");\n    r.textContent = ns;\n    const a = document.createElement(\"div\");\n    a.id = \"sparql-overview\", a.style.display = \"flex\", a.className = \"container\", a.style.height = \"100%\";\n    let o = \"\";\n    for (const p of Object.keys(this.endpoints))\n      o += `<p><a href=\"${p}\" target=\"_blank\"><code>${p}</code></a></p>`;\n    a.innerHTML = `\n      <div id=\"overview-predicate-sidebar\" style=\"display: flex; flex-direction: column;\">\n        <div style=\"display: flex; align-self: center; gap: .5em; margin-bottom: .5em;\">\n          <input type=\"search\" id=\"search-input\" list=\"suggestions\" placeholder=\"Search classes...\">\n          <datalist id=\"suggestions\"></datalist>\n          <button id=\"overview-show-info\" title=\"Information about this page\">ℹ️</button>\n        </div>\n\n        <dialog id=\"overview-dialog-info\" style=\"text-align: center;\">\n          <h4>\n            Overview of classes and their relations for SPARQL endpoint${Object.keys(this.endpoints).length > 1 ? \"s\" : \"\"}\n          </h4>\n          ${o}\n          <p style=\"margin-top: 1.5em;\">\n            This visualization uses informations about classes and their relations described using\n            <a href=\"https://www.w3.org/TR/void/\" target=\"_blank\">VoID description</a> RDF uploaded to the endpoint, or added to the SPARQL service description.\n          <p>\n          </p>\n            You can easily generate it for your endpoint with the\n            <a href=\"https://github.com/JervenBolleman/void-generator\" target=\"_blank\"><code>void-generator</code></a> CLI tool.\n          </p>\n          <p>\n            <a href=\"https://github.com/sib-swiss/sparql-editor/tree/main/packages/sparql-overview\" target=\"_blank\">\n              Web component source code available\n            </a>\n          </p>\n          <p style=\"opacity: 60%; margin: 1.5em 0;\">\n            💡 <code>shift + left click</code> to select multiple nodes.\n          </p>\n          <button id=\"overview-clear-cache\" title=\"Refresh and update the endpoints metadata stored in the cache\">\n            Refresh cache\n          </button>\n          <button id=\"overview-close-info\">Close</button>\n        </dialog>\n\n        <div style=\"text-align: center;\">\n          <span>Filter predicates ·</span>\n          <button id=\"overview-show-preds\" title=\"Show all predicates\">Show all</button>\n          <button id=\"overview-hide-preds\" title=\"Hide all predicates\">Hide all</button>\n        </div>\n        <div id=\"overview-predicates-list\" style=\"flex: 1; overflow-y: auto;\"></div>\n\n        <hr></hr>\n        <div style=\"text-align: center; \">\n          <span>Filter graphs ·</span>\n          <button id=\"overview-show-clusters\" title=\"Show all graphs\">Show all</button>\n          <button id=\"overview-hide-clusters\" title=\"Hide all graphs\">Hide all</button>\n        </div>\n        <div id=\"overview-clusters-list\" style=\"flex: 1; overflow-y: auto;\"></div>\n\n        <div id=\"overview-edge-info\" style=\"overflow-y: auto;\"></div>\n        <div id=\"overview-node-info\" style=\"overflow-y: auto;\"></div>\n      </div>\n\n      <div id=\"loading-msg\">\n        <p style=\"margin: 0; text-align: center\">Loading overview...</p>\n      </div>\n      <div id=\"network-container\" width=\"100%\" heigth=\"100%\" style=\"flex: 1; display: flex; position: relative; align-items: center; justify-content: center; width: 100%; height: 100%;\"></div>\n    `, this.dom.appendChild(r), this.dom.appendChild(a);\n    const s = a.querySelector(\"#overview-show-info\"), u = a.querySelector(\"#overview-dialog-info\");\n    s.addEventListener(\"click\", () => ze(this, null, function* () {\n      u.showModal(), this.dialogElOpen = u, history.pushState({ dialogOpen: !0 }, \"\");\n    })), a.querySelector(\"#overview-close-info\").addEventListener(\"click\", () => ze(this, null, function* () {\n      u.close();\n    })), u.addEventListener(\"close\", () => ze(this, null, function* () {\n      this.dialogElOpen = null;\n    })), a.querySelector(\"#overview-clear-cache\").addEventListener(\"click\", () => ze(this, null, function* () {\n      var p;\n      localStorage.removeItem(\"sparql-overview-metadata\"), (p = this.renderer) == null || p.kill(), this.storedMeta = {}, this.graph = new oe({ multi: !0 }), this.clusters = {}, this.predicates = {}, this.hidePredicates.clear(), this.hideClusters.clear(), this.displayMsg(\"Loading overview...\"), this.initialize(), u.close();\n    })), this.dom.addEventListener(\"render\", () => {\n      var p;\n      (p = this.renderer) == null || p.refresh({ skipIndexation: !0 });\n    }), a.querySelector(\"#overview-show-preds\").addEventListener(\"click\", () => {\n      var S;\n      a.querySelectorAll(\"#overview-predicates-list input[type='checkbox']\").forEach((C) => {\n        C.checked = !0;\n      }), this.hidePredicates.clear(), (S = this.renderer) == null || S.refresh({ skipIndexation: !0 });\n    }), a.querySelector(\"#overview-hide-preds\").addEventListener(\"click\", () => {\n      var S;\n      a.querySelectorAll(\"#overview-predicates-list input[type='checkbox']\").forEach((C) => {\n        C.checked = !1;\n      }), this.hidePredicates = new Set(Object.keys(this.predicates)), (S = this.renderer) == null || S.refresh({ skipIndexation: !0 });\n    }), a.querySelector(\"#overview-show-clusters\").addEventListener(\"click\", () => {\n      var S;\n      a.querySelectorAll(\"#overview-clusters-list input[type='checkbox']\").forEach((C) => {\n        C.checked = !0;\n      }), this.hideClusters.clear(), this.renderPredicatesFilter(), (S = this.renderer) == null || S.refresh({ skipIndexation: !0 });\n    }), a.querySelector(\"#overview-hide-clusters\").addEventListener(\"click\", () => {\n      var S;\n      a.querySelectorAll(\"#overview-clusters-list input[type='checkbox']\").forEach((C) => {\n        C.checked = !1;\n      }), this.hideClusters = new Set(Object.keys(this.clusters)), this.renderPredicatesFilter(), (S = this.renderer) == null || S.refresh({ skipIndexation: !0 });\n    }), this.initialize(), window.addEventListener(\"popstate\", (p) => {\n      this.dialogElOpen && (this.dialogElOpen.close(), this.dialogElOpen = null, p.preventDefault());\n    });\n  }\n  initialize() {\n    return ze(this, null, function* () {\n      this.graph.nodes().length < 1 && (yield this.initGraph(), this.graph.nodes().length > 0 && this.saveGraph()), yield this.renderGraph();\n      const i = this.dom.querySelector(\"#loading-msg\");\n      i.style.color != \"red\" && (i.style.display = \"none\");\n    });\n  }\n  // Initialize the graph by retrieving metadata from the SPARQL endpoints\n  initGraph() {\n    return ze(this, null, function* () {\n      let t = 0;\n      for (const [s, u] of Object.entries(this.endpoints))\n        if (u)\n          for (const h of u) {\n            const l = h.triples ? parseInt(h.triples.value) : 5;\n            t < l && (t = l);\n            const d = h.subjectClass.value, c = h.graphLabel ? h.graphLabel.value : h.graph ? this.getCurie(h.graph.value) : jt, y = this.getCurie(d);\n            if (this.graph.hasNode(d) || (this.graph.addNode(d, {\n              label: y,\n              curie: y,\n              // count: 1,\n              size: 8,\n              cluster: c,\n              endpoints: [],\n              datatypes: []\n            }), h.subjectClassLabel && (this.graph.updateNodeAttribute(d, \"displayLabel\", () => h.subjectClassLabel.value), this.graph.updateNodeAttribute(d, \"label\", () => h.subjectClassLabel.value)), h.subjectClassComment && this.graph.updateNodeAttribute(d, \"comment\", () => h.subjectClassComment.value)), c !== jt && this.graph.updateNodeAttribute(d, \"cluster\", () => c), this.graph.updateNodeAttribute(d, \"count\", (A) => A + l), this.graph.updateNodeAttribute(d, \"endpoints\", (A) => A.includes(s) ? A : [...A, s]), h.objectDatatype && this.graph.updateNodeAttribute(d, \"datatypes\", (A) => (A.some((S) => S.predUri === h.prop.value && S.datatypeUri === h.objectDatatype.value) || A.push({\n              predCurie: this.getCurie(h.prop.value),\n              predUri: h.prop.value,\n              datatypeCurie: this.getCurie(h.objectDatatype.value),\n              datatypeUri: h.objectDatatype.value,\n              count: parseInt(h.triples.value)\n            }), A)), h.objectClass && !h.objectDatatype) {\n              const A = h.objectClass.value;\n              if (!this.graph.hasNode(A)) {\n                const C = this.getCurie(A);\n                this.graph.addNode(A, {\n                  label: C,\n                  curie: C,\n                  // count: 1,\n                  size: 8,\n                  cluster: c,\n                  endpoints: [],\n                  datatypes: []\n                }), h.objectClassLabel && (this.graph.updateNodeAttribute(A, \"displayLabel\", () => h.objectClassLabel.value), this.graph.updateNodeAttribute(A, \"label\", () => h.objectClassLabel.value)), h.objectClassComment && this.graph.updateNodeAttribute(A, \"comment\", () => h.objectClassComment.value);\n              }\n              this.graph.updateNodeAttribute(A, \"endpoints\", (C) => C.includes(s) ? C : [...C, s]), c !== jt && this.graph.updateNodeAttribute(A, \"cluster\", () => c);\n              const p = this.getCurie(h.prop.value);\n              let S = !1;\n              for (const C of this.graph.edges(d, A))\n                if (this.graph.getEdgeAttributes(C).curie === p) {\n                  S = !0;\n                  break;\n                }\n              if (!S) {\n                const C = {\n                  label: p,\n                  curie: p,\n                  uri: h.prop.value,\n                  count: l,\n                  type: \"arrow\"\n                };\n                h.triples && (C.triples = parseInt(h.triples.value)), h.propLabel && (C.curie = C.label, C.label = h.propLabel.value, C.displayLabel = h.propLabel.value), h.propComment && (C.comment = h.propComment.value), this.graph.addEdge(d, A, C);\n              }\n            }\n          }\n      if (this.graph.nodes().length < 2) {\n        this.displayMsg(`No VoID description found in endpoints ${Object.keys(this.endpoints).join(\", \")}`, !0);\n        return;\n      }\n      this.graph.forEachNode((s, u) => {\n        this.clusters[u.cluster] ? this.clusters[u.cluster].count += 1 : this.clusters[u.cluster] = { label: u.cluster, positions: [], count: 1, endpoint: [...u.endpoints][0] };\n      });\n      for (const s in this.clusters)\n        this.clusters[s].count === 0 && delete this.clusters[s];\n      const e = zo(Object.keys(this.clusters).length, { seed: \"topClassesClusters\" });\n      for (const s in this.clusters)\n        this.clusters[s].color = e.pop();\n      const r = {};\n      let a = 0;\n      for (const s in this.clusters) {\n        const u = a * 2 * Math.PI / Object.keys(this.clusters).length;\n        a++;\n        const h = 200;\n        r[s] = {\n          x: h * Math.cos(u),\n          y: h * Math.sin(u)\n        };\n      }\n      const o = 5;\n      this.graph.forEachEdge((s, u) => {\n        u.size = u.count * o / t, u.size < 1 && (u.size = 1);\n      }), this.graph.forEachNode((s, u) => {\n        const h = r[u.cluster], l = 20, d = Math.random() * 2 * Math.PI, c = Math.random() * l;\n        u.x = h.x + c * Math.cos(d), u.y = h.y + c * Math.sin(d), u.color = this.clusters[u.cluster].color, this.clusters[u.cluster].positions.push({ x: u.x, y: u.y });\n      });\n      for (const s in this.clusters)\n        this.clusters[s].x = this.clusters[s].positions.reduce((u, h) => u + h.x, 0) / this.clusters[s].positions.length, this.clusters[s].y = this.clusters[s].positions.reduce((u, h) => u + h.y, 0) / this.clusters[s].positions.length;\n      ts(this.graph, {\n        edgeIndexAttribute: \"parallelIndex\",\n        edgeMinIndexAttribute: \"parallelMinIndex\",\n        edgeMaxIndexAttribute: \"parallelMaxIndex\"\n      }), this.graph.forEachEdge((s, { parallelIndex: u, parallelMinIndex: h, parallelMaxIndex: l }) => {\n        typeof h == \"number\" ? this.graph.mergeEdgeAttributes(s, {\n          type: u ? \"curved\" : \"straight\",\n          curvature: Qt(u, l)\n        }) : typeof u == \"number\" ? this.graph.mergeEdgeAttributes(s, {\n          type: \"curved\",\n          curvature: Qt(u, l)\n        }) : this.graph.setEdgeAttribute(s, \"type\", \"straight\");\n      });\n    });\n  }\n  // Render the initialized graph and add all event listeners\n  renderGraph() {\n    return ze(this, null, function* () {\n      const i = this.dom.querySelector(\"#network-container\");\n      this.renderer = new To(this.graph, i, {\n        renderEdgeLabels: !0,\n        enableEdgeEvents: !0,\n        allowInvalidContainer: !0,\n        defaultEdgeType: \"straight\",\n        edgeProgramClasses: {\n          straight: kr,\n          curved: is\n        }\n        // https://www.npmjs.com/package/@sigma/edge-curve\n      });\n      const t = Co.inferSettings(this.graph), e = new xo(this.graph, {\n        settings: di(ht({}, t), {\n          linLogMode: !0\n          // barnesHutOptimize: true,\n          // gravity: 0.1,\n          // slowDown: 4,\n          // adjustSizes: true,\n          // strongGravityMode: true,\n          // https://www.npmjs.com/package/graphology-layout-forceatlas2#settings\n        })\n      });\n      e.start();\n      const r = this.dom.querySelector(\"#search-input\");\n      r.addEventListener(\"input\", () => {\n        this.setSearchQuery(r.value || \"\");\n      }), this.renderer.on(\"enterNode\", ({ node: o }) => {\n        this.setHoveredNode(o), this.selectedNode || this.displayNodeInfo(o);\n      }), this.renderer.on(\"leaveNode\", () => {\n        this.setHoveredNode(void 0), this.selectedNode || this.displayNodeInfo(void 0);\n      }), this.renderer.on(\"clickNode\", ({ node: o, event: s }) => {\n        if (s.original.shiftKey)\n          if (this.selectedNodes.has(o)) {\n            this.selectedNodes.delete(o);\n            return;\n          } else\n            this.selectedNodes.add(o);\n        else\n          this.selectedNodes = /* @__PURE__ */ new Set([o]);\n        this.selectedNode = o, this.displayNodeInfo(o);\n      }), this.renderer.on(\"clickStage\", () => {\n        this.selectedNodes = /* @__PURE__ */ new Set(), this.selectedNode = void 0, this.displayNodeInfo(), this.selectedEdge = void 0, this.displayEdgeInfo();\n      }), this.renderer.on(\"clickEdge\", ({ edge: o }) => {\n        this.selectedEdge !== o ? (this.selectedEdge = o, this.displayEdgeInfo(o)) : (this.selectedEdge = void 0, this.displayEdgeInfo());\n      }), this.renderer.on(\"enterEdge\", ({ edge: o }) => {\n        this.selectedEdge || this.displayEdgeInfo(o);\n      }), this.renderer.on(\"leaveEdge\", () => {\n        this.selectedEdge || this.displayEdgeInfo();\n      }), this.renderer.setSetting(\"nodeReducer\", (o, s) => {\n        const u = ht({}, s);\n        return this.hideClusters.size > 0 && this.hideClusters.has(s.cluster) && (u.hidden = !0), this.hoveredNeighbors && !this.hoveredNeighbors.has(o) && this.hoveredNode !== o && (u.hidden = !0), this.selectedNodes.has(o) ? (u.highlighted = !0, u.hidden = !1) : this.suggestions && (this.suggestions.has(o) ? (u.forceLabel = !0, u.hidden = !1) : u.hidden = !0), this.selectedEdge && this.graph.hasExtremity(this.selectedEdge, o) && (u.highlighted = !0, u.hidden = !1), u;\n      }), this.renderer.setSetting(\"edgeReducer\", (o, s) => {\n        const u = ht({}, s);\n        return this.selectedNode && !this.graph.hasExtremity(o, this.selectedNode) && (u.hidden = !0), this.hoveredNode && !this.graph.hasExtremity(o, this.hoveredNode) && (u.hidden = !0), this.selectedNodes && this.selectedNodes.size > 0 && (this.selectedNodes.has(this.graph.source(o)) || this.selectedNodes.has(this.graph.target(o)) ? u.hidden = !1 : u.hidden = !0), this.hoveredNode && this.graph.hasExtremity(o, this.hoveredNode) && (u.hidden = !1), this.selectedNode && this.graph.hasExtremity(o, this.selectedNode) && (u.zIndex = 9e3, u.color = \"red\", u.hidden = !1), o == this.selectedEdge && (u.color = \"blue\", u.hidden = !1), this.suggestions && (!this.suggestions.has(this.graph.source(o)) || !this.suggestions.has(this.graph.target(o))) && (u.hidden = !0), this.hidePredicates.size > 0 && this.hidePredicates.has(s.curie) && (u.hidden = !0), u;\n      }), this.renderPredicatesFilter(), this.renderClustersFilter();\n      const a = this.dom.querySelector(\"#suggestions\");\n      a.innerHTML = this.graph.nodes().sort().map((o) => `<option value=\"${this.graph.getNodeAttribute(o, \"label\")}\"></option>`).join(`\n`), setTimeout(() => {\n        var o;\n        e.kill(), (o = this.renderer) == null || o.refresh({ skipIndexation: !0 });\n      }, 3e3);\n    });\n  }\n  displayEdgeInfo(i) {\n    var e;\n    const t = this.dom.querySelector(\"#overview-edge-info\");\n    if (t.innerHTML = \"\", i) {\n      const r = this.graph.getEdgeAttributes(i), a = this.graph.extremities(i), o = r.triples ? `${r.triples.toLocaleString()}<br/>` : \"\";\n      t.innerHTML = \"<hr></hr>\", t.innerHTML += `<div style=\"text-align: center\">\n        ${o}\n        <code style=\"word-wrap: anywhere;\"><a href=\"${a[0]}\" target=\"_blank\">${this.graph.getNodeAttributes(a[0]).label}</a></code>\n        <br/>⬇️ <b><code><a href=\"${r.uri}\" style=\"word-break: break-word;\" target=\"_blank\">${r.curie}</a></code></b><br/>\n        <code style=\"word-wrap: anywhere;\"><a href=\"${a[1]}\" target=\"_blank\">${this.graph.getNodeAttributes(a[1]).label}</a></code>\n      </div>`, r.displayLabel && (t.innerHTML += `<p>${r.displayLabel}</p>`), r.comment && (t.innerHTML += `<p>${r.comment}</p>`);\n    }\n    (e = this.renderer) == null || e.refresh({ skipIndexation: !0 });\n  }\n  displayNodeInfo(i) {\n    var e;\n    const t = this.dom.querySelector(\"#overview-node-info\");\n    if (i) {\n      const r = this.graph.getNodeAttributes(i);\n      let a = \"\";\n      if (a = \"<hr></hr>\", a += `<h3><a href=\"${i}\" style=\"word-break: break-word;\" target=\"_blank\">${r.curie}</a></h3>`, r.displayLabel && (a += `<p>${r.displayLabel}</p>`), r.comment && (a += `<p>${r.comment}</p>`), r.cluster && (a += `<p><span title=\"In this graph\" style=\"display: inline-block; border-radius: 6px; padding: 0.1em 0.3em; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); background-color: ${this.clusters[r.cluster].color}\">\n          ${r.cluster}\n        </span></p>`), Object.keys(this.endpoints).length > 1) {\n        a += \"<p>Endpoint:\";\n        for (const o of r.endpoints)\n          a += `<br/><a href=\"${o}\">${o}</a>`;\n        a += \"</p>\";\n      }\n      r.datatypes.length > 0 && (a += '<h5 style=\"margin: .5em;\">Data properties:</h5>'), t.innerHTML = a;\n      for (const o of r.datatypes) {\n        const s = document.createElement(\"div\");\n        s.innerHTML = `<a href=\"${o.predUri}\">${o.predCurie}</a> <a href=\"${o.datatypeUri}\">${o.datatypeCurie}</a> (${o.count.toLocaleString()})`, t.appendChild(s);\n      }\n    } else\n      t.innerHTML = \"\";\n    (e = this.renderer) == null || e.refresh({ skipIndexation: !0 });\n  }\n  // https://www.sigmajs.org/storybook/?path=/story/use-reducers--story\n  setSearchQuery(i) {\n    var e, r, a;\n    this.searchQuery = i;\n    const t = this.dom.querySelector(\"#search-input\");\n    if (t.value !== i && (t.value = i), i) {\n      const o = i.toLowerCase(), s = this.graph.nodes().map((u) => ({ id: u, label: this.graph.getNodeAttribute(u, \"label\") })).filter(({ label: u }) => u.toLowerCase().includes(o));\n      if (s.length === 1 && s[0].label === i) {\n        this.selectedNode = s[0].id, this.displayNodeInfo(s[0].id), this.suggestions = void 0;\n        const u = (e = this.renderer) == null ? void 0 : e.getNodeDisplayData(this.selectedNode);\n        (r = this.renderer) == null || r.getCamera().animate(u, { duration: 500 });\n      } else\n        this.suggestions = new Set(s.map(({ id: u }) => u));\n    } else\n      this.suggestions = void 0;\n    (a = this.renderer) == null || a.refresh({ skipIndexation: !0 });\n  }\n  setHoveredNode(i) {\n    var t;\n    i && (this.hoveredNode = i, this.hoveredNeighbors = new Set(this.graph.neighbors(i))), i || (this.hoveredNode = void 0, this.hoveredNeighbors = void 0), (t = this.renderer) == null || t.refresh({\n      // partialGraph: {\n      //   nodes,\n      //   edges,\n      // },\n      // We don't touch the graph data so we can skip its reindexation\n      skipIndexation: !0\n    });\n  }\n  displayMsg(i, t = !1) {\n    const e = this.dom.querySelector(\"#loading-msg\");\n    i ? (e.style.color = t ? \"red\" : \"black\", e.innerHTML = i, e.style.display = \"\") : e.style.display = \"none\";\n  }\n  // Save graph metadata to localStorage\n  saveGraph() {\n    this.storedMeta[Object.keys(this.endpoints).join(\",\")] = {\n      prefixes: this.prefixes,\n      clusters: this.clusters,\n      // NOTE: array/set conversion does not seems to work\n      hidePredicates: Array.from(this.hidePredicates),\n      hideClusters: Array.from(this.hideClusters),\n      graph: this.graph.export()\n    };\n    const i = JSON.stringify(this.storedMeta);\n    try {\n      localStorage.setItem(\"sparql-overview-metadata\", i);\n    } catch (t) {\n      const r = new Blob([i]).size / (1024 * 1024);\n      console.warn(`Data exceeds localStorage limit (${r.toFixed(2)}/5 MB), will not use cache to store graph metadata.`);\n    }\n  }\n  // Load graph metadata from localStorage\n  loadGraph() {\n    const i = localStorage.getItem(\"sparql-overview-metadata\");\n    if (i) {\n      this.storedMeta = JSON.parse(i);\n      const t = this.storedMeta[Object.keys(this.endpoints).join(\",\")];\n      t && (this.prefixes = t.prefixes, this.clusters = t.clusters, this.hidePredicates = new Set(t.hidePredicates), this.hideClusters = new Set(t.hideClusters), this.graph.import(t.graph));\n    }\n  }\n  // TODO: NOT USED, remove, should be done in parent (e.g. sparql-editor)\n  // Fetch endpoints metadata in parallel (prefixes, VoID)\n  // async fetchEndpointsMetadata(endpoints: string[]) {\n  //   const prefixes: {[key: string]: string} = {};\n  //   const metadata: any = {};\n  //   // Function to fetch prefixes and VoID data for one endpoint\n  //   const fetchEndpointMetadata = async (endpoint: string) => {\n  //     try {\n  //       const [endpointPrefixes, voidInfo] = await Promise.all([getPrefixes(endpoint), getVoidDescription(endpoint)]);\n  //       // Merge results\n  //       Object.assign(prefixes, endpointPrefixes); // Merge prefixes into shared object\n  //       metadata[endpoint] = {prefixes: endpointPrefixes, void: voidInfo};\n  //     } catch (err) {\n  //       this.displayMsg(`Error fetching metadata for endpoint ${endpoint}: ${err}`, true);\n  //     }\n  //   };\n  //   // Run all endpoint metadata fetches in parallel\n  //   await Promise.all(endpoints.map(fetchEndpointMetadata));\n  //   return {prefixes, metadata};\n  // }\n  renderPredicatesFilter() {\n    const i = this.dom.querySelector(\"#overview-predicates-list\");\n    i.innerHTML = \"\", this.predicates = {}, this.graph.forEachEdge((e, r, a, o) => {\n      this.hideClusters.has(this.graph.getNodeAttribute(a, \"cluster\")) || this.hideClusters.has(this.graph.getNodeAttribute(o, \"cluster\")) || (this.predicates[r.curie] ? this.predicates[r.curie].count += 1 : this.predicates[r.curie] = { count: 1, label: r.label });\n    });\n    const t = Object.entries(this.predicates).sort((e, r) => r[1].count - e[1].count);\n    for (const [e, r] of t) {\n      const a = document.createElement(\"input\");\n      a.type = \"checkbox\", a.id = e, a.checked = !0, a.onchange = () => this.togglePredicate(e, a.checked);\n      const o = document.createElement(\"label\");\n      o.htmlFor = e, o.title = e, o.textContent = `${r.label} (${r.count.toLocaleString()})`;\n      const s = document.createElement(\"div\");\n      s.appendChild(a), s.appendChild(o), i.appendChild(s);\n    }\n  }\n  togglePredicate(i, t) {\n    var e;\n    t ? this.hidePredicates.delete(i) : this.hidePredicates.add(i), (e = this.renderer) == null || e.refresh({ skipIndexation: !0 });\n  }\n  renderClustersFilter() {\n    const i = this.dom.querySelector(\"#overview-clusters-list\");\n    i.innerHTML = \"\";\n    const t = Object.entries(this.clusters).sort((e, r) => r[1].count - e[1].count);\n    for (const [e, r] of t) {\n      if (r.count === 0)\n        continue;\n      const a = document.createElement(\"input\");\n      a.type = \"checkbox\", a.id = e, a.checked = !0, a.onchange = () => this.toggleCluster(e, a.checked);\n      const o = document.createElement(\"label\");\n      r.color && (o.style.color = r.color), o.htmlFor = e, o.textContent = `${e} (${r.count})`, Object.keys(this.endpoints).length > 1 && (o.title = r.endpoint), e == as && (o.title = \"Show metadata classes (ontology, SHACL, VoID, examples)\");\n      const s = document.createElement(\"div\");\n      s.appendChild(a), s.appendChild(o), i.appendChild(s);\n    }\n  }\n  toggleCluster(i, t) {\n    var e;\n    t ? this.hideClusters.delete(i) : this.hideClusters.add(i), this.renderPredicatesFilter(), (e = this.renderer) == null || e.refresh({ skipIndexation: !0 });\n  }\n  getCurie(i) {\n    return rs(this.prefixes, i);\n  }\n}\nexport {\n  ss as SparqlOverview\n};\n//# sourceMappingURL=sparql-overview.js.map\n",null],"names":["e","t","n","r","i","o","a","s","l","u","c","p","d","f","h","g","m","v","E","y","b","A","x","T","S","L","N","C","I","_","R","w","O","D","P","k","M","F","B","G","j","U","H","q","V","W","z","Q","X","$","Y","K","J","Z","ee","te","ne","re","ie","oe","ae","se","le","ue","ce","pe","de","fe","he","ge","me","ve","Ee","ye","be","Ne","xe","Te","Ae","Se","Le","Ce","Ie","_e","Re","we","Oe","De","Pe","ke","Me","Fe","Be","Ge","je","Ue","He","qe","Ve","We","ze","Qe","Xe","$e","Ye","Ke","Je","Ze","et","tt","nt","rt","it","ot","at","st","lt","ut","ct","pt","dt","ft","ht","gt","mt","Lt","vt","Et","yt","bt","xt","Tt","At","St","Nt","Ct","It","_t","Rt","wt","Ot","Dt","Pt","kt","Mt","Ft","Bt","Gt","jt","Ut","Ht","qt","Vt","Wt","zt","Qt","Xt","$t","Yt","Kt","Jt","Zt","en","tn","nn","on","an","ln","rn","sn","un","cn","pn","dn","fn","hn","gn","En","bn","yn","xn","mn","vn","An","Tn","Sn","Ln","Nn","Cn","In","_n","Rn","wn","On","Dn","Pn","kn","Bn","Fn","Mn","gr","cr","Un","Hn","ur","jn","Gn","qn","Vn","Wn","zn","Qn","Xn","$n","Yn","Kn","Jn","Zn","er","tr","or","nr","rr","ir","sr","ar","lr","pr","dr","fr","hr","mr","Er","yr","vr","br","xr","Tr","Ar","Lr","Sr","Nr","Rr","Cr","_r","Ir","wr","Or","Dr","Pr","kr","Br","Mr","Fr","Gr","jr","fi","Ur","li","Hr","mi","qr","Vr","Wr","zr","Qr","Xr","$r","Yr","Kr","Jr","Zr","ei","ti","ni","ri","ci","pi","gi","di","ii","oi","ai","si","ui","vi","hi","Ei","yi","bi","xi","Ti","Ai","Si","Li","Ni","Ci","Ii","_i","Ri","wi","Oi","Di","Pi","ki","Mi","Fi","Bi","Gi","ji","Ui","Hi","qi","Xi","Vi","Wi","Qi","zi","$i","Yi","Ki","Ji","Zi","io","eo","to","no","ro","oo","ao","lo","so","co","uo","po","fo","ho","go","mo","yo","Ao","vo","Eo","bo","xo","To","So","Lo","No","Co","Io","_o","Ro","wo","Oo","Do","Po","ko","Mo","Oa","Fo","Bo","Go","jo","Uo","Ho","qo","Vo","Wo","zo","Qo","Xo","$o","Yo","Ko","ta","Jo","Zo","ea","na","ra","ia","oa","aa","sa","la","ua","ca","pa","da","fa","ha","ga","ma","va","Ea","ya","ba","xa","Sa","Ta","Aa","La","Na","Ca","Ia","_a","Ra","wa","Da","Pa","ka","Ma","Fa","Ga","Ba","ja","Ua","Ha","qa","Va","Wa","za","Qa","Xa","$a","Ya","Ka","Ja","deepFreeze","obj","name","prop","type","Response","mode","escapeHTML","value","inherit$1","original","objects","result","key","SPAN_CLOSE","emitsWrappingTags","node","scopeToCSSClass","prefix","pieces","HTMLRenderer","parseTree","options","text","className","newNode","opts","TokenTree","scope","builder","child","el","TokenTreeEmitter","emitter","source","lookahead","concat","anyNumberOfTimes","optional","args","stripOptionsFromArgs","either","countMatchGroups","startsWith","lexeme","match","BACKREF_RE","_rewriteBackreferences","regexps","joinWith","numCaptures","regex","offset","out","MATCH_NOTHING_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","SHEBANG","beginShebang","resp","BACKSLASH_ESCAPE","APOS_STRING_MODE","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","begin","end","modeOptions","ENGLISH_WORD","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","MODES","skipIfHasPrecedingDot","response","scopeClassName","_parent","beginKeywords","parent","compileIllegal","compileMatch","compileRelevance","beforeMatchExt","originalMode","COMMON_KEYWORDS","DEFAULT_KEYWORD_SCOPE","compileKeywords","rawKeywords","caseInsensitive","scopeName","compiledKeywords","compileList","keywordList","keyword","pair","scoreForKeyword","providedScore","commonKeyword","seenDeprecations","error","message","warn","deprecated","version","MultiClassError","remapScopeNames","regexes","scopeNames","emit","positions","beginMultiClass","endMultiClass","scopeSugar","MultiClass","compileLanguage","language","langRe","global","MultiRegex","terminators","matchData","ResumableMultiRegex","index","matcher","m2","buildModeRegex","mm","term","compileMode","cmode","ext","keywordPattern","expandOrCloneMode","dependencyOnParent","variant","HTMLInjectionError","reason","html","escape","inherit","NO_MATCH","MAX_KEYWORD_HITS","HLJS","hljs","languages","aliases","plugins","SAFE_MODE","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","shouldNotHighlight","languageName","blockLanguage","block","classes","getLanguage","_class","highlight","codeOrLanguageName","optionsOrCode","ignoreIllegals","code","context","fire","_highlight","codeToHighlight","continuation","keywordHits","keywordData","matchText","processKeywords","top","modeBuffer","lastIndex","buf","word","data","kind","keywordRelevance","relevance","cssClass","emitKeyword","processSubLanguage","continuations","highlightAuto","processBuffer","emitMultiClass","max","klass","startNewMode","endOfMode","matchPlusRemainder","matched","doIgnore","resumeScanAtSamePosition","doBeginMatch","newMode","beforeCallbacks","cb","doEndMatch","endMode","origin","processContinuations","list","current","item","lastMatch","processLexeme","textBeforeMatch","err","processed","iterations","md","beforeMatch","processedCount","justTextHighlightResult","languageSubset","plaintext","results","autoDetection","sorted","best","secondBest","updateClassName","element","currentLang","resultLang","highlightElement","configure","userOptions","initHighlighting","highlightAll","initHighlightingOnLoad","wantsHighlight","boot","registerLanguage","languageDefinition","lang","error$1","registerAliases","unregisterLanguage","alias","listLanguages","aliasList","upgradePluginAPI","plugin","addPlugin","removePlugin","event","deprecateHighlightBlock","KEYWORDS","IRI_LITERAL","PN_CHARS_BASE","PN_CHARS_U","PN_CHARS","BLANK_NODE_LABEL","PN_PREFIX","PLX","PNAME_NS","PN_LOCAL","PNAME_LN","PNAME","BLANK_NODE","LANGTAG","DATATYPE","TRIPLE_APOS_STRING","TRIPLE_QUOTE_STRING","APOS_STRING_LITERAL","QUOTE_STRING_LITERAL","NUMBER","ttl","VARIABLE","EXPANDED_IRI","JSON_QUOTE_STRING","JSON_APOS_STRING","prefixes","uri","longestPrefix","query","subjectTypeMap","cleanQuery","typePattern","subject","types","subjectTypes","lineNumber","charNumber","lines","partOfLine","partialLines","subjectMatch","partialQuery","serviceRegex","serviceUri","serviceStart","braceDepth","serviceEnd","cursorPosition","useBtn","description","ignoreStopwords","ref","iter","uint32Index","size","defaultIndex","maybeCollection","maybeKeyed","maybeIndexed","maybeAssociative","Collection","KeyedCollection","IndexedCollection","SetCollection","maybeSeq","maybeRecord","maybeImmutable","maybeOrdered","Iterator","next","toString","iteratorResult","maybeIterable","maybeIterator","iterable","iteratorFn","Seq","reverse","cache","entry","KeyedSeq","IndexedSeq","SetSeq","ArraySeq","array","notSetValue","ObjectSeq","object","keys","CollectionSeq","collection","iterator","step","seq","maybeMap","maybeOrderedMap","maybeValue","is","valueA","valueB","imul","i32","hash","nullish","string","hashed","sym","nextHash","ToKeyedSequence","indexed","useKeys","this$1$1","reversedSequence","mapper","mappedSequence","ToIndexedSequence","ToSetSequence","FromEntriesSequence","entries","indexedCollection","flipSequence","predicate","filterSequence","grouper","groups","Map","isKeyedIter","coerce","arr","originalSize","resolvedBegin","resolvedEnd","resolvedSize","sliceSize","sliceSeq","skipped","isSkipping","takeSequence","iterating","skipSequence","skipping","values","isKeyedCollection","iters","singleton","concatSeq","sum","depth","flatSequence","stopped","flatDeep","currentDepth","stack","separator","interposedSequence","comparator","comp","keyIter","zipper","zipAll","zipSequence","sizes","iterators","isDone","steps","len","newArr","invariant","condition","keyPath","proto","parentProto","nextProto","from","collectionCopy","updater","updatedValue","inImmutable","existing","wasNotSet","existingValue","newValue","nextExisting","nextUpdated","merger","collections","collection$1","mergeIntoCollection","oldVal","merge","sources","isArray","merged","mergeItem","hasVal","nextVal","deepMerger","oldValue","oldDataStructure","newDataStructure","oldSeq","newSeq","mutable","map","keyValues","ownerID","ArrayMapNode","get","shift","keyHash","update","didChangeSize","didAlter","removed","idx","exists","isEditable","newEntries","BitmapIndexedNode","bitmap","nodes","bit","keyHashFrag","newBitmap","newNodes","HashArrayMapNode","count","newCount","HashCollisionNode","ValueNode","keyMatch","maxIndex","MapIterator","subNode","prev","root","newRoot","newSize","idx1","idx2","excluding","packedII","packedNodes","including","expandedNodes","val","canEdit","newArray","newLen","after","maybeList","List","empty","oldSize","arguments$1","seqs","argument","VNode","removeBefore","level","originIndex","removingFirst","newChild","oldChild","editable","removeAfter","sizeIndex","left","right","tailPos","tail","iterateNodeOrLeaf","iterateLeaf","iterateNode","capacity","newTail","nodeHas","lowerNode","newLowerNode","rawIndex","owner","oldOrigin","oldCapacity","newOrigin","newCapacity","newLevel","offsetShift","oldTailOffset","newTailOffset","oldTail","beginIndex","OrderedMap","newMap","newList","omap","has","maybeStack","Stack","head","maybeSet","maybeOrderedSet","notAssociative","flipped","allEqual","bSize","ctor","methods","keyCopier","result$1","Set","set","sets","didChanges","mapped","toRemove","Range","start","searchValue","possibleIndex","offsetValue","other","searchKeyPath","toArray","useTuples","toIndexedSeq","toJS$1","toKeyedSeq","toMap","toOrderedMap","toOrderedSet","toSet","toSetSeq","toSeq","toStack","toList","__toString","includes","every","returnValue","filter","partition","find","forEach","sideEffect","join","joined","isFirst","reduce$1","reducer","initialReduction","reduceRight","slice","some","sort","butLast","isEmpty","countBy","equals","entrySeq","entriesSequence","filterNot","findEntry","found","findKey","findLast","findLastEntry","findLastKey","first","flatMap","flatten","fromEntrySeq","searchKey","groupBy","isSubset","isSuperset","keyOf","keySeq","last","lastKeyOf","maxBy","min","minBy","rest","skip","amount","skipLast","skipWhile","skipUntil","sortBy","take","takeLast","takeWhile","takeUntil","valueSeq","hashCode","flip","mapEntries","mapKeys","findIndex","indexOf","lastIndexOf","splice","removeNum","numArgs","spliced","findLastIndex","interpose","interleave","zipped","interleaved","zip","zipWith","reduction","useFirst","ordered","keyed","OrderedSet","defaultValues","Record","hasInitialized","RecordType","indices","RecordTypePrototype","propName","str","newValues","remove","clear","wasAltered","__iterator","__iterate","__ensureOwner","likeRecord","record","prototype","Repeat","times","converter","parentValue","converted","ActionContext_1","immutable_1","require$$0","ActionContext$1","ActionContext","contexts","keyName","ActionContextKey","maybeActionContext","Bus_1","Bus$1","actor","observer","action","output","dependent","dependencies","dependency","existingDependencies","actorsAfter","actorAfter","dependentPos","activeActorAfterId","validLink","activeActorAfter","Bus","BusIndexed_1","BusIndexed$1","actorIds","actorId","actors","unsubscribed","actionId","identifierValue","field","BusIndexed","ActionObserver_1","ActionObserver$1","ActionObserver","Actor_1","ContextEntries_1","Actor$1","Actor","sideData","dataActual","logger","Mediator_1","Mediator$1","Mediator","actorFailures","path","passTest","TestResultPassed","passTestVoid","passTestWithSideData","passTestVoidWithSideData","failTest","TestResultFailed","passValue","failMessage","__createBinding","this","k2","desc","__exportStar","exports","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","ActorInit_1","core_1","ActorInit$1","ActorInit","ActorInitQueryBase_1","bus_init_1","ActorInitQueryBase$1","_action","ActorInitQueryBase","process","browserModule","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","Item","noop","dir","ActorInitQuery","QueryEngineBase_1","context_entries_1","QueryEngineBase$1","QueryEngineBase","actorInitQuery","expectedType","explainMode","actionContext","queryResult","mediaType","handle","url","internalResult","meta","variable","finalResult","Bindings","Logger_1","Logger$1","Logger","ExpressionEvaluator","ExpressionType","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","LoggerVoid_1","types_1","LoggerVoid$1","LoggerVoid","ActorFunctionFactory_1","ActorFunctionFactory$1","ActorFunctionFactory","MediatorFunctionFactory","ActorFunctionFactoryDedicated_1","ActorFunctionFactoryDedicated$1","ActorFunctionFactoryDedicated","BusFunctionFactory_1","BusFunctionFactory$1","BusFunctionFactory","BlankNode_1","BlankNode","DefaultGraph_1","DefaultGraph","NamedNode_1","NamedNode","Literal_1","Literal","languageOrDatatype","Quad_1","Quad","graph","Variable_1","Variable","DataFactory_1","dataFactoryCounter","DataFactory","TermUtil","rdf_data_factory_1","FACTORY","termToString","literalValue","getLiteralValue","getLiteralType","getLiteralLanguage","stringToTerm","dataFactory","terms","stringTerms","ignoreTags","inQuote","char","escaped","quadToStringQuad","stringQuadToQuad","stringQuad","TermUtil_1","equal","length","expressionTypes","Wildcard$1","WILDCARD","Wildcard","Wildcard_1","SparqlParser","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","$Va","$Vb","$Vc","$Vd","$Ve","$Vf","$Vg","$Vh","$Vi","$Vj","$Vk","$Vl","$Vm","$Vn","$Vo","$Vp","$Vq","$Vr","$Vs","$Vt","$Vu","$Vv","$Vw","$Vx","$Vy","$Vz","$VA","$VB","$VC","$VD","$VE","$VF","$VG","$VH","$VI","$VJ","$VK","$VL","$VM","$VN","$VO","$VP","$VQ","$VR","$VS","$VT","$VU","$VV","$VW","$VX","$VY","$VZ","$V_","$V$","$V01","$V11","$V21","$V31","$V41","$V51","$V61","$V71","$V81","$V91","$Va1","$Vb1","$Vc1","$Vd1","$Ve1","$Vf1","$Vg1","$Vh1","$Vi1","$Vj1","$Vk1","$Vl1","$Vm1","$Vn1","$Vo1","$Vp1","$Vq1","$Vr1","$Vs1","$Vt1","$Vu1","$Vv1","$Vw1","$Vx1","$Vy1","$Vz1","$VA1","$VB1","$VC1","$VD1","$VE1","$VF1","$VG1","$VH1","$VI1","$VJ1","$VK1","$VL1","$VM1","$VN1","$VO1","$VP1","$VQ1","$VR1","$VS1","$VT1","$VU1","$VV1","$VW1","$VX1","$VY1","$VZ1","$V_1","$V$1","$V02","$V12","$V22","$V32","$V42","$V52","$V62","$V72","$V82","$V92","$Va2","$Vb2","$Vc2","$Vd2","$Ve2","$Vf2","$Vg2","$Vh2","$Vi2","$Vj2","$Vk2","$Vl2","$Vm2","$Vn2","$Vo2","$Vp2","$Vq2","$Vr2","$Vs2","$Vt2","$Vu2","$Vv2","$Vw2","$Vx2","$Vy2","$Vz2","$VA2","parser","yytext","yyleng","yylineno","yy","yystate","$$","_$","$0","Parser","insertBnodesAll","insertBnodes","operation","triple","bnode","resolveIRI","groupDatasets","vars","getAggregatesOfExpression","agg","selectVar","groupVar","getExpressionId","usedVars","getVariablesFromExpression","usedVar","subqueries","selectedVarIds","subqueryIds","sub","selectedVarId","extend","appendAllTo","duplicates","getDuplicatesInArray","lowercase","expression","toInt","toVar","valuesObject","appendTo","ensureNoVariables","ensureNoBnodes","unionAll","binding","boundVars","getBoundVarsFromGroupGraphPattern","boundVar","ensureSparqlStar","degroupSingle","applyAnnotations","objectListToTriples","RDF_TYPE","createList","createAnonymousObject","RDF_NIL","createOperationTree","negatedLiteral","createTypedLiteral","createLangLiteral","XSD_INTEGER","XSD_DECIMAL","XSD_DOUBLE","XSD_BOOLEAN","unescapeString","namePos","expansion","uriString","blank","nestedTriple","input","self","vstack","lstack","table","TERROR","EOF","lexer","sharedState","yyloc","ranges","lex","token","symbol","state","yyval","newState","expected","errStr","RDF","RDF_FIRST","RDF_REST","XSD","base","basePath","baseRoot","items","arg","union","iri","operatorName","expr","attr","initialExpression","operationList","fromClauses","groupName","defaults","named","fromClause","group","annotations","blankId","escapeSequence","escapeReplacements","partialSurrogatesWithoutEndpoint","fromCharCode","trimLength","sequence","unicode4","unicode8","escapedChar","charCode","replacement","listItems","listTriples","triples","propertyList","entity","objectList","otherTriples","annotation","aggregates","variables","visitExpression","isVariable","pattern","pat","sortedArray","_applyAnnotations","newTriples","operations","ch","oldLines","past","pre","indexed_rule","backup","tempMatch","rules","yy_","$avoiding_name_collisions","YY_START","XSD_STRING","Generator","prefixIris","isString","iriList","mapJoin","isTerm","variableToString","bgp","parts","equalTerms","graphs","inline","bind","minus","valuesList","lparen","rparen","service","escapeReplacer","operator","lexical","datatype","prefixMatch","term1","term2","sep","func","_Generator","currentOptions","_Parser","baseIRI","factory","pathOnly","sparqlStar","skipValidation","skipUngroupedVariableCheck","prefixesCopy","sparql","__setModuleDefault","__importStar","mod","rdf_string_1","sparqljs_1","Factory","aggregate","distinct","patterns","template","def","iris","expressions","silent","bindings","aggregator","not","updates","deleteQuads","insertQuads","where","destination","children","newChildren","QuadTermUtil","DF","getTerms","quad","ignoreDefaultGraph","getTermsNested","subTerm","getNamedTerms","collectNamedTerms","namedTerms","defaultCb","elements","namedTerm","forEachTerms","forEachTermsNested","filterTerms","filterTermsNested","filterQuadTermNames","names","filterQuadTermNamesNested","keysS","keysP","keysO","keysG","mapTerms","mapTermsNested","reduceTerms","initialValue","reduceTermsNested","everyTerms","checker","everyTermsNested","someTerms","someTermsNested","getValueNestedPath","matchTerm","termA","termB","matchPatternComplete","matchPattern","matchPatternMappings","opt","_pattern","_quad","t1","_b","t2","uniqTerms","termString","getTermsOfType","termType","getNamedNodes","getBlankNodes","getLiterals","getVariables","getDefaultGraphs","getQuads","__importDefault","util","algebra_1","factory_1","rdf_terms_1","Util","algebra","op","addVariable","v2","recurseTerm","callbacks","doRecursion","callback","recurseOp","copyMetadata","recurseResult","toCopyMetadata","mapOp","label","counter","labelLoop","Algebra","util_1","varCount","useQuads","translate","translateQuery","quads","blankToVariable","res","findAllVariables","translateGraphPattern","translateAggregates","translateUpdate","translateBlankNodesToVariables","isTriple","thingy","inScopeVariables","inScope","translateBgp","recurseGraph","translateInlineData","filters","nonfilters","accumulateGroupGraphPattern","translateExpression","acc","exp","joins","translatePath","translateQuad","pred","translatePathPredicate","simplifyPath","normals","inverted","normalElement","invertedElement","joiner","subOp","nextJoiner","generateFreshVar","simplifiedPath","typeVals","simplifiedJoin","select","mapAggregate","translateBoundAggregate","PV","subthingy","translateSingleUpdate","translateUpdateGraphLoad","translateUpdateGraph","translateUpdateGraphShortcut","translateInsertDelete","deleteTriples","insertTriples","translateUpdateTriplesBlock","use","currentGraph","currentTriples","blankToVariableMapping","variablesRaw","assert","msg","inherits_browserModule","superCtor","TempCtor","inherits","utils","isSurrogatePair","enc","toHex","zero2","htonl","toHex32","endian","zero8","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","pos","ah","al","bh","bl","sum64_hi","sum64_lo","sum64_4_hi","cl","dh","dl","carry","sum64_4_lo","sum64_5_hi","eh","sum64_5_lo","rotr64_hi","num","rotr64_lo","shr64_hi","shr64_lo","BlockHash","common","bytes","ft_1","ch32","p32","maj32","s0_256","s1_256","g0_256","g1_256","shaCommon","sha1_K","SHA1","sha256_K","SHA256","T1","T2","SHA224","sha512_K","SHA512","c0_hi","g1_512_hi","c0_lo","g1_512_lo","c1_hi","c1_lo","c2_hi","g0_512_hi","c2_lo","g0_512_lo","c3_hi","c3_lo","fh","fl","gh","gl","hh","hl","s1_512_hi","s1_512_lo","ch64_hi","ch64_lo","c4_hi","c4_lo","T1_hi","T1_lo","s0_512_hi","s0_512_lo","maj64_hi","maj64_lo","T2_hi","T2_lo","xh","xl","yh","yl","zh","zl","SHA384","RIPEMD160","Ah","Bh","Ch","Dh","Eh","rh","Kh","sh","Hmac","hash_js_1","isomorphic","graphA","graphB","getBijection","nonBlankIndexA","indexGraph","getQuadsWithoutBlankNodes","nonBlankIndexB","blankQuadsA","uniqGraph","getQuadsWithBlankNodes","blankQuadsB","blankNodesA","getGraphBlankNodes","blankNodesB","getBijectionInner","groundedHashesA","groundedHashesB","hashesA","ungroundedHashesA","hashTerms","hashesB","ungroundedHashesB","hashKeyA","hasValue","bijection","blankNodeA","blankNodeAString","blankNodeAHash","blankNodeBString","arraysEqual","hashValues","blankNodeB","sha1hex","array1","array2","hashValue","deindexGraph","indexedGraph","groundedHashes","hashes","ungroundedHashes","hashNeeded","initialGroundedNodesCount","grounded","hashTerm","uniques","termKey","quadSignatures","quadTerm","quadToSignature","isTermGrounded","termToSignature","target","rdf_isomorphic_1","eTypes","toSparql","toSparqlJs","resetContext","removeQuads","translateOperation","translateProject","translateConstruct","translateDistinct","translateExtend","translateFrom","translateFilter","translateGraph","translateGroup","translateJoin","translateLeftJoin","translateMinus","translateOrderBy","translatePattern","translateReduced","translateService","translateSlice","translateUnion","translateValues","translateCompositeUpdate","translateDeleteInsert","translateLoad","translateClear","translateCreate","translateDrop","translateAdd","translateMove","translateCopy","translateAggregateExpression","translateExistenceExpression","translateNamedExpression","translateOperatorExpression","translateTermExpression","translateWildcardExpression","translatePathComponent","translateAlt","translateInv","translateLink","translateNps","translateOneOrMorePath","translateSeq","translateZeroOrMorePath","translateZeroOrOnePath","translateTerm","arrayToPattern","aggs","leftjoin","replaceAggregatorVariables","order","aggregators","extensions","extensionEntries","objectContainsValues","vals","inv","convertUpdatePatterns","removeQuadsRecursive","translateClearCreateDrop","keyGraphs","globalNames","newGraphs","graphNameSet","splitBgpToGraphs","graphPatterns","graphName","sparqlAlgebra_1","sparql_1","asTermType","TypeAlias","typedLiteral","TypeURL","SparqlOperator","ExpressionError","isExpressionError","InvalidLexicalForm","pp","UnboundVariableError","EBVCoercionError","RDFEqualTypeError","CoalesceError","errors","InError","InvalidArgumentTypes","CastError","cast","InvalidTimezoneCall","dateString","IncompatibleLanguageOperation","arg1","arg2","EmptyAggregateError","ParseError","UnexpectedError","payload","InvalidArity","InvalidExpression","ExtensionFunctionError","functionError","NoAggregator","numSerializer","serializeDateTime","date","serializeDate","serializeTime","serializeTimeZone","tz","time","serializeDuration","dur","zeroString","sign","year","month","day","dayNotation","hour","minute","second","OverloadTree_1","expressions_1","TypeHandling_1","OverloadTree$1","OverloadTree","identifier","overrideType","generalType","overloadTree","superTypeProvider","functionArgumentsCache","cacheIter","searchIndex","literalExpression","searchStack","startIndex","getDefault","lruCache","argumentTypes","promotionCount","argumentType","_argumentTypes","nextTree","ret","typeToPromote","conversionFunction","funcConf","openWorldType","concreteType","subExtensionTable","matches","matchType","tree","prioA","matchTypeA","prioB","matchTypeB","sortedType","Consts_1","Err","declare","Builder","expressionEvaluator","argTypes","addInvalidHandling","impl","a1","a2","a3","a4","t3","lit","evalHelper","integer","decimal","float","double","test","bool","langString","dateTime","expressionToVar","variableExpression","Helpers_1","getSuperTypes","cached","subExtension","knownValue","asKnownLiteralType","extensionTableInit","_key","extensionTableBuilderInitKey","baseRes","initTypeAliasCheck","asTypeAlias","asOverrideType","asGeneralType","isInternalSubType","baseType","getSuperTypeDict","isSubTypeOf","Term_1","Serialization_1","Term","isLiteralTermExpression","typedValue","dataType","strValue","NumericLiteral","IntegerLiteral","DecimalLiteral","FloatLiteral","DoubleLiteral","jsExponential","jsMantisse","jsExponent","exponent","BooleanLiteral","LangStringLiteral","StringLiteral","DateTimeLiteral","TimeLiteral","DateLiteral","DurationLiteral","DayTimeDurationLiteral","YearMonthDurationLiteral","NonLexicalLiteral","isNonLexicalLiteral","Operator_1","Operator$1","apply","Operator","Aggregate_1","Aggregate$1","Aggregate","Existence_1","Existence$1","Existence","defaultedDayTimeDurationRepresentation","rep","defaultedYearMonthDurationRepresentation","defaultedDurationRepresentation","simplifyDurationRepresentation","temp","years","days","hours","minutes","defaultedDateTimeRepresentation","toDateTimeRepresentation","timeZone","negateDuration","toJSDate","toUTCDate","defaultTimezone","localTime","minutesCorrectionLocal","hourCorrectionUTC","minutesCorrectionUTC","trimToYearMonthDuration","trimToDayTimeDuration","yearMonthDurationsToMonths","dayTimeDurationsToSeconds","extractRawTimeZone","zoneContained","extractTimeZone","DateTimeHelpers_1","fDiv","high","low","intDiv","maximumDayInMonthFor","yearValue","monthValue","additionalYears","addDurationToDateTime","duration","newDate","tempDiv","elapsedDuration","defaultTimeZone","d1","d2","diff","Errors_1","SpecAlgos_1","parseXSDFloat","numb","parseXSDDecimal","parseDateTime","dateTimeStr","parseDate","__parseTime","parseTimeZone","timeZoneStr","dateStr","formatted","dateStrings","timeStr","timeStrings","parseTime","parseDuration","durationStr","timeNotation","formattedDayDur","durationStrings","formattedTimeDur","parseYearMonthDuration","parseDayTimeDuration","TermTransformer_1","RDFString","sparqlalgebrajs_1","Parsing_1","TermTransformer$1","superTypeDict","dateVal","intVal","isFloat","isDouble","doubleVal","TermTransformer","commonjs","perf","warned","PROCESS","emitWarning","AC","AS","__publicField","warnACPolyfill","printACPolyfillWarning","shouldWarn","isPosInt","getUintArray","ZeroArray","_Stack","HeapCls","__privateGet","_constructing","__privateSet","__privateAdd","_LRUCache","_LRUCache_instances","_max","_maxSize","_dispose","_disposeAfter","_fetchMethod","_memoMethod","_size","_calculatedSize","_keyMap","_keyList","_valList","_next","_prev","_head","_tail","_free","_disposed","_sizes","_starts","_ttls","_hasDispose","_hasFetchMethod","_hasDisposeAfter","_updateItemAge","_statusTTL","_setItemTTL","_isStale","_removeItemSize","_addItemSize","_s","_st","_requireSize","_k","_v","sizeCalculation","ttlResolution","ttlAutopurge","updateAgeOnGet","updateAgeOnHas","allowStale","dispose","disposeAfter","noDisposeOnSet","noUpdateTTL","maxSize","maxEntrySize","fetchMethod","memoMethod","noDeleteOnFetchRejection","noDeleteOnStaleGet","allowStaleOnFetchRejection","allowStaleOnFetchAbort","ignoreFetchAbort","UintArray","__privateMethod","initializeSizeTracking_fn","initializeTTLTracking_fn","isBackgroundFetch_fn","backgroundFetch_fn","moveToTail_fn","indexes_fn","rindexes_fn","getOptions","thisp","deleted","delete_fn","remain","age","setOptions","status","evict_fn","__privateWrapper","task","_c","hasOptions","peekOptions","fetchOptions","forceRefresh","signal","stale","isStale","staleVal","memoOptions","vv","fetching","clear_fn","ttls","starts","cachedNow","getNow","isValidIndex_fn","free","ac","fetchOpts","updateCache","aborted","ignoreAbort","fetchFail","bf","eb","allowStaleAborted","noDelete","pcall","rej","fmp","connect_fn","LRUCache","lru_cache_1","prepareEvaluatorActionContext","orgContext","extensionFunctions","functionNamedNode","Context_1","DateTimeHelpers_2","utils_expression_evaluator_1","ExpressionFunctionBase","arity","TermFunctionBase","overloads","exprEval","mapping","ActorQueryOperation_1","ActorQueryOperation$1","ActorQueryOperation","MetadataValidationState_1","MetadataValidationState$1","listener","invalidateListener","MetadataValidationState","Utils","getMetadataQuads","cachifyMetadata","resolve","reject","metadata","metadataRaw","validateMetadataQuads","getMetadataBindings","validateMetadataBindings","lastReturn","lastReturnValue","ActorQueryOperationTyped_1","utils_metadata_1","ActorQueryOperationTyped$1","operationName","physicalQueryPlanLogger","subContext","ActorQueryOperationTyped","ActorQueryOperationTypedMediated_1","ActorQueryOperationTypedMediated$1","ActorQueryOperationTypedMediated","BusQueryOperation_1","BusQueryOperation$1","BusQueryOperation","ActorContextPreprocess_1","ActorContextPreprocess$1","ActorContextPreprocess","ActorContextPreprocessConvertShortcuts_1","bus_context_preprocess_1","ActorContextPreprocessConvertShortcuts$1","ActorContextPreprocessConvertShortcuts","contextKeyShortcuts","ActorContextPreprocessSetDefaults_1","ActorContextPreprocessSetDefaults$1","queryFormat","ActorContextPreprocessSetDefaults","ActorContextPreprocessSourceToDestination_1","ActorContextPreprocessSourceToDestination$1","ActorContextPreprocessSourceToDestination","ReflectApply","receiver","ReflectOwnKeys","ProcessEmitWarning","warning","NumberIsNaN","EventEmitter","eventsModule","once","defaultMaxListeners","checkListener","_getMaxListeners","that","doError","events","handler","listeners","arrayClone","_addListener","prepend","onceWrapper","_onceWrap","wrapped","position","originalListener","spliceOne","_listeners","unwrap","evlistener","unwrapListeners","listenerCount","copy","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","LinkedList","resolved","createTaskScheduler","scheduleMicrotask","scheduleMacrotask","queued","events_1","linkedlist_1","taskScheduler","scheduleTask","getTaskScheduler","setTaskScheduler","scheduler","AsyncIterator","initialState","waitForDataListener","eventAsync","valid","cause","destroy","readable","details","limit","resolveItems","pushItem","propertyName","properties","propertyCallbacks","propertyNames","SimpleTransformIterator","MappingIterator","by","identity","append","ClonedIterator","currentResolve","currentReject","pendingError","tryResolve","tryReject","removeListeners","eventName","addSingleListener","emitData","EmptyIterator","SingletonIterator","ArrayIterator","autoStart","preserve","buffer","IntegerIterator","ascending","direction","ensureSourceAvailable","destinationClose","destinationEmitError","destinationSetReadable","allowDestination","isFunction","BufferedIterator","maxBufferSize","doneCalled","done","neededItems","TransformIterator","isSourceExpression","isEventEmitter","isPromise","destinationCloseWhenDone","destinationFillBuffer","pushedCount","push","transform","fromArray","nextAsync","mappedItem","inserter","MultiTransformIterator","multiTransform","transformerQueue","transformer","UnionIterator","wrap","destinationRemoveEmptySources","lastCount","history","HistoryReader","hasProperty","setReadable","tracker","emitError","clone","WrappingIterator","isIterable","isIterator","single","fromIterator","fromIterable","range","BlankNodeScoped_1","BlankNodeScoped$1","skolemized","BlankNodeScoped","BlankNodeBindingsScoped_1","BlankNodeBindingsScoped$1","BlankNodeBindingsScoped","utils_data_factory_1","getSourceId","sourceIds","sourceId","skolemizeTerm","skolemizeQuad","skolemizeBindings","skolemizeQuadStream","inheritMetadata","skolemizeBindingsStream","deskolemizeTerm","colonSeparator","termLabel","deskolemizeTermNestedThrowing","deskolemized","deskolemizeQuad","deskolemizeOperation","algebraFactory","QuerySourceSkolemized_1","asynciterator_1","utils_1","QuerySourceSkolemized$1","innerSource","operationMapped","QuerySourceSkolemized","ActorContextPreprocessQuerySourceSkolemize_1","ActorContextPreprocessQuerySourceSkolemize$1","sourceWrapper","ActorContextPreprocessQuerySourceSkolemize","MediatorCombinePipeline_1","MediatorCombinePipeline$1","testResults","_testResults","sideDatas","reply","awaitedReply","getOrder","elem","actor1","actor2","MediatorCombinePipeline","ActorHashBindings_1","ActorHashBindings$1","ActorHashBindings","MurmurHash3","seed","h1","k1","module","ActorHashBindingsMurmur_1","bus_hash_bindings_1","ActorHashBindingsMurmur$1","ActorHashBindingsMurmur","MediatorRace_1","MediatorRace$1","testResult","MediatorRace","ActorHashQuads_1","ActorHashQuads$1","ActorHashQuads","ActorHashQuadsMurmur_1","bus_hash_quads_1","ActorHashQuadsMurmur$1","ActorHashQuadsMurmur","ActorOptimizeQueryOperation_1","ActorOptimizeQueryOperation$1","ActorOptimizeQueryOperation","ActorOptimizeQueryOperationRewriteCopy_1","bus_optimize_query_operation_1","ActorOptimizeQueryOperationRewriteCopy$1","operationOriginal","ActorOptimizeQueryOperationRewriteCopy","ActorOptimizeQueryOperationRewriteMove_1","ActorOptimizeQueryOperationRewriteMove$1","ActorOptimizeQueryOperationRewriteMove","ActorOptimizeQueryOperationRewriteAdd_1","ActorOptimizeQueryOperationRewriteAdd$1","ActorOptimizeQueryOperationRewriteAdd","AF","estimateCardinality","dataset","estimate","estimateNpsCardinality","estimateUnionCardinality","estimateJoinCardinality","estimateSliceCardinality","estimateMinusCardinality","estimateFirst","estimateSecond","cardinality","operationGroups","cur","nps","seqCardinality","patternCardinality","doesShapeAcceptOperation","shape","doesShapeAcceptOperationRecurseShape","shapeTop","shapeActive","shapeOperation","doesShapeAcceptOperationRecurseOperation","getSafeBindings","validateQueryOutput","getSafeQuads","getSafeBoolean","getSafeVoid","testReadOnly","getOperationSource","assignOperationSource","removeOperationSource","materializeTerm","materializeOperation","bindingsFactory","originalBindings","createValuesFromBindings","recursionResultExpression","recursionResultInput","recursionResult","valueBindings","newBinding","keyString","ActorOptimizeQueryOperationGroupSources_1","utils_query_operation_1","ActorOptimizeQueryOperationGroupSources$1","groupedInput","inputs","subInput","clusters","newInputs","multiFactoryMethod","factoryMethod","nestedMerges","cluster","operationsIn","sourceOperations","sourcelessOperations","ActorOptimizeQueryOperationGroupSources","ActorOptimizeQueryOperationConstructDistinct_1","Keys_1","ActorOptimizeQueryOperationConstructDistinct$1","ActorOptimizeQueryOperationConstructDistinct","ActorQueryParse_1","ActorQueryParse$1","ActorQueryParse","ActorQueryParseSparql_1","bus_query_parse_1","ActorQueryParseSparql$1","parsedSyntax","ActorQueryParseSparql","DirectiveNodeHandlerAdapter_1","DirectiveNodeHandlerAdapter$1","targetKind","settings","directive","convertContext","subValue","scopeArg","DirectiveNodeHandlerAdapter","DirectiveNodeHandlerInclude_1","DirectiveNodeHandlerInclude$1","directiveContext","DirectiveNodeHandlerInclude","DirectiveNodeHandlerOptional_1","DirectiveNodeHandlerOptional$1","DirectiveNodeHandlerOptional","SingularizeState","DirectiveNodeHandlerPlural_1","IConvertContext_1","DirectiveNodeHandlerPlural$1","DirectiveNodeHandlerPlural","DirectiveNodeHandlerSingle_1","DirectiveNodeHandlerSingle$1","DirectiveNodeHandlerSingle","DirectiveNodeHandlerSkip_1","DirectiveNodeHandlerSkip$1","DirectiveNodeHandlerSkip","NodeValueHandlerAdapter_1","NodeValueHandlerAdapter$1","NodeValueHandlerAdapter","NodeValueHandlerBoolean_1","NodeValueHandlerBoolean$1","valueNode","fieldName","NodeValueHandlerBoolean","NodeValueHandlerEnum_1","NodeValueHandlerEnum$1","NodeValueHandlerEnum","NodeValueHandlerFloat_1","NodeValueHandlerFloat$1","NodeValueHandlerFloat","NodeValueHandlerInt_1","NodeValueHandlerInt$1","NodeValueHandlerInt","NodeValueHandlerList_1","NodeValueHandlerList$1","listTerms","auxiliaryPatterns","firstListNode","listNode","remaining","nextListNode","NodeValueHandlerList","NodeValueHandlerNull_1","NodeValueHandlerNull$1","NodeValueHandlerNull","NodeValueHandlerObject_1","NodeValueHandlerObject$1","auxiliaryObjectPatterns","NodeValueHandlerObject","NodeValueHandlerString_1","NodeValueHandlerString$1","contextEntry","NodeValueHandlerString","NodeValueHandlerVariable_1","NodeValueHandlerVariable$1","id","listValue","NodeValueHandlerVariable","NodeHandlerAdapter_1","NodeHandlerAdapter$1","selectionSet","fieldLabel","nodeQuadContext","selectionNode","fieldNode","nodeQuadContextKey","valueOutput","directives","outputs","directiveOutputs","directiveOutput","NodeHandlerAdapter","NodeHandlerDefinitionAdapter_1","NodeHandlerDefinitionAdapter$1","NodeHandlerDefinitionAdapter","NodeHandlerDefinitionFragment_1","NodeHandlerDefinitionFragment$1","operationDefinition","NodeHandlerDefinitionFragment","NodeHandlerDefinitionOperation_1","NodeHandlerDefinitionOperation$1","variableDefinition","typeNode","mandatory","NodeHandlerDefinitionOperation","NodeHandlerDocument_1","NodeHandlerDocument$1","document","definitionOperations","definition","subjectOutput","queryParseContext","definitionOperation","NodeHandlerDocument","NodeHandlerSelectionAdapter_1","NodeHandlerSelectionAdapter$1","pushTerminalVariables","nesting","operationOverride","createQuadPattern","overrideObjectTerms","pathValue","subConvertContext","totalCount","selections","selection","joinedOperation","expressionVariable","countOverVariable","countProject","NodeHandlerSelectionAdapter","NodeHandlerSelectionField_1","NodeHandlerSelectionField$1","NodeHandlerSelectionField","NodeHandlerSelectionFragmentSpread_1","NodeHandlerSelectionFragmentSpread$1","fragmentSpreadNode","fragmentDefinitionNode","NodeHandlerSelectionFragmentSpread","NodeHandlerSelectionInlineFragment_1","NodeHandlerSelectionInlineFragment$1","inlineFragmentNode","NodeHandlerSelectionInlineFragment","_typeof","seenValues","previouslySeenValues","customInspectFn","customValue","tag","booleanCondition","instanceOf","constructor","_value$constructor","valueClassName","stringifiedValue","_defineProperties","props","descriptor","_createClass","Constructor","protoProps","staticProps","Source","body","locationOffset","lineRegexp","line","column","location","sourceLocation","firstLineColumnOffset","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","subLineColumnNum","subLines","subLine","existingLines","_ref","padLen","_ref2","_ref3","enumerableOnly","symbols","instance","subClass","superClass","Derived","hasNativeReflectConstruct","Super","NewTarget","call","Class","_cache","Wrapper","Parent","_Error","GraphQLError","_super","originalError","_nodeLocations","_nodeLocations2","_nodeLocations3","_this","nodeLocations","_i2","_this$nodes","_ref4","loc","originalExtensions","_i4","_error$nodes2","_i6","_error$locations2","_error$message","locations","classObject","Location","startToken","endToken","_proto","Token","_proto2","maybeNode","rawString","commonIndent","startLine","endLine","_commonIndent","isFirstLine","isEmptyLine","indent","indentation","preferMultipleLines","isSingleLine","hasLeadingSpace","hasTrailingQuote","hasTrailingSlash","printAsMultipleLines","Lexer","startOfFileToken","_token$next","bodyLength","_line","_col","col","firstCode","chunkStart","invalidSequence","rawValue","parse","sourceObj","operationToken","nameOrAlias","isConst","hasTypeCondition","_this$_options","_this2","keywordToken","operationTypes","interfaces","fields","_this$_options2","_this$_options3","defaultValue","repeatable","_this$_options4","atToken","openKind","parseFn","closeKind","delimiterKind","visitor","visitorKeys","inArray","edits","ancestors","isLeaving","isEdited","_Object$keys2","editOffset","editKey","editValue","visitFn","_visitorKeys$node$kin","visitors","kindVisitor","kindSpecificVisitor","specificVisitor","specificKindVisitor","ast","Name","Document","OperationDefinition","varDefs","VariableDefinition","SelectionSet","Field","argsLine","Argument","FragmentSpread","_ref5","InlineFragment","_ref6","typeCondition","FragmentDefinition","_ref7","variableDefinitions","IntValue","_ref8","FloatValue","_ref9","StringValue","_ref10","isBlockString","BooleanValue","_ref11","NullValue","EnumValue","_ref12","ListValue","_ref13","ObjectValue","_ref14","ObjectField","_ref15","Directive","_ref16","NamedType","_ref17","ListType","_ref18","NonNullType","_ref19","_ref20","OperationTypeDefinition","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","_ref31","SchemaExtension","_ref32","ScalarTypeExtension","_ref33","ObjectTypeExtension","_ref34","InterfaceTypeExtension","_ref35","UnionTypeExtension","_ref36","EnumTypeExtension","_ref37","InputObjectTypeExtension","_ref38","maybeArray","_maybeArray$filter$jo","maybeString","relativeIRI","baseFragmentPos","baseQueryPos","relativeColonPos","removeDotSegmentsOfPath","valueColonPos","baseColonPos","baseIRIScheme","baseSlashAfterColonPos","removeDotSegments","baseIRIPath","baseIRILastSlashPos","segmentBuffers","isCharacterAllowedAfterRelativePathSegment","colonPosition","searchOffset","pathSeparator","character","ErrorCoded","ERROR_CODES","COMPATIBLE_ENCODING_PATTERN","WS_TRIM_PATTERN","WS_CHAR_PATTERN","WS_FOLD_PATTERN","DELIMITER_PATTERN","WS_DELIMITER_PATTERN","TOKEN_PATTERN","STATE","trim","hasWhitespace","skipWhitespace","needsQuotes","shallowCompareObjects","object1","object2","Link","links","link","attrValue","refs","rels","rel","encoding","encodedValue","FetchDocumentLoader_1","ErrorCoded_1","http_link_header_1","relative_to_absolute_iri_1","FetchDocumentLoader","fetcher","colonPos","alternateUrl","linkHeader","Util_1","separatorPos","contextValue","prefixIri","objKeys1","objKeys2","value1","value2","JsonLdContextNormalized","contextRaw","expandVocab","validIriMapping","vocab","vocabRelative","potentialKeyword","contextPrefixValue","shortestPrefixing","contextIri","suffix","ContextParser_1","JsonLdContextNormalized_1","ContextParser","strictRange","errorCode","strictValues","expandContentTypeToBase","keyValue","changed","canAddIdEntry","newId","expandedType","processingMode","normalizeLanguageTags","containerValue","expandOptions","contextBefore","contextAfter","valueType","objectKey","objectValue","inheritFromParent","parentContext","internalOptions","external","ignoreProtection","minimalProcessing","remoteContexts","overriddenLoad","parsedStringContext","contextIris","reducedContexts","accContextPromise","accContext","importContext","newContext","overlappingKeys","newContextWrapped","importContextIri","IDocumentLoader","JsonLdContext","jsonld_context_parser_1","nodeHandler","nodeValueHandler","directiveNodeHandler","bgps","nonBgps","originalLeftJoin","predicateName","predicateAlternatives","predicateInitial","pathSymbol","predicateAlternative","__awaiter","thisArg","_arguments","generator","adopt","fulfilled","rejected","Converter_1","language_1","handler_1","directivenode_1","Converter","graphqlQuery","fragmentDefinitions","newDefinitions","ActorQueryParseGraphql_1","graphql_to_sparql_1","ActorQueryParseGraphql$1","ActorQueryParseGraphql","ActorAbstractMediaTyped_1","ActorAbstractMediaTyped$1","typedAction","mediaTypes","mediaTypeFormats","ActorAbstractMediaTyped","ActorAbstractMediaTypedFixed_1","ActorAbstractMediaTypedFixed$1","scale","_index","_context","ActorAbstractMediaTypedFixed","ActorQueryResultSerialize_1","actor_abstract_mediatyped_1","ActorQueryResultSerialize$1","ActorQueryResultSerialize","ActorQueryResultSerializeFixedMediaTypes_1","ActorQueryResultSerializeFixedMediaTypes$1","ActorQueryResultSerializeFixedMediaTypes","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","base64","ieee754","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","typedArraySupport","createBuffer","encodingOrOffset","allocUnsafe","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","fromObject","assertSize","alloc","fill","checked","actual","fromArrayLike","arrayView","byteOffset","numberIsNaN","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","hexSliceLookupTable","newBuf","checkOffset","noAssert","mul","defineBigIntMethod","validateNumber","boundsError","checkInt","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","getMessage","Base","received","addNumericalSeparator","checkBounds","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","i16","BufferBigIntNotDefined","thisArgs","thenFn","catchFn","AbortController","AbortSignal","bufferModule","kResistStopPropagation","SymbolDispose","AsyncFunction","Blob","isBlob","validateAbortSignal","validateFunction","AggregateError","called","format","_unused","removeEventListener","_removeEventListener","signals","abort","inspect","CustomAggregateError","kIsNodeError","kTypes","classRegExp","nodeInternalPrefix","codes","expectedLength","NodeError","hideStackFrames","hidden","aggregateTwoErrors","innerError","outerError","AbortError","instances","_actual$constructor","inspected","ArrayIsArray","ArrayPrototypeIncludes","ArrayPrototypeJoin","ArrayPrototypeMap","NumberIsInteger","NumberMAX_SAFE_INTEGER","NumberMIN_SAFE_INTEGER","NumberParseInt","ObjectPrototypeHasOwnProperty","RegExpPrototypeExec","String","StringPrototypeToUpperCase","StringPrototypeTrim","ERR_SOCKET_BAD_PORT","ERR_INVALID_ARG_TYPE","ERR_INVALID_ARG_VALUE","ERR_OUT_OF_RANGE","ERR_UNKNOWN_SIGNAL","normalizeEncoding","isAsyncFunction","isArrayBufferView","isInt32","isUint32","octalReg","modeDesc","parseFileMode","validateUint32","validateInteger","validateInt32","positive","validateString","validateOneOf","oneOf","validateBoolean","getOwnPropertyValueOrDefault","validateObject","allowArray","allowFunction","validateDictionary","validateArray","minLength","validateStringArray","validateBooleanArray","validateAbortSignalArray","indexedName","validateSignalName","validateBuffer","validateEncoding","normalizedEncoding","validatePort","port","allowZero","validatePlainFunction","validateUndefined","validateUnion","linkValueRegExp","validateLinkHeaderFormat","validateLinkHeaderValue","hints","hintsLength","SymbolAsyncIterator","SymbolIterator","SymbolFor","kIsDestroyed","kIsErrored","kIsReadable","kIsWritable","kIsDisturbed","kIsClosedPromise","kControllerErrorFunction","isReadableNodeStream","strict","_obj$_readableState","isWritableNodeStream","_obj$_writableState","isDuplexNodeStream","isNodeStream","isReadableStream","isWritableStream","isTransformStream","isWebStream","isAsync","isDestroyed","stream","wState","rState","isWritableEnded","isWritableFinished","isReadableEnded","isReadableFinished","isReadable","isWritable","isFinished","isWritableErrored","_stream$_writableStat","_stream$_writableStat2","isReadableErrored","_stream$_readableStat","_stream$_readableStat2","isClosed","isOutgoingMessage","isServerResponse","isServerRequest","_stream$req","willEmitClose","isDisturbed","_stream$kIsDisturbed","isErrored","_stream$kIsErrored","_stream$_readableStat3","_stream$_writableStat3","_stream$_readableStat4","_stream$_writableStat4","ERR_STREAM_PREMATURE_CLOSE","kEmptyObject","Promise","PromisePrototypeThen","_willEmitClose","addAbortListener","isRequest","nop","eos","_options$readable","_options$writable","eosWeb","writable","onlegacyfinish","onfinish","writableFinished","readableFinished","onend","onerror","closed","onclose","errored","onclosed","onrequest","cleanup","endCallback","disposable","originalCallback","isAborted","resolverFn","finished","_opts","autoCleanup","endOfStreamModule","ERR_MULTIPLE_CALLBACK","Symbol","kDestroy","kConstruct","checkError","_destroy","onDestroy","emitErrorCloseNT","emitCloseNT","emitErrorNT","undestroy","errorOrDestroy","sync","construct","constructNT","onConstruct","emitConstructNT","emitCloseLegacy","emitErrorCloseLegacy","destroyer","ObjectSetPrototypeOf","EE","Stream","dest","ondata","chunk","ondrain","didOnEnd","prependListener","legacy","onAbort","StringPrototypeSlice","TypedArrayPrototypeSet","Uint8Array","hasStrings","retLen","MathFloor","defaultHighWaterMarkBytes","defaultHighWaterMarkObjectMode","highWaterMarkFrom","isDuplex","duplexKey","getDefaultHighWaterMark","objectMode","setDefaultHighWaterMark","getHighWaterMark","hwm","copyProps","SafeBuffer","isEncoding","_normalizeEncoding","retried","nenc","StringDecoder","nb","utf16Text","utf16End","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","utf8End","utf8Text","utf8CheckByte","byte","utf8CheckIncomplete","utf8CheckExtraBytes","total","ERR_STREAM_NULL_VALUES","Readable","reading","close","hadError","hasThrow","ArrayPrototypeIndexOf","ObjectDefineProperties","ObjectKeys","SafeSet","SymbolAsyncDispose","ReadableState","addAbortSignal","debug","BufferList","destroyImpl","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kPaused","kObjectMode","kEnded","kEndEmitted","kReading","kConstructed","kSync","kNeedReadable","kEmittedReadable","kReadableListening","kResumeScheduled","kErrorEmitted","kEmitClose","kAutoDestroy","kDestroyed","kClosed","kCloseEmitted","kMultiAwaitDrain","kReadingMore","kDataEmitted","makeBitMapDescriptor","maybeReadMore","readableAddChunk","addToFront","onEofChunk","addChunk","emitReadable","decoder","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","nOrig","endReadable","doRead","fromList","emitReadable_","flow","maybeReadMore_","pipeOpts","endFn","unpipe","onunpipe","unpipeInfo","cleanedUp","pause","pipeOnDrain","dests","ev","nReadingNextTick","updateReadableListening","resume","resume_","paused","streamKeys","streamToAsyncIterator","createAsyncIterator","endReadableNT","endWritableNT","webStreamsAdapters","lazyWebStreams","readableStream","streamReadable","_src$readableObjectMo","ArrayPrototypeSlice","Error","FunctionPrototypeSymbolHasInstance","ObjectDefineProperty","StringPrototypeToLowerCase","SymbolHasInstance","Writable","WritableState","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_ALREADY_FINISHED","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","kOnFinished","noDecode","onwrite","resetBuffer","clearBuffer","finishMaybe","_write","writeOrBuffer","doWrite","writev","onwriteError","errorBuffer","afterWriteTick","afterWrite","_state$errored","onfinishCallbacks","_state$errored2","buffered","bufferedIndex","bufferedLength","chunks","needFinish","callFinal","onFinish","finish","prefinish","writableStream","streamWritable","ERR_INVALID_RETURN_VALUE","Duplex","createDeferredPromise","FunctionPrototypeCall","Duplexify","duplexify","_duplexify","write","final","fromAsyncGen","then","promise","_promise","_resolve","onreadable","onfinished","ObjectGetOwnPropertyDescriptor","method","duplex","Transform","kCallback","readableHighWaterMark","PassThrough","ERR_MISSING_ARGS","writing","popCallback","streams","makeAsyncIterable","fromReadable","pumpToNode","onresolve","wait","pumpToWeb","writer","pipeline","pipelineImpl","outerSignal","lastStreamCleanup","finishImpl","destroys","finishCount","_disposable","isLastStream","onError","_ret","_ret2","toRead","pipe","ended","orgStreams","reader","kWeakHandler","staticCompose","addAbortSignalNoValidate","deprecate","ArrayPrototypePush","Boolean","Number","PromiseReject","PromiseResolve","kEmpty","kEof","compose","composedStream","concurrency","highWaterMark","signalOpt","cnt","onCatch","afterItemProcessed","maybeResume","pump","asIndexedPairs","_options$signal","unused","forEachFn","filterFn","ReduceAwareErrMissingArgs","reduce","_options$signal2","hasInitialValue","gotAnyItemFromStream","_options$signal3","_options$signal4","toIntegerOrInfinity","number","drop","_options$signal5","_options$signal6","_options$signal7","_options$signal8","ArrayPrototypePop","pl","lastArg","customPromisify","streamReturningOperators","promiseReturningOperators","ERR_ILLEGAL_CONSTRUCTOR","promises","streamModule","CustomStream","originalDestroy","ActorQueryResultSerializeJson_1","bus_query_result_serialize_1","RdfString","readable_stream_1","ActorQueryResultSerializeJson$1","_mediaType","ActorQueryResultSerializeJson","ActorQueryResultSerializeSimple_1","ActorQueryResultSerializeSimple$1","ActorQueryResultSerializeSimple","ActorQueryResultSerializeSparqlCsv_1","ActorQueryResultSerializeSparqlCsv$1","ActorQueryResultSerializeSparqlCsv","stringValue","bindingsAction","escapeIRI","escapeStringRDF","iriValue","escapePattern","replaceEscapedCharacter","escapes","ActorQueryResultSerializeSparqlTsv_1","rdf_string_ttl_1","ActorQueryResultSerializeSparqlTsv$1","ActorQueryResultSerializeSparqlTsv","XmlSerializer_1","XmlSerializer$1","attributes","XmlSerializer","ActorQueryResultSerializeSparqlXml_1","ActorQueryResultSerializeSparqlXml$1","ActorQueryResultSerializeSparqlXml","serializer","ActorQueryResultSerializeTable_1","ActorQueryResultSerializeTable$1","ActorQueryResultSerializeTable","labels","header","resultStream","Translator_1","Translator$1","literal","rdfDatatypes","javaScriptDataTypes","rdfDatatype","javaScriptDataType","existingToRdfHandlers","validate","handlers","Translator","TypeHandlerBoolean_1","TypeHandlerBoolean$1","TypeHandlerBoolean","TypeHandlerDate_1","TypeHandlerDate$1","TypeHandlerDate","partsMonthDay","valueString","TypeHandlerNumberDouble_1","TypeHandlerNumberDouble$1","TypeHandlerNumberDouble","TypeHandlerNumberInteger_1","TypeHandlerNumberInteger$1","TypeHandlerNumberInteger","TypeHandlerString_1","TypeHandlerString$1","TypeHandlerString","translator","fromRdf","toRdf","getTermRaw","getSupportedRdfDatatypes","getSupportedJavaScriptPrimitives","LEFT_BRACE","RIGHT_BRACE","LEFT_BRACKET","RIGHT_BRACKET","COLON","COMMA","TRUE","FALSE","NULL","STRING","START","STOP","TRUE1","TRUE2","TRUE3","FALSE1","FALSE2","FALSE3","FALSE4","NULL1","NULL2","NULL3","NUMBER1","NUMBER3","STRING1","STRING2","STRING3","STRING4","STRING5","STRING6","VALUE","KEY","OBJECT","ARRAY","BACK_SLASH","FORWARD_SLASH","BACKSPACE","FORM_FEED","NEWLINE","CARRIAGE_RETURN","TAB","STRING_BUFFER_SIZE","SparqlJsonParser_1","JsonParser","SparqlJsonParser$1","sparqlResponse","rawBindings","sparqlResponseStream","jsonParser","variablesFound","resultsFound","tripleValue","SparqlJsonParser","rdf_literal_1","sparqljson_parse_1","Converter$1","lastKeyPath","schema","delimiter","singularize","nextNode","tree1","tree2","tree1Element","mergedElement","key2","key1","materialized","bindingsArray","singularRoot","subTree","ActorQueryResultSerializeTree_1","sparqljson_to_tree_1","ActorQueryResultSerializeTree$1","ActorQueryResultSerializeTree","bindingsStream","converterSettings","bindingsStreamToGraphQl","MediatorCombineUnion_1","MediatorCombineUnion$1","awaited","MediatorCombineUnion","MediatorNumber_1","MediatorNumber$1","tests","curr","wrappedResults","failures","dummy","MediatorNumber","ActorDereferenceBase_1","emptyReadable","isHardError","ActorDereferenceBase$1","ActorDereferenceBase","ActorDereference_1","ActorDereference$1","headers","requestTime","ActorDereference","ActorDereferenceParse_1","getMediaTypeFromExtension","mediaMappings","dotIndex","ActorDereferenceParse$1","dereference","ActorDereferenceParse","ActorDereferenceFallback_1","bus_dereference_1","ActorDereferenceFallback$1","ActorDereferenceFallback","ActorRdfJoinEntriesSort_1","ActorRdfJoinEntriesSort$1","ActorRdfJoinEntriesSort","ActorRdfJoinEntriesSortCardinality_1","bus_rdf_join_entries_sort_1","ActorRdfJoinEntriesSortCardinality$1","entryLeft","entryRight","ActorRdfJoinEntriesSortCardinality","ActorRdfJoinSelectivity_1","ActorRdfJoinSelectivity$1","ActorRdfJoinSelectivity","ActorRdfJoinSelectivityVariableCounting_1","bus_rdf_join_selectivity_1","ActorRdfJoinSelectivityVariableCounting$1","ActorRdfJoinSelectivityVariableCounting","cost","operation1","operation2","joinTypes","JoinTypes","joinType","totalCost","costEntries","pattern1","pattern2","factor","ActorRdfMetadata_1","ActorRdfMetadata$1","ActorRdfMetadata","ActorRdfMetadataPrimaryTopic_1","bus_rdf_metadata_1","ActorRdfMetadataPrimaryTopic$1","attachListeners","endpointIdentifier","primaryTopics","metadataGraph","ActorRdfMetadataPrimaryTopic","ActorRdfMetadataAll_1","ActorRdfMetadataAll$1","ActorRdfMetadataAll","ActorRdfMetadataAccumulate_1","ActorRdfMetadataAccumulate$1","ActorRdfMetadataAccumulate","ActorRdfMetadataAccumulateCardinality_1","bus_rdf_metadata_accumulate_1","ActorRdfMetadataAccumulateCardinality$1","ActorRdfMetadataAccumulateCardinality","ActorRdfMetadataAccumulatePageSize_1","ActorRdfMetadataAccumulatePageSize$1","ActorRdfMetadataAccumulatePageSize","ActorRdfMetadataAccumulateRequestTime_1","ActorRdfMetadataAccumulateRequestTime$1","ActorRdfMetadataAccumulateRequestTime","ActorRdfMetadataExtract_1","ActorRdfMetadataExtract$1","ActorRdfMetadataExtract","exportCallback","UriTemplateError","objectHelper","isNumber","isBoolean","deepFreezeUsingObjectFreeze","property","charHelper","isAlpha","chr","isDigit","isHexDigit","pctEncoder","utf8","firstCharCode","encodeCharacter","octets","octet","isPercentDigitDigit","parseHex2","isPctEncoded","numBytes","byteNumber","pctCharAt","utf8CharCode","rfcCharHelper","isVarchar","isUnreserved","isReserved","encodingHelper","encode","passReserved","encodePassReserved","encodeLiteralCharacter","encodeLiteral","operators","bySymbol","create","isDefined","LiteralExpression","parseExpression","expressionText","varspecs","varspec","varnameStart","maxLengthStart","closeVarname","varname","closeMaxLength","operatorText","VariableExpression","uriTemplateText","braceOpenIndex","literalStart","UriTemplate","prettyPrint","propertyArray","templateText","expandSimpleValue","valueDefined","nameValue","expandNotExploded","expandExplodedNamed","listElement","expandExplodedUnnamed","expanded","ActorRdfMetadataExtractHydraControls_1","bus_rdf_metadata_extract_1","uritemplate_1","ActorRdfMetadataExtractHydraControls$1","ActorRdfMetadataExtractHydraControls","pageUrl","hydraProperties","linkTargets","cachedUriTemplate","searchFormData","searchForms","searchFormId","searchTemplates","searchTemplate","mappings","getUri","subjectProperties","ActorRdfMetadataExtractHydraCount_1","ActorRdfMetadataExtractHydraCount$1","ActorRdfMetadataExtractHydraCount","ActorRdfMetadataExtractHydraPagesize_1","ActorRdfMetadataExtractHydraPagesize$1","ActorRdfMetadataExtractHydraPagesize","ActorRdfMetadataExtractRequestTime_1","ActorRdfMetadataExtractRequestTime$1","ActorRdfMetadataExtractRequestTime","ActorRdfMetadataExtractAllowHttpMethods_1","ActorRdfMetadataExtractAllowHttpMethods$1","ActorRdfMetadataExtractAllowHttpMethods","ActorRdfMetadataExtractPutAccepted_1","ActorRdfMetadataExtractPutAccepted$1","ActorRdfMetadataExtractPutAccepted","ActorRdfMetadataExtractPatchSparqlUpdate_1","ActorRdfMetadataExtractPatchSparqlUpdate$1","ActorRdfMetadataExtractPatchSparqlUpdate","ActorRdfMetadataExtractSparqlService_1","ActorRdfMetadataExtractSparqlService$1","acceptSubjectUris","inputFormats","resultFormats","supportedLanguages","ActorRdfMetadataExtractSparqlService","Definitions_1","estimatePatternCardinality","matchPatternVocabularies","matchPatternResourceUris","estimatePatternCardinalityRaw","vc","getClassPartitionEntities","distinctSubjects","getDistinctSubjects","getPredicateTriples","distinctObjects","getDistinctObjects","predicateTriples","predicateSubjects","getPredicateSubjects","predicateObjects","getPredicateObjects","ActorRdfMetadataExtractVoid_1","Estimators_1","ActorRdfMetadataExtractVoid$1","datasetUris","ignoredUris","entities","vocabularies","uriRegexPatterns","propertyPartitions","propertyPartitionProperties","classPartitions","classPartitionClasses","defaultDatasetUri","defaultGraphUri","unionDefaultGraph","datasets","getPropertyPartitions","partitions","partitionUri","propertyUri","getClassPartitions","classUri","ActorRdfMetadataExtractVoid","ActorRdfParse_1","ActorRdfParse$1","ActorRdfParse","ActorRdfParseFixedMediaTypes_1","ActorRdfParseFixedMediaTypes$1","ActorRdfParseFixedMediaTypes","xsd","inputFinished","currentLineLength","whiteSpaceMatch","comment","emitToken","firstChar","matchLength","inconclusive","reportSyntaxError","invalid","replaced","opening","openingLength","closingPos","backslashCount","raw","issue","tokens","rdf","DEFAULTGRAPH","atPos","dtPos","nested","endPos","languageOrDataType","inQuad","isTurtle","isTriG","isNTriples","isNQuads","isN3","isLineMode","fragmentPos","n3Mode","quantifier","previousList","listItem","completed","inversePredicate","prefixNode","afterPath","contextStack","pathStart","segmentStart","quadCallback","prefixCallback","onQuad","onPrefix","onComment","processNextToken","N3DataFactory","defaultPrefixes","processPrefix","local","scheme","regexHead","regexTail","segments","segmenter","segment","fragment","parentPath","outputStream","quadsString","hasPrefixes","IRIlist","prefixList","prefixIRI","contents","singleDone","s1","s2","intersection","suggestedName","subjects","graphKey","subjectKey","predicateKey","index0","key0","index1","index2","existed","name0","name1","name2","graphId","entityKeys","value0","uniqueIds","graphItem","subjectOrQuad","predicates","subjectId","predicateId","objectId","ignoreErrors","lists","tails","tailQuad","malformed","headPos","objectQuads","subjectQuads","g1","g2","p1","p2","o1","store","iteratee","accumulator","ids","ind","n3Store","newStore","premise","conclusion","rule","v1","val0","val1","val2","v0","newRules","addRule","addConclusions","v3","varMapping","toId","r1","r2","onData","onEnd","Writer","Store","StoreFactory","EntityIndex","StreamParser","StreamWriter","Reasoner","Triple","ActorRdfParseN3_1","bus_rdf_parse_1","n3_1","ActorRdfParseN3$1","ActorRdfParseN3","NL","CR","SPACE","isChar","isS","isNameStartChar","isNameChar","isRestrictedChar","isCharAndNotRestricted","isNCNameStartChar","isNCNameChar","ed5","ed2","NSed3","isChar10","S_LIST","NAME_RE","isChar11","NC_NAME_RE","XML_NAMESPACE","XMLNS_NAMESPACE","rootNS","XML_ENTITIES","EOC","NL_LIKE","S_BEGIN","S_BEGIN_WHITESPACE","S_DOCTYPE","S_DOCTYPE_QUOTE","S_DTD","S_DTD_QUOTED","S_DTD_OPEN_WAKA","S_DTD_OPEN_WAKA_BANG","S_DTD_COMMENT","S_DTD_COMMENT_ENDING","S_DTD_COMMENT_ENDED","S_DTD_PI","S_DTD_PI_ENDING","S_TEXT","S_ENTITY","S_OPEN_WAKA","S_OPEN_WAKA_BANG","S_COMMENT","S_COMMENT_ENDING","S_COMMENT_ENDED","S_CDATA","S_CDATA_ENDING","S_CDATA_ENDING_2","S_PI_FIRST_CHAR","S_PI_REST","S_PI_BODY","S_PI_ENDING","S_XML_DECL_NAME_START","S_XML_DECL_NAME","S_XML_DECL_EQ","S_XML_DECL_VALUE_START","S_XML_DECL_VALUE","S_XML_DECL_SEPARATOR","S_XML_DECL_ENDING","S_OPEN_TAG","S_OPEN_TAG_SLASH","S_ATTRIB","S_ATTRIB_NAME","S_ATTRIB_NAME_SAW_WHITE","S_ATTRIB_VALUE","S_ATTRIB_VALUE_QUOTED","S_ATTRIB_VALUE_CLOSED","S_ATTRIB_VALUE_UNQUOTED","S_CLOSE_TAG","S_CLOSE_TAG_SAW_WHITE","BANG","DQUOTE","AMP","SQUOTE","MINUS","SEMICOLON","LESS","EQUAL","GREATER","QUESTION","OPEN_BRACKET","CLOSE_BRACKET","NEL","LS","isQuote","QUOTES","DOCTYPE_TERMINATOR","DTD_TERMINATOR","XML_DECL_NAME_TERMINATOR","ATTRIB_VALUE_UNQUOTED_TERMINATOR","nsPairCheck","nsMappingCheck","isNCName","isName","FORBIDDEN_START","FORBIDDEN_BRACKET","FORBIDDEN_BRACKET_BRACKET","EVENT_NAME_TO_HANDLER_NAME","SaxesParser","xmlnsOpt","additional","fragmentOpt","defaultXMLVersion","lastCode","stateTable","chars","isNLLike","iBefore","owb","loop","entityReturnState","isQuestion","piTarget","forbiddenState","scanLoop","nonSpace","outRootLoop","trimmed","tags","colon","attribList","seen","eqname","defined","ParseError_1","saxParser","buildAbsoluteIriRfc3987Regex","sub_delims","pct_encoded","dec_octet","ipv4address","h16","ls32","ipv6address","ipvfuture","ip_literal","iprivate","iunreserved","ipchar","ifragment","iquery","isegment_nz","isegment","ipath_empty","ipath_rootless","ipath_absolute","ipath_abempty","ireg_name","ihost","ihier_part","STRICT_IRI_REGEX","PRAGMATIC_IRI_REGEX","IriValidationStrategy","validateIri","strategy","RdfXmlParser_1","saxes_1","validate_iri_1","RdfXmlParser$1","RdfXmlParser","activeTag","uriValidationResult","parentTag","currentParseType","ParseType","tagName","attributeKey","tagString","stringActiveTag","rootTag","typedNode","activeSubjectValue","claimSubjectNodeId","subjectValueBlank","explicitType","attribute","linkTerm","parseType","attributedProperty","activeSubSubjectValue","subSubjectValueBlank","propertyAttributeKey","propertyAttribute","nestedBNode","subjectParent","statementId","poppedTag","doctype","ActorRdfParseRdfXml_1","rdfxml_streaming_parser_1","ActorRdfParseRdfXml$1","ActorRdfParseRdfXml","IHtmlParseListener","decodeDataHtml","decodeDataXml","decodeMap","replaceCodePoint","decodeCodePoint","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","decode_codepoint_js_2","CharCodes","TO_LOWER_BIT","BinTrieFlags","isHexadecimalCharacter","isAsciiAlphaNumeric","isEntityInAttributeInvalidEnd","EntityDecoderState","DecodingMode","EntityDecoder","decodeTree","emitCodePoint","decodeMode","digitCount","startIdx","lastCp","valueLength","determineBranch","consumed","getDecoder","nodeIdx","branchCount","jumpOffset","mid","midVal","htmlDecoder","xmlDecoder","decodeHTML","decodeHTMLAttribute","decodeHTMLStrict","decodeXML","decode_js_1","State","isWhitespace","isEndOfTagSection","isASCIIAlpha","QuoteType","Sequences","Tokenizer","cbs","xmlMode","decodeEntities","isEnd","isMatch","endOfText","actualIndex","lower","quote","masked","entityStart","numberStart","endIndex","cp","Parser_1","Tokenizer_js_1","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","_d","impliesClose","isImplied","_f","isOpenImplied","_g","_h","_j","ElementType","isTag","__extends","extendStatics","__","__assign","domelementtype_1","Node","recursive","cloneNode","DataNode","Text","Comment","ProcessingInstruction","NodeWithChildren","CDATA","Element","attribs","isCDATA","isText","isComment","isDirective","isDocument","hasChildren","cloneChildren","clone_1","clone_2","clone_3","instruction","childs","node_js_1","defaultOpts","DomHandler","elementCB","lastNode","previousSibling","restoreDiff","xmlCodeMap","encodeXML","lastIdx","getEscaper","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTML","encodeHTMLTrieRe","encodeNonAsciiHTML","regExp","nextChar","encode_js_1","EntityLevel","EncodingMode","decode","decodeStrict","escape_js_2","encode_js_2","decode_js_2","lib","entities_1","foreignNames_js_1","unencodedElements","replaceQuotes","formatAttributes","singleTag","render","renderNode","renderDirective","renderComment","renderCdata","renderTag","renderText","foreignModeIntegrationPoints","foreignElements","stringify","getOuterHTML","getInnerHTML","getText","textContent","innerText","domhandler_1","dom_serializer_1","getChildren","getParent","getSiblings","getAttributeValue","hasAttrib","getName","nextElementSibling","prevElementSibling","siblings","removeElement","replaceElement","appendChild","prependChild","childsIndex","sibling","currNext","findOneChild","findOne","existsOne","findAll","recurse","nodeStack","indexStack","searchedNodes","testElement","getElements","getElementById","getElementsByTagName","getElementsByClassName","getElementsByTagType","querying_js_1","Checks","getAttribCheck","attrib","combineFuncs","compileTest","funcs","removeSubsets","compareDocumentPosition","uniqueSort","ancestor","DocumentPosition","nodeA","nodeB","aParents","bParents","maxIdx","sharedParent","aSibling","bSibling","relative","getFeed","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","getAtomFeed","getRssFeed","feed","getMediaElements","addConditionally","href","fetch","pubDate","updated","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","media","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","Parser_js_1","Parser_js_2","domhandler_2","parseDocument","parseDOM","createDomStream","elementCallback","domutils_1","domutils_2","parseFeedDefaultOptions","parseFeed","RdfaProfile_1","parentPrefixes","xmlnsPrefixMappings","additionalPrefixes","colonIndex","prefixElement","expandedTerm","contentType","baseIriValue","fragmentIndex","allowTerms","allowBlankNode","allowSafeCurie","RdfaParser_1","htmlparser2_1","INITIAL_CONTEXT_XHTML","INITIAL_CONTEXT","RdfaParser$1","RdfaParser","profile","parentTagI","attributesSerialized","allowTermsInRelPredicates","allowTermsInRevPredicates","patternTag","copyTargetPatternId","newSubject","currentObjectResource","typedResource","roleSubject","vocabOld","role","isRootTag","localObjectResource","incompleteTriplesCompleted","incompleteTriple","firstInListTag","patternId","textSegments","predicateValue","bnodes","bNode","predicateList","rootPatternId","blankNodeIndex","ActorRdfParseXmlRdfa_1","rdfa_streaming_parser_1","ActorRdfParseXmlRdfa$1","ActorRdfParseXmlRdfa","dist","promisifyEventEmitter","event_emitter_promisify_1","ShaclcParser","OWL","SH","RDFS","ensureExtended","addList","chainProperty","emitProperty","datatypes","expandPrefix","elems","ttlList","N3","extendedSyntax","PrefixWrappingIterator_1","PrefixWrappingIterator$1","PrefixWrappingIterator","ActorRdfParseShaclc_1","stream_to_string_1","shaclc_parse_1","ActorRdfParseShaclc$1","prefixIterator","ActorRdfParseShaclc","nodeIndex","midValue","htmlString","htmlAttribute","xmlString","decode_data_html_js_2","decode_data_xml_js_2","Tokenizer_1","decode_1","ownKeys","createDocumentStream","ActorRdfParseHtml_1","ActorRdfParseHtml","endBarrier","subError","htmlAction","htmlParseListeners","htmlParseListener","error_","ActorRdfParseHtml$1","ItemPropertyHandlerContent_1","ItemPropertyHandlerContent$1","itemScope","ItemPropertyHandlerContent","allowRelativeIris","vocabRegistry","expansions","typeIri","uriPrefix","hashPos","ItemPropertyHandlerNumber_1","ItemPropertyHandlerNumber$1","attributeName","ItemPropertyHandlerNumber","ItemPropertyHandlerTime_1","ItemPropertyHandlerTime$1","ItemPropertyHandlerTime","ItemPropertyHandlerUrl_1","ItemPropertyHandlerUrl$1","ItemPropertyHandlerUrl","MicrodataRdfParser_1","VOCAB_REGISTRY_DEFAULT","MicrodataRdfParser$1","MicrodataRdfParser","parentItemScope","reference","textBuffer","itempropValue","tagAttributes","predicatesKey","vocabularyExpansionType","itemScopeDomain","applicableItemScopes","itemScopeDomainIndex","itemScopeStackOld","textBufferStackOld","pendingIds","ActorRdfParseHtmlMicrodata_1","bus_rdf_parse_html_1","microdata_rdf_streaming_parser_1","ActorRdfParseHtmlMicrodata$1","onTagEndOld","ActorRdfParseHtmlMicrodata","ActorRdfParseHtmlRdfa_1","ActorRdfParseHtmlRdfa$1","ActorRdfParseHtmlRdfa","ActorRdfResolveHypermediaLinks_1","ActorRdfResolveHypermediaLinks$1","ActorRdfResolveHypermediaLinks","ActorRdfResolveHypermediaLinksNext_1","bus_rdf_resolve_hypermedia_links_1","ActorRdfResolveHypermediaLinksNext$1","ActorRdfResolveHypermediaLinksNext","ActorRdfResolveHypermediaLinksQueue_1","ActorRdfResolveHypermediaLinksQueue$1","ActorRdfResolveHypermediaLinksQueue","LinkQueueWrapper_1","LinkQueueWrapper$1","linkQueue","LinkQueueWrapper","LinkQueueFifo_1","LinkQueueFifo$1","LinkQueueFifo","ActorRdfResolveHypermediaLinksQueueFifo_1","bus_rdf_resolve_hypermedia_links_queue_1","ActorRdfResolveHypermediaLinksQueueFifo$1","ActorRdfResolveHypermediaLinksQueueFifo","ActorRdfSerialize_1","ActorRdfSerialize$1","ActorRdfSerialize","ActorRdfSerializeFixedMediaTypes_1","ActorRdfSerializeFixedMediaTypes$1","ActorRdfSerializeFixedMediaTypes","ActorRdfSerializeN3_1","bus_rdf_serialize_1","ActorRdfSerializeN3$1","ActorRdfSerializeN3","SeparatorType_1","SeparatorType$1","SeparatorType","compacted","parsedJson","stringType","parsedInt","parsedFloat","JsonLdSerializer_1","JsonLdSerializer$1","JsonLdSerializer","lastGraphMatchesSubject","lastSubjectMatchesGraph","startOnNewLine","subjectValue","compactedProperty","lastLastSubject","lastLastPredicate","nestedQuad","commaAfterSubject","comma","pushNewLine","ActorRdfSerializeJsonLd_1","jsonld_streaming_serializer_1","ActorRdfSerializeJsonLd$1","ActorRdfSerializeJsonLd","arrayifyStream_1","arrayifyStream","fragment_1","getFragment","inputStr","camelize","__global__","__globalThis__","globalThis","support","isDataView","viewClasses","normalizeName","normalizeValue","iteratorFor","Headers","fileReaderReady","readBlobAsArrayBuffer","blob","readBlobAsText","readArrayBufferAsText","view","bufferClone","Body","isConsumed","normalizeMethod","upcased","Request","ctrl","reParamSearch","reQueryString","form","split","parseHeaders","rawHeaders","preProcessedHeaders","bodyInit","redirectStatuses","init","request","xhr","abortXhr","fixUrl","ctx","fetchContext_1","cross_fetch_1","fetchJson","fetchContext","lookupUri","lookupPrefix_1","lookupPrefix","lookupAllPrefixes_1","lookupAllPrefixes","lookup_1","uriToPrefix","prefixToUri","lookup_2","getShaclName","prefixcc_1","property_param_1","base_prefixes_1","node_param_1","getNamespace","knownNamespaces","knownPrefixes","SHACLCWriter","errorOnExtraQuads","mintUnspecifiedPrefixes","onotology","namespaces","namespace","existingPrefixes","ns","pref","allNamespaces","imports","imp","disableShaclName","allowBlankNodes","targetClasses","targetClass","unusedPredicates","allowedPredicates","examining","orProperties","statement","termTemp","assignments","divider","shortcuts","assignment","allowedParam","surroundings","params","nodeKind","propertyClass","nodeShapes","nestedShapes","semi","blankObjects","nonBlankObjects","space","braces","alternatives","alt","newLine","VolitileStore","ShaclcGenerator_1","writer_1","volatile_store_1","volatileStore","extraQuads","ActorRdfSerializeShaclc_1","arrayify_stream_1","shaclc_write_1","ActorRdfSerializeShaclc$1","ActorRdfSerializeShaclc","ActorRdfUpdateQuads_1","ActorRdfUpdateQuads$1","ActorRdfUpdateQuads","ActorRdfUpdateQuadsDestination_1","actor_context_preprocess_query_source_skolemize_1","deskolemizeStream","deskolemize","ActorRdfUpdateQuadsDestination$1","ActorRdfUpdateQuadsDestination","isDataDestinationRawType","dataDestination","getDataDestinationType","getDataDestinationValue","getDataDestinationContext","getContextDestination","getContextDestinationUrl","fileUrl","hashPosition","RdfJsQuadDestination_1","RdfJsQuadDestination$1","quadStreams","_requireExistence","_dropGraphs","allQuads","namedGraphs","namedGraph","requireNonExistence","eventEmitter","RdfJsQuadDestination","ActorRdfUpdateQuadsRdfJsStore_1","bus_rdf_update_quads_1","ActorRdfUpdateQuadsRdfJsStore$1","ActorRdfUpdateQuadsRdfJsStore","ExpressionFunctionBnode_1","bus_function_factory_1","ExpressionFunctionBnode$1","ExpressionFunctionBnode","strInput","ActorFunctionFactoryExpressionBnode_1","ActorFunctionFactoryExpressionBnode$1","ActorFunctionFactoryExpressionBnode","ExpressionFunctionBound_1","ExpressionFunctionBound$1","ExpressionFunctionBound","ActorFunctionFactoryExpressionBound_1","ActorFunctionFactoryExpressionBound$1","ActorFunctionFactoryExpressionBound","ExpressionFunctionCoalesce_1","ExpressionFunctionCoalesce$1","ExpressionFunctionCoalesce","ActorFunctionFactoryExpressionCoalesce_1","ActorFunctionFactoryExpressionCoalesce$1","ActorFunctionFactoryExpressionCoalesce","ExpressionFunctionConcat_1","ExpressionFunctionConcat$1","ExpressionFunctionConcat","pLits","pTerm","lits","ActorFunctionFactoryExpressionConcat_1","ActorFunctionFactoryExpressionConcat$1","ActorFunctionFactoryExpressionConcat","NamedExtension_1","Core_1","NamedExtension$1","functionDefinition","evaluatedArgs","NamedExtension","ActorFunctionFactoryExpressionExtensions_1","ActorFunctionFactoryExpressionExtensions$1","functionName","ActorFunctionFactoryExpressionExtensions","ExpressionFunctionIf_1","ExpressionFunctionIf$1","ExpressionFunctionIf","ActorFunctionFactoryExpressionIf_1","ActorFunctionFactoryExpressionIf$1","ActorFunctionFactoryExpressionIf","ExpressionFunctionLogicalAnd_1","ExpressionFunctionLogicalAnd$1","leftExpr","rightExpr","ExpressionFunctionLogicalAnd","ActorFunctionFactoryExpressionLogicalAnd_1","ActorFunctionFactoryExpressionLogicalAnd$1","ActorFunctionFactoryExpressionLogicalAnd","ExpressionFunctionLogicalOr_1","ExpressionFunctionLogicalOr$1","ExpressionFunctionLogicalOr","ActorFunctionFactoryExpressionLogicalOr_1","ActorFunctionFactoryExpressionLogicalOr$1","ActorFunctionFactoryExpressionLogicalOr","ExpressionFunctionSameTerm_1","ExpressionFunctionSameTerm$1","ExpressionFunctionSameTerm","ActorFunctionFactoryExpressionSameTerm_1","ActorFunctionFactoryExpressionSameTerm$1","ActorFunctionFactoryExpressionSameTerm","TermFunctionAbs_1","TermFunctionAbs$1","TermFunctionAbs","ActorFunctionFactoryTermAbs_1","ActorFunctionFactoryTermAbs$1","ActorFunctionFactoryTermAbs","globalObject","BigNumber","isNumeric","mathceil","mathfloor","bignumberError","tooManyDigits","BASE","LOG_BASE","MAX_SAFE_INTEGER","POWS_TEN","SQRT_BASE","MAX","configObject","div","convertBase","parseNumeric","ONE","DECIMAL_PLACES","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","ALPHABET","alphabetHasNormalDecimalDigits","caseChanged","isNum","intCheck","round","maxOrMin","pow2_53","random53bitInt","dp","rand","toBaseOut","baseIn","baseOut","arrL","callerIsToString","xc","rm","toFixedPoint","coeffToString","multiply","xlo","xhi","klo","khi","compare","aL","bL","cmp","subtract","more","prod","prodL","qc","rem","remL","rem0","xL","yc0","yL","yz","yc","bitFloor","c0","toExponential","normalise","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","sd","rd","pows10","half","isModExp","nIsBig","nIsNeg","nIsOdd","isOdd","xLTy","xcL","ycL","ylo","yhi","zc","sqrtBase","groupSeparator","intPart","fractionPart","isNeg","intDigits","d0","n0","n1","zs","TermFunctionAddition_1","bignumber_js_1","TermFunctionAddition$1","TermFunctionAddition","ActorFunctionFactoryTermAddition_1","ActorFunctionFactoryTermAddition$1","ActorFunctionFactoryTermAddition","TermFunctionCeil_1","TermFunctionCeil$1","TermFunctionCeil","ActorFunctionFactoryTermCeil_1","ActorFunctionFactoryTermCeil$1","ActorFunctionFactoryTermCeil","TermFunctionContains_1","TermFunctionContains$1","TermFunctionContains","ActorFunctionFactoryTermContains_1","ActorFunctionFactoryTermContains$1","ActorFunctionFactoryTermContains","TermFunctionDatatype_1","TermFunctionDatatype$1","TermFunctionDatatype","ActorFunctionFactoryTermDatatype_1","ActorFunctionFactoryTermDatatype$1","ActorFunctionFactoryTermDatatype","TermFunctionDay_1","TermFunctionDay$1","TermFunctionDay","ActorFunctionFactoryTermDay_1","ActorFunctionFactoryTermDay$1","ActorFunctionFactoryTermDay","TermFunctionDivision_1","TermFunctionDivision$1","TermFunctionDivision","ActorFunctionFactoryTermDivision_1","ActorFunctionFactoryTermDivision$1","ActorFunctionFactoryTermDivision","TermFunctionEncodeForUri_1","TermFunctionEncodeForUri$1","TermFunctionEncodeForUri","ActorFunctionFactoryTermEncodeForUri_1","ActorFunctionFactoryTermEncodeForUri$1","ActorFunctionFactoryTermEncodeForUri","TermFunctionEquality_1","TermFunctionEquality$1","_left","_right","dur1","dur2","time1","time2","TermFunctionEquality","ActorFunctionFactoryTermEquality_1","ActorFunctionFactoryTermEquality$1","ActorFunctionFactoryTermEquality","TermFunctionFloor_1","TermFunctionFloor$1","TermFunctionFloor","ActorFunctionFactoryTermFloor_1","ActorFunctionFactoryTermFloor$1","ActorFunctionFactoryTermFloor","TermFunctionHours_1","TermFunctionHours$1","TermFunctionHours","ActorFunctionFactoryTermHours_1","ActorFunctionFactoryTermHours$1","ActorFunctionFactoryTermHours","TermFunctionIri_1","TermFunctionIri$1","TermFunctionIri","ActorFunctionFactoryTermIri_1","ActorFunctionFactoryTermIri$1","ActorFunctionFactoryTermIri","TermFunctionIsBlank_1","TermFunctionIsBlank$1","TermFunctionIsBlank","ActorFunctionFactoryTermIsBlank_1","ActorFunctionFactoryTermIsBlank$1","ActorFunctionFactoryTermIsBlank","TermFunctionIsIri_1","TermFunctionIsIri$1","TermFunctionIsIri","ActorFunctionFactoryTermIsIri_1","ActorFunctionFactoryTermIsIri$1","ActorFunctionFactoryTermIsIri","TermFunctionIsLiteral_1","TermFunctionIsLiteral$1","TermFunctionIsLiteral","ActorFunctionFactoryTermIsLiteral_1","ActorFunctionFactoryTermIsLiteral$1","ActorFunctionFactoryTermIsLiteral","TermFunctionIsNumeric_1","TermFunctionIsNumeric$1","TermFunctionIsNumeric","ActorFunctionFactoryTermIsNumeric_1","ActorFunctionFactoryTermIsNumeric$1","ActorFunctionFactoryTermIsNumeric","TermFunctionIsTriple_1","TermFunctionIsTriple$1","TermFunctionIsTriple","ActorFunctionFactoryTermIsTriple_1","ActorFunctionFactoryTermIsTriple$1","ActorFunctionFactoryTermIsTriple","TermFunctionLang_1","TermFunctionLang$1","TermFunctionLang","ActorFunctionFactoryTermLang_1","ActorFunctionFactoryTermLang$1","ActorFunctionFactoryTermLang","TermFunctionLangmatches_1","TermFunctionLangmatches$1","TermFunctionLangmatches","langTags","rangeTags","lI","rI","ActorFunctionFactoryTermLangmatches_1","ActorFunctionFactoryTermLangmatches$1","ActorFunctionFactoryTermLangmatches","TermFunctionLcase_1","TermFunctionLcase$1","TermFunctionLcase","ActorFunctionFactoryTermLcase_1","ActorFunctionFactoryTermLcase$1","ActorFunctionFactoryTermLcase","undefined","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","md51_array","rhex","hex","clamp","targetArray","sourceArray","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","TermFunctionMd5_1","spark_md5_1","TermFunctionMd5$1","TermFunctionMd5","ActorFunctionFactoryTermMd5_1","ActorFunctionFactoryTermMd5$1","ActorFunctionFactoryTermMd5","TermFunctionMinutes_1","TermFunctionMinutes$1","TermFunctionMinutes","ActorFunctionFactoryTermMinutes_1","ActorFunctionFactoryTermMinutes$1","ActorFunctionFactoryTermMinutes","TermFunctionMonth_1","TermFunctionMonth$1","TermFunctionMonth","ActorFunctionFactoryTermMonth_1","ActorFunctionFactoryTermMonth$1","ActorFunctionFactoryTermMonth","TermFunctionMultiplication_1","TermFunctionMultiplication$1","TermFunctionMultiplication","ActorFunctionFactoryTermMultiplication_1","ActorFunctionFactoryTermMultiplication$1","ActorFunctionFactoryTermMultiplication","TermFunctionNot_1","TermFunctionNot$1","TermFunctionNot","ActorFunctionFactoryTermNot_1","ActorFunctionFactoryTermNot$1","ActorFunctionFactoryTermNot","TermFunctionNow_1","TermFunctionNow$1","TermFunctionNow","ActorFunctionFactoryTermNow_1","ActorFunctionFactoryTermNow$1","ActorFunctionFactoryTermNow","TermFunctionObject_1","TermFunctionObject$1","TermFunctionObject","ActorFunctionFactoryTermObject_1","ActorFunctionFactoryTermObject$1","ActorFunctionFactoryTermObject","TermFunctionPredicate_1","TermFunctionPredicate$1","TermFunctionPredicate","ActorFunctionFactoryTermPredicate_1","ActorFunctionFactoryTermPredicate$1","ActorFunctionFactoryTermPredicate","TermFunctionRand_1","TermFunctionRand$1","TermFunctionRand","ActorFunctionFactoryTermRand_1","ActorFunctionFactoryTermRand$1","ActorFunctionFactoryTermRand","TermFunctionRegex_1","TermFunctionRegex$1","TermFunctionRegex","duplicateFlag","inClass","ActorFunctionFactoryTermRegex_1","ActorFunctionFactoryTermRegex$1","ActorFunctionFactoryTermRegex","TermFunctionReplace_1","actor_function_factory_term_regex_1","TermFunctionReplace$1","TermFunctionReplace","ActorFunctionFactoryTermReplace_1","ActorFunctionFactoryTermReplace$1","ActorFunctionFactoryTermReplace","TermFunctionRound_1","TermFunctionRound$1","TermFunctionRound","ActorFunctionFactoryTermRound_1","ActorFunctionFactoryTermRound$1","ActorFunctionFactoryTermRound","TermFunctionSeconds_1","TermFunctionSeconds$1","TermFunctionSeconds","ActorFunctionFactoryTermSeconds_1","ActorFunctionFactoryTermSeconds$1","ActorFunctionFactoryTermSeconds","TermFunctionSha1_1","TermFunctionSha1$1","TermFunctionSha1","ActorFunctionFactoryTermSha1_1","ActorFunctionFactoryTermSha1$1","ActorFunctionFactoryTermSha1","TermFunctionSha256_1","TermFunctionSha256$1","TermFunctionSha256","ActorFunctionFactoryTermSha256_1","ActorFunctionFactoryTermSha256$1","ActorFunctionFactoryTermSha256","TermFunctionSha384_1","TermFunctionSha384$1","TermFunctionSha384","ActorFunctionFactoryTermSha384_1","ActorFunctionFactoryTermSha384$1","ActorFunctionFactoryTermSha384","TermFunctionSha512_1","TermFunctionSha512$1","TermFunctionSha512","ActorFunctionFactoryTermSha512_1","ActorFunctionFactoryTermSha512$1","ActorFunctionFactoryTermSha512","TermFunctionStrAfter_1","TermFunctionStrAfter$1","TermFunctionStrAfter","ActorFunctionFactoryTermStrAfter_1","ActorFunctionFactoryTermStrAfter$1","ActorFunctionFactoryTermStrAfter","TermFunctionStrBefore_1","TermFunctionStrBefore$1","TermFunctionStrBefore","ActorFunctionFactoryTermStrBefore_1","ActorFunctionFactoryTermStrBefore$1","ActorFunctionFactoryTermStrBefore","TermFunctionStrDt_1","TermFunctionStrDt$1","TermFunctionStrDt","ActorFunctionFactoryTermStrDt_1","ActorFunctionFactoryTermStrDt$1","ActorFunctionFactoryTermStrDt","TermFunctionStrEnds_1","TermFunctionStrEnds$1","TermFunctionStrEnds","ActorFunctionFactoryTermStrEnds_1","ActorFunctionFactoryTermStrEnds$1","ActorFunctionFactoryTermStrEnds","TermFunctionStrLang_1","TermFunctionStrLang$1","TermFunctionStrLang","ActorFunctionFactoryTermStrLang_1","ActorFunctionFactoryTermStrLang$1","ActorFunctionFactoryTermStrLang","TermFunctionStrLen_1","TermFunctionStrLen$1","TermFunctionStrLen","ActorFunctionFactoryTermStrLen_1","ActorFunctionFactoryTermStrLen$1","ActorFunctionFactoryTermStrLen","TermFunctionStrStarts_1","TermFunctionStrStarts$1","TermFunctionStrStarts","ActorFunctionFactoryTermStrStarts_1","ActorFunctionFactoryTermStrStarts$1","ActorFunctionFactoryTermStrStarts","validate_1","regex_js_1","uuid","parse_1","validate_js_1","stringify_1","byteToHex","unsafeStringify","rng_1","getRandomValues","rnds8","rng","v1_1","rng_js_1","_state","isV6","optionsKeys","v1Bytes","now","rnds","updateV1State","msecs","nsecs","clockseq","tl","tmh","v1ToV6_1","parse_js_1","v1ToV6","v6Bytes","_v1ToV6","md5_1","md5","words","uint8ToUint32","md5Bytes","wordsToMd5","uint32ToUint8","getOutputLength","inputLength8","xpad","olda","oldb","oldc","oldd","md5ff","md5gg","md5hh","md5ii","safeAdd","lsw","bitRotateLeft","md5cmn","v35_1","stringToBytes","v35","valueBytes","namespaceBytes","md5_js_1","v35_js_1","v35_js_2","randomUUID","v4_1","native_js_1","v4","sha1_1","ROTL","sha1","newBytes","sha1_js_1","v5","v6_1","v1_js_1","v1ToV6_js_1","v6","v6ToV1_1","v6ToV1","_v6ToV1","v7_1","v7","v7Bytes","updateV7State","version_1","max_js_1","nil_js_1","v3_js_1","v4_js_1","v5_js_1","v6_js_1","v6ToV1_js_1","v7_js_1","version_js_1","TermFunctionStrUuid_1","TermFunctionStrUuid$1","TermFunctionStrUuid","ActorFunctionFactoryTermStrUuid_1","ActorFunctionFactoryTermStrUuid$1","ActorFunctionFactoryTermStrUuid","TermFunctionStr_1","TermFunctionStr$1","TermFunctionStr","ActorFunctionFactoryTermStr_1","ActorFunctionFactoryTermStr$1","ActorFunctionFactoryTermStr","TermFunctionSubStr_1","TermFunctionSubStr$1","startingLoc","TermFunctionSubStr","ActorFunctionFactoryTermSubStr_1","ActorFunctionFactoryTermSubStr$1","ActorFunctionFactoryTermSubStr","TermFunctionSubject_1","TermFunctionSubject$1","TermFunctionSubject","ActorFunctionFactoryTermSubject_1","ActorFunctionFactoryTermSubject$1","ActorFunctionFactoryTermSubject","TermFunctionSubtraction_1","TermFunctionSubtraction$1","date1","date2","TermFunctionSubtraction","ActorFunctionFactoryTermSubtraction_1","ActorFunctionFactoryTermSubtraction$1","ActorFunctionFactoryTermSubtraction","TermFunctionTimezone_1","TermFunctionTimezone$1","TermFunctionTimezone","ActorFunctionFactoryTermTimezone_1","ActorFunctionFactoryTermTimezone$1","ActorFunctionFactoryTermTimezone","TermFunctionTriple_1","TermFunctionTriple$1","TermFunctionTriple","ActorFunctionFactoryTermTriple_1","ActorFunctionFactoryTermTriple$1","ActorFunctionFactoryTermTriple","TermFunctionTz_1","TermFunctionTz$1","TermFunctionTz","ActorFunctionFactoryTermTz_1","ActorFunctionFactoryTermTz$1","ActorFunctionFactoryTermTz","TermFunctionUcase_1","TermFunctionUcase$1","TermFunctionUcase","ActorFunctionFactoryTermUcase_1","ActorFunctionFactoryTermUcase$1","ActorFunctionFactoryTermUcase","TermFunctionUnaryMinus_1","TermFunctionUnaryMinus$1","TermFunctionUnaryMinus","ActorFunctionFactoryTermUnaryMinus_1","ActorFunctionFactoryTermUnaryMinus$1","ActorFunctionFactoryTermUnaryMinus","TermFunctionUnaryPlus_1","TermFunctionUnaryPlus$1","TermFunctionUnaryPlus","ActorFunctionFactoryTermUnaryPlus_1","ActorFunctionFactoryTermUnaryPlus$1","ActorFunctionFactoryTermUnaryPlus","TermFunctionUuid_1","TermFunctionUuid$1","TermFunctionUuid","ActorFunctionFactoryTermUuid_1","ActorFunctionFactoryTermUuid$1","ActorFunctionFactoryTermUuid","TermFunctionXsdToBoolean_1","TermFunctionXsdToBoolean$1","TermFunctionXsdToBoolean","ActorFunctionFactoryTermXsdToBoolean_1","ActorFunctionFactoryTermXsdToBoolean$1","ActorFunctionFactoryTermXsdToBoolean","TermFunctionXsdToDate_1","TermFunctionXsdToDate$1","TermFunctionXsdToDate","ActorFunctionFactoryTermXsdToDate_1","ActorFunctionFactoryTermXsdToDate$1","ActorFunctionFactoryTermXsdToDate","TermFunctionXsdToDatetime_1","TermFunctionXsdToDatetime$1","TermFunctionXsdToDatetime","ActorFunctionFactoryTermXsdToDatetime_1","ActorFunctionFactoryTermXsdToDatetime$1","ActorFunctionFactoryTermXsdToDatetime","TermFunctionXsdToDayTimeDuration_1","TermFunctionXsdToDayTimeDuration$1","TermFunctionXsdToDayTimeDuration","ActorFunctionFactoryTermXsdToDayTimeDuration_1","ActorFunctionFactoryTermXsdToDayTimeDuration$1","ActorFunctionFactoryTermXsdToDayTimeDuration","TermFunctionXsdToDecimal_1","TermFunctionXsdToDecimal$1","TermFunctionXsdToDecimal","ActorFunctionFactoryTermXsdToDecimal_1","ActorFunctionFactoryTermXsdToDecimal$1","ActorFunctionFactoryTermXsdToDecimal","TermFunctionXsdToDouble_1","TermFunctionXsdToDouble$1","TermFunctionXsdToDouble","ActorFunctionFactoryTermXsdToDouble_1","ActorFunctionFactoryTermXsdToDouble$1","ActorFunctionFactoryTermXsdToDouble","TermFunctionXsdToDuration_1","TermFunctionXsdToDuration$1","TermFunctionXsdToDuration","ActorFunctionFactoryTermXsdToDuration_1","ActorFunctionFactoryTermXsdToDuration$1","ActorFunctionFactoryTermXsdToDuration","TermFunctionXsdToFloat_1","TermFunctionXsdToFloat$1","TermFunctionXsdToFloat","ActorFunctionFactoryTermXsdToFloat_1","ActorFunctionFactoryTermXsdToFloat$1","ActorFunctionFactoryTermXsdToFloat","TermFunctionXsdToInteger_1","TermFunctionXsdToInteger$1","TermFunctionXsdToInteger","ActorFunctionFactoryTermXsdToInteger_1","ActorFunctionFactoryTermXsdToInteger$1","ActorFunctionFactoryTermXsdToInteger","TermFunctionXsdToString_1","TermFunctionXsdToString$1","TermFunctionXsdToString","ActorFunctionFactoryTermXsdToString_1","ActorFunctionFactoryTermXsdToString$1","ActorFunctionFactoryTermXsdToString","TermFunctionXsdToTime_1","TermFunctionXsdToTime$1","TermFunctionXsdToTime","ActorFunctionFactoryTermXsdToTime_1","ActorFunctionFactoryTermXsdToTime$1","ActorFunctionFactoryTermXsdToTime","TermFunctionXsdToYearMonthDuration_1","TermFunctionXsdToYearMonthDuration$1","TermFunctionXsdToYearMonthDuration","ActorFunctionFactoryTermXsdToYearMonthDuration_1","ActorFunctionFactoryTermXsdToYearMonthDuration$1","ActorFunctionFactoryTermXsdToYearMonthDuration","TermFunctionYear_1","TermFunctionYear$1","TermFunctionYear","ActorFunctionFactoryTermYear_1","ActorFunctionFactoryTermYear$1","ActorFunctionFactoryTermYear","ReadableFromWeb_1","ReadableFromWeb$1","ReadableFromWeb","readableFromWeb","isStream","nodeToWeb","nodeStream","destroyed","controller","pull","cancel","ActorHttp_1","readable_from_web_1","toWebReadableStream","ActorHttp$1","ActorHttp","actorName","actorVersion","versions","validateAndCloseHttpResponse","httpResponse","bodyString","responseStream","FetchInitPreprocessor","ActorHttpFetch_1","bus_http_1","package_json_1","FetchInitPreprocessor_1","ActorHttpFetch$1","ActorHttpFetch","httpTimeout","httpBodyTimeout","fetchFunction","requestInit","timeoutCallback","timeoutHandle","abortController","authString","binString","ActorQueryOperationSource_1","bus_query_operation_1","ActorQueryOperationSource$1","mergedContext","quadStream","ActorQueryOperationSource","MediatorJoinCoefficientsFixed_1","MediatorJoinCoefficientsFixed$1","costs","maxCost","limitIndicator","minIndex","minValue","bestActor","coeff","MediatorJoinCoefficientsFixed","ActorHttpInvalidate_1","ActorHttpInvalidate$1","ActorHttpInvalidate","ActorHttpInvalidateListenable_1","ActorHttpInvalidateListenable$1","ActorHttpInvalidateListenable","MediatorAll_1","MediatorAll$1","passedResults","MediatorAll","ActorRdfJoinEntriesSortSelectivity_1","ActorRdfJoinEntriesSortSelectivity$1","remainingEntries","finalEntries","minSelectivity","minEntryIndex","remainingEntryIndex","remainingEntry","selectivity","ActorRdfJoinEntriesSortSelectivity","ChunkedIterator_1","ChunkedIterator$1","blockSize","ChunkedIterator","ClosableIterator_1","ClosableIterator$1","ClosableIterator","ClosableTransformIterator_1","ClosableTransformIterator$1","ClosableTransformIterator","instrumentIterator_1","instrumentIterator","counters","instrumentIteratorInner","readOld","startTime","ActorRdfJoin_1","utils_iterator_1","ActorRdfJoin$1","ActorRdfJoin","metadatas","variablesIndexed","variableLabel","canBeUndef","partialMetadata","cardinalityJoined","hasZeroCardinality","cardinalityThis","mediatorJoinEntriesSort","variableOccurrences","multiOccurrenceVariables","overlappingVariables","parentPhysicalQueryPlanNode","planMetadata","physicalPlanMetadata","cardinalities","ActorRdfJoinSingle_1","bus_rdf_join_1","ActorRdfJoinSingle$1","ActorRdfJoinSingle","ActorRdfJoinMultiEmpty_1","ActorRdfJoinMultiEmpty$1","ActorRdfJoinMultiEmpty","BindingsIndexDef_1","BindingsIndexDef$1","hashFn","BindingsIndexDef","BindingsIndexUndef_1","BindingsIndexUndef$1","allowDisjointDomains","dataIt","dataKey","subDataIt","validKeys","dataIndexes","matchingRecursive","subDatas","matchUndefsAsWildcard","BindingsIndexUndef","DynamicNestedLoopJoin","funRight","funJoin","leftItem","rightItem","HashJoin","funHash","allowJoining","addItem","NestedLoopJoin","SymmetricHashJoin","MergeIterator","attempts","MergeStream","ActorRdfJoinHash_1","utils_bindings_index_1","asyncjoin_1","ActorRdfJoinHash$1","indexBindings","hashFunction","entriesSorted","requestInitialTimes","requestItemTimes","ActorRdfJoinHash","ActorRdfJoinSymmetricHash_1","ActorRdfJoinSymmetricHash$1","ActorRdfJoinSymmetricHash","ActorRdfJoinNestedLoop_1","ActorRdfJoinNestedLoop$1","ActorRdfJoinNestedLoop","bindingsToString_1","bindingsToString","bindingsToCompactString","Bindings_1","Bindings$1","contextHolder","contextMergeHandlers","otherContext","allKeys","newContextData","handledKeys","keysSetOtherContext","keysBothContext","occursInBoth","BindingsFactory_1","BindingsFactory$1","BindingsFactory","mediatorMergeBindingsContext","ActorRdfJoinOptionalHash_1","utils_bindings_factory_1","ActorRdfJoinOptionalHash$1","ActorRdfJoinOptionalHash","undef","commonVariables","indexActive","ActorRdfJoinOptionalNestedLoop_1","ActorRdfJoinOptionalNestedLoop$1","ActorRdfJoinOptionalNestedLoop","ActorRdfJoinMinusHash_1","ActorRdfJoinMinusHash$1","ActorRdfJoinMinusHash","ActorDereferenceRdf_1","ActorDereferenceRdf$1","ActorDereferenceRdf","ActorDereferenceRdfParse_1","bus_dereference_rdf_1","ActorDereferenceRdfParse$1","ActorDereferenceRdfParse","HtmlScriptListener_1","HtmlScriptListener$1","HtmlScriptListener","mediatorRdfParseHandle","cbQuad","cbError","cbEnd","supportedTypes","textStream","textChunksLocal","parseAction","textChunk","ActorRdfParseHtmlScript_1","ActorRdfParseHtmlScript$1","ActorRdfParseHtmlScript","ActorQueryResultSerializeRdf_1","ActorQueryResultSerializeRdf$1","ActorQueryResultSerializeRdf","ActorBindingsAggregatorFactory_1","ActorBindingsAggregatorFactory$1","ActorBindingsAggregatorFactory","AggregateEvaluator_1","Eval","AggregateEvaluator$1","evaluator","throwError","AggregateEvaluator","GroupConcatAggregator_1","bus_bindings_aggregator_factory_1","GroupConcatAggregator$1","GroupConcatAggregator","ActorBindingsAggregatorFactoryGroupConcat_1","ActorBindingsAggregatorFactoryGroupConcat$1","ActorBindingsAggregatorFactoryGroupConcat","CountAggregator_1","CountAggregator$1","CountAggregator","ActorBindingsAggregatorFactoryCount_1","ActorBindingsAggregatorFactoryCount$1","ActorBindingsAggregatorFactoryCount","SampleAggregator_1","SampleAggregator$1","SampleAggregator","ActorBindingsAggregatorFactorySample_1","ActorBindingsAggregatorFactorySample$1","ActorBindingsAggregatorFactorySample","WildcardCountAggregator_1","WildcardCountAggregator$1","_term","bindingList","snd","WildcardCountAggregator","ActorBindingsAggregatorFactoryWildcardCount_1","ActorBindingsAggregatorFactoryWildcardCount$1","ActorBindingsAggregatorFactoryWildcardCount","AverageAggregator_1","AverageAggregator$1","additionFunction","divisionFunction","internalTerm","AverageAggregator","ActorBindingsAggregatorFactoryAverage_1","ActorBindingsAggregatorFactoryAverage$1","ActorBindingsAggregatorFactoryAverage","SumAggregator_1","SumAggregator$1","SumAggregator","ActorBindingsAggregatorFactorySum_1","ActorBindingsAggregatorFactorySum$1","ActorBindingsAggregatorFactorySum","ExpressionFunctionIn_1","ExpressionFunctionIn$1","equalityFunction","needle","nextExpression","ExpressionFunctionIn","ActorFunctionFactoryExpressionIn_1","ActorFunctionFactoryExpressionIn$1","ActorFunctionFactoryExpressionIn","ExpressionFunctionNotIn_1","ExpressionFunctionNotIn$1","inFunction","isIn","ExpressionFunctionNotIn","ActorFunctionFactoryExpressionNotIn_1","ActorFunctionFactoryExpressionNotIn$1","ActorFunctionFactoryExpressionNotIn","TermFunctionGreaterThanEqual_1","TermFunctionGreaterThanEqual$1","lessThanEqualFunction","TermFunctionGreaterThanEqual","ActorFunctionFactoryTermGreaterThanEqual_1","ActorFunctionFactoryTermGreaterThanEqual$1","ActorFunctionFactoryTermGreaterThanEqual","TermFunctionGreaterThan_1","TermFunctionGreaterThan$1","lessThanFunction","TermFunctionGreaterThan","ActorFunctionFactoryTermGreaterThan_1","ActorFunctionFactoryTermGreaterThan$1","ActorFunctionFactoryTermGreaterThan","TermFunctionInequality_1","TermFunctionInequality$1","TermFunctionInequality","ActorFunctionFactoryTermInequality_1","ActorFunctionFactoryTermInequality$1","ActorFunctionFactoryTermInequality","TermFunctionLesserThanEqual_1","TermFunctionLesserThanEqual$1","TermFunctionLesserThanEqual","ActorFunctionFactoryTermLesserThanEqual_1","ActorFunctionFactoryTermLesserThanEqual$1","ActorFunctionFactoryTermLesserThanEqual","TermFunctionLesserThan_1","TermFunctionLesserThan$1","dur1L","dur2L","subjectTest","predicateTest","objectTest","TermFunctionLesserThan","ActorFunctionFactoryTermLesserThan_1","ActorFunctionFactoryTermLesserThan$1","ActorFunctionFactoryTermLesserThan","ActorHttpWayback_1","WAYBACK_URL","addWayback","getProxyHandler","ActorHttpWayback$1","fallbackResult","ActorHttpWayback","ContainerHandlerIdentifier_1","ContainerHandlerIdentifier$1","containers","parsingContext","maybeId","ContainerHandlerIdentifier","EntryHandlerPredicate_1","EntryHandlerPredicate$1","EntryHandlerPredicate","isEmbedded","isAnnotation","depthProperties","depthOffsetGraph","depthPropertiesGraph","annotationsBuffer","newAnnotation","existingAnnotation","inProperty","keyOriginal","parentKey","parentDepthOffset","listValueContainer","listPointer","ContainerHandlerIndex_1","ContainerHandlerIndex$1","graphContainer","indexKey","indexPropertyRaw","indexProperty","indexValues","indexValue","depthOffset","ContainerHandlerIndex","ContainerHandlerLanguage_1","ContainerHandlerLanguage$1","ContainerHandlerLanguage","ContainerHandlerType_1","ContainerHandlerType$1","entryHasIdentifier","ContainerHandlerType","EntryHandlerContainer_1","EntryHandlerContainer$1","EntryHandlerContainer","isSimpleGraphContainer","fallback","checkGraphContainer","containersSelf","containersParent","containerHandleName","containerName","serialize","cv","canonicalizeJson","contextKey","haystack","indexHashes","existingIndexValue","valueLanguage","valueDirection","valueIndex","typeTerm","graphContainerEntries","valueId","valueTerm","contextKeyEntry","defaultDatatype","contextType","contextLanguage","contextDirection","disableCache","cachedUnaliasedKeyword","unliased","newHash","depthContainer","graphContainerIndex","keyUnaliased","lastValidDepth","annotationQuad","nestedAnnotation","EntryHandlerArrayValue_1","EntryHandlerArrayValue$1","listRootKey","listRootDepth","keyOption","valueOriginal","listRootKeys","newLinkTerm","EntryHandlerArrayValue","EntryHandlerInvalidFallback_1","EntryHandlerInvalidFallback$1","EntryHandlerInvalidFallback","EntryHandlerKeyword_1","EntryHandlerKeyword$1","EntryHandlerKeyword","EntryHandlerKeywordContext_1","EntryHandlerKeywordContext$1","EntryHandlerKeywordContext","EntryHandlerKeywordGraph_1","EntryHandlerKeywordGraph$1","EntryHandlerKeywordGraph","EntryHandlerKeywordId_1","EntryHandlerKeywordId$1","valueKeys","EntryHandlerKeywordId","EntryHandlerKeywordIncluded_1","EntryHandlerKeywordIncluded$1","valueUnliased","EntryHandlerKeywordIncluded","EntryHandlerKeywordNest_1","EntryHandlerKeywordNest$1","EntryHandlerKeywordNest","EntryHandlerKeywordType_1","EntryHandlerKeywordType$1","scopedContext","hasTypedScopedContext","typeContext","EntryHandlerKeywordType","EntryHandlerKeywordUnknownFallback_1","EntryHandlerKeywordUnknownFallback$1","EntryHandlerKeywordUnknownFallback","keywordType","EntryHandlerKeywordValue_1","EntryHandlerKeywordValue$1","EntryHandlerKeywordValue","ContextTree_1","ContextTree$1","ContextTree","ParsingContext_1","JsonLdParser_1","ParsingContext$1","ParsingContext","activeVersion","keysOriginal","contextData","propagate","originalDepth","hasApplicablePropertyScopedContext","lastKey","lastKeyValue","lastDepthCheck","pendingFlushBuffer","deeperIdStack","EntryHandlerKeywordAnnotation_1","EntryHandlerKeywordAnnotation$1","EntryHandlerKeywordAnnotation","JsonLdParser$1","JsonLdParser","wellKnownMediaTypes","streamingProfile","flushStacks","handleKey","validationResult","entryHandler","valueBuffer","bufferedValue","subGraphBuffer","graphBuffer","annotationsBufferParent","valueJobCb","jobs","job","contextAwaitingJobs","applicableTypeJobs","applicableTypeJobIds","typeJob","sortedTypeJobs","job1","job2","sortedApplicableTypeJobIds","jobId","FetchDocumentLoader$1","Util$1","ContextParser$1","DocumentLoaderMediated_1","DocumentLoaderMediated$1","DocumentLoaderMediated","mediatorHttp","ActorRdfParseJsonLd_1","jsonld_streaming_parser_1","ActorRdfParseJsonLd$1","ActorRdfParseJsonLd","ActorRdfUpdateHypermedia_1","ActorRdfUpdateHypermedia$1","destinationType","ActorRdfUpdateHypermedia","QuadDestinationPatchSparqlUpdate_1","QuadDestinationPatchSparqlUpdate$1","queryStream","quadsToInsert","quadsToDelete","_graphs","_requireNonExistence","QuadDestinationPatchSparqlUpdate","ActorRdfUpdateHypermediaPatchSparqlUpdate_1","bus_rdf_update_hypermedia_1","ActorRdfUpdateHypermediaPatchSparqlUpdate$1","ActorRdfUpdateHypermediaPatchSparqlUpdate","QuadDestinationPutLdp_1","QuadDestinationPutLdp$1","mediatorRdfSerializeMediatypes","mediatorRdfSerialize","availableMediaTypes","typeA","typeB","QuadDestinationPutLdp","ActorRdfUpdateHypermediaPutLdp_1","ActorRdfUpdateHypermediaPutLdp$1","ActorRdfUpdateHypermediaPutLdp","SparqlXmlParser_1","SparqlXmlParser$1","currentBindings","currentBindingName","currentBindingType","currentBindingAnnotation","currentText","currentQuotedTriples","currentQuotedTriple","SparqlXmlParser","asap","doResolve","deferred","finale","Handler","onFulfilled","onRejected","ex","SparqlEndpointFetcher_1","sparqlxml_parse_1","stringifyStream","SparqlEndpointFetcher$1","SparqlEndpointFetcher","parsedQuery","endpoint","defaultHeadersRaw","acceptHeader","simpleUrl","QuadDestinationSparql_1","fetch_sparql_endpoint_1","QuadDestinationSparql$1","graphsIn","requireExistence","dropGraphs","queries","graphValue","QuadDestinationSparql","ActorRdfUpdateHypermediaSparql_1","ActorRdfUpdateHypermediaSparql$1","ActorRdfUpdateHypermediaSparql","ActorQueryOperationAsk_1","ActorQueryOperationAsk$1","_operation","ActorQueryOperationAsk","ActorQueryOperationBgpJoin_1","ActorQueryOperationBgpJoin$1","ActorQueryOperationBgpJoin","BindingsToQuadsIterator_1","BindingsToQuadsIterator$1","BindingsToQuadsIterator","boundTerm","blankNodeCounter","ActorQueryOperationConstruct_1","ActorQueryOperationConstruct$1","ActorQueryOperationConstruct","getLiteralDirection","doubleDashPos","ActorQueryOperationDistinctIdentity_1","ActorQueryOperationDistinctIdentity$1","outputQuads","outputBindings","identities","ActorQueryOperationDistinctIdentity","ActorQueryOperationExtend_1","ActorQueryOperationExtend$1","innerVariable","extended","outputMetadata","ActorQueryOperationExtend","ActorQueryOperationFilter_1","ActorQueryOperationFilter$1","outputRaw","ActorQueryOperationFilter","ActorQueryOperationFromQuad_1","ActorQueryOperationFromQuad$1","ActorQueryOperationFromQuad","recursiveCb","copiedOperation","defaultGraphs","paths","subOperation","patternGraph","ActorQueryOperationProject_1","ActorQueryOperationProject$1","variablesOutputIndexed","variablesOperation","variablesOperationIndexed","deleteVariables","variablesOutput","deleteVariable","scopedBlankNodesCache","scopedBlankNode","ActorQueryOperationProject","ActorQueryOperationReducedHash_1","ActorQueryOperationReducedHash$1","ActorQueryOperationReducedHash","ActorQueryOperationSlice_1","ActorQueryOperationSlice$1","hasLength","subMetadata","ActorQueryOperationSlice","ActorQueryOperationUnion_1","ActorQueryOperationUnion$1","ActorQueryOperationUnion","variablesA","mediatorRdfMetadataAccumulate","accumulatedMetadata","appendingMetadata","outputsRaw","outputType","subMeta","PathVariableObjectIterator_1","PathVariableObjectIterator$1","mediatorQueryOperation","emitFirstSubject","maxRunningOperations","pushAsResult","fillBuffer","pendingOperation","runningOperation","pushSucceeded","PathVariableObjectIterator","ActorAbstractPath_1","ActorAbstractPath$1","predicateType","predVar","findGraphs","passedGraphs","metadataInner","termHashes","thisVariable","subjectVar","objectVar","subjectVal","objectVal","termHashesGlobal","termHashesCurrentSubject","objectsArray","ActorAbstractPath","ActorQueryOperationPathAlt_1","actor_abstract_path_1","actor_query_operation_union_1","ActorQueryOperationPathAlt$1","subOperations","subPredicate","ActorQueryOperationPathAlt","ActorQueryOperationPathInv_1","ActorQueryOperationPathInv$1","invPath","ActorQueryOperationPathInv","ActorQueryOperationPathLink_1","ActorQueryOperationPathLink$1","ActorQueryOperationPathLink","ActorQueryOperationPathNps_1","ActorQueryOperationPathNps$1","ActorQueryOperationPathNps","ActorQueryOperationClear_1","ActorQueryOperationClear$1","execute","ActorQueryOperationClear","ActorQueryOperationUpdateCompositeUpdate_1","ActorQueryOperationUpdateCompositeUpdate$1","ActorQueryOperationUpdateCompositeUpdate","ActorQueryOperationCreate_1","ActorQueryOperationCreate$1","ActorQueryOperationCreate","ActorQueryOperationDrop_1","ActorQueryOperationDrop$1","ActorQueryOperationDrop","ActorQueryOperationLoad_1","ActorQueryOperationLoad$1","querySource","ActorQueryOperationLoad","ActorQueryOperationJoin_1","ActorQueryOperationJoin$1","ActorQueryOperationJoin","ActorQueryOperationLeftJoin_1","ActorQueryOperationLeftJoin$1","expressionVariables","ActorQueryOperationLeftJoin","ActorQueryOperationMinus_1","ActorQueryOperationMinus$1","ActorQueryOperationMinus","ActorQueryOperationPathSeq_1","ActorQueryOperationPathSeq$1","generatedVariableNames","generatedVariableName","joinMetadata","ActorQueryOperationPathSeq","ActorRdfJoinMultiSmallest_1","ActorRdfJoinMultiSmallest$1","smallestEntry1","smallestEntry2","firstEntry","sortedEntries","ActorRdfJoinMultiSmallest","MaxAggregator_1","MaxAggregator$1","orderByEvaluator","MaxAggregator","ActorBindingsAggregatorFactoryMax_1","ActorBindingsAggregatorFactoryMax$1","ActorBindingsAggregatorFactoryMax","MinAggregator_1","MinAggregator$1","MinAggregator","ActorBindingsAggregatorFactoryMin_1","ActorBindingsAggregatorFactoryMin$1","ActorBindingsAggregatorFactoryMin","SortIterator_1","SortIterator$1","window","SortIterator","ActorQueryOperationOrderBy_1","ActorQueryOperationOrderBy$1","isAscending","transformedStream","expressionType","ActorQueryOperationOrderBy","ActorOptimizeQueryOperationFilterPushdown_1","ActorOptimizeQueryOperationFilterPushdown$1","sourceShapes","repeat","isModified","nestedExpressions","previous","sourceAdder","fullyOverlapping","partiallyOverlapping","notOverlapping","inputVariables","unions","rightVariables","pushableResult","originalMetadata","varsA","varsB","varA","varB","varsNeedles","varsHaystack","childData","ActorOptimizeQueryOperationFilterPushdown","ActorDereferenceHttpBase_1","REGEX_MEDIATYPE","mediaTypesToAcceptString","maxLength","wildcard","sortedMediaTypes","priority","partsLength","part","ActorDereferenceHttpBase$1","requestTimeStart","ActorDereferenceHttpBase","ActorDereferenceHttp","ActorHttpProxy_1","ActorHttpProxy$1","proxyHandler","requestedUrl","ActorHttpProxy","ProxyHandlerStatic_1","ProxyHandlerStatic$1","prefixUrl","ProxyHandlerStatic","ActorContextPreprocessQuerySourceIdentify_1","ActorContextPreprocessQuerySourceIdentify$1","querySourcesUnidentified","querySourcesUnidentifiedExpanded","querySources","querySourceUnidentified","statisticDereferenceLinks","sourcePromise","ActorContextPreprocessQuerySourceIdentify","ActorRdfUpdateQuadsHypermedia_1","ActorRdfUpdateQuadsHypermedia$1","dereferenceRdfOutput","rdfMetadataOuput","ActorRdfUpdateQuadsHypermedia","ActionObserverHttp_1","ActionObserverHttp","_output","ActorQueryResultSerializeSparqlJson_1","ActorQueryResultSerializeSparqlJson$1","ActorQueryResultSerializeSparqlJson","jsonValue","ActionObserverHttp$1","ActorQueryResultSerializeStats_1","ActorQueryResultSerializeStats$1","ActorQueryResultSerializeStats","ActorQuerySourceIdentifyHypermedia_1","ActorQuerySourceIdentifyHypermedia","sourceType","ActorQuerySourceIdentify_1","ActorQuerySourceIdentify$1","ActorQuerySourceIdentify","QuadTermUtil_1","quadsToBindings","filterNonDefaultQuads","duplicateElementLinks","getDuplicateElementLinks","elementVariables","filteredOutput","keyLeft","keysLeft","valueLeft","keysRight","setMetadata","isTermVariable","variableElements","duplicateVariables","remainingElements","forceEstimateCardinality","getMetadataCb","quadsMetadataToBindingsMetadata","metadataQuads","quadsOrderToBindingsOrder","orderDef","quadsOrder","mappedVariables","variableName","filterMatchingQuotedQuads","QuerySourceQpf_1","bus_query_source_identify_1","QuerySourceQpf$1","mediatorMetadata","mediatorMetadataExtract","mediatorDereferenceRdf","subjectUri","predicateUri","objectUri","graphUri","bindingsRestricted","initialQuads","wrappedQuads","searchForm","modifiedGraph","dataStreamPromise","dataStream","actualDefaultGraph","filterBindings","valuesUrl","_termToString","QuerySourceQpf","ActorQuerySourceIdentifyHypermediaQpf_1","bus_query_source_identify_hypermedia_1","ActorQuerySourceIdentifyHypermediaQpf$1","ActorQuerySourceIdentifyHypermediaQpf","QuerySourceSparql_1","QuerySourceSparql$1","QuerySourceSparql","bindMethod","forceHttpGet","cacheSize","countTimeout","cardinalityCountQueries","cardinalityEstimateConstruction","defaultGraph","operationIn","operationPromise","queryString","selectQuery","undefVariables","rawStream","variablesCount","variablesScoped","countQuery","undefVariable","cachedCardinality","localEstimate","timeoutHandler","cardinalityValue","normalizedOperation","ds","card","addBindings","varRight","varLeft","scopedVariables","inputVar","undefVariablesIndex","rawData","ActorQuerySourceIdentifyHypermediaSparql_1","ActorQuerySourceIdentifyHypermediaSparql$1","isSingularSource","ActorQuerySourceIdentifyHypermediaSparql","QuerySourceRdfJs_1","QuerySourceRdfJs$1","QuerySourceRdfJs","quotedTripleFiltering","extraMetadata","wouldRequirePostFiltering","ActorQuerySourceIdentifyRdfJs_1","ActorQuerySourceIdentifyRdfJs$1","ActorQuerySourceIdentifyRdfJs","TermDictionaryNumberRecordFullTerms_1","TermDictionaryNumberRecordFullTerms$1","encoded","quotedTriplePattern","TermDictionaryNumberRecordFullTerms","getBestIndex","getComponentOrderScore","orderQuadComponents","encodeOptionalTerms","quadToPattern","quadHasVariables","arePatternsQuoted","componentOrders","quadPattern","definedQuadComponentNames","quadComponentId","componentOrder","scoredLeft","scoredRight","partialComponentOrder","add","desiredComponentOrder","desiredComponent","desiredComponentIndex","dictionary","encodedTerms","encodedTerm","quotedPatterns","requireQuotedTripleFiltering","currentTerm","component","RdfStoreIndexNestedMap_1","OrderUtils_1","RdfStoreIndexNestedMap$1","map0","map1","map2","map3","contained","id0","id1","id2","id3","term0","term3","partialQuad0","partialQuad1","partialQuad2","partialQuad3","map0Keys","map1Keys","map2Keys","key3","map3Keys","key4","RdfStoreIndexNestedMap","TermDictionaryQuotedIndexed_1","TermDictionaryQuotedIndexed$1","TermDictionaryQuotedIndexed","rawTermDictionary","subIndexOpts","encodedTripleOptional","encodedTriple","encodingBase","encodedGraph","termEncoded","patternIn","termS","termP","termO","termG","patternTerm","RdfStoreIndexNestedMapQuoted_1","RdfStoreIndexNestedMapQuoted$1","quotedTripleEncoded","quotedTerm0","quotedTerm1","quotedTerm2","quotedTerm3","RdfStoreIndexNestedMapQuoted","RdfStore_1","DatasetCoreWrapper_1","RdfStore$1","RdfStore","indexThis","subOptions","indexes","combination","quadTermName","quadEncoded","newQuad","indexWrapped","wasPresent","indexesSupportQuotedPatterns","quadComponents","quadComponentsOrdered","decomposedQuad","variableIndexes","shouldFilterIndexes","filterIndexes","equalVariables","decomposedQuadEncoded","skipBinding","checkForBindingConflicts","bindingsEntries","filterI","decodedTerm","additionalBindings","quadComponent","DatasetCoreWrapper$1","DatasetCoreWrapper","TermDictionaryNumberMap_1","TermDictionaryNumberMap$1","TermDictionaryNumberMap","TermDictionaryNumberRecord_1","TermDictionaryNumberRecord$1","TermDictionaryNumberRecord","TermDictionaryQuoted_1","TermDictionaryQuoted$1","TermDictionaryQuoted","plainTermDictionary","quotedTriplesDictionary","encodedQuotedTriple","quotedTriple","TermDictionaryQuotedReferential_1","TermDictionaryQuotedReferential$1","TermDictionaryQuotedReferential","TermDictionarySymbol_1","TermDictionarySymbol$1","TermDictionarySymbol","RdfStoreIndexNestedMapRecursive_1","RdfStoreIndexNestedMapRecursive$1","mapActual","nextMap","termsEncoded","partialQuad","subMap","RdfStoreIndexNestedMapRecursive","RdfStoreIndexNestedMapRecursiveQuoted_1","RdfStoreIndexNestedMapRecursiveQuoted$1","isQuotedPattern","quotedTriplesEncoded","RdfStoreIndexNestedMapRecursiveQuoted","RdfStoreIndexNestedRecord_1","RdfStoreIndexNestedRecord$1","RdfStoreIndexNestedRecord","RdfStoreIndexNestedRecordQuoted_1","RdfStoreIndexNestedRecordQuoted$1","RdfStoreIndexNestedRecordQuoted","storeStream","rdf_stores_1","ActorQuerySourceIdentifyHypermediaNone_1","actor_query_source_identify_rdfjs_1","rdf_store_stream_1","ActorQuerySourceIdentifyHypermediaNone$1","ActorQuerySourceIdentifyHypermediaNone","ActorExpressionEvaluatorFactory_1","ActorExpressionEvaluatorFactory$1","ActorExpressionEvaluatorFactory","AlgebraTransformer_1","ExprEval","AlgebraTransformer$1","AlgebraTransformer","mediatorFunctionFactory","operatorFunc","operatorArgs","InternalEvaluator_1","InternalEvaluator$1","_mapping","_expr","InternalEvaluator","ExpressionEvaluator_1","ExpressionEvaluator$1","ActorExpressionEvaluatorFactoryDefault_1","bus_expression_evaluator_factory_1","ActorExpressionEvaluatorFactoryDefault$1","fullContext","ActorExpressionEvaluatorFactoryDefault","GroupsState_1","GroupsState$1","mediatorBindingsAggregatorFactory","check","groupHash","groupInitializer","groupInitializerDefined","rows","groupBindings","returnBindings","GroupsState","ActorQueryOperationGroup_1","ActorQueryOperationGroup$1","variablesInner","bindingsStreamInner","ActorQueryOperationGroup","ActorQueryOperationNop_1","ActorQueryOperationNop$1","ActorQueryOperationNop","ActorQueryOperationService_1","ActorQueryOperationService$1","ActorQueryOperationService","ActorQueryOperationValues_1","ActorQueryOperationValues$1","ActorQueryOperationValues","ActorQueryOperationPathOneOrMore_1","ActorQueryOperationPathOneOrMore$1","starEval","ActorQueryOperationPathOneOrMore","ActorQueryOperationPathZeroOrMore_1","ActorQueryOperationPathZeroOrMore$1","sVar","oVar","subjectGraphHash","objectGraphHash","ActorQueryOperationPathZeroOrMore","ActorQueryOperationPathZeroOrOne_1","ActorQueryOperationPathZeroOrOne$1","extra","bindingsOne","varP","bindingsZero","innerMetadata","ActorQueryOperationPathZeroOrOne","ActorQueryOperationUpdateDeleteInsert_1","actor_query_operation_construct_1","ActorQueryOperationUpdateDeleteInsert$1","whereBindings","quadStreamInsert","quadStreamDelete","ActorQueryOperationUpdateDeleteInsert","ActorQueryProcess_1","ActorQueryProcess$1","ActorQueryProcess","ActorQueryProcessSequential_1","bus_query_process_1","ActorQueryProcessSequential$1","queryParseOutput","ActorQueryProcessSequential","LinkedRdfSourcesAsyncRdfIterator_1","LinkedRdfSourcesAsyncRdfIterator$1","queryBindingsOptions","firstUrl","maxIterators","sourceStateGetter","sourceState","returnMetadata","startSource","receivedEndEvent","receivedMetadata","previousMetadata","metadataIn","nextUrls","nextUrl","syncError","metadataNew","metadataToInvalidate","handledDatasets","canClose","nextLink","nextSourceState","_requireQueueEmpty","LinkedRdfSourcesAsyncRdfIterator","MediatedLinkedRdfSourcesAsyncRdfIterator_1","MediatedLinkedRdfSourcesAsyncRdfIterator$1","forceSourceType","aggregatedStore","mediatorMetadataAccumulate","mediatorRdfResolveHypermediaLinks","mediatorRdfResolveHypermediaLinksQueue","requireQueueEmpty","traversalTracker","MediatedLinkedRdfSourcesAsyncRdfIterator","BlankNode$1","DefaultGraph$1","NamedNode$1","Literal$1","Quad$1","Variable$1","DataFactory$1","PendingStreamsIndex_1","PendingStreamsIndex$1","PendingStreamsIndex","pendingStream","existingListeners","keysOld","keyModified","pendingStreams","__asyncValues","verb","settle","__await","__asyncGenerator","fulfill","StreamingStore_1","StreamingStore$1","StreamingStore","readables","e_1","readable_1","readable_1_1","e_1_1","storeResult","StreamingStoreMetadata_1","rdf_streaming_store_1","StreamingStoreMetadata$1","metadataAccumulator","updateStates","StreamingStoreMetadata","QuerySourceHypermedia_1","QuerySourceHypermedia$1","aggregateStore","mediators","logWarning","rdfMetadataOutput","aggregatedStores","QuerySourceHypermedia","ActorQuerySourceIdentifyHypermedia$1","warningMessage","ActorRdfJoinNone_1","ActorRdfJoinNone$1","ActorRdfJoinNone","ActorRdfJoinMultiBind_1","ActorRdfJoinMultiBind$1","ActorRdfJoinMultiBind","bindOrder","baseStream","operationBinder","autoStartSubBindings","binder","bindingsMerger","subBindings","smallestStream","operationBindings","entriesUnsorted","entriesTest","remainingRequestInitialTimes","remainingRequestItemTimes","isRemoteAccess","selectivities","cardinalityRemaining","receiveInitialCostRemaining","receiveItemCostRemaining","ActorRdfJoinOptionalBind_1","actor_rdf_join_inner_multi_bind_1","ActorRdfJoinOptionalBind$1","ActorRdfJoinOptionalBind","ActorTermComparatorFactory_1","ActorTermComparatorFactory$1","ActorTermComparatorFactory","TermComparatorExpressionEvaluator_1","TermComparatorExpressionEvaluator$1","internalEvaluator","orderSubject","orderPredicate","orderObject","litA","litB","myLitA","myLitB","compareType","TermComparatorExpressionEvaluator","ActorTermComparatorFactoryExpressionEvaluator_1","bus_term_comparator_factory_1","ActorTermComparatorFactoryExpressionEvaluator$1","ActorTermComparatorFactoryExpressionEvaluator","ActorRdfJoinMultiSmallestFilterBindings_1","ActorRdfJoinMultiSmallestFilterBindings$1","secondIndex","secondSharedVariables","sharedVariables","variableFirst","variableSecond","secondIn","remainingIn","smallestStream1","smallestStream1Projected","commonVariable","chunkedStreams","joinedEntry","sortedResult","testingOperation","selectorShape","ActorRdfJoinMultiSmallestFilterBindings","ActorQueryProcessExplainLogical_1","ActorQueryProcessExplainLogical$1","ActorQueryProcessExplainLogical","ActorQueryProcessExplainParsed_1","ActorQueryProcessExplainParsed$1","ActorQueryProcessExplainParsed","MemoryPhysicalQueryPlanLogger_1","MemoryPhysicalQueryPlanLogger$1","logicalOperator","physicalOperator","parentNode","planNode","planParentNode","childrenGrouped","lastSubChild","childrenCompact","rawNode","numberToString","MemoryPhysicalQueryPlanLogger","ActorQueryProcessExplainPhysical_1","ActorQueryProcessExplainPhysical$1","ActorQueryProcessExplainPhysical","ActorOptimizeQueryOperationPruneEmptySourceOperations_1","ActorOptimizeQueryOperationPruneEmptySourceOperations$1","ActorOptimizeQueryOperationPruneEmptySourceOperations","collectedOperations","emptyOperations","collectedOperation","checkOperation","emptyOperation","subSubOperation","inputType","multiOperationFactory","nonEmptyInputs","askOperation","ActorHttpRetry_1","ActorHttpRetry$1","ActorHttpRetry","retryCount","attemptLimit","retryDelayFallback","retryDelayLimit","retryStatusCodes","attempt","retryDelay","retryAfterHeader","retryAfter","ms","invalidatedHost","host","ActorHttpLimitRate_1","ActorHttpLimitRate$1","ActorHttpLimitRate","requestUrl","requestHostData","currentTimestamp","currentRequestDelay","registerCompletedRequest","success","requestDuration","ActorQuerySourceIdentifySerialized_1","ActorQuerySourceIdentifySerialized$1","parseResult","ActorQuerySourceIdentifySerialized","ActorRdfJoinMultiBindSource_1","ActorRdfJoinMultiBindSource$1","smallestMetadata","ActorRdfJoinMultiBindSource","ActorOptimizeQueryOperationJoinConnected_1","ActorOptimizeQueryOperationJoinConnected$1","ActorOptimizeQueryOperationJoinConnected","initialClusters","oldClusters","newClusters","subJoins","oldCluster","newEntry","variablesB","variableA","ActorOptimizeQueryOperationBgpToJoin_1","ActorOptimizeQueryOperationBgpToJoin$1","ActorOptimizeQueryOperationBgpToJoin","ActorOptimizeQueryOperationJoinBgp_1","ActorOptimizeQueryOperationJoinBgp$1","ActorOptimizeQueryOperationJoinBgp","ActorOptimizeQueryOperationAssignSourcesExhaustive_1","ActorOptimizeQueryOperationAssignSourcesExhaustive$1","ActorOptimizeQueryOperationAssignSourcesExhaustive","ActorOptimizeQueryOperationDescribeToConstructsSubject_1","ActorOptimizeQueryOperationDescribeToConstructsSubject$1","templatePattern","variablePatterns","ActorOptimizeQueryOperationDescribeToConstructsSubject","df_719_1","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_init__4_0_0_components_ActorInit_jsonld_ActorInit_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_context_preprocess__4_0_0_components_ActorContextPreprocess_jsonld_ActorContextPreprocess_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_bindings__4_0_0_components_ActorHashBindings_jsonld_ActorHashBindings_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_hash_quads__4_0_0_components_ActorHashQuads_jsonld_ActorHashQuads_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_optimize_query_operation__4_0_0_components_ActorOptimizeQueryOperation_jsonld_ActorOptimizeQueryOperation_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_parse__4_0_0_components_ActorQueryParse_jsonld_ActorQueryParse_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_result_serialize__4_0_0_components_ActorQueryResultSerialize_jsonld_ActorQueryResultSerialize_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify_hypermedia__4_0_0_components_ActorQuerySourceIdentifyHypermedia_jsonld_ActorQuerySourceIdentifyHypermedia_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference__4_0_0_components_ActorDereference_jsonld_ActorDereference_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_dereference_rdf__4_0_0_components_ActorDereferenceRdf_jsonld_ActorDereferenceRdf_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_entries_sort__4_0_0_components_ActorRdfJoinEntriesSort_jsonld_ActorRdfJoinEntriesSort_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join_selectivity__4_0_0_components_ActorRdfJoinSelectivity_jsonld_ActorRdfJoinSelectivity_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata__4_0_0_components_ActorRdfMetadata_jsonld_ActorRdfMetadata_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_accumulate__4_0_0_components_ActorRdfMetadataAccumulate_jsonld_ActorRdfMetadataAccumulate_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_metadata_extract__4_0_0_components_ActorRdfMetadataExtract_jsonld_ActorRdfMetadataExtract_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse__4_0_0_components_ActorRdfParse_jsonld_ActorRdfParse_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_parse_html__4_0_0_components_ActorRdfParseHtml_jsonld_ActorRdfParseHtml_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links__4_0_0_components_ActorRdfResolveHypermediaLinks_jsonld_ActorRdfResolveHypermediaLinks_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_resolve_hypermedia_links_queue__4_0_0_components_ActorRdfResolveHypermediaLinksQueue_jsonld_ActorRdfResolveHypermediaLinksQueue_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_serialize__4_0_0_components_ActorRdfSerialize_jsonld_ActorRdfSerialize_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_hypermedia__4_0_0_components_ActorRdfUpdateHypermedia_jsonld_ActorRdfUpdateHypermedia_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_update_quads__4_0_0_components_ActorRdfUpdateQuads_jsonld_ActorRdfUpdateQuads_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_bindings_aggregator_factory__4_0_0_components_ActorBindingsAggregatorFactory_jsonld_ActorBindingsAggregatorFactory_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_expression_evaluator_factory__4_0_0_components_ActorExpressionEvaluatorFactory_jsonld_ActorExpressionEvaluatorFactory_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_function_factory__4_0_0_components_ActorFunctionFactory_jsonld_ActorFunctionFactory_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http__4_0_0_components_ActorHttp_jsonld_ActorHttp_fallback_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_operation__4_0_0_components_ActorQueryOperation_jsonld_ActorQueryOperation_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_process__4_0_0_components_ActorQueryProcess_jsonld_ActorQueryProcess_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_query_source_identify__4_0_0_components_ActorQuerySourceIdentify_jsonld_ActorQuerySourceIdentify_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_rdf_join__4_0_0_components_ActorRdfJoin_jsonld_ActorRdfJoin_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_term_comparator_factory__4_0_0_components_ActorTermComparatorFactory_jsonld_ActorTermComparatorFactory_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_http_invalidate__4_0_0_components_ActorHttpInvalidate_jsonld_ActorHttpInvalidate_default_bus","https___linkedsoftwaredependencies_org_bundles_npm__comunica_bus_merge_bindings_context__4_0_0_components_ActorMergeBindingsContext_jsonld_ActorMergeBindingsContext_default_bus","urn_comunica_default_context_preprocess_actors_query_source_skolemize","urn_comunica_default_context_preprocess_mediators_main","urn_comunica_default_hash_bindings_mediators_main","urn_comunica_default_optimize_query_operation_actors_group_sources","urn_comunica_default_optimize_query_operation_mediators_main","urn_comunica_default_query_parse_mediators_main","require$$21","require$$22","require$$23","require$$24","require$$25","urn_comunica_default_query_result_serialize_mediators_serialize","urn_comunica_default_query_result_serialize_mediators_mediaType","require$$26","urn_comunica_default_query_result_serialize_mediators_mediaTypeFormat","urn_comunica_default_query_source_identify_hypermedia_mediators_main","require$$27","urn_comunica_default_dereference_actors_fallback","require$$28","urn_comunica_default_dereference_mediators_main","urn_comunica_default_dereference_rdf_mediators_main","require$$29","urn_comunica_default_rdf_join_entries_sort_mediators_main","require$$30","urn_comunica_default_rdf_join_selectivity_mediators_main","require$$31","require$$32","urn_comunica_default_rdf_metadata_mediators_main","require$$33","require$$34","require$$35","urn_comunica_default_rdf_metadata_accumulate_mediators_main","require$$36","require$$37","require$$38","require$$39","require$$40","require$$41","require$$42","require$$43","require$$44","urn_comunica_default_rdf_metadata_extract_mediators_main","require$$45","require$$46","require$$47","require$$48","urn_comunica_default_rdf_parse_mediators_parse","urn_comunica_default_rdf_parse_mediators_mediaType","require$$49","require$$50","require$$51","require$$52","urn_comunica_default_rdf_resolve_hypermedia_links_mediators_main","require$$53","urn_comunica_default_rdf_resolve_hypermedia_links_queue_mediators_main","require$$54","require$$55","require$$56","urn_comunica_default_rdf_serialize_mediators_serialize","urn_comunica_default_rdf_serialize_mediators_mediaType","urn_comunica_default_rdf_serialize_mediators_mediaTypeFormat","urn_comunica_default_rdf_update_hypermedia_mediators_main","require$$57","urn_comunica_default_rdf_update_quads_mediators_main","urn_comunica_default_bindings_aggregator_factory_mediators_main","urn_comunica_default_expression_evaluator_factory_mediators_main","require$$58","require$$59","require$$60","require$$61","require$$62","require$$63","require$$64","require$$65","require$$66","require$$67","require$$68","require$$69","require$$70","require$$71","require$$72","require$$73","require$$74","require$$75","require$$76","require$$77","require$$78","require$$79","require$$80","require$$81","require$$82","require$$83","require$$84","require$$85","require$$86","require$$87","require$$88","require$$89","require$$90","require$$91","require$$92","require$$93","require$$94","require$$95","require$$96","require$$97","require$$98","require$$99","require$$100","require$$101","require$$102","require$$103","require$$104","require$$105","require$$106","require$$107","require$$108","require$$109","require$$110","require$$111","require$$112","require$$113","require$$114","require$$115","require$$116","require$$117","require$$118","require$$119","require$$120","require$$121","require$$122","require$$123","require$$124","require$$125","require$$126","require$$127","require$$128","require$$129","require$$130","require$$131","require$$132","require$$133","require$$134","require$$135","urn_comunica_default_function_factory_mediators_main","urn_comunica_default_http_actors_fetch","require$$136","urn_comunica_default_http_mediators_no_fallback","urn_comunica_default_http_mediators_main","require$$137","urn_comunica_default_query_operation_mediators_main","urn_comunica_default_query_process_mediators_main","urn_comunica_default_query_source_identify_mediators_main","urn_comunica_default_rdf_join_mediators_main","require$$138","urn_comunica_default_term_comparator_factory_mediators_main","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_context_preprocess_query_source_identify__4_0_0_components_ActorContextPreprocessQuerySourceIdentify_jsonld_IActorContextPreprocessQuerySourceIdentifyArgs_default_invalidator","require$$139","urn_comunica_default_http_invalidate_mediators_main","require$$140","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_rdf_update_quads_hypermedia__4_0_0_components_ActorRdfUpdateQuadsHypermedia_jsonld_IActorRdfUpdateQuadsHypermediaArgs_default_invalidator","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_http_retry__4_0_0_components_ActorHttpRetry_jsonld_IActorHttpQueueArgs_default_invalidator","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_http_limit_rate__4_0_0_components_ActorHttpLimitRate_jsonld_IActorHttpLimitRateArgs_default_invalidator","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_sparql_json__4_0_0_components_ActionObserverHttp_jsonld_IActionObserverHttpArgs_default_invalidator","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_stats__4_0_0_components_ActionObserverHttp_jsonld_IActionObserverHttpArgs_default_invalidator","urn_comunica_default_merge_bindings_context_mediators_main","require$$141","require$$142","require$$143","urn_comunica_default_rdf_join_actors_inner_hash_def","require$$144","urn_comunica_default_rdf_join_actors_inner_hash_undef","urn_comunica_default_rdf_join_actors_inner_symmetric_hash","require$$145","urn_comunica_default_rdf_join_actors_inner_nested_loop","require$$146","require$$147","require$$148","require$$149","require$$150","require$$151","require$$152","require$$153","require$$154","require$$155","require$$156","require$$157","require$$158","require$$159","require$$160","require$$161","require$$162","require$$163","require$$164","require$$165","require$$166","require$$167","require$$168","require$$169","require$$170","require$$171","require$$172","require$$173","require$$174","require$$175","require$$176","require$$177","require$$178","require$$179","require$$180","require$$181","require$$182","require$$183","require$$184","require$$185","require$$186","require$$187","require$$188","require$$189","require$$190","require$$191","require$$192","require$$193","require$$194","urn_comunica_default_rdf_join_actors_inner_multi_smallest","require$$195","require$$196","require$$197","require$$198","urn_comunica_default_optimize_query_operation_actors_filter_pushdown","require$$199","require$$200","urn_comunica_default_http_actors_proxy","require$$201","require$$202","urn_comunica_default_init_actors_query","require$$203","require$$204","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_sparql_json__4_0_0_components_ActorQueryResultSerializeSparqlJson_jsonld_ActorQueryResultSerializeSparqlJson_default_observer","require$$205","https___linkedsoftwaredependencies_org_bundles_npm__comunica_actor_query_result_serialize_stats__4_0_0_components_ActorQueryResultSerializeStats_jsonld_ActorQueryResultSerializeStats_default_observer","require$$206","require$$207","require$$208","require$$209","require$$210","require$$211","require$$212","require$$213","require$$214","require$$215","require$$216","require$$217","require$$218","urn_comunica_default_query_process_actors_sequential","require$$219","urn_comunica_default_query_source_identify_actors_hypermedia","require$$220","require$$221","require$$222","require$$223","urn_comunica_default_rdf_join_actors_inner_multi_bind","require$$224","require$$225","require$$226","require$$227","require$$228","urn_comunica_default_optimize_query_operation_actors_prune_empty_source_operations","require$$229","require$$230","require$$231","require$$232","require$$233","require$$234","urn_comunica_default_optimize_query_operation_actors_join_connected","require$$235","urn_comunica_default_optimize_query_operation_actors_bgp_to_join","require$$236","urn_comunica_default_optimize_query_operation_actors_join_bgp","require$$237","urn_comunica_default_optimize_query_operation_actors_assign_sources_exhaustive","require$$238","require$$239","QueryEngine_1","actor_init_query_1","engineDefault","QueryEngine$1","engine","QueryEngine","queryResults","clsSet","predSet","voidDescription","queryToGetExamples","exampleQueries","_yasqe","prefixToAutocomplete","suggestedString","yasqe","cursor","subj","subjTypes","cursorEndpoint","suggestPreds","typeCurie","metaString","statusLight","statusLink","clsOverviewBtn","metaScore","statusMsg","example","defaultMethod","styleEl","saveAsExampleBtn","toggleExamplesIcon","contentDiv","editorEl","sortedPrefixes","_y","tab","limitPattern","iriCell","describeBtn","dialogEl","exampleNumberForId","dialog","exampleRepoLink","addToRepoBtn","generateShacl","keywordsStr","kw","queryType","keywordsBit","exampleUri","formEl","shaclStr","dataStr","downloadAnchor","uploadExampleUrl","exampleQueriesEl","overviewBtn","existingOverviewDialog","overviewDialog","overviewEl","SparqlOverview","dialogCloseBtn","forceReload","existingExampleQueriesEl","examplesTopBtnEl","toggleExamplesBtn","btnTextContent","yasqeEl","yasqeElParent","exQueryTitleDiv","exQueryTitle","exQueryDialog","searchInput","exDialogCloseBtn","exQueryDiv","exQueryP","displayExamples","filteredExamples","exQueryPre","exQueryCode","searchTerm","openExDialogBtn","sortedKeys","resourceUrl","curie"],"mappings":"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,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI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AAAA;AAAA;AAAA,GAgIZ,oBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgDtB,eAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkFjB,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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E,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAEC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAEC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,EAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,EAAI,CAAC,GAAG,GAAG,GAAG,EAAEC,EAAI,CAAC,IAAI,IAAI,IAAI,GAAG,EAAEC,EAAI,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,EAAEC,EAAI,CAAC,EAAE,GAAG,EAAEC,EAAI,CAAC,EAAE,GAAG,EAAEC,EAAI,CAAC,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAI,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAI,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,EAAI,CAAC,EAAE,GAAG,EAAEC,EAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,EAAI,CAAC,EAAE,GAAG,EAAEC,EAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,EAAE,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,EAAE,EAAEC,GAAK,CAAC,GAAG,EAAE,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,EAAE,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,GAAG,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAE,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,EAAE,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,EAAEC,GAAK,CAAC,EAAE,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,EAAK,CAAC,EAAE,GAAG,EAAEC,EAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,I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AG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IA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MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,KAAI,MAAO,KAEhB,IAAK,KAAI,MAAO,IAEhB,IAAK,KAAI,MAAO,IAEhB,IAAK,KAAI,MAAO,KAEhB,IAAK,K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EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,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AAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,KAAM,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,uBAAuB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,yBAAyB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,gBAAiB,EAAG,KAAM,EAAG,cAAc,CAAE,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,GAAI,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,GAAI,wBAAwB,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,UAAU,CAAE,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,uBAAuB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,uBAAuB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,wBAAwB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,oBAAoB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,CAAE,EAAG,SAAU,EAAG,IAAK,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,KAAM,EAAG,QAAQ,CAAE,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,wBAAwB,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,QAAU,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,QAAU,CAAA,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,4BAA4B,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,KAAM,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,YAAa,EAAG,IAAK,EAAG,QAAU,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAK,EAAG,OAAS,CAAA,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,CAAE,EAAG,SAAU,EAAG,IAAK,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,CAAE,EAAG,YAAa,EAAG,KAAM,EAAG,QAAU,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,SAAU,EAAG,IAAK,EAAG,SAAS,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,UAAU,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,SAAW,CAAA,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,CAAE,EAAG,cAAe,EAAG,KAAM,EAAG,WAAW,CAAE,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,KAAM,EAAG,QAAQ,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,KAAM,EAAG,QAAQ,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAK,EAAG,OAAS,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAK,EAAG,OAAS,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,aAAa,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,aAAe,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAI,IAAoBA,EAAY,CAAC,CAAC,IAAK,QAAQ,EAAG,CAAC,KAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAI,IAAoBA,EAAY,CAAC,CAAC,IAAK,QAAQ,EAAG,CAAC,KAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,oBAAoB,CAAE,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,KAAM,EAAG,aAAa,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,KAAM,EAAG,eAAe,CAAE,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,MAAO,EAAG,gBAAgB,CAAE,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,MAAO,EAAG,gBAAkB,CAAA,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,mBAAqB,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,qBAAuB,CAAA,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,MAAO,EAAG,UAAY,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,MAAO,EAAG,UAAU,CAAE,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,CAAE,EAAG,sBAAuB,EAAG,KAAM,EAAG,WAAa,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,uBAAwB,EAAG,KAAM,EAAG,WAAa,CAAA,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAK,EAAG,OAAS,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,OAAQ,EAAG,IAAK,EAAG,OAAS,CAAA,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,SAAU,EAAG,CAAC,EAAG,CAAE,EAAG,QAAS,EAAG,MAAO,EAAG,QAAQ,CAAE,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,yBAAyB,EAAG,CAAC,EAAG,yBAAyB,EAAG,CAAC,EAAG,wBAAwB,EAAG,CAAC,EAAG,0BAA0B,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,yBAAyB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,CAAE,EAAG,YAAa,EAAG,IAAK,EAAG,YAAY,CAAE,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,UAAU,CAAE,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,GAAI,WAAW,EAAG,CAAC,GAAI,cAAc,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,GAAI,mBAAmB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,aAAa,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,IAAK,YAAY,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,wBAAwB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,GAAI,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,eAAe,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,IAAK,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,GAAI,QAAQ,EAAG,CAAC,GAAI,qBAAqB,EAAG,CAAC,GAAI,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,GAAI,YAAY,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,GAAI,qBAAqB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,uBAAuB,EAAG,CAAC,EAAG,wBAAwB,EAAG,CAAC,EAAG,4BAA4B,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,IAAK,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,cAAc,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,CAAE,EAAG,UAAW,EAAG,IAAK,EAAG,WAAY,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,uBAAuB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,iBAAiB,EAAG,CAAC,EAAG,kBAAkB,EAAG,CAAC,EAAG,oBAAoB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,sBAAsB,EAAG,CAAC,EAAG,mBAAmB,EAAG,CAAC,EAAG,qBAAqB,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,gBAAgB,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,YAAY,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,UAAU,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,SAAS,EAAG,CAAC,EAAG,UAAU,EAAG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AAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,GAAI,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,OAAO,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,EAAG,CAAC,EAAG,QAAQ,C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,EAAI,CAAC,EAAE,EAAE,EAAEC,EAAI,CAAC,EAAE,EAAE,EAAEC,EAAI,CAAC,EAAE,EAAE,EAAEC,EAAI,CAAC,EAAE,EAAE,EAAEC,EAAI,CAAC,EAAE,EAAE,EAAEC,EAAI,CAAC,EAAE,EAAE,EAAEC,EAAI,CAAC,EAAE,EAAE,EAAEC,EAAI,CAAC,EAAE,EAAE,EAAEC,EAAI,CAAC,EAAE,EAAE,EAAEC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAEC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAEC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,EAAI,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAEC,GAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,EAAEC,GAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GA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,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EACnjC,cAAe,SAAmBC,GAAQC,GAAQC,GAAUC,GAAIC,GAAyBC,GAAiBC,GAAiB,CAG3H,IAAIC,GAAKF,GAAG,OAAS,EACrB,OAAQD,GAAO,CACf,IAAK,GACL,KAAK,EAAIr7B,GAAKy7B,GAAO,QAAQ,UAAUM,GAAW,EAAE,CAAC,EAAGN,GAAO,QAAQ,UAAU2C,EAAQ,EAAG3C,GAAO,QAAQ,UAAUs6G,GAAM,UAAU,CAAC,EACtI,MACA,IAAK,GAEiBt6G,GAAO,KAAOA,GAAO,QAAQ,UAAUH,GAAGE,EAAE,EAAE,MAAM,EAAG,EAAE,CAAC,EAC1DC,GAAO,SAAS,SAASM,GAAWN,GAAO,KAAK,KAAK,CAAC,EAE5E,MACA,IAAK,GACL,KAAK,EAAIz7B,GAAKy7B,GAAO,KAAMA,GAAO,QAAQ,UAAUs6G,GAAM,SAAS,EAAGt6G,GAAO,QAAQ,UAAUH,GAAGE,EAAE,EAAE,MAAM,EAAG,EAAE,CAAC,CAAC,EACnH,MACA,IAAK,GACL,KAAK,EAAIC,GAAO,SAASH,GAAGE,GAAG,CAAC,EAAE,OAAO,EAAGF,GAAGE,GAAG,CAAC,EAAE,OAAS,CAAC,CAAC,EAAIO,GAAWT,GAAGE,EAAE,CAAC,EACrF,MACA,IAAK,GAEiBC,GAAO,eAAiB,GACxBz7B,GAAKy7B,GAAO,iBAAmBH,GAAGE,EAAE,EAAGC,GAAO,QAAQ,UAAU2C,EAAQ,EAAG3C,GAAO,QAAQ,UAAUu6G,GAAK,WAAW,CAAC,EAE3I,MACA,IAAK,IACL,KAAK,EAAIh2I,GAAKy7B,GAAO,iBAAkBA,GAAO,QAAQ,UAAU2C,EAAQ,EAAG3C,GAAO,QAAQ,UAAUw6G,GAAO,OAAO,CAAC,EACnH,MACA,IAAK,IACL,KAAK,EAAIC,GAAgB,EACzB,MACA,IAAK,IACL,KAAK,EAAI56G,GAAGE,EAAE,EAAE,QAAQ59C,IAAKoiB,GAAKy7B,GAAO,iBAAkBH,GAAGE,GAAG,CAAC,EAAG59C,EAAC,CAAC,EACvE,MACA,IAAK,IACL,KAAK,EAAI,CAAC09C,GAAGE,GAAG,CAAC,EAAG,GAAGF,GAAGE,EAAE,CAAC,EAC7B,MACA,IAAK,IACL,KAAK,EAAI26G,GAAQ76G,GAAGE,GAAG,CAAC,EAAG,EAAI,EAC/B,MACA,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IACzC,KAAK,EAAIF,GAAGE,EAAE,EACd,MACA,IAAK,IAEiBC,GAAO,qBAAuBA,GAAO,iBACrC,KAAK,EAAIA,GAAO,iBAAmB2D,GAAO,EAEhE,MACA,IAAK,IAEiB3D,GAAO,iBAAmBA,GAAO,qBAEvD,MACA,IAAK,IAAI,IAAK,IACd,KAAK,EAAIH,GAAGE,GAAG,CAAC,EAChB,MACA,IAAK,IAEiBC,GAAO,qBAAuBA,GAAO,iBACrCA,GAAO,iBAAmBA,GAAO,oBAEvD,MACA,IAAK,IAEiBA,GAAO,iBAAmBA,GAAO,qBAEvD,MACA,IAAK,IAEiBA,GAAO,iBAAmBH,GAAGE,EAAE,EAErD,MACA,IAAK,IAEsBC,GAAO,gBAGVA,GAAO,eAAe,KAAKA,GAAO,gBAAgB,EAClDz7B,GAEEy7B,GAAO,oBACPA,GAAO,QAAQ,UAAUu6G,GAAK,MAAM,EACpCv6G,GAAO,iBAAmB2D,GAAO,CAC3D,GARwB3D,GAAO,eAAiB,CAAE,EAW5B,KAAK,EAAIA,GAAO,iBAEtC,MACA,IAAK,IAEqBA,GAAO,eAAe,OAAS,IACjCA,GAAO,iBAAmBA,GAAO,eAAe,IAAK,GAG7E,MACA,IAAK,IACL,KAAK,EAAIH,GAAGE,EAAE,EAAE,QAAQ/hC,IAAQ,CAAEuG,GAAKy7B,GAAO,iBAAkBA,GAAO,QAAQ,UAAUu6G,GAAK,aAAa,EAAGv8I,EAAI,EAAG,EACrH,MACA,IAAK,IACL,KAAK,EAAIuG,GAAKy7B,GAAO,iBAAkBA,GAAO,QAAQ,UAAUu6G,GAAK16G,GAAGE,EAAE,EAAE,CAAC,CAAC,EAAGF,GAAGE,EAAE,EAAE,CAAC,CAAC,EAC1F,MACA,IAAK,IAIL,MACA,IAAK,IAEiB,MAAMv9C,GAAIk4J,GAAQ,CAAC76G,GAAGE,GAAG,CAAC,EAAG,GAAGF,GAAGE,EAAE,CAAC,EAAE,IAAIgsC,IAAQ,CAClD,MAAMtoF,GAAIkgD,GAAO,EACjB,OAAAp/B,GAAK9gB,GAAGu8C,GAAO,QAAQ,UAAUu6G,GAAKxuE,GAAK,CAAC,CAAC,EAAGA,GAAK,CAAC,CAAC,EAChDtoF,EAC/B,CAAuB,CAAC,EAEF,KAAK,EAAI,CAAC,KAAOjB,EAAC,EAExC,MACA,IAAK,IAAI,IAAK,IACd,KAAK,EAAIm4J,GAAc,MAAO,GAAG96G,GAAGE,EAAE,CAAC,EACvC,MACA,IAAK,IAAI,IAAK,IACd,KAAK,EAAI,CAACF,GAAGE,GAAG,CAAC,EAAGF,GAAGE,EAAE,CAAC,EAC1B,MACA,IAAK,IACL,KAAK,EAAIF,GAAGE,EAAE,GAAK66G,GAAa,GAAG/6G,GAAGE,EAAE,CAAC,EACzC,MACA,IAAK,IAEiB,KAAK,EAAI66G,GACP,KACAF,GAAQ,CAAC76G,GAAGE,GAAG,CAAC,EAAG,GAAGF,GAAGE,EAAE,CAAC,EAAE,IAAIgsC,IAAQ,CACxC,MAAMtoF,GAAIkgD,GAAO,EACjB,OAAAp/B,GAAK9gB,GAAGu8C,GAAO,QAAQ,UAAUu6G,GAAKxuE,GAAK,CAAC,CAAC,EAAGA,GAAK,CAAC,CAAC,EAChDtoF,EACjC,CAAyB,CAAC,CAC1B,EAEA,MACA,IAAK,IACL,KAAK,EAAI,CAACo3J,GAAUh7G,GAAGE,EAAE,EAAE,KAAK,EAAI,WAAa,QAASF,GAAGE,EAAE,CAAC,EAChE,MACA,IAAK,IACL,KAAK,EAAI,CAAC,WAAYC,GAAO,QAAQ,UAAUu6G,GAAK16G,GAAGE,EAAE,CAAC,CAAC,EAC3D,MACA,IAAK,IACL,KAAK,EAAI,CAAC,OAAQC,GAAO,QAAQ,UAAUH,GAAGE,EAAE,CAAC,CAAC,EAClD,MACA,IAAK,IACL,KAAK,EAAI,OACT,MACA,IAAK,IACL,KAAK,EAAIF,GAAGE,EAAE,EAAI,GAAK66G,GAAa,WAAY33G,GAAmBpD,GAAGE,EAAE,EAAGoD,EAAW,CAAC,EACvF,MACA,IAAK,IACL,KAAK,EAAIy3G,GAAa,WAAY33G,GAAmBpD,GAAGE,EAAE,EAAGoD,EAAW,CAAC,EACzE,MACA,IAAK,IACL,KAAK,EAAI23G,GAAaj7G,GAAGE,EAAE,EAAE,MAAM,CAAC,CAAC,EACrC,MACA,IAAK,IACL,KAAK,EAAIO,GAAWT,GAAGE,EAAE,CAAC,EAC1B,MACA,IAAK,IAEiBx7B,GAEEy7B,GAAO,iBACPA,GAAO,QAAQ,UAAUu6G,GAAK,UAAU,EACxCv6G,GAAO,oBAAsB2D,GAAO,CAC5D,EAEsBi3G,GAAa,OAAQ/6G,GAAGE,EAAE,CAAC,EAEjD,MACA,IAAK,IAEiB,MAAM19C,GAAIshD,GAAO,EACjBp/B,GACEliB,GACA29C,GAAO,QAAQ,UAAUu6G,GAAK,iBAAiB,EAC/CG,GAAQ,CAAC76G,GAAGE,GAAG,CAAC,EAAG,GAAGF,GAAGE,EAAE,CAAC,CAAC,CACrD,EACsB,KAAK,EAAI19C,GAE/B,MACA,IAAK,IACL,KAAK,EAAIq4J,GAAQ,CAAC76G,GAAGE,GAAG,CAAC,EAAG,GAAGF,GAAGE,EAAE,CAAC,CAAC,EACtC,MACA,IAAK,IAEiBx7B,GAAK,KAAK,EAAIo/B,GAAK,EAAI3D,GAAO,QAAQ,UAAUu6G,GAAK16G,GAAGE,EAAE,CAAC,EAAGF,GAAGE,GAAG,CAAC,CAAC,EAE5F,MACA,IAAK,IAEiBx7B,GAAK,KAAK,EAAIo/B,GAAO,EAAE3D,GAAO,QAAQ,UAAUu6G,GAAK,aAAa,EAAG16G,GAAGE,EAAE,CAAC,EAEjG,MACA,IAAK,IACL,KAAK,EAAI,gBACT,MACA,IAAK,IACL,KAAK,EAAI,iBACT,MACA,IAAK,IACL,KAAK,EAAI,gBACT,MACA,IAAK,IACL,KAAK,EAAIF,GAAGE,GAAG,CAAC,EAChB,MACA,IAAK,IACL,KAAK,EAAI26G,GAAQ76G,GAAGE,GAAG,CAAC,CAAC,EACzB,MACA,IAAK,IACL,KAAK,EAAIC,GAAO,QAAQ,UAAUM,GAAWT,GAAGE,EAAE,CAAC,CAAC,EACpD,MACA,IAAK,IACL,KAAK,EAAIC,GAAO,QAAQ,UAAU86G,GAAaj7G,GAAGE,EAAE,CAAC,CAAC,EACtD,MACA,IAAK,IACL,KAAK,EAAI06G,GAAez6G,GAAO,QAAQ,UAAU2C,EAAQ,CAAC,EAC1D,MACA,IAAK,IACL,KAAK,EAAIM,GAAmBpD,GAAGE,EAAE,CAAC,EAClC,MACA,IAAK,IACL,KAAK,EAAImD,GAAkBrD,GAAGE,GAAG,CAAC,EAAGF,GAAGE,EAAE,EAAE,OAAO,CAAC,EAAE,YAAW,CAAE,EACnE,MACA,IAAK,IACL,KAAK,EAAIkD,GAAmBpD,GAAGE,GAAG,CAAC,EAAGF,GAAGE,EAAE,CAAC,EAC5C,MACA,IAAK,IACL,KAAK,EAAIkD,GAAmBpD,GAAGE,EAAE,EAAGoD,EAAW,EAC/C,MACA,IAAK,IACL,KAAK,EAAIF,GAAmBpD,GAAGE,EAAE,EAAGqD,EAAW,EAC/C,MACA,IAAK,IACL,KAAK,EAAIH,GAAmBpD,GAAGE,EAAE,EAAE,YAAa,EAAEsD,EAAU,EAC5D,MACA,IAAK,IACL,KAAK,EAAIJ,GAAmBpD,GAAGE,EAAE,EAAE,YAAa,EAAEuD,EAAW,EAC7D,MACA,IAAK,IACL,KAAK,EAAIC,GAAe1D,GAAGE,EAAE,EAAG,CAAC,EACjC,MACA,IAAK,IACL,KAAK,EAAIwD,GAAe1D,GAAGE,EAAE,EAAG,CAAC,EACjC,MACA,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KACzE,KAAK,EAAI,CAAE,EACX,MACA,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KACrIF,GAAGE,GAAG,CAAC,EAAE,KAAKF,GAAGE,EAAE,CAAC,EACpB,MACA,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KACvD,KAAK,EAAI,CAACF,GAAGE,EAAE,CAAC,EAChB,KACA,CACC,EACD,MAAO,CAACv9C,EAAE0yC,EAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE1yC,EAAE2yC,EAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE3yC,EAAE4yC,EAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE5yC,EAAE0yC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE1yC,EAAE0yC,EAAI,CAAC,EAAE,CAAC,CAAC,EAAE1yC,EAAE0yC,EAAI,CAAC,EAAE,CAAC,CAAC,EAAE1yC,EAAE0yC,EAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE1yC,EAAE2yC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAGE,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAIC,EAAI,IAAIC,CAAG,EAAEhzC,EAAE2yC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE3yC,EAAE2yC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAGE,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAIC,EAAI,IAAIC,CAAG,EAAE,CAAC,GAAGH,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAIC,EAAI,IAAIC,CAAG,EAAEhzC,EAAE0yC,EAAI,CAAC,EAAE,CAAC,CAAC,EAAE1yC,EAAE0yC,EAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE1yC,EAAE4yC,EAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAGC,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAIC,EAAI,IAAIC,CAAG,EAAEhzC,EAAEizC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEjzC,EAAEkzC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAElzC,EAAEkzC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAElzC,EAAEkzC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAElzC,EAAEkzC,EAAI,CAAC,EAAE,GAAG,CAAC,EAAElzC,EAAEkzC,EAAI,CAAC,EAAE,GAAG,CAAC,EAAElzC,EAAEmzC,EAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAEnzC,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAGozC,EAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEpzC,EAAE0yC,EAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE1yC,EAAEqzC,EAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAGD,CAAG,CAAC,EAAE,CAAC,GAAGP,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAGQ,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAIT,EAAI,IAAI,GAAG,IAAIU,EAAI,IAAIC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAIV,EAAI,IAAIW,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,CAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAGZ,EAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEpzC,EAAEmzC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAGN,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAIC,EAAI,IAAIC,CAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAGiB,CAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAGpB,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAIC,EAAI,IAAIC,CAAG,EAAEhzC,EAAE4yC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE5yC,EAAEqzC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAErzC,EAAEqzC,EAAI,CAAC,EAAE,GAAG,CAAC,EAAErzC,EAAEk0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEl0C,EAAEm0C,EAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAEn0C,EAAEo0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEp0C,EAAEo0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEp0C,EAAEo0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEp0C,EAAEq0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEr0C,EAAEq0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAGxB,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAIC,EAAI,IAAIC,CAAG,EAAEhzC,EAAEs0C,EAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAEt0C,EAAEq0C,EAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAEr0C,EAAEq0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEr0C,EAAEq0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEr0C,EAAEq0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEr0C,EAAEq0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEr0C,EAAEizC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEjzC,EAAEu0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEv0C,EAAEu0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEv0C,EAAEq0C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAEr0C,EAAEq0C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAEr0C,EAAEu0C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAEv0C,EAAEu0C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAEv0C,EAAEu0C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAEv0C,EAAEu0C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAGN,CAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEj0C,EAAEmzC,EAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,GAAGN,EAAI,GAAGC,EAAI,IAAIC,EAAI,IAAIC,CAAG,CAAC,EAAEhzC,EAAEw0C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAEx0C,EAAE2yC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE3yC,EAAEy0C,GAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAEz0C,EAAEy0C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEz0C,EAAEqzC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAErzC,EAAEk0C,EAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAGrB,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAGQ,EAAI,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAIT,EAAI,IAAI,GAAG,IAAIU,EAAI,IAAIC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAIV,EAAI,IAAIW,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,CAAG,EAAEh0C,EAAEq0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAGxB,EAAI,GAAGC,EAAI,GAAG,GAAG,IAAI,GAAG,IAAIC,EAAI,IAAIC,CAAG,EAAEhzC,EAAE2yC,EAAI,CAAC,EAAE,CAAC,CAAC,EAAE3yC,EAAEw0C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG3B,EAAI,GAAGC,EAAI,GAAG,IAAI,GAAG4B,GAAI,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAGC,GAAI,GAAGC,GAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAIC,GAAI,IAAI,GAAG,IAAI9B,EAAI,IAAI,GAAG,IAAI+B,GAAI,IAAI9B,CAAG,EAAEhzC,EAAEm0C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAGtB,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAGQ,EAAI,GAAG,GAAG,GAAGC,EAAI,GAAGC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAIT,EAAI,IAAI,GAAG,IAAIU,EAAI,IAAIC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAIV,EAAI,IAAIW,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,CAAG,EAAEh0C,EAAEo0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEp0C,EAAEo0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEp0C,EAAEo0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEp0C,EAAEs0C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAEt0C,EAAEq0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEr0C,EAAE+0C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAE/0C,EAAEy0C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEz0C,EAAE+0C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE/0C,EAAEg1C,GAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAGL,GAAI,GAAGC,GAAI,IAAIE,EAAG,CAAC,EAAE90C,EAAEg1C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEh1C,EAAEi1C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEj1C,EAAEk1C,GAAI,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAEl1C,EAAEi1C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEj1C,EAAEk1C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEl1C,EAAEi1C,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAGE,EAAG,CAAC,EAAEn1C,EAAEo1C,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,IAAI,GAAGC,EAAG,CAAC,EAAEr1C,EAAEs1C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAGX,GAAI,IAAIG,EAAG,EAAE90C,EAAEu1C,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAIC,EAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEx1C,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEA,EAAEy1C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG5C,EAAI,GAAGC,EAAI,GAAG,IAAI,GAAG4B,GAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI3B,EAAI,IAAIC,CAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEhzC,EAAEy1C,EAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAEz1C,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEA,EAAE01C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG7C,EAAI,GAAGC,EAAI,GAAG,IAAI,GAAG4B,GAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAIG,GAAI,IAAI,GAAG,IAAI9B,EAAI,IAAIC,CAAG,EAAEhzC,EAAEm0C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAGtB,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAIC,EAAI,IAAIC,CAAG,EAAEhzC,EAAEizC,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEjzC,EAAEi1C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEj1C,EAAEg1C,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAGnC,EAAI,GAAGC,EAAI,GAAG,CAAC,EAAE,GAAG,EAAE,GAAGmB,EAAI,GAAG0B,GAAI,GAAGC,EAAI,GAAGC,EAAI,GAAGjB,GAAI,IAAI7B,EAAI,IAAI+C,GAAI,IAAIC,GAAI,IAAI/C,CAAG,CAAC,EAAEhzC,EAAEi1C,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAGE,EAAG,CAAC,EAAEn1C,EAAEs1C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAGX,GAAI,GAAGC,GAAI,IAAIE,EAAG,EAAE90C,EAAEo1C,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAGC,EAAG,CAAC,EAAEr1C,EAAEu1C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG1C,EAAI,GAAGC,EAAI,GAAG,IAAI,GAAG4B,GAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAIG,GAAI,IAAI,GAAG,IAAI9B,EAAI,IAAIC,CAAG,EAAEhzC,EAAEs1C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEt1C,EAAEu1C,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,IAAIC,EAAG,CAAC,EAAEx1C,EAAEy1C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG5C,EAAI,GAAGC,EAAI,GAAG,IAAI,GAAG4B,GAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAIG,GAAI,IAAI,GAAG,IAAI9B,EAAI,IAAIC,CAAG,EAAE,CAAC,GAAGH,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,IAAI,GAAGkD,GAAI,GAAG,IAAI,GAAGxC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAIT,EAAI,IAAI,GAAG,IAAIU,EAAI,IAAIC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAIV,EAAI,IAAIW,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,CAAG,EAAEh0C,EAAEy1C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEz1C,EAAEy1C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEz1C,EAAEy1C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEz1C,EAAEy1C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEz1C,EAAEy1C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEz1C,EAAEy0C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,EAAEz0C,EAAEk1C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEl1C,EAAEk1C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEl1C,EAAEk1C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEl1C,EAAEk1C,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAGe,EAAG,CAAC,EAAEj2C,EAAEk2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAGrD,EAAI,GAAGC,EAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAGmB,EAAI,GAAG,IAAI,GAAG0B,GAAI,GAAG,IAAI,GAAGC,EAAI,GAAG,IAAI,GAAGC,EAAI,IAAI,GAAG,IAAI9C,EAAI,IAAI+C,GAAI,IAAIC,GAAI,IAAI/C,CAAG,EAAEhzC,EAAEk2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEl2C,EAAEk2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEl2C,EAAEk2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEl2C,EAAEk2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEl2C,EAAEk2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEl2C,EAAEk2C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEl2C,EAAEk2C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEl2C,EAAEs1C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEt1C,EAAEs1C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEt1C,EAAEu1C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEv1C,EAAEu1C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEv1C,EAAEy1C,EAAI,CAAC,EAAE,GAAG,CAAC,EAAEz1C,EAAEy1C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAEz1C,EAAEs1C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEt1C,EAAEm2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEn2C,EAAEo2C,GAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,EAAEp2C,EAAE01C,EAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE11C,EAAEk1C,GAAI,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAGe,EAAG,CAAC,EAAEj2C,EAAEk2C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAGrD,EAAI,GAAGC,EAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAGmB,EAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG0B,GAAI,GAAG,IAAI,GAAGC,EAAI,GAAG,IAAI,GAAGC,EAAI,GAAGjB,GAAI,IAAI,GAAG,IAAI7B,EAAI,IAAI+C,GAAI,IAAIC,GAAI,IAAI/C,CAAG,EAAEhzC,EAAEk2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAGrD,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,IAAI,GAAGkD,GAAI,GAAG,IAAI,GAAGxC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAIT,EAAI,IAAI,GAAG,IAAIU,EAAI,IAAIC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAIV,EAAI,IAAIW,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,CAAG,EAAEh0C,EAAEk2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAGrD,EAAI,GAAGC,EAAI,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,GAAGU,EAAI,IAAI,GAAG,IAAI,GAAG,IAAIT,EAAI,IAAI,GAAG,IAAIU,EAAI,IAAIC,EAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAIV,EAAI,IAAIW,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,EAAI,IAAIC,CAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAEh0C,EAAEk2C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAEl2C,EAAEk2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEl2C,EAAEk2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEl2C,EAAEm2C,GAAI,CAAC,EAAE,EAAE,CAAC,EAAEn2C,EAAEo2C,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAEp2C,EAAEk1C,GAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAChpL,eAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EAC1I,WAAY,SAAqB7P,GAAKlU,GAAM,CACxC,GAAIA,GAAK,YACL,KAAK,MAAMkU,EAAG,MACX,CACH,IAAI/jB,GAAQ,IAAI,MAAM+jB,EAAG,EACzB,MAAA/jB,GAAM,KAAO6P,GACP7P,EACd,CACC,EACD,MAAO,SAAe+/B,GAAO,CACzB,IAAIC,GAAO,KAAMjtB,GAAQ,CAAC,CAAC,EAAgBktB,GAAS,CAAC,IAAI,EAAGC,GAAS,CAAE,EAAEC,GAAQ,KAAK,MAAOzE,GAAS,GAAIE,GAAW,EAAGD,GAAS,EAAmByE,GAAS,EAAGC,GAAM,EAClK5kC,GAAOykC,GAAO,MAAM,KAAK,UAAW,CAAC,EACrCI,GAAQ,OAAO,OAAO,KAAK,KAAK,EAChCC,GAAc,CAAE,GAAI,EAAI,EAC5B,QAAS//C,MAAK,KAAK,GACX,OAAO,UAAU,eAAe,KAAK,KAAK,GAAIA,EAAC,IAC/C+/C,GAAY,GAAG//C,EAAC,EAAI,KAAK,GAAGA,EAAC,GAGrC8/C,GAAM,SAASP,GAAOQ,GAAY,EAAE,EACpCA,GAAY,GAAG,MAAQD,GACvBC,GAAY,GAAG,OAAS,KACpB,OAAOD,GAAM,OAAU,MACvBA,GAAM,OAAS,CAAE,GAErB,IAAIE,GAAQF,GAAM,OAClBJ,GAAO,KAAKM,EAAK,EACjB,IAAIC,GAASH,GAAM,SAAWA,GAAM,QAAQ,OACxC,OAAOC,GAAY,GAAG,YAAe,WACrC,KAAK,WAAaA,GAAY,GAAG,WAEjC,KAAK,WAAa,OAAO,eAAe,IAAI,EAAE,WAiBlD,QATQG,GAAM,UAAY,CAClB,IAAIC,GACJ,OAAAA,GAAQL,GAAM,IAAG,GAAMD,GACnB,OAAOM,IAAU,WACjBA,GAAQX,GAAK,SAASW,EAAK,GAAKA,IAE7BA,EACV,EACDC,GAAwBC,GAAOjb,GAAWpnC,GAAGsiD,GAAQ,CAAA,EAAI9hD,GAAG40B,GAAKmtB,GAAUC,KAClE,CAUG,GATZH,GAAQ9tB,GAAMA,GAAM,OAAS,CAAC,EAC1B,KAAK,eAAe8tB,EAAK,EACzBjb,GAAS,KAAK,eAAeib,EAAK,IAE9BD,KAAW,MAAQ,OAAOA,GAAU,OACpCA,GAASF,GAAK,GAElB9a,GAASua,GAAMU,EAAK,GAAKV,GAAMU,EAAK,EAAED,EAAM,GAEhC,OAAOhb,GAAW,KAAe,CAACA,GAAO,QAAU,CAACA,GAAO,CAAC,EAAG,CACvE,IAAIqb,GAAS,GACbD,GAAW,CAAE,EACb,IAAKhiD,MAAKmhD,GAAMU,EAAK,EACb,KAAK,WAAW7hD,EAAC,GAAKA,GAAIohD,IAC1BY,GAAS,KAAK,IAAO,KAAK,WAAWhiD,EAAC,EAAI,GAAI,EAGlDshD,GAAM,aACNW,GAAS,wBAA0BrF,GAAW,GAAK;AAAA,EAAQ0E,GAAM,aAAY,EAAK;AAAA,YAAiBU,GAAS,KAAK,IAAI,EAAI,WAAc,KAAK,WAAWJ,EAAM,GAAKA,IAAU,IAE5KK,GAAS,wBAA0BrF,GAAW,GAAK,iBAAmBgF,IAAUP,GAAM,eAAiB,KAAQ,KAAK,WAAWO,EAAM,GAAKA,IAAU,KAExJ,KAAK,WAAWK,GAAQ,CACpB,KAAMX,GAAM,MACZ,MAAO,KAAK,WAAWM,EAAM,GAAKA,GAClC,KAAMN,GAAM,SACZ,IAAKE,GACL,SAAUQ,EAC9B,CAAiB,CACjB,CACQ,GAAIpb,GAAO,CAAC,YAAa,OAASA,GAAO,OAAS,EAC9C,MAAM,IAAI,MAAM,oDAAsDib,GAAQ,YAAcD,EAAM,EAEtG,OAAQhb,GAAO,CAAC,EAAC,CACjB,IAAK,GACD7S,GAAM,KAAK6tB,EAAM,EACjBX,GAAO,KAAKK,GAAM,MAAM,EACxBJ,GAAO,KAAKI,GAAM,MAAM,EACxBvtB,GAAM,KAAK6S,GAAO,CAAC,CAAC,EACpBgb,GAAS,KAELjF,GAAS2E,GAAM,OACf5E,GAAS4E,GAAM,OACf1E,GAAW0E,GAAM,SACjBE,GAAQF,GAAM,OAQlB,MACJ,IAAK,GAwBD,GAvBA1sB,GAAM,KAAK,aAAagS,GAAO,CAAC,CAAC,EAAE,CAAC,EACpCkb,GAAM,EAAIb,GAAOA,GAAO,OAASrsB,EAAG,EACpCktB,GAAM,GAAK,CACP,WAAYZ,GAAOA,GAAO,QAAUtsB,IAAO,EAAE,EAAE,WAC/C,UAAWssB,GAAOA,GAAO,OAAS,CAAC,EAAE,UACrC,aAAcA,GAAOA,GAAO,QAAUtsB,IAAO,EAAE,EAAE,aACjD,YAAassB,GAAOA,GAAO,OAAS,CAAC,EAAE,WAC1C,EACGO,KACAK,GAAM,GAAG,MAAQ,CACbZ,GAAOA,GAAO,QAAUtsB,IAAO,EAAE,EAAE,MAAM,CAAC,EAC1CssB,GAAOA,GAAO,OAAS,CAAC,EAAE,MAAM,CAAC,CACpC,GAEL1hD,GAAI,KAAK,cAAc,MAAMsiD,GAAO,CAChCpF,GACAC,GACAC,GACA2E,GAAY,GACZ3a,GAAO,CAAC,EACRqa,GACAC,EAChB,EAAc,OAAOzkC,EAAI,CAAC,EACV,OAAOjd,GAAM,IACb,OAAOA,GAEPo1B,KACAb,GAAQA,GAAM,MAAM,EAAG,GAAKa,GAAM,CAAC,EACnCqsB,GAASA,GAAO,MAAM,EAAG,GAAKrsB,EAAG,EACjCssB,GAASA,GAAO,MAAM,EAAG,GAAKtsB,EAAG,GAErCb,GAAM,KAAK,KAAK,aAAa6S,GAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1Cqa,GAAO,KAAKa,GAAM,CAAC,EACnBZ,GAAO,KAAKY,GAAM,EAAE,EACpBC,GAAWZ,GAAMptB,GAAMA,GAAM,OAAS,CAAC,CAAC,EAAEA,GAAMA,GAAM,OAAS,CAAC,CAAC,EACjEA,GAAM,KAAKguB,EAAQ,EACnB,MACJ,IAAK,GACD,MAAO,EACnB,CACA,CACI,MAAO,EACX,CAAC,EASC,MAAMG,GAAM,8CACRrC,GAAYqC,GAAM,OAClBC,GAAYD,GAAM,QAClBE,GAAYF,GAAM,OAClBlC,GAAYkC,GAAM,MAClBG,GAAM,oCACNhC,GAAegC,GAAM,UACrB/B,GAAe+B,GAAM,UACrB9B,GAAe8B,GAAM,SACrB7B,GAAe6B,GAAM,UACrBo1G,GAAK,8BACLD,GAAM,iCACNE,GAAO,wCAGHK,GAAY,CAChB,CAAC13G,EAAW,EAAG,GACf,CAACC,EAAW,EAAG,GACf,CAAC+B,GAAM,OAAO,EAAG,GACjB,CAAC9B,EAAU,EAAG,GACd,CAAC8B,GAAM,QAAQ,EAAG,GAClB,CAAC7B,EAAW,EAAG,GACf,CAAC6B,GAAM,UAAU,EAAG,GACpB,CAACA,GAAM,oBAAoB,EAAG,GAC9B,CAACA,GAAM,iBAAiB,EAAG,GAC3B,CAACA,GAAM,MAAM,EAAG,GAChB,CAACA,GAAM,KAAK,EAAG,GACf,CAACA,GAAM,OAAO,EAAG,GACjB,CAACA,GAAM,MAAM,EAAG,GAChB,CAACA,GAAM,oBAAoB,EAAG,GAC9B,CAACA,GAAM,cAAc,EAAG,GACxB,CAACA,GAAM,eAAe,EAAG,GACzB,CAACA,GAAM,cAAc,EAAG,GACxB,CAACA,GAAM,iBAAiB,EAAG,GAC3B,CAACH,GAAM,YAAY,EAAG,EAC5B,EAEI,SAAS01G,GAAQK,GAAOC,GAAU,GAAO,CACvC,IAAIz4J,GAAI,EAAGI,GAAIo4J,GAAM,OAGrB,GAAIC,IAAWr4J,KAAM,EACnB,OAAOq9C,GAAO,QAAQ,UAAU8C,EAAO,EAGzC,MAAMx4B,GAAO,KAAOq5B,GAAO,EAE3B,OAAIhhD,KAAM,GAER4hB,GAAK,KAAMy7B,GAAO,QAAQ,UAAUkF,EAAQ,EAAIlF,GAAO,QAAQ,UAAU8C,EAAO,CAAC,EAGnFi4G,GAAM,QAAQhvE,IAAQ,CACpB,GAAIA,KAAS,OACX,MAAM,IAAI,MAAM,GAAG,EAErBxnE,GAAK,KAAMy7B,GAAO,QAAQ,UAAUiF,EAAS,EAAG8mC,EAAI,EACpDxnE,GAAK,KAAMy7B,GAAO,QAAQ,UAAUkF,EAAQ,EAAI,KAAO,EAAE3iD,GAAII,GAAIghD,GAAO,EAAG3D,GAAO,QAAQ,UAAU8C,EAAO,CAAC,CAC7G,CAAA,EAEMx4B,EACb,CAIE,SAASg2B,GAAWoF,GAAK,CAEvB,OAAO1F,GAAO,SAAS,YAAY0F,GAAI,CAAC,IAAM,IAAMA,GAAI,UAAU,EAAGA,GAAI,OAAS,CAAC,EAAIA,EAAG,CAC9F,CAEE,SAASo1G,GAAap1G,GAAK,CACzB,MAAMlC,GAAUkC,GAAI,QAAQ,GAAG,EACzBxnC,GAASwnC,GAAI,OAAO,EAAGlC,EAAO,EAC9BC,GAAYzD,GAAO,SAAS9hC,EAAM,EAExC,GAAI,CAACulC,GAAW,MAAM,IAAI,MAAM,mBAAqBvlC,EAAM,EAE3D,OAAOoiC,GAAWmD,GAAYiC,GAAI,OAAOlC,GAAU,CAAC,CAAC,CACzD,CAOE,SAASP,GAAmBzlC,GAAOJ,GAAM,CACvC,OAAIA,IAAQA,GAAK,WAAa,cAC5BA,GAAO4iC,GAAO,QAAQ,UAAU5iC,EAAI,GAE/B4iC,GAAO,QAAQ,QAAQxiC,GAAOJ,EAAI,CAC7C,CAEE,SAAS8lC,GAAkB1lC,GAAOgP,GAAM,CACtC,OAAOwzB,GAAO,QAAQ,QAAQxiC,GAAOgP,EAAI,CAC7C,CAEE,SAASm3B,GAAMzmC,GAAM,CAKnB,OAAO8iC,GAAO,QAAQ,UAAU,KAAOuG,IAAS,EAElD,IAAIA,GAAU,EACdvG,GAAO,aAAe,UAAY,CAAEuG,GAAU,CAAE,EAOhD,SAAShD,GAAe1vB,GAAQ+yB,GAAY,CAC1C,OAAO5G,GAAO,SAAS,OAAO,UAAUnsB,GAAO,UAAU+yB,GAAY/yB,GAAO,OAAS+yB,EAAU,CAAC,CACpG,CAEE,SAASriC,GAAK7hB,GAAGI,GAAGN,GAAG,CACrB,GAAI,CAACE,GAAE,UAAY,CAACI,GAAE,UAAYA,GAAE,MAAM,SAAS,GAAG,GAAK,CAACN,GAAE,SAC5D,MAAM,IAAI,MAAM,OAAOE,GAAE,KAAK,IAAII,GAAE,KAAK,IAAIN,GAAE,KAAK,EAAE,EAExDw9C,GAAO,OAAOA,GAAO,QAAQ,KAAKt9C,GAAGI,GAAGN,EAAC,CAAC,CAC9C,CAEE,SAASo4J,GAAa93J,GAAGN,GAAG,CAC1B+hB,GAAKy7B,GAAO,oBAAqBA,GAAO,QAAQ,UAAUu6G,GAAKz3J,EAAC,EAAGN,EAAC,CACxE,CAEE,SAASm4J,GAAcz9I,GAAMpa,GAAGN,GAAG,CACjC,MAAMe,GAAIogD,GAAO,EACjB,OAAAp/B,GAAKhhB,GAAGy8C,GAAO,QAAQ,UAAUu6G,GAAKz3J,EAAC,EAAGN,EAAC,EACpC,CAAC0a,GAAM3Z,EAAC,CACnB,CAEE,SAASk3J,GAAe52G,GAAO,CAC7B,GAAI,CAAC7D,GAAO,SACV,MAAM,IAAI,MAAM,sEAAsE,EAExF,OAAO6D,EACX,CAEA,IAAIO,GAAS,UAAU,CACvB,IAAIA,GAAS,CAEb,IAAI,EAEJ,WAAW,SAAoBvc,GAAKlU,GAAM,CAClC,GAAI,KAAK,GAAG,OACR,KAAK,GAAG,OAAO,WAAWkU,GAAKlU,EAAI,MAEnC,OAAM,IAAI,MAAMkU,EAAG,CAE1B,EAGL,SAAS,SAAUgc,GAAOlE,GAAI,CACtB,YAAK,GAAKA,IAAM,KAAK,IAAM,CAAE,EAC7B,KAAK,OAASkE,GACd,KAAK,MAAQ,KAAK,WAAa,KAAK,KAAO,GAC3C,KAAK,SAAW,KAAK,OAAS,EAC9B,KAAK,OAAS,KAAK,QAAU,KAAK,MAAQ,GAC1C,KAAK,eAAiB,CAAC,SAAS,EAChC,KAAK,OAAS,CACV,WAAY,EACZ,aAAc,EACd,UAAW,EACX,YAAa,CAChB,EACG,KAAK,QAAQ,SACb,KAAK,OAAO,MAAQ,CAAC,EAAE,CAAC,GAE5B,KAAK,OAAS,EACP,IACV,EAGL,MAAM,UAAY,CACV,IAAIwE,GAAK,KAAK,OAAO,CAAC,EACtB,KAAK,QAAUA,GACf,KAAK,SACL,KAAK,SACL,KAAK,OAASA,GACd,KAAK,SAAWA,GAChB,IAAI34B,GAAQ24B,GAAG,MAAM,iBAAiB,EACtC,OAAI34B,IACA,KAAK,WACL,KAAK,OAAO,aAEZ,KAAK,OAAO,cAEZ,KAAK,QAAQ,QACb,KAAK,OAAO,MAAM,CAAC,IAGvB,KAAK,OAAS,KAAK,OAAO,MAAM,CAAC,EAC1B24B,EACV,EAGL,MAAM,SAAUA,GAAI,CACZ,IAAI3wB,GAAM2wB,GAAG,OACT34B,GAAQ24B,GAAG,MAAM,eAAe,EAEpC,KAAK,OAASA,GAAK,KAAK,OACxB,KAAK,OAAS,KAAK,OAAO,OAAO,EAAG,KAAK,OAAO,OAAS3wB,EAAG,EAE5D,KAAK,QAAUA,GACf,IAAI4wB,GAAW,KAAK,MAAM,MAAM,eAAe,EAC/C,KAAK,MAAQ,KAAK,MAAM,OAAO,EAAG,KAAK,MAAM,OAAS,CAAC,EACvD,KAAK,QAAU,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,CAAC,EAEzD54B,GAAM,OAAS,IACf,KAAK,UAAYA,GAAM,OAAS,GAEpC,IAAIptB,GAAI,KAAK,OAAO,MAEpB,YAAK,OAAS,CACV,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,aAC1B,YAAaotB,IACRA,GAAM,SAAW44B,GAAS,OAAS,KAAK,OAAO,aAAe,GAC5DA,GAASA,GAAS,OAAS54B,GAAM,MAAM,EAAE,OAASA,GAAM,CAAC,EAAE,OAChE,KAAK,OAAO,aAAegI,EAChC,EAEG,KAAK,QAAQ,SACb,KAAK,OAAO,MAAQ,CAACp1B,GAAE,CAAC,EAAGA,GAAE,CAAC,EAAI,KAAK,OAASo1B,EAAG,GAEvD,KAAK,OAAS,KAAK,OAAO,OACnB,IACV,EAGL,KAAK,UAAY,CACT,YAAK,MAAQ,GACN,IACV,EAGL,OAAO,UAAY,CACX,GAAI,KAAK,QAAQ,gBACb,KAAK,WAAa,OAElB,QAAO,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAAqI,KAAK,eAAgB,CAC9N,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QAC3B,CAAa,EAGL,OAAO,IACV,EAGL,KAAK,SAAUr1B,GAAG,CACV,KAAK,MAAM,KAAK,MAAM,MAAMA,EAAC,CAAC,CACjC,EAGL,UAAU,UAAY,CACd,IAAIkmD,GAAO,KAAK,QAAQ,OAAO,EAAG,KAAK,QAAQ,OAAS,KAAK,MAAM,MAAM,EACzE,OAAQA,GAAK,OAAS,GAAK,MAAM,IAAMA,GAAK,OAAO,GAAG,EAAE,QAAQ,MAAO,EAAE,CAC5E,EAGL,cAAc,UAAY,CAClB,IAAI72B,GAAO,KAAK,MAChB,OAAIA,GAAK,OAAS,KACdA,IAAQ,KAAK,OAAO,OAAO,EAAG,GAAGA,GAAK,MAAM,IAExCA,GAAK,OAAO,EAAE,EAAE,GAAKA,GAAK,OAAS,GAAK,MAAQ,KAAK,QAAQ,MAAO,EAAE,CACjF,EAGL,aAAa,UAAY,CACjB,IAAI82B,GAAM,KAAK,UAAW,EACtB3lD,GAAI,IAAI,MAAM2lD,GAAI,OAAS,CAAC,EAAE,KAAK,GAAG,EAC1C,OAAOA,GAAM,KAAK,cAAe,EAAG;AAAA,EAAO3lD,GAAI,GAClD,EAGL,WAAW,SAASgd,GAAO4oC,GAAc,CACjC,IAAIhE,GACA/0B,GACAg5B,GAwDJ,GAtDI,KAAK,QAAQ,kBAEbA,GAAS,CACL,SAAU,KAAK,SACf,OAAQ,CACJ,WAAY,KAAK,OAAO,WACxB,UAAW,KAAK,UAChB,aAAc,KAAK,OAAO,aAC1B,YAAa,KAAK,OAAO,WAC5B,EACD,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,QAAS,KAAK,QACd,QAAS,KAAK,QACd,OAAQ,KAAK,OACb,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,GAAI,KAAK,GACT,eAAgB,KAAK,eAAe,MAAM,CAAC,EAC3C,KAAM,KAAK,IACd,EACG,KAAK,QAAQ,SACbA,GAAO,OAAO,MAAQ,KAAK,OAAO,MAAM,MAAM,CAAC,IAIvDh5B,GAAQ7P,GAAM,CAAC,EAAE,MAAM,iBAAiB,EACpC6P,KACA,KAAK,UAAYA,GAAM,QAE3B,KAAK,OAAS,CACV,WAAY,KAAK,OAAO,UACxB,UAAW,KAAK,SAAW,EAC3B,aAAc,KAAK,OAAO,YAC1B,YAAaA,GACAA,GAAMA,GAAM,OAAS,CAAC,EAAE,OAASA,GAAMA,GAAM,OAAS,CAAC,EAAE,MAAM,QAAQ,EAAE,CAAC,EAAE,OAC5E,KAAK,OAAO,YAAc7P,GAAM,CAAC,EAAE,MACnD,EACD,KAAK,QAAUA,GAAM,CAAC,EACtB,KAAK,OAASA,GAAM,CAAC,EACrB,KAAK,QAAUA,GACf,KAAK,OAAS,KAAK,OAAO,OACtB,KAAK,QAAQ,SACb,KAAK,OAAO,MAAQ,CAAC,KAAK,OAAQ,KAAK,QAAU,KAAK,MAAM,GAEhE,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,OAAS,KAAK,OAAO,MAAMA,GAAM,CAAC,EAAE,MAAM,EAC/C,KAAK,SAAWA,GAAM,CAAC,EACvB4kC,GAAQ,KAAK,cAAc,KAAK,KAAM,KAAK,GAAI,KAAMgE,GAAc,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAClH,KAAK,MAAQ,KAAK,SAClB,KAAK,KAAO,IAEZhE,GACA,OAAOA,GACJ,GAAI,KAAK,WAAY,CAExB,QAASngD,MAAKokD,GACV,KAAKpkD,EAAC,EAAIokD,GAAOpkD,EAAC,EAEtB,MAAO,EACnB,CACQ,MAAO,EACV,EAGL,KAAK,UAAY,CACT,GAAI,KAAK,KACL,OAAO,KAAK,IAEX,KAAK,SACN,KAAK,KAAO,IAGhB,IAAImgD,GACA5kC,GACA8oC,GACAtjC,GACC,KAAK,QACN,KAAK,OAAS,GACd,KAAK,MAAQ,IAGjB,QADIujC,GAAQ,KAAK,cAAe,EACvBrmD,GAAI,EAAGA,GAAIqmD,GAAM,OAAQrmD,KAE9B,GADAomD,GAAY,KAAK,OAAO,MAAM,KAAK,MAAMC,GAAMrmD,EAAC,CAAC,CAAC,EAC9ComD,KAAc,CAAC9oC,IAAS8oC,GAAU,CAAC,EAAE,OAAS9oC,GAAM,CAAC,EAAE,SAGvD,GAFAA,GAAQ8oC,GACRtjC,GAAQ9iB,GACJ,KAAK,QAAQ,gBAAiB,CAE9B,GADAkiD,GAAQ,KAAK,WAAWkE,GAAWC,GAAMrmD,EAAC,CAAC,EACvCkiD,KAAU,GACV,OAAOA,GACJ,GAAI,KAAK,WAAY,CACxB5kC,GAAQ,GACR,QACxB,KAEwB,OAAO,EAEd,SAAU,CAAC,KAAK,QAAQ,KACrB,MAIZ,OAAIA,IACA4kC,GAAQ,KAAK,WAAW5kC,GAAO+oC,GAAMvjC,EAAK,CAAC,EACvCo/B,KAAU,GACHA,GAGJ,IAEP,KAAK,SAAW,GACT,KAAK,IAEL,KAAK,WAAW,0BAA4B,KAAK,SAAW,GAAK;AAAA,EAA2B,KAAK,eAAgB,CACpH,KAAM,GACN,MAAO,KACP,KAAM,KAAK,QAC3B,CAAa,CAER,EAGL,IAAI,UAAgB,CACZ,IAAIniD,GAAI,KAAK,KAAM,EACnB,OAAIA,IAGO,KAAK,IAAK,CAExB,EAGL,MAAM,SAAgBu1B,GAAW,CACzB,KAAK,eAAe,KAAKA,EAAS,CACrC,EAGL,SAAS,UAAqB,CACtB,IAAIx1B,GAAI,KAAK,eAAe,OAAS,EACrC,OAAIA,GAAI,EACG,KAAK,eAAe,IAAK,EAEzB,KAAK,eAAe,CAAC,CAEnC,EAGL,cAAc,UAA0B,CAChC,OAAI,KAAK,eAAe,QAAU,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,EACzE,KAAK,WAAW,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,CAAC,EAAE,MAErE,KAAK,WAAW,QAAW,KAEzC,EAGL,SAAS,SAAmBA,GAAG,CAEvB,OADAA,GAAI,KAAK,eAAe,OAAS,EAAI,KAAK,IAAIA,IAAK,CAAC,EAChDA,IAAK,EACE,KAAK,eAAeA,EAAC,EAErB,SAEd,EAGL,UAAU,SAAoBw1B,GAAW,CACjC,KAAK,MAAMA,EAAS,CACvB,EAGL,eAAe,UAA0B,CACjC,OAAO,KAAK,eAAe,MAC9B,EACL,QAAS,CAAC,KAAO,GAAK,mBAAmB,EAAI,EAC7C,cAAe,SAAmB8nB,GAAGkJ,GAAIC,GAA0BC,GAAU,CAE7E,OAAOD,GAAyB,CAChC,IAAK,GACL,MACA,IAAK,GAAE,MAAO,IAEd,IAAK,GAAE,MAAO,IAEd,IAAK,GAAE,MAAO,IAEd,IAAK,GAAE,MAAO,IAEd,IAAK,GAAE,MAAO,IAEd,IAAK,GAAE,MAAO,KAEd,IAAK,GAAE,MAAO,KAEd,IAAK,GAAE,MAAO,IAEd,IAAK,GAAE,MAAO,KAEd,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,OAEf,IAAK,IAAG,MAAO,UAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,WAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,IAEf,IAAK,IAAG,MAAO,KAEf,IAAK,IAAG,MAAO,GAEf,IAAK,IAAG,QAAQ,IAAID,GAAI,MAAM,EAC9B,KACA,CACC,EACD,MAAO,CAAC,sBAAsB,aAAa,gBAAgB,eAAe,mBAAmB,cAAc,aAAa,cAAc,iFAAiF,wDAAwD,+UAA+U,qBAAqB,mBAAmB,8RAA8R,isBAAisB,mrDAAmrD,ksBAAksB,orDAAorD,qCAAqC,sBAAsB,8BAA8B,4EAA4E,0BAA0B,mEAAmE,mEAAmE,2DAA2D,4DAA4D,WAAW,aAAa,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,aAAa,WAAW,UAAU,WAAW,UAAU,UAAU,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,SAAS,EACv1M,WAAY,CAAC,QAAU,CAAC,MAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,UAAY,EAAI,CAAC,CACrM,EACA,OAAOzE,EACP,EAAI,EACJ7E,GAAO,MAAQ6E,GACf,SAASpE,IAAU,CACjB,KAAK,GAAK,CAAE,CACd,CACA,OAAAA,GAAO,UAAYT,GAAOA,GAAO,OAASS,GACnC,IAAIA,EACX,EAAI,EAEJ,sBAAeq6G,uHC5jCf,MAAMA,EAAetxH,oBAAyB,EAAC,OACzCkyH,EAAKluH,WAEX,MAAMiT,CAAO,CACX,aAAc,CAChB,CAEE,MAAMnY,EAAK,CAAE,eAAAqzH,EAAgB,QAAAnwG,CAAO,EAAK,CAAA,EAAI,CAC3C,KAAK,QAAU,IAAIsvG,EAEnB,KAAK,QAAQ,OAAO,QAAUY,EAAG,YACjC,KAAK,QAAQ,OAAO,KAAOA,EAAG,YAAY,UAAUlwG,GAAW,oBAAoB,EACnF,KAAK,QAAQ,OAAO,SAAWmwG,IAAmB,GAClD,KAAK,QAAQ,OAAO,SAAW,CAC7B,IAAK,8CACL,KAAM,wCACN,GAAI,8BACJ,IAAK,oCACL,IAAK,gCACX,EACI,KAAK,QAAQ,OAAO,iBAAmB,OACvC,KAAK,QAAQ,OAAO,oBAAsB,OAC1C,KAAK,QAAQ,OAAO,eAAiB,CAAE,EACvC,KAAK,QAAQ,OAAO,qBAAuB,OAC3C,KAAK,QAAQ,OAAO,SAAW,IAAID,EAAG,OAAO,CAAE,QAASlwG,GAAW,qBAAsB,EAEzF,MAAM11B,EAAM,CAAA,EACZ,YAAK,QAAQ,OAAO,OAAU63B,GAAS,CAAE73B,EAAI,KAAK63B,CAAI,CAAG,EACzD,KAAK,QAAQ,MAAMrlB,CAAG,EACtBxS,EAAI,SAAW,KAAK,QAAQ,OAAO,SAC5BA,CACX,CACA,CAEAi7H,cAAA,OAAwBtwG,EAExBswG,OAAA,MAAuB,SAAezoH,EAAKvpB,EAAS,CAElD,OADe,IAAI0hC,EAAQ,EACb,MAAMnY,EAAKvpB,CAAO,CAClC,yNCtCA,OAAO,eAAe68I,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMtwE,EAA0C9hD,qBAAA,EAIhD,IAAAqyH,EAAA,cAAqCvwE,EAAgB,gBAAiB,CAClE,YAAY3rE,EAAQ,CAChB,MAAMA,GAAQ,KAAMo8F,IAChB,KAAK,SAAWA,EAAI,SACbA,EACV,CAAC,CACV,CACI,MAAO,CAEH,GAAI,KAAK,SAAU,CACf,UAAW/7F,KAAQ,OAAO,QAAQ,KAAK,QAAQ,EAC3C,KAAK,KAAK,SAAU,GAAGA,CAAI,EAE/B,OAAO,KAAK,QACxB,CACQ,OAAO,MAAM,KAAM,CAC3B,CACA,EACA47I,8BAAA,uBAAiCE,gMCxBjC,OAAO,eAAeC,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAM/f,EAAoDxyG,cAAA,EACpDwyH,EAAqBxuH,cAAkC,EACvDgtF,EAAoB/sF,eAA0B,EAC9CwuH,EAAiBvuH,cAAuB,EACxCkuH,EAA8DjuH,8BAAA,EAIpE,IAAAuuH,EAAA,cAAkClgB,EAAgB,4BAA6B,CAY3E,YAAYh8H,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,UAAUmqB,EAAQmG,EAAWqjE,EAAU,CACzC,MAAMwoD,EAAiB,IAAIP,EAAyB,0BAEhDI,EAAmB,WAAW7xH,EAAO,IAAI,EAAE,KAAK7B,MAAW2zH,EAAe,OAAO3zH,EAAK,CACtF,eAAgBgI,IAAc,kBAC9B,QAASnG,EAAO,UAAU,OAC7B,CAAA,CAAC,CAAC,EACG06C,EAAW,IAAI21C,EAAkB,SAAS,CAAE,WAAY,GAAM,EACpE,OAAA2hC,EAAe,GAAG,SAAU,IAAIn8I,IAAS6kE,EAAS,KAAK,SAAU,GAAG7kE,CAAI,CAAC,EAClE,CACH,KAAM6kE,EAAS,KAAKs3E,CAAc,EAClC,SAAU,CAAE,QAAS,EAAM,CAC9B,CACT,CACA,EACAJ,2BAAA,oBAA8BK,gICxC9B,IAAIlvH,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2BAAgC,EAAE+D,CAAO,iQCdtD,OAAO,eAAe86G,iBAAS,aAAc,CAAE,MAAO,GAAM,EACtCA,iBAAA,eAAG,OACHA,iBAAA,eAAG,IAAI,YAEb,2keACX,MAAM,EAAE,EACR,IAAK/kJ,GAAMA,EAAE,WAAW,CAAC,CAAC,CAAC,yKCNhC,OAAO,eAAeglJ,gBAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,gBAAA,cAAG,OACHA,gBAAA,cAAG,IAAI,YAEZ,wCACX,MAAM,EAAE,EACR,IAAKhlJ,GAAMA,EAAE,WAAW,CAAC,CAAC,CAAC,oLCNhC,IAAI4Y,EACJ,OAAO,eAAcqxB,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAA,cAAwB,OACxBA,EAAA,iBAA2Bi7G,EAC3Bj7G,EAAA,gBAA0Bk7G,EAC1B,MAAMF,EAAY,IAAI,IAAI,CACtB,CAAC,EAAG,KAAK,EAET,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,GAAG,CACb,CAAC,EAIDh7G,EAAA,eAECrxB,EAAK,OAAO,iBAAmB,MAAQA,IAAO,OAASA,EAAK,SAAUw9F,EAAW,CAC9E,IAAItvE,EAAS,GACb,OAAIsvE,EAAY,QACZA,GAAa,MACbtvE,GAAU,OAAO,aAAesvE,IAAc,GAAM,KAAQ,KAAK,EACjEA,EAAY,MAASA,EAAY,MAErCtvE,GAAU,OAAO,aAAasvE,CAAS,EAChCtvE,CACV,EAMD,SAASo+G,EAAiB9uC,EAAW,CACjC,IAAIx9F,EACJ,OAAKw9F,GAAa,OAASA,GAAa,OACpCA,EAAY,QACL,OAEHx9F,EAAKqsI,EAAU,IAAI7uC,CAAS,KAAO,MAAQx9F,IAAO,OAASA,EAAKw9F,CAC5E,CAQA,SAAS+uC,EAAgB/uC,EAAW,CAChC,SAAWnsE,EAAQ,eAAei7G,EAAiB9uC,CAAS,CAAC,CACjE,uJC1EA,OAAO,eAAcnsE,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAwB,cAAAA,EAAA,iBAA2BA,kBAA0BA,EAAwB,cAAAA,EAAA,eAAyBA,gBAAwBA,EAAuB,aAAAA,EAAA,aAAuB,OACpMA,EAAA,gBAA0Bu8G,EAC1Bv8G,EAAA,WAAqBi9G,EACrBj9G,EAAA,oBAA8Bk9G,EAC9Bl9G,EAAA,iBAA2Bm9G,EAC3Bn9G,EAAA,UAAoBo9G,EACpB,MAAMjC,EAAwBl/G,wBAA0C,EAClEm/G,EAAuBn7G,uBAAyC,EAChEo7G,EAAwBn7G,uBAAgC,EAC9D,IAAIq7G,GACH,SAAUA,EAAW,CAClBA,EAAUA,EAAU,IAAS,EAAE,EAAI,MACnCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,QAAa,EAAE,EAAI,UACvCA,EAAUA,EAAU,QAAa,GAAG,EAAI,UACxCA,EAAUA,EAAU,QAAa,GAAG,EAAI,UACxCA,EAAUA,EAAU,QAAa,GAAG,EAAI,UACxCA,EAAUA,EAAU,QAAa,EAAE,EAAI,UACvCA,EAAUA,EAAU,QAAa,EAAE,EAAI,UACvCA,EAAUA,EAAU,QAAa,EAAE,EAAI,SAC3C,GAAGA,IAAcA,EAAY,CAAA,EAAG,EAEhC,MAAMC,EAAe,GACrB,IAAIC,GACH,SAAUA,EAAc,CACrBA,EAAaA,EAAa,aAAkB,KAAK,EAAI,eACrDA,EAAaA,EAAa,cAAmB,KAAK,EAAI,gBACtDA,EAAaA,EAAa,WAAgB,GAAG,EAAI,YACpD,GAAEA,IAAiBz7G,EAAA,aAAuBy7G,EAAe,CAAE,EAAC,EAC7D,SAASvf,EAASphH,EAAM,CACpB,OAAOA,GAAQygI,EAAU,MAAQzgI,GAAQygI,EAAU,IACvD,CACA,SAASG,EAAuB5gI,EAAM,CAClC,OAASA,GAAQygI,EAAU,SAAWzgI,GAAQygI,EAAU,SACnDzgI,GAAQygI,EAAU,SAAWzgI,GAAQygI,EAAU,OACxD,CACA,SAASI,EAAoB7gI,EAAM,CAC/B,OAASA,GAAQygI,EAAU,SAAWzgI,GAAQygI,EAAU,SACnDzgI,GAAQygI,EAAU,SAAWzgI,GAAQygI,EAAU,SAChDrf,EAASphH,CAAI,CACrB,CAOA,SAAS8gI,EAA8B9gI,EAAM,CACzC,OAAOA,IAASygI,EAAU,QAAUI,EAAoB7gI,CAAI,CAChE,CACA,IAAI+gI,GACH,SAAUA,EAAoB,CAC3BA,EAAmBA,EAAmB,YAAiB,CAAC,EAAI,cAC5DA,EAAmBA,EAAmB,aAAkB,CAAC,EAAI,eAC7DA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,WAAgB,CAAC,EAAI,aAC3DA,EAAmBA,EAAmB,YAAiB,CAAC,EAAI,aAChE,GAAGA,IAAuBA,EAAqB,CAAA,EAAG,EAClD,IAAIC,GACH,SAAUA,EAAc,CAErBA,EAAaA,EAAa,OAAY,CAAC,EAAI,SAE3CA,EAAaA,EAAa,OAAY,CAAC,EAAI,SAE3CA,EAAaA,EAAa,UAAe,CAAC,EAAI,WACjD,GAAEA,IAAiB97G,EAAA,aAAuB87G,EAAe,CAAE,EAAC,EAI7D,MAAMC,CAAc,CAChB,YAEAC,EAUAC,EAEAnjF,EAAQ,CACJ,KAAK,WAAakjF,EAClB,KAAK,cAAgBC,EACrB,KAAK,OAASnjF,EAEd,KAAK,MAAQ+iF,EAAmB,YAEhC,KAAK,SAAW,EAOhB,KAAK,OAAS,EAEd,KAAK,UAAY,EAEjB,KAAK,OAAS,EAEd,KAAK,WAAaC,EAAa,MACvC,CAEI,YAAYI,EAAY,CACpB,KAAK,WAAaA,EAClB,KAAK,MAAQL,EAAmB,YAChC,KAAK,OAAS,EACd,KAAK,UAAY,EACjB,KAAK,OAAS,EACd,KAAK,SAAW,CACxB,CAYI,MAAM9kG,EAAOzjC,EAAQ,CACjB,OAAQ,KAAK,MAAK,CACd,KAAKuoI,EAAmB,YACpB,OAAI9kG,EAAM,WAAWzjC,CAAM,IAAMioI,EAAU,KACvC,KAAK,MAAQM,EAAmB,aAChC,KAAK,UAAY,EACV,KAAK,kBAAkB9kG,EAAOzjC,EAAS,CAAC,IAEnD,KAAK,MAAQuoI,EAAmB,YACzB,KAAK,iBAAiB9kG,EAAOzjC,CAAM,GAE9C,KAAKuoI,EAAmB,aACpB,OAAO,KAAK,kBAAkB9kG,EAAOzjC,CAAM,EAE/C,KAAKuoI,EAAmB,eACpB,OAAO,KAAK,oBAAoB9kG,EAAOzjC,CAAM,EAEjD,KAAKuoI,EAAmB,WACpB,OAAO,KAAK,gBAAgB9kG,EAAOzjC,CAAM,EAE7C,KAAKuoI,EAAmB,YACpB,OAAO,KAAK,iBAAiB9kG,EAAOzjC,CAAM,CAE1D,CACA,CAUI,kBAAkByjC,EAAOzjC,EAAQ,CAC7B,OAAIA,GAAUyjC,EAAM,OACT,IAENA,EAAM,WAAWzjC,CAAM,EAAIkoI,KAAkBD,EAAU,SACxD,KAAK,MAAQM,EAAmB,WAChC,KAAK,UAAY,EACV,KAAK,gBAAgB9kG,EAAOzjC,EAAS,CAAC,IAEjD,KAAK,MAAQuoI,EAAmB,eACzB,KAAK,oBAAoB9kG,EAAOzjC,CAAM,EACrD,CACI,mBAAmByjC,EAAO5iB,EAAO3f,EAAK8jC,EAAM,CACxC,GAAInkB,IAAU3f,EAAK,CACf,MAAM2nI,EAAa3nI,EAAM2f,EACzB,KAAK,OACD,KAAK,OAAS,KAAK,IAAImkB,EAAM6jG,CAAU,EACnC,OAAO,SAASplG,EAAM,OAAO5iB,EAAOgoH,CAAU,EAAG7jG,CAAI,EAC7D,KAAK,UAAY6jG,CAC7B,CACA,CAUI,gBAAgBplG,EAAOzjC,EAAQ,CAC3B,MAAM6oD,EAAa7oD,EACnB,KAAOA,EAASyjC,EAAM,QAAQ,CAC1B,MAAMzP,EAAOyP,EAAM,WAAWzjC,CAAM,EACpC,GAAI4oH,EAAS50F,CAAI,GAAKo0G,EAAuBp0G,CAAI,EAC7Ch0B,GAAU,MAGV,aAAK,mBAAmByjC,EAAOolB,EAAY7oD,EAAQ,EAAE,EAC9C,KAAK,kBAAkBg0B,EAAM,CAAC,CAErD,CACQ,YAAK,mBAAmByP,EAAOolB,EAAY7oD,EAAQ,EAAE,EAC9C,EACf,CAUI,oBAAoByjC,EAAOzjC,EAAQ,CAC/B,MAAM6oD,EAAa7oD,EACnB,KAAOA,EAASyjC,EAAM,QAAQ,CAC1B,MAAMzP,EAAOyP,EAAM,WAAWzjC,CAAM,EACpC,GAAI4oH,EAAS50F,CAAI,EACbh0B,GAAU,MAGV,aAAK,mBAAmByjC,EAAOolB,EAAY7oD,EAAQ,EAAE,EAC9C,KAAK,kBAAkBg0B,EAAM,CAAC,CAErD,CACQ,YAAK,mBAAmByP,EAAOolB,EAAY7oD,EAAQ,EAAE,EAC9C,EACf,CAcI,kBAAkB+oI,EAAQ5rC,EAAgB,CACtC,IAAI9hG,EAEJ,GAAI,KAAK,UAAY8hG,EACjB,OAAC9hG,EAAK,KAAK,UAAY,MAAQA,IAAO,QAAkBA,EAAG,2CAA2C,KAAK,QAAQ,EAC5G,EAGX,GAAI0tI,IAAWd,EAAU,KACrB,KAAK,UAAY,UAEZ,KAAK,aAAeO,EAAa,OACtC,MAAO,GAEX,YAAK,iBAAkBT,EAAsB,kBAAkB,KAAK,MAAM,EAAG,KAAK,QAAQ,EACtF,KAAK,SACDgB,IAAWd,EAAU,MACrB,KAAK,OAAO,wCAAyC,EAEzD,KAAK,OAAO,kCAAkC,KAAK,MAAM,GAEtD,KAAK,QACpB,CAUI,iBAAiBxkG,EAAOzjC,EAAQ,CAC5B,KAAM,CAAE,WAAA0oI,CAAU,EAAK,KACvB,IAAIv+H,EAAUu+H,EAAW,KAAK,SAAS,EAEnCM,GAAe7+H,EAAUg+H,EAAa,eAAiB,GAC3D,KAAOnoI,EAASyjC,EAAM,OAAQzjC,IAAU,KAAK,SAAU,CACnD,MAAMg0B,EAAOyP,EAAM,WAAWzjC,CAAM,EAEpC,GADA,KAAK,UAAYipI,EAAgBP,EAAYv+H,EAAS,KAAK,UAAY,KAAK,IAAI,EAAG6+H,CAAW,EAAGh1G,CAAI,EACjG,KAAK,UAAY,EACjB,OAAO,KAAK,SAAW,GAElB,KAAK,aAAew0G,EAAa,YAE7BQ,IAAgB,GAEbV,EAA8Bt0G,CAAI,GACxC,EACA,KAAK,6BAA8B,EAK7C,GAHA7pB,EAAUu+H,EAAW,KAAK,SAAS,EACnCM,GAAe7+H,EAAUg+H,EAAa,eAAiB,GAEnDa,IAAgB,EAAG,CAEnB,GAAIh1G,IAASi0G,EAAU,KACnB,OAAO,KAAK,oBAAoB,KAAK,UAAWe,EAAa,KAAK,SAAW,KAAK,MAAM,EAGxF,KAAK,aAAeR,EAAa,SACjC,KAAK,OAAS,KAAK,UACnB,KAAK,UAAY,KAAK,OACtB,KAAK,OAAS,EAElC,CACA,CACQ,MAAO,EACf,CAMI,8BAA+B,CAC3B,IAAIntI,EACJ,KAAM,CAAE,OAAAmC,EAAQ,WAAAkrI,CAAU,EAAK,KACzBM,GAAeN,EAAWlrI,CAAM,EAAI2qI,EAAa,eAAiB,GACxE,YAAK,oBAAoB3qI,EAAQwrI,EAAa,KAAK,QAAQ,GAC1D3tI,EAAK,KAAK,UAAY,MAAQA,IAAO,QAAkBA,EAAG,wCAAyC,EAC7F,KAAK,QACpB,CAUI,oBAAoBmC,EAAQwrI,EAAaE,EAAU,CAC/C,KAAM,CAAE,WAAAR,CAAU,EAAK,KACvB,YAAK,cAAcM,IAAgB,EAC7BN,EAAWlrI,CAAM,EAAI,CAAC2qI,EAAa,aACnCO,EAAWlrI,EAAS,CAAC,EAAG0rI,CAAQ,EAClCF,IAAgB,GAEhB,KAAK,cAAcN,EAAWlrI,EAAS,CAAC,EAAG0rI,CAAQ,EAEhDA,CACf,CAQI,KAAM,CACF,IAAI7tI,EACJ,OAAQ,KAAK,MAAK,CACd,KAAKktI,EAAmB,YAEpB,OAAO,KAAK,SAAW,IAClB,KAAK,aAAeC,EAAa,WAC9B,KAAK,SAAW,KAAK,WACvB,KAAK,6BAA4B,EACjC,EAGV,KAAKD,EAAmB,eACpB,OAAO,KAAK,kBAAkB,EAAG,CAAC,EAEtC,KAAKA,EAAmB,WACpB,OAAO,KAAK,kBAAkB,EAAG,CAAC,EAEtC,KAAKA,EAAmB,aACpB,OAACltI,EAAK,KAAK,UAAY,MAAQA,IAAO,QAAkBA,EAAG,2CAA2C,KAAK,QAAQ,EAC5G,EAEX,KAAKktI,EAAmB,YAEpB,MAAO,EAEvB,CACA,CACA,CACA77G,EAAA,cAAwB+7G,EAOxB,SAASU,EAAWT,EAAY,CAC5B,IAAIvmH,EAAc,GAClB,MAAMisF,EAAU,IAAIq6B,EAAcC,EAAangI,GAAU4Z,MAAmB4lH,EAAsB,eAAex/H,CAAI,CAAE,EACvH,OAAO,SAAwBk7B,EAAOmlG,EAAY,CAC9C,IAAIxgI,EAAY,EACZpI,EAAS,EACb,MAAQA,EAASyjC,EAAM,QAAQ,IAAKzjC,CAAM,IAAM,GAAG,CAC/CmiB,GAAeshB,EAAM,MAAMr7B,EAAWpI,CAAM,EAC5CouG,EAAQ,YAAYw6B,CAAU,EAC9B,MAAMr0G,GAAS65E,EAAQ,MAAM3qE,EAE7BzjC,EAAS,CAAC,EACV,GAAIu0B,GAAS,EAAG,CACZnsB,EAAYpI,EAASouG,EAAQ,IAAK,EAClC,KAChB,CACYhmG,EAAYpI,EAASu0B,GAErBv0B,EAASu0B,KAAW,EAAInsB,EAAY,EAAIA,CACpD,CACQ,MAAM5K,GAAS2kB,EAAcshB,EAAM,MAAMr7B,CAAS,EAElD,OAAA+Z,EAAc,GACP3kB,EACV,CACL,CAWA,SAASyrI,EAAgBP,EAAYv+H,EAASqxI,EAAWxnH,EAAM,CAC3D,MAAMq1G,GAAel/H,EAAUg+H,EAAa,gBAAkB,EACxDmB,EAAan/H,EAAUg+H,EAAa,WAE1C,GAAIkB,IAAgB,EAChB,OAAOC,IAAe,GAAKt1G,IAASs1G,EAAakS,EAAY,GAGjE,GAAIlS,EAAY,CACZ,MAAMlsI,GAAQ42B,EAAOs1G,EACrB,OAAOlsI,GAAQ,GAAKA,IAASisI,EACvB,GACAX,EAAW8S,EAAYp+I,EAAK,EAAI,CAC9C,CAGI,IAAI3G,EAAK+kJ,EACL3nJ,EAAK4C,EAAK4yI,EAAc,EAC5B,KAAO5yI,GAAM5C,GAAI,CACb,MAAM01I,GAAO9yI,EAAK5C,IAAQ,EACpB4nJ,GAAW/S,EAAWa,EAAG,EAC/B,GAAIkS,GAAWznH,EACXv9B,EAAK8yI,GAAM,UAENkS,GAAWznH,EAChBngC,EAAK01I,GAAM,MAGX,QAAOb,EAAWa,GAAMF,CAAW,CAE/C,CACI,MAAO,EACX,CACA,MAAMI,EAA8BN,EAAWtB,EAAsB,cAAc,EAC7E6B,EAA6BP,EAAWrB,EAAqB,aAAa,EAQhF,SAAS6B,EAAW+R,EAAYx+I,EAAOsrI,EAAa,OAAQ,CACxD,OAAOiB,EAAYiS,EAAYx+I,CAAI,CACvC,CAOA,SAAS0sI,EAAoB+R,EAAe,CACxC,OAAOlS,EAAYkS,EAAenT,EAAa,SAAS,CAC5D,CAOA,SAASqB,EAAiB6R,EAAY,CAClC,OAAOjS,EAAYiS,EAAYlT,EAAa,MAAM,CACtD,CAOA,SAASsB,EAAU8R,EAAW,CAC1B,OAAOlS,EAAWkS,EAAWpT,EAAa,MAAM,CACpD,CAEA,IAAIqT,EAAwBlzH,wBAA0C,EACtE,OAAO,eAAe+D,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOmvH,EAAsB,cAAiB,CAAA,CAAE,EACxI,IAAIC,EAAuBnvH,uBAAyC,EACpE,OAAO,eAAeD,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOovH,EAAqB,aAAgB,CAAA,CAAE,EACrI,IAAI9T,EAAwBp7G,uBAAgC,EAC5D,OAAO,eAAeF,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOs7G,EAAsB,eAAkB,CAAA,CAAE,EAC1I,OAAO,eAAet7G,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOs7G,EAAsB,gBAAmB,CAAA,CAAE,EAC5I,OAAO,eAAet7G,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOs7G,EAAsB,aAAgB,CAAA,CAAE,sJC5ftI,OAAO,eAAe+T,YAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,YAAA,UAAG,OACpB,MAAMC,EAAqCrzH,gBAAA,EAC3C,IAAIs/G,GACH,SAAUA,EAAW,CAClBA,EAAUA,EAAU,IAAS,CAAC,EAAI,MAClCA,EAAUA,EAAU,QAAa,EAAE,EAAI,UACvCA,EAAUA,EAAU,SAAc,EAAE,EAAI,WACxCA,EAAUA,EAAU,eAAoB,EAAE,EAAI,iBAC9CA,EAAUA,EAAU,MAAW,EAAE,EAAI,QACrCA,EAAUA,EAAU,gBAAqB,EAAE,EAAI,kBAC/CA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,IAAS,EAAE,EAAI,MACnCA,EAAUA,EAAU,YAAiB,EAAE,EAAI,cAC3CA,EAAUA,EAAU,YAAiB,EAAE,EAAI,cAC3CA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,MAAW,EAAE,EAAI,QACrCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,GAAQ,EAAE,EAAI,KAClCA,EAAUA,EAAU,GAAQ,EAAE,EAAI,KAClCA,EAAUA,EAAU,GAAQ,EAAE,EAAI,KAClCA,EAAUA,EAAU,aAAkB,EAAE,EAAI,eAC5CA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,OAAY,GAAG,EAAI,SACvCA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,OAAY,GAAG,EAAI,SACvCA,EAAUA,EAAU,OAAY,GAAG,EAAI,SACvCA,EAAUA,EAAU,qBAA0B,EAAE,EAAI,sBACxD,GAAGA,IAAcA,EAAY,CAAA,EAAG,EAEhC,IAAI+B,GACH,SAAUA,EAAO,CACdA,EAAMA,EAAM,KAAU,CAAC,EAAI,OAC3BA,EAAMA,EAAM,cAAmB,CAAC,EAAI,gBACpCA,EAAMA,EAAM,UAAe,CAAC,EAAI,YAChCA,EAAMA,EAAM,iBAAsB,CAAC,EAAI,mBACvCA,EAAMA,EAAM,qBAA0B,CAAC,EAAI,uBAC3CA,EAAMA,EAAM,iBAAsB,CAAC,EAAI,mBACvCA,EAAMA,EAAM,oBAAyB,CAAC,EAAI,sBAE1CA,EAAMA,EAAM,oBAAyB,CAAC,EAAI,sBAC1CA,EAAMA,EAAM,gBAAqB,CAAC,EAAI,kBACtCA,EAAMA,EAAM,mBAAwB,EAAE,EAAI,qBAC1CA,EAAMA,EAAM,qBAA0B,EAAE,EAAI,uBAC5CA,EAAMA,EAAM,mBAAwB,EAAE,EAAI,qBAC1CA,EAAMA,EAAM,mBAAwB,EAAE,EAAI,qBAC1CA,EAAMA,EAAM,mBAAwB,EAAE,EAAI,qBAE1CA,EAAMA,EAAM,kBAAuB,EAAE,EAAI,oBACzCA,EAAMA,EAAM,cAAmB,EAAE,EAAI,gBAErCA,EAAMA,EAAM,wBAA6B,EAAE,EAAI,0BAE/CA,EAAMA,EAAM,cAAmB,EAAE,EAAI,gBACrCA,EAAMA,EAAM,cAAmB,EAAE,EAAI,gBACrCA,EAAMA,EAAM,iBAAsB,EAAE,EAAI,mBACxCA,EAAMA,EAAM,cAAmB,EAAE,EAAI,gBAErCA,EAAMA,EAAM,eAAoB,EAAE,EAAI,iBACtCA,EAAMA,EAAM,eAAoB,EAAE,EAAI,iBACtCA,EAAMA,EAAM,qBAA0B,EAAE,EAAI,uBAC5CA,EAAMA,EAAM,aAAkB,EAAE,EAAI,eACpCA,EAAMA,EAAM,SAAc,EAAE,EAAI,UACpC,GAAGA,IAAUA,EAAQ,CAAA,EAAG,EACxB,SAASC,EAAa,EAAG,CACrB,OAAQ,IAAMhC,EAAU,OACpB,IAAMA,EAAU,SAChB,IAAMA,EAAU,KAChB,IAAMA,EAAU,UAChB,IAAMA,EAAU,cACxB,CACA,SAASiC,EAAkB,EAAG,CAC1B,OAAO,IAAMjC,EAAU,OAAS,IAAMA,EAAU,IAAMgC,EAAa,CAAC,CACxE,CACA,SAASE,EAAa,EAAG,CACrB,OAAS,GAAKlC,EAAU,QAAU,GAAKA,EAAU,QAC5C,GAAKA,EAAU,QAAU,GAAKA,EAAU,MACjD,CACA,IAAImC,GACH,SAAUA,EAAW,CAClBA,EAAUA,EAAU,QAAa,CAAC,EAAI,UACtCA,EAAUA,EAAU,SAAc,CAAC,EAAI,WACvCA,EAAUA,EAAU,OAAY,CAAC,EAAI,SACrCA,EAAUA,EAAU,OAAY,CAAC,EAAI,QACxC,GAAEA,IAAc2R,YAAA,UAAoB3R,EAAY,CAAE,EAAC,EAOpD,MAAMC,EAAY,CACd,MAAO,IAAI,WAAW,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,EAAI,CAAC,EAC1D,SAAU,IAAI,WAAW,CAAC,GAAM,GAAM,EAAI,CAAC,EAC3C,WAAY,IAAI,WAAW,CAAC,GAAM,GAAM,EAAI,CAAC,EAC7C,UAAW,IAAI,WAAW,CAAC,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAI,CAAC,EAC1E,SAAU,IAAI,WAAW,CAAC,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAI,CAAC,EACnE,SAAU,IAAI,WAAW,CAAC,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAI,CAAC,EACnE,YAAa,IAAI,WAAW,CACxB,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,EAC9D,CAAK,EACD,OAAQ,IAAI,WAAW,CAAC,GAAM,GAAM,IAAM,IAAM,GAAI,CAAC,CACxD,EACD,MAAMC,CAAU,CACZ,YAAY,CAAE,QAAAE,EAAU,GAAO,eAAAC,EAAiB,EAAO,EAAEF,EAAK,CAC1D,KAAK,IAAMA,EAEX,KAAK,MAAQP,EAAM,KAEnB,KAAK,OAAS,GAEd,KAAK,aAAe,EAEpB,KAAK,MAAQ,EAEb,KAAK,YAAc,EAEnB,KAAK,UAAYA,EAAM,KAEvB,KAAK,UAAY,GAEjB,KAAK,QAAU,GAEf,KAAK,OAAS,EACd,KAAK,gBAAkB,OACvB,KAAK,cAAgB,EACrB,KAAK,QAAUQ,EACf,KAAK,eAAiBC,EACtB,KAAK,cAAgB,IAAIuR,EAAS,cAAcxR,EAAUwR,EAAS,cAAgBA,EAAS,eAAgB,CAAC5Q,EAAIlC,IAAa,KAAK,cAAckC,EAAIlC,CAAQ,CAAC,CACtK,CACI,OAAQ,CACJ,KAAK,MAAQc,EAAM,KACnB,KAAK,OAAS,GACd,KAAK,aAAe,EACpB,KAAK,MAAQ,EACb,KAAK,UAAYA,EAAM,KACvB,KAAK,gBAAkB,OACvB,KAAK,QAAU,GACf,KAAK,OAAS,CACtB,CACI,MAAMthC,EAAO,CACT,KAAK,QAAU,KAAK,OAAO,OAC3B,KAAK,OAASA,EACd,KAAK,MAAO,CACpB,CACI,KAAM,CACE,KAAK,SACL,KAAK,OAAQ,CACzB,CACI,OAAQ,CACJ,KAAK,QAAU,EACvB,CACI,QAAS,CACL,KAAK,QAAU,GACX,KAAK,MAAQ,KAAK,OAAO,OAAS,KAAK,QACvC,KAAK,MAAO,CAExB,CACI,UAAUjmH,EAAG,CACLA,IAAMwlJ,EAAU,IACf,CAAC,KAAK,gBAAkB,KAAK,cAAcA,EAAU,EAAE,GACpD,KAAK,MAAQ,KAAK,cAClB,KAAK,IAAI,OAAO,KAAK,aAAc,KAAK,KAAK,EAEjD,KAAK,MAAQ+B,EAAM,cACnB,KAAK,aAAe,KAAK,OAEpB,KAAK,gBAAkBvnJ,IAAMwlJ,EAAU,KAC5C,KAAK,YAAa,CAE9B,CACI,0BAA0BxlJ,EAAG,CACzB,MAAMioJ,EAAQ,KAAK,gBAAkB,KAAK,gBAAgB,OAM1D,GAAI,EALYA,EAERR,EAAkBznJ,CAAC,GAElBA,EAAI,MAAU,KAAK,gBAAgB,KAAK,aAAa,GAE1D,KAAK,UAAY,WAEZ,CAACioJ,EAAO,CACb,KAAK,gBACL,MACZ,CACQ,KAAK,cAAgB,EACrB,KAAK,MAAQV,EAAM,UACnB,KAAK,eAAevnJ,CAAC,CAC7B,CAEI,kBAAkBA,EAAG,CACjB,GAAI,KAAK,gBAAkB,KAAK,gBAAgB,OAAQ,CACpD,GAAIA,IAAMwlJ,EAAU,IAAMgC,EAAaxnJ,CAAC,EAAG,CACvC,MAAMmoJ,EAAY,KAAK,MAAQ,KAAK,gBAAgB,OACpD,GAAI,KAAK,aAAeA,EAAW,CAE/B,MAAMC,EAAc,KAAK,MACzB,KAAK,MAAQD,EACb,KAAK,IAAI,OAAO,KAAK,aAAcA,CAAS,EAC5C,KAAK,MAAQC,CACjC,CACgB,KAAK,UAAY,GACjB,KAAK,aAAeD,EAAY,EAChC,KAAK,sBAAsBnoJ,CAAC,EAC5B,MAChB,CACY,KAAK,cAAgB,CACjC,EACaA,EAAI,MAAU,KAAK,gBAAgB,KAAK,aAAa,EACtD,KAAK,eAAiB,EAEjB,KAAK,gBAAkB,EACxB,KAAK,kBAAoB4nJ,EAAU,SAE/B,KAAK,gBAAkB5nJ,IAAMwlJ,EAAU,KACvC,KAAK,YAAa,EAGjB,KAAK,cAAcA,EAAU,EAAE,IAEpC,KAAK,cAAgB,GAKzB,KAAK,cAAgB,EAAOxlJ,IAAMwlJ,EAAU,GAExD,CACI,mBAAmBxlJ,EAAG,CACdA,IAAM4nJ,EAAU,MAAM,KAAK,aAAa,EACpC,EAAE,KAAK,gBAAkBA,EAAU,MAAM,SACzC,KAAK,MAAQL,EAAM,cACnB,KAAK,gBAAkBK,EAAU,SACjC,KAAK,cAAgB,EACrB,KAAK,aAAe,KAAK,MAAQ,IAIrC,KAAK,cAAgB,EACrB,KAAK,MAAQL,EAAM,cACnB,KAAK,mBAAmBvnJ,CAAC,EAErC,CAOI,cAAcA,EAAG,CACb,KAAO,EAAE,KAAK,MAAQ,KAAK,OAAO,OAAS,KAAK,QAC5C,GAAI,KAAK,OAAO,WAAW,KAAK,MAAQ,KAAK,MAAM,IAAMA,EACrD,MAAO,GASf,YAAK,MAAQ,KAAK,OAAO,OAAS,KAAK,OAAS,EACzC,EACf,CASI,mBAAmBA,EAAG,CACdA,IAAM,KAAK,gBAAgB,KAAK,aAAa,EACzC,EAAE,KAAK,gBAAkB,KAAK,gBAAgB,SAC1C,KAAK,kBAAoB4nJ,EAAU,SACnC,KAAK,IAAI,QAAQ,KAAK,aAAc,KAAK,MAAO,CAAC,EAGjD,KAAK,IAAI,UAAU,KAAK,aAAc,KAAK,MAAO,CAAC,EAEvD,KAAK,cAAgB,EACrB,KAAK,aAAe,KAAK,MAAQ,EACjC,KAAK,MAAQL,EAAM,MAGlB,KAAK,gBAAkB,EAExB,KAAK,cAAc,KAAK,gBAAgB,CAAC,CAAC,IAC1C,KAAK,cAAgB,GAGpBvnJ,IAAM,KAAK,gBAAgB,KAAK,cAAgB,CAAC,IAEtD,KAAK,cAAgB,EAEjC,CAOI,eAAeA,EAAG,CACd,OAAO,KAAK,QAAU,CAACynJ,EAAkBznJ,CAAC,EAAI0nJ,EAAa1nJ,CAAC,CACpE,CACI,aAAagkD,EAAUzmC,EAAQ,CAC3B,KAAK,UAAY,GACjB,KAAK,gBAAkBymC,EACvB,KAAK,cAAgBzmC,EACrB,KAAK,MAAQgqI,EAAM,oBAC3B,CACI,mBAAmBvnJ,EAAG,CAClB,GAAIA,IAAMwlJ,EAAU,gBAChB,KAAK,MAAQ+B,EAAM,kBACnB,KAAK,aAAe,KAAK,MAAQ,UAE5BvnJ,IAAMwlJ,EAAU,aACrB,KAAK,MAAQ+B,EAAM,wBACnB,KAAK,aAAe,KAAK,MAAQ,UAE5B,KAAK,eAAevnJ,CAAC,EAAG,CAC7B,MAAMqoJ,EAAQroJ,EAAI,GAClB,KAAK,aAAe,KAAK,MACrB,KAAK,QACL,KAAK,MAAQunJ,EAAM,UAEdc,IAAUT,EAAU,UAAU,CAAC,EACpC,KAAK,MAAQL,EAAM,eAEdc,IAAUT,EAAU,SAAS,CAAC,GACnCS,IAAUT,EAAU,OAAO,CAAC,EAC5B,KAAK,MAAQL,EAAM,eAGnB,KAAK,MAAQA,EAAM,SAEnC,MACiBvnJ,IAAMwlJ,EAAU,MACrB,KAAK,MAAQ+B,EAAM,sBAGnB,KAAK,MAAQA,EAAM,KACnB,KAAK,UAAUvnJ,CAAC,EAE5B,CACI,eAAeA,EAAG,CACVynJ,EAAkBznJ,CAAC,IACnB,KAAK,IAAI,cAAc,KAAK,aAAc,KAAK,KAAK,EACpD,KAAK,aAAe,GACpB,KAAK,MAAQunJ,EAAM,oBACnB,KAAK,yBAAyBvnJ,CAAC,EAE3C,CACI,0BAA0BA,EAAG,CACrBwnJ,EAAaxnJ,CAAC,IAGTA,IAAMwlJ,EAAU,GACrB,KAAK,MAAQ+B,EAAM,MAGnB,KAAK,MAAQ,KAAK,eAAevnJ,CAAC,EAC5BunJ,EAAM,iBACNA,EAAM,iBACZ,KAAK,aAAe,KAAK,OAErC,CACI,sBAAsBvnJ,EAAG,EACjBA,IAAMwlJ,EAAU,IAAMgC,EAAaxnJ,CAAC,KACpC,KAAK,IAAI,WAAW,KAAK,aAAc,KAAK,KAAK,EACjD,KAAK,aAAe,GACpB,KAAK,MAAQunJ,EAAM,oBACnB,KAAK,yBAAyBvnJ,CAAC,EAE3C,CACI,yBAAyBA,EAAG,EAEpBA,IAAMwlJ,EAAU,IAAM,KAAK,cAAcA,EAAU,EAAE,KACrD,KAAK,MAAQ+B,EAAM,KACnB,KAAK,aAAe,KAAK,MAAQ,EAE7C,CACI,yBAAyBvnJ,EAAG,CACpBA,IAAMwlJ,EAAU,IAChB,KAAK,IAAI,aAAa,KAAK,KAAK,EAC5B,KAAK,WACL,KAAK,MAAQ+B,EAAM,aACnB,KAAK,cAAgB,GAGrB,KAAK,MAAQA,EAAM,KAEvB,KAAK,aAAe,KAAK,MAAQ,GAE5BvnJ,IAAMwlJ,EAAU,MACrB,KAAK,MAAQ+B,EAAM,iBAEbC,EAAaxnJ,CAAC,IACpB,KAAK,MAAQunJ,EAAM,gBACnB,KAAK,aAAe,KAAK,MAErC,CACI,sBAAsBvnJ,EAAG,CACjBA,IAAMwlJ,EAAU,IAChB,KAAK,IAAI,iBAAiB,KAAK,KAAK,EACpC,KAAK,MAAQ+B,EAAM,KACnB,KAAK,aAAe,KAAK,MAAQ,EACjC,KAAK,UAAY,IAEXC,EAAaxnJ,CAAC,IACpB,KAAK,MAAQunJ,EAAM,oBACnB,KAAK,yBAAyBvnJ,CAAC,EAE3C,CACI,qBAAqBA,EAAG,EAChBA,IAAMwlJ,EAAU,IAAMiC,EAAkBznJ,CAAC,KACzC,KAAK,IAAI,aAAa,KAAK,aAAc,KAAK,KAAK,EACnD,KAAK,aAAe,KAAK,MACzB,KAAK,MAAQunJ,EAAM,mBACnB,KAAK,wBAAwBvnJ,CAAC,EAE1C,CACI,wBAAwBA,EAAG,CACnBA,IAAMwlJ,EAAU,GAChB,KAAK,MAAQ+B,EAAM,qBAEdvnJ,IAAMwlJ,EAAU,OAASxlJ,IAAMwlJ,EAAU,IAC9C,KAAK,IAAI,YAAYmC,EAAU,QAAS,KAAK,YAAY,EACzD,KAAK,aAAe,GACpB,KAAK,MAAQJ,EAAM,oBACnB,KAAK,yBAAyBvnJ,CAAC,GAEzBwnJ,EAAaxnJ,CAAC,IACpB,KAAK,IAAI,YAAY2nJ,EAAU,QAAS,KAAK,YAAY,EACzD,KAAK,MAAQJ,EAAM,gBACnB,KAAK,aAAe,KAAK,MAErC,CACI,0BAA0BvnJ,EAAG,CACrBA,IAAMwlJ,EAAU,aAChB,KAAK,MAAQ+B,EAAM,mBACnB,KAAK,aAAe,KAAK,MAAQ,GAE5BvnJ,IAAMwlJ,EAAU,aACrB,KAAK,MAAQ+B,EAAM,mBACnB,KAAK,aAAe,KAAK,MAAQ,GAE3BC,EAAaxnJ,CAAC,IACpB,KAAK,aAAe,KAAK,MACzB,KAAK,MAAQunJ,EAAM,mBACnB,KAAK,8BAA8BvnJ,CAAC,EAEhD,CACI,uBAAuBA,EAAGsoJ,EAAO,CACzBtoJ,IAAMsoJ,GACL,CAAC,KAAK,gBAAkB,KAAK,cAAcA,CAAK,GACjD,KAAK,IAAI,aAAa,KAAK,aAAc,KAAK,KAAK,EACnD,KAAK,aAAe,GACpB,KAAK,IAAI,YAAYA,IAAU9C,EAAU,YACnCmC,EAAU,OACVA,EAAU,OAAQ,KAAK,MAAQ,CAAC,EACtC,KAAK,MAAQJ,EAAM,qBAEd,KAAK,gBAAkBvnJ,IAAMwlJ,EAAU,KAC5C,KAAK,YAAa,CAE9B,CACI,kCAAkCxlJ,EAAG,CACjC,KAAK,uBAAuBA,EAAGwlJ,EAAU,WAAW,CAC5D,CACI,kCAAkCxlJ,EAAG,CACjC,KAAK,uBAAuBA,EAAGwlJ,EAAU,WAAW,CAC5D,CACI,8BAA8BxlJ,EAAG,CACzBwnJ,EAAaxnJ,CAAC,GAAKA,IAAMwlJ,EAAU,IACnC,KAAK,IAAI,aAAa,KAAK,aAAc,KAAK,KAAK,EACnD,KAAK,aAAe,GACpB,KAAK,IAAI,YAAYmC,EAAU,SAAU,KAAK,KAAK,EACnD,KAAK,MAAQJ,EAAM,oBACnB,KAAK,yBAAyBvnJ,CAAC,GAE1B,KAAK,gBAAkBA,IAAMwlJ,EAAU,KAC5C,KAAK,YAAa,CAE9B,CACI,uBAAuBxlJ,EAAG,CAClBA,IAAMwlJ,EAAU,sBAChB,KAAK,MAAQ+B,EAAM,cACnB,KAAK,cAAgB,GAGrB,KAAK,MACDvnJ,IAAMwlJ,EAAU,KACV+B,EAAM,cACNA,EAAM,aAE5B,CACI,mBAAmBvnJ,EAAG,EACdA,IAAMwlJ,EAAU,IAAM,KAAK,cAAcA,EAAU,EAAE,KACrD,KAAK,IAAI,cAAc,KAAK,aAAc,KAAK,KAAK,EACpD,KAAK,MAAQ+B,EAAM,KACnB,KAAK,aAAe,KAAK,MAAQ,EAE7C,CACI,6BAA6BvnJ,EAAG,EACxBA,IAAMwlJ,EAAU,IAAM,KAAK,cAAcA,EAAU,EAAE,KACrD,KAAK,IAAI,wBAAwB,KAAK,aAAc,KAAK,KAAK,EAC9D,KAAK,MAAQ+B,EAAM,KACnB,KAAK,aAAe,KAAK,MAAQ,EAE7C,CACI,mBAAmBvnJ,EAAG,CACdA,IAAMwlJ,EAAU,MAChB,KAAK,MAAQ+B,EAAM,cACnB,KAAK,gBAAkBK,EAAU,WAEjC,KAAK,cAAgB,EACrB,KAAK,aAAe,KAAK,MAAQ,GAGjC,KAAK,MAAQL,EAAM,aAE/B,CACI,sBAAsBvnJ,EAAG,EACjBA,IAAMwlJ,EAAU,IAAM,KAAK,cAAcA,EAAU,EAAE,KACrD,KAAK,IAAI,UAAU,KAAK,aAAc,KAAK,MAAO,CAAC,EACnD,KAAK,MAAQ+B,EAAM,KACnB,KAAK,aAAe,KAAK,MAAQ,EAE7C,CACI,oBAAoBvnJ,EAAG,CACnB,MAAMqoJ,EAAQroJ,EAAI,GACdqoJ,IAAUT,EAAU,UAAU,CAAC,EAC/B,KAAK,aAAaA,EAAU,UAAW,CAAC,EAEnCS,IAAUT,EAAU,SAAS,CAAC,EACnC,KAAK,aAAaA,EAAU,SAAU,CAAC,GAGvC,KAAK,MAAQL,EAAM,UACnB,KAAK,eAAevnJ,CAAC,EAEjC,CACI,oBAAoBA,EAAG,CAEnB,OADcA,EAAI,GACL,CACT,KAAK4nJ,EAAU,SAAS,CAAC,EAAG,CACxB,KAAK,aAAaA,EAAU,SAAU,CAAC,EACvC,KAChB,CACY,KAAKA,EAAU,YAAY,CAAC,EAAG,CAC3B,KAAK,aAAaA,EAAU,YAAa,CAAC,EAC1C,KAChB,CACY,KAAKA,EAAU,OAAO,CAAC,EAAG,CACtB,KAAK,aAAaA,EAAU,OAAQ,CAAC,EACrC,KAChB,CACY,QACI,KAAK,MAAQL,EAAM,UACnB,KAAK,eAAevnJ,CAAC,CAErC,CACA,CACI,aAAc,CACV,KAAK,UAAY,KAAK,MACtB,KAAK,MAAQunJ,EAAM,SACnB,KAAK,YAAc,KAAK,MACxB,KAAK,cAAc,YAAY,KAAK,QAC9BgS,EAAS,aAAa,OACtB,KAAK,YAAchS,EAAM,MACvB,KAAK,YAAcA,EAAM,aACvBgS,EAAS,aAAa,OACtBA,EAAS,aAAa,SAAS,CACjD,CACI,eAAgB,CACZ,MAAMznH,EAAS,KAAK,cAAc,MAAM,KAAK,OAAQ,KAAK,MAAQ,KAAK,MAAM,EAEzEA,GAAU,GACV,KAAK,MAAQ,KAAK,UACdA,IAAW,IACX,KAAK,MAAQ,KAAK,cAKtB,KAAK,MAAQ,KAAK,OAAS,KAAK,OAAO,OAAS,CAE5D,CAII,SAAU,CAEF,KAAK,SAAW,KAAK,eAAiB,KAAK,QACvC,KAAK,QAAUy1G,EAAM,MACpB,KAAK,QAAUA,EAAM,cAAgB,KAAK,gBAAkB,GAC7D,KAAK,IAAI,OAAO,KAAK,aAAc,KAAK,KAAK,EAC7C,KAAK,aAAe,KAAK,QAEpB,KAAK,QAAUA,EAAM,oBAC1B,KAAK,QAAUA,EAAM,oBACrB,KAAK,QAAUA,EAAM,sBACrB,KAAK,IAAI,aAAa,KAAK,aAAc,KAAK,KAAK,EACnD,KAAK,aAAe,KAAK,OAGzC,CACI,gBAAiB,CACb,OAAO,KAAK,MAAQ,KAAK,OAAO,OAAS,KAAK,QAAU,KAAK,OACrE,CAMI,OAAQ,CACJ,KAAO,KAAK,kBAAkB,CAC1B,MAAMvnJ,EAAI,KAAK,OAAO,WAAW,KAAK,MAAQ,KAAK,MAAM,EACzD,OAAQ,KAAK,MAAK,CACd,KAAKunJ,EAAM,KAAM,CACb,KAAK,UAAUvnJ,CAAC,EAChB,KACpB,CACgB,KAAKunJ,EAAM,qBAAsB,CAC7B,KAAK,0BAA0BvnJ,CAAC,EAChC,KACpB,CACgB,KAAKunJ,EAAM,aAAc,CACrB,KAAK,kBAAkBvnJ,CAAC,EACxB,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,mBAAoB,CAC3B,KAAK,kCAAkCvnJ,CAAC,EACxC,KACpB,CACgB,KAAKunJ,EAAM,gBAAiB,CACxB,KAAK,qBAAqBvnJ,CAAC,EAC3B,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,iBAAkB,CACzB,KAAK,sBAAsBvnJ,CAAC,EAC5B,KACpB,CACgB,KAAKunJ,EAAM,oBAAqB,CAC5B,KAAK,yBAAyBvnJ,CAAC,EAC/B,KACpB,CACgB,KAAKunJ,EAAM,UAAW,CAClB,KAAK,eAAevnJ,CAAC,EACrB,KACpB,CACgB,KAAKunJ,EAAM,iBAAkB,CACzB,KAAK,sBAAsBvnJ,CAAC,EAC5B,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,mBAAoB,CAC3B,KAAK,wBAAwBvnJ,CAAC,EAC9B,KACpB,CACgB,KAAKunJ,EAAM,mBAAoB,CAC3B,KAAK,kCAAkCvnJ,CAAC,EACxC,KACpB,CACgB,KAAKunJ,EAAM,qBAAsB,CAC7B,KAAK,0BAA0BvnJ,CAAC,EAChC,KACpB,CACgB,KAAKunJ,EAAM,qBAAsB,CAC7B,KAAK,0BAA0BvnJ,CAAC,EAChC,KACpB,CACgB,KAAKunJ,EAAM,oBAAqB,CAC5B,KAAK,yBAAyBvnJ,CAAC,EAC/B,KACpB,CACgB,KAAKunJ,EAAM,eAAgB,CACvB,KAAK,oBAAoBvnJ,CAAC,EAC1B,KACpB,CACgB,KAAKunJ,EAAM,eAAgB,CACvB,KAAK,oBAAoBvnJ,CAAC,EAC1B,KACpB,CACgB,KAAKunJ,EAAM,mBAAoB,CAC3B,KAAK,8BAA8BvnJ,CAAC,EACpC,KACpB,CACgB,KAAKunJ,EAAM,iBAAkB,CACzB,KAAK,sBAAsBvnJ,CAAC,EAC5B,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,kBAAmB,CAC1B,KAAK,uBAAuBvnJ,CAAC,EAC7B,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,wBAAyB,CAChC,KAAK,6BAA6BvnJ,CAAC,EACnC,KACpB,CACgB,KAAKunJ,EAAM,SAAU,CACjB,KAAK,cAAe,EACpB,KACpB,CACA,CACY,KAAK,OACjB,CACQ,KAAK,QAAS,CACtB,CACI,QAAS,CACD,KAAK,QAAUA,EAAM,WACrB,KAAK,cAAc,IAAK,EACxB,KAAK,MAAQ,KAAK,WAEtB,KAAK,mBAAoB,EACzB,KAAK,IAAI,MAAO,CACxB,CAEI,oBAAqB,CACjB,MAAMmB,EAAW,KAAK,OAAO,OAAS,KAAK,OAEvC,KAAK,cAAgBA,IAGrB,KAAK,QAAUnB,EAAM,cACjB,KAAK,kBAAoBK,EAAU,SACnC,KAAK,IAAI,QAAQ,KAAK,aAAcc,EAAU,CAAC,EAG/C,KAAK,IAAI,UAAU,KAAK,aAAcA,EAAU,CAAC,EAGhD,KAAK,QAAUnB,EAAM,WAC1B,KAAK,QAAUA,EAAM,qBACrB,KAAK,QAAUA,EAAM,sBACrB,KAAK,QAAUA,EAAM,oBACrB,KAAK,QAAUA,EAAM,iBACrB,KAAK,QAAUA,EAAM,oBACrB,KAAK,QAAUA,EAAM,oBACrB,KAAK,QAAUA,EAAM,oBACrB,KAAK,QAAUA,EAAM,kBAOrB,KAAK,IAAI,OAAO,KAAK,aAAcmB,CAAQ,EAEvD,CACI,cAAcC,EAAIlC,EAAU,CACpB,KAAK,YAAcc,EAAM,MACzB,KAAK,YAAcA,EAAM,cACrB,KAAK,aAAe,KAAK,aACzB,KAAK,IAAI,aAAa,KAAK,aAAc,KAAK,WAAW,EAE7D,KAAK,aAAe,KAAK,YAAcd,EACvC,KAAK,MAAQ,KAAK,aAAe,EACjC,KAAK,IAAI,eAAekC,CAAE,IAGtB,KAAK,aAAe,KAAK,aACzB,KAAK,IAAI,OAAO,KAAK,aAAc,KAAK,WAAW,EAEvD,KAAK,aAAe,KAAK,YAAclC,EACvC,KAAK,MAAQ,KAAK,aAAe,EACjC,KAAK,IAAI,aAAakC,EAAI,KAAK,YAAY,EAEvD,CACA,CACA2Q,mBAAA,QAAkBzR,8HC3xBlB,IAAIj+G,EAAmBC,UAAQA,SAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAG,EAAG8B,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyB,EAAGtoC,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAAC,EAAE,WAAaA,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAO,EAAEtoC,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAG,EAAG8B,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAI,EAAEroC,CAAC,CACf,GACIinD,EAAsB7e,UAAQA,SAAK,qBAAwB,OAAO,OAAU,SAASlqC,EAAGY,EAAG,CAC3F,OAAO,eAAeZ,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOY,EAAG,CACtE,EAAK,SAASZ,EAAGY,EAAG,CAChBZ,EAAE,QAAaY,CACnB,GACIooD,EAAgB9e,UAAQA,SAAK,cAAkB,UAAY,CAC3D,IAAI2vH,EAAU,SAAS75J,EAAG,CACtB,OAAA65J,EAAU,OAAO,qBAAuB,SAAU75J,EAAG,CACjD,IAAI4N,EAAK,CAAE,EACX,QAAS9L,KAAK9B,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAG8B,CAAC,IAAG8L,EAAGA,EAAG,MAAM,EAAI9L,GACjF,OAAO8L,CACV,EACMisJ,EAAQ75J,CAAC,CACnB,EACD,OAAO,SAAUipD,EAAK,CAClB,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAI7tC,EAAS,CAAE,EACf,GAAI6tC,GAAO,KAAM,QAASnnD,EAAI+3J,EAAQ5wG,CAAG,EAAGlpD,EAAI,EAAGA,EAAI+B,EAAE,OAAQ/B,IAAS+B,EAAE/B,CAAC,IAAM,WAAWkqC,EAAgB7uB,EAAQ6tC,EAAKnnD,EAAE/B,CAAC,CAAC,EAC/H,OAAAgpD,EAAmB3tC,EAAQ6tC,CAAG,EACvB7tC,CACV,CACL,EAAI,EACJ,OAAO,eAAe6tI,SAAS,aAAc,CAAE,MAAO,GAAM,EAC9CA,SAAA,OAAG,OACjB,MAAMC,EAAiBlgG,EAAaziB,oBAAyB,EACvDqzH,EAAqCrvH,gBAAA,EACrC4+G,EAAW,IAAI,IAAI,CACrB,QACA,SACA,WACA,SACA,SACA,WACA,UACJ,CAAC,EACKC,EAAO,IAAI,IAAI,CAAC,GAAG,CAAC,EACpBC,EAAmB,IAAI,IAAI,CAAC,QAAS,OAAO,CAAC,EAC7CC,EAAU,IAAI,IAAI,CAAC,KAAM,IAAI,CAAC,EAC9BC,EAAU,IAAI,IAAI,CAAC,KAAM,IAAI,CAAC,EAC9BC,EAAmB,IAAI,IAAI,CAC7B,CAAC,KAAM,IAAI,IAAI,CAAC,KAAM,KAAM,IAAI,CAAC,CAAC,EAClC,CAAC,KAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EACtB,CAAC,KAAM,IAAI,IAAI,CAAC,QAAS,KAAM,IAAI,CAAC,CAAC,EACrC,CAAC,OAAQ,IAAI,IAAI,CAAC,OAAQ,OAAQ,QAAQ,CAAC,CAAC,EAC5C,CAAC,KAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EACtB,CAAC,IAAKJ,CAAI,EACV,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMA,CAAI,EACX,CAAC,SAAUD,CAAQ,EACnB,CAAC,QAASA,CAAQ,EAClB,CAAC,SAAUA,CAAQ,EACnB,CAAC,SAAUA,CAAQ,EACnB,CAAC,WAAYA,CAAQ,EACrB,CAAC,WAAYA,CAAQ,EACrB,CAAC,SAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC9B,CAAC,WAAY,IAAI,IAAI,CAAC,WAAY,QAAQ,CAAC,CAAC,EAC5C,CAAC,KAAMG,CAAO,EACd,CAAC,KAAMA,CAAO,EACd,CAAC,UAAWF,CAAI,EAChB,CAAC,UAAWA,CAAI,EAChB,CAAC,QAASA,CAAI,EACd,CAAC,aAAcA,CAAI,EACnB,CAAC,UAAWA,CAAI,EAChB,CAAC,MAAOA,CAAI,EACZ,CAAC,KAAMA,CAAI,EACX,CAAC,WAAYA,CAAI,EACjB,CAAC,aAAcA,CAAI,EACnB,CAAC,SAAUA,CAAI,EACf,CAAC,SAAUA,CAAI,EACf,CAAC,OAAQA,CAAI,EACb,CAAC,SAAUA,CAAI,EACf,CAAC,KAAMA,CAAI,EACX,CAAC,OAAQA,CAAI,EACb,CAAC,MAAOA,CAAI,EACZ,CAAC,KAAMA,CAAI,EACX,CAAC,MAAOA,CAAI,EACZ,CAAC,UAAWA,CAAI,EAChB,CAAC,QAASA,CAAI,EACd,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMG,CAAO,EACd,CAAC,KAAMA,CAAO,EACd,CAAC,QAASF,CAAgB,EAC1B,CAAC,QAASA,CAAgB,CAC9B,CAAC,EACKI,EAAe,IAAI,IAAI,CACzB,OACA,OACA,WACA,KACA,MACA,UACA,QACA,QACA,KACA,MACA,QACA,UACA,SACA,OACA,OACA,QACA,SACA,QACA,KACJ,CAAC,EACKC,EAAyB,IAAI,IAAI,CAAC,OAAQ,KAAK,CAAC,EAChDC,EAA0B,IAAI,IAAI,CACpC,KACA,KACA,KACA,KACA,QACA,iBACA,gBACA,OACA,OACJ,CAAC,EACKC,EAAY,QAClB,MAAMpsG,CAAO,CACT,YAAY2qG,EAAKrsI,EAAU,GAAI,CAC3B,IAAI7C,EAAIm0C,EAAI8qB,EAAI2xE,EAAI/kJ,EAAIklJ,EACxB,KAAK,QAAUluI,EAEf,KAAK,WAAa,EAElB,KAAK,SAAW,EAKhB,KAAK,aAAe,EACpB,KAAK,QAAU,GACf,KAAK,WAAa,GAClB,KAAK,YAAc,GACnB,KAAK,QAAU,KACf,KAAK,MAAQ,CAAE,EACf,KAAK,QAAU,CAAE,EACjB,KAAK,aAAe,EAEpB,KAAK,WAAa,EAElB,KAAK,MAAQ,GACb,KAAK,IAAMqsI,GAAuC,CAAE,EACpD,KAAK,SAAW,CAAC,KAAK,QAAQ,QAC9B,KAAK,mBAAqBlvI,EAAK6C,EAAQ,iBAAmB,MAAQ7C,IAAO,OAASA,EAAK,KAAK,SAC5F,KAAK,yBACAm0C,EAAKtxC,EAAQ,2BAA6B,MAAQsxC,IAAO,OAASA,EAAK,KAAK,SACjF,KAAK,sBACA8qB,EAAKp8D,EAAQ,wBAA0B,MAAQo8D,IAAO,OAASA,EAAK,CAAC,KAAK,SAC/E,KAAK,UAAY,KAAM2xE,EAAK/tI,EAAQ,aAAe,MAAQ+tI,IAAO,OAASA,EAAKX,EAAe,SAAS,KAAK,QAAS,IAAI,EAC1H,KAAK,eAAiB,CAAC,CAAC,KAAK,QAAQ,GACpCc,GAAMllJ,EAAK,KAAK,KAAK,gBAAkB,MAAQklJ,IAAO,QAAkBA,EAAG,KAAKllJ,EAAI,IAAI,CACjG,CAGI,OAAO25B,EAAOsqH,EAAU,CACpB,IAAI9vI,EAAIm0C,EACR,MAAMjnC,EAAO,KAAK,SAASsY,EAAOsqH,CAAQ,EAC1C,KAAK,SAAWA,EAAW,GAC1B37F,GAAMn0C,EAAK,KAAK,KAAK,UAAY,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAIkN,CAAI,EACnF,KAAK,WAAa4iI,CAC1B,CAEI,aAAaC,EAAID,EAAU,CACvB,IAAI9vI,EAAIm0C,EACR,KAAK,SAAW27F,EAAW,GAC1B37F,GAAMn0C,EAAK,KAAK,KAAK,UAAY,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,KAAQ2gJ,EAAS,eAAe5Q,CAAE,CAAC,EAC9G,KAAK,WAAaD,CAC1B,CAKI,cAAcruI,EAAM,CAChB,OAAO,KAAK,UAAY+uI,EAAa,IAAI/uI,CAAI,CACrD,CAEI,cAAc+jB,EAAOsqH,EAAU,CAC3B,KAAK,SAAWA,EAChB,IAAIruI,EAAO,KAAK,SAAS+jB,EAAOsqH,CAAQ,EACpC,KAAK,oBACLruI,EAAOA,EAAK,YAAa,GAE7B,KAAK,YAAYA,CAAI,CAC7B,CACI,YAAYA,EAAM,CACd,IAAIzB,EAAIm0C,EAAI8qB,EAAI2xE,EAChB,KAAK,aAAe,KAAK,WACzB,KAAK,QAAUnvI,EACf,MAAMovI,EAAe,KAAK,UAAYN,EAAiB,IAAI9uI,CAAI,EAC/D,GAAIovI,EACA,KAAO,KAAK,MAAM,OAAS,GAAKA,EAAa,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAC7D,MAAM3gI,EAAU,KAAK,MAAM,MAAO,GACjCikC,GAAMn0C,EAAK,KAAK,KAAK,cAAgB,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAIkQ,EAAS,EAAI,CAChH,CAEa,KAAK,cAAczO,CAAI,IACxB,KAAK,MAAM,QAAQA,CAAI,EACnB,KAAK,WACDgvI,EAAuB,IAAIhvI,CAAI,EAC/B,KAAK,eAAe,QAAQ,EAAI,EAE3BivI,EAAwB,IAAIjvI,CAAI,GACrC,KAAK,eAAe,QAAQ,EAAK,KAI5CmvI,GAAM3xE,EAAK,KAAK,KAAK,iBAAmB,MAAQ2xE,IAAO,QAAkBA,EAAG,KAAK3xE,EAAIx9D,CAAI,EACtF,KAAK,IAAI,YACT,KAAK,QAAU,CAAE,EAC7B,CACI,WAAWqvI,EAAW,CAClB,IAAI9wI,EAAIm0C,EACR,KAAK,WAAa,KAAK,aACnB,KAAK,WACJA,GAAMn0C,EAAK,KAAK,KAAK,aAAe,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,KAAK,QAAS,KAAK,QAAS8wI,CAAS,EACvH,KAAK,QAAU,MAEf,KAAK,IAAI,YAAc,KAAK,cAAc,KAAK,OAAO,GACtD,KAAK,IAAI,WAAW,KAAK,QAAS,EAAI,EAE1C,KAAK,QAAU,EACvB,CAEI,aAAahB,EAAU,CACnB,KAAK,SAAWA,EAChB,KAAK,WAAW,EAAK,EAErB,KAAK,WAAaA,EAAW,CACrC,CAEI,WAAWtqH,EAAOsqH,EAAU,CACxB,IAAI9vI,EAAIm0C,EAAI8qB,EAAI2xE,EAAI/kJ,EAAIklJ,EAAIE,EAAIC,EAChC,KAAK,SAAWpB,EAChB,IAAIruI,EAAO,KAAK,SAAS+jB,EAAOsqH,CAAQ,EASxC,GARI,KAAK,oBACLruI,EAAOA,EAAK,YAAa,GAEzB,KAAK,WACJgvI,EAAuB,IAAIhvI,CAAI,GAC5BivI,EAAwB,IAAIjvI,CAAI,IACpC,KAAK,eAAe,MAAO,EAE1B,KAAK,cAAcA,CAAI,EAenB,KAAK,UAAYA,IAAS,QAE9BmvI,GAAM3xE,EAAK,KAAK,KAAK,iBAAmB,MAAQ2xE,IAAO,QAAkBA,EAAG,KAAK3xE,EAAI,IAAI,GACzF8xE,GAAMllJ,EAAK,KAAK,KAAK,aAAe,MAAQklJ,IAAO,QAAkBA,EAAG,KAAKllJ,EAAI,KAAM,CAAE,EAAE,EAAI,GAC/FqlJ,GAAMD,EAAK,KAAK,KAAK,cAAgB,MAAQC,IAAO,QAAkBA,EAAG,KAAKD,EAAI,KAAM,EAAK,OAnBnE,CAC3B,MAAMt1F,EAAM,KAAK,MAAM,QAAQl6C,CAAI,EACnC,GAAIk6C,IAAQ,GACR,QAAS/xC,EAAQ,EAAGA,GAAS+xC,EAAK/xC,IAAS,CACvC,MAAMsG,EAAU,KAAK,MAAM,MAAO,GAEjCikC,GAAMn0C,EAAK,KAAK,KAAK,cAAgB,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAIkQ,EAAStG,IAAU+xC,CAAG,CAC7H,MAEqB,KAAK,UAAYl6C,IAAS,MAE/B,KAAK,YAAY,GAAG,EACpB,KAAK,gBAAgB,EAAI,EAEzC,CAQQ,KAAK,WAAaquI,EAAW,CACrC,CAEI,iBAAiBA,EAAU,CACvB,KAAK,SAAWA,EACZ,KAAK,sBAAwB,KAAK,eAAe,CAAC,GAClD,KAAK,gBAAgB,EAAK,EAE1B,KAAK,WAAaA,EAAW,GAI7B,KAAK,aAAaA,CAAQ,CAEtC,CACI,gBAAgBkB,EAAe,CAC3B,IAAIhxI,EAAIm0C,EACR,MAAM1yC,EAAO,KAAK,QAClB,KAAK,WAAWuvI,CAAa,EAEzB,KAAK,MAAM,CAAC,IAAMvvI,KAEjB0yC,GAAMn0C,EAAK,KAAK,KAAK,cAAgB,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAIyB,EAAM,CAACuvI,CAAa,EACvG,KAAK,MAAM,MAAO,EAE9B,CAEI,aAAaxrH,EAAOsqH,EAAU,CAC1B,KAAK,WAAatqH,EAClB,MAAM/jB,EAAO,KAAK,SAAS+jB,EAAOsqH,CAAQ,EAC1C,KAAK,WAAa,KAAK,wBACjBruI,EAAK,YAAW,EAChBA,CACd,CAEI,aAAa+jB,EAAOsqH,EAAU,CAC1B,KAAK,aAAe,KAAK,SAAStqH,EAAOsqH,CAAQ,CACzD,CAEI,eAAeC,EAAI,CACf,KAAK,gBAAmB4Q,EAAS,eAAe5Q,CAAE,CAC1D,CAEI,YAAYL,EAAOI,EAAU,CACzB,IAAI9vI,EAAIm0C,EACR,KAAK,SAAW27F,GACf37F,GAAMn0C,EAAK,KAAK,KAAK,eAAiB,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,KAAK,WAAY,KAAK,YAAa0vI,IAAUO,EAAe,UAAU,OACpJ,IACAP,IAAUO,EAAe,UAAU,OAC/B,IACAP,IAAUO,EAAe,UAAU,QAC/B,OACA,IAAI,EACd,KAAK,SACL,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,QAAS,KAAK,UAAU,IACnE,KAAK,QAAQ,KAAK,UAAU,EAAI,KAAK,aAEzC,KAAK,YAAc,EAC3B,CACI,mBAAmBluI,EAAO,CACtB,MAAM6H,EAAQ7H,EAAM,OAAO4uI,CAAS,EACpC,IAAIlvI,EAAOmI,EAAQ,EAAI7H,EAAQA,EAAM,OAAO,EAAG6H,CAAK,EACpD,OAAI,KAAK,oBACLnI,EAAOA,EAAK,YAAa,GAEtBA,CACf,CAEI,cAAc+jB,EAAOsqH,EAAU,CAC3B,KAAK,SAAWA,EAChB,MAAM/tI,EAAQ,KAAK,SAASyjB,EAAOsqH,CAAQ,EAC3C,GAAI,KAAK,IAAI,wBAAyB,CAClC,MAAMruI,EAAO,KAAK,mBAAmBM,CAAK,EAC1C,KAAK,IAAI,wBAAwB,IAAIN,CAAI,GAAI,IAAIM,CAAK,EAAE,CACpE,CAEQ,KAAK,WAAa+tI,EAAW,CACrC,CAEI,wBAAwBtqH,EAAOsqH,EAAU,CACrC,KAAK,SAAWA,EAChB,MAAM/tI,EAAQ,KAAK,SAASyjB,EAAOsqH,CAAQ,EAC3C,GAAI,KAAK,IAAI,wBAAyB,CAClC,MAAMruI,EAAO,KAAK,mBAAmBM,CAAK,EAC1C,KAAK,IAAI,wBAAwB,IAAIN,CAAI,GAAI,IAAIM,CAAK,EAAE,CACpE,CAEQ,KAAK,WAAa+tI,EAAW,CACrC,CAEI,UAAUtqH,EAAOsqH,EAAUnrI,EAAQ,CAC/B,IAAI3E,EAAIm0C,EAAI8qB,EAAI2xE,EAChB,KAAK,SAAWd,GACf37F,GAAMn0C,EAAK,KAAK,KAAK,aAAe,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,KAAK,SAASwlB,EAAOsqH,EAAWnrI,CAAM,CAAC,GACxHisI,GAAM3xE,EAAK,KAAK,KAAK,gBAAkB,MAAQ2xE,IAAO,QAAkBA,EAAG,KAAK3xE,CAAE,EAEnF,KAAK,WAAa6wE,EAAW,CACrC,CAEI,QAAQtqH,EAAOsqH,EAAUnrI,EAAQ,CAC7B,IAAI3E,EAAIm0C,EAAI8qB,EAAI2xE,EAAI/kJ,EAAIklJ,EAAIE,EAAIC,EAAIC,EAAI30E,EACxC,KAAK,SAAWszE,EAChB,MAAM/tI,EAAQ,KAAK,SAASyjB,EAAOsqH,EAAWnrI,CAAM,EAChD,CAAC,KAAK,UAAY,KAAK,QAAQ,iBAC9BwvC,GAAMn0C,EAAK,KAAK,KAAK,gBAAkB,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,CAAE,GAClF4wI,GAAM3xE,EAAK,KAAK,KAAK,UAAY,MAAQ2xE,IAAO,QAAkBA,EAAG,KAAK3xE,EAAIl9D,CAAK,GACnFgvI,GAAMllJ,EAAK,KAAK,KAAK,cAAgB,MAAQklJ,IAAO,QAAkBA,EAAG,KAAKllJ,CAAE,KAGhFqlJ,GAAMD,EAAK,KAAK,KAAK,aAAe,MAAQC,IAAO,QAAkBA,EAAG,KAAKD,EAAI,UAAUlvI,CAAK,IAAI,GACpGy6D,GAAM20E,EAAK,KAAK,KAAK,gBAAkB,MAAQ30E,IAAO,QAAkBA,EAAG,KAAK20E,CAAE,GAGvF,KAAK,WAAarB,EAAW,CACrC,CAEI,OAAQ,CACJ,IAAI9vI,EAAIm0C,EACR,GAAI,KAAK,IAAI,WAAY,CAErB,KAAK,SAAW,KAAK,WACrB,QAASvqC,EAAQ,EAAGA,EAAQ,KAAK,MAAM,OAAQA,IAC3C,KAAK,IAAI,WAAW,KAAK,MAAMA,CAAK,EAAG,EAAI,CAE3D,EACSuqC,GAAMn0C,EAAK,KAAK,KAAK,SAAW,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,CAAE,CACpF,CAII,OAAQ,CACJ,IAAIA,EAAIm0C,EAAI8qB,EAAI2xE,GACfz8F,GAAMn0C,EAAK,KAAK,KAAK,WAAa,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,CAAE,EAC9E,KAAK,UAAU,MAAO,EACtB,KAAK,QAAU,GACf,KAAK,WAAa,GAClB,KAAK,QAAU,KACf,KAAK,MAAM,OAAS,EACpB,KAAK,WAAa,EAClB,KAAK,SAAW,GACf4wI,GAAM3xE,EAAK,KAAK,KAAK,gBAAkB,MAAQ2xE,IAAO,QAAkBA,EAAG,KAAK3xE,EAAI,IAAI,EACzF,KAAK,QAAQ,OAAS,EACtB,KAAK,eAAe,OAAS,EAC7B,KAAK,eAAe,QAAQ,CAAC,KAAK,QAAQ,EAC1C,KAAK,aAAe,EACpB,KAAK,WAAa,EAClB,KAAK,MAAQ,EACrB,CAOI,cAAc/xD,EAAM,CAChB,KAAK,MAAO,EACZ,KAAK,IAAIA,CAAI,CACrB,CACI,SAASsY,EAAO3f,EAAK,CACjB,KAAO2f,EAAQ,KAAK,cAAgB,KAAK,QAAQ,CAAC,EAAE,QAChD,KAAK,YAAa,EAEtB,IAAImC,EAAQ,KAAK,QAAQ,CAAC,EAAE,MAAMnC,EAAQ,KAAK,aAAc3f,EAAM,KAAK,YAAY,EACpF,KAAOA,EAAM,KAAK,aAAe,KAAK,QAAQ,CAAC,EAAE,QAC7C,KAAK,YAAa,EAClB8hB,GAAS,KAAK,QAAQ,CAAC,EAAE,MAAM,EAAG9hB,EAAM,KAAK,YAAY,EAE7D,OAAO8hB,CACf,CACI,aAAc,CACV,KAAK,cAAgB,KAAK,QAAQ,CAAC,EAAE,OACrC,KAAK,aACL,KAAK,QAAQ,MAAO,CAC5B,CAMI,MAAM0lF,EAAO,CACT,IAAIrtG,EAAIm0C,EACR,GAAI,KAAK,MAAO,EACXA,GAAMn0C,EAAK,KAAK,KAAK,WAAa,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,IAAI,MAAM,sBAAsB,CAAC,EACjH,MACZ,CACQ,KAAK,QAAQ,KAAKqtG,CAAK,EACnB,KAAK,UAAU,UACf,KAAK,UAAU,MAAMA,CAAK,EAC1B,KAAK,aAEjB,CAMI,IAAIA,EAAO,CACP,IAAIrtG,EAAIm0C,EACR,GAAI,KAAK,MAAO,EACXA,GAAMn0C,EAAK,KAAK,KAAK,WAAa,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,IAAI,MAAM,oBAAoB,CAAC,EAC/G,MACZ,CACYqtG,GACA,KAAK,MAAMA,CAAK,EACpB,KAAK,MAAQ,GACb,KAAK,UAAU,IAAK,CAC5B,CAII,OAAQ,CACJ,KAAK,UAAU,MAAO,CAC9B,CAII,QAAS,CAEL,IADA,KAAK,UAAU,OAAQ,EAChB,KAAK,UAAU,SAClB,KAAK,WAAa,KAAK,QAAQ,QAC/B,KAAK,UAAU,MAAM,KAAK,QAAQ,KAAK,YAAY,CAAC,EAEpD,KAAK,OACL,KAAK,UAAU,IAAK,CAChC,CAOI,WAAWA,EAAO,CACd,KAAK,MAAMA,CAAK,CACxB,CAOI,KAAKA,EAAO,CACR,KAAK,IAAIA,CAAK,CACtB,CACA,CACA2iC,gBAAA,OAAiBzrG,6HC5gBjB,IAAIvT,EAAmBC,UAAQA,SAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIinD,EAAsB7e,UAAQA,SAAK,qBAAwB,OAAO,OAAU,SAASlqC,EAAGY,EAAG,CAC3F,OAAO,eAAeZ,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOY,EAAG,CACtE,EAAK,SAASZ,EAAGY,EAAG,CAChBZ,EAAE,QAAaY,CACnB,GACIooD,EAAgB9e,UAAQA,SAAK,cAAkB,UAAY,CAC3D,IAAI2vH,EAAU,SAAS75J,EAAG,CACtB,OAAA65J,EAAU,OAAO,qBAAuB,SAAU75J,EAAG,CACjD,IAAI4N,EAAK,CAAE,EACX,QAAS9L,KAAK9B,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAG8B,CAAC,IAAG8L,EAAGA,EAAG,MAAM,EAAI9L,GACjF,OAAO8L,CACV,EACMisJ,EAAQ75J,CAAC,CACnB,EACD,OAAO,SAAUipD,EAAK,CAClB,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAI7tC,EAAS,CAAE,EACf,GAAI6tC,GAAO,KAAM,QAASnnD,EAAI+3J,EAAQ5wG,CAAG,EAAGlpD,EAAI,EAAGA,EAAI+B,EAAE,OAAQ/B,IAAS+B,EAAE/B,CAAC,IAAM,WAAWkqC,EAAgB7uB,EAAQ6tC,EAAKnnD,EAAE/B,CAAC,CAAC,EAC/H,OAAAgpD,EAAmB3tC,EAAQ6tC,CAAG,EACvB7tC,CACV,CACL,EAAI,EACA4yC,EAAmB9jB,UAAQA,SAAK,iBAAoB,SAAU+e,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAK,CAC5D,EACD,OAAO,eAAc3e,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAmB,SAAAA,EAAA,QAAkBA,cAAsBA,EAAoB,UAAAA,EAAA,UAAoBA,iBAAyBA,EAAqB,WAAAA,EAAA,OAAiB,OAClKA,EAAA,cAAwB2pH,EACxB3pH,EAAA,SAAmB4pH,EACnB5pH,EAAA,qBAA+BwvH,EAC/BxvH,EAAA,gBAA0B6pH,EAC1B7pH,EAAA,UAAoBkqH,EACpB,MAAMV,EAAcvtH,gBAAsB,EAC1C,IAAIwtH,EAAcxtH,gBAAsB,EACxC,OAAO,eAAe+D,EAAS,SAAU,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOypH,EAAY,MAAS,CAAA,CAAE,EAC9G,MAAM3E,EAAoC7kH,cAAA,EAC1C,IAAIypH,EAAoCzpH,cAAA,EACxC,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO0pH,EAAa,UAAa,CAAA,CAAE,EAEvH,OAAO,eAAe1pH,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO0pH,EAAa,UAAa,CAAA,CAAE,EAQ3H,SAASC,EAAc9tI,EAAMrK,EAAS,CAClC,MAAMmjE,EAAU,IAAImwE,EAAa,WAAW,OAAWtzI,CAAO,EAC9D,WAAIg4I,EAAY,OAAO70E,EAASnjE,CAAO,EAAE,IAAIqK,CAAI,EAC1C84D,EAAQ,IACnB,CAWA,SAASi1E,EAAS/tI,EAAMrK,EAAS,CAC7B,OAAOm4I,EAAc9tI,EAAMrK,CAAO,EAAE,QACxC,CAQA,SAASg+I,EAAqBjrG,EAAU/yC,EAASs4I,EAAiB,CAC9D,MAAMn1E,EAAU,IAAImwE,EAAa,WAAY9tI,GAAUutC,EAASvtC,EAAO29D,EAAQ,IAAI,EAAGnjE,EAASs4I,CAAe,EAC9G,OAAO,IAAIN,EAAY,OAAO70E,EAASnjE,CAAO,CAClD,CASA,SAASq4I,EAAgBtlG,EAAU/yC,EAASs4I,EAAiB,CACzD,MAAMn1E,EAAU,IAAImwE,EAAa,WAAWvgG,EAAU/yC,EAASs4I,CAAe,EAC9E,OAAO,IAAIN,EAAY,OAAO70E,EAASnjE,CAAO,CAClD,CACA,IAAIotI,EAAiB1+G,mBAAyB,EAC9C,OAAO,eAAeF,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO0jB,EAAgBk7F,CAAc,EAAE,OAAU,CAAA,CAAE,EACtI,OAAO,eAAe5+G,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO4+G,EAAe,SAAY,CAAA,CAAE,EAKvH5+G,EAAsB,YAAA0e,EAAave,eAAyB,EAC5D,MAAM4pH,EAAgC3pH,cAAA,EACtC,IAAI4pH,EAAgC5pH,cAAA,EACpC,OAAO,eAAeJ,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOgqH,EAAW,OAAU,CAAA,CAAE,EAC/G,MAAMC,EAA0B,CAAE,QAAS,EAAM,EAOjD,SAASC,EAAUtB,EAAMp3I,EAAUy4I,EAAyB,CACxD,SAAWF,EAAW,SAASH,EAAShB,EAAMp3I,CAAO,CAAC,CAC1D,CACAwuB,EAAmB,SAAA0e,EAAate,eAAmB,8LCxHnD,OAAO,eAAeqvH,oBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,oBAAA,kBAAG,OAC5B,MAAMhhB,EAAoDxyG,cAAA,EACpDgvH,EAAsChrH,gBAAA,EACtCgtF,EAAoB/sF,eAA0B,EAKpD,MAAMwvH,UAA0BjhB,EAAgB,4BAA6B,CAYzE,YAAYh8H,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,UAAUmqB,EAAQmG,EAAWhoB,EAAS,CACxC,MAAMc,EAAO,IAAIoxG,EAAkB,SAAS,CAAE,WAAY,GAAM,EAChEpxG,EAAK,MAAQ,IAAM,CAElB,EACD,IAAIkwD,EAAU,EAEV4jF,EAAa,EACjB,SAAS34I,EAAM44I,EAAU,CACrB/zI,EAAK,KAAK,QAAS+zI,CAAQ,CACvC,CACQ,SAASp7I,GAAM,CACP,EAAEm7I,IAAe,GACjB9zI,EAAK,KAAK,IAAI,CAE9B,CACQ,MAAMg0I,EAAa,CACf,QAASjzH,EAAO,UAAU,SAAW,GACrC,QAAA7hB,EACA,KAAOqlC,GAAS,CACZ2rB,IACAlwD,EAAK,KAAKukC,CAAI,CACjB,EACD,IAAA5rC,EACA,MAAAwC,EACA,QAAS4lB,EAAO,OACnB,EACD,GAAI,CACA,MAAMquD,EAAU,MAAM,QAAQ,IAAI,KAAK,gBAAgB,QAAQ4kE,CAAU,CAAC,EAC1EF,GAAc1kE,EAAQ,OACtB,MAAM6kE,EAAqB,CAAE,EAC7B,UAAWjzH,KAAUouD,EAAS,CAE1B,KAAM,CAAE,kBAAA8kE,CAAiB,EAAK,MAAMlzH,EAAO,MAAM,IAAIgzH,EAAY,MAAS,EAC1EC,EAAmB,KAAKC,CAAiB,CACzD,CAEY,MAAMt9G,EAAS,IAAIw4G,EAAc,OAAO,CACpC,YAAa,CACT,GAAI,CACA,UAAW8E,KAAqBD,EAC5BC,EAAkB,WAAY,CAE1D,OAC2BC,EAAQ,CACXh5I,EAAMg5I,CAAM,CACpC,CACiB,EACD,OAAQ,CACJ,GAAI,CACA,UAAWD,KAAqBD,EAC5BC,EAAkB,MAAO,CAErD,OAC2BC,EAAQ,CACXh5I,EAAMg5I,CAAM,CACpC,CACoBx7I,EAAK,CACR,EACD,UAAUpE,EAAMq+G,EAAY,CACxB,GAAI,CACA,UAAWshC,KAAqBD,EAC5BC,EAAkB,UAAU3/I,EAAMq+G,CAAU,CAExE,OAC2BuhC,EAAQ,CACXh5I,EAAMg5I,CAAM,CACpC,CACiB,EACD,OAAOv+I,EAAM,CACT,GAAI,CACA,UAAWs+I,KAAqBD,EAC5BC,EAAkB,OAAOt+I,CAAI,CAEzD,OAC2Bu+I,EAAQ,CACXh5I,EAAMg5I,CAAM,CACpC,CACiB,CACjB,EAAe,CACC,eAAgB,GAChB,qBAAsB,GACtB,QAAS,EACzB,CAAa,EACK1kD,EAAOzvF,EAAK,MAASgI,GAAS,CAGhC,IAFAkoD,EAAU,KAAK,IAAIloD,EAAMkoD,CAAO,EAEzBA,EAAU,GAAG,CAChB,MAAMruD,EAAOkf,EAAO,KAAK,KAAM,EAC/B,GAAIlf,IAAS,KAAM,CACfkf,EAAO,KAAK,KAAK,WAAY,IAAM0uE,EAAK,CAAC,CAAC,EAC1C,MACxB,CACoB74D,EAAO,MAAM/0B,EAAK,UAAU,CAChD,CACa,EACDkf,EAAO,KACF,GAAG,QAAS5lB,CAAK,EACjB,GAAG,MAAO,IAAMy7B,EAAO,IAAG,CAAE,CAC7C,OACep9C,EAAG,CACN,WAAW,IAAM,CACbwmB,EAAK,KAAK,QAASxmB,CAAC,CACpC,CAAa,CACb,CACQ,MAAO,CAAE,KAAAwmB,CAAM,CACvB,CACA,CACA4zI,2BAAA,kBAA4BC,gICpI5B,IAAI/vH,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2BAA8B,EAAE+D,CAAO,uPCfpD,OAAO,eAAeyvH,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAMhvH,EAAkCxE,cAAA,EAYxC,IAAAg0H,EAAA,cAAgCxvH,EAAO,KAAM,CAQzC,YAAYhuB,EAAM,CACd,MAAMA,CAAI,CAClB,CACA,EACAg9I,yBAAA,kBAA4BC,8HC1B5B,IAAI/vH,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yBAA8B,EAAE+D,CAAO,gOCfpD,OAAO,eAAe,qBAAS,aAAc,CAAE,MAAO,GAAM,gQCA5D,OAAO,eAAekwH,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OAIrC,IAAAC,EAAA,KAAiC,CAC7B,UAAUjX,EAASzqB,EAAY,CAC3B,MAAO,YAAaA,CAC5B,CACI,UAAUA,EAAY9qE,EAAMysG,EAAW,CACnC,OAAOzsG,EAAK,cAAc8qE,EAAW,QAAS2hC,CAAS,CAC/D,CACA,EACAF,kCAAA,2BAAqCG,0KCbrC,OAAO,eAAetwD,OAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,OAAA,KAAG,OACf,MAAMt5D,EAAqBxK,wBAA2B,EAChDwjE,EAA6Bx/D,6BAAmC,EAItE,MAAM8jB,CAAK,CACP,YAAY9c,EAAagX,EAAS,CAC9B,KAAK,YAAchX,GAAe,IAAIR,EAAmB,YACzD,KAAK,QAAUwX,GAAW,EAClC,CAMI,OAAO,WAAWrF,EAAK,CACnB,OAAOmL,EAAK,UAAU,KAAKnL,CAAG,CACtC,CAWI,gBAAgB1R,EAAOkpH,EAAWE,EAAmB,CACjD,OAAOppH,EAAM,MAAM,MAAM,EACpB,OAAOtuB,GAAQ,CAAC,CAACA,CAAI,EACrB,IAAIyjH,GAAY,CACjB,GAAI,CAACt4E,EAAK,WAAWs4E,CAAQ,EAAG,CAC5B,GAAI,CAACi0B,EACD,OAEJj0B,EAAW,GAAG+zB,EAAU,OAAS,GAAG,KAAK,OAAO,GAAG,GAAG/zB,CAAQ,EAC9E,CACY,OAAO,KAAK,YAAY,UAAUA,CAAQ,CAC7C,CAAA,EACI,OAAOzjH,GAAQ,CAAC,CAACA,CAAI,CAClC,CAOI,2BAA2BsuB,EAAOkpH,EAAWG,EAAe,CAExD,MAAM5zG,EAAQzV,EAAM,MAAM,MAAM,EAChC,GAAIyV,EAAM,SAAS,eAAe,GAAKA,EAAM,SAAS,oBAAoB,EACtE,MAAO,CAAC,KAAK,YAAY,UAAU,GAAGoH,EAAK,GAAG,MAAM,CAAC,EAGzD,GAAIqsG,EAAU,OAASA,EAAU,SAASG,GAAiBA,EAAcH,EAAU,KAAK,EAAE,WAAY,CAClG,IAAI9kB,EAAa,CAAE,EACnB,SAAW,CAACjP,EAAUm0B,CAAU,IAAK,OAChC,QAAQD,EAAcH,EAAU,KAAK,EAAE,UAAU,EAC9CzzG,EAAM,SAAS0/E,CAAQ,IACvBiP,EAAa,CAAC,GAAG,OAAO,OAAOklB,CAAU,EAAE,IAAI53G,GAAO,KAAK,YAAY,UAAUA,CAAG,CAAC,CAAC,GAG9F,OAAO0yF,CACnB,CACQ,MAAO,CAAE,CACjB,CAMI,cAAc1yF,EAAK,CACf,GAAI,CAACmL,EAAK,WAAWnL,CAAG,EACpB,GAAI,CACAA,KAAU6mD,EAA2B,SAAS7mD,EAAK,KAAK,OAAO,CAC/E,MACuB,CACP,MAChB,CAEQ,OAAO,KAAK,YAAY,UAAUA,CAAG,CAC7C,CAOI,cAAc22E,EAASspB,EAAW,CAC9B,OAAO,KAAK,YAAY,QAAQtpB,EAASspB,EAAU,QAAQ,CACnE,CAOI,YAAY4X,EAASF,EAAe,CAChC,IAAI5vD,EAEJ,UAAW+vD,KAAaH,EACpB,GAAIE,EAAQ,WAAWC,CAAS,EAAG,CAC/B/vD,EAAQ+vD,EAEH/vD,EAAM,SAAS,GAAG,IACnBA,GAAS,KAEb,KAChB,CAGQ,GAAI,CAACA,EAAO,CACR,MAAMgwD,EAAUF,EAAQ,QAAQ,GAAG,EAC/BE,EAAU,EACVhwD,EAAQ8vD,EAAQ,MAAM,EAAGE,EAAU,CAAC,EAGpChwD,KAAYlB,EAA2B,SAAS,IAAKgxD,CAAO,CAE5E,CACQ,OAAO9vD,CACf,CACA,CACAZ,cAAA,KAAeh8C,EACfA,EAAK,IAAM,8CACXA,EAAK,IAAM,oCACXA,EAAK,KAAO,6BACZA,EAAK,UAAY,8PClIjB,OAAO,eAAe6sG,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAM7wD,EAA2B9jE,cAAA,EAIjC,IAAA40H,EAAA,KAAgC,CAC5B,YAAY3X,EAAS4X,EAAe,CAChC,KAAK,QAAU5X,EACf,KAAK,cAAgB4X,CAC7B,CACI,UAAU5X,EAASzqB,EAAY,CAC3B,OAAO,KAAK,UAAYyqB,GAAW,KAAK,iBAAiBzqB,CACjE,CACI,UAAUA,EAAY9qE,EAAMysG,EAAW,CACnC,MAAM1/I,EAAQ+9G,EAAW,KAAK,aAAa,EAC3C,IAAIjxE,EACJ,MAAI,CAAC,OAAO,MAAM,OAAO,SAAS9sC,EAAO,EAAE,CAAC,GAAK,CAACA,EAAM,SAAS,GAAG,EAChE8sC,EAAW,GAAGuiD,EAAO,KAAK,GAAG,UAEvB,OAAO,MAAM,OAAO,WAAWrvF,CAAK,CAAC,IAC3C8sC,EAAW,GAAGuiD,EAAO,KAAK,GAAG,UAE1Bp8C,EAAK,YAAY,QAAQjzC,EAAO8sC,GAAYmG,EAAK,YAAY,UAAUnG,CAAQ,CAAC,CAC/F,CACA,EACAozG,iCAAA,0BAAoCG,kPC1BpC,OAAO,eAAeC,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMjxD,EAA2B9jE,cAAA,EAIjC,IAAAg1H,EAAA,MAAMC,EAAwB,CAC1B,UAAUhY,EAASzqB,EAAY,CAC3B,OAAOyqB,IAAY,QAAU,aAAczqB,CACnD,CACI,UAAUA,EAAY9qE,EAAMysG,EAAW,CACnC,MAAM1/I,EAAQ+9G,EAAW,SACzB,IAAIjxE,EACJ,UAAWl4B,KAAS4rI,GAAwB,aACxC,GAAI5rI,EAAM,MAAM,KAAK5U,CAAK,EAAG,CACzB8sC,EAAWmG,EAAK,YAAY,UAAUo8C,EAAO,KAAK,IAAMz6E,EAAM,IAAI,EAClE,KAChB,CAEQ,OAAOq+B,EAAK,YAAY,QAAQjzC,EAAO8sC,CAAQ,CACvD,CACA,EACAwzG,+BAAA,wBAAkCE,EAClCA,EAAwB,aAAe,CACnC,CACI,MAAO,8DACP,KAAM,UACT,EACD,CACI,MAAO,wDACP,KAAM,UACT,EACD,CAAE,MAAO,qBAAsB,KAAM,MAAQ,EAC7C,CAAE,MAAO,0CAA2C,KAAM,MAAQ,EAClE,CAAE,MAAO,cAAe,KAAM,YAAc,EAC5C,CAAE,MAAO,SAAU,KAAM,OAAS,CACrC,0OCpCD,OAAO,eAAeC,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAM1xD,EAA6BxjE,6BAAmC,EAItE,IAAAm1H,EAAA,KAA6B,CACzB,YAAYlY,EAAS4X,EAAe,CAChC,KAAK,QAAU5X,EACf,KAAK,cAAgB4X,CAC7B,CACI,UAAU5X,EAASzqB,EAAY,CAC3B,OAAO,KAAK,UAAYyqB,GAAW,KAAK,iBAAiBzqB,CACjE,CACI,UAAUA,EAAY9qE,EAAMysG,EAAW,CACnC,OAAOzsG,EAAK,YAAY,aAAc87C,EAA2B,SAASgvB,EAAW,KAAK,aAAa,EAAG9qE,EAAK,OAAO,CAAC,CAC/H,CACA,EACAwtG,8BAAA,uBAAiCE,6LClBjC,OAAO,eAAe,mBAAS,aAAc,CAAE,MAAO,GAAM,kJCA5D,OAAO,eAAe,WAAS,aAAc,CAAE,MAAO,GAAM,8JCA5D,OAAO,eAAe,eAAS,aAAc,CAAE,MAAO,GAAM,mOCC5D,OAAO,eAAe,eAAS,aAAc,CAAE,MAAO,GAAM,EAC7C,eAAA,QAAG,IAAI,YAEtB,2keACK,MAAM,EAAE,EACR,IAAI,SAAUt7J,EAAG,CAAE,OAAOA,EAAE,WAAW,CAAC,CAAE,CAAE,CAAC,6JCLlD,OAAO,eAAe,cAAS,aAAc,CAAE,MAAO,GAAM,EAC7C,cAAA,QAAG,IAAI,YAEtB,wCACK,MAAM,EAAE,EACR,IAAI,SAAUA,EAAG,CAAE,OAAOA,EAAE,WAAW,CAAC,CAAE,CAAE,CAAC,uLCLlD,IAAI4Y,EACJ,OAAO,eAAcqxB,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAA2B,iBAAAA,EAAA,cAAwB,OACnD,IAAIg7G,EAAY,IAAI,IAAI,CACpB,CAAC,EAAG,KAAK,EAET,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,GAAG,CACb,CAAC,EAIDh7G,EAAA,eAECrxB,EAAK,OAAO,iBAAmB,MAAQA,IAAO,OAASA,EAAK,SAAUw9F,EAAW,CAC9E,IAAItvE,EAAS,GACb,OAAIsvE,EAAY,QACZA,GAAa,MACbtvE,GAAU,OAAO,aAAesvE,IAAc,GAAM,KAAS,KAAM,EACnEA,EAAY,MAAUA,EAAY,MAEtCtvE,GAAU,OAAO,aAAasvE,CAAS,EAChCtvE,CACV,EAMD,SAASo+G,EAAiB9uC,EAAW,CACjC,IAAIx9F,EACJ,OAAKw9F,GAAa,OAAUA,GAAa,OAAWA,EAAY,QACrD,OAEHx9F,EAAKqsI,EAAU,IAAI7uC,CAAS,KAAO,MAAQx9F,IAAO,OAASA,EAAKw9F,CAC5E,CACAnsE,EAAA,iBAA2Bi7G,EAQ3B,SAASC,EAAgB/uC,EAAW,CAChC,SAAWnsE,EAAQ,eAAei7G,EAAiB9uC,CAAS,CAAC,CACjE,CACAnsE,EAAA,QAAkBk7G,iJCzElB,IAAIv7G,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIinD,EAAsB7e,QAAQA,OAAK,qBAAwB,OAAO,OAAU,SAASlqC,EAAGY,EAAG,CAC3F,OAAO,eAAeZ,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOY,EAAG,CACtE,EAAK,SAASZ,EAAGY,EAAG,CAChBZ,EAAE,QAAaY,CACnB,GACIooD,EAAgB9e,QAAQA,OAAK,cAAiB,SAAU+e,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAI7tC,EAAS,CAAE,EACf,GAAI6tC,GAAO,KAAM,QAASnnD,KAAKmnD,EAASnnD,IAAM,WAAa,OAAO,UAAU,eAAe,KAAKmnD,EAAKnnD,CAAC,GAAGmoC,EAAgB7uB,EAAQ6tC,EAAKnnD,CAAC,EACvI,OAAAinD,EAAmB3tC,EAAQ6tC,CAAG,EACvB7tC,CACV,EACG4yC,EAAmB9jB,QAAQA,OAAK,iBAAoB,SAAU+e,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAK,CAC5D,EACD,OAAO,eAAc3e,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAA,UAAoBA,EAA2B,iBAAAA,EAAA,oBAA8BA,EAAqB,WAAAA,EAAA,gBAA0BA,EAAwB,cAAAA,EAAA,aAAuBA,EAAuB,aAAAA,EAAA,cAAwBA,EAA2B,iBAAAA,EAAA,gBAA0BA,EAAwB,cAAAA,EAAA,eAAyB,OAChU,IAAIm7G,EAAwBz3F,yBAA0D,EACtF1jB,EAAyB,eAAAm7G,EAAsB,QAC/C,IAAIC,EAAuB13F,wBAAyD,EACpF1jB,EAAwB,cAAAo7G,EAAqB,QAC7C,IAAIC,EAAwB38F,2BAA6C,EACzE1e,EAA0B,gBAAAq7G,EAAsB,QAChD,IAAIC,EAAwDp7G,wBAAA,EAC5D,OAAO,eAAeF,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOs7G,EAAsB,gBAAmB,CAAA,CAAE,EAC5I,OAAO,eAAet7G,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOs7G,EAAsB,aAAgB,CAAA,CAAE,EACtI,IAAIC,GACH,SAAUA,EAAW,CAClBA,EAAUA,EAAU,IAAS,EAAE,EAAI,MACnCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,QAAa,EAAE,EAAI,UACvCA,EAAUA,EAAU,QAAa,GAAG,EAAI,UACxCA,EAAUA,EAAU,QAAa,GAAG,EAAI,UACxCA,EAAUA,EAAU,QAAa,GAAG,EAAI,UACxCA,EAAUA,EAAU,QAAa,EAAE,EAAI,UACvCA,EAAUA,EAAU,QAAa,EAAE,EAAI,UACvCA,EAAUA,EAAU,QAAa,EAAE,EAAI,SAC3C,GAAGA,IAAcA,EAAY,CAAA,EAAG,EAEhC,IAAIC,EAAe,GACfC,GACH,SAAUA,EAAc,CACrBA,EAAaA,EAAa,aAAkB,KAAK,EAAI,eACrDA,EAAaA,EAAa,cAAmB,KAAK,EAAI,gBACtDA,EAAaA,EAAa,WAAgB,GAAG,EAAI,eAClDA,EAAez7G,EAAQ,eAAiBA,EAAA,aAAuB,CAAA,EAAG,EACrE,SAASk8F,EAASphH,EAAM,CACpB,OAAOA,GAAQygI,EAAU,MAAQzgI,GAAQygI,EAAU,IACvD,CACA,SAASG,EAAuB5gI,EAAM,CAClC,OAASA,GAAQygI,EAAU,SAAWzgI,GAAQygI,EAAU,SACnDzgI,GAAQygI,EAAU,SAAWzgI,GAAQygI,EAAU,OACxD,CACA,SAASI,EAAoB7gI,EAAM,CAC/B,OAASA,GAAQygI,EAAU,SAAWzgI,GAAQygI,EAAU,SACnDzgI,GAAQygI,EAAU,SAAWzgI,GAAQygI,EAAU,SAChDrf,EAASphH,CAAI,CACrB,CAOA,SAAS8gI,EAA8B9gI,EAAM,CACzC,OAAOA,IAASygI,EAAU,QAAUI,EAAoB7gI,CAAI,CAChE,CACA,IAAI+gI,GACH,SAAUA,EAAoB,CAC3BA,EAAmBA,EAAmB,YAAiB,CAAC,EAAI,cAC5DA,EAAmBA,EAAmB,aAAkB,CAAC,EAAI,eAC7DA,EAAmBA,EAAmB,eAAoB,CAAC,EAAI,iBAC/DA,EAAmBA,EAAmB,WAAgB,CAAC,EAAI,aAC3DA,EAAmBA,EAAmB,YAAiB,CAAC,EAAI,aAChE,GAAGA,IAAuBA,EAAqB,CAAA,EAAG,EAClD,IAAIC,GACH,SAAUA,EAAc,CAErBA,EAAaA,EAAa,OAAY,CAAC,EAAI,SAE3CA,EAAaA,EAAa,OAAY,CAAC,EAAI,SAE3CA,EAAaA,EAAa,UAAe,CAAC,EAAI,cAC/CA,EAAe97G,EAAQ,eAAiBA,EAAA,aAAuB,CAAA,EAAG,EAIrE,IAAI+7G,EAA+B,UAAY,CAC3C,SAASA,EAETC,EAUAC,EAEAnjF,EAAQ,CACJ,KAAK,WAAakjF,EAClB,KAAK,cAAgBC,EACrB,KAAK,OAASnjF,EAEd,KAAK,MAAQ+iF,EAAmB,YAEhC,KAAK,SAAW,EAOhB,KAAK,OAAS,EAEd,KAAK,UAAY,EAEjB,KAAK,OAAS,EAEd,KAAK,WAAaC,EAAa,MACvC,CAEI,OAAAC,EAAc,UAAU,YAAc,SAAUG,EAAY,CACxD,KAAK,WAAaA,EAClB,KAAK,MAAQL,EAAmB,YAChC,KAAK,OAAS,EACd,KAAK,UAAY,EACjB,KAAK,OAAS,EACd,KAAK,SAAW,CACnB,EAYDE,EAAc,UAAU,MAAQ,SAAUhhH,EAAKznB,EAAQ,CACnD,OAAQ,KAAK,MAAK,CACd,KAAKuoI,EAAmB,YACpB,OAAI9gH,EAAI,WAAWznB,CAAM,IAAMioI,EAAU,KACrC,KAAK,MAAQM,EAAmB,aAChC,KAAK,UAAY,EACV,KAAK,kBAAkB9gH,EAAKznB,EAAS,CAAC,IAEjD,KAAK,MAAQuoI,EAAmB,YACzB,KAAK,iBAAiB9gH,EAAKznB,CAAM,GAE5C,KAAKuoI,EAAmB,aACpB,OAAO,KAAK,kBAAkB9gH,EAAKznB,CAAM,EAE7C,KAAKuoI,EAAmB,eACpB,OAAO,KAAK,oBAAoB9gH,EAAKznB,CAAM,EAE/C,KAAKuoI,EAAmB,WACpB,OAAO,KAAK,gBAAgB9gH,EAAKznB,CAAM,EAE3C,KAAKuoI,EAAmB,YACpB,OAAO,KAAK,iBAAiB9gH,EAAKznB,CAAM,CAExD,CACK,EAUDyoI,EAAc,UAAU,kBAAoB,SAAUhhH,EAAKznB,EAAQ,CAC/D,OAAIA,GAAUynB,EAAI,OACP,IAENA,EAAI,WAAWznB,CAAM,EAAIkoI,KAAkBD,EAAU,SACtD,KAAK,MAAQM,EAAmB,WAChC,KAAK,UAAY,EACV,KAAK,gBAAgB9gH,EAAKznB,EAAS,CAAC,IAE/C,KAAK,MAAQuoI,EAAmB,eACzB,KAAK,oBAAoB9gH,EAAKznB,CAAM,EAC9C,EACDyoI,EAAc,UAAU,mBAAqB,SAAUhhH,EAAK5G,EAAO3f,EAAK8jC,EAAM,CAC1E,GAAInkB,IAAU3f,EAAK,CACf,IAAI2nI,EAAa3nI,EAAM2f,EACvB,KAAK,OACD,KAAK,OAAS,KAAK,IAAImkB,EAAM6jG,CAAU,EACnC,SAASphH,EAAI,OAAO5G,EAAOgoH,CAAU,EAAG7jG,CAAI,EACpD,KAAK,UAAY6jG,CAC7B,CACK,EAUDJ,EAAc,UAAU,gBAAkB,SAAUhhH,EAAKznB,EAAQ,CAE7D,QADI8oI,EAAW9oI,EACRA,EAASynB,EAAI,QAAQ,CACxB,IAAIuM,EAAOvM,EAAI,WAAWznB,CAAM,EAChC,GAAI4oH,EAAS50F,CAAI,GAAKo0G,EAAuBp0G,CAAI,EAC7Ch0B,GAAU,MAGV,aAAK,mBAAmBynB,EAAKqhH,EAAU9oI,EAAQ,EAAE,EAC1C,KAAK,kBAAkBg0B,EAAM,CAAC,CAErD,CACQ,YAAK,mBAAmBvM,EAAKqhH,EAAU9oI,EAAQ,EAAE,EAC1C,EACV,EAUDyoI,EAAc,UAAU,oBAAsB,SAAUhhH,EAAKznB,EAAQ,CAEjE,QADI8oI,EAAW9oI,EACRA,EAASynB,EAAI,QAAQ,CACxB,IAAIuM,EAAOvM,EAAI,WAAWznB,CAAM,EAChC,GAAI4oH,EAAS50F,CAAI,EACbh0B,GAAU,MAGV,aAAK,mBAAmBynB,EAAKqhH,EAAU9oI,EAAQ,EAAE,EAC1C,KAAK,kBAAkBg0B,EAAM,CAAC,CAErD,CACQ,YAAK,mBAAmBvM,EAAKqhH,EAAU9oI,EAAQ,EAAE,EAC1C,EACV,EAcDyoI,EAAc,UAAU,kBAAoB,SAAUM,EAAQ5rC,EAAgB,CAC1E,IAAI9hG,EAEJ,GAAI,KAAK,UAAY8hG,EACjB,OAAC9hG,EAAK,KAAK,UAAY,MAAQA,IAAO,QAAkBA,EAAG,2CAA2C,KAAK,QAAQ,EAC5G,EAGX,GAAI0tI,IAAWd,EAAU,KACrB,KAAK,UAAY,UAEZ,KAAK,aAAeO,EAAa,OACtC,MAAO,GAEX,YAAK,iBAAkBT,EAAsB,kBAAkB,KAAK,MAAM,EAAG,KAAK,QAAQ,EACtF,KAAK,SACDgB,IAAWd,EAAU,MACrB,KAAK,OAAO,wCAAyC,EAEzD,KAAK,OAAO,kCAAkC,KAAK,MAAM,GAEtD,KAAK,QACf,EAUDQ,EAAc,UAAU,iBAAmB,SAAUhhH,EAAKznB,EAAQ,CAK9D,QAJI0oI,EAAa,KAAK,WAClBv+H,EAAUu+H,EAAW,KAAK,SAAS,EAEnCM,GAAe7+H,EAAUg+H,EAAa,eAAiB,GACpDnoI,EAASynB,EAAI,OAAQznB,IAAU,KAAK,SAAU,CACjD,IAAIg0B,GAAOvM,EAAI,WAAWznB,CAAM,EAEhC,GADA,KAAK,UAAYipI,EAAgBP,EAAYv+H,EAAS,KAAK,UAAY,KAAK,IAAI,EAAG6+H,CAAW,EAAGh1G,EAAI,EACjG,KAAK,UAAY,EACjB,OAAO,KAAK,SAAW,GAElB,KAAK,aAAew0G,EAAa,YAE7BQ,IAAgB,GAEbV,EAA8Bt0G,EAAI,GACxC,EACA,KAAK,6BAA8B,EAK7C,GAHA7pB,EAAUu+H,EAAW,KAAK,SAAS,EACnCM,GAAe7+H,EAAUg+H,EAAa,eAAiB,GAEnDa,IAAgB,EAAG,CAEnB,GAAIh1G,KAASi0G,EAAU,KACnB,OAAO,KAAK,oBAAoB,KAAK,UAAWe,EAAa,KAAK,SAAW,KAAK,MAAM,EAGxF,KAAK,aAAeR,EAAa,SACjC,KAAK,OAAS,KAAK,UACnB,KAAK,UAAY,KAAK,OACtB,KAAK,OAAS,EAElC,CACA,CACQ,MAAO,EACV,EAMDC,EAAc,UAAU,6BAA+B,UAAY,CAC/D,IAAIptI,EACAm0C,EAAK,KAAMhyC,EAASgyC,EAAG,OAAQk5F,EAAal5F,EAAG,WAC/Cw5F,GAAeN,EAAWlrI,CAAM,EAAI2qI,EAAa,eAAiB,GACtE,YAAK,oBAAoB3qI,EAAQwrI,EAAa,KAAK,QAAQ,GAC1D3tI,EAAK,KAAK,UAAY,MAAQA,IAAO,QAAkBA,EAAG,wCAAyC,EAC7F,KAAK,QACf,EAUDotI,EAAc,UAAU,oBAAsB,SAAUjrI,EAAQwrI,EAAaE,EAAU,CACnF,IAAIR,EAAa,KAAK,WACtB,YAAK,cAAcM,IAAgB,EAC7BN,EAAWlrI,CAAM,EAAI,CAAC2qI,EAAa,aACnCO,EAAWlrI,EAAS,CAAC,EAAG0rI,CAAQ,EAClCF,IAAgB,GAEhB,KAAK,cAAcN,EAAWlrI,EAAS,CAAC,EAAG0rI,CAAQ,EAEhDA,CACV,EAQDT,EAAc,UAAU,IAAM,UAAY,CACtC,IAAIptI,EACJ,OAAQ,KAAK,MAAK,CACd,KAAKktI,EAAmB,YAEpB,OAAO,KAAK,SAAW,IAClB,KAAK,aAAeC,EAAa,WAC9B,KAAK,SAAW,KAAK,WACvB,KAAK,6BAA4B,EACjC,EAGV,KAAKD,EAAmB,eACpB,OAAO,KAAK,kBAAkB,EAAG,CAAC,EAEtC,KAAKA,EAAmB,WACpB,OAAO,KAAK,kBAAkB,EAAG,CAAC,EAEtC,KAAKA,EAAmB,aACpB,OAACltI,EAAK,KAAK,UAAY,MAAQA,IAAO,QAAkBA,EAAG,2CAA2C,KAAK,QAAQ,EAC5G,EAEX,KAAKktI,EAAmB,YAEpB,MAAO,EAEvB,CACK,EACME,CACX,IACA/7G,EAAA,cAAwB+7G,EAOxB,SAASU,EAAWT,EAAY,CAC5B,IAAIr/E,EAAM,GACN+kD,EAAU,IAAIq6B,EAAcC,EAAY,SAAUjhH,EAAK,CAAE,OAAQ4hC,MAAW0+E,EAAsB,eAAetgH,CAAG,CAAG,CAAE,EAC7H,OAAO,SAAwBA,EAAKmhH,EAAY,CAG5C,QAFIxgI,GAAY,EACZpI,GAAS,GACLA,GAASynB,EAAI,QAAQ,IAAKznB,EAAM,IAAM,GAAG,CAC7CqpD,GAAO5hC,EAAI,MAAMrf,GAAWpI,EAAM,EAClCouG,EAAQ,YAAYw6B,CAAU,EAC9B,IAAItxH,GAAM82F,EAAQ,MAAM3mF,EAExBznB,GAAS,CAAC,EACV,GAAIsX,GAAM,EAAG,CACTlP,GAAYpI,GAASouG,EAAQ,IAAK,EAClC,KAChB,CACYhmG,GAAYpI,GAASsX,GAErBtX,GAASsX,KAAQ,EAAIlP,GAAY,EAAIA,EACjD,CACQ,IAAI5K,GAAS6rD,EAAM5hC,EAAI,MAAMrf,EAAS,EAEtC,OAAAihD,EAAM,GACC7rD,EACV,CACL,CAWA,SAASyrI,EAAgBP,EAAYv+H,EAASi/H,EAASp1G,EAAM,CACzD,IAAIq1G,GAAel/H,EAAUg+H,EAAa,gBAAkB,EACxDmB,EAAan/H,EAAUg+H,EAAa,WAExC,GAAIkB,IAAgB,EAChB,OAAOC,IAAe,GAAKt1G,IAASs1G,EAAaF,EAAU,GAG/D,GAAIE,EAAY,CACZ,IAAIlsI,GAAQ42B,EAAOs1G,EACnB,OAAOlsI,GAAQ,GAAKA,IAASisI,EACvB,GACAX,EAAWU,EAAUhsI,EAAK,EAAI,CAC5C,CAKI,QAFI3G,GAAK2yI,EACLv1I,GAAK4C,GAAK4yI,EAAc,EACrB5yI,IAAM5C,IAAI,CACb,IAAI01I,GAAO9yI,GAAK5C,KAAQ,EACpB21I,GAASd,EAAWa,EAAG,EAC3B,GAAIC,GAASx1G,EACTv9B,GAAK8yI,GAAM,UAENC,GAASx1G,EACdngC,GAAK01I,GAAM,MAGX,QAAOb,EAAWa,GAAMF,CAAW,CAE/C,CACI,MAAO,EACX,CACA38G,EAAA,gBAA0Bu8G,EAC1B,IAAIQ,EAAcN,EAAWtB,EAAsB,OAAO,EACtD6B,EAAaP,EAAWrB,EAAqB,OAAO,EAQxD,SAAS6B,EAAWliH,EAAKvqB,EAAM,CAC3B,OAAIA,IAAS,SAAUA,EAAOsrI,EAAa,QACpCiB,EAAYhiH,EAAKvqB,CAAI,CAChC,CACAwvB,EAAA,WAAqBi9G,EAOrB,SAASC,EAAoBniH,EAAK,CAC9B,OAAOgiH,EAAYhiH,EAAK+gH,EAAa,SAAS,CAClD,CACA97G,EAAA,oBAA8Bk9G,EAO9B,SAASC,EAAiBpiH,EAAK,CAC3B,OAAOgiH,EAAYhiH,EAAK+gH,EAAa,MAAM,CAC/C,CACA97G,EAAA,iBAA2Bm9G,EAO3B,SAASC,EAAUriH,EAAK,CACpB,OAAOiiH,EAAWjiH,EAAK+gH,EAAa,MAAM,CAC9C,CACA97G,EAAA,UAAoBo9G,yICrhBpB,OAAO,eAAcp9G,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAA,UAAoB,OACpB,IAAIq9G,EAA+CphH,cAAA,EAC/Cs/G,GACH,SAAUA,EAAW,CAClBA,EAAUA,EAAU,IAAS,CAAC,EAAI,MAClCA,EAAUA,EAAU,QAAa,EAAE,EAAI,UACvCA,EAAUA,EAAU,SAAc,EAAE,EAAI,WACxCA,EAAUA,EAAU,eAAoB,EAAE,EAAI,iBAC9CA,EAAUA,EAAU,MAAW,EAAE,EAAI,QACrCA,EAAUA,EAAU,gBAAqB,EAAE,EAAI,kBAC/CA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,IAAS,EAAE,EAAI,MACnCA,EAAUA,EAAU,YAAiB,EAAE,EAAI,cAC3CA,EAAUA,EAAU,YAAiB,EAAE,EAAI,cAC3CA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,MAAW,EAAE,EAAI,QACrCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,KAAU,EAAE,EAAI,OACpCA,EAAUA,EAAU,GAAQ,EAAE,EAAI,KAClCA,EAAUA,EAAU,GAAQ,EAAE,EAAI,KAClCA,EAAUA,EAAU,GAAQ,EAAE,EAAI,KAClCA,EAAUA,EAAU,aAAkB,EAAE,EAAI,eAC5CA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,OAAY,GAAG,EAAI,SACvCA,EAAUA,EAAU,OAAY,EAAE,EAAI,SACtCA,EAAUA,EAAU,OAAY,GAAG,EAAI,SACvCA,EAAUA,EAAU,OAAY,GAAG,EAAI,SACvCA,EAAUA,EAAU,qBAA0B,EAAE,EAAI,sBACxD,GAAGA,IAAcA,EAAY,CAAA,EAAG,EAEhC,IAAI+B,GACH,SAAUA,EAAO,CACdA,EAAMA,EAAM,KAAU,CAAC,EAAI,OAC3BA,EAAMA,EAAM,cAAmB,CAAC,EAAI,gBACpCA,EAAMA,EAAM,UAAe,CAAC,EAAI,YAChCA,EAAMA,EAAM,iBAAsB,CAAC,EAAI,mBACvCA,EAAMA,EAAM,qBAA0B,CAAC,EAAI,uBAC3CA,EAAMA,EAAM,iBAAsB,CAAC,EAAI,mBACvCA,EAAMA,EAAM,oBAAyB,CAAC,EAAI,sBAE1CA,EAAMA,EAAM,oBAAyB,CAAC,EAAI,sBAC1CA,EAAMA,EAAM,gBAAqB,CAAC,EAAI,kBACtCA,EAAMA,EAAM,mBAAwB,EAAE,EAAI,qBAC1CA,EAAMA,EAAM,qBAA0B,EAAE,EAAI,uBAC5CA,EAAMA,EAAM,mBAAwB,EAAE,EAAI,qBAC1CA,EAAMA,EAAM,mBAAwB,EAAE,EAAI,qBAC1CA,EAAMA,EAAM,mBAAwB,EAAE,EAAI,qBAE1CA,EAAMA,EAAM,kBAAuB,EAAE,EAAI,oBACzCA,EAAMA,EAAM,cAAmB,EAAE,EAAI,gBAErCA,EAAMA,EAAM,wBAA6B,EAAE,EAAI,0BAE/CA,EAAMA,EAAM,cAAmB,EAAE,EAAI,gBACrCA,EAAMA,EAAM,cAAmB,EAAE,EAAI,gBACrCA,EAAMA,EAAM,iBAAsB,EAAE,EAAI,mBACxCA,EAAMA,EAAM,cAAmB,EAAE,EAAI,gBAErCA,EAAMA,EAAM,eAAoB,EAAE,EAAI,iBACtCA,EAAMA,EAAM,qBAA0B,EAAE,EAAI,uBAC5CA,EAAMA,EAAM,aAAkB,EAAE,EAAI,eACpCA,EAAMA,EAAM,aAAkB,EAAE,EAAI,eACpCA,EAAMA,EAAM,oBAAyB,EAAE,EAAI,sBAC3CA,EAAMA,EAAM,cAAmB,EAAE,EAAI,gBACrCA,EAAMA,EAAM,gBAAqB,EAAE,EAAI,kBACvCA,EAAMA,EAAM,YAAiB,EAAE,EAAI,aACvC,GAAGA,IAAUA,EAAQ,CAAA,EAAG,EACxB,SAASC,EAAaxnJ,EAAG,CACrB,OAAQA,IAAMwlJ,EAAU,OACpBxlJ,IAAMwlJ,EAAU,SAChBxlJ,IAAMwlJ,EAAU,KAChBxlJ,IAAMwlJ,EAAU,UAChBxlJ,IAAMwlJ,EAAU,cACxB,CACA,SAASiC,EAAkBznJ,EAAG,CAC1B,OAAOA,IAAMwlJ,EAAU,OAASxlJ,IAAMwlJ,EAAU,IAAMgC,EAAaxnJ,CAAC,CACxE,CACA,SAASmmI,EAASnmI,EAAG,CACjB,OAAOA,GAAKwlJ,EAAU,MAAQxlJ,GAAKwlJ,EAAU,IACjD,CACA,SAASkC,EAAa1nJ,EAAG,CACrB,OAASA,GAAKwlJ,EAAU,QAAUxlJ,GAAKwlJ,EAAU,QAC5CxlJ,GAAKwlJ,EAAU,QAAUxlJ,GAAKwlJ,EAAU,MACjD,CACA,SAAS7e,EAAW3mI,EAAG,CACnB,OAASA,GAAKwlJ,EAAU,QAAUxlJ,GAAKwlJ,EAAU,QAC5CxlJ,GAAKwlJ,EAAU,QAAUxlJ,GAAKwlJ,EAAU,MACjD,CACA,IAAImC,GACH,SAAUA,EAAW,CAClBA,EAAUA,EAAU,QAAa,CAAC,EAAI,UACtCA,EAAUA,EAAU,SAAc,CAAC,EAAI,WACvCA,EAAUA,EAAU,OAAY,CAAC,EAAI,SACrCA,EAAUA,EAAU,OAAY,CAAC,EAAI,WACtCA,EAAY19G,EAAQ,YAAcA,EAAA,UAAoB,CAAA,EAAG,EAO5D,IAAI29G,EAAY,CACZ,MAAO,IAAI,WAAW,CAAC,GAAM,GAAM,GAAM,GAAM,GAAM,EAAI,CAAC,EAC1D,SAAU,IAAI,WAAW,CAAC,GAAM,GAAM,EAAI,CAAC,EAC3C,WAAY,IAAI,WAAW,CAAC,GAAM,GAAM,EAAI,CAAC,EAC7C,UAAW,IAAI,WAAW,CAAC,GAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAI,CAAC,EAC1E,SAAU,IAAI,WAAW,CAAC,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAI,CAAC,EACnE,SAAU,IAAI,WAAW,CAAC,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAI,CAAC,CACtE,EACGC,EAA2B,UAAY,CACvC,SAASA,EAAUjvI,EAAIkvI,EAAK,CACxB,IAAI/6F,EAAKn0C,EAAG,QAASmvI,EAAUh7F,IAAO,OAAS,GAAQA,EAAI8qB,EAAKj/D,EAAG,eAAgBovI,EAAiBnwE,IAAO,OAAS,GAAOA,EAC3H,KAAK,IAAMiwE,EAEX,KAAK,MAAQP,EAAM,KAEnB,KAAK,OAAS,GAEd,KAAK,aAAe,EAEpB,KAAK,MAAQ,EAEb,KAAK,UAAYA,EAAM,KAEvB,KAAK,UAAY,GAEjB,KAAK,QAAU,GAEf,KAAK,OAAS,EACd,KAAK,gBAAkB,OACvB,KAAK,cAAgB,EACrB,KAAK,UAAY,EACjB,KAAK,YAAc,EAEnB,KAAK,aAAe,EACpB,KAAK,aAAe,EACpB,KAAK,QAAUQ,EACf,KAAK,eAAiBC,EACtB,KAAK,WAAaD,EAAUT,EAAY,cAAgBA,EAAY,cAC5E,CACI,OAAAO,EAAU,UAAU,MAAQ,UAAY,CACpC,KAAK,MAAQN,EAAM,KACnB,KAAK,OAAS,GACd,KAAK,aAAe,EACpB,KAAK,MAAQ,EACb,KAAK,UAAYA,EAAM,KACvB,KAAK,gBAAkB,OACvB,KAAK,QAAU,GACf,KAAK,OAAS,CACjB,EACDM,EAAU,UAAU,MAAQ,SAAU5hC,EAAO,CACzC,KAAK,QAAU,KAAK,OAAO,OAC3B,KAAK,OAASA,EACd,KAAK,MAAO,CACf,EACD4hC,EAAU,UAAU,IAAM,UAAY,CAC9B,KAAK,SACL,KAAK,OAAQ,CACpB,EACDA,EAAU,UAAU,MAAQ,UAAY,CACpC,KAAK,QAAU,EAClB,EACDA,EAAU,UAAU,OAAS,UAAY,CACrC,KAAK,QAAU,GACX,KAAK,MAAQ,KAAK,OAAO,OAAS,KAAK,QACvC,KAAK,MAAO,CAEnB,EAIDA,EAAU,UAAU,SAAW,UAAY,CACvC,OAAO,KAAK,KACf,EAIDA,EAAU,UAAU,gBAAkB,UAAY,CAC9C,OAAO,KAAK,YACf,EACDA,EAAU,UAAU,UAAY,SAAU7nJ,EAAG,CACrCA,IAAMwlJ,EAAU,IACf,CAAC,KAAK,gBAAkB,KAAK,cAAcA,EAAU,EAAE,GACpD,KAAK,MAAQ,KAAK,cAClB,KAAK,IAAI,OAAO,KAAK,aAAc,KAAK,KAAK,EAEjD,KAAK,MAAQ+B,EAAM,cACnB,KAAK,aAAe,KAAK,OAEpB,KAAK,gBAAkBvnJ,IAAMwlJ,EAAU,MAC5C,KAAK,MAAQ+B,EAAM,aAE1B,EACDM,EAAU,UAAU,0BAA4B,SAAU7nJ,EAAG,CACzD,IAAIioJ,EAAQ,KAAK,gBAAkB,KAAK,gBAAgB,OACpDC,EAAUD,EAENR,EAAkBznJ,CAAC,GAElBA,EAAI,MAAU,KAAK,gBAAgB,KAAK,aAAa,EAC9D,GAAI,CAACkoJ,EACD,KAAK,UAAY,WAEZ,CAACD,EAAO,CACb,KAAK,gBACL,MACZ,CACQ,KAAK,cAAgB,EACrB,KAAK,MAAQV,EAAM,UACnB,KAAK,eAAevnJ,CAAC,CACxB,EAED6nJ,EAAU,UAAU,kBAAoB,SAAU7nJ,EAAG,CACjD,GAAI,KAAK,gBAAkB,KAAK,gBAAgB,OAAQ,CACpD,GAAIA,IAAMwlJ,EAAU,IAAMgC,EAAaxnJ,CAAC,EAAG,CACvC,IAAImoJ,EAAY,KAAK,MAAQ,KAAK,gBAAgB,OAClD,GAAI,KAAK,aAAeA,EAAW,CAE/B,IAAIC,EAAc,KAAK,MACvB,KAAK,MAAQD,EACb,KAAK,IAAI,OAAO,KAAK,aAAcA,CAAS,EAC5C,KAAK,MAAQC,CACjC,CACgB,KAAK,UAAY,GACjB,KAAK,aAAeD,EAAY,EAChC,KAAK,sBAAsBnoJ,CAAC,EAC5B,MAChB,CACY,KAAK,cAAgB,CACjC,EACaA,EAAI,MAAU,KAAK,gBAAgB,KAAK,aAAa,EACtD,KAAK,eAAiB,EAEjB,KAAK,gBAAkB,EACxB,KAAK,kBAAoB4nJ,EAAU,SAE/B,KAAK,gBAAkB5nJ,IAAMwlJ,EAAU,MACvC,KAAK,MAAQ+B,EAAM,cAGlB,KAAK,cAAc/B,EAAU,EAAE,IAEpC,KAAK,cAAgB,GAKzB,KAAK,cAAgB,EAAOxlJ,IAAMwlJ,EAAU,GAEnD,EACDqC,EAAU,UAAU,mBAAqB,SAAU7nJ,EAAG,CAC9CA,IAAM4nJ,EAAU,MAAM,KAAK,aAAa,EACpC,EAAE,KAAK,gBAAkBA,EAAU,MAAM,SACzC,KAAK,MAAQL,EAAM,cACnB,KAAK,gBAAkBK,EAAU,SACjC,KAAK,cAAgB,EACrB,KAAK,aAAe,KAAK,MAAQ,IAIrC,KAAK,cAAgB,EACrB,KAAK,MAAQL,EAAM,cACnB,KAAK,mBAAmBvnJ,CAAC,EAEhC,EAOD6nJ,EAAU,UAAU,cAAgB,SAAU7nJ,EAAG,CAC7C,KAAO,EAAE,KAAK,MAAQ,KAAK,OAAO,OAAS,KAAK,QAC5C,GAAI,KAAK,OAAO,WAAW,KAAK,MAAQ,KAAK,MAAM,IAAMA,EACrD,MAAO,GASf,YAAK,MAAQ,KAAK,OAAO,OAAS,KAAK,OAAS,EACzC,EACV,EASD6nJ,EAAU,UAAU,mBAAqB,SAAU7nJ,EAAG,CAC9CA,IAAM,KAAK,gBAAgB,KAAK,aAAa,EACzC,EAAE,KAAK,gBAAkB,KAAK,gBAAgB,SAC1C,KAAK,kBAAoB4nJ,EAAU,SACnC,KAAK,IAAI,QAAQ,KAAK,aAAc,KAAK,MAAO,CAAC,EAGjD,KAAK,IAAI,UAAU,KAAK,aAAc,KAAK,MAAO,CAAC,EAEvD,KAAK,cAAgB,EACrB,KAAK,aAAe,KAAK,MAAQ,EACjC,KAAK,MAAQL,EAAM,MAGlB,KAAK,gBAAkB,EAExB,KAAK,cAAc,KAAK,gBAAgB,CAAC,CAAC,IAC1C,KAAK,cAAgB,GAGpBvnJ,IAAM,KAAK,gBAAgB,KAAK,cAAgB,CAAC,IAEtD,KAAK,cAAgB,EAE5B,EAOD6nJ,EAAU,UAAU,eAAiB,SAAU7nJ,EAAG,CAC9C,OAAO,KAAK,QAAU,CAACynJ,EAAkBznJ,CAAC,EAAI0nJ,EAAa1nJ,CAAC,CAC/D,EACD6nJ,EAAU,UAAU,aAAe,SAAU7jG,EAAUzmC,EAAQ,CAC3D,KAAK,UAAY,GACjB,KAAK,gBAAkBymC,EACvB,KAAK,cAAgBzmC,EACrB,KAAK,MAAQgqI,EAAM,oBACtB,EACDM,EAAU,UAAU,mBAAqB,SAAU7nJ,EAAG,CAClD,GAAIA,IAAMwlJ,EAAU,gBAChB,KAAK,MAAQ+B,EAAM,kBACnB,KAAK,aAAe,KAAK,MAAQ,UAE5BvnJ,IAAMwlJ,EAAU,aACrB,KAAK,MAAQ+B,EAAM,wBACnB,KAAK,aAAe,KAAK,MAAQ,UAE5B,KAAK,eAAevnJ,CAAC,EAAG,CAC7B,IAAIqoJ,EAAQroJ,EAAI,GAChB,KAAK,aAAe,KAAK,MACrB,CAAC,KAAK,SAAWqoJ,IAAUT,EAAU,SAAS,CAAC,EAC/C,KAAK,aAAaA,EAAU,SAAU,CAAC,EAGvC,KAAK,MACD,CAAC,KAAK,SAAWS,IAAUT,EAAU,UAAU,CAAC,EAC1CL,EAAM,eACNA,EAAM,SAEhC,MACiBvnJ,IAAMwlJ,EAAU,MACrB,KAAK,MAAQ+B,EAAM,sBAGnB,KAAK,MAAQA,EAAM,KACnB,KAAK,UAAUvnJ,CAAC,EAEvB,EACD6nJ,EAAU,UAAU,eAAiB,SAAU7nJ,EAAG,CAC1CynJ,EAAkBznJ,CAAC,IACnB,KAAK,IAAI,cAAc,KAAK,aAAc,KAAK,KAAK,EACpD,KAAK,aAAe,GACpB,KAAK,MAAQunJ,EAAM,oBACnB,KAAK,yBAAyBvnJ,CAAC,EAEtC,EACD6nJ,EAAU,UAAU,0BAA4B,SAAU7nJ,EAAG,CACrDwnJ,EAAaxnJ,CAAC,IAGTA,IAAMwlJ,EAAU,GACrB,KAAK,MAAQ+B,EAAM,MAGnB,KAAK,MAAQ,KAAK,eAAevnJ,CAAC,EAC5BunJ,EAAM,iBACNA,EAAM,iBACZ,KAAK,aAAe,KAAK,OAEhC,EACDM,EAAU,UAAU,sBAAwB,SAAU7nJ,EAAG,EACjDA,IAAMwlJ,EAAU,IAAMgC,EAAaxnJ,CAAC,KACpC,KAAK,IAAI,WAAW,KAAK,aAAc,KAAK,KAAK,EACjD,KAAK,aAAe,GACpB,KAAK,MAAQunJ,EAAM,oBACnB,KAAK,yBAAyBvnJ,CAAC,EAEtC,EACD6nJ,EAAU,UAAU,yBAA2B,SAAU7nJ,EAAG,EAEpDA,IAAMwlJ,EAAU,IAAM,KAAK,cAAcA,EAAU,EAAE,KACrD,KAAK,MAAQ+B,EAAM,KACnB,KAAK,UAAYA,EAAM,KACvB,KAAK,aAAe,KAAK,MAAQ,EAExC,EACDM,EAAU,UAAU,yBAA2B,SAAU7nJ,EAAG,CACpDA,IAAMwlJ,EAAU,IAChB,KAAK,IAAI,aAAa,KAAK,KAAK,EAC5B,KAAK,WACL,KAAK,MAAQ+B,EAAM,aACnB,KAAK,cAAgB,GAGrB,KAAK,MAAQA,EAAM,KAEvB,KAAK,UAAY,KAAK,MACtB,KAAK,aAAe,KAAK,MAAQ,GAE5BvnJ,IAAMwlJ,EAAU,MACrB,KAAK,MAAQ+B,EAAM,iBAEbC,EAAaxnJ,CAAC,IACpB,KAAK,MAAQunJ,EAAM,gBACnB,KAAK,aAAe,KAAK,MAEhC,EACDM,EAAU,UAAU,sBAAwB,SAAU7nJ,EAAG,CACjDA,IAAMwlJ,EAAU,IAChB,KAAK,IAAI,iBAAiB,KAAK,KAAK,EACpC,KAAK,MAAQ+B,EAAM,KACnB,KAAK,UAAYA,EAAM,KACvB,KAAK,aAAe,KAAK,MAAQ,EACjC,KAAK,UAAY,IAEXC,EAAaxnJ,CAAC,IACpB,KAAK,MAAQunJ,EAAM,oBACnB,KAAK,yBAAyBvnJ,CAAC,EAEtC,EACD6nJ,EAAU,UAAU,qBAAuB,SAAU7nJ,EAAG,EAChDA,IAAMwlJ,EAAU,IAAMiC,EAAkBznJ,CAAC,KACzC,KAAK,IAAI,aAAa,KAAK,aAAc,KAAK,KAAK,EACnD,KAAK,aAAe,GACpB,KAAK,MAAQunJ,EAAM,mBACnB,KAAK,wBAAwBvnJ,CAAC,EAErC,EACD6nJ,EAAU,UAAU,wBAA0B,SAAU7nJ,EAAG,CACnDA,IAAMwlJ,EAAU,GAChB,KAAK,MAAQ+B,EAAM,qBAEdvnJ,IAAMwlJ,EAAU,OAASxlJ,IAAMwlJ,EAAU,IAC9C,KAAK,IAAI,YAAYmC,EAAU,QAAS,KAAK,KAAK,EAClD,KAAK,MAAQJ,EAAM,oBACnB,KAAK,yBAAyBvnJ,CAAC,GAEzBwnJ,EAAaxnJ,CAAC,IACpB,KAAK,IAAI,YAAY2nJ,EAAU,QAAS,KAAK,KAAK,EAClD,KAAK,MAAQJ,EAAM,gBACnB,KAAK,aAAe,KAAK,MAEhC,EACDM,EAAU,UAAU,0BAA4B,SAAU7nJ,EAAG,CACrDA,IAAMwlJ,EAAU,aAChB,KAAK,MAAQ+B,EAAM,mBACnB,KAAK,aAAe,KAAK,MAAQ,GAE5BvnJ,IAAMwlJ,EAAU,aACrB,KAAK,MAAQ+B,EAAM,mBACnB,KAAK,aAAe,KAAK,MAAQ,GAE3BC,EAAaxnJ,CAAC,IACpB,KAAK,aAAe,KAAK,MACzB,KAAK,MAAQunJ,EAAM,mBACnB,KAAK,8BAA8BvnJ,CAAC,EAE3C,EACD6nJ,EAAU,UAAU,uBAAyB,SAAU7nJ,EAAGsoJ,EAAO,CACzDtoJ,IAAMsoJ,GACL,CAAC,KAAK,gBAAkB,KAAK,cAAcA,CAAK,GACjD,KAAK,IAAI,aAAa,KAAK,aAAc,KAAK,KAAK,EACnD,KAAK,aAAe,GACpB,KAAK,IAAI,YAAYA,IAAU9C,EAAU,YACnCmC,EAAU,OACVA,EAAU,OAAQ,KAAK,KAAK,EAClC,KAAK,MAAQJ,EAAM,qBAEd,KAAK,gBAAkBvnJ,IAAMwlJ,EAAU,MAC5C,KAAK,UAAY,KAAK,MACtB,KAAK,MAAQ+B,EAAM,aAE1B,EACDM,EAAU,UAAU,kCAAoC,SAAU7nJ,EAAG,CACjE,KAAK,uBAAuBA,EAAGwlJ,EAAU,WAAW,CACvD,EACDqC,EAAU,UAAU,kCAAoC,SAAU7nJ,EAAG,CACjE,KAAK,uBAAuBA,EAAGwlJ,EAAU,WAAW,CACvD,EACDqC,EAAU,UAAU,8BAAgC,SAAU7nJ,EAAG,CACzDwnJ,EAAaxnJ,CAAC,GAAKA,IAAMwlJ,EAAU,IACnC,KAAK,IAAI,aAAa,KAAK,aAAc,KAAK,KAAK,EACnD,KAAK,aAAe,GACpB,KAAK,IAAI,YAAYmC,EAAU,SAAU,KAAK,KAAK,EACnD,KAAK,MAAQJ,EAAM,oBACnB,KAAK,yBAAyBvnJ,CAAC,GAE1B,KAAK,gBAAkBA,IAAMwlJ,EAAU,MAC5C,KAAK,UAAY,KAAK,MACtB,KAAK,MAAQ+B,EAAM,aAE1B,EACDM,EAAU,UAAU,uBAAyB,SAAU7nJ,EAAG,CAClDA,IAAMwlJ,EAAU,sBAChB,KAAK,MAAQ+B,EAAM,cACnB,KAAK,cAAgB,GAGrB,KAAK,MACDvnJ,IAAMwlJ,EAAU,KACV+B,EAAM,cACNA,EAAM,aAEvB,EACDM,EAAU,UAAU,mBAAqB,SAAU7nJ,EAAG,EAC9CA,IAAMwlJ,EAAU,IAAM,KAAK,cAAcA,EAAU,EAAE,KACrD,KAAK,IAAI,cAAc,KAAK,aAAc,KAAK,KAAK,EACpD,KAAK,MAAQ+B,EAAM,KACnB,KAAK,aAAe,KAAK,MAAQ,EAExC,EACDM,EAAU,UAAU,6BAA+B,SAAU7nJ,EAAG,EACxDA,IAAMwlJ,EAAU,IAAM,KAAK,cAAcA,EAAU,EAAE,KACrD,KAAK,IAAI,wBAAwB,KAAK,aAAc,KAAK,KAAK,EAC9D,KAAK,MAAQ+B,EAAM,KACnB,KAAK,aAAe,KAAK,MAAQ,EAExC,EACDM,EAAU,UAAU,mBAAqB,SAAU7nJ,EAAG,CAC9CA,IAAMwlJ,EAAU,MAChB,KAAK,MAAQ+B,EAAM,cACnB,KAAK,gBAAkBK,EAAU,WAEjC,KAAK,cAAgB,EACrB,KAAK,aAAe,KAAK,MAAQ,GAGjC,KAAK,MAAQL,EAAM,aAE1B,EACDM,EAAU,UAAU,sBAAwB,SAAU7nJ,EAAG,EACjDA,IAAMwlJ,EAAU,IAAM,KAAK,cAAcA,EAAU,EAAE,KACrD,KAAK,IAAI,UAAU,KAAK,aAAc,KAAK,MAAO,CAAC,EACnD,KAAK,MAAQ+B,EAAM,KACnB,KAAK,aAAe,KAAK,MAAQ,EAExC,EACDM,EAAU,UAAU,oBAAsB,SAAU7nJ,EAAG,CACnD,IAAIqoJ,EAAQroJ,EAAI,GACZqoJ,IAAUT,EAAU,UAAU,CAAC,EAC/B,KAAK,aAAaA,EAAU,UAAW,CAAC,EAEnCS,IAAUT,EAAU,SAAS,CAAC,EACnC,KAAK,aAAaA,EAAU,SAAU,CAAC,GAGvC,KAAK,MAAQL,EAAM,UACnB,KAAK,eAAevnJ,CAAC,EAE5B,EACD6nJ,EAAU,UAAU,kBAAoB,SAAU7nJ,EAAG,CAEjD,KAAK,aAAe,EACpB,KAAK,aAAe,EAChBA,IAAMwlJ,EAAU,OAChB,KAAK,MAAQ+B,EAAM,oBAEdvnJ,IAAMwlJ,EAAU,MAIrB,KAAK,UAAY,EACjB,KAAK,YAAc,KAAK,WAAW,CAAC,EACpC,KAAK,MAAQ+B,EAAM,cACnB,KAAK,mBAAmBvnJ,CAAC,EAEhC,EACD6nJ,EAAU,UAAU,mBAAqB,SAAU7nJ,EAAG,CAGlD,GAFA,KAAK,cAAgB,EACrB,KAAK,aAAgBsnJ,EAAY,iBAAiB,KAAK,WAAY,KAAK,YAAa,KAAK,UAAY,EAAGtnJ,CAAC,EACtG,KAAK,UAAY,EAAG,CACpB,KAAK,gBAAiB,EACtB,KAAK,QACL,MACZ,CACQ,KAAK,YAAc,KAAK,WAAW,KAAK,SAAS,EACjD,IAAIuoJ,EAAS,KAAK,YAAcjB,EAAY,aAAa,aAEzD,GAAIiB,EAAQ,CAER,IAAIhC,GAAegC,GAAU,IAAM,EAEnC,GAAI,CAAC,KAAK,kBAAiB,GAAMvoJ,IAAMwlJ,EAAU,KAC7C,KAAK,WAAae,MAEjB,CAED,IAAIiC,EAAc,KAAK,MAAQ,KAAK,aAAe,EAC/CA,EAAc,KAAK,cACnB,KAAK,YAAY,KAAK,aAAcA,CAAW,EAGnD,KAAK,aAAe,KAAK,UACzB,KAAK,WAAajC,EAClB,KAAK,aAAe,EACpB,KAAK,aAAe,KAAK,MAAQ,EAC7BA,IAAgB,GAChB,KAAK,gBAAiB,CAE1C,CACA,CACK,EACDsB,EAAU,UAAU,gBAAkB,UAAY,CAE9C,GADA,KAAK,MAAQ,KAAK,UACd,KAAK,eAAiB,EAG1B,KAAItB,GAAe,KAAK,WAAW,KAAK,YAAY,EAAIe,EAAY,aAAa,eAC7E,GACJ,OAAQf,EAAW,CACf,IAAK,GAAG,CACJ,KAAK,cAAc,KAAK,WAAW,KAAK,YAAY,EAChD,CAACe,EAAY,aAAa,YAAY,EAC1C,KAChB,CACY,IAAK,GAAG,CACJ,KAAK,cAAc,KAAK,WAAW,KAAK,aAAe,CAAC,CAAC,EACzD,KAChB,CACY,IAAK,GACD,KAAK,cAAc,KAAK,WAAW,KAAK,aAAe,CAAC,CAAC,EACzD,KAAK,cAAc,KAAK,WAAW,KAAK,aAAe,CAAC,CAAC,CAEzE,EACK,EACDO,EAAU,UAAU,yBAA2B,SAAU7nJ,EAAG,EACnDA,EAAI,MAAUwlJ,EAAU,QACzB,KAAK,eACL,KAAK,MAAQ+B,EAAM,cAGnB,KAAK,MAAQA,EAAM,gBACnB,KAAK,qBAAqBvnJ,CAAC,EAElC,EACD6nJ,EAAU,UAAU,kBAAoB,SAAUjoC,EAAQ,CACtD,IAAI4oC,EAAc,KAAK,MAAQ,KAAK,aAAe,EAC/CC,EAAcD,EAAc,GAAI,EAAO,KAAK,QAAUjB,EAAM,aAC5DkB,IAAgB,KAAK,QAEjBD,EAAc,KAAK,cACnB,KAAK,YAAY,KAAK,aAAcA,CAAW,EAEnD,KAAK,aAAe,KAAK,MAAQ,OAAO5oC,CAAM,EAC9C,KAAK,iBAAkB0nC,EAAY,kBAAkB,KAAK,YAAY,CAAC,GAE3E,KAAK,MAAQ,KAAK,SACrB,EACDO,EAAU,UAAU,qBAAuB,SAAU7nJ,EAAG,CAChDA,IAAMwlJ,EAAU,KAChB,KAAK,kBAAkB,EAAI,EAEtBrf,EAASnmI,CAAC,GACf,KAAK,aAAe,KAAK,aAAe,IAAMA,EAAIwlJ,EAAU,MAC5D,KAAK,iBAGD,KAAK,oBACL,KAAK,kBAAkB,EAAK,EAG5B,KAAK,MAAQ,KAAK,UAEtB,KAAK,QAEZ,EACDqC,EAAU,UAAU,iBAAmB,SAAU7nJ,EAAG,CAC5CA,IAAMwlJ,EAAU,KAChB,KAAK,kBAAkB,EAAI,EAEtBrf,EAASnmI,CAAC,GACf,KAAK,aAAe,KAAK,aAAe,IAAMA,EAAIwlJ,EAAU,MAC5D,KAAK,gBAEA7e,EAAW3mI,CAAC,GACjB,KAAK,aACD,KAAK,aAAe,KAAOA,EAAI,IAAQwlJ,EAAU,OAAS,IAC9D,KAAK,iBAGD,KAAK,oBACL,KAAK,kBAAkB,EAAK,EAG5B,KAAK,MAAQ,KAAK,UAEtB,KAAK,QAEZ,EACDqC,EAAU,UAAU,kBAAoB,UAAY,CAChD,MAAQ,CAAC,KAAK,UACT,KAAK,YAAcN,EAAM,MACtB,KAAK,YAAcA,EAAM,aACpC,EAIDM,EAAU,UAAU,QAAU,UAAY,CAElC,KAAK,SAAW,KAAK,eAAiB,KAAK,QACvC,KAAK,QAAUN,EAAM,MACpB,KAAK,QAAUA,EAAM,cAAgB,KAAK,gBAAkB,GAC7D,KAAK,IAAI,OAAO,KAAK,aAAc,KAAK,KAAK,EAC7C,KAAK,aAAe,KAAK,QAEpB,KAAK,QAAUA,EAAM,oBAC1B,KAAK,QAAUA,EAAM,oBACrB,KAAK,QAAUA,EAAM,sBACrB,KAAK,IAAI,aAAa,KAAK,aAAc,KAAK,KAAK,EACnD,KAAK,aAAe,KAAK,OAGpC,EACDM,EAAU,UAAU,eAAiB,UAAY,CAC7C,OAAO,KAAK,MAAQ,KAAK,OAAO,OAAS,KAAK,QAAU,KAAK,OAChE,EAMDA,EAAU,UAAU,MAAQ,UAAY,CACpC,KAAO,KAAK,kBAAkB,CAC1B,IAAI7nJ,EAAI,KAAK,OAAO,WAAW,KAAK,MAAQ,KAAK,MAAM,EACvD,OAAQ,KAAK,MAAK,CACd,KAAKunJ,EAAM,KAAM,CACb,KAAK,UAAUvnJ,CAAC,EAChB,KACpB,CACgB,KAAKunJ,EAAM,qBAAsB,CAC7B,KAAK,0BAA0BvnJ,CAAC,EAChC,KACpB,CACgB,KAAKunJ,EAAM,aAAc,CACrB,KAAK,kBAAkBvnJ,CAAC,EACxB,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,mBAAoB,CAC3B,KAAK,kCAAkCvnJ,CAAC,EACxC,KACpB,CACgB,KAAKunJ,EAAM,gBAAiB,CACxB,KAAK,qBAAqBvnJ,CAAC,EAC3B,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,iBAAkB,CACzB,KAAK,sBAAsBvnJ,CAAC,EAC5B,KACpB,CACgB,KAAKunJ,EAAM,oBAAqB,CAC5B,KAAK,yBAAyBvnJ,CAAC,EAC/B,KACpB,CACgB,KAAKunJ,EAAM,UAAW,CAClB,KAAK,eAAevnJ,CAAC,EACrB,KACpB,CACgB,KAAKunJ,EAAM,iBAAkB,CACzB,KAAK,sBAAsBvnJ,CAAC,EAC5B,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,mBAAoB,CAC3B,KAAK,wBAAwBvnJ,CAAC,EAC9B,KACpB,CACgB,KAAKunJ,EAAM,mBAAoB,CAC3B,KAAK,kCAAkCvnJ,CAAC,EACxC,KACpB,CACgB,KAAKunJ,EAAM,qBAAsB,CAC7B,KAAK,0BAA0BvnJ,CAAC,EAChC,KACpB,CACgB,KAAKunJ,EAAM,qBAAsB,CAC7B,KAAK,0BAA0BvnJ,CAAC,EAChC,KACpB,CACgB,KAAKunJ,EAAM,oBAAqB,CAC5B,KAAK,yBAAyBvnJ,CAAC,EAC/B,KACpB,CACgB,KAAKunJ,EAAM,eAAgB,CACvB,KAAK,oBAAoBvnJ,CAAC,EAC1B,KACpB,CACgB,KAAKunJ,EAAM,mBAAoB,CAC3B,KAAK,8BAA8BvnJ,CAAC,EACpC,KACpB,CACgB,KAAKunJ,EAAM,iBAAkB,CACzB,KAAK,sBAAsBvnJ,CAAC,EAC5B,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,kBAAmB,CAC1B,KAAK,uBAAuBvnJ,CAAC,EAC7B,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,wBAAyB,CAChC,KAAK,6BAA6BvnJ,CAAC,EACnC,KACpB,CACgB,KAAKunJ,EAAM,cAAe,CACtB,KAAK,mBAAmBvnJ,CAAC,EACzB,KACpB,CACgB,KAAKunJ,EAAM,aAAc,CACrB,KAAK,kBAAkBvnJ,CAAC,EACxB,KACpB,CACgB,KAAKunJ,EAAM,YAAa,CACpB,KAAK,iBAAiBvnJ,CAAC,EACvB,KACpB,CACgB,KAAKunJ,EAAM,gBAAiB,CACxB,KAAK,qBAAqBvnJ,CAAC,EAC3B,KACpB,CACgB,QAEI,KAAK,yBAAyBA,CAAC,CAEnD,CACY,KAAK,OACjB,CACQ,KAAK,QAAS,CACjB,EACD6nJ,EAAU,UAAU,OAAS,UAAY,CACjC,KAAK,QAAUN,EAAM,eACrB,KAAK,gBAAiB,EAGtB,KAAK,aAAe,KAAK,OACzB,KAAK,mBAAoB,EAE7B,KAAK,IAAI,MAAO,CACnB,EAEDM,EAAU,UAAU,mBAAqB,UAAY,CACjD,IAAIa,EAAW,KAAK,OAAO,OAAS,KAAK,OACrC,KAAK,QAAUnB,EAAM,cACjB,KAAK,kBAAoBK,EAAU,SACnC,KAAK,IAAI,QAAQ,KAAK,aAAcc,EAAU,CAAC,EAG/C,KAAK,IAAI,UAAU,KAAK,aAAcA,EAAU,CAAC,EAGhD,KAAK,QAAUnB,EAAM,iBAC1B,KAAK,kBAAiB,EACtB,KAAK,kBAAkB,EAAK,EAGvB,KAAK,QAAUA,EAAM,aAC1B,KAAK,kBAAiB,EACtB,KAAK,kBAAkB,EAAK,EAGvB,KAAK,QAAUA,EAAM,WAC1B,KAAK,QAAUA,EAAM,qBACrB,KAAK,QAAUA,EAAM,sBACrB,KAAK,QAAUA,EAAM,oBACrB,KAAK,QAAUA,EAAM,iBACrB,KAAK,QAAUA,EAAM,oBACrB,KAAK,QAAUA,EAAM,oBACrB,KAAK,QAAUA,EAAM,oBACrB,KAAK,QAAUA,EAAM,kBAOrB,KAAK,IAAI,OAAO,KAAK,aAAcmB,CAAQ,CAElD,EACDb,EAAU,UAAU,YAAc,SAAUzpH,EAAOsqH,EAAU,CACrD,KAAK,YAAcnB,EAAM,MACzB,KAAK,YAAcA,EAAM,aACzB,KAAK,IAAI,aAAanpH,EAAOsqH,CAAQ,EAGrC,KAAK,IAAI,OAAOtqH,EAAOsqH,CAAQ,CAEtC,EACDb,EAAU,UAAU,cAAgB,SAAUc,EAAI,CAC1C,KAAK,YAAcpB,EAAM,MACzB,KAAK,YAAcA,EAAM,aACzB,KAAK,IAAI,eAAeoB,CAAE,EAG1B,KAAK,IAAI,aAAaA,CAAE,CAE/B,EACMd,CACX,IACA59G,EAAA,QAAkB49G,+HCv6BlB,IAAIj+G,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAG,EAAG8B,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyB,EAAGtoC,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAAC,EAAE,WAAaA,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAO,EAAEtoC,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAG,EAAG8B,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAI,EAAEroC,CAAC,CACf,GACIinD,EAAsB7e,QAAQA,OAAK,qBAAwB,OAAO,OAAU,SAASlqC,EAAGY,EAAG,CAC3F,OAAO,eAAeZ,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOY,EAAG,CACtE,EAAK,SAASZ,EAAGY,EAAG,CAChBZ,EAAE,QAAaY,CACnB,GACIooD,EAAgB9e,QAAQA,OAAK,cAAiB,SAAU+e,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAI7tC,EAAS,CAAE,EACf,GAAI6tC,GAAO,KAAM,QAASnnD,KAAKmnD,EAASnnD,IAAM,WAAa,OAAO,UAAU,eAAe,KAAKmnD,EAAKnnD,CAAC,GAAGmoC,EAAgB7uB,EAAQ6tC,EAAKnnD,CAAC,EACvI,OAAAinD,EAAmB3tC,EAAQ6tC,CAAG,EACvB7tC,CACV,EACD,OAAO,eAAe6tI,OAAS,aAAc,CAAE,MAAO,GAAM,EAC9CA,OAAA,OAAG,OACjB,IAAIC,EAAiBlgG,oBAAsC,EACvD2+F,EAA+Cp9G,cAAA,EAC/C4+G,EAAW,IAAI,IAAI,CACnB,QACA,SACA,WACA,SACA,SACA,WACA,UACJ,CAAC,EACGC,EAAO,IAAI,IAAI,CAAC,GAAG,CAAC,EACpBC,EAAmB,IAAI,IAAI,CAAC,QAAS,OAAO,CAAC,EAC7CC,EAAU,IAAI,IAAI,CAAC,KAAM,IAAI,CAAC,EAC9BC,EAAU,IAAI,IAAI,CAAC,KAAM,IAAI,CAAC,EAC9BC,EAAmB,IAAI,IAAI,CAC3B,CAAC,KAAM,IAAI,IAAI,CAAC,KAAM,KAAM,IAAI,CAAC,CAAC,EAClC,CAAC,KAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EACtB,CAAC,KAAM,IAAI,IAAI,CAAC,QAAS,KAAM,IAAI,CAAC,CAAC,EACrC,CAAC,OAAQ,IAAI,IAAI,CAAC,OAAQ,OAAQ,QAAQ,CAAC,CAAC,EAC5C,CAAC,KAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EACtB,CAAC,IAAKJ,CAAI,EACV,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMA,CAAI,EACX,CAAC,SAAUD,CAAQ,EACnB,CAAC,QAASA,CAAQ,EAClB,CAAC,SAAUA,CAAQ,EACnB,CAAC,SAAUA,CAAQ,EACnB,CAAC,WAAYA,CAAQ,EACrB,CAAC,WAAYA,CAAQ,EACrB,CAAC,SAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC9B,CAAC,WAAY,IAAI,IAAI,CAAC,WAAY,QAAQ,CAAC,CAAC,EAC5C,CAAC,KAAMG,CAAO,EACd,CAAC,KAAMA,CAAO,EACd,CAAC,UAAWF,CAAI,EAChB,CAAC,UAAWA,CAAI,EAChB,CAAC,QAASA,CAAI,EACd,CAAC,aAAcA,CAAI,EACnB,CAAC,UAAWA,CAAI,EAChB,CAAC,MAAOA,CAAI,EACZ,CAAC,KAAMA,CAAI,EACX,CAAC,WAAYA,CAAI,EACjB,CAAC,aAAcA,CAAI,EACnB,CAAC,SAAUA,CAAI,EACf,CAAC,SAAUA,CAAI,EACf,CAAC,OAAQA,CAAI,EACb,CAAC,SAAUA,CAAI,EACf,CAAC,KAAMA,CAAI,EACX,CAAC,OAAQA,CAAI,EACb,CAAC,MAAOA,CAAI,EACZ,CAAC,KAAMA,CAAI,EACX,CAAC,MAAOA,CAAI,EACZ,CAAC,UAAWA,CAAI,EAChB,CAAC,QAASA,CAAI,EACd,CAAC,KAAMA,CAAI,EACX,CAAC,KAAMG,CAAO,EACd,CAAC,KAAMA,CAAO,EACd,CAAC,QAASF,CAAgB,EAC1B,CAAC,QAASA,CAAgB,CAC9B,CAAC,EACGI,EAAe,IAAI,IAAI,CACvB,OACA,OACA,WACA,KACA,MACA,UACA,QACA,QACA,KACA,MACA,QACA,UACA,SACA,OACA,OACA,QACA,SACA,QACA,KACJ,CAAC,EACGC,EAAyB,IAAI,IAAI,CAAC,OAAQ,KAAK,CAAC,EAChDC,EAA0B,IAAI,IAAI,CAClC,KACA,KACA,KACA,KACA,QACA,iBACA,gBACA,OACA,OACJ,CAAC,EACGC,EAAY,QACZpsG,EAAwB,UAAY,CACpC,SAASA,EAAO2qG,EAAKrsI,EAAS,CACtBA,IAAY,SAAUA,EAAU,CAAA,GACpC,IAAI7C,EAAIm0C,EAAI8qB,EAAI2xE,EAAI/kJ,EACpB,KAAK,QAAUgX,EAEf,KAAK,WAAa,EAElB,KAAK,SAAW,EAKhB,KAAK,aAAe,EACpB,KAAK,QAAU,GACf,KAAK,WAAa,GAClB,KAAK,YAAc,GACnB,KAAK,QAAU,KACf,KAAK,MAAQ,CAAE,EACf,KAAK,eAAiB,CAAE,EACxB,KAAK,QAAU,CAAE,EACjB,KAAK,aAAe,EAEpB,KAAK,WAAa,EAElB,KAAK,MAAQ,GACb,KAAK,IAAMqsI,GAAuC,CAAE,EACpD,KAAK,mBAAqBlvI,EAAK6C,EAAQ,iBAAmB,MAAQ7C,IAAO,OAASA,EAAK,CAAC6C,EAAQ,QAChG,KAAK,yBACAsxC,EAAKtxC,EAAQ,2BAA6B,MAAQsxC,IAAO,OAASA,EAAK,CAACtxC,EAAQ,QACrF,KAAK,UAAY,KAAMo8D,EAAKp8D,EAAQ,aAAe,MAAQo8D,IAAO,OAASA,EAAKgxE,EAAe,SAAS,KAAK,QAAS,IAAI,GACzHpkJ,GAAM+kJ,EAAK,KAAK,KAAK,gBAAkB,MAAQ/kJ,IAAO,QAAkBA,EAAG,KAAK+kJ,EAAI,IAAI,CACjG,CAGI,OAAArsG,EAAO,UAAU,OAAS,SAAU/e,EAAOsqH,EAAU,CACjD,IAAI9vI,EAAIm0C,EACJjnC,EAAO,KAAK,SAASsY,EAAOsqH,CAAQ,EACxC,KAAK,SAAWA,EAAW,GAC1B37F,GAAMn0C,EAAK,KAAK,KAAK,UAAY,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAIkN,CAAI,EACnF,KAAK,WAAa4iI,CACrB,EAEDvrG,EAAO,UAAU,aAAe,SAAUwrG,EAAI,CAC1C,IAAI/vI,EAAIm0C,EAKJvqC,EAAQ,KAAK,UAAU,gBAAiB,EAC5C,KAAK,SAAWA,EAAQ,GACvBuqC,GAAMn0C,EAAK,KAAK,KAAK,UAAY,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,KAAQ0uI,EAAY,eAAeqB,CAAE,CAAC,EACjH,KAAK,WAAanmI,CACrB,EACD26B,EAAO,UAAU,cAAgB,SAAU9iC,EAAM,CAC7C,MAAO,CAAC,KAAK,QAAQ,SAAW+uI,EAAa,IAAI/uI,CAAI,CACxD,EAED8iC,EAAO,UAAU,cAAgB,SAAU/e,EAAOsqH,EAAU,CACxD,KAAK,SAAWA,EAChB,IAAIruI,EAAO,KAAK,SAAS+jB,EAAOsqH,CAAQ,EACpC,KAAK,oBACLruI,EAAOA,EAAK,YAAa,GAE7B,KAAK,YAAYA,CAAI,CACxB,EACD8iC,EAAO,UAAU,YAAc,SAAU9iC,EAAM,CAC3C,IAAIzB,EAAIm0C,EAAI8qB,EAAI2xE,EAChB,KAAK,aAAe,KAAK,WACzB,KAAK,QAAUnvI,EACf,IAAIovI,EAAe,CAAC,KAAK,QAAQ,SAAWN,EAAiB,IAAI9uI,CAAI,EACrE,GAAIovI,EACA,KAAO,KAAK,MAAM,OAAS,GACvBA,EAAa,IAAI,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,CAAC,GAAG,CACrD,IAAI3gI,EAAU,KAAK,MAAM,IAAK,GAC7BikC,GAAMn0C,EAAK,KAAK,KAAK,cAAgB,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAIkQ,EAAS,EAAI,CAChH,CAEa,KAAK,cAAczO,CAAI,IACxB,KAAK,MAAM,KAAKA,CAAI,EAChBgvI,EAAuB,IAAIhvI,CAAI,EAC/B,KAAK,eAAe,KAAK,EAAI,EAExBivI,EAAwB,IAAIjvI,CAAI,GACrC,KAAK,eAAe,KAAK,EAAK,IAGrCmvI,GAAM3xE,EAAK,KAAK,KAAK,iBAAmB,MAAQ2xE,IAAO,QAAkBA,EAAG,KAAK3xE,EAAIx9D,CAAI,EACtF,KAAK,IAAI,YACT,KAAK,QAAU,CAAE,EACxB,EACD8iC,EAAO,UAAU,WAAa,SAAUusG,EAAW,CAC/C,IAAI9wI,EAAIm0C,EACR,KAAK,WAAa,KAAK,aACnB,KAAK,WACJA,GAAMn0C,EAAK,KAAK,KAAK,aAAe,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,KAAK,QAAS,KAAK,QAAS8wI,CAAS,EACvH,KAAK,QAAU,MAEf,KAAK,IAAI,YAAc,KAAK,cAAc,KAAK,OAAO,GACtD,KAAK,IAAI,WAAW,KAAK,QAAS,EAAI,EAE1C,KAAK,QAAU,EAClB,EAEDvsG,EAAO,UAAU,aAAe,SAAUurG,EAAU,CAChD,KAAK,SAAWA,EAChB,KAAK,WAAW,EAAK,EAErB,KAAK,WAAaA,EAAW,CAChC,EAEDvrG,EAAO,UAAU,WAAa,SAAU/e,EAAOsqH,EAAU,CACrD,IAAI9vI,EAAIm0C,EAAI8qB,EAAI2xE,EAAI/kJ,EAAIklJ,EACxB,KAAK,SAAWjB,EAChB,IAAIruI,EAAO,KAAK,SAAS+jB,EAAOsqH,CAAQ,EAQxC,GAPI,KAAK,oBACLruI,EAAOA,EAAK,YAAa,IAEzBgvI,EAAuB,IAAIhvI,CAAI,GAC/BivI,EAAwB,IAAIjvI,CAAI,IAChC,KAAK,eAAe,IAAK,EAExB,KAAK,cAAcA,CAAI,EAmBnB,CAAC,KAAK,QAAQ,SAAWA,IAAS,QAEtC0yC,GAAMn0C,EAAK,KAAK,KAAK,iBAAmB,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,IAAI,GACzF4wI,GAAM3xE,EAAK,KAAK,KAAK,aAAe,MAAQ2xE,IAAO,QAAkBA,EAAG,KAAK3xE,EAAI,KAAM,CAAE,EAAE,EAAI,GAC/F8xE,GAAMllJ,EAAK,KAAK,KAAK,cAAgB,MAAQklJ,IAAO,QAAkBA,EAAG,KAAKllJ,EAAI,KAAM,EAAK,OAvBnE,CAC3B,IAAI8vD,EAAM,KAAK,MAAM,YAAYl6C,CAAI,EACrC,GAAIk6C,IAAQ,GACR,GAAI,KAAK,IAAI,WAET,QADI77B,EAAQ,KAAK,MAAM,OAAS67B,EACzB77B,KAEH,KAAK,IAAI,WAAW,KAAK,MAAM,IAAK,EAAEA,IAAU,CAAC,OAIrD,KAAK,MAAM,OAAS67B,MAEnB,CAAC,KAAK,QAAQ,SAAWl6C,IAAS,MAEvC,KAAK,YAAY,GAAG,EACpB,KAAK,gBAAgB,EAAI,EAEzC,CAQQ,KAAK,WAAaquI,EAAW,CAChC,EAEDvrG,EAAO,UAAU,iBAAmB,SAAUurG,EAAU,CACpD,KAAK,SAAWA,EACZ,KAAK,QAAQ,SACb,KAAK,QAAQ,sBACb,KAAK,eAAe,KAAK,eAAe,OAAS,CAAC,GAClD,KAAK,gBAAgB,EAAK,EAE1B,KAAK,WAAaA,EAAW,GAI7B,KAAK,aAAaA,CAAQ,CAEjC,EACDvrG,EAAO,UAAU,gBAAkB,SAAUysG,EAAe,CACxD,IAAIhxI,EAAIm0C,EACJ1yC,EAAO,KAAK,QAChB,KAAK,WAAWuvI,CAAa,EAEzB,KAAK,MAAM,KAAK,MAAM,OAAS,CAAC,IAAMvvI,KAErC0yC,GAAMn0C,EAAK,KAAK,KAAK,cAAgB,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAIyB,EAAM,CAACuvI,CAAa,EACvG,KAAK,MAAM,IAAK,EAEvB,EAEDzsG,EAAO,UAAU,aAAe,SAAU/e,EAAOsqH,EAAU,CACvD,KAAK,WAAatqH,EAClB,IAAI/jB,EAAO,KAAK,SAAS+jB,EAAOsqH,CAAQ,EACxC,KAAK,WAAa,KAAK,wBACjBruI,EAAK,YAAW,EAChBA,CACT,EAED8iC,EAAO,UAAU,aAAe,SAAU/e,EAAOsqH,EAAU,CACvD,KAAK,aAAe,KAAK,SAAStqH,EAAOsqH,CAAQ,CACpD,EAEDvrG,EAAO,UAAU,eAAiB,SAAUwrG,EAAI,CAC5C,KAAK,gBAAmBrB,EAAY,eAAeqB,CAAE,CACxD,EAEDxrG,EAAO,UAAU,YAAc,SAAUmrG,EAAOI,EAAU,CACtD,IAAI9vI,EAAIm0C,EACR,KAAK,SAAW27F,GACf37F,GAAMn0C,EAAK,KAAK,KAAK,eAAiB,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,KAAK,WAAY,KAAK,YAAa0vI,IAAUO,EAAe,UAAU,OACpJ,IACAP,IAAUO,EAAe,UAAU,OAC/B,IACAP,IAAUO,EAAe,UAAU,QAC/B,OACA,IAAI,EACd,KAAK,SACL,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,QAAS,KAAK,UAAU,IACnE,KAAK,QAAQ,KAAK,UAAU,EAAI,KAAK,aAEzC,KAAK,YAAc,EACtB,EACD1rG,EAAO,UAAU,mBAAqB,SAAUxiC,EAAO,CACnD,IAAI6H,EAAQ7H,EAAM,OAAO4uI,CAAS,EAC9BlvI,EAAOmI,EAAQ,EAAI7H,EAAQA,EAAM,OAAO,EAAG6H,CAAK,EACpD,OAAI,KAAK,oBACLnI,EAAOA,EAAK,YAAa,GAEtBA,CACV,EAED8iC,EAAO,UAAU,cAAgB,SAAU/e,EAAOsqH,EAAU,CACxD,KAAK,SAAWA,EAChB,IAAI/tI,EAAQ,KAAK,SAASyjB,EAAOsqH,CAAQ,EACzC,GAAI,KAAK,IAAI,wBAAyB,CAClC,IAAIruI,EAAO,KAAK,mBAAmBM,CAAK,EACxC,KAAK,IAAI,wBAAwB,IAAI,OAAON,CAAI,EAAG,IAAI,OAAOM,CAAK,CAAC,CAChF,CAEQ,KAAK,WAAa+tI,EAAW,CAChC,EAEDvrG,EAAO,UAAU,wBAA0B,SAAU/e,EAAOsqH,EAAU,CAClE,KAAK,SAAWA,EAChB,IAAI/tI,EAAQ,KAAK,SAASyjB,EAAOsqH,CAAQ,EACzC,GAAI,KAAK,IAAI,wBAAyB,CAClC,IAAIruI,EAAO,KAAK,mBAAmBM,CAAK,EACxC,KAAK,IAAI,wBAAwB,IAAI,OAAON,CAAI,EAAG,IAAI,OAAOM,CAAK,CAAC,CAChF,CAEQ,KAAK,WAAa+tI,EAAW,CAChC,EAEDvrG,EAAO,UAAU,UAAY,SAAU/e,EAAOsqH,EAAUnrI,EAAQ,CAC5D,IAAI3E,EAAIm0C,EAAI8qB,EAAI2xE,EAChB,KAAK,SAAWd,GACf37F,GAAMn0C,EAAK,KAAK,KAAK,aAAe,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,KAAK,SAASwlB,EAAOsqH,EAAWnrI,CAAM,CAAC,GACxHisI,GAAM3xE,EAAK,KAAK,KAAK,gBAAkB,MAAQ2xE,IAAO,QAAkBA,EAAG,KAAK3xE,CAAE,EAEnF,KAAK,WAAa6wE,EAAW,CAChC,EAEDvrG,EAAO,UAAU,QAAU,SAAU/e,EAAOsqH,EAAUnrI,EAAQ,CAC1D,IAAI3E,EAAIm0C,EAAI8qB,EAAI2xE,EAAI/kJ,EAAIklJ,EAAIE,EAAIC,EAAIC,EAAI30E,EACxC,KAAK,SAAWszE,EAChB,IAAI/tI,EAAQ,KAAK,SAASyjB,EAAOsqH,EAAWnrI,CAAM,EAC9C,KAAK,QAAQ,SAAW,KAAK,QAAQ,iBACpCwvC,GAAMn0C,EAAK,KAAK,KAAK,gBAAkB,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,CAAE,GAClF4wI,GAAM3xE,EAAK,KAAK,KAAK,UAAY,MAAQ2xE,IAAO,QAAkBA,EAAG,KAAK3xE,EAAIl9D,CAAK,GACnFgvI,GAAMllJ,EAAK,KAAK,KAAK,cAAgB,MAAQklJ,IAAO,QAAkBA,EAAG,KAAKllJ,CAAE,KAGhFqlJ,GAAMD,EAAK,KAAK,KAAK,aAAe,MAAQC,IAAO,QAAkBA,EAAG,KAAKD,EAAI,UAAU,OAAOlvI,EAAO,IAAI,CAAC,GAC9Gy6D,GAAM20E,EAAK,KAAK,KAAK,gBAAkB,MAAQ30E,IAAO,QAAkBA,EAAG,KAAK20E,CAAE,GAGvF,KAAK,WAAarB,EAAW,CAChC,EAEDvrG,EAAO,UAAU,MAAQ,UAAY,CACjC,IAAIvkC,EAAIm0C,EACR,GAAI,KAAK,IAAI,WAAY,CAErB,KAAK,SAAW,KAAK,WACrB,QAASvqC,EAAQ,KAAK,MAAM,OAAQA,EAAQ,EAAG,KAAK,IAAI,WAAW,KAAK,MAAM,EAAEA,CAAK,EAAG,EAAI,EACxF,CAChB,EACSuqC,GAAMn0C,EAAK,KAAK,KAAK,SAAW,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,CAAE,CAC/E,EAIDukC,EAAO,UAAU,MAAQ,UAAY,CACjC,IAAIvkC,EAAIm0C,EAAI8qB,EAAI2xE,GACfz8F,GAAMn0C,EAAK,KAAK,KAAK,WAAa,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,CAAE,EAC9E,KAAK,UAAU,MAAO,EACtB,KAAK,QAAU,GACf,KAAK,WAAa,GAClB,KAAK,QAAU,KACf,KAAK,MAAM,OAAS,EACpB,KAAK,WAAa,EAClB,KAAK,SAAW,GACf4wI,GAAM3xE,EAAK,KAAK,KAAK,gBAAkB,MAAQ2xE,IAAO,QAAkBA,EAAG,KAAK3xE,EAAI,IAAI,EACzF,KAAK,QAAQ,OAAS,EACtB,KAAK,aAAe,EACpB,KAAK,WAAa,EAClB,KAAK,MAAQ,EAChB,EAOD16B,EAAO,UAAU,cAAgB,SAAUr3B,EAAM,CAC7C,KAAK,MAAO,EACZ,KAAK,IAAIA,CAAI,CAChB,EACDq3B,EAAO,UAAU,SAAW,SAAU/e,EAAO3f,EAAK,CAC9C,KAAO2f,EAAQ,KAAK,cAAgB,KAAK,QAAQ,CAAC,EAAE,QAChD,KAAK,YAAa,EAGtB,QADImC,EAAQ,KAAK,QAAQ,CAAC,EAAE,MAAMnC,EAAQ,KAAK,aAAc3f,EAAM,KAAK,YAAY,EAC7EA,EAAM,KAAK,aAAe,KAAK,QAAQ,CAAC,EAAE,QAC7C,KAAK,YAAa,EAClB8hB,GAAS,KAAK,QAAQ,CAAC,EAAE,MAAM,EAAG9hB,EAAM,KAAK,YAAY,EAE7D,OAAO8hB,CACV,EACD4c,EAAO,UAAU,YAAc,UAAY,CACvC,KAAK,cAAgB,KAAK,QAAQ,CAAC,EAAE,OACrC,KAAK,aACL,KAAK,QAAQ,MAAO,CACvB,EAMDA,EAAO,UAAU,MAAQ,SAAU8oE,EAAO,CACtC,IAAIrtG,EAAIm0C,EACR,GAAI,KAAK,MAAO,EACXA,GAAMn0C,EAAK,KAAK,KAAK,WAAa,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,IAAI,MAAM,sBAAsB,CAAC,EACjH,MACZ,CACQ,KAAK,QAAQ,KAAKqtG,CAAK,EACnB,KAAK,UAAU,UACf,KAAK,UAAU,MAAMA,CAAK,EAC1B,KAAK,aAEZ,EAMD9oE,EAAO,UAAU,IAAM,SAAU8oE,EAAO,CACpC,IAAIrtG,EAAIm0C,EACR,GAAI,KAAK,MAAO,EACXA,GAAMn0C,EAAK,KAAK,KAAK,WAAa,MAAQm0C,IAAO,QAAkBA,EAAG,KAAKn0C,EAAI,IAAI,MAAM,oBAAoB,CAAC,EAC/G,MACZ,CACYqtG,GACA,KAAK,MAAMA,CAAK,EACpB,KAAK,MAAQ,GACb,KAAK,UAAU,IAAK,CACvB,EAID9oE,EAAO,UAAU,MAAQ,UAAY,CACjC,KAAK,UAAU,MAAO,CACzB,EAIDA,EAAO,UAAU,OAAS,UAAY,CAElC,IADA,KAAK,UAAU,OAAQ,EAChB,KAAK,UAAU,SAClB,KAAK,WAAa,KAAK,QAAQ,QAC/B,KAAK,UAAU,MAAM,KAAK,QAAQ,KAAK,YAAY,CAAC,EAEpD,KAAK,OACL,KAAK,UAAU,IAAK,CAC3B,EAODA,EAAO,UAAU,WAAa,SAAU8oE,EAAO,CAC3C,KAAK,MAAMA,CAAK,CACnB,EAOD9oE,EAAO,UAAU,KAAO,SAAU8oE,EAAO,CACrC,KAAK,IAAIA,CAAK,CACjB,EACM9oE,CACX,IACAyrG,cAAA,OAAiBzrG,mHCngBjB,IAAIvT,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIinD,EAAsB7e,QAAQA,OAAK,qBAAwB,OAAO,OAAU,SAASlqC,EAAGY,EAAG,CAC3F,OAAO,eAAeZ,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOY,EAAG,CACtE,EAAK,SAASZ,EAAGY,EAAG,CAChBZ,EAAE,QAAaY,CACnB,GACIooD,EAAgB9e,QAAQA,OAAK,cAAiB,SAAU+e,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAI7tC,EAAS,CAAE,EACf,GAAI6tC,GAAO,KAAM,QAASnnD,KAAKmnD,EAASnnD,IAAM,WAAa,OAAO,UAAU,eAAe,KAAKmnD,EAAKnnD,CAAC,GAAGmoC,EAAgB7uB,EAAQ6tC,EAAKnnD,CAAC,EACvI,OAAAinD,EAAmB3tC,EAAQ6tC,CAAG,EACvB7tC,CACV,EACG4yC,EAAmB9jB,QAAQA,OAAK,iBAAoB,SAAU+e,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAK,CAC5D,EACD,OAAO,eAAc3e,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAmB,SAAAA,EAAA,UAAoBA,EAAkB,QAAAA,EAAA,YAAsBA,EAAoB,UAAAA,EAAA,gBAA0BA,EAAmB,SAAAA,EAAA,cAAwBA,EAAyB,eAAAA,EAAA,WAAqBA,EAAiB,OAAA,OACvO,IAAIwpH,EAAoCvtH,cAAA,EACpCwtH,EAAoCxtH,cAAA,EACxC,OAAO,eAAe+D,EAAS,SAAU,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOypH,EAAY,MAAS,CAAA,CAAE,EAC9G,IAAI3E,EAAoC7kH,cAAA,EACpCypH,EAAoCzpH,cAAA,EACxC,OAAO,eAAeD,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO0pH,EAAa,UAAa,CAAA,CAAE,EAEvH,OAAO,eAAe1pH,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO0pH,EAAa,UAAa,CAAA,CAAE,EAQ3H,SAASC,EAAc9tI,EAAMrK,EAAS,CAClC,IAAImjE,EAAU,IAAImwE,EAAa,WAAW,OAAWtzI,CAAO,EAC5D,WAAIg4I,EAAY,OAAO70E,EAASnjE,CAAO,EAAE,IAAIqK,CAAI,EAC1C84D,EAAQ,IACnB,CACA30C,EAAA,cAAwB2pH,EAWxB,SAASC,EAAS/tI,EAAMrK,EAAS,CAC7B,OAAOm4I,EAAc9tI,EAAMrK,CAAO,EAAE,QACxC,CACAwuB,EAAA,SAAmB4pH,EAQnB,SAASC,EAAgBtlG,EAAU/yC,EAASs4I,EAAiB,CACzD,IAAIn1E,EAAU,IAAImwE,EAAa,WAAWvgG,EAAU/yC,EAASs4I,CAAe,EAC5E,OAAO,IAAIN,EAAY,OAAO70E,EAASnjE,CAAO,CAClD,CACAwuB,EAAA,gBAA0B6pH,EAC1B,IAAIjL,EAA0C1+G,iBAAA,EAC9C,OAAO,eAAeF,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO0jB,EAAgBk7F,CAAc,EAAE,OAAU,CAAA,CAAE,EAKtI5+G,EAAsB,YAAA0e,EAAave,eAAyB,EAC5D,IAAI4pH,EAAgC3pH,cAAA,EAChC4pH,EAAgC5pH,cAAA,EACpC,OAAO,eAAeJ,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOgqH,EAAW,OAAU,CAAA,CAAE,EAC/G,IAAIC,EAA0B,CAAE,QAAS,EAAM,EAO/C,SAASC,EAAUtB,EAAMp3I,EAAS,CAC9B,OAAIA,IAAY,SAAUA,EAAUy4I,MACzBF,EAAW,SAASH,EAAShB,EAAMp3I,CAAO,CAAC,CAC1D,CACAwuB,EAAA,UAAoBkqH,EACpBlqH,EAAmB,SAAA0e,EAAate,eAAmB,wWCjGnD,OAAO,eAAekxH,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMrG,EAAsChvH,cAAA,EACtCgxF,EAAoBhtF,eAA0B,EAC9CiwH,EAAsFhwH,kCAAA,EACtF0wH,EAAoFzwH,iCAAA,EACpF6wH,EAAgF5wH,+BAAA,EAChF+wH,EAA8E9wH,8BAAA,EAC9E0/D,EAA0Bz/D,cAAA,EAC1BixH,EAAyB,WAI/B,IAAAC,EAAA,MAAMC,WAA2BxkC,EAAkB,SAAU,CACzD,YAAYz7G,EAAS,CACjB,MAAM,CAAE,mBAAoB,GAAM,EAElC,KAAK,eAAiB,CAAE,EACxB,KAAK,gBAAkB,CAAE,EAEzB,KAAK,qBAAuB,GAC5B,KAAK,sBAAwB,CAAE,EAC/B,KAAK,8BAAgC,CAAE,EAEvC,KAAK,+BAAiC,CAAE,EACxCA,EAAUA,GAAW,CAAE,EACvB,KAAK,QAAUA,EACf,KAAK,KAAO,IAAIuuF,EAAO,KAAKvuF,EAAQ,YAAaA,EAAQ,OAAO,EAChE,KAAK,aAAeA,EAAQ,cAAgB,KAAK,KAAK,YAAY,aAAc,EAChF,KAAK,kBAAoBA,EAAQ,kBACjC,KAAK,cAAgBA,EAAQ,eAAiB+/I,EAC9C,KAAK,OAAS,KAAK,iBAAiB,CAAC,CAAC//I,EAAQ,OAAO,CAC7D,CAMI,OAAO+kG,EAAQ,CACX,MAAM15E,EAAS,IAAIowF,EAAkB,YAAY,CAAE,mBAAoB,GAAM,EAC7E1W,EAAO,GAAG,QAAUv/F,GAAU00F,EAAO,KAAK,QAAS10F,CAAK,CAAC,EACzDu/F,EAAO,GAAG,OAAS16F,GAASghB,EAAO,KAAKhhB,CAAI,CAAC,EAC7C06F,EAAO,GAAG,MAAO,IAAM15E,EAAO,KAAK,IAAI,CAAC,EACxC,MAAM6uE,EAAS7uE,EAAO,KAAK,IAAI40H,GAAmB,KAAK,OAAO,CAAC,EAC/D,OAAO/lD,CACf,CACI,WAAWsQ,EAAO5c,EAAU76C,EAAU,CAClC,KAAK,OAAO,MAAMy3D,EAAM,SAAQ,CAAE,EAClCz3D,EAAU,CAClB,CACI,OAAOA,EAAU,CACb,KAAK,OAAO,IAAK,EACjBA,EAAU,CAClB,CAMI,aAAa5uC,EAAQ,CACjB,IAAI41I,EAAa,KAAK,eAAe,QAAU51I,EAAS,EAAI,GAC5D,KAAO41I,EAAa,GAAK,CAAC,KAAK,eAAeA,CAAU,GACpDA,IAEJ,OAAO,KAAK,eAAeA,CAAU,CAC7C,CAII,UAAW,CACP,OAAO,KAAK,eAAe,MACnC,CACI,UAAUn7I,EAAMq+G,EAAY,CACxB,GAAI,CAAC,KAAK,qBAAsB,CAE5B,GAAI,OAAQA,EAAY,CACpB,MAAMrkC,EAAKqkC,EAAW,GACtB,KAAK,+BAA+BrkC,CAAE,EAAI,CACtC,OAAQ,CAAE,EACV,QAAS,EACT,IAAK,CAAE,CACV,CACjB,CAEY,UAAWjR,KAAU,OAAO,OAAO,KAAK,8BAA8B,EAClEA,EAAO,UACPA,EAAO,OAAO,KAAK,CAAE,KAAM,OAAQ,KAAA/oE,EAAM,WAAAq+G,EAAY,CAErE,CAEQ,KAAK,gBAAgB,KAAK,MAAS,EAGnC,IAAI2hC,EACJ,GAAI,cAAe3hC,EAAY,CAE3B,IAAIlsG,EACJ,GAAI,KAAK,uCACLA,EAAU,KAAK,uCAAwC,MAEtD,CACDA,EAAU,WAAYksG,GAAc,KAAK,KAAK,cAAcA,EAAW,MAAM,GACzE,KAAK,KAAK,YAAY,UAAW,EAErC,UAAWt1C,KAAU,OAAO,OAAO,KAAK,8BAA8B,EAClEA,EAAO,IAAI,KAAK52D,CAAO,CAE3C,CACY6tI,EAAY,CAAE,QAAA7tI,CAAS,EAEnB,KAAK,uBACL6tI,EAAU,cAAgB,IAG9B,MAAMsB,EAAkB,KAAK,aAAc,EACvCA,GAAmBA,EAAgB,QACnCtB,EAAU,MAAQsB,EAAgB,OAGtC,KAAK,eAAe,KAAKtB,CAAS,CAC9C,MAGYA,EAAY,KAAK,aAAc,EAE/B,KAAK,eAAe,KAAK,MAAS,EAGtC,GAAIA,EAAW,CAEX,GAAI,aAAc3hC,EACd,UAAWn+G,KAAQ,KAAK,KAAK,gBAAgBm+G,EAAW,SAAU2hC,EAAW,EAAK,EAEzEA,EAAU,QAEXA,EAAU,MAAQ,KAAK,KAAK,YAAY9/I,EAAK,MAAO,KAAK,aAAa,GAGrE8/I,EAAU,eACX,KAAK,WAAWA,EAAU,QAAS,KAAK,KAAK,YAAY,UAAU,GAAGrwD,EAAO,KAAK,GAAG,MAAM,EAAGzvF,CAAI,EAa9G,GARI,SAAUm+G,IACV2hC,EAAU,SAAW3hC,EAAW,MAEhC,aAAcA,IACd2hC,EAAU,SAAW3hC,EAAW,UAAU,GAI1C,cAAeA,GACf,CAAC,KAAK,sBAAwB,YAAaA,EAC3C,UAAWkjC,KAAaljC,EAAW,QAAQ,MAAM,MAAM,EAC7CkjC,KAAa,KAAK,wBACpB,KAAK,sBAAsBA,CAAS,EAAI,CAAE,GAE9C,KAAK,sBAAsBA,CAAS,EAAE,KAAKvB,CAAS,EACpD,KAAK,oBAAoBuB,EAAWvB,CAAS,CAGjE,CAEY,aAAc3hC,GACd,KAAK,qBAAqBA,EAAW,SAAU,GAAO2hC,EAAWhgJ,EAAMq+G,CAAU,EAIjF,qBAAsBA,GACtB,KAAK,qBAAqBA,EAAW,kBAAkB,EAAG,GAAM2hC,EAAWhgJ,EAAMq+G,CAAU,CAEvG,CACI,OAAO5yG,EAAM,CAET,GAAI,CAAC,KAAK,qBACN,UAAWs9D,KAAU,OAAO,OAAO,KAAK,8BAA8B,EAClEA,EAAO,OAAO,KAAK,CAAE,KAAM,OAAQ,KAAAt9D,EAAM,EAIjD,UAAW+1I,KAAc,KAAK,gBACtBA,GACAA,EAAW,KAAK/1I,CAAI,CAGpC,CACI,YAAa,CAET,GAAI,CAAC,KAAK,qBACN,SAAW,CAAC81I,EAAWx4E,CAAM,IAAK,OAAO,QAAQ,KAAK,8BAA8B,EAChFA,EAAO,UACPA,EAAO,OAAO,KAAK,CAAE,KAAM,OAAO,CAAE,EAEhCA,EAAO,UAAY,IACnB,KAAK,8BAA8Bw4E,CAAS,EAAIx4E,EAChD,OAAO,KAAK,+BAA+Bw4E,CAAS,EAEpD,KAAK,oBAAoBA,CAAS,GAK9C,MAAMvB,EAAY,KAAK,aAAa,EAAI,EACxC,GAAIA,EAAW,CACX,MAAM1mI,EAAQ,KAAK,SAAU,EAC7B,GAAI0mI,EAAU,YAAc1mI,KAAS0mI,EAAU,WAC3C,SAAW,CAAC7lB,EAAce,CAAU,IAAK,OAAO,QAAQ8kB,EAAU,WAAW1mI,CAAK,CAAC,EAAG,CAGlF,MAAM5D,EAAS,KAAK,KAAK,cAAc,KAAK,gBAAgB4D,CAAK,EAAE,KAAK,EAAE,EAAG0mI,CAAS,EACtF,KAAK,qBAAqBA,EAAW9kB,EAAYxlH,EAAQykH,IAAiB,SAAS,EACnF,OAAO6lB,EAAU,WAAW1mI,CAAK,EAAE6gH,CAAY,CACnE,CAEA,CAEQ,KAAK,eAAe,IAAK,EACzB,KAAK,gBAAgB,IAAK,CAClC,CACI,OAAQ,CAEZ,CAKI,iBAAiBuT,EAAS,CACtB,OAAO,IAAImN,EAAc,OAAO,CAC5B,WAAY,IAAM,CACd,GAAI,CACA,KAAK,WAAY,EACb,KAAK,mBACL,KAAK,kBAAkB,WAAY,CAE3D,OACuBj0I,EAAO,CACV,KAAK,KAAK,QAASA,CAAK,CAC5C,CACa,EACD,MAAO,IAAM,CACT,GAAI,CACA,KAAK,MAAO,EACR,KAAK,mBACL,KAAK,kBAAkB,MAAO,CAEtD,OACuBA,EAAO,CACV,KAAK,KAAK,QAASA,CAAK,CAC5C,CACa,EACD,UAAW,CAAC5G,EAAMq+G,IAAe,CAC7B,GAAI,CACA,KAAK,UAAUr+G,EAAMq+G,CAAU,EAC3B,KAAK,mBACL,KAAK,kBAAkB,UAAUr+G,EAAMq+G,CAAU,CAEzE,OACuBz3G,EAAO,CACV,KAAK,KAAK,QAASA,CAAK,CAC5C,CACa,EACD,OAAS6E,GAAS,CACd,GAAI,CACA,KAAK,OAAOA,CAAI,EACZ,KAAK,mBACL,KAAK,kBAAkB,OAAOA,CAAI,CAE1D,OACuB7E,EAAO,CACV,KAAK,KAAK,QAASA,CAAK,CAC5C,CACa,CACb,EAAW,CACC,eAAgB,GAChB,qBAAsB,GACtB,QAAA8mI,CACZ,CAAS,CACT,CASI,qBAAqB+T,EAAezsI,EAASgrI,EAAWlX,EAAS4Y,EAAe,CAC5E,MAAMJ,EAAkB,KAAK,aAAa,EAAI,EAC9C,GAAIA,EAAiB,CAEjB,MAAMhoI,EAAQ,KAAK,SAAU,EACvB4hH,EAAa,KAAK,KAAK,gBAAgBumB,EAAeH,EAAiB,EAAI,EAC5EA,EAAgB,aACjBA,EAAgB,WAAa,CAAE,GAE9BA,EAAgB,WAAWhoI,CAAK,IACjCgoI,EAAgB,WAAWhoI,CAAK,EAAI,CAAE,GAE1C,MAAMqoI,EAAgB3sI,EAAU,UAAY,UAC5CssI,EAAgB,WAAWhoI,CAAK,EAAEqoI,CAAa,EAAIzmB,EAEnD,UAAW0mB,KAA2B,KAAK,KAAK,2BAA2BH,EAAeH,EAAiB,KAAK,aAAa,EACzHpmB,EAAW,KAAK0mB,CAAuB,EAI3C,GAAI5B,GAAa,cAAe0B,EAC5B,KAAK,qBAAqBJ,EAAiBpmB,EAAY8kB,EAAU,QAAShrI,CAAO,EAEjF,OAAOssI,EAAgB,WAAWhoI,CAAK,EAAEqoI,CAAa,MAGtD,WAAWp9E,KAAW88E,GAAmB,uBACrC,GAAI98E,EAAQ,UAAUukE,EAAS4Y,CAAa,EAAG,CAC3C,MAAMhsI,EAAS6uD,EAAQ,UAAUm9E,EAAe,KAAK,KAAMJ,CAAe,EAC1E,KAAK,qBAAqBA,EAAiBpmB,EAAYxlH,EAAQV,CAAO,EAEtE,OAAOssI,EAAgB,WAAWhoI,CAAK,EAAEqoI,CAAa,CAC9E,CAIgBL,EAAgB,WAAWhoI,CAAK,EAAEqoI,CAAa,IAC/C,KAAK,gBAAgBroI,CAAK,EAAI,CAAE,EAEhD,CACA,CAQI,qBAAqB0mI,EAAW9kB,EAAYxlH,EAAQV,EAAS,CACzD,GAAI,CAACgrI,EAAU,cACX,UAAWpoI,KAAasjH,EAChBlmH,EAEIU,EAAO,WAAa,WACpB,KAAK,WAAWA,EAAQkC,EAAWooI,EAAU,OAAO,EAIxD,KAAK,WAAWA,EAAU,QAASpoI,EAAWlC,CAAM,CAIxE,CAOI,WAAWvD,EAASyF,EAAWlC,EAAQ,CACnC,KAAK,KAAK,KAAK,KAAK,YAAY,KAAKvD,EAASyF,EAAWlC,EAAQ,KAAK,YAAY,CAAC,CAC3F,CAMI,oBAAoB6rI,EAAWM,EAAiB,CAC5C,MAAM71E,EAAQ,KAAK,8BAA8Bu1E,CAAS,EAC1D,GAAIv1E,EAAO,CAEP,IAAI81E,EACJ,GAAID,EAAiB,CACjBC,EAAuB,CAACD,CAAe,EAGvC,MAAME,EAAuB,KAAK,sBAAsBR,CAAS,EAAE,QAAQM,CAAe,EAC1F,KAAK,sBAAsBN,CAAS,EAAE,OAAOQ,EAAsB,CAAC,CACpF,MAEgBD,EAAuB,KAAK,sBAAsBP,CAAS,EAE3D,OAAO,KAAK,sBAAsBA,CAAS,EAE/C,GAAIO,EAAsB,CAEtB,MAAME,EAAoB,KAAK,eACzBC,EAAqB,KAAK,gBAChC,KAAK,qBAAuB,GAE5B,UAAWjC,KAAa8B,EAAsB,CAC1C,KAAK,eAAiB,CAAC9B,CAAS,EAChC,KAAK,gBAAkB,CAAC,MAAS,EACjC,MAAMkC,EAAa,CAAC,GAAGl2E,EAAM,GAAG,EAChC,KAAK,uCAAyC,IAAMk2E,EAAW,MAAO,EACtE,UAAWjyI,KAAS+7D,EAAM,OACtB,OAAQ/7D,EAAM,KAAI,CACd,IAAK,OACD,KAAK,UAAUA,EAAM,KAAMA,EAAM,UAAU,EAC3C,MACJ,IAAK,OACD,KAAK,OAAOA,EAAM,IAAI,EACtB,MACJ,IAAK,QACD,KAAK,WAAY,EACjB,KAChC,CAEA,CAEgB,KAAK,uCAAyC,OAC9C,KAAK,eAAiB+xI,EACtB,KAAK,gBAAkBC,EACvB,KAAK,qBAAuB,EAC5C,CACA,CACA,CACA,EACAf,0BAAA,mBAA6BG,EAC7BA,EAAmB,uBAAyB,CACxC,IAAIvB,EAA6B,2BACjC,IAAIiB,EAAyB,uBAAuB,IAAK,MAAM,EAC/D,IAAIA,EAAyB,uBAAuB,OAAQ,MAAM,EAClE,IAAIA,EAAyB,uBAAuB,QAAS,KAAK,EAClE,IAAIA,EAAyB,uBAAuB,QAAS,KAAK,EAClE,IAAIA,EAAyB,uBAAuB,SAAU,KAAK,EACnE,IAAIA,EAAyB,uBAAuB,MAAO,KAAK,EAChE,IAAIA,EAAyB,uBAAuB,OAAQ,MAAM,EAClE,IAAIA,EAAyB,uBAAuB,SAAU,MAAM,EACpE,IAAIA,EAAyB,uBAAuB,SAAU,KAAK,EACnE,IAAIA,EAAyB,uBAAuB,QAAS,KAAK,EAClE,IAAIA,EAAyB,uBAAuB,QAAS,KAAK,EAClE,IAAIP,EAA4B,0BAA0B,OAAQ,OAAO,EACzE,IAAIA,EAA4B,0BAA0B,QAAS,OAAO,EAC1E,IAAII,EAA0B,uBACjC,mNChbD,IAAIrxH,EAAmBC,6BAAQA,4BAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,6BAAQA,4BAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,4BAAqD,EAAE+D,CAAO,EAC3ED,EAAaE,kCAA2D,EAAED,CAAO,EACjFD,EAAaG,iCAA0D,EAAEF,CAAO,EAChFD,EAAaI,+BAAwD,EAAEH,CAAO,EAC9ED,EAAaK,8BAAuD,EAAEJ,CAAO,EAC7ED,EAAaM,0BAAmC,EAAEL,CAAO,EACzDD,EAAaO,kBAA2B,EAAEN,CAAO,EACjDD,EAAaQ,sBAA+B,EAAEP,CAAO,EACrDD,EAAa6D,0BAAmC,EAAE5D,CAAO,EACzDD,EAAa8D,cAAqB,EAAE7D,CAAO,uQCxB3C,OAAO,eAAeuyH,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMC,EAA8Dv2H,cAAA,EAC9DsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCuyH,EAA4EtyH,mCAAA,EAIlF,IAAAuyH,EAAA,cAAyCF,EAAqB,iBAAkB,CAC5E,YAAY//I,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKsuB,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAEhFu7G,GADYlhH,EAAO,QAAUA,EAAO,QAAQ,IAAI,cAAc,EAAI,OAC7C,SAAS,KAAK,EACnCmzH,EAAoB,IAAI0C,EAAiC,mBAAmB,CAAE,YAAAxrH,EAAa,QAASrK,EAAO,QAAS,QAAAkhH,EAAS,EACnIiS,EAAkB,GAAG,QAASnzH,EAAO,KAAK,EAC1CmzH,EAAkB,GAAG,OAAQnzH,EAAO,IAAI,EAExC,MAAM+1H,EAAc5C,EAAkB,MACtC,OAAAA,EAAkB,MAAQ,IAAM,CAC5B4C,EAAY,KAAK5C,CAAiB,EAClCnzH,EAAO,IAAK,CACf,EACM,CAAE,kBAAAmzH,CAAmB,CACpC,CACA,EACAwC,kCAAA,2BAAqCK,uIChCrC,IAAIjzH,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,uOCf7D,OAAO,eAAe6yH,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAML,EAA8Dv2H,cAAA,EAC9DsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC+sH,EAA0D9sH,2BAAA,EAIhE,IAAA2yH,EAAA,cAAoCN,EAAqB,iBAAkB,CACvE,YAAY//I,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKsuB,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFQ,EAAYnG,EAAO,QAAUA,EAAO,QAAQ,IAAI,cAAc,EAAI,KAClE5kB,GAAY4kB,EAAO,SAAWA,EAAO,QAAQ,IAAI,kBAAkB,IAAM,OACzE0uH,EAAUvoH,GAAaA,EAAU,SAAS,KAAK,EAAI,QAAU,OAC7DgtH,EAAoB,IAAI9C,EAAwB,WAAW,CAAE,YAAAhmH,EAAa,QAASrK,EAAO,QAAS,QAAA0uH,EAAS,SAAAtzI,CAAQ,CAAE,EAC5H+3I,EAAkB,GAAG,QAASnzH,EAAO,KAAK,EAC1CmzH,EAAkB,GAAG,OAAQnzH,EAAO,IAAI,EAExC,MAAM+1H,EAAc5C,EAAkB,MACtC,OAAAA,EAAkB,MAAQ,IAAM,CAC5B4C,EAAY,KAAK5C,CAAiB,EAClCnzH,EAAO,IAAK,CACf,EACM,CAAE,kBAAAmzH,CAAmB,CACpC,CACA,EACA8C,6BAAA,sBAAgCE,kICjChC,IAAIpzH,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,6BAAkC,EAAE+D,CAAO,6UCfxD,OAAO,eAAegzH,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAMvyH,EAAkCxE,cAAA,EAYxC,IAAAg3H,EAAA,cAA6CxyH,EAAO,KAAM,CAQtD,YAAYhuB,EAAM,CACd,MAAMA,CAAI,CAClB,CACA,EACAugJ,sCAAA,+BAAyCE,2IC1BzC,IAAIvzH,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,qQCfjE,OAAO,eAAemzH,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAMC,EAA0Fn3H,cAAA,EAC1FwE,EAAkCR,cAAA,EAIxC,IAAAozH,EAAA,cAAiDD,EAAmC,8BAA+B,CAC/G,YAAY3gJ,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,MAAI,CAACA,EAAO,SAAS,MAAQA,EAAO,SAAS,KAAK,SAAW,KAC9C6D,EAAO,UAAU,SAAS,KAAK,IAAI,oCAAoC,KAE3EA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAO,CAAE,MAAOA,EAAO,SAAS,KAAK,IAAKqG,IAAS,CAAE,IAAAA,CAAK,EAAC,CAAG,CACtE,CACA,EACAkwH,0CAAA,mCAA6CG,+ICrB7C,IAAI3zH,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0CAA+C,EAAE+D,CAAO,gXCfrE,OAAO,eAAeuzH,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAM9yH,EAAkCxE,cAAA,EAYxC,IAAAu3H,EAAA,cAAkD/yH,EAAO,KAAM,CAQ3D,YAAYhuB,EAAM,CACd,MAAMA,CAAI,CAClB,CACA,EACA8gJ,2CAAA,oCAA8CE,kKC1B9C,OAAO,eAAe,WAAS,aAAc,CAAE,MAAO,GAAM,0LCA5D,OAAO,eAAeC,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAI3B,IAAAC,EAAA,KAAuB,CACnB,YAAYC,EAAW,CACnB,KAAK,UAAYA,CACzB,CACI,KAAK70D,EAAMppF,EAAQ,CACf,OAAO,KAAK,UAAU,KAAKopF,EAAMppF,CAAM,CAC/C,CACI,SAAU,CACN,OAAO,KAAK,UAAU,QAAS,CACvC,CACI,SAAU,CACN,OAAO,KAAK,UAAU,QAAS,CACvC,CACI,KAAM,CACF,OAAO,KAAK,UAAU,IAAK,CACnC,CACI,MAAO,CACH,OAAO,KAAK,UAAU,KAAM,CACpC,CACA,EACA+9I,wBAAA,iBAA2BG,6HCzB3B,IAAIl0H,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,EACtED,EAAaE,kBAAuB,EAAED,CAAO,EAC7CD,EAAaG,wBAA6B,EAAEF,CAAO,6KCjBnD,OAAO,eAAe8zH,cAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,cAAA,cAAG,OAIxB,IAAAC,EAAA,KAAoB,CAChB,aAAc,CACV,KAAK,MAAQ,CAAE,CACvB,CACI,KAAKh1D,EAAM,CACP,YAAK,MAAM,KAAKA,CAAI,EACb,EACf,CACI,SAAU,CACN,OAAO,KAAK,MAAM,MAC1B,CACI,SAAU,CACN,OAAO,KAAK,MAAM,SAAW,CACrC,CACI,KAAM,CACF,OAAO,KAAK,MAAM,MAAO,CACjC,CACI,MAAO,CACH,OAAO,KAAK,MAAM,CAAC,CAC3B,CACA,EACA+0D,qBAAA,cAAwBE,2RC1BxB,OAAO,eAAeC,wCAAS,aAAc,CAAE,MAAO,GAAM,EACbA,wCAAA,wCAAG,OAClD,MAAMC,EAAsGj4H,cAAA,EACtGwE,EAAkCR,cAAA,EAClC6zH,EAA4C5zH,qBAAA,EAIlD,IAAAi0H,EAAA,cAAsDD,EAAyC,mCAAoC,CAC/H,YAAYzhJ,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKsuB,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAIM,EAAS,CACf,MAAO,CAAE,UAAW,IAAI+yH,EAAgB,aAAiB,CACjE,CACA,EACAG,+CAAA,wCAAkDG,oJCnBlD,IAAIz0H,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,+CAAoD,EAAE+D,CAAO,EAC1ED,EAAaE,qBAA0B,EAAED,CAAO,gPChBhD,OAAO,eAAeq0H,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAM9tD,EAA4EtqE,cAAA,EAYlF,IAAAq4H,EAAA,cAAgC/tD,EAA4B,uBAAwB,CAIhF,YAAY9zF,EAAM,CACd,MAAMA,CAAI,CAClB,CACA,EACA4hJ,yBAAA,kBAA4BE,gSCtB5B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMjuD,EAA4EtqE,cAAA,EAC5EwE,EAAkCR,cAAA,EAWxC,IAAAw0H,EAAA,cAA+CluD,EAA4B,4BAA6B,CAQpG,YAAY9zF,EAAM,CACd,MAAMA,CAAI,CAClB,CAEI,MAAM,mBAAoB,CACtB,SAAWguB,EAAO,cAAe,CACzC,CACA,EACA+zH,wCAAA,iCAA2CE,6IC9B3C,IAAI/0H,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yBAA8B,EAAE+D,CAAO,EACpDD,EAAaE,wCAA6C,EAAED,CAAO,0LChBnE,OAAO,eAAe20H,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMC,EAA4D34H,cAAA,EAC5DyyG,EAAOzuG,WAIb,IAAA40H,EAAA,cAAkCD,EAAoB,gCAAiC,CAkBnF,YAAYniJ,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,UAAUmqB,EAAQmG,EAAW,CAC/B,MAAM0lF,EAAS,IAAIimB,EAAK,aAAa,CAAE,OAAQ3rG,EAAW,EAC1D,IAAIlnB,EACJ,MAAI,SAAU+gB,EAAO,YAEjBA,EAAO,WAAW,GAAG,QAAS5lB,GAASyxG,EAAO,KAAK,QAASzxG,CAAK,CAAC,EAClE6E,EAAO+gB,EAAO,WAAW,KAAK6rF,CAAM,GAGpC5sG,EAAO4sG,EAAO,OAAO7rF,EAAO,UAAU,EAEnC,CAAE,KAAA/gB,EAAM,QAASknB,IAAc,eAC9BA,IAAc,yBACdA,IAAc,SAAW,CACzC,CACA,EACA4xH,2BAAA,oBAA8BG,gIC5C9B,IAAIn1H,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2BAAgC,EAAE+D,CAAO,uSCftD,OAAO,eAAcA,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAsB,YAAAA,EAAA,WAAqB,OAO3C,MAAM49D,UAAmB,KAAM,CAE3B,YAAY3mF,EAAS6D,EAAM,CACvB,MAAM7D,CAAO,EACb,KAAK,KAAO6D,CACpB,CACA,CACAklB,EAAA,WAAqB49D,EAOpB,SAAUC,EAAa,CACpBA,EAAY,mBAAwB,qBACpCA,EAAY,oBAAyB,sBACrCA,EAAY,mBAAwB,qBACpCA,EAAY,iBAAsB,oBAClCA,EAAY,oBAAyB,uBACrCA,EAAY,mBAAwB,sBACpCA,EAAY,qBAA0B,wBACtCA,EAAY,wBAA6B,2BACzCA,EAAY,sBAA2B,yBACvCA,EAAY,qBAA0B,wBACtCA,EAAY,sBAA2B,yBACvCA,EAAY,iBAAsB,mBAClCA,EAAY,0BAA+B,4BAC3CA,EAAY,sBAA2B,wBACvCA,EAAY,8BAAmC,gCAC/CA,EAAY,yBAA8B,2BAC1CA,EAAY,uBAA4B,0BACxCA,EAAY,oBAAyB,sBACrCA,EAAY,qBAA0B,uBACtCA,EAAY,sBAA2B,wBACvCA,EAAY,2BAAgC,6BAC5CA,EAAY,yBAA8B,2BAC1CA,EAAY,+BAAoC,iCAChDA,EAAY,8BAAmC,gCAC/CA,EAAY,sBAA2B,wBACvCA,EAAY,uBAA4B,yBACxCA,EAAY,yBAA8B,2BAC1CA,EAAY,6BAAkC,+BAC9CA,EAAY,+BAAoC,iCAChDA,EAAY,uBAA4B,yBACxCA,EAAY,uBAA4B,yBACxCA,EAAY,2BAAgC,6BAC5CA,EAAY,wBAA6B,0BACzCA,EAAY,qBAA0B,uBACtCA,EAAY,mBAAwB,qBACpCA,EAAY,oBAAyB,sBACrCA,EAAY,qBAA0B,uBACtCA,EAAY,2BAAgC,6BAC5CA,EAAY,sBAA2B,wBACvCA,EAAY,yBAA8B,2BAC1CA,EAAY,qBAA0B,uBACtCA,EAAY,wBAA6B,0BACzCA,EAAY,8BAAmC,gCAC/CA,EAAY,8BAAmC,gCAC/CA,EAAY,yBAA8B,2BAC1CA,EAAY,4BAAiC,8BAC7CA,EAAY,iBAAsB,mBAClCA,EAAY,uBAA4B,yBACxCA,EAAY,4BAAiC,8BAC7CA,EAAY,4BAAiC,8BAI7CA,EAAY,sBAA2B,wBACvCA,EAAY,mBAAwB,oBACvC,EAAgB79D,EAAQ,cAAgBA,EAAA,YAAsB,CAAE,EAAC,yOC9ElE,OAAO,eAAes/D,sBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,sBAAA,oBAAG,OAC9B,MAAMC,EAAsCtjE,oBAAA,EACtCujE,EAAqBv/D,YAA2B,EAChDw/D,EAA6Bv/D,6BAAmC,EAItE,MAAMw/D,CAAoB,CACtB,YAAYC,EAAS,CACjB,KAAK,QAAUA,CACvB,CACI,MAAM,KAAK18D,EAAK,CACZ,MAAM1tB,EAAW,MAAO,KAAK,SAAW,OAAO0tB,EAAK,CAAE,QAAS,IAAI,QAAQ,CAAE,OAAQ,qBAAqB,CAAE,CAAC,CAAE,EAC/G,GAAI1tB,EAAS,IAAMA,EAAS,QAAS,CACjC,IAAIwtB,EAAYxtB,EAAS,QAAQ,IAAI,cAAc,EACnD,GAAIwtB,EAAW,CACX,MAAM68D,EAAW78D,EAAU,QAAQ,GAAG,EAClC68D,EAAW,IACX78D,EAAYA,EAAU,OAAO,EAAG68D,CAAQ,EAE5D,CACY,GAAI78D,IAAc,sBAEd,OAAQ,MAAMxtB,EAAS,KAAM,EAI7B,GAAIA,EAAS,QAAQ,IAAI,MAAM,EAAG,CAC9B,IAAIsqF,EAcJ,GAbAtqF,EAAS,QAAQ,QAAQ,CAAC7E,EAAOK,IAAQ,CACrC,GAAIA,IAAQ,OAAQ,CAChB,MAAM+uF,KAAiBN,EAAmB,OAAO9uF,CAAK,EACtD,UAAWquF,KAAQe,EAAW,IAAI,OAAQ,qBAAqB,EAC3D,GAAIf,EAAK,MAAQ,YAAa,CAC1B,GAAIc,EACA,MAAM,IAAI,MAAM,kDAAoD58D,CAAG,EAE3E48D,KAAmBJ,EAA2B,SAASV,EAAK,IAAK97D,CAAG,CACxG,CAEA,CACA,CAAqB,EACG48D,EACA,OAAO,KAAK,KAAKA,CAAY,CAErD,CACgB,MAAM,IAAIN,EAAa,WAAW,kCAAkCx8D,CAAS,GAAIw8D,EAAa,YAAY,uBAAuB,CAEjJ,KAEY,OAAM,IAAI,MAAMhqF,EAAS,YAAc,gBAAgBA,EAAS,MAAM,EAAE,CAEpF,CACA,CACA+pF,6BAAA,oBAA8BI,qKCvD9B,OAAO,eAAeK,OAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,OAAA,KAAG,OACf,MAAMh8C,CAAK,CAOP,OAAO,aAAanrC,EAAM,CACtB,OAAOA,EAAK,QAAQ,GAAG,EAAI,GAAK,EAAEA,GAAQA,EAAK,CAAC,IAAM,IAC9D,CAQI,OAAO,UAAUA,EAAMmC,EAAS,CAE5B,GAAInC,GAAQA,EAAK,CAAC,IAAM,IACpB,OAAO,KAEX,MAAMonF,EAAepnF,EAAK,QAAQ,GAAG,EACrC,GAAIonF,GAAgB,EAAG,CAEnB,GAAIpnF,EAAK,OAASonF,EAAe,GAC1BpnF,EAAK,OAAOonF,EAAe,CAAC,IAAM,KAClCpnF,EAAK,OAAOonF,EAAe,CAAC,IAAM,IACrC,OAAO,KAEX,MAAM5uF,EAASwH,EAAK,OAAO,EAAGonF,CAAY,EAE1C,GAAI5uF,IAAW,IACX,OAAO,KAGX,GAAI2J,EAAQ3J,CAAM,EACd,OAAOA,CAEvB,CACQ,OAAO,IACf,CAMI,OAAO,kBAAkB6uF,EAAc,CACnC,GAAIA,IAAiB,MAAQ,OAAOA,GAAiB,SACjD,OAAOA,EAEX,MAAM7V,EAAK6V,EAAa,KAAK,EAC7B,OAAO7V,GAAU,IACzB,CAOI,OAAO,6BAA6B15E,EAAOc,EAAS,CAChD,MAAO,CAACuyC,EAAK,mBAAmBrzC,CAAK,IAC7Bc,EAAQ,yBAA4B,OAAOd,GAAU,WAAaA,EAAM,CAAC,IAAM,KAAOqzC,EAAK,8BAA8BrzC,CAAK,GAC9I,CAMI,OAAO,mBAAmBgG,EAAS,CAC/B,OAAO,OAAOA,GAAY,UAAYqtC,EAAK,cAAc,KAAKrtC,CAAO,CAC7E,CAMI,OAAO,8BAA8BwpF,EAAW,CAC5C,OAAOn8C,EAAK,oBAAoB,KAAKm8C,CAAS,CACtD,CAMI,OAAO,cAAcxvF,EAAO,CACxB,OAAOA,IAAU,OAAOA,GAAU,UAAaA,GAAS,OAAOA,GAAU,SACjF,CAMI,OAAO,WAAWkoC,EAAK,CACnB,MAAO,GAAQA,GAAOmL,EAAK,UAAU,KAAKnL,CAAG,EACrD,CAMI,OAAO,eAAeA,EAAK,CACvB,MAAO,CAAC,CAACA,GAAOA,EAAI,CAAC,IAAM,KAAOmL,EAAK,eAAe,KAAKnL,CAAG,CACtE,CAMI,OAAO,eAAeliC,EAAS,CAC3B,OAAOqtC,EAAK,eAAertC,CAAO,CAC1C,CAOI,OAAO,gBAAgBqE,EAAShK,EAAK,CACjC,MAAML,EAAQqK,EAAQhK,CAAG,EACzB,OAAS,OAAOL,GAAU,UAAaA,GAASA,EAAM,YAAY,CAC1E,CAMI,OAAO,kBAAkBqK,EAAS,CAC9B,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EACjC,GAAIgpC,EAAK,gBAAgBhpC,EAAShK,CAAG,EACjC,MAAO,GAGf,MAAO,EACf,CAKI,OAAO,0BAA0BA,EAAK,CAClC,OAAOA,EAAI,WAAW,KAAK,CACnC,CAMI,OAAO,UAAU4tF,EAASC,EAAS,CAC/B,MAAMuB,EAAW,OAAO,KAAKxB,CAAO,EAC9ByB,EAAW,OAAO,KAAKxB,CAAO,EACpC,OAAIuB,EAAS,SAAWC,EAAS,OACtB,GACJD,EAAS,MAAOpvF,GAAQ,CAC3B,MAAMsvF,EAAS1B,EAAQ5tF,CAAG,EACpBuvF,EAAS1B,EAAQ7tF,CAAG,EAC1B,OAAQsvF,IAAWC,GAAYD,IAAW,MACtCC,IAAW,MACX,OAAOD,GAAW,UAClB,OAAOC,GAAW,UAClB,KAAK,UAAUD,EAAQC,CAAM,CAC7C,CAAS,CACT,CAEA,CAEA,OAAAv8C,EAAK,UAAY,6DAEjBA,EAAK,eAAiB,eAEtBA,EAAK,cAAgB,aAErBA,EAAK,oBAAsB,eAE3BA,EAAK,mBAAqB,8BAE1BA,EAAK,oBAAsB,gBAG3BA,EAAK,eAAiB,CAClB,cAAe,GACf,QAAS,GACT,aAAc,GACd,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,GACP,UAAW,GACX,YAAa,GACb,SAAU,GACV,QAAS,GACT,YAAa,GACb,QAAS,GACT,QAAS,GACT,QAAS,GACT,UAAW,GACX,aAAc,GACd,aAAc,GACd,WAAY,GACZ,OAAQ,GACR,QAAS,GACT,SAAU,GACV,WAAY,GACZ,SAAU,EACb,EAEDA,EAAK,sBAAwB,CACzB,QACA,SACA,YACA,WACA,YACH,EAEDA,EAAK,uBAAyB,CAC1B,aACA,SACA,MACA,SACA,QACA,QACA,QACA,UACA,WACA,OACA,QACA,SACA,UACH,EAEDA,EAAK,sBAAwB,CACzB,WACA,WACH,EAEDA,EAAK,WAAa,CACd,QACA,OACA,SACA,YACA,SACA,MACA,OACH,EAEDA,EAAK,eAAiB,CAClB,QACA,OACA,QACH,EACDg8C,OAAA,KAAeh8C,+LC3Pf,OAAO,eAAc/jB,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAA+B,qBAAAA,EAAA,wBAAkC,OACjE,MAAMy/D,EAA6BxjE,6BAAmC,EAChEsjE,EAAsCt/D,oBAAA,EACtC8/D,EAA0B7/D,cAAA,EAIhC,MAAMqgE,CAAwB,CAC1B,YAAYC,EAAY,CACpB,KAAK,WAAaA,CAC1B,CAII,eAAgB,CACZ,OAAO,KAAK,UACpB,CAsBI,WAAW5nF,EAAM6nF,EAAajvF,EAAUwuB,EAAQ,qBAAsB,CAClE,MAAMigE,EAAe,KAAK,WAAWrnF,CAAI,EAEzC,GAAIqnF,IAAiB,MAASA,GAAgBA,EAAa,KAAK,IAAM,KAClE,OAAO,KAGX,IAAIS,EAAkB,GACtB,GAAIT,GAAgBQ,EAAa,CAC7B,MAAM/vF,EAAQqvF,EAAO,KAAK,kBAAkBE,CAAY,EACxD,GAAIvvF,GAASA,IAAUkI,EACnB,GAAI,OAAOlI,GAAU,UAAa,CAACqvF,EAAO,KAAK,WAAWrvF,CAAK,GAAK,CAACqvF,EAAO,KAAK,eAAervF,CAAK,EAE5FqvF,EAAO,KAAK,mBAAmBrvF,CAAK,IACrCgwF,EAAkB,QAItB,QAAOhwF,CAG3B,CAEQ,MAAMU,EAAS2uF,EAAO,KAAK,UAAUnnF,EAAM,KAAK,UAAU,EACpD+nF,EAAQ,KAAK,WAAW,QAAQ,EAChCC,GAAiB,CAAC,CAACD,GAASA,IAAU,KAAOA,EAAM,QAAQ,GAAG,EAAI,EAClEroD,EAAO,KAAK,WAAW,OAAO,EAC9BuoD,EAAmBd,EAAO,KAAK,mBAAmBnnF,CAAI,EAC5D,GAAIxH,EAAQ,CACR,MAAM0vF,EAAqB,KAAK,WAAW1vF,CAAM,EAC3CV,EAAQqvF,EAAO,KAAK,kBAAkBe,CAAkB,EAC9D,GAAIpwF,EAAO,CACP,GAAI,OAAOowF,GAAuB,UAAY,CAACtvF,EAAQ,oBAInD,GAAI,CAACuuF,EAAO,KAAK,6BAA6BrvF,EAAOc,CAAO,EAExD,OAAOoH,UAKPlI,EAAM,CAAC,IAAM,KAAO,CAACmwF,GAAoB,CAACC,EAAmB,SAAS,GAAK,EAAEloF,KAAQ,KAAK,YAE1F,OAAOA,EAGf,OAAOlI,EAAQkI,EAAK,OAAOxH,EAAO,OAAS,CAAC,CAC5D,CACA,SACiBqvF,IAAiBE,GAASA,IAAU,IAAQnvF,EAAQ,0BAA6B8mC,GAAQsoD,IAC3F,CAACC,GAAoB,CAACd,EAAO,KAAK,aAAannF,CAAI,EACtD,GAAIgoF,EAAe,CACf,GAAIpvF,EAAQ,yBACR,OAASmvF,GAASroD,KAAYmnD,EAA2B,SAASkB,EAAOroD,CAAI,EAAI,IAAM1/B,EAGvF,MAAM,IAAI2mF,EAAa,WAAW,sCAAsC3mF,CAAI,iBAAiB+nF,CAAK,oBAAqBpB,EAAa,YAAY,qBAAqB,CAEzL,KAEgB,QAAOoB,EAAQ/nF,UAGd,CAAC6nF,GAAenoD,GAAQ,CAACuoD,GAAoB,CAACd,EAAO,KAAK,aAAannF,CAAI,EAChF,SAAW6mF,EAA2B,SAAS7mF,EAAM0/B,CAAI,EAG7D,GAAIooD,EACA,OAAO9nF,EAGP,MAAM,IAAI2mF,EAAa,WAAW,gDAAgD3mF,CAAI,OAAO,KAAK,UAAUqnF,CAAY,CAAC,IAAKV,EAAa,YAAY,mBAAmB,CAEtL,CAWI,WAAW3mD,EAAK+nD,EAAO,CAEnB,GAAIA,GAAS,KAAK,WAAW,QAAQ,GAAK/nD,EAAI,WAAW,KAAK,WAAW,QAAQ,CAAC,EAC9E,OAAOA,EAAI,OAAO,KAAK,WAAW,QAAQ,EAAE,MAAM,EAGtD,GAAI,CAAC+nD,GAAS,KAAK,WAAW,OAAO,GAAK/nD,EAAI,WAAW,KAAK,WAAW,OAAO,CAAC,EAC7E,OAAOA,EAAI,OAAO,KAAK,WAAW,OAAO,EAAE,MAAM,EAKrD,MAAMmoD,EAAoB,CAAE,OAAQ,GAAI,OAAQnoD,CAAK,EACrD,UAAW7nC,KAAO,KAAK,WAAY,CAC/B,MAAML,EAAQ,KAAK,WAAWK,CAAG,EACjC,GAAIL,GAAS,CAACqvF,EAAO,KAAK,mBAAmBhvF,CAAG,EAAG,CAC/C,MAAMiwF,EAAajB,EAAO,KAAK,kBAAkBrvF,CAAK,EACtD,GAAIkoC,EAAI,WAAWooD,CAAU,EAAG,CAC5B,MAAMC,EAASroD,EAAI,OAAOooD,EAAW,MAAM,EAC3C,GAAKC,EAMIA,EAAO,OAASF,EAAkB,OAAO,SAE9CA,EAAkB,OAAShwF,EAC3BgwF,EAAkB,OAASE,WARvBN,EAEA,OAAO5vF,CAQnC,CACA,CACA,CAEQ,OAAIgwF,EAAkB,OACXA,EAAkB,OAAS,IAAMA,EAAkB,OAEvDnoD,CACf,CACA,CACA5Y,EAAA,wBAAkCugE,EAClCvgE,EAA+B,qBAAA,CAC3B,mBAAoB,GACpB,wBAAyB,GACzB,yBAA0B,EAC7B,4MC1KD,OAAO,eAAekhE,gBAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,gBAAA,cAAG,OACxB,MAAMzB,EAA6BxjE,6BAAmC,EAChEsjE,EAAsCt/D,oBAAA,EACtCq/D,EAAwDp/D,6BAAA,EACxDihE,EAAgEhhE,iCAAA,EAChE4/D,EAA0B3/D,cAAA,EAIhC,MAAMghE,CAAc,CAChB,YAAY5vF,EAAS,CACjBA,EAAUA,GAAW,CAAE,EACvB,KAAK,eAAiBA,EAAQ,gBAAkB,IAAI8tF,EAAsB,oBAC1E,KAAK,cAAgB,CAAE,EACvB,KAAK,gBAAkB,CAAC9tF,EAAQ,eAChC,KAAK,wBAA0B,CAAC,CAACA,EAAQ,wBACzC,KAAK,yBAA2BA,EAAQ,0BAA4B,GACpE,KAAK,uBAAyB,2BAA4BA,EAAU,CAAC,CAACA,EAAQ,uBAAyB,EAC/G,CAUI,OAAO,iBAAiBd,EAAO2wF,EAAaC,EAAW,CACnD,GAAI,OAAO5wF,GAAU,SACjB,MAAM,IAAI6uF,EAAa,WAAW,sDAAsD,KAAK,UAAU7uF,CAAK,CAAC,IAAK4wF,CAAS,EAE/H,GAAI,CAACvB,EAAO,KAAK,mBAAmB,KAAKrvF,CAAK,EAAG,CAC7C,GAAI2wF,EACA,MAAM,IAAI9B,EAAa,WAAW,kEAAkE,KAAK,UAAU7uF,CAAK,CAAC,IAAK4wF,CAAS,EAGvI,MAAO,EAEvB,CACQ,MAAO,EACf,CASI,OAAO,kBAAkB5wF,EAAO6wF,EAAc,CAC1C,GAAI,OAAO7wF,GAAU,SACjB,MAAM,IAAI6uF,EAAa,WAAW,uDAAuD,KAAK,UAAU7uF,CAAK,CAAC,IAAK6uF,EAAa,YAAY,sBAAsB,EAEtK,GAAI,CAACQ,EAAO,KAAK,oBAAoB,KAAKrvF,CAAK,EAAG,CAC9C,GAAI6wF,EACA,MAAM,IAAIhC,EAAa,WAAW,6DAA6D,KAAK,UAAU7uF,CAAK,CAAC,IAAK6uF,EAAa,YAAY,sBAAsB,EAGxK,MAAO,EAEvB,CACQ,MAAO,EACf,CAMI,kBAAkBxkF,EAAS,CACvB,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EAAG,CACpC,IAAIrK,EAAQqK,EAAQhK,CAAG,EACvB,GAAIL,GAAS,OAAOA,GAAU,UACtBA,EAAM,UAAU,GAAK,CAACA,EAAM,KAAK,EAAG,CACpC,GAAI,OAAOA,EAAM,UAAU,GAAM,UAAYqvF,EAAO,KAAK,eAAervF,EAAM,UAAU,CAAC,EACrF,MAAM,IAAI6uF,EAAa,WAAW,gEAAgE7uF,EAAM,UAAU,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAExK7uF,EAAQqK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,MAAOA,EAAM,UAAU,CAAC,CAAE,EAC3FA,EAAM,KAAK,EAAIA,EAAM,UAAU,EAC3BqvF,EAAO,KAAK,mBAAmBrvF,EAAM,UAAU,CAAC,EAChD,OAAOA,EAAM,UAAU,EAGvBA,EAAM,UAAU,EAAI,EAE5C,CAEA,CACQ,OAAOqK,CACf,CASI,oBAAoBA,EAASymF,EAAyBz7E,EAAM,CACxD,MAAMy6E,EAAazlF,EAAQ,cAAe,EAC1C,UAAWhK,KAAQgV,GAAQ,OAAO,KAAKy6E,CAAU,EAE7C,GAAIT,EAAO,KAAK,sBAAsB,QAAQhvF,CAAG,EAAI,GAAK,CAACgvF,EAAO,KAAK,0BAA0BhvF,CAAG,EAAG,CAEnG,MAAM0wF,EAAWjB,EAAWzvF,CAAG,EAC/B,GAAIgvF,EAAO,KAAK,mBAAmBhvF,CAAG,GAAKgvF,EAAO,KAAK,uBAAuB,QAAQhvF,CAAG,GAAK,IACtFA,IAAQ,SAAW,OAAOyvF,EAAWzvF,CAAG,GAAM,UAC3C,EAAEyvF,EAAWzvF,CAAG,EAAE,YAAY,GAAKyvF,EAAWzvF,CAAG,EAAE,YAAY,IAAM,SACxE,MAAM,IAAIwuF,EAAa,WAAW;AAAA,gBAC1CxuF,CAAG,OAAO,KAAK,UAAU0wF,CAAQ,CAAC,GAAIlC,EAAa,YAAY,oBAAoB,EAInF,GAAIQ,EAAO,KAAK,sBAAsB,QAAQA,EAAO,KAAK,kBAAkB0B,CAAQ,CAAC,GAAK,EACtF,MAAM,IAAIlC,EAAa,WAAW;AAAA,gBACtCxuF,CAAG,OAAO,KAAK,UAAU0wF,CAAQ,CAAC,GAAIlC,EAAa,YAAY,qBAAqB,EAGpF,GAAIkC,GAAY1B,EAAO,KAAK,mBAAmBA,EAAO,KAAK,kBAAkB0B,CAAQ,CAAC,GAC/EA,EAAS,SAAS,IAAM,GAC3B,MAAM,IAAIlC,EAAa,WAAW,4CAA4CxuF,CAAG,OAAO,KAAK,UAAU0wF,CAAQ,CAAC,IAAKlC,EAAa,YAAY,uBAAuB,EAGzK,KAAOQ,EAAO,KAAK,cAAcS,EAAWzvF,CAAG,CAAC,GAAG,CAC/C,MAAML,EAAQ8vF,EAAWzvF,CAAG,EAC5B,IAAI2wF,EAAU,GACd,GAAI,OAAOhxF,GAAU,SACjB8vF,EAAWzvF,CAAG,EAAIgK,EAAQ,WAAWrK,EAAO,EAAI,EAChDgxF,EAAUA,GAAWhxF,IAAU8vF,EAAWzvF,CAAG,MAE5C,CACD,MAAMq5E,EAAK15E,EAAM,KAAK,EAChBJ,EAAOI,EAAM,OAAO,EAEpBixF,EAAgB,EAAE,YAAajxF,IAAUqvF,EAAO,KAAK,WAAWhvF,CAAG,EACzE,GAAI,QAASL,EAEe05E,GAAO,MAAQ,OAAOA,GAAO,WACjDoW,EAAWzvF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIyvF,EAAWzvF,CAAG,CAAC,EAAG,CAAE,MAAOgK,EAAQ,WAAWqvE,EAAI,EAAI,EAAG,EAC3GsX,EAAUA,GAAWtX,IAAOoW,EAAWzvF,CAAG,EAAE,KAAK,WAGhD,CAACgvF,EAAO,KAAK,mBAAmBhvF,CAAG,GAAK4wF,EAAe,CAE5D,MAAMC,EAAQ7mF,EAAQ,WAAWhK,EAAK,EAAI,EACtC6wF,IAAU7wF,IAEVyvF,EAAWzvF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIyvF,EAAWzvF,CAAG,CAAC,EAAG,CAAE,MAAO6wF,CAAK,CAAE,EACpFF,EAAU,GAE1C,CACwB,GAAIpxF,GAAQ,OAAOA,GAAS,UAAYA,IAAS,WACzC,CAACI,EAAM,YAAY,GAAK,CAACA,EAAM,YAAY,EAAE,OAAO,IACrDixF,EAAe,CAElB,IAAIE,EAAe9mF,EAAQ,WAAWzK,EAAM,EAAI,EAC5CkxF,GAA2BlxF,IAASuxF,IACpCA,EAAe9mF,EAAQ,WAAWzK,EAAM,EAAK,GAE7CuxF,IAAiBvxF,IACjBoxF,EAAU,GACVlB,EAAWzvF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIyvF,EAAWzvF,CAAG,CAAC,EAAG,CAAE,QAAS8wF,CAAY,CAAE,EAE7H,CACA,CACoB,GAAI,CAACH,EACD,KAExB,CACA,CAEA,CAMI,UAAU3mF,EAAS,CAAE,eAAA+mF,EAAgB,sBAAAC,CAAqB,EAAI,CAE1D,GAAIA,GAAyBD,IAAmB,EAC5C,UAAW/wF,KAAO,OAAO,KAAKgK,CAAO,EACjC,GAAIhK,IAAQ,aAAe,OAAOgK,EAAQhK,CAAG,GAAM,SAC/CgK,EAAQhK,CAAG,EAAIgK,EAAQhK,CAAG,EAAE,YAAa,MAExC,CACD,MAAML,EAAQqK,EAAQhK,CAAG,EACzB,GAAIL,GAAS,OAAOA,GAAU,UACtB,OAAOA,EAAM,WAAW,GAAM,SAAU,CACxC,MAAMkkC,EAAYlkC,EAAM,WAAW,EAAE,YAAa,EAC9CkkC,IAAclkC,EAAM,WAAW,IAC/BqK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,YAAakkC,CAAS,CAAE,EAEjH,CAEA,CAGA,CAKI,iBAAiB75B,EAAS,CACtB,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EAAG,CACpC,MAAMrK,EAAQqK,EAAQhK,CAAG,EACzB,GAAIL,GAAS,OAAOA,GAAU,UAC1B,GAAI,OAAOA,EAAM,YAAY,GAAM,SAC/BqK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEL,CAAK,EAAG,CAAE,aAAc,CAAE,CAACA,EAAM,YAAY,CAAC,EAAG,EAAI,EAAI,UAEnG,MAAM,QAAQA,EAAM,YAAY,CAAC,EAAG,CACzC,MAAMkb,EAAW,CAAE,EACnB,UAAWo2E,KAAkBtxF,EAAM,YAAY,EAC3Ckb,EAASo2E,CAAc,EAAI,GAE/BjnF,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,aAAckb,CAAQ,CAAE,CACrG,EAEA,CACA,CAMI,qBAAqB7Q,EAAS,CAAE,eAAA+mF,CAAc,EAAIG,EAAe,CAC7D,GAAIH,GAAkBA,GAAkB,KAChC/mF,EAAQ,YAAY,EAAG,CACvB,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EACjC,GAAI,CAAAglF,EAAO,KAAK,0BAA0BhvF,CAAG,GAGzC,CAACgvF,EAAO,KAAK,mBAAmBhvF,CAAG,GAAK,CAACgvF,EAAO,KAAK,gBAAgBhlF,EAAShK,CAAG,EAAG,CACpF,MAAML,EAAQqK,EAAQhK,CAAG,EACrBL,GAAS,OAAOA,GAAU,SACpB,eAAgBqK,EAAQhK,CAAG,IAE7BgK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIgK,EAAQhK,CAAG,CAAC,EAAG,CAAE,aAAc,EAAI,CAAE,IAKxFgK,EAAQhK,CAAG,EAAI,CACX,MAAOL,EACP,aAAc,EACjB,EACGqvF,EAAO,KAAK,6BAA6BrvF,EAAOuxF,CAAa,IAC7DlnF,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIgK,EAAQhK,CAAG,CAAC,EAAG,CAAE,UAAW,EAAI,CAAE,GAGjH,CAEgB,OAAOgK,EAAQ,YAAY,CAC3C,CAEA,CASI,6BAA6BmnF,EAAeC,EAAcF,EAAel8E,EAAM,CAC3E,UAAWhV,KAAQgV,GAA0C,OAAO,KAAKo8E,CAAY,EACjF,GAAIpC,EAAO,KAAK,gBAAgBmC,EAAenxF,CAAG,IAI1C,OAAOoxF,EAAapxF,CAAG,GAAM,SAC7BoxF,EAAapxF,CAAG,EAAI,CAAE,MAAOoxF,EAAapxF,CAAG,EAAG,aAAc,EAAM,EAMpEoxF,EAAapxF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIoxF,EAAapxF,CAAG,CAAC,EAAG,CAAE,aAAc,EAAI,CAAE,EAG9F,CAACgvF,EAAO,KAAK,UAAUmC,EAAcnxF,CAAG,EAAGoxF,EAAapxF,CAAG,CAAC,GAC5D,MAAM,IAAIwuF,EAAa,WAAW,+CAA+CxuF,CAAG,SAAS,KAAK,UAAUgvF,EAAO,KAAK,kBAAkBmC,EAAcnxF,CAAG,CAAC,CAAC,CAAC,OAAO,KAAK,UAAUgvF,EAAO,KAAK,kBAAkBoC,EAAapxF,CAAG,CAAC,CAAC,CAAC,GAAIwuF,EAAa,YAAY,2BAA2B,CAIjT,CAMI,SAASxkF,EAAS,CAAE,eAAA+mF,GAAkB,CAClC,UAAW/wF,KAAO,OAAO,KAAKgK,CAAO,EAAG,CAEpC,GAAIglF,EAAO,KAAK,0BAA0BhvF,CAAG,EACzC,SAGJ,GAAIA,IAAQ,GACR,MAAM,IAAIwuF,EAAa,WAAW,wCAAwCxuF,CAAG,OAAO,KAAK,UAAUgK,EAAQhK,CAAG,CAAC,CAAC,IAAKwuF,EAAa,YAAY,uBAAuB,EAEzK,MAAM7uF,EAAQqK,EAAQhK,CAAG,EACnBqxF,EAAY,OAAO1xF,EAEzB,GAAIqvF,EAAO,KAAK,mBAAmBhvF,CAAG,EAAG,CACrC,OAAQA,EAAI,OAAO,CAAC,EAAC,CACjB,IAAK,QACD,GAAIL,IAAU,MAAQ0xF,IAAc,SAChC,MAAM,IAAI7C,EAAa,WAAW,gCAAgC7uF,CAAK,GAAI6uF,EAAa,YAAY,qBAAqB,EAE7H,MACJ,IAAK,OACD,GAAI7uF,IAAU,MAAQ0xF,IAAc,SAChC,MAAM,IAAI7C,EAAa,WAAW,+BAA+BxkF,EAAQhK,CAAG,CAAC,GAAIwuF,EAAa,YAAY,gBAAgB,EAE9H,MACJ,IAAK,WACG7uF,IAAU,MACV0wF,EAAc,iBAAiB1wF,EAAO,GAAM6uF,EAAa,YAAY,wBAAwB,EAEjG,MACJ,IAAK,UACD,GAAI7uF,IAAU,MAAQ0xF,IAAc,SAChC,MAAM,IAAI7C,EAAa,WAAW,qCAAqC7uF,CAAK,GAAI6uF,EAAa,YAAY,qBAAqB,EAElI,MACJ,IAAK,YACG7uF,IAAU,MACV0wF,EAAc,kBAAkB1wF,EAAO,EAAI,EAE/C,MACJ,IAAK,YACD,GAAIoxF,IAAmB,EACnB,MAAM,IAAIvC,EAAa,WAAW,wCAAwC7uF,CAAK,GAAI6uF,EAAa,YAAY,qBAAqB,EAErI,GAAI7uF,IAAU,MAAQ0xF,IAAc,UAChC,MAAM,IAAI7C,EAAa,WAAW,sCAAsC7uF,CAAK,GAAI6uF,EAAa,YAAY,uBAAuB,EAErI,KACxB,CAEgB,GAAIQ,EAAO,KAAK,eAAehvF,CAAG,GAAKgvF,EAAO,KAAK,eAAeA,EAAO,KAAK,kBAAkBrvF,CAAK,CAAC,EAClG,MAAM,IAAI6uF,EAAa,WAAW,gDAAgDxuF,CAAG,OAAOgvF,EAAO,KAC9F,kBAAkBrvF,CAAK,CAAC,IAAK6uF,EAAa,YAAY,oBAAoB,EAEnF,QAChB,CAEY,GAAI7uF,IAAU,KACV,OAAQ0xF,EAAS,CACb,IAAK,SACD,GAAIrC,EAAO,KAAK,UAAUrvF,EAAOqK,CAAO,IAAMhK,EAC1C,MAAM,IAAIwuF,EAAa,WAAW,oDAAoDxuF,CAAG,OAAO,KAC3F,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,kBAAkB,EAEzE,GAAIQ,EAAO,KAAK,eAAehvF,CAAG,EAAG,CACjC,GAAIL,IAAU,QACV,MAAM,IAAI6uF,EAAa,WAAW,4CAA4CxuF,CAAG,OAAOL,CAAK,IAAK6uF,EAAa,YAAY,mBAAmB,EAE7I,GAAIQ,EAAO,KAAK,WAAWrvF,CAAK,GAAKA,IAAU,IAAIywF,EAA0B,wBAAwBpmF,CAAO,EAAE,WAAWhK,CAAG,EAC7H,MAAM,IAAIwuF,EAAa,WAAW,iDAAiDxuF,CAAG,OAAOL,CAAK,IAAK6uF,EAAa,YAAY,mBAAmB,CAEnL,CACwB,MACJ,IAAK,SACD,GAAI,CAACQ,EAAO,KAAK,aAAahvF,CAAG,GAAK,EAAE,QAASL,KACzCA,EAAM,OAAO,IAAM,MAAQ,CAACqK,EAAQ,OAAO,EAAI,CAACA,EAAQ,QAAQ,GACpE,MAAM,IAAIwkF,EAAa,WAAW,kCAAkCxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAExJ,UAAW8C,KAAa,OAAO,KAAK3xF,CAAK,EAAG,CACxC,MAAM4xF,EAAc5xF,EAAM2xF,CAAS,EACnC,GAAKC,EAGL,OAAQD,EAAS,CACb,IAAK,MACD,GAAItC,EAAO,KAAK,eAAeuC,CAAW,GACnCA,IAAgB,SAAWA,IAAgB,OAASA,IAAgB,UAAYA,IAAgB,QACnG,MAAM,IAAI/C,EAAa,WAAW,gDAAgDxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAEtK,GAAIQ,EAAO,KAAK,eAAehvF,CAAG,EAAG,CACjC,GAAIuxF,IAAgB,QAChB,MAAM,IAAI/C,EAAa,WAAW,4CAA4CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAE7J,GAAIQ,EAAO,KAAK,WAAWuC,CAAW,GACpCA,IAAgB,IAAInB,EAA0B,wBAAwBpmF,CAAO,EAAE,WAAWhK,CAAG,EAChG,MAAM,IAAIwuF,EAAa,WAAW,iDAAiDxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,CAE/M,CACoC,GAAI,OAAO+C,GAAgB,SACvB,MAAM,IAAI/C,EAAa,WAAW,8CAA8CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAEpK,GAAIQ,EAAO,KAAK,UAAUuC,EAAavnF,CAAO,IAAMhK,EAChD,MAAM,IAAIwuF,EAAa,WAAW,oDAAoDxuF,CAAG,OAAO,KAC3F,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,kBAAkB,EAEzE,MACJ,IAAK,QACD,GAAI7uF,EAAM,YAAY,IAAM,SAAW4xF,IAAgB,OAASA,IAAgB,SAC5E,MAAM,IAAI/C,EAAa,WAAW,iEAAiExuF,CAAG,OAAOuxF,CAAW,IAAK/C,EAAa,YAAY,oBAAoB,EAE9K,GAAI,OAAO+C,GAAgB,SACvB,MAAM,IAAI/C,EAAa,WAAW,kDAAkD,KAAK,UAAU6C,CAAS,CAAC,IAAK7C,EAAa,YAAY,oBAAoB,EAEnK,GAAI+C,IAAgB,OAASA,IAAgB,WACrCR,IAAmB,GAAOQ,IAAgB,WAC1CR,IAAmB,GAAOQ,IAAgB,WAC1CA,EAAY,CAAC,IAAM,KAAO,CAACvC,EAAO,KAAK,WAAWuC,CAAW,GACjE,MAAM,IAAI/C,EAAa,WAAW,oDAAoDxuF,CAAG,OAAOuxF,CAAW,IAAK/C,EAAa,YAAY,oBAAoB,EAEjK,MACJ,IAAK,WACD,GAAI,OAAO+C,GAAgB,UAAY5xF,EAAM,KAAK,GAAKA,EAAM,KAAK,IAAM4xF,EACpE,MAAM,IAAI/C,EAAa,WAAW,uDAAuDxuF,CAAG,MACjIuxF,CAAW,UAAU5xF,EAAM,KAAK,CAAC,IAAK6uF,EAAa,YAAY,wBAAwB,EAEtD,GAAI,UAAW7uF,EACX,MAAM,IAAI6uF,EAAa,WAAW,iDAAiDxuF,CAAG,IAAKwuF,EAAa,YAAY,wBAAwB,EAEhJ,MACJ,IAAK,aACD,GAAIuC,IAAmB,IACf,OAAO,KAAKQ,CAAW,EAAE,OAAS,GAC/BvC,EAAO,KAAK,eAAe,QAAQ,OAAO,KAAKuC,CAAW,EAAE,CAAC,CAAC,EAAI,GACrE,MAAM,IAAI/C,EAAa,WAAW,gCAAgCxuF,CAAG,OAAO,OAAO,KAAKuxF,CAAW,CAAC,kCAC1HvC,EAAO,KAAK,eAAe,KAAK,IAAI,CAAC,GAAIR,EAAa,YAAY,yBAAyB,EAG7E,UAAWyC,KAAkB,OAAO,KAAKM,CAAW,EAAG,CACnD,GAAIN,IAAmB,SAAWtxF,EAAM,UAAU,EAC9C,MAAM,IAAI6uF,EAAa,WAAW,6EAA6ExuF,CAAG,IAAKwuF,EAAa,YAAY,wBAAwB,EAE5K,GAAIQ,EAAO,KAAK,WAAW,QAAQiC,CAAc,EAAI,EACjD,MAAM,IAAIzC,EAAa,WAAW,gCAAgCxuF,CAAG,OAAOixF,CAAc,sBACrHjC,EAAO,KAAK,WAAW,KAAK,IAAI,CAAC,GAAIR,EAAa,YAAY,yBAAyB,CAExG,CACoC,MACJ,IAAK,YACD6B,EAAc,iBAAiBkB,EAAa,GAAM/C,EAAa,YAAY,wBAAwB,EACnG,MACJ,IAAK,aACD6B,EAAc,kBAAkBkB,EAAa,EAAI,EACjD,MACJ,IAAK,UACD,GAAIA,IAAgB,MAAQ,OAAOA,GAAgB,UAC/C,MAAM,IAAI/C,EAAa,WAAW,8CAA8CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,oBAAoB,EAErK,GAAI,EAAE,QAAS7uF,IAAU,CAACqvF,EAAO,KAAK,WAAWhvF,CAAG,EAChD,MAAM,IAAIwuF,EAAa,WAAW,mCAAmCxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,uBAAuB,EAE7J,MACJ,IAAK,SACD,GAAIuC,IAAmB,GAAO,CAACpxF,EAAM,YAAY,GAAK,CAACA,EAAM,YAAY,EAAE,QAAQ,EAC/E,MAAM,IAAI6uF,EAAa,WAAW,gDAAgDxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,uBAAuB,EAE1K,MACJ,IAAK,QACD,GAAIQ,EAAO,KAAK,mBAAmBuC,CAAW,GAAKA,IAAgB,QAC/D,MAAM,IAAI/C,EAAa,WAAW,0CAA0CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,kBAAkB,CAEnM,CACA,CACwB,MACJ,QACI,MAAM,IAAIA,EAAa,WAAW,iCAAiCxuF,CAAG,OAAOL,CAAK,IAAK6uF,EAAa,YAAY,uBAAuB,CAC/J,CAEA,CACA,CAQI,eAAexkF,EAASvJ,EAAS+wF,EAAmB,CAEhD,OAAI,OAAOxnF,GAAY,WAInBwnF,GAAqB,EAAE,UAAWxnF,IAAYvJ,EAAQ,eACnD,OAAOA,EAAQ,eAAkB,UAAY,UAAWA,EAAQ,gBACnEuJ,EAAQ,OAAO,EAAIvJ,EAAQ,cAAc,OAAO,EAC5CA,EAAQ,cAAc,iBAAiB,IACvCuJ,EAAQ,iBAAiB,EAAI,KAIjCvJ,EAAQ,SAAW,CAACA,EAAQ,WACtB,UAAWuJ,EAKRA,EAAQ,OAAO,IAAM,MAAQ,OAAOA,EAAQ,OAAO,GAAM,UAC3D,CAACglF,EAAO,KAAK,WAAWhlF,EAAQ,OAAO,CAAC,IAE3CA,EAAQ,OAAO,KAAQ0kF,EAA2B,SAAS1kF,EAAQ,OAAO,EAAGvJ,EAAQ,eAAiBA,EAAQ,cAAc,OAAO,GAAKA,EAAQ,OAAO,IANvJuJ,EAAQ,OAAO,EAAIvJ,EAAQ,QAC3BuJ,EAAQ,iBAAiB,EAAI,MAQ9BA,CACf,CAOI,oBAAoBimF,EAAY/iD,EAAS,CACrC,GAAI,CAAC8hD,EAAO,KAAK,WAAWiB,CAAU,EAClC,GAAI,CACAA,KAAiBvB,EAA2B,SAASuB,EAAY/iD,CAAO,CACxF,MACuB,CACP,MAAM,IAAI,MAAM,wBAAwB+iD,CAAU,EAAE,CACpE,CAGQ,OAAI,KAAK,wBAA0BA,EAAW,WAAW,mBAAmB,IACxEA,EAAa,uBAEVA,CACf,CASI,MAAM,mBAAmBjmF,EAASvJ,EAASuU,EAAM,CAC7C,UAAWhV,KAAQgV,GAA0C,OAAO,KAAKhL,CAAO,EAAI,CAChF,MAAMrK,EAAQqK,EAAQhK,CAAG,EACzB,GAAIL,GAAS,OAAOA,GAAU,UACtB,aAAcA,GAASA,EAAM,UAAU,IAAM,MAAQ,CAACc,EAAQ,qBAAsB,CAMpF,GAAI,KAAK,gBACL,GAAI,CACA,MAAMgxF,EAAgB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEznF,CAAO,EAAG,CAAE,CAAChK,CAAG,EAAG,OAAO,OAAO,CAAA,EAAIgK,EAAQhK,CAAG,CAAC,EAAG,EAC1G,OAAOyxF,EAAczxF,CAAG,EAAE,UAAU,EACpC,MAAM,KAAK,MAAML,EAAM,UAAU,EAAG,OAAO,OAAO,OAAO,OAAO,GAAIc,CAAO,EAAG,CAAE,SAAU,GAAO,cAAAgxF,EAAe,iBAAkB,GAAM,2BAA4B,GAAM,qBAAsB,EAAI,CAAE,CAAC,CACnO,OAC+BntG,EAAG,CACN,MAAM,IAAIkqG,EAAa,WAAWlqG,EAAE,QAASkqG,EAAa,YAAY,sBAAsB,CACxH,CAEoBxkF,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,YAAa,MAAM,KAAK,MAAMA,EAAM,UAAU,EAAG,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIc,CAAO,EAAG,CAAE,SAAU,GAAO,kBAAmB,GAAM,2BAA4B,GAAM,cAAeuJ,CAAO,CAAE,CAAC,GAClP,cAAe,CAAA,CAAE,CAC9C,CAEA,CACQ,OAAOA,CACf,CACI,MAAM,MAAMA,EAASvJ,EAAU,CAAE,EAGjCixF,EAAkB,CAAA,EAAI,CAClB,KAAM,CAAE,QAAAxkD,EAAS,cAAAukD,EAAe,SAAAE,EAAU,eAAAZ,EAAiBV,EAAc,wBAAyB,sBAAAW,EAAuB,iBAAAY,EAAkB,kBAAAC,CAAoB,EAAGpxF,EAC5JqxF,EAAiBrxF,EAAQ,gBAAkB,CAAE,EAEnD,GAAI,OAAO,KAAKqxF,CAAc,EAAE,QAAU,KAAK,yBAC3C,MAAM,IAAItD,EAAa,WAAW,sDAAwD,OAAO,KAAKsD,CAAc,EAAGtD,EAAa,YAAY,gBAAgB,EAEpK,GAAIxkF,GAAY,KAA+B,CAE3C,GAAI,CAAC4nF,GAAoBH,GAAiBzC,EAAO,KAAK,kBAAkByC,CAAa,EACjF,MAAM,IAAIjD,EAAa,WAAW,yDAA0DA,EAAa,YAAY,6BAA6B,EAGtJ,OAAO,IAAI4B,EAA0B,wBAAwB,KAAK,eAAe,GAAI3vF,EAAS,EAAK,CAAC,CAChH,SACiB,OAAOuJ,GAAY,SAAU,CAClC,MAAMimF,EAAa,KAAK,oBAAoBjmF,EAASkjC,CAAO,EACtD6kD,EAAiB,KAAK,kBAAkB9B,EAAYxvF,CAAO,EACjE,GAAIsxF,EACA,OAAO,IAAI3B,EAA0B,wBAAwB2B,CAAc,EAE/E,MAAMC,EAAsB,MAAM,KAAK,MAAM,MAAM,KAAK,KAAK/B,CAAU,EAAG,OAAO,OAAO,OAAO,OAAO,CAAE,EAAExvF,CAAO,EAAG,CAAE,QAASwvF,EAAY,SAAU,GAAM,eAAgB,OAAO,OAAO,OAAO,OAAO,CAAA,EAAI6B,CAAc,EAAG,CAAE,CAAC7B,CAAU,EAAG,EAAI,CAAE,CAAC,CAAE,CAAC,EACtP,YAAK,eAAe+B,EAAoB,cAAa,EAAIvxF,EAAS,EAAI,EAC/DuxF,CACnB,SACiB,MAAM,QAAQhoF,CAAO,EAAG,CAE7B,MAAMioF,EAAc,CAAE,EAChB5mE,EAAW,MAAM,QAAQ,IAAIrhB,EAAQ,IAAI,CAACs3D,EAAY58E,IAAM,CAC9D,GAAI,OAAO48E,GAAe,SAAU,CAChC,MAAM2uB,EAAa,KAAK,oBAAoB3uB,EAAYp0B,CAAO,EAC/D+kD,EAAYvtG,CAAC,EAAIurG,EACjB,MAAM8B,EAAiB,KAAK,kBAAkB9B,EAAYxvF,CAAO,EACjE,OAAIsxF,GAGG,KAAK,KAAK9B,CAAU,CAC/C,KAEoB,QAAO3uB,CAE3B,CAAa,CAAC,EAEF,GAAIuwB,EACA,OAAO,IAAIzB,EAA0B,wBAAwB/kE,CAAQ,EAEzE,MAAM6mE,EAAkB,MAAM7mE,EAAS,OAAO,CAAC8mE,EAAmBlZ,EAAcv0F,IAAMytG,EACjF,KAAMC,GAAe,KAAK,MAAMnZ,EAAc,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEx4E,CAAO,EAAG,CAAE,QAASwxF,EAAYvtG,CAAC,GAAK+b,EAAQ,QAAS,SAAU,CAAC,CAACwxF,EAAYvtG,CAAC,GAAK+b,EAAQ,SAAU,cAAe2xF,EAAW,cAAa,EAAI,eAAgBH,EAAYvtG,CAAC,EAAI,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEotG,CAAc,EAAG,CAAE,CAACG,EAAYvtG,CAAC,CAAC,EAAG,EAAI,CAAE,EAAIotG,EAAgB,EAEtW,CACI,eAAgBptG,EAAI2mC,EAAS,OAAS,CACtD,CAAa,CAAC,EAAG,QAAQ,QAAQ,IAAI+kE,EAA0B,wBAAwBqB,GAAiB,CAAE,CAAA,CAAC,CAAC,EAEhG,YAAK,eAAeS,EAAgB,cAAa,EAAIzxF,EAAS,EAAI,EAC3DyxF,CACnB,SACiB,OAAOloF,GAAY,SAAU,CAClC,GAAI,aAAcA,EACd,OAAO,MAAM,KAAK,MAAMA,EAAQ,UAAU,EAAGvJ,CAAO,EAcxD,GAXAuJ,EAAU,OAAO,OAAO,CAAA,EAAIA,CAAO,EAE/B2nF,GACA,OAAO3nF,EAAQ,OAAO,EAG1B,KAAK,eAAeA,EAASvJ,EAAS,EAAI,EAG1C,KAAK,iBAAiBuJ,CAAO,EAEzB6nF,EACA,OAAO,IAAIzB,EAA0B,wBAAwBpmF,CAAO,EAGxE,IAAIqoF,EAAgB,CAAE,EACtB,GAAI,YAAaroF,EACb,GAAI+mF,GAAkB,IAAK,CAEvB,GAAI,OAAO/mF,EAAQ,SAAS,GAAM,SAC9B,MAAM,IAAIwkF,EAAa,WAAW,8CAAgD,OAAOxkF,EAAQ,SAAS,EAAGwkF,EAAa,YAAY,oBAAoB,EAG9J6D,EAAgB,MAAM,KAAK,kBAAkB,KAAK,oBAAoBroF,EAAQ,SAAS,EAAGkjC,CAAO,CAAC,EAClG,OAAOljC,EAAQ,SAAS,CAC5C,KAEoB,OAAM,IAAIwkF,EAAa,WAAW,oDAAqDA,EAAa,YAAY,qBAAqB,EAG7I,KAAK,qBAAqB6D,EAAe,CAAE,eAAAtB,CAAgB,EAAEX,EAA0B,oBAAoB,EAC3G,MAAMkC,EAAa,OAAO,OAAOD,EAAeroF,CAAO,EAEvD,KAAK,kBAAkBsoF,CAAU,EACjC,KAAK,UAAUA,EAAY,CAAE,eAAAvB,EAAgB,sBAAAC,CAAqB,CAAE,EACpE,KAAK,qBAAqBsB,EAAY,CAAE,eAAAvB,CAAgB,EAAEX,EAA0B,oBAAoB,EACxG,MAAMp7E,EAAO,OAAO,KAAKs9E,CAAU,EAC7BC,EAAkB,CAAE,EAC1B,GAAI,OAAOd,GAAkB,SAEzB,UAAWzxF,KAAOyxF,EACVzxF,KAAOsyF,EACPC,EAAgB,KAAKvyF,CAAG,EAGxBsyF,EAAWtyF,CAAG,EAAIyxF,EAAczxF,CAAG,EAK/C,MAAM,KAAK,mBAAmBsyF,EAAY7xF,EAASuU,CAAI,EACvD,MAAMw9E,EAAoB,IAAIpC,EAA0B,wBAAwBkC,CAAU,EAE1F,OAAKA,GAAcA,EAAW,UAAU,GAAKjC,EAAc,0BAA4B,MAC9ErmF,EAAQ,QAAQ,GAAK,OAAOA,EAAQ,QAAQ,GAAM,UAAaA,EAAQ,QAAQ,IAAM,MACtFynF,GAAiB,WAAYA,GAAiBznF,EAAQ,QAAQ,EAAE,QAAQ,GAAG,EAAI,EAC/EsoF,EAAW,QAAQ,EAAIb,EAAc,QAAQ,EAAIznF,EAAQ,QAAQ,GAE5DglF,EAAO,KAAK,aAAahlF,EAAQ,QAAQ,CAAC,GAAKA,EAAQ,QAAQ,IAAKsoF,KAEzEA,EAAW,QAAQ,EAAIE,EAAkB,WAAWxoF,EAAQ,QAAQ,EAAG,EAAI,IAGnF,KAAK,oBAAoBwoF,EAAmB,KAAK,wBAAyBx9E,CAAI,EAE1E,CAAC48E,GAAoBH,GAAiBV,GAAkB,KACxD,KAAK,6BAA6BU,EAAea,EAAYlC,EAA0B,qBAAsBmC,CAAe,EAE5H,KAAK,iBAAmB,CAACb,EAAgB,gBACzC,KAAK,SAASY,EAAY,CAAE,eAAAvB,CAAc,CAAE,EAEzCyB,CACnB,KAEY,OAAM,IAAIhE,EAAa,WAAW,0EAA0ExkF,CAAO,GAAIwkF,EAAa,YAAY,qBAAqB,CAEjL,CAMI,MAAM,KAAKt8D,EAAK,CAEZ,MAAMo8B,EAAS,KAAK,cAAcp8B,CAAG,EACrC,GAAIo8B,EACA,OAAOA,EAGX,IAAI+sB,EACJ,GAAI,CACAA,EAAW,MAAM,KAAK,eAAe,KAAKnpD,CAAG,CACzD,OACe5tC,EAAG,CACN,MAAM,IAAIkqG,EAAa,WAAW,iCAAiCt8D,CAAG,KAAK5tC,EAAE,OAAO,GAAIkqG,EAAa,YAAY,6BAA6B,CAC1J,CAEQ,GAAI,EAAE,aAAcnT,GAChB,MAAM,IAAImT,EAAa,WAAW,yCAAyCt8D,CAAG,GAAIs8D,EAAa,YAAY,sBAAsB,EAErI,OAAO,KAAK,cAAct8D,CAAG,EAAImpD,EAAS,UAAU,CAC5D,CAUI,kBAAkBnpD,EAAKzxB,EAAS,CAC5B,GAAIyxB,KAAQzxB,EAAQ,gBAAkB,CAAE,GAAG,CACvC,GAAIA,EAAQ,2BACR,OAAOyxB,EAGP,MAAM,IAAIs8D,EAAa,WAAW,0CAA4Ct8D,EAAKs8D,EAAa,YAAY,2BAA2B,CAEvJ,CACQ,OAAO,IACf,CAKI,MAAM,kBAAkBiE,EAAkB,CAEtC,IAAIJ,EAAgB,MAAM,KAAK,KAAKI,CAAgB,EAEpD,GAAI,OAAOJ,GAAkB,UAAY,MAAM,QAAQA,CAAa,EAChE,MAAM,IAAI7D,EAAa,WAAW,gDAAkDiE,EAAkBjE,EAAa,YAAY,sBAAsB,EAGzJ,GAAI,YAAa6D,EACb,MAAM,IAAI7D,EAAa,WAAW,uDAAyDiE,EAAkBjE,EAAa,YAAY,qBAAqB,EAE/J,OAAA6D,EAAgB,OAAO,OAAO,CAAA,EAAIA,CAAa,EAG/C,KAAK,iBAAiBA,CAAa,EAC5BA,CACf,CACA,CACA,OAAAhC,EAAc,wBAA0B,IACxCF,gBAAA,cAAwBE,iLClwBxB,OAAO,eAAeqC,kBAAS,aAAc,CAAE,MAAO,GAAM,0KCC5D,OAAO,eAAeC,gBAAS,aAAc,CAAE,MAAO,GAAM,yLCD5D,IAAI/jE,EAAmBC,uBAAQA,sBAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,uBAAQA,sBAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uBAA8B,EAAE+D,CAAO,EACpDD,EAAaE,oBAA2B,EAAED,CAAO,EACjDD,EAAaG,6BAAoC,EAAEF,CAAO,EAC1DD,EAAaI,yBAAgC,EAAEH,CAAO,EACtDD,EAAaK,uBAA8B,EAAEJ,CAAO,EACpDD,EAAaM,iCAAwC,EAAEL,CAAO,EAC9DD,EAAaO,cAAqB,EAAEN,CAAO,2MCrB3C,OAAO,eAAe+0H,cAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,cAAA,cAAG,OAIxB,IAAAC,EAAA,KAAoB,CAChB,YAAYnwG,EAAO,CACf,KAAK,MAAQA,CACrB,CACA,EACAkwG,qBAAA,cAAwBE,EACxBA,EAAc,MAAQ,IAAIA,EAAc,GAAG,EAC3CA,EAAc,aAAe,IAAIA,EAAc,GAAG,EAClDA,EAAc,WAAa,IAAIA,EAAc,GAAG,EAChDA,EAAc,iBAAmB,IAAIA,EAAc,IAAI,EACvDA,EAAc,YAAc,IAAIA,EAAc,GAAG,EACjDA,EAAc,UAAY,IAAIA,EAAc,GAAG,EAC/CA,EAAc,gBAAkB,IAAIA,EAAc,IAAI,EACtDA,EAAc,uBAAyB,IAAIA,EAAc,aAAa,EACtEA,EAAc,oBAAsB,IAAIA,EAAc,YAAY,EAClEA,EAAc,cAAgB,IAAIA,EAAc,aAAa,gICpB7D,OAAO,eAAel1D,OAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,OAAA,KAAG,OACf,MAAM4D,EAA0D1nE,6BAAA,EAIhE,MAAM8nB,CAAK,CAQP,OAAO,YAAYnrC,EAAMmC,EAASvJ,EAAU,CACxC,WAAY,GACZ,eAAgB,EACxB,EAAO,CACC,OAAQoH,EAAK,SAAQ,CACjB,IAAK,YACD,MAAMs8I,EAAYn6I,EAAQ,WAAWnC,EAAK,MAAOpH,EAAQ,KAAK,EAC9D,OAAOA,EAAQ,WAAa0jJ,EAAY,CAAE,MAAOA,CAAW,EAChE,IAAK,eACD,OAAO1jJ,EAAQ,WAAaoH,EAAK,MAAQ,CAAE,MAAOA,EAAK,KAAO,EAClE,IAAK,YACD,MAAMwxE,EAAK,KAAKxxE,EAAK,KAAK,GAC1B,OAAOpH,EAAQ,WAAa44E,EAAK,CAAE,MAAOA,CAAI,EAClD,IAAK,UAED,GAAIxxE,EAAK,SAAS,QAAUmrC,EAAK,SAAU,CACvC,IAAIoxG,EACJ,GAAI,CACAA,EAAa,KAAK,MAAMv8I,EAAK,KAAK,CAC1D,OAC2BvjB,EAAG,CACN,MAAM,IAAIsuG,EAAwB,WAAW,yBAA2BtuG,EAAE,QAASsuG,EAAwB,YAAY,oBAAoB,CACnK,CACoB,MAAO,CACH,SAAUwxD,EACV,QAAS,OACZ,CACrB,CAEgB,GAAI3jJ,EAAQ,eAAiB,iBAAmBoH,EAAK,SAAS,MAAM,WAAWmrC,EAAK,IAAI,EAAG,CACvF,KAAM,CAAC/rC,EAAUshE,CAAS,EAAI1gE,EAAK,SAAS,MACvC,OAAOmrC,EAAK,KAAK,OAAQnrC,EAAK,SAAS,MAAM,MAAM,EACnD,MAAM,GAAG,EACd,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,SAAUA,EAAK,OAASZ,EAAW,CAAE,YAAaA,CAAU,EAAG,EAAE,EAAGshE,EAAY,CAAE,aAAcA,CAAW,EAAG,EAAE,CACzK,CACgB,MAAM87E,EAAax8I,EAAK,SAAS,QAAUmrC,EAAK,WAC1CwxC,EAAW,CACb,SAAU,CAAC6/D,GAAc5jJ,EAAQ,eAC3BuyC,EAAK,mBAAmBnrC,EAAK,MAAOA,EAAK,SAAS,KAAK,EAAIA,EAAK,KACzE,EACD,OAAIA,EAAK,SACE,OAAO,OAAO,OAAO,OAAO,CAAA,EAAI28E,CAAQ,EAAG,CAAE,YAAa38E,EAAK,QAAQ,CAAE,EAE3E,CAACw8I,GAAc,OAAO7/D,EAAS,QAAQ,GAAM,SAC3C,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEA,CAAQ,EAAG,CAAE,QAAS38E,EAAK,SAAS,KAAK,CAAE,EAG3E28E,CAE3B,CACA,CAQI,OAAO,mBAAmB7kF,EAAOJ,EAAM,CACnC,GAAIA,EAAK,WAAWyzC,EAAK,GAAG,EAExB,OADgBzzC,EAAK,OAAOyzC,EAAK,IAAI,MAAM,EAC5B,CACX,IAAK,UACD,GAAIrzC,IAAU,OACV,MAAO,GAEN,GAAIA,IAAU,QACf,MAAO,GAEX,MAAM,IAAI,MAAM,8BAA8BA,CAAK,GAAG,EAC1D,IAAK,UACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,OACD,MAAM2kJ,EAAY,SAAS3kJ,EAAO,EAAE,EACpC,GAAI,MAAM2kJ,CAAS,EACf,MAAM,IAAI,MAAM,8BAA8B3kJ,CAAK,GAAG,EAE1D,OAAO2kJ,EACX,IAAK,QACL,IAAK,SACD,MAAMC,EAAc,WAAW5kJ,CAAK,EACpC,GAAI,MAAM4kJ,CAAW,EACjB,MAAM,IAAI,MAAM,4BAA4B5kJ,CAAK,GAAG,EAExD,OAAO4kJ,CAC3B,CAEQ,OAAO5kJ,CACf,CACA,CACAqvF,cAAA,KAAeh8C,EACfA,EAAK,IAAM,oCACXA,EAAK,WAAaA,EAAK,IAAM,SAC7BA,EAAK,IAAM,8CACXA,EAAK,SAAWA,EAAK,IAAM,OAC3BA,EAAK,SAAWA,EAAK,IAAM,OAC3BA,EAAK,KAAO,6LChHZ,OAAO,eAAewxG,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAM5xD,EAA0D1nE,6BAAA,EAC1D84H,EAA4C90H,qBAAA,EAC5C8/D,EAA0B7/D,cAAA,EAC1B+sF,EAAoB9sF,eAA0B,EAIpD,IAAAq1H,EAAA,MAAMC,WAAyBxoC,EAAkB,SAAU,CACvD,YAAYz7G,EAAU,GAAI,CACtB,MAAM,CAAE,WAAY,GAAM,EAC1B,KAAK,YAAc,EACnB,KAAK,QAAUA,EAEX,KAAK,QAAQ,SAAW,CAAC,KAAK,QAAQ,UACtC,KAAK,QAAQ,QAAU,CAAE,QAAS,KAAK,QAAQ,OAAS,GAExD,KAAK,QAAQ,SACb,KAAK,gBAAkB,KAAK,QAAQ,QACpC,KAAK,QAAU,IAAImyF,EAAwB,cAAa,EAAG,MAAM,KAAK,QAAQ,QAAS,CAAE,QAAS,KAAK,QAAQ,OAAO,CAAE,GAGxH,KAAK,QAAU,QAAQ,QAAQ,IAAIA,EAAwB,wBAAwB,CAAA,CAAE,CAAC,CAElG,CAMI,OAAO4S,EAAQ,CACX,MAAM15E,EAAS,IAAIowF,EAAkB,YAAY,CAAE,WAAY,GAAM,EACrE1W,EAAO,GAAG,QAAUv/F,GAAU00F,EAAO,KAAK,QAAS10F,CAAK,CAAC,EACzDu/F,EAAO,GAAG,OAAS16F,GAASghB,EAAO,KAAKhhB,CAAI,CAAC,EAC7C06F,EAAO,GAAG,MAAO,IAAM15E,EAAO,KAAK,IAAI,CAAC,EACxC,MAAM6uE,EAAS7uE,EAAO,KAAK,IAAI44H,GAAiB,KAAK,OAAO,CAAC,EAC7D,OAAO/pD,CACf,CAQI,WAAWtrD,EAAMg/C,EAAU76C,EAAU,CACjC,KAAK,QAAQ,KAAMxpC,GAAY,CAC3B,KAAK,cAAcqlC,EAAMrlC,CAAO,EAChCwpC,EAAU,CACtB,CAAS,EAAE,MAAMA,CAAQ,CACzB,CAQI,MAAM,KAAKn7B,EAAQ,CACf,MAAMrO,EAAU,MAAM,KAAK,QAC3B,MAAO,CACH,QAASqO,EAAO,IAAK1Y,GAAUqvF,EAAO,KAAK,YAAYrvF,EAAOqK,EAAS,KAAK,OAAO,CAAC,CACvF,CACT,CAMI,OAAOwpC,EAAU,CAEb,OAAK,KAAK,QACN,KAAK,kBAAmB,EAExB,KAAK,eACL,KAAK,aAAc,EAEnB,KAAK,aACL,KAAK,WAAY,EAEjB,KAAK,WAAa,KAAK,UAAU,WAAa,gBAC9C,KAAK,SAAU,EAEnB,KAAK,YAAa,EACXA,EAAS,KAAM,IAAI,CAClC,CAMI,cAAcnE,EAAMrlC,EAAS,CAEpB,KAAK,QACN,KAAK,kBAAmB,EAI5B,MAAM26I,EAA0B,KAAK,WAAa,KAAK,UAAU,WAAa,gBACvE,KAAK,UAAU,OAAOt1G,EAAK,OAAO,EAEzC,GAAI,CAACs1G,IAA4B,CAAC,KAAK,WAAa,CAACt1G,EAAK,MAAM,OAAO,KAAK,SAAS,GAAI,CAGrF,IAAIu1G,EAA0Bv1G,EAAK,MAAM,WAAa,gBAC/C,KAAK,aAAe,KAAK,YAAY,OAAOA,EAAK,KAAK,EACzD,KAAK,YACD,KAAK,UAAU,WAAa,gBAE5B,KAAK,aAAc,EACnB,KAAK,WAAY,EACjB,KAAK,SAAS,EAAI,EAClBu1G,EAA0B,IAIrBA,GAKD,KAAK,aAAa,EAAI,EACtB,KAAK,YAAc,OALnB,KAAK,aAAc,EACnB,KAAK,WAAW,EAAI,IAS5Bv1G,EAAK,MAAM,WAAa,iBACnBu1G,GACD,KAAK,OAAOv1G,EAAK,MAAO,GAAMrlC,CAAO,EAEzC,KAAK,cAAc,KAAK,QAAQ,MAC1Bg6I,EAAgB,cAAc,uBAAyBA,EAAgB,cAAc,mBAAmB,EAC9G,KAAK,eAET,KAAK,UAAY30G,EAAK,KAClC,EAEY,CAAC,KAAK,aAAe,CAACA,EAAK,QAAQ,OAAO,KAAK,WAAW,KACtDs1G,GACA,KAAK,aAAc,EACnB,KAAK,WAAY,EACjB,KAAK,cACL,KAAK,cAAcX,EAAgB,cAAc,eAAe,EAChE,KAAK,UAAY30G,EAAK,QAGlB,KAAK,cACL,KAAK,aAAc,EACnB,KAAK,WAAW,EAAI,GAGxB,KAAK,OAAOA,EAAK,QAAS,GAAMrlC,CAAO,GAE3C,KAAK,YAAcqlC,EAAK,UAGxB,CAAC,KAAK,eAAiB,CAACA,EAAK,UAAU,OAAO,KAAK,aAAa,KAC5D,KAAK,eACL,KAAK,aAAa,EAAI,EAG1B,KAAK,cAAcA,EAAK,UAAWrlC,CAAO,GAG9C,KAAK,WAAWqlC,EAAK,OAAQrlC,CAAO,CAC5C,CACI,mBAAoB,CAChB,KAAK,OAAS,GACV,KAAK,iBAAmB,CAAC,KAAK,QAAQ,gBACtC,KAAK,cAAcg6I,EAAgB,cAAc,YAAY,EAC7D,KAAK,cACL,KAAK,cAAcA,EAAgB,cAAc,aAAa,EAC9D,KAAK,aAAa,KAAK,UAAU,KAAK,gBAAiB,KAAM,KAAK,QAAQ,KAAK,EAAI,GAAG,EACtF,KAAK,cAAc,KAAK,QAAQ,MAC1BA,EAAgB,cAAc,uBAAyBA,EAAgB,cAAc,mBAAmB,EAC9G,KAAK,gBAGL,KAAK,cAAcA,EAAgB,cAAc,WAAW,EAC5D,KAAK,cAEjB,CAOI,OAAOn8I,EAAMg9I,EAAgB76I,EAAS,CAClC,GAAInC,EAAK,WAAa,OAClB,KAAK,eAAeA,EAAM,GAAMmC,CAAO,MAEtC,CACD,MAAM86I,EAAej9I,EAAK,WAAa,YACjC,KAAOA,EAAK,MAAQmC,EAAQ,WAAWnC,EAAK,MAAO,EAAK,EAC1Dg9I,EACA,KAAK,cAAcb,EAAgB,cAAc,YAAY,GAG7D,KAAK,KAAKA,EAAgB,cAAc,aAAa,KAAK,EACtD,KAAK,QAAQ,OACb,KAAK,KAAK;AAAA,CAAI,GAGtB,KAAK,cACL,KAAK,aAAa,KAAK,QAAQ,MAAQ,WAAWc,CAAY,KAAO,UAAUA,CAAY,IAAI,CAC3G,CACA,CAMI,cAAc7tI,EAAWjN,EAAS,CAC9B,IAAIshH,EAAWr0G,EAAU,MAErB,CAAC,KAAK,QAAQ,YAAcq0G,IAAat8B,EAAO,KAAK,WACrDs8B,EAAW,QACX,KAAK,cAAgB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE,KAAK,OAAO,EAAG,CAAE,WAAY,GAAM,MAAO,EAAI,CAAE,GAGzG,MAAMy5B,EAAoB/6I,EAAQ,WAAWshH,EAAU,EAAI,EAC3D,KAAK,aAAa,KAAK,QAAQ,MAAQ,IAAIy5B,CAAiB,OAAS,IAAIA,CAAiB,KAAK,EAC/F,KAAK,cACL,KAAK,cAAgB9tI,CAC7B,CAMI,WAAWlC,EAAQ/K,EAAS,CASxB,GAPK,KAAK,sBAIN,KAAK,cAAcg6I,EAAgB,cAAc,KAAK,EAHtD,KAAK,sBAAwB,GAM7BjvI,EAAO,WAAa,OAAQ,CAC5B,MAAMiwI,EAAkB,KAAK,YACvBC,EAAoB,KAAK,cAC/B,KAAK,sBAAwB,GAC7B,KAAK,eAAelwI,EAAQ,GAAO/K,CAAO,EAC1C,KAAK,WAAW,EAAK,EACrB,KAAK,sBAAwB,GAC7B,KAAK,cAAgBi7I,EACrB,KAAK,YAAcD,EACnB,MACZ,CAEQ,IAAIrlJ,EACJ,GAAI,CACIoV,EAAO,OAAO,EACdpV,EAAQoV,EAGRpV,EAAQqvF,EAAO,KAAK,YAAYj6E,EAAQ/K,EAAS,KAAK,eAAiB,KAAK,OAAO,CAEnG,OACe1lB,EAAG,CACN,OAAO,KAAK,KAAK,QAASA,CAAC,CACvC,CACQ,KAAK,aAAa,KAAK,UAAUqb,EAAO,KAAM,KAAK,QAAQ,KAAK,CAAC,CACzE,CACI,eAAeulJ,EAAYC,EAAmBn7I,EAAS,CAEnD,KAAK,cAAcg6I,EAAgB,cAAc,YAAY,EAC7D,KAAK,cACL,KAAK,aAAa,KAAK,QAAQ,MAAQ,UAAY,SAAU,EAAK,EAE9DkB,EAAW,MAAM,WAAa,gBAC9B,KAAK,KAAK,QAAS,IAAI,MAAM,mDAAmDA,EAAW,MAAM,KAAK,EAAE,CAAC,EAE7G,KAAK,OAAOA,EAAW,QAAS,GAAOl7I,CAAO,EAC9C,KAAK,cAAck7I,EAAW,UAAWl7I,CAAO,EAChD,KAAK,WAAWk7I,EAAW,OAAQl7I,CAAO,EAC1C,KAAK,aAAa,EAAK,EACvB,KAAK,WAAWm7I,CAAiB,CACzC,CACI,aAAc,CACV,KAAK,OAAS,GACV,KAAK,iBAAmB,CAAC,KAAK,QAAQ,gBACtC,KAAK,cACL,KAAK,cAAcnB,EAAgB,cAAc,SAAS,EAC1D,KAAK,cACL,KAAK,cAAcA,EAAgB,cAAc,UAAU,IAG3D,KAAK,cACL,KAAK,cAAcA,EAAgB,cAAc,SAAS,EAEtE,CAKI,aAAaoB,EAAO,CAEhB,KAAK,cACL,KAAK,cAAcA,EAAQpB,EAAgB,cAAc,gBAAkBA,EAAgB,cAAc,SAAS,EAElH,KAAK,sBAAwB,GAC7B,KAAK,cAAgB,KAErB,KAAK,cAAgB,IAC7B,CAKI,WAAWoB,EAAO,CAEd,KAAK,cACL,KAAK,cAAcA,EAAQpB,EAAgB,cAAc,iBAAmBA,EAAgB,cAAc,UAAU,EAEpH,KAAK,YAAc,IAC3B,CAKI,SAASoB,EAAO,CAEZ,KAAK,cACL,KAAK,cAAcpB,EAAgB,cAAc,SAAS,EAE1D,KAAK,cACL,KAAK,cAAcoB,EAAQpB,EAAgB,cAAc,iBAAmBA,EAAgB,cAAc,UAAU,EAEpH,KAAK,UAAY,IACzB,CAKI,cAAczkJ,EAAM,CAChB,KAAK,aAAaA,EAAK,KAAK,CACpC,CAOI,aAAauL,EAAMu6I,EAAc,GAAM,CACnC,MAAMhlJ,EAAS,KAAK,gBAAiB,EAC/BwR,EAAQ/G,EAAK,MAAM;AAAA,CAAI,EAAE,IAAKk0E,GAAS3+E,EAAS2+E,CAAI,EAAE,KAAK;AAAA,CAAI,EACrE,KAAK,KAAKntE,CAAK,EACX,KAAK,QAAQ,OAASwzI,GACtB,KAAK,KAAK;AAAA,CAAI,CAE1B,CAII,iBAAkB,CACd,OAAO,KAAK,QAAQ,MAAQ,KAAK,QAAQ,MAAM,OAAO,KAAK,WAAW,EAAI,EAClF,CACA,EACAb,wBAAA,iBAA2BE,yMC3W3B,IAAI91H,EAAmBC,2BAAQA,0BAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,2BAAQA,0BAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wBAAiC,EAAE+D,CAAO,EACvDD,EAAaE,cAAqB,EAAED,CAAO,oPChB3C,OAAO,eAAeq2H,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMzB,EAA4D34H,cAAA,EAC5Dq6H,EAAsEr2H,iCAAA,EAI5E,IAAAs2H,EAAA,cAAsC3B,EAAoB,gCAAiC,CAUvF,YAAYniJ,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,UAAUmqB,EAAQuwF,EAAY/mB,EAAU,CAC1C,MAAMqiB,EAAS,IAAI6tC,EAA8B,iBAAiB,CAAE,MAAO,IAAI,OAAO,KAAK,yBAAyB,EAAG,EACvH,IAAIz6I,EACJ,MAAI,SAAU+gB,EAAO,YAEjBA,EAAO,WAAW,GAAG,QAAS5lB,GAASyxG,EAAO,KAAK,QAASzxG,CAAK,CAAC,EAClE6E,EAAO+gB,EAAO,WAAW,KAAK6rF,CAAM,GAGpC5sG,EAAO4sG,EAAO,OAAO7rF,EAAO,UAAU,EAEnC,CAAE,KAAA/gB,CAAM,CACvB,CACA,EACAw6I,+BAAA,wBAAkCG,oIClClC,IAAI72H,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,+BAAoC,EAAE+D,CAAO,wNCf1D,OAAO,eAAey2H,eAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,SAASpJ,EAAsBhtI,EAAOvP,EAAQ,CAC1C,OAAO,IAAI,QAAQ,CAACygE,EAASC,IAAW,CACpCnxD,EAAM,GAAG,MAAO,IAAMkxD,EAAQzgE,CAAM,CAAC,EACrCuP,EAAM,GAAG,QAASmxD,CAAM,CAChC,CAAK,CACL,CACA,SAASklF,EAAengD,EAAQ,CAC5B,MAAM5wF,EAAQ,CAAE,EAChB,OAAO0nI,EAAsB92C,EAAO,GAAG,OAAQ16F,GAAQ8J,EAAM,KAAK9J,CAAI,CAAC,EAAG8J,CAAK,CACnF,CACA8wI,sBAAA,QAAkBC,kLCXlB,OAAO,eAAeC,SAAS,aAAc,CAAE,MAAO,GAAM,EAC5CA,SAAA,SAAG,OACnB,SAASC,EAAYC,EAAU,CAC3B,IAAI97H,EAAM87H,GACN97H,EAAI,SAAS,GAAG,GAAKA,EAAI,SAAS,GAAG,KACrCA,EAAMA,EAAI,MAAM,EAAGA,EAAI,OAAS,CAAC,GAErC,MAAMtoB,EAAO,CAAE,EACXsoB,EAAI,YAAY,GAAG,EAAI,GACvBtoB,EAAK,KAAKsoB,EAAI,YAAY,GAAG,CAAC,EAE9BA,EAAI,YAAY,GAAG,EAAI,GACvBtoB,EAAK,KAAKsoB,EAAI,YAAY,GAAG,CAAC,EAElC,MAAMtlC,EAAI,KAAK,IAAI,GAAGgd,CAAI,EAC1B,OAAOsoB,EAAI,MAAMtlC,EAAI,CAAC,CAC1B,CACA,SAASqhK,EAAS/7H,EAAK,CACnB,IAAIpsB,EACJ,MAAM62C,GAAO72C,EAAKosB,EACb,MAAM,cAAc,EACpB,OAAQnlC,GAAMA,IAAM,EAAE,EACtB,IAAKA,GAAMA,EAAE,CAAC,EAAE,cAAgBA,EAAE,MAAM,CAAC,CAAC,EAC1C,KAAK,EAAE,EAEP,MAAM,kBAAkB,KAAO,MAAQ+Y,IAAO,OAAS,OAASA,EAAG,CAAC,EAGzE,OAAO,OAAO62C,EAAQ,IAAc,OAAYA,EAAI,CAAC,EAAE,YAAa,EAAGA,EAAI,MAAM,CAAC,CACtF,CACA,SAAS8jF,EAASvuG,EAAK,CACnB,IAAIrqB,EAAQkmJ,EAAY77H,CAAG,EAC3B,OAAArqB,EAAQA,EAAQomJ,EAASpmJ,CAAK,EAAI,OAC3BA,GAAS,GACpB,CACAimJ,gBAAA,SAAmBrtB,qOCnCnB,IAAIytB,EACH,OAAO,WAAe,KAAe,YACrC,OAAO,KAAS,KAAe,MAC/B,OAAO7+I,eAAW,KAAeA,eAE9B8+I,EAAkB,UAAY,CAClC,SAASt/J,GAAI,CACb,KAAK,MAAQ,GACb,KAAK,aAAeq/J,EAAW,YAC/B,CACA,OAAAr/J,EAAE,UAAYq/J,EACP,IAAIr/J,CACX,EAAI,GAGH,SAASu/J,EAAY,EAEJ,SAAUj3H,EAAS,CAGnC,IAAI5pC,EACD,OAAO6gK,EAAe,KAAeA,GACrC,OAAO,KAAS,KAAe,MAE/B,OAAO/+I,eAAW,KAAeA,gBAClC,CAAE,EAEAg/I,EAAU,CACZ,aAAc,oBAAqB9gK,EACnC,SAAU,WAAYA,GAAK,aAAc,OACzC,KACE,eAAgBA,GAChB,SAAUA,GACT,UAAW,CACV,GAAI,CACF,WAAI,KACG,EACR,MAAW,CACV,MAAO,EACjB,CACA,EAAU,EACN,SAAU,aAAcA,EACxB,YAAa,gBAAiBA,CAC/B,EAED,SAAS+gK,EAAWhnJ,EAAK,CACvB,OAAOA,GAAO,SAAS,UAAU,cAAcA,CAAG,CACtD,CAEE,GAAI+mJ,EAAQ,YACV,IAAIE,EAAc,CAChB,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,uBACD,EAEG5kD,EACF,YAAY,QACZ,SAASriG,EAAK,CACZ,OAAOA,GAAOinJ,EAAY,QAAQ,OAAO,UAAU,SAAS,KAAKjnJ,CAAG,CAAC,EAAI,EAC1E,EAGL,SAASknJ,EAAcjnJ,EAAM,CAI3B,GAHI,OAAOA,GAAS,WAClBA,EAAO,OAAOA,CAAI,GAEhB,6BAA6B,KAAKA,CAAI,GAAKA,IAAS,GACtD,MAAM,IAAI,UAAU,4CAA8CA,EAAO,GAAG,EAE9E,OAAOA,EAAK,YAAW,CAC3B,CAEE,SAASknJ,EAAe5mJ,EAAO,CAC7B,OAAI,OAAOA,GAAU,WACnBA,EAAQ,OAAOA,CAAK,GAEfA,CACX,CAGE,SAAS6mJ,EAAY9+G,EAAO,CAC1B,IAAIvyB,EAAW,CACb,KAAM,UAAW,CACf,IAAIxV,GAAQ+nC,EAAM,MAAO,EACzB,MAAO,CAAC,KAAM/nC,KAAU,OAAW,MAAOA,EAAK,CACvD,CACK,EAED,OAAIwmJ,EAAQ,WACVhxI,EAAS,OAAO,QAAQ,EAAI,UAAW,CACrC,OAAOA,CACR,GAGIA,CACX,CAEE,SAASsxI,EAAQhgC,EAAS,CACxB,KAAK,IAAM,CAAE,EAETA,aAAmBggC,EACrBhgC,EAAQ,QAAQ,SAAS9mH,EAAON,GAAM,CACpC,KAAK,OAAOA,GAAMM,CAAK,CACxB,EAAE,IAAI,EACE,MAAM,QAAQ8mH,CAAO,EAC9BA,EAAQ,QAAQ,SAASrI,EAAQ,CAC/B,GAAIA,EAAO,QAAU,EACnB,MAAM,IAAI,UAAU,sEAAwEA,EAAO,MAAM,EAE3G,KAAK,OAAOA,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,CACjC,EAAE,IAAI,EACEqI,GACT,OAAO,oBAAoBA,CAAO,EAAE,QAAQ,SAASpnH,EAAM,CACzD,KAAK,OAAOA,EAAMonH,EAAQpnH,CAAI,CAAC,CAChC,EAAE,IAAI,CAEb,CAEEonJ,EAAQ,UAAU,OAAS,SAASpnJ,EAAMM,EAAO,CAC/CN,EAAOinJ,EAAcjnJ,CAAI,EACzBM,EAAQ4mJ,EAAe5mJ,CAAK,EAC5B,IAAIkc,GAAW,KAAK,IAAIxc,CAAI,EAC5B,KAAK,IAAIA,CAAI,EAAIwc,GAAWA,GAAW,KAAOlc,EAAQA,CACvD,EAED8mJ,EAAQ,UAAU,OAAY,SAASpnJ,EAAM,CAC3C,OAAO,KAAK,IAAIinJ,EAAcjnJ,CAAI,CAAC,CACpC,EAEDonJ,EAAQ,UAAU,IAAM,SAASpnJ,EAAM,CACrC,OAAAA,EAAOinJ,EAAcjnJ,CAAI,EAClB,KAAK,IAAIA,CAAI,EAAI,KAAK,IAAIA,CAAI,EAAI,IAC1C,EAEDonJ,EAAQ,UAAU,IAAM,SAASpnJ,EAAM,CACrC,OAAO,KAAK,IAAI,eAAeinJ,EAAcjnJ,CAAI,CAAC,CACnD,EAEDonJ,EAAQ,UAAU,IAAM,SAASpnJ,EAAMM,EAAO,CAC5C,KAAK,IAAI2mJ,EAAcjnJ,CAAI,CAAC,EAAIknJ,EAAe5mJ,CAAK,CACrD,EAED8mJ,EAAQ,UAAU,QAAU,SAASjzG,EAAUigD,EAAS,CACtD,QAASp0F,MAAQ,KAAK,IAChB,KAAK,IAAI,eAAeA,EAAI,GAC9Bm0C,EAAS,KAAKigD,EAAS,KAAK,IAAIp0F,EAAI,EAAGA,GAAM,IAAI,CAGtD,EAEDonJ,EAAQ,UAAU,KAAO,UAAW,CAClC,IAAI/+G,EAAQ,CAAE,EACd,YAAK,QAAQ,SAAS/nC,EAAON,GAAM,CACjCqoC,EAAM,KAAKroC,EAAI,CACrB,CAAK,EACMmnJ,EAAY9+G,CAAK,CACzB,EAED++G,EAAQ,UAAU,OAAS,UAAW,CACpC,IAAI/+G,EAAQ,CAAE,EACd,YAAK,QAAQ,SAAS/nC,EAAO,CAC3B+nC,EAAM,KAAK/nC,CAAK,CACtB,CAAK,EACM6mJ,EAAY9+G,CAAK,CACzB,EAED++G,EAAQ,UAAU,QAAU,UAAW,CACrC,IAAI/+G,EAAQ,CAAE,EACd,YAAK,QAAQ,SAAS/nC,EAAON,GAAM,CACjCqoC,EAAM,KAAK,CAACroC,GAAMM,CAAK,CAAC,CAC9B,CAAK,EACM6mJ,EAAY9+G,CAAK,CACzB,EAEGy+G,EAAQ,WACVM,EAAQ,UAAU,OAAO,QAAQ,EAAIA,EAAQ,UAAU,SAGzD,SAAShb,EAAS5sD,EAAM,CACtB,GAAI,CAAAA,EAAK,QACT,IAAIA,EAAK,SACP,OAAO,QAAQ,OAAO,IAAI,UAAU,cAAc,CAAC,EAErDA,EAAK,SAAW,GACpB,CAEE,SAAS6nE,EAAgB/tC,EAAQ,CAC/B,OAAO,IAAI,QAAQ,SAASn4C,EAASC,GAAQ,CAC3Ck4C,EAAO,OAAS,UAAW,CACzBn4C,EAAQm4C,EAAO,MAAM,CACtB,EACDA,EAAO,QAAU,UAAW,CAC1Bl4C,GAAOk4C,EAAO,KAAK,CACpB,CACF,CAAA,CACL,CAEE,SAASguC,EAAsBC,EAAM,CACnC,IAAIjuC,EAAS,IAAI,WACbvC,GAAUswC,EAAgB/tC,CAAM,EACpC,OAAAA,EAAO,kBAAkBiuC,CAAI,EACtBxwC,EACX,CAEE,SAASywC,EAAeD,EAAM,CAC5B,IAAIjuC,EAAS,IAAI,WACbvC,GAAUswC,EAAgB/tC,CAAM,EAChC32G,GAAQ,2BAA2B,KAAK4kJ,EAAK,IAAI,EACjDv4D,GAAWrsF,GAAQA,GAAM,CAAC,EAAI,QAClC,OAAA22G,EAAO,WAAWiuC,EAAMv4D,EAAQ,EACzB+nB,EACX,CAEE,SAAS0wC,EAAsBl8I,EAAK,CAIlC,QAHIm8I,EAAO,IAAI,WAAWn8I,CAAG,EACzB25H,GAAQ,IAAI,MAAMwiB,EAAK,MAAM,EAExBriK,GAAI,EAAGA,GAAIqiK,EAAK,OAAQriK,KAC/B6/I,GAAM7/I,EAAC,EAAI,OAAO,aAAaqiK,EAAKriK,EAAC,CAAC,EAExC,OAAO6/I,GAAM,KAAK,EAAE,CACxB,CAEE,SAASyiB,EAAYp8I,EAAK,CACxB,GAAIA,EAAI,MACN,OAAOA,EAAI,MAAM,CAAC,EAElB,IAAIm8I,EAAO,IAAI,WAAWn8I,EAAI,UAAU,EACxC,OAAAm8I,EAAK,IAAI,IAAI,WAAWn8I,CAAG,CAAC,EACrBm8I,EAAK,MAElB,CAEE,SAASE,GAAO,CACd,YAAK,SAAW,GAEhB,KAAK,UAAY,SAASpoE,EAAM,CAY9B,KAAK,SAAW,KAAK,SACrB,KAAK,UAAYA,EACZA,EAGM,OAAOA,GAAS,SACzB,KAAK,UAAYA,EACRsnE,EAAQ,MAAQ,KAAK,UAAU,cAActnE,CAAI,EAC1D,KAAK,UAAYA,EACRsnE,EAAQ,UAAY,SAAS,UAAU,cAActnE,CAAI,EAClE,KAAK,cAAgBA,EACZsnE,EAAQ,cAAgB,gBAAgB,UAAU,cAActnE,CAAI,EAC7E,KAAK,UAAYA,EAAK,SAAU,EACvBsnE,EAAQ,aAAeA,EAAQ,MAAQC,EAAWvnE,CAAI,GAC/D,KAAK,iBAAmBmoE,EAAYnoE,EAAK,MAAM,EAE/C,KAAK,UAAY,IAAI,KAAK,CAAC,KAAK,gBAAgB,CAAC,GACxCsnE,EAAQ,cAAgB,YAAY,UAAU,cAActnE,CAAI,GAAK4iB,EAAkB5iB,CAAI,GACpG,KAAK,iBAAmBmoE,EAAYnoE,CAAI,EAExC,KAAK,UAAYA,EAAO,OAAO,UAAU,SAAS,KAAKA,CAAI,GAjB3D,KAAK,QAAU,GACf,KAAK,UAAY,IAmBd,KAAK,QAAQ,IAAI,cAAc,IAC9B,OAAOA,GAAS,SAClB,KAAK,QAAQ,IAAI,eAAgB,0BAA0B,EAClD,KAAK,WAAa,KAAK,UAAU,KAC1C,KAAK,QAAQ,IAAI,eAAgB,KAAK,UAAU,IAAI,EAC3CsnE,EAAQ,cAAgB,gBAAgB,UAAU,cAActnE,CAAI,GAC7E,KAAK,QAAQ,IAAI,eAAgB,iDAAiD,EAGvF,EAEGsnE,EAAQ,OACV,KAAK,KAAO,UAAW,CACrB,IAAIryD,EAAW23C,EAAS,IAAI,EAC5B,GAAI33C,EACF,OAAOA,EAGT,GAAI,KAAK,UACP,OAAO,QAAQ,QAAQ,KAAK,SAAS,EAChC,GAAI,KAAK,iBACd,OAAO,QAAQ,QAAQ,IAAI,KAAK,CAAC,KAAK,gBAAgB,CAAC,CAAC,EACnD,GAAI,KAAK,cACd,MAAM,IAAI,MAAM,sCAAsC,EAEtD,OAAO,QAAQ,QAAQ,IAAI,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC,CAEpD,GAGH,KAAK,YAAc,UAAW,CAC5B,GAAI,KAAK,iBAAkB,CACzB,IAAIozD,EAAazb,EAAS,IAAI,EAC9B,OAAIyb,IAEO,YAAY,OAAO,KAAK,gBAAgB,EAC1C,QAAQ,QACb,KAAK,iBAAiB,OAAO,MAC3B,KAAK,iBAAiB,WACtB,KAAK,iBAAiB,WAAa,KAAK,iBAAiB,UACvE,CACA,EAEiB,QAAQ,QAAQ,KAAK,gBAAgB,EAEtD,KAAa,IAAIf,EAAQ,KACjB,OAAO,KAAK,OAAO,KAAKQ,CAAqB,EAE7C,MAAM,IAAI,MAAM,+BAA+B,EAElD,EAED,KAAK,KAAO,UAAW,CACrB,IAAI7yD,EAAW23C,EAAS,IAAI,EAC5B,GAAI33C,EACF,OAAOA,EAGT,GAAI,KAAK,UACP,OAAO+yD,EAAe,KAAK,SAAS,EAC/B,GAAI,KAAK,iBACd,OAAO,QAAQ,QAAQC,EAAsB,KAAK,gBAAgB,CAAC,EAC9D,GAAI,KAAK,cACd,MAAM,IAAI,MAAM,sCAAsC,EAEtD,OAAO,QAAQ,QAAQ,KAAK,SAAS,CAExC,EAEGX,EAAQ,WACV,KAAK,SAAW,UAAW,CACzB,OAAO,KAAK,OAAO,KAAK/T,CAAM,CAC/B,GAGH,KAAK,KAAO,UAAW,CACrB,OAAO,KAAK,KAAI,EAAG,KAAK,KAAK,KAAK,CACnC,EAEM,IACX,CAGE,IAAI1vH,EAAU,CAAC,UAAW,SAAU,MAAO,OAAQ,UAAW,QAAS,OAAQ,MAAO,OAAO,EAE7F,SAASykI,EAAgBzwC,EAAQ,CAC/B,IAAI0wC,EAAU1wC,EAAO,YAAa,EAClC,OAAOh0F,EAAQ,QAAQ0kI,CAAO,EAAI,GAAKA,EAAU1wC,CACrD,CAEE,SAAS2wC,EAAQrhH,EAAOvlC,EAAS,CAC/B,GAAI,EAAE,gBAAgB4mJ,GACpB,MAAM,IAAI,UAAU,4FAA4F,EAGlH5mJ,EAAUA,GAAW,CAAE,EACvB,IAAIo+E,GAAOp+E,EAAQ,KAEnB,GAAIulC,aAAiBqhH,EAAS,CAC5B,GAAIrhH,EAAM,SACR,MAAM,IAAI,UAAU,cAAc,EAEpC,KAAK,IAAMA,EAAM,IACjB,KAAK,YAAcA,EAAM,YACpBvlC,EAAQ,UACX,KAAK,QAAU,IAAIgmJ,EAAQzgH,EAAM,OAAO,GAE1C,KAAK,OAASA,EAAM,OACpB,KAAK,KAAOA,EAAM,KAClB,KAAK,OAASA,EAAM,OAChB,CAAC64C,IAAQ74C,EAAM,WAAa,OAC9B64C,GAAO74C,EAAM,UACbA,EAAM,SAAW,GAEzB,MACM,KAAK,IAAM,OAAOA,CAAK,EAiBzB,GAdA,KAAK,YAAcvlC,EAAQ,aAAe,KAAK,aAAe,eAC1DA,EAAQ,SAAW,CAAC,KAAK,WAC3B,KAAK,QAAU,IAAIgmJ,EAAQhmJ,EAAQ,OAAO,GAE5C,KAAK,OAAS0mJ,EAAgB1mJ,EAAQ,QAAU,KAAK,QAAU,KAAK,EACpE,KAAK,KAAOA,EAAQ,MAAQ,KAAK,MAAQ,KACzC,KAAK,OAASA,EAAQ,QAAU,KAAK,QAAW,UAAY,CAC1D,GAAI,oBAAqBpb,EAAG,CAC1B,IAAIiiK,GAAO,IAAI,gBACf,OAAOA,GAAK,MACpB,CACA,IACI,KAAK,SAAW,MAEX,KAAK,SAAW,OAAS,KAAK,SAAW,SAAWzoE,GACvD,MAAM,IAAI,UAAU,2CAA2C,EAIjE,GAFA,KAAK,UAAUA,EAAI,GAEf,KAAK,SAAW,OAAS,KAAK,SAAW,UACvCp+E,EAAQ,QAAU,YAAcA,EAAQ,QAAU,YAAY,CAEhE,IAAI8mJ,GAAgB,gBACpB,GAAIA,GAAc,KAAK,KAAK,GAAG,EAE7B,KAAK,IAAM,KAAK,IAAI,QAAQA,GAAe,OAAS,IAAI,OAAO,SAAS,MACnE,CAEL,IAAIC,GAAgB,KACpB,KAAK,MAAQA,GAAc,KAAK,KAAK,GAAG,EAAI,IAAM,KAAO,KAAO,IAAI,KAAI,EAAG,QAAS,CAC9F,CACA,CAEA,CAEEH,EAAQ,UAAU,MAAQ,UAAW,CACnC,OAAO,IAAIA,EAAQ,KAAM,CAAC,KAAM,KAAK,SAAS,CAAC,CAChD,EAED,SAASjV,EAAOvzD,EAAM,CACpB,IAAI4oE,EAAO,IAAI,SACf,OAAA5oE,EACG,KAAI,EACJ,MAAM,GAAG,EACT,QAAQ,SAAS/jC,GAAO,CACvB,GAAIA,GAAO,CACT,IAAI4sG,GAAQ5sG,GAAM,MAAM,GAAG,EACvBz7C,GAAOqoJ,GAAM,MAAO,EAAC,QAAQ,MAAO,GAAG,EACvC/nJ,GAAQ+nJ,GAAM,KAAK,GAAG,EAAE,QAAQ,MAAO,GAAG,EAC9CD,EAAK,OAAO,mBAAmBpoJ,EAAI,EAAG,mBAAmBM,EAAK,CAAC,CACzE,CACA,CAAO,EACI8nJ,CACX,CAEE,SAASE,EAAaC,EAAY,CAChC,IAAInhC,EAAU,IAAIggC,EAGdoB,GAAsBD,EAAW,QAAQ,eAAgB,GAAG,EAIhE,OAAAC,GACG,MAAM,IAAI,EACV,IAAI,SAASzpC,GAAQ,CACpB,OAAOA,GAAO,QAAQ;AAAA,CAAI,IAAM,EAAIA,GAAO,OAAO,EAAGA,GAAO,MAAM,EAAIA,EACvE,CAAA,EACA,QAAQ,SAASp/B,GAAM,CACtB,IAAIpzC,GAAQozC,GAAK,MAAM,GAAG,EACtBh/E,GAAM4rC,GAAM,MAAK,EAAG,KAAM,EAC9B,GAAI5rC,GAAK,CACP,IAAIL,GAAQisC,GAAM,KAAK,GAAG,EAAE,KAAM,EAClC,GAAI,CACF66E,EAAQ,OAAOzmH,GAAKL,EAAK,CAC1B,OAAQsG,GAAO,CACd,QAAQ,KAAK,YAAcA,GAAM,OAAO,CACpD,CACA,CACA,CAAO,EACIwgH,CACX,CAEEwgC,EAAK,KAAKI,EAAQ,SAAS,EAE3B,SAAS7nJ,EAASsoJ,EAAUrnJ,EAAS,CACnC,GAAI,EAAE,gBAAgBjB,GACpB,MAAM,IAAI,UAAU,4FAA4F,EAQlH,GANKiB,IACHA,EAAU,CAAE,GAGd,KAAK,KAAO,UACZ,KAAK,OAASA,EAAQ,SAAW,OAAY,IAAMA,EAAQ,OACvD,KAAK,OAAS,KAAO,KAAK,OAAS,IACrC,MAAM,IAAI,WAAW,0FAA0F,EAEjH,KAAK,GAAK,KAAK,QAAU,KAAO,KAAK,OAAS,IAC9C,KAAK,WAAaA,EAAQ,aAAe,OAAY,GAAK,GAAKA,EAAQ,WACvE,KAAK,QAAU,IAAIgmJ,EAAQhmJ,EAAQ,OAAO,EAC1C,KAAK,IAAMA,EAAQ,KAAO,GAC1B,KAAK,UAAUqnJ,CAAQ,CAC3B,CAEEb,EAAK,KAAKznJ,EAAS,SAAS,EAE5BA,EAAS,UAAU,MAAQ,UAAW,CACpC,OAAO,IAAIA,EAAS,KAAK,UAAW,CAClC,OAAQ,KAAK,OACb,WAAY,KAAK,WACjB,QAAS,IAAIinJ,EAAQ,KAAK,OAAO,EACjC,IAAK,KAAK,GACX,CAAA,CACF,EAEDjnJ,EAAS,MAAQ,UAAW,CAC1B,IAAIgF,EAAW,IAAIhF,EAAS,KAAM,CAAC,OAAQ,IAAK,WAAY,EAAE,CAAC,EAC/D,OAAAgF,EAAS,GAAK,GACdA,EAAS,OAAS,EAClBA,EAAS,KAAO,QACTA,CACR,EAED,IAAIujJ,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,EAE/CvoJ,EAAS,SAAW,SAAS0yB,EAAKuqC,EAAQ,CACxC,GAAIsrF,EAAiB,QAAQtrF,CAAM,IAAM,GACvC,MAAM,IAAI,WAAW,qBAAqB,EAG5C,OAAO,IAAIj9D,EAAS,KAAM,CAAC,OAAQi9D,EAAQ,QAAS,CAAC,SAAUvqC,CAAG,CAAC,CAAC,CACrE,EAEDjD,EAAQ,aAAe5pC,EAAE,aACzB,GAAI,CACF,IAAI4pC,EAAQ,YACb,MAAa,CACZA,EAAQ,aAAe,SAAS/oB,EAAS7G,GAAM,CAC7C,KAAK,QAAU6G,EACf,KAAK,KAAO7G,GACZ,IAAI4G,GAAQ,MAAMC,CAAO,EACzB,KAAK,MAAQD,GAAM,KACpB,EACDgpB,EAAQ,aAAa,UAAY,OAAO,OAAO,MAAM,SAAS,EAC9DA,EAAQ,aAAa,UAAU,YAAcA,EAAQ,YACzD,CAEE,SAASgpH,EAAMjyG,EAAOgiH,EAAM,CAC1B,OAAO,IAAI,QAAQ,SAASxnF,GAASC,GAAQ,CAC3C,IAAIwnF,GAAU,IAAIZ,EAAQrhH,EAAOgiH,CAAI,EAErC,GAAIC,GAAQ,QAAUA,GAAQ,OAAO,QACnC,OAAOxnF,GAAO,IAAIxxC,EAAQ,aAAa,UAAW,YAAY,CAAC,EAGjE,IAAIi5H,GAAM,IAAI,eAEd,SAASC,IAAW,CAClBD,GAAI,MAAO,CACnB,CAEMA,GAAI,OAAS,UAAW,CACtB,IAAIznJ,GAAU,CACZ,WAAYynJ,GAAI,WAChB,QAASP,EAAaO,GAAI,sBAAuB,GAAI,EAAE,CACxD,EAGGD,GAAQ,IAAI,QAAQ,SAAS,IAAM,IAAMC,GAAI,OAAS,KAAOA,GAAI,OAAS,KAC5EznJ,GAAQ,OAAS,IAEjBA,GAAQ,OAASynJ,GAAI,OAEvBznJ,GAAQ,IAAM,gBAAiBynJ,GAAMA,GAAI,YAAcznJ,GAAQ,QAAQ,IAAI,eAAe,EAC1F,IAAIo+E,GAAO,aAAcqpE,GAAMA,GAAI,SAAWA,GAAI,aAClD,WAAW,UAAW,CACpB1nF,GAAQ,IAAIhhE,EAASq/E,GAAMp+E,EAAO,CAAC,CACpC,EAAE,CAAC,CACL,EAEDynJ,GAAI,QAAU,UAAW,CACvB,WAAW,UAAW,CACpBznF,GAAO,IAAI,UAAU,wBAAwB,CAAC,CAC/C,EAAE,CAAC,CACL,EAEDynF,GAAI,UAAY,UAAW,CACzB,WAAW,UAAW,CACpBznF,GAAO,IAAI,UAAU,2BAA2B,CAAC,CAClD,EAAE,CAAC,CACL,EAEDynF,GAAI,QAAU,UAAW,CACvB,WAAW,UAAW,CACpBznF,GAAO,IAAIxxC,EAAQ,aAAa,UAAW,YAAY,CAAC,CACzD,EAAE,CAAC,CACL,EAED,SAASm5H,GAAOl2H,GAAK,CACnB,GAAI,CACF,OAAOA,KAAQ,IAAM7sC,EAAE,SAAS,KAAOA,EAAE,SAAS,KAAO6sC,EAC1D,MAAW,CACV,OAAOA,EACjB,CACA,CAoBM,GAlBAg2H,GAAI,KAAKD,GAAQ,OAAQG,GAAOH,GAAQ,GAAG,EAAG,EAAI,EAE9CA,GAAQ,cAAgB,UAC1BC,GAAI,gBAAkB,GACbD,GAAQ,cAAgB,SACjCC,GAAI,gBAAkB,IAGpB,iBAAkBA,KAChB/B,EAAQ,KACV+B,GAAI,aAAe,OAEnB/B,EAAQ,cAER+B,GAAI,aAAe,gBAInBF,GAAQ,OAAOA,EAAK,SAAY,UAAY,EAAEA,EAAK,mBAAmBvB,GAAYphK,EAAE,SAAW2iK,EAAK,mBAAmB3iK,EAAE,SAAW,CACtI,IAAI+qD,GAAQ,CAAE,EACd,OAAO,oBAAoB43G,EAAK,OAAO,EAAE,QAAQ,SAAS3oJ,GAAM,CAC9D+wC,GAAM,KAAKk2G,EAAcjnJ,EAAI,CAAC,EAC9B6oJ,GAAI,iBAAiB7oJ,GAAMknJ,EAAeyB,EAAK,QAAQ3oJ,EAAI,CAAC,CAAC,CACvE,CAAS,EACD4oJ,GAAQ,QAAQ,QAAQ,SAAStoJ,GAAON,GAAM,CACxC+wC,GAAM,QAAQ/wC,EAAI,IAAM,IAC1B6oJ,GAAI,iBAAiB7oJ,GAAMM,EAAK,CAE5C,CAAS,CACT,MACQsoJ,GAAQ,QAAQ,QAAQ,SAAStoJ,GAAON,GAAM,CAC5C6oJ,GAAI,iBAAiB7oJ,GAAMM,EAAK,CAC1C,CAAS,EAGCsoJ,GAAQ,SACVA,GAAQ,OAAO,iBAAiB,QAASE,EAAQ,EAEjDD,GAAI,mBAAqB,UAAW,CAE9BA,GAAI,aAAe,GACrBD,GAAQ,OAAO,oBAAoB,QAASE,EAAQ,CAEvD,GAGHD,GAAI,KAAK,OAAOD,GAAQ,UAAc,IAAc,KAAOA,GAAQ,SAAS,CAC7E,CAAA,CACL,CAEE,OAAAhQ,EAAM,SAAW,GAEZ5yJ,EAAE,QACLA,EAAE,MAAQ4yJ,EACV5yJ,EAAE,QAAUohK,EACZphK,EAAE,QAAUgiK,EACZhiK,EAAE,SAAWma,GAGfyvB,EAAQ,QAAUw3H,EAClBx3H,EAAQ,QAAUo4H,EAClBp4H,EAAQ,SAAWzvB,EACnByvB,EAAQ,MAAQgpH,EAEhB,OAAO,eAAehpH,EAAS,aAAc,CAAE,MAAO,GAAM,EAErDA,IAEN,CAAE,CAAA,CACJ,GAAEg3H,CAAc,EAEjBA,EAAe,MAAM,SAAW,GAChC,OAAOA,EAAe,MAAM,SAE5B,IAAIoC,EAAMrC,EAAW,MAAQA,EAAaC,EAC1Ch3H,EAAUo5H,EAAI,MACdp5H,EAAkB,QAAAo5H,EAAI,MACtBp5H,EAAgB,MAAAo5H,EAAI,MACpBp5H,EAAA,QAAkBo5H,EAAI,QACtBp5H,EAAA,QAAkBo5H,EAAI,QACtBp5H,EAAA,SAAmBo5H,EAAI,SACvBx5E,EAAiB,QAAA5/C,yMC5qBjB,IAAIukE,EAAa3kE,cAAQA,aAAK,WAAc,SAAU4kE,EAASC,EAAYltG,EAAGmtG,EAAW,CACrF,SAASC,EAAMj0F,EAAO,CAAE,OAAOA,aAAiBnZ,EAAImZ,EAAQ,IAAInZ,EAAE,SAAUg6E,EAAS,CAAEA,EAAQ7gE,CAAK,CAAI,CAAA,CAAE,CAC1G,OAAO,IAAKnZ,IAAMA,EAAI,UAAU,SAAUg6E,EAASC,EAAQ,CACvD,SAASozB,EAAUl0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,KAAKh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CACzF,SAASwvG,EAASn0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,MAASh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CAC5F,SAAS8wB,EAAKrV,EAAQ,CAAEA,EAAO,KAAOygE,EAAQzgE,EAAO,KAAK,EAAI6zF,EAAM7zF,EAAO,KAAK,EAAE,KAAK8zF,EAAWC,CAAQ,CAAE,CAC5G1+E,GAAMu+E,EAAYA,EAAU,MAAMF,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CAC5E,CAAK,CACJ,EACD,OAAO,eAAe40D,aAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,aAAA,aAAuBA,aAAA,UAAoB,OAE3C,MAAMC,EAAgBr9H,uBAAsB,EAC5C,SAASs9H,EAAUt2H,EAAKzxB,EAAS,CAC7B,IAAI7C,EACJ,OAAO41F,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAGhD,OAAQ,OADS51F,EAAuD6C,GAAQ,SAAW,MAAQ7C,IAAO,OAASA,EAAK2qJ,EAAc,OAChHr2H,CAAG,GAAG,KAAM,CAC1C,CAAK,CACL,CACAo2H,aAAA,UAAoBE,EACpB,SAASC,EAAav2H,EAAKzxB,EAAS,CAChC,OAAO+yF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,OAAQ,MAAMg1D,EAAUt2H,EAAKzxB,CAAO,GAAG,UAAU,CACzD,CAAK,CACL,CACA6nJ,oBAAA,aAAuBG,kKC3BvB,IAAIj1D,EAAa3kE,iBAAQA,gBAAK,WAAc,SAAU4kE,EAASC,EAAYltG,EAAGmtG,EAAW,CACrF,SAASC,EAAMj0F,EAAO,CAAE,OAAOA,aAAiBnZ,EAAImZ,EAAQ,IAAInZ,EAAE,SAAUg6E,EAAS,CAAEA,EAAQ7gE,CAAK,CAAI,CAAA,CAAE,CAC1G,OAAO,IAAKnZ,IAAMA,EAAI,UAAU,SAAUg6E,EAASC,EAAQ,CACvD,SAASozB,EAAUl0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,KAAKh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CACzF,SAASwvG,EAASn0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,MAASh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CAC5F,SAAS8wB,EAAKrV,EAAQ,CAAEA,EAAO,KAAOygE,EAAQzgE,EAAO,KAAK,EAAI6zF,EAAM7zF,EAAO,KAAK,EAAE,KAAK8zF,EAAWC,CAAQ,CAAE,CAC5G1+E,GAAMu+E,EAAYA,EAAU,MAAMF,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CAC5E,CAAK,CACJ,EACD,OAAO,eAAe,gBAAS,aAAc,CAAE,MAAO,GAAM,EAC3C,gBAAA,UAAG,OACpB,MAAM40D,EAAiBp9H,oBAAyB,EAQhD,SAASw9H,EAAUroJ,EAAQI,EAAS,CAChC,OAAO+yF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAMtiF,GAAO,QAAUo3I,EAAe,cAAc,qBAAqBjoJ,CAAM,eAAgBI,CAAO,GAAGJ,CAAM,EAC/G,GAAI,OAAO6Q,GAAQ,SACf,MAAM,IAAI,MAAM,0CAA0CA,CAAG,YAAY,OAAOA,CAAG,EAAE,EAEzF,OAAOA,CACf,CAAK,CACL,CACA,uBAAA,UAAoBw3I,sKC5BpB,IAAIl1D,EAAa3kE,cAAQA,aAAK,WAAc,SAAU4kE,EAASC,EAAYltG,EAAGmtG,EAAW,CACrF,SAASC,EAAMj0F,EAAO,CAAE,OAAOA,aAAiBnZ,EAAImZ,EAAQ,IAAInZ,EAAE,SAAUg6E,EAAS,CAAEA,EAAQ7gE,CAAK,CAAI,CAAA,CAAE,CAC1G,OAAO,IAAKnZ,IAAMA,EAAI,UAAU,SAAUg6E,EAASC,EAAQ,CACvD,SAASozB,EAAUl0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,KAAKh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CACzF,SAASwvG,EAASn0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,MAASh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CAC5F,SAAS8wB,EAAKrV,EAAQ,CAAEA,EAAO,KAAOygE,EAAQzgE,EAAO,KAAK,EAAI6zF,EAAM7zF,EAAO,KAAK,EAAE,KAAK8zF,EAAWC,CAAQ,CAAE,CAC5G1+E,GAAMu+E,EAAYA,EAAU,MAAMF,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CAC5E,CAAK,CACJ,EACD,OAAO,eAAei1D,aAAS,aAAc,CAAE,MAAO,GAAM,EACxCA,aAAA,aAAG,OACvB,MAAML,EAAiBp9H,oBAAyB,EAQhD,SAAS09H,EAAa13I,EAAKzQ,EAAS,CAChC,OAAO+yF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAEhD,MAAMthE,EAAM,IAAI,IAAI,2BAA2B,EAC/CA,EAAI,aAAa,OAAO,MAAOhhB,CAAG,EAClCghB,EAAI,aAAa,OAAO,SAAU,QAAQ,EAC1C,MAAMjhB,EAAW,OAAO,KAAK,QAAUq3I,EAAe,cAAcp2H,EAAKzxB,CAAO,CAAC,EACjF,GAAIwQ,EAAS,SAAW,EACpB,MAAM,IAAI,MAAM,sBAAsB,EAE1C,OAAOA,EAAS,CAAC,CACzB,CAAK,CACL,CACA03I,oBAAA,aAAuBC,iMChCvB,IAAIp1D,EAAa3kE,mBAAQA,kBAAK,WAAc,SAAU4kE,EAASC,EAAYltG,EAAGmtG,EAAW,CACrF,SAASC,EAAMj0F,EAAO,CAAE,OAAOA,aAAiBnZ,EAAImZ,EAAQ,IAAInZ,EAAE,SAAUg6E,EAAS,CAAEA,EAAQ7gE,CAAK,CAAI,CAAA,CAAE,CAC1G,OAAO,IAAKnZ,IAAMA,EAAI,UAAU,SAAUg6E,EAASC,EAAQ,CACvD,SAASozB,EAAUl0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,KAAKh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CACzF,SAASwvG,EAASn0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,MAASh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CAC5F,SAAS8wB,EAAKrV,EAAQ,CAAEA,EAAO,KAAOygE,EAAQzgE,EAAO,KAAK,EAAI6zF,EAAM7zF,EAAO,KAAK,EAAE,KAAK8zF,EAAWC,CAAQ,CAAE,CAC5G1+E,GAAMu+E,EAAYA,EAAU,MAAMF,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CAC5E,CAAK,CACJ,EACD,OAAO,eAAem1D,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAMP,EAAiBp9H,oBAAyB,EAIhD,SAAS49H,EAAkBroJ,EAAS,CAChC,OAAO+yF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,SAAW80D,EAAe,cAAc,4BAA6B7nJ,CAAO,CACpF,CAAK,CACL,CACAooJ,yBAAA,kBAA4BC,8HCpB5B,IAAIl6H,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uBAA4B,EAAE+D,CAAO,EAClDD,EAAaE,oBAAyB,EAAED,CAAO,EAC/CD,EAAaG,2BAAgCF,CAAO,6HCjBpD,IAAIukE,EAAa3kE,MAAQA,KAAK,WAAc,SAAU4kE,EAASC,EAAYltG,EAAGmtG,EAAW,CACrF,SAASC,EAAMj0F,EAAO,CAAE,OAAOA,aAAiBnZ,EAAImZ,EAAQ,IAAInZ,EAAE,SAAUg6E,EAAS,CAAEA,EAAQ7gE,CAAK,CAAI,CAAA,CAAE,CAC1G,OAAO,IAAKnZ,IAAMA,EAAI,UAAU,SAAUg6E,EAASC,EAAQ,CACvD,SAASozB,EAAUl0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,KAAKh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CACzF,SAASwvG,EAASn0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,MAASh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CAC5F,SAAS8wB,EAAKrV,EAAQ,CAAEA,EAAO,KAAOygE,EAAQzgE,EAAO,KAAK,EAAI6zF,EAAM7zF,EAAO,KAAK,EAAE,KAAK8zF,EAAWC,CAAQ,CAAE,CAC5G1+E,GAAMu+E,EAAYA,EAAU,MAAMF,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CAC5E,CAAK,CACJ,EACD,OAAO,eAAczkE,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAA4B,kBAAAA,EAAA,YAAsBA,EAAsB,YAAA,OACxE,MAAM22H,EAAa16H,gBAAqB,EAClC69H,EAAW75H,cAAmB,EACpC,SAAS85H,EAAY93I,EAAKzQ,EAAS,CAC/B,OAAO+yF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,IAAIzzF,EAEJ,GAAI,CACAA,EAAS,QAAUgpJ,EAAS,cAAc73I,EAAKzQ,CAAO,CAClE,MACmB,CAC+CA,GAAQ,gBAE1DV,KAAa6lJ,EAAW,UAAU10I,CAAG,EAAE,MAAM,EAAG,CAAC,EAEjE,CAGQ,GAAI,OAAOnR,EAAW,KACf,OAA0DU,GAAQ,kBAAsB,UACxFV,KAAUU,EAAQ,iBAAkB,CACvC,IAAI/b,EAAI,EACR,KAAO,GAAGqb,CAAM,GAAGrb,CAAC,KAAM+b,EAAQ,kBAC9B/b,GAAK,EAETqb,EAAS,GAAGA,CAAM,GAAGrb,CAAC,EAClC,CACQ,OAAOqb,CACf,CAAK,CACL,CACAkvB,EAAA,YAAsB+5H,EAMtB,SAASC,EAAY5oJ,EAAQI,EAAS,CAClC,OAAO+yF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,GAAI,CAEA,OAAO,QAAUu1D,EAAS,WAAW1oJ,EAAQI,CAAO,CAChE,MACmB,CACP,MACZ,CACA,CAAK,CACL,CACAwuB,EAAA,YAAsBg6H,EACtB,IAAIC,EAAWh6H,cAAmB,EAClC,OAAO,eAAeD,EAAS,oBAAqB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOi6H,EAAS,iBAAkB,CAAI,CAAA,qICxDjI,OAAO,eAAe7wG,QAAS,aAAc,CAAE,MAAO,GAAM,EACxCA,QAAA,aAAG,OAEvB,SAAS8wG,EAAathJ,EAAM,CACxB,GAAIA,EAAK,WAAa,aAAe,CAACA,EAAK,MAAM,WAAW,+BACxD,MAAM,IAAI,MAAM,QAAQA,EAAK,KAAK,qCAAqC,EAE3E,OAAOA,EAAK,MAAM,MAAM,EAAE,CAC9B,CACAwwC,eAAA,aAAuB8wG,0JCZvB,OAAO,eAAe,eAAS,aAAc,CAAE,MAAO,GAAM,EAI5D,eAAA,QAAkB,CACd,YAAa,GACb,SAAU,GACV,QAAS,GACT,MAAO,GACP,SAAU,GACV,SAAU,GACV,aAAc,GACd,aAAc,GACd,aAAc,GACd,aAAc,GACd,UAAW,GACX,UAAW,GACX,QAAS,GACT,MAAO,GACP,WAAY,GACZ,WAAY,GACZ,OAAQ,GACR,SAAU,GACV,SAAU,GACV,iBAAkB,GAClB,oBAAqB,GACrB,kBAAmB,GACnB,kBAAmB,GACnB,6BAA8B,GAC9B,OAAQ,GACR,kBAAmB,GACnB,SAAU,GACV,GAAI,GAEJ,KAAM,EACT,wJCnCD,OAAO,eAAe,aAAS,aAAc,CAAE,MAAO,GAAM,EAK5D,aAAA,QAAkB,CACd,IAAK,iCACL,IAAK,8CACL,KAAM,wCACN,GAAI,8BACJ,IAAK,mCACR,uICXD,OAAO,eAAe,UAAS,aAAc,CAAE,MAAO,GAAM,EAI5D,UAAA,QAAkB,CACd,WAAY,GACZ,gBAAiB,GACjB,iBAAkB,GAClB,YAAa,GACb,SAAU,GACV,QAAS,GACT,MAAO,GACP,SAAU,GACV,SAAU,GACV,aAAc,GACd,aAAc,GACd,aAAc,GACd,aAAc,GACd,UAAW,GACX,UAAW,GACX,QAAS,GACT,MAAO,GACP,WAAY,GACZ,OAAQ,GACR,SAAU,GACV,OAAQ,GACR,kBAAmB,GACnB,SAAU,GACV,GAAI,EACP,gKC7BD,IAAI31D,EAAa3kE,iBAAQA,gBAAK,WAAc,SAAU4kE,EAASC,EAAYltG,EAAGmtG,EAAW,CACrF,SAASC,EAAMj0F,EAAO,CAAE,OAAOA,aAAiBnZ,EAAImZ,EAAQ,IAAInZ,EAAE,SAAUg6E,EAAS,CAAEA,EAAQ7gE,CAAK,CAAI,CAAA,CAAE,CAC1G,OAAO,IAAKnZ,IAAMA,EAAI,UAAU,SAAUg6E,EAASC,EAAQ,CACvD,SAASozB,EAAUl0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,KAAKh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CACzF,SAASwvG,EAASn0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,MAASh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CAC5F,SAAS8wB,EAAKrV,EAAQ,CAAEA,EAAO,KAAOygE,EAAQzgE,EAAO,KAAK,EAAI6zF,EAAM7zF,EAAO,KAAK,EAAE,KAAK8zF,EAAWC,CAAQ,CAAE,CAC5G1+E,GAAMu+E,EAAYA,EAAU,MAAMF,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CAC5E,CAAK,CACJ,EACG/gD,EAAmB9jB,iBAAQA,gBAAK,iBAAoB,SAAU+e,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAK,CAC5D,EACD,OAAO,eAAe,gBAAS,aAAc,CAAE,MAAO,GAAM,EAS5D,MAAM+vF,EAAO,WACPyrB,EAAal6H,cAA0B,EACvCmuF,EAAmBluF,oBAAyB,EAC5C89C,EAAU79C,eAAkB,EAC5Bi6H,EAAmB12G,EAAgBtjB,uBAA4B,EAC/Di6H,EAAkB32G,EAAgBrjB,qBAA0B,EAC5Di6H,EAAe52G,EAAgBpjB,kBAAuB,EAC5D,SAASi6H,EAAax/H,EAAK,CACvB,IAAIpsB,EACJ,OAAQA,EAAK,YAAY,KAAKosB,CAAG,KAAO,MAAQpsB,IAAO,OAAS,OAASA,EAAG,CAAC,CACjF,CACA,MAAM6rJ,EAAkB,CACpB,8CAA+C,MAC/C,wCAAyC,OACzC,8BAA+B,KAC/B,oCAAqC,KACxC,EACKC,EAAgB,CAClB,IAAK,8CACL,KAAM,wCACN,GAAI,8BACJ,IAAK,mCACR,EACD,MAAMC,CAAa,CACf,YAEAnuB,EAEA9jB,EAAQzmG,EAAW,CAAE,EAErBs2B,EAAO,OAAWqiH,EAAoB,GAAMC,EAA0B,GAAO5R,EAAOoF,EAAiB,GAAO,CACxG,KAAK,MAAQ7hB,EACb,KAAK,KAAOj0F,EACZ,KAAK,kBAAoBqiH,EACzB,KAAK,wBAA0BC,EAC/B,KAAK,MAAQ5R,EACb,KAAK,eAAiBoF,EACtB,KAAK,SAAW,CAAE,EAClB,KAAK,UAAY,CAAE,EACnB,UAAWr9I,KAAO,OAAO,KAAKiR,CAAQ,EAAG,CACrC,MAAM42B,EAAM52B,EAASjR,CAAG,EAClBL,EAAQ,OAAOkoC,GAAQ,SAAWA,EAAMA,EAAI,MAC9C,EAAEloC,KAAS8pJ,IAAoB,EAAEzpJ,KAAO0pJ,KACxC,KAAK,UAAU/pJ,CAAK,EAAIK,EACxB,KAAK,SAASA,CAAG,EAAIL,EAErC,CACQ,KAAK,OAAS+3G,CACtB,CAKI,OAAQ,CACJ,OAAOlkB,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAMs2D,EAAY,KAAK,MAAM,SAAS,KAAM,kDAAkE,yCAA6D,IAAI,EAC/K,GAAIA,EAAU,SAAW,GAAKA,EAAU,CAAC,EAAE,QAAQ,WAAa,YAAa,CACzE,MAAMviH,EAAOuiH,EAAU,CAAC,EAAE,QAC1B,KAAK,MAAM,YAAYA,CAAS,EAE3BviH,EAAK,OAAO,IAAIo2F,EAAK,UAAU,oBAAoB,CAAC,GACrD,KAAK,OAAO,IAAI,WAAYtgB,EAAiB,cAAc91E,CAAI,CAAC,EAAE,EACtE,MAAM,KAAK,aAAaA,CAAI,CAC5C,KAEgB,OAAM,IAAI,MAAM,eAAe,EAEnC,GAAI,KAAK,wBAAyB,CAC9B,MAAMwiH,EAAa,IAAI,IACvB,UAAWliJ,IAAQ,CACf,GAAG,KAAK,MAAM,YAAY,KAAM,KAAM,IAAI,EAC1C,GAAG,KAAK,MAAM,cAAc,KAAM,KAAM,IAAI,EAC5C,GAAG,KAAK,MAAM,WAAW,KAAM,KAAM,IAAI,CAC7D,EACoB,GAAIA,EAAK,WAAa,YAAa,CAC/B,MAAMmiJ,EAAYR,EAAa3hJ,EAAK,KAAK,EACrCmiJ,GAAa,EAAEA,KAAa,KAAK,YAAc,EAAEA,KAAaP,IAC9DM,EAAW,IAAIC,CAAS,CAEpD,CAEgB,MAAMC,EAAmB,OAAO,OAAO,OAAO,OAAO,CAAA,EAAI,KAAK,QAAQ,EAAGP,CAAa,EACtF,MAAM,QAAQ,IAAI,CAAC,GAAGK,CAAU,EAAE,IAAKG,MAAWd,EAAW,aAAac,EAAI,CAC1E,MAAO,KAAK,MACZ,cAAe,GACf,iBAAAD,CACpB,CAAiB,EAAE,KAAME,GAAS,CACd,KAAK,SAASA,CAAI,EAAID,EACtBD,EAAiBE,CAAI,EAAID,EACzB,KAAK,UAAUA,CAAE,EAAIC,CACxB,CAAA,CAAC,CAAC,CACnB,CACY,MAAMC,EAAgB,IAAI,IAAI,CAC1B,GAAG,KAAK,MAAM,YAAY,KAAM,KAAM,IAAI,EAC1C,GAAG,KAAK,MAAM,cAAc,KAAM,KAAM,IAAI,EAC5C,GAAG,KAAK,MAAM,WAAW,KAAM,KAAM,IAAI,CACzD,EACiB,OAAQviJ,GAASA,EAAK,WAAa,WAAW,EAC9C,IAAKA,GAAS2hJ,EAAa3hJ,EAAK,KAAK,CAAC,EACtC,OAAQmiB,GAAQ,OAAOA,GAAQ,QAAQ,CAAC,EAC7C,UAAWhqB,KAAO,KAAK,UACdoqJ,EAAc,IAAIpqJ,CAAG,IACtB,OAAO,KAAK,SAAS,KAAK,UAAUA,CAAG,CAAC,EACxC,OAAO,KAAK,UAAUA,CAAG,GAQjC,GALA,MAAM,KAAK,cAAe,EAC1B,KAAK,SAAW,OAAO,OAAO,OAAO,OAAO,CAAA,EAAI,KAAK,QAAQ,EAAG0pJ,CAAa,EAC7E,KAAK,UAAY,OAAO,OAAO,OAAO,OAAO,CAAA,EAAI,KAAK,SAAS,EAAGD,CAAe,EACjF,KAAK,OAAO,QAAS,EACrB,MAAM,KAAK,YAAa,EACpB,KAAK,eAAgB,CACrB,MAAMpwB,EAAW,KAAK,MAAM,YAAY,KAAM,KAAM,IAAI,EACpDA,EAAS,OAAS,GAClB,KAAK,OAAO,QAAQ,CAAC,EAEzB,UAAW7nH,KAAW6nH,EAClB,KAAK,OAAO,IAAI,MAAM,KAAK,aAAa7nH,EAAS,GAAM,EAAI,CAAC,EAC5D,KAAK,OAAO,IAAI,GAAG,EACnB,KAAK,OAAO,OAAQ,EACpB,MAAM,KAAK,sBAAsBA,CAAO,EACxC,KAAK,OAAO,SAAU,EAEtB6nH,EAAS,OAAS,IAClB,KAAK,OAAO,IAAI,IAAI,EACpB,KAAK,OAAO,QAAS,EAEzC,CACY,GAAI,KAAK,mBAAqB,KAAK,MAAM,KAAO,EAC5C,MAAM,IAAI,MAAM;AAAA,EAA8D,IAAIsE,EAAK,OAAO,CAAE,SAAU,KAAK,QAAU,CAAA,EAAE,cAAc,KAAK,MAAM,SAAS,KAAM,KAAM,KAAM,IAAI,CAAC,CAAC,GAAG,EAE5L,KAAK,OAAO,IAAK,CAE7B,CAAS,CACT,CACI,aAAap2F,EAAM,CACf,OAAOisD,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAM62D,EAAU,KAAK,MAAM,eAAe9iH,EAAM,IAAIo2F,EAAK,UAAU,uCAA0D,EAAE,IAAI,EACnI,GAAI0sB,EAAQ,OAAS,EACjB,UAAWC,KAAOD,EACd,KAAK,OAAO,IAAI,YAAYC,EAAI,KAAK,IAAK,EAAI,CAGlE,CAAS,CACT,CACI,eAAgB,CACZ,OAAO92D,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAMx+E,EAAO,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAQhV,GAAQ,EAAEA,KAAOspJ,EAAgB,QAAQ,EAAE,KAAM,EACjG,GAAIt0I,EAAK,OAAS,EACd,UAAWhV,KAAOgV,EACd,KAAK,OAAO,IAAI,UAAUhV,CAAG,MAAM,KAAK,SAASA,CAAG,CAAC,IAAK,EAAI,CAGlF,CAAS,CACT,CACI,aAAa6H,EAAM0iJ,EAAmB,GAAOC,EAAkB,GAAO,CAClE,OAAOh3D,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAEhD,GAAI,CACA,GAAI+2D,EACA,MAAM,IAAI,MAAM,qBAAqB,EAEzC,SAAWt9E,EAAQ,cAAcplE,CAAI,CAErD,MACsB,CAAA,CACV,GAAIA,EAAK,WAAa,YAAa,CAC/B,MAAMmiJ,EAAYR,EAAa3hJ,EAAK,KAAK,EACzC,OAAImiJ,GAAaA,KAAa,KAAK,WAC3BA,KAAa,KAAK,UACX,GAAG,KAAK,UAAUA,CAAS,CAAC,IAAIniJ,EAAK,MAAM,MAAMmiJ,EAAU,MAAM,CAAC,MAGtE3sC,EAAiB,cAAcx1G,CAAI,CAC9D,CACY,GAAIA,EAAK,WAAa,UAClB,OAAIA,EAAK,iBAAmB,4CACrBA,EAAK,iBAAmB,2CACpBA,EAAK,SAELw1G,EAAiB,cAAcx1G,CAAI,EAElD,MAAIA,EAAK,WAAa,aAAe2iJ,MAC7BntC,EAAiB,cAAcx1G,CAAI,EAErC,IAAI,MAAM,yCAAyCA,EAAK,KAAK,KAAKA,EAAK,QAAQ,GAAG,CACpG,CAAS,CACT,CACI,aAAc,CACV,OAAO2rF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAKhD,UAAWhiF,KAAW,KAAK,MAAM,gBAAgB,IAAImsH,EAAK,UAAU,iDAAiE,EAAE,IAAIA,EAAK,UAAU,sCAA0D,EAAE,IAAI,EAAG,CACrN,KAAK,MAAM,aAAansH,EAAS,IAAImsH,EAAK,UAAU,iDAAiE,EAAE,IAAIA,EAAK,UAAU,4CAA4C,EAAoB,IAAI,EAAE,OAAS,EACzN,KAAK,OAAO,IAAI,aAAa,EAG7B,KAAK,OAAO,IAAI,QAAQ,EAE5B,KAAK,OAAO,IAAI,MAAM,KAAK,aAAansH,CAAO,CAAC,EAChD,KAAK,OAAO,IAAI,GAAG,EACnB,MAAMi5I,EAAgB,KAAK,MAAM,eAAej5I,EAAS,IAAImsH,EAAK,UAAU,wCAA8D,EAAE,IAAI,EAChJ,GAAI8sB,EAAc,OAAS,EAAG,CAC1B,KAAK,OAAO,IAAI,KAAK,EACrB,UAAWC,KAAeD,EAClBC,EAAY,WAAa,YACzB,KAAK,OAAO,IAAI,MAAM,KAAK,aAAaA,CAAW,CAAC,GAGpD,KAAK,OAAO,IAAI,GAAG,EACnB,KAAK,OAAO,IAAI,MAAM,KAAK,aAAa,KAAK,aAAaA,EAAa,IAAI/sB,EAAK,UAAU,gCAAgC,EAAgB,EAAI,CAAC,CAAC,GAEpJ,KAAK,OAAO,IAAI,GAAG,CAE3C,CACgB,MAAMgtB,EAAmB,KAAK,MAAM,cAAcn5I,EAAS,KAAM,IAAI,EAChE,OAAQ85G,GAAa,CACtB,IAAIqS,EAAK,UAAU,wCAA8D,EACjF,IAAIA,EAAK,UAAU,qCAAwD,EAE3E,IAAIA,EAAK,UAAU,+BAA4C,EAC/D,GAAG,OAAO,KAAK4rB,EAAa,OAAO,EAAE,IAAKvpJ,GAAQ,IAAI29H,EAAK,UAAU,8BAA2C39H,CAAG,CAAC,CACxI,EAAkB,MAAOkuE,GAAS,CAACo9C,EAAS,OAAOp9C,CAAI,CAAC,CAAC,EACrCy8E,EAAiB,OAAS,IAC1B,KAAK,OAAO,IAAI,GAAG,EACnB,KAAK,OAAO,OAAQ,EACpB,KAAK,OAAO,QAAQ,CAAC,GAErB,KAAK,iBACL,MAAM,KAAK,2BAA2Bn5I,EAASm5I,CAAgB,GAE/DA,EAAiB,OAAS,IAC1B,KAAK,OAAO,IAAI,GAAG,EACnB,KAAK,OAAO,SAAU,GAE1B,MAAM,KAAK,eAAen5I,EAAS,EAAK,CACxD,CACA,CAAS,CACT,CACI,kBAAkB69B,EAAMu7G,EAAmB,CAEvC,IAAIC,EAAY,CAACx7G,CAAI,EACrB,GAAI,CACA,IAAIhwC,KAAW4tE,EAAQ,cAAc59B,EAAK,SAAS,EAC/C9vC,EAAO,OACX,GAAIF,IAAS,MAAO,CAChB,MAAMk1C,EAAQ,KAAK,MAAM,aAAalF,EAAK,OAAQ,KAAM,KAAM,IAAI,EAGnE,GADAw7G,EAAYA,EAAU,OAAOt2G,CAAK,EAC9BA,EAAM,SAAW,EACjB,MAAM,IAAI,MAAM,+CAAiD,EAGrE,CAAClF,CAAI,EAAIkF,EACTl1C,KAAW4tE,EAAQ,cAAc59B,EAAK,SAAS,EAC/C9vC,EAAO,KACvB,CACY,GAAI,EAAEF,KAAQurJ,GACV,MAAM,IAAI,MAAM,GAAGvrJ,CAAI,iBAAiB,EAE5C,MAAO,CAAE,KAAAA,EAAM,KAAAE,EAAM,OAAQ8vC,EAAK,MAAQ,CACtD,MACkB,CACN,KAAK,MAAM,SAASw7G,CAAS,CACzC,CAEA,CACI,0BAA0BhjJ,EAAM+iJ,EAAmB,CAC/C,MAAM7qJ,EAAS,CAAE,EACjB,UAAWsvC,KAAQ,KAAK,MAAM,aAAaxnC,EAAM,KAAM,KAAM,IAAI,EAAG,CAChE,MAAMyjH,EAAW,KAAK,kBAAkBj8E,EAAMu7G,CAAiB,EAC3Dt/B,GACAvrH,EAAO,KAAKurH,CAAQ,CAEpC,CACQ,OAAOvrH,CACf,CACI,kBAAkB8H,EAAM+iJ,EAAmB,CACvC,MAAMr2G,EAAQ,KAAK,MAAM,aAAa1sC,EAAM,KAAM,KAAM,IAAI,EAC5D,GAAI0sC,EAAM,SAAW,EAAG,CACpB,MAAMzpC,EAAO,KAAK,kBAAkBypC,EAAM,CAAC,EAAGq2G,CAAiB,EAC/D,GAAI9/I,EACA,OAAOA,CAEvB,CACQ,KAAK,MAAM,SAASypC,CAAK,CAEjC,CACI,aAAa1sC,EAAM+iJ,EAAmB,CAClC,MAAME,EAAe,CAAE,EACvB,UAAWz7G,KAAQ,KAAK,MAAM,aAAaxnC,EAAM,IAAI81H,EAAK,UAAU,+BAA+B,EAAe,KAAM,IAAI,EAAG,CAC3H,MAAMotB,EAAY,CAAE,EACpB,UAAWp+I,KAAQ,KAAK,QAAQ0iC,EAAK,MAAM,EAAG,CAC1C,MAAMi8E,EAAW,KAAK,kBAAkB3+G,EAAMi+I,CAAiB,EAC/D,GAAI,CAACt/B,EAED,WAAK,MAAM,QAAQj8E,CAAI,EACjB,IAAI,MAAM,oEAAsE,EAE1F07G,EAAU,KAAKz/B,CAAQ,CACvC,CACYw/B,EAAa,KAAKC,CAAS,CACvC,CACQ,OAAOD,CACf,CAII,QAAQjjJ,EAAM,CAEV,IAAImjJ,EAAWnjJ,EACf,MAAM4E,EAAO,CAAE,EAEf,KAAO,CAACu+I,EAAS,OAAO,IAAIrtB,EAAK,UAAU,gDAAgD,CAAe,GACtGlxH,EAAK,KAAK,KAAK,aAAau+I,EAAU,IAAIrtB,EAAK,UAAU,oDAAqE,EAAI,CAAC,EACnIqtB,EAAW,KAAK,aAAaA,EAAU,IAAIrtB,EAAK,UAAU,iDAAiE,EAAE,EAAI,EAErI,OAAOlxH,CACf,CACI,uBAAuBsI,EAAQ,CAC3B,OAAOy+E,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,GAAIz+E,EAAO,WAAa,YAAa,CACjC,KAAK,OAAO,IAAI,GAAG,EACnB,IAAIwR,EAAQ,GACZ,UAAW1e,KAAQ,KAAK,QAAQkN,CAAM,EAC9BwR,EACAA,EAAQ,GAGR,KAAK,OAAO,IAAI,GAAG,EAEvB,KAAK,OAAO,IAAI,MAAM,KAAK,aAAa1e,CAAI,CAAC,EAEjD,KAAK,OAAO,IAAI,GAAG,CACnC,MAEgB,KAAK,OAAO,IAAI,MAAM,KAAK,aAAakN,CAAM,CAAC,CAE/D,CAAS,CACT,CACI,aAAavD,EAASyF,EAAW2tF,EAAQ,CACrC,IAAIhnG,EACJ,OAAQA,EAAK,KAAK,WAAW4T,EAASyF,EAAW2tF,CAAM,KAAO,MAAQhnG,IAAO,OAAS,OAASA,EAAG,MAC1G,CACI,WAAW4T,EAASyF,EAAW2tF,EAAS,GAAO,CAC3C,MAAM9kG,EAAU,KAAK,MAAM,aAAa0R,EAASyF,EAAW,KAAM,IAAI,EACtE,GAAI2tF,GAAU9kG,EAAQ,SAAW,EAC7B,WAAK,MAAM,SAASA,CAAO,EACrB,IAAI,MAAM,6BAA+E0R,GAAQ,KAAK,IAA0DyF,GAAU,KAAK,8CAA8CnX,EAAQ,MAAM,EAAE,EAEvP,GAAIA,EAAQ,OAAS,EACjB,WAAK,MAAM,SAASA,CAAO,EACrB,IAAI,MAAM,6BAA+E0R,GAAQ,KAAK,IAA0DyF,GAAU,KAAK,6CAA6CnX,EAAQ,MAAM,EAAE,EAEtP,OAAOA,EAAQ,SAAW,EAAIA,EAAQ,CAAC,EAAI,MACnD,CACI,eAAe,CAAE,KAAAT,EAAM,KAAAE,EAAM,OAAAwV,CAAM,EAAI,CACnC,OAAOy+E,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAC5Cj0F,IAAS,OACT,KAAK,OAAO,IAAI,GAAG,EAGvB,KAAK,OAAO,IAAIF,CAAI,EACpB,KAAK,OAAO,IAAI,GAAG,EACnB,MAAM,KAAK,uBAAuB0V,CAAM,CACpD,CAAS,CACT,CACI,UAAU,CAAE,KAAA1V,EAAM,KAAAE,EAAM,OAAAwV,CAAM,EAAI,CAC9B,OAAOy+E,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAIhD,OAHIj0F,IAAS,OACT,KAAK,OAAO,IAAI,GAAG,EAEfF,EAAI,CACR,IAAK,OAAQ,CACT,GAAI0V,EAAO,WAAa,YACpB,KAAK,OAAO,IAAI,IAAI,MAAM,KAAK,aAAaA,CAAM,CAAC,EAAE,UAEhDA,EAAO,WAAa,YACzB,MAAM,KAAK,eAAeA,CAAM,MAGhC,OAAM,IAAI,MAAM,iDAAiD,EAErE,MACpB,CACgB,IAAK,WAAY,CACb,KAAK,OAAO,OAAQk4D,EAAQ,cAAcl4D,CAAM,CAAC,EACjD,MACpB,CACgB,IAAK,QAAS,CACV,KAAK,OAAO,IAAI,MAAM,KAAK,aAAaA,CAAM,CAAC,EAC/C,MACpB,CACgB,IAAK,WAAY,CACb,KAAK,OAAO,IAAI,MAAM,KAAK,aAAaA,CAAM,CAAC,EAC/C,MACpB,CACgB,QACI,KAAK,OAAO,IAAI1V,CAAI,EACpB,KAAK,OAAO,IAAI,GAAG,EACnB,MAAM,KAAK,uBAAuB0V,CAAM,CAC5D,CACA,CAAS,CACT,CACI,gBAAgBk2I,EAAaC,EAAU,IAAK3kI,EAAQ,GAAM4kI,EAAW,CACjE,OAAO33D,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,UAAW43D,KAAcH,EACjB1kI,EAEAA,EAAQ,GAGR,KAAK,OAAO,IAAI2kI,CAAO,EAEvBC,EACA,MAAM,KAAK,UAAUC,CAAU,EAG/B,MAAM,KAAK,eAAeA,CAAU,CAGxD,CAAS,CACT,CACI,YAAYvjJ,EAAM0e,EAAQ,GAAM8kI,EAAcF,EAAY,GAAOG,EAAe,GAAO,CACnF,OAAO93D,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAEhD,MAAMthG,EAAK,KAAK,aAAa2V,EAAMwjJ,CAAY,EACzCE,EAAS,KAAK,0BAA0B1jJ,EAAMwjJ,CAAY,EAC5DC,IAAiBp5J,EAAG,OAAS,GAAKq5J,EAAO,OAAS,IAClD,KAAK,OAAO,QAAQ,CAAC,EAEzB,UAAWR,KAAa74J,EAChBq0B,EAEAA,EAAQ,GAGR,KAAK,OAAO,IAAI,GAAG,EAEvB,MAAM,KAAK,gBAAgBwkI,EAAW,IAAK,GAAMI,CAAS,EAE9D,MAAM,KAAK,gBAAgBI,EAAQ,IAAKhlI,EAAO4kI,CAAS,EACpDG,IAAiBp5J,EAAG,OAAS,GAAKq5J,EAAO,OAAS,IAClD,KAAK,OAAO,IAAI,IAAI,CAEpC,CAAS,CACT,CACI,eAAe1jJ,EAAMouH,EAAS,GAAM,CAChC,OAAOziC,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,KAAK,OAAO,IAAI,GAAG,EAAE,OAAQ,EAC7B,MAAM3sB,EAAa,KAAK,MAAM,eAAeh/D,EAAM,IAAI81H,EAAK,UAAU,qCAAwD,EAAE,IAAI,EACpI,MAAM,KAAK,YAAY91H,EAAM,GAAM0hJ,EAAa,QAAS,GAAO,EAAI,EACpE,UAAWj+B,KAAYzkD,EACnB,KAAK,OAAO,QAAQ,CAAC,EACrB,MAAM,KAAK,cAAcykD,CAAQ,EAErC,KAAK,OAAO,WAAW,QAAQ,CAAC,EAC5B2K,EACA,KAAK,OAAO,IAAI,KAAK,EAGrB,KAAK,OAAO,IAAI,GAAG,EAAE,QAAQ,CAAC,CAE9C,CAAS,CACT,CACI,cAAc3K,EAAU,CACpB,OAAO93B,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAM,KAAK,UAAU,KAAK,aAAa83B,EAAU,IAAIqS,EAAK,UAAU,iCAAgD,EAAE,EAAI,CAAC,EAC3H,MAAMv2G,EAAM,KAAK,aAAakkG,EAAU,IAAIqS,EAAK,UAAU,sCAAwD,EAC7GlyH,EAAM,KAAK,aAAa6/G,EAAU,IAAIqS,EAAK,UAAU,sCAAwD,EAC7G6tB,EAAW,KAAK,aAAalgC,EAAU,IAAIqS,EAAK,UAAU,sCAAwD,EAElH8tB,EAAgB,KAAK,aAAangC,EAAU,IAAIqS,EAAK,UAAU,mCAAmD,EAClHlxF,EAAW,KAAK,aAAa6+E,EAAU,IAAIqS,EAAK,UAAU,sCAAwD,EAClH+tB,EAAa,KAAK,MAAM,eAAepgC,EAAU,IAAIqS,EAAK,UAAU,iCAAgD,EAAE,IAAI,EAahI,GAZI6tB,IACA,KAAK,OAAO,IAAI,GAAG,EACnB,KAAK,OAAO,OAAQv+E,EAAQ,cAAcu+E,CAAQ,CAAC,GAEnDC,IACA,KAAK,OAAO,IAAI,GAAG,EACnB,KAAK,OAAO,IAAI,MAAM,KAAK,aAAaA,CAAa,CAAC,GAEtDh/G,IACA,KAAK,OAAO,IAAI,GAAG,EACnB,KAAK,OAAO,IAAI,MAAM,KAAK,aAAaA,CAAQ,CAAC,GAEjDrlB,IAAQ,QAAa3b,IAAQ,OAAW,CAExC,GADA,KAAK,OAAO,IAAI,IAAI,EAChB2b,EAAK,CACL,GAAIA,EAAI,WAAa,WAAaA,EAAI,iBAAmB,2CACrD,MAAM,IAAI,MAAM,+CAA+C,EAEnE,KAAK,OAAO,IAAIA,EAAI,KAAK,CAC7C,MAEoB,KAAK,OAAO,IAAI,GAAG,EAGvB,GADA,KAAK,OAAO,IAAI,IAAI,EAChB3b,EAAK,CACL,GAAIA,EAAI,WAAa,WAAaA,EAAI,iBAAmB,2CACrD,MAAM,IAAI,MAAM,+CAA+C,EAEnE,KAAK,MAAM,cAAc6/G,EAAU,IAAIqS,EAAK,UAAU,qCAAqC,EAAqB,OAAW,MAAS,EACpI,KAAK,OAAO,IAAIlyH,EAAI,KAAK,CAC7C,MAEoB,KAAK,OAAO,IAAI,GAAG,EAEvB,KAAK,OAAO,IAAI,GAAG,CACnC,CACY,MAAM,KAAK,YAAY6/G,EAAU,GAAO+9B,EAAiB,QAAS,EAAI,EACtE,MAAMsC,EAAe,CAAE,EACvB,UAAWxrJ,KAAQurJ,EACf,GAAIvrJ,EAAK,WAAa,YAClB,KAAK,OAAO,IAAI,GAAG,EACnB,KAAK,OAAO,IAAI,IAAI,MAAM,KAAK,aAAaA,CAAI,CAAC,EAAE,UAE9CA,EAAK,WAAa,YACvBwrJ,EAAa,KAAKxrJ,CAAI,MAGtB,OAAM,IAAI,MAAM,iDAAiD,EAGzE,UAAW0xE,KAAS85E,EAChB,KAAK,OAAO,IAAI,GAAG,EACnB,MAAM,KAAK,eAAe95E,CAAK,EAE/B,KAAK,gBAAkB,KAAK,MAAM,SAASy5C,EAAU,KAAM,KAAM,IAAI,EAAE,OAAS,IAChF,KAAK,OAAO,IAAI,IAAI,EACpB,KAAK,OAAO,OAAQ,EACpB,KAAK,OAAO,QAAQ,CAAC,EACrB,MAAM,KAAK,sBAAsBA,CAAQ,EACzC,KAAK,OAAO,SAAU,EACtB,KAAK,OAAO,QAAQ,CAAC,EACrB,KAAK,OAAO,IAAI,GAAG,GAEnBqgC,EAAa,SAAW,GACxB,KAAK,OAAO,IAAI,IAAI,CAEpC,CAAS,CACT,CACI,sBAAsB9jJ,EAAM,CACxB,OAAO2rF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,OAAO,KAAK,2BAA2B3rF,EAAM,KAAK,MAAM,cAAcA,EAAM,KAAM,IAAI,CAAC,CACnG,CAAS,CACT,CACI,2BAA2BA,EAAM0yH,EAAY,CACzC,OAAO/mC,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,IAAIo4D,EAAO,GACX,GAAIrxB,EAAW,KAAMtjH,GAAcA,EAAU,OAAO0mH,EAAK,YAAY,UAAU,iDAAiD,CAAC,CAAC,EAAG,CACjI,MAAMlsH,EAAQ,KAAK,MAAM,eAAe5J,EAAM81H,EAAK,YAAY,UAAU,iDAAiD,EAAG,IAAI,EAC7HlsH,EAAM,OAAS,IACfm6I,EAAO,GACP,KAAK,OAAO,IAAI,IAAI,EACpB,MAAM,KAAK,mBAAmBn6I,CAAK,EAEvD,CACY,UAAWwF,KAAasjH,EACftjH,EAAU,OAAO0mH,EAAK,YAAY,UAAU,iDAAiD,CAAC,IAC3FiuB,GACA,KAAK,OAAO,IAAI,IAAI,EACpB,KAAK,OAAO,QAAQ,CAAC,GAGrBA,EAAO,GAEX,KAAK,OAAO,IAAI,MAAM,KAAK,aAAa30I,EAAW,EAAI,CAAC,EACxD,KAAK,OAAO,IAAI,GAAG,EACnB,MAAM,KAAK,mBAAmB,KAAK,MAAM,eAAepP,EAAMoP,EAAW,IAAI,CAAC,EAGlG,CAAS,CACT,CACI,mBAAmBnX,EAAS,CACxB,OAAO0zF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAMq4D,EAAe,CAAE,EACjBC,EAAkB,CAAE,EAC1B,UAAW/2I,KAAUjV,EACbiV,EAAO,WAAa,aACjB,CAAC,GAAG,KAAK,MAAM,MAAM,KAAM,KAAMA,CAAM,EAAG,GAAG,KAAK,MAAM,MAAM,KAAMA,EAAQ,IAAI,CAAC,EAAE,SAAW,EACjG82I,EAAa,KAAK92I,CAAM,EAGxB+2I,EAAgB,KAAK/2I,CAAM,EAGnC,KAAK,OAAO,KAAK,MAAM,QAAQ,IAAI+2I,EAAgB,IAAK/2I,GAAW,KAAK,aAAaA,EAAQ,GAAM,EAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,EACtH,IAAIqwI,EAAQ0G,EAAgB,OAAS,EACrC,GAAID,EAAa,OAAS,EACtB,UAAW/lH,KAAS+lH,EACZzG,EACA,KAAK,OAAO,IAAI,IAAI,EAGpBA,EAAQ,IAEN,MAAM,KAAK,UAAUt/G,CAAK,KAC5B,KAAK,OAAO,IAAI,GAAG,EACnB,KAAK,OAAO,OAAQ,EACpB,KAAK,OAAO,QAAQ,CAAC,EACrB,MAAM,KAAK,sBAAsBA,CAAK,EACtC,KAAK,OAAO,SAAU,EACtB,KAAK,OAAO,QAAQ,CAAC,EACrB,KAAK,OAAO,IAAI,GAAG,EAI3C,CAAS,CACT,CACI,UAAU/wB,EAAQ,CACd,OAAOy+E,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,IAAIrzF,EAAO4U,EACX,MAAMmoI,EAAQ,CAAE,EACV3oG,EAAQ,CAAE,EAChB,KAAO,CAACp0C,EAAK,OAAOw9H,EAAK,YAAY,UAAU,gDAAgD,CAAC,GAAG,CAC/F,MAAMp3G,EAAQ,KAAK,MAAM,aAAapmB,EAAMw9H,EAAK,YAAY,UAAU,kDAAkD,EAAG,KAAM,IAAI,EAChIr2G,EAAO,KAAK,MAAM,aAAannB,EAAMw9H,EAAK,YAAY,UAAU,iDAAiD,EAAG,KAAM,IAAI,EAEpI,GADAppF,EAAM,KAAK,GAAGhuB,EAAO,GAAGe,CAAI,EACxBf,EAAM,SAAW,GAAKe,EAAK,SAAW,GAAK,KAAK,MAAM,SAASnnB,EAAM,KAAM,KAAM,IAAI,EAAE,SAAW,EAClG,YAAK,MAAM,SAASo0C,CAAK,EAClB,GAEX2oG,EAAM,KAAK32H,EAAM,CAAC,EAAE,MAAM,EAC1BpmB,EAAOmnB,EAAK,CAAC,EAAE,MAC/B,CACY,IAAIykI,EAAQ,GACZ,KAAK,OAAO,IAAI,GAAG,EACnB,UAAW79E,KAAQgvE,EACX6O,EACA,KAAK,OAAO,IAAI,GAAG,EAGnBA,EAAQ,GAEZ,MAAM,KAAK,mBAAmB,CAAC79E,CAAI,CAAC,EAExC,YAAK,OAAO,IAAI,GAAG,EACZ,EACnB,CAAS,CACT,CACI,UAAUrmE,EAAMmkJ,EAAS,GAAO,CAC5B,OAAOx4D,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,GAAI3rF,EAAK,WAAa,YAClB,KAAK,OAAO,IAAI,MAAM,KAAK,aAAaA,CAAI,CAAC,UAExCA,EAAK,WAAa,YAAa,CACpC,MAAM0sC,EAAQ,KAAK,MAAM,aAAa1sC,EAAM,KAAM,KAAM,IAAI,EAC5D,GAAI0sC,EAAM,SAAW,EAAG,CACpB,KAAM,CAAE,UAAAt9B,EAAW,OAAAlC,GAAWw/B,EAAM,CAAC,EACrC,OAAQt9B,EAAU,MAAK,CACnB,IAAK,yCACD,KAAK,OAAO,IAAI,GAAG,EACnB,MAAM,KAAK,UAAUlC,EAAQ,EAAI,EACjC,OACJ,IAAK,6CAAuE,CACxE,MAAMk3I,EAAe,KAAK,QAAQl3I,CAAM,EACxC,GAAIk3I,EAAa,SAAW,EACxB,MAAM,IAAI,MAAM,uCAAuC,EAEtD,GAAIA,EAAa,SAAW,EAC7B,MAAM,KAAK,UAAUA,EAAa,CAAC,CAAC,MAEnC,CACGD,GACA,KAAK,OAAO,IAAI,GAAG,EAEvB,IAAIzlI,EAAQ,GACZ,UAAW2lI,KAAOD,EACV1lI,EACAA,EAAQ,GAGR,KAAK,OAAO,IAAI,GAAG,EAEvB,MAAM,KAAK,UAAU2lI,EAAK,EAAI,EAE9BF,GACA,KAAK,OAAO,IAAI,GAAG,CAEvD,CAC4B,MAC5B,CACwB,IAAK,4CACD,MAAM,KAAK,UAAUj3I,EAAQ,EAAI,EACjC,KAAK,OAAO,IAAI,GAAG,EACnB,OACJ,IAAK,2CACD,MAAM,KAAK,UAAUA,EAAQ,EAAI,EACjC,KAAK,OAAO,IAAI,GAAG,EACnB,OACJ,IAAK,2CACD,MAAM,KAAK,UAAUA,EAAQ,EAAI,EACjC,KAAK,OAAO,IAAI,GAAG,EACnB,OACJ,QACI,MAAM,IAAI,MAAM,qBAAqBlN,EAAK,KAAK,EAAE,CAC7E,CACA,KACqB,CAED,KAAK,MAAM,SAAS0sC,CAAK,EACzB,MAAMvL,EAAW,KAAK,QAAQnhC,CAAI,EAClC,GAAImhC,EAAS,SAAW,EACpB,MAAM,IAAI,MAAM,cAAc,EAM7B,CACGgjH,GACA,KAAK,OAAO,IAAI,GAAG,EAEvB,IAAIzlI,EAAQ,GACZ,UAAW2lI,KAAOljH,EACVziB,EACAA,EAAQ,GAGR,KAAK,OAAO,IAAI,GAAG,EAEvB,MAAM,KAAK,UAAU2lI,EAAK,EAAI,EAE9BF,GACA,KAAK,OAAO,IAAI,GAAG,CAE/C,CACA,CACA,KAEgB,OAAM,IAAI,MAAM,yCAAyC,CAEzE,CAAS,CACT,CACA,CACA,uBAAA,QAAkBrC,kICxvBlB,OAAO,eAAe,OAAS,aAAc,CAAE,MAAO,GAAM,EAI5D,MAAM1sB,CAAO,CACT,YAAYx8H,EAAS,CACjB,KAAK,QAAU,EACf,KAAK,MAAQA,EAAQ,MACrB,KAAK,IAAMA,EAAQ,GAC3B,CACI,QAAS,CACL,YAAK,SAAW,EACT,IACf,CACI,UAAW,CACP,GAAI,KAAK,QAAU,EACf,MAAM,IAAI,MAAM,0CAA0C,KAAK,OAAO,EAAE,EAE5E,YAAK,SAAW,EACT,IACf,CACI,IAAI5b,EAAGsnK,EAAU,GAAO,CACpB,YAAK,MAAMA,EAAU;AAAA,EAAK,IAAK,OAAO,KAAK,OAAO,CAAC,GAAGtnK,CAAC,GAAKA,EAAG,OAAO,EAC/D,IACf,CACI,QAAQ+T,EAAK,EAAG,CACZ,YAAK,MAAM;AAAA,EAAK,OAAOA,CAAE,EAAI,IAAK,OAAO,KAAK,OAAO,EAAG,OAAO,EACxD,IACf,CACA,CACA,cAAA,QAAkBqkI,mKC9BlB,OAAO,eAAe,cAAS,aAAc,CAAE,MAAO,GAAM,EAM5D,MAAMU,EAAO,WACb,MAAMyuB,UAAsBzuB,EAAK,KAAM,CACnC,aAAa94I,EAAGI,EAAGN,EAAGU,EAAG,CACrB,MAAMkvD,EAAQ,KAAK,SAAS1vD,EAAGI,EAAGN,EAAGU,CAAC,EACtC,YAAK,YAAYkvD,CAAK,EACfA,CACf,CACI,gBAAgBtvD,EAAGN,EAAGU,EAAG,CACrB,OAAO,KAAK,aAAa,KAAMJ,EAAGN,EAAGU,CAAC,EAAE,IAAKwiB,GAASA,EAAK,OAAO,CAC1E,CACI,eAAehjB,EAAGI,EAAGI,EAAG,CACpB,OAAO,KAAK,aAAaR,EAAGI,EAAG,KAAMI,CAAC,EAAE,IAAKwiB,GAASA,EAAK,MAAM,CACzE,CACA,CACA,qBAAA,QAAkBukJ,8GCpBlB,IAAI54D,EAAa3kE,QAAQA,OAAK,WAAc,SAAU4kE,EAASC,EAAYltG,EAAGmtG,EAAW,CACrF,SAASC,EAAMj0F,EAAO,CAAE,OAAOA,aAAiBnZ,EAAImZ,EAAQ,IAAInZ,EAAE,SAAUg6E,EAAS,CAAEA,EAAQ7gE,CAAK,CAAI,CAAA,CAAE,CAC1G,OAAO,IAAKnZ,IAAMA,EAAI,UAAU,SAAUg6E,EAASC,EAAQ,CACvD,SAASozB,EAAUl0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,KAAKh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CACzF,SAASwvG,EAASn0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,MAASh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CAC5F,SAAS8wB,EAAKrV,EAAQ,CAAEA,EAAO,KAAOygE,EAAQzgE,EAAO,KAAK,EAAI6zF,EAAM7zF,EAAO,KAAK,EAAE,KAAK8zF,EAAWC,CAAQ,CAAE,CAC5G1+E,GAAMu+E,EAAYA,EAAU,MAAMF,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CAC5E,CAAK,CACJ,EACG/gD,EAAmB9jB,QAAQA,OAAK,iBAAoB,SAAU+e,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAK,CAC5D,EACD,OAAO,eAAeyuG,OAAS,aAAc,CAAE,MAAO,GAAM,EAC/CA,OAAA,MAAG,OAChB,MAAM1e,EAAO,WACP0uB,EAAoB15G,EAAgBzjB,wBAA4B,EAChEo9H,EAAW35G,EAAgBxjB,eAAmB,EAC9Co9H,EAAmB55G,EAAgBvjB,sBAA2B,EACpE,SAAS4mF,EAAMzhE,EAAO9zC,EAAS,CAC3B,OAAO+yF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAEhD,OAAO,IAAI,QAAQ,CAAChzB,EAASC,IAAW+yB,EAAU,KAAM,OAAQ,OAAQ,WAAa,CACjF,GAAI,CACA,IAAI3uG,EAAI,GACR,MAAM2nK,EAAgB,IAAID,EAAiB,QAAQh4G,CAAK,EAClDzI,EAAS0gH,EAAc,UAAU,KAAM,KAAM,IAAI,EACvD,GAAI1gH,EAAO,OAAS,EAChB,MAAM,IAAI,MAAM,gEAAgE,EAEpF,GAAIA,EAAO,SAAW,GAAK,CAACA,EAAO,CAAC,EAAE,OAAO6xF,EAAK,YAAY,aAAc,CAAA,EACxE,MAAM,IAAI,MAAM,4EAA4E7xF,EAAO,CAAC,EAAE,KAAK,EAAE,EAEjH,MAAMzlD,EAAI,IAAIimK,EAAS,QAAQ,CAC3B,MAAQrhD,GAAU,CACdpmH,GAAKomH,CACR,EACD,IAAK,IAAM,CACP,IAAIwhD,EAAaD,EAAc,SAAS,KAAM,KAAM,KAAM,IAAI,EAC1DC,EAAW,SAAW,IACtBA,EAAa,QAEjBjsF,EAAQ,CACJ,KAAM37E,EACN,WAAA4nK,CAC5B,CAAyB,CACJ,CACrB,CAAiB,EAED,MADe,IAAIJ,EAAkB,QAAQG,EAAenmK,EAAqDoa,GAAQ,SAAU,OAA8DA,GAAQ,gBAAmB,GAAyDA,GAAQ,aAAgEA,GAAQ,MAAyDA,GAAQ,cAAc,EACva,MAAO,CACpC,OACmBnc,EAAG,CACNm8E,EAAOn8E,CAAC,CACxB,CACA,CAAS,CAAC,CACV,CAAK,CACL,CACA+3J,cAAA,MAAgBrmC,oMCxDhB,OAAO,eAAe02C,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAM7I,EAA4D34H,cAAA,EAC5DyhI,EAAoBz9H,sBAA0B,EAC9CgtF,EAAoB/sF,eAA0B,EAC9Cy9H,EAAiBx9H,YAAuB,EAI9C,IAAAy9H,EAAA,cAAsChJ,EAAoB,gCAAiC,CAYvF,YAAYniJ,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,UAAUmqB,EAAQmG,EAAW,CAC/B,MAAMlnB,EAAO,IAAIoxG,EAAkB,SACnCpxG,EAAK,MAAQ,IAAM,CAElB,EACD,GAAI,CACA,MAAMmG,EAAW,CAAE,EACnB4a,EAAO,WAAW,GAAG,SAAU,CAACxrB,EAAQwnC,IAAQ,CAC5C52B,EAAS5Q,CAAM,EAAIwnC,CACnC,CAAa,EACD,KAAM,CAAE,KAAAnnC,CAAM,EAAG,QAAUksJ,EAAe,OAAO,QAAUD,EAAkB,SAAS9gI,EAAO,UAAU,EAAG,CAAE,cAAe,GAAM,eAAgBmG,IAAc,kBAAmB,SAAA/gB,EAAU,EAC5LnG,EAAK,KAAKpK,CAAI,EACdoK,EAAK,KAAK,IAAI,CAC1B,OACe7E,EAAO,CAEV6E,EAAK,MAAQ,IAAM,CACfA,EAAK,KAAK,QAAS7E,CAAK,CAC3B,CACb,CACQ,MAAO,CACH,KAAA6E,EACA,QAAS,EACZ,CACT,CACA,EACA4hJ,+BAAA,wBAAkCI,oIClDlC,IAAIl+H,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,+BAAoC,EAAE+D,CAAO,sQCf1D,OAAO,eAAe89H,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMr9H,EAAkCxE,cAAA,EAYxC,IAAA8hI,EAAA,cAAkCt9H,EAAO,KAAM,CAQ3C,YAAYhuB,EAAM,CACd,MAAMA,CAAI,CAClB,CACA,EACAqrJ,2BAAA,oBAA8BE,sRC1B9B,OAAO,eAAeC,+BAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,+BAAA,+BAAyCA,+BAAmB,YAAGA,+BAAyB,kBAAG,OAC3F,MAAMC,EAAwHjiI,cAAA,EACxHsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC49H,EAAwD39H,2BAAA,EAC9D,SAASg+H,EAAkBl3H,EAAasvE,EAAQnsB,EAAI,CAChD,OAAOmsB,GAAQ,IAAIn2D,MAAY89G,EAAkD,iBAAiBj3H,EAAamZ,EAAMgqC,CAAE,CAAC,CAC5H,CACA6zE,+BAAA,kBAA4BE,EAC5B,SAASC,EAAYxhI,EAAQ,CACzB,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFud,EAAcljB,EAAO,QAAQ,IAAI2F,EAAkB,mBAAmB,WAAW,EACjF6nD,EAAKxtD,EAAO,QAAQ,IAAI2F,EAAkB,wBAAwB,SAAS,GAAG,IAAIud,CAAW,EACnG,OAAKsqC,EAGE,CACH,GAAGxtD,EACH,iBAAkBuhI,EAAkBl3H,EAAarK,EAAO,iBAAkBwtD,CAAE,EAC5E,iBAAkB+zE,EAAkBl3H,EAAarK,EAAO,iBAAkBwtD,CAAE,CAC/E,EANUxtD,CAOf,CACAqhI,+BAAA,YAAsBG,EAOtB,IAAAC,EAAA,cAA6CP,EAAsB,mBAAoB,CACnF,MAAM,KAAK/8H,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMkjB,EAAc,MAAM,KAAK,eAAeljB,EAAO,OAAO,EAC5D,OAAO,MAAM,KAAK,UAAUkjB,EAAas+G,EAAYxhI,CAAM,CAAC,CACpE,CAMI,MAAM,UAAUkjB,EAAaljB,EAAQ,CAUjC,MAAO,CAAE,QATO,SAAY,CACxB,MAAMkjB,EAAY,OAAO,CAAE,OAAQljB,EAAO,iBAAkB,OAAQA,EAAO,iBAAkB,EAC7F,MAAOA,EAAO,aACVkjB,EAAY,aAAaljB,EAAO,aAAa,OAAQA,EAAO,aAAa,iBAAkBA,EAAO,aAAa,UAAU,EACzH,QAAQ,QAAO,GACnB,MAAOA,EAAO,aACVkjB,EAAY,aAAaljB,EAAO,aAAa,OAAQA,EAAO,aAAa,mBAAmB,EAC5F,QAAQ,QAAO,EACtB,CACiB,CAC1B,CACA,EACAqhI,sCAAA,+BAAyCK,2LCxDzC,OAAO,eAAe,iBAAS,aAAc,CAAE,MAAO,GAAM,0ICA5D,OAAO,eAAel1G,QAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,QAAA,yBAAmCA,QAAA,sBAAgCA,QAAA,0BAAoCA,QAAA,wBAAkCA,QAAA,uBAAiCA,QAAA,yBAAmC,OAC7M,MAAM7mB,EAAwDtG,cAAA,EAK9D,SAASsiI,EAAyBC,EAAiB,CAC/C,OAAO,OAAOA,GAAoB,UAAY,WAAYA,CAC9D,CACAp1G,QAAA,yBAAmCm1G,EAKnC,SAASE,EAAuBD,EAAiB,CAC7C,OAAI,OAAOA,GAAoB,SACpB,GAEJ,WAAYA,EAAkB,aAAeA,EAAgB,IACxE,CACAp1G,QAAA,uBAAiCq1G,EAKjC,SAASC,EAAwBF,EAAiB,CAC9C,OAAOD,EAAyBC,CAAe,EAAIA,EAAkBA,EAAgB,KACzF,CACAp1G,QAAA,wBAAkCs1G,EAMlC,SAASC,EAA0BH,EAAiBzjJ,EAAS,CACzD,OAAI,OAAOyjJ,GAAoB,UAAY,WAAYA,GAAmB,CAACA,EAAgB,QAChFzjJ,EAEJA,EAAQ,MAAMyjJ,EAAgB,OAAO,CAChD,CACAp1G,QAAA,0BAAoCu1G,EAMpC,SAASC,EAAsB7jJ,EAAS,CACpC,OAAOA,EAAQ,IAAIwnB,EAAkB,mBAAmB,WAAW,CACvE,CACA6mB,QAAA,sBAAgCw1G,EAMhC,SAASC,EAAyB/+G,EAAa,CAC3C,GAAIA,EAAa,CACb,IAAIg/G,EAAUJ,EAAwB5+G,CAAW,EACjD,GAAI,OAAOg/G,GAAY,SAAU,CAE7B,MAAMC,EAAeD,EAAQ,QAAQ,GAAG,EACxC,OAAIC,GAAgB,IAChBD,EAAUA,EAAQ,MAAM,EAAGC,CAAY,GAEpCD,CACnB,CACA,CACA,CACA11G,eAAA,yBAAmCy1G,oHCrEnC,IAAIl/H,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2BAAgC,EAAE+D,CAAO,EACtDD,EAAaE,sCAA2C,EAAED,CAAO,EACjED,EAAaG,wBAA6B,EAAEF,CAAO,EACnDD,EAAaI,eAAkB,EAAEH,CAAO,uNClBxC,OAAO,eAAeg/H,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAM1R,EAA4BrxH,cAAkC,EAC9D2iB,EAAe3e,mBAAqB,EAI1C,IAAAg/H,EAAA,KAA2B,CACvB,YAAYh4H,EAAaslG,EAAO,CAC5B,KAAK,YAActlG,EACnB,KAAK,MAAQslG,CACrB,CACI,MAAM,OAAO2yB,EAAa,CAClBA,EAAY,QACZ,QAAU5R,EAA0B,uBAAuB,KAAK,MAAM,OAAO4R,EAAY,MAAM,CAAC,EAEhGA,EAAY,QACZ,QAAU5R,EAA0B,uBAAuB,KAAK,MAAM,OAAO4R,EAAY,MAAM,CAAC,CAE5G,CACI,MAAM,aAAariH,EAAQsiH,EAAmBC,EAAa,CACvD,OAAQviH,EAAM,CACV,IAAK,MAGD,QAAUywG,EAA0B,uBAAuB,KAAK,MAAM,YAAY,KAAK,YAAY,aAAY,CAAE,CAAC,EAEtH,IAAK,QAKD,MAAM+R,EAAW,KAAK,MAAM,MAAO,EAE7BC,EAAc,CAAE,EACtBD,EAAS,GAAG,OAASj/G,GAAS,CACtBA,EAAK,MAAM,WAAa,iBACxBk/G,KAAgB1gH,EAAa,cAAcwB,EAAK,KAAK,CAAC,EAAI,GAElF,CAAiB,EACD,QAAUktG,EAA0B,uBAAuB+R,CAAQ,EAEnE,MAAM,QAAQ,IAAI,OAAO,KAAKC,CAAW,EACpC,IAAIC,MAAkBjS,EAA0B,uBAAuB,KAAK,MAC5E,eAAgB1uG,EAAa,cAAc2gH,EAAY,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,EAChF,MACJ,QAEI,UAAWr5H,KAAS,MAAM,QAAQ2W,CAAM,EAAIA,EAAS,CAACA,CAAM,EACxD,QAAUywG,EAA0B,uBAAuB,KAAK,MAAM,YAAYpnH,CAAK,CAAC,CAE5G,CACA,CACI,MAAM,aAAa2W,EAAQ2iH,EAAqB,CAG5C,GAAIA,EACA,UAAWt5H,KAAS2W,EAAQ,CACxB,MAAM4iH,EAAe,KAAK,MAAM,MAAM,OAAW,OAAW,OAAWv5H,CAAK,EAC5E,MAAM,IAAI,QAAQ,CAACqrC,EAASC,IAAW,CACnCiuF,EAAa,KAAK,OAAQ,IAAM,CAC5BjuF,EAAO,IAAI,MAAM,0BAA0BtrC,EAAM,KAAK,uBAAuB,CAAC,CACtG,CAAqB,EACDu5H,EAAa,GAAG,MAAOluF,CAAO,EAC9BkuF,EAAa,GAAG,QAASjuF,CAAM,CACnD,CAAiB,CACjB,CAEA,CACA,EACAwtF,4BAAA,qBAA+BU,gPCtE/B,OAAO,eAAeC,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAMC,EAAkE3jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC8+H,EAA0D7+H,4BAAA,EAIhE,IAAA0/H,EAAA,cAA4CD,EAAuB,8BAA+B,CAC9F,YAAYntJ,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,MAAMkjB,KAAkB8/G,EAAuB,uBAAuBhjI,EAAO,OAAO,EACpF,MAAI,CAACkjB,GAAe,OAAOA,GAAgB,UACtC,EAAE,WAAYA,IAAgB,UAAWA,GAAe,CAACA,EAAY,OAAO,UAClErf,EAAO,UAAU,GAAG,KAAK,IAAI,kCAAkC,KAEnEA,EAAO,cAAe,CACzC,CACI,MAAM,eAAe1lB,EAAS,CAC1B,MAAM+kC,KAAkB8/G,EAAuB,uBAAuB7kJ,CAAO,EAC7E,OAAO,IAAIikJ,EAAuB,qBAAqBjkJ,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EAAG,WAAYud,EAAcA,EAAcA,EAAY,KAAK,CACtL,CACA,EACA6/G,qCAAA,8BAAwCG,0IC1BxC,IAAIngI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,0RCfhE,OAAO,eAAe+/H,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMC,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxD28C,EAA8D18C,cAAA,EAC9DmwC,EAA8ElwC,cAAA,EAKpF,IAAA8/H,EAAA,MAAMC,WAAgCF,EAAuB,sBAAuB,CAChF,aAAc,CACV,MAAM,CACF,MAAO,OAAO,kBACd,SAAU3vF,EAA6B,eAAe,MACtD,MAAO,MAAOt1D,GAAY,CACtB,KAAM,CAAE,KAAAtI,EAAM,QAAAk+D,EAAS,SAAAD,CAAU,EAAG31D,EAC9Bg8B,EAAQtkC,EAAK,SAAW,EAC1B,MAAMi+D,EAAS,8BAA8Bj+D,EAAK,CAAC,EAAGk+D,CAAO,EAC7D,OACJ,IAAIwvF,EACJ,GAAIppH,EAAO,CACP,MAAM1D,EAAY6sH,GAAwB,UAAU,OAAO,CAACnpH,CAAK,EAAG25B,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,iBAAiB,EAAGmuC,EAAS,QAAQ,QAAQnuC,EAAkB,cAAc,sBAAsB,CAAC,EAC3O,GAAI,CAAC8Q,EACD,MAAM,IAAIg9B,EAA6B,qBAAqB59D,EAAM49D,EAA6B,eAAe,KAAK,EAEvH8vF,EAAW9sH,EAAUq9B,CAAQ,EAAE,CAAC35B,CAAK,CAAC,EAAE,IAAK,CACjE,CACgB,MAAMxD,EAAQ,IAAIqpC,EAAqB,wBAAwBujF,GAAY,SAASD,GAAwB,cAAc,EAAE,EAC5H,OAAO,IAAI7vF,EAA6B,UAAU98B,CAAK,CAC1D,CACb,CAAS,CACT,CACI,WAAW9gC,EAAM,CACb,OAAOA,EAAK,SAAW,GAAKA,EAAK,SAAW,CACpD,CACA,EACAstJ,+BAAA,wBAAkCG,EAIlCA,EAAwB,aAAgB7vF,EAA6B,SAASA,EAA6B,eAAe,KAAK,EAAE,UAAU,IAAM33B,GAAOA,CAAG,EAAE,QAAS,EAKtKwnH,EAAwB,aAAe,iRC9CvC,OAAO,eAAeE,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAMJ,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E8/H,EAAgE7/H,+BAAA,EAItE,IAAAmgI,EAAA,cAAkDL,EAAuB,6BAA8B,CACnG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI6oK,EAA0B,uBAC7C,CACA,EACAK,2CAAA,oCAA8CE,gJCpB9C,IAAI3gI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,0RCftE,OAAO,eAAeugI,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMP,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDyE,EAAoCxE,cAAA,EACpCmwC,EAA8ElwC,cAAA,EAKpF,IAAAqgI,EAAA,cAAsCR,EAAuB,sBAAuB,CAChF,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,MACtD,MAAO,MAAO,CAAE,KAAA59D,EAAM,QAAAk+D,EAAS,SAAAD,CAAQ,IAAO,CAC1C,MAAMttC,EAAW3wB,EAAK,CAAC,EACvB,GAAI2wB,EAAS,iBAAmBsB,EAAQ,eAAe,SACnD,MAAM,IAAI2rC,EAA6B,qBAAqB59D,EAAM49D,EAA6B,eAAe,KAAK,EAEvH,MAAMzgD,EAAM+gD,EAAQ,OAAQN,EAA6B,iBAAiBK,EAAS,QAAQ,QAAQnuC,EAAkB,cAAc,WAAW,EAAGa,CAAQ,CAAC,EAC1J,SAAWitC,EAA6B,MAAMzgD,CAAG,CACpD,CACb,CAAS,CACT,CACA,EACA2wI,+BAAA,wBAAkCE,iRC1BlC,OAAO,eAAeC,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAMV,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EsgI,EAAgErgI,+BAAA,EAItE,IAAAygI,EAAA,cAAkDX,EAAuB,6BAA8B,CACnG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIqpK,EAA0B,uBAC7C,CACA,EACAG,2CAAA,oCAA8CE,gJCpB9C,IAAIjhI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,+SCftE,OAAO,eAAe6gI,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMb,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAKpF,IAAA6gI,EAAA,cAAyCd,EAAuB,sBAAuB,CACnF,aAAc,CACV,MAAM,CACF,MAAO,OAAO,kBACd,SAAU3vF,EAA6B,eAAe,SACtD,MAAO,MAAO,CAAE,KAAA59D,EAAM,QAAAk+D,EAAS,SAAAD,CAAQ,IAAO,CAC1C,MAAM5X,EAAS,CAAE,EACjB,UAAWhgB,KAAQrmC,EACf,GAAI,CACA,OAAO,MAAMi+D,EAAS,8BAA8B53B,EAAM63B,CAAO,CACzF,OAC2B35D,EAAO,CACV8hD,EAAO,KAAK9hD,CAAK,CACzC,CAEgB,MAAM,IAAIq5D,EAA6B,cAAcvX,CAAM,CAC9D,CACb,CAAS,CACT,CACA,EACA+nG,kCAAA,2BAAqCE,mSC5BrC,OAAO,eAAeC,uCAAS,aAAc,CAAE,MAAO,GAAM,EACdA,uCAAA,uCAAG,OACjD,MAAMhB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E4gI,EAAsE3gI,kCAAA,EAI5E,IAAA+gI,EAAA,cAAqDjB,EAAuB,6BAA8B,CACtG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,QAAQ,EACpE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI2pK,EAA6B,0BAChD,CACA,EACAG,8CAAA,uCAAiDE,mJCpBjD,IAAIvhI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,8CAAmD,EAAE+D,CAAO,iSCfzE,OAAO,eAAemhI,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMnB,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDowC,EAA8EnwC,cAAA,EAIpF,IAAAkhI,EAAA,MAAMC,WAAiCrB,EAAuB,sBAAuB,CACjF,aAAc,CACV,MAAM,CACF,MAAO,OAAO,kBACd,SAAU3vF,EAA6B,eAAe,OACtD,MAAO,MAAOt1D,GAAY,CACtB,KAAM,CAAE,KAAAtI,EAAM,QAAAk+D,EAAS,SAAAD,CAAU,EAAG31D,EAC9BumJ,EAAQ7uJ,EACT,IAAI,MAAOqmC,GAAS43B,EAAS,8BAA8B53B,EAAM63B,CAAO,CAAC,EACzE,IAAI,MAAO4wF,GAAU,CACtB,MAAMluH,EAAYguH,GAAyB,WAAW,OAAO,CAAC,MAAME,CAAK,EAAG7wF,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,iBAAiB,EAAGmuC,EAAS,QAAQ,QAAQnuC,EAAkB,cAAc,sBAAsB,CAAC,EACnP,GAAI,CAAC8Q,EACD,MAAM,IAAIg9B,EAA6B,qBAAqB59D,EAAM49D,EAA6B,eAAe,MAAM,EAExH,OAAOh9B,EAAUq9B,CAAQ,EAAE,CAAC,MAAM6wF,CAAK,CAAC,CAC5D,CAAiB,EACKC,EAAO,MAAM,QAAQ,IAAIF,CAAK,EAE9BtrI,EADUwrI,EAAK,IAAIjjG,GAAOA,EAAI,UAAU,EACvB,KAAK,EAAE,EACxB7+C,EAAO2hJ,GAAyB,aAAaG,CAAI,EAAIA,EAAK,CAAC,EAAE,SAAW,OAC9E,OAAO9hJ,KAAW2wD,EAA6B,YAAYr6C,EAAQtW,CAAI,KAAQ2wD,EAA6B,QAAQr6C,CAAM,CAC7H,CACb,CAAS,CACT,CACI,OAAO,aAAawrI,EAAM,CACtB,OAAOA,EAAK,OAAS,GAAKA,EAAK,MAAMjjG,GAAOA,EAAI,WAAaijG,EAAK,CAAC,EAAE,QAAQ,CACrF,CACA,EACAL,gCAAA,yBAAmCE,EAInCA,EAAyB,cAAiBhxF,EAA6B,SAASA,EAA6B,eAAe,MAAM,EAAE,YAAY,IAAMv3B,GAAQA,CAAI,EAC7J,QAAS,uRCzCd,OAAO,eAAe2oH,qCAAS,aAAc,CAAE,MAAO,GAAM,EAChBA,qCAAA,qCAAG,OAC/C,MAAMzB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EkhI,EAAkEjhI,gCAAA,EAIxE,IAAAwhI,EAAA,cAAmD1B,EAAuB,6BAA8B,CACpG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,MAAM,EAClE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIiqK,EAA2B,wBAC9C,CACA,EACAM,4CAAA,qCAA+CE,iJCpB/C,IAAIhiI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,4CAAiD,EAAE+D,CAAO,yOCfvE,OAAO,eAAe4hI,eAAS,aAAc,CAAE,MAAO,GAAM,EACtCA,eAAA,eAAG,OACzB,MAAMC,EAA0E5lI,YAAA,EAC1EsG,EAAwDtC,cAAA,EACxDowC,EAA8EnwC,cAAA,EACpF,IAAA4hI,EAAA,cAA6BD,EAAO,sBAAuB,CACvD,YAAY,CAAE,SAAAvkH,EAAU,mBAAAykH,GAAsB,CAC1C,MAAM,CACF,MAAO,OAAO,kBACd,SAAAzkH,EACA,MAAO,MAAO,CAAE,KAAA7qC,EAAM,SAAAi+D,EAAU,QAAAC,CAAO,IAAO,CAC1C,MAAMqxF,EAAgB,MAAM,QAAQ,IAAIvvJ,EAAK,IAAIimC,GAAOg4B,EAAS,8BAA8Bh4B,EAAKi4B,CAAO,CAAC,CAAC,EAC7G,GAAI,CACA,OAAO,IAAIN,EAA6B,gBAAgBK,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,iBAAiB,CAAC,EACxI,uBAAuB,MAAMw/H,EAAmBC,EAAc,IAAIppJ,GAAQA,EAAK,MAAM83D,EAAS,QAAQ,QAAQnuC,EAAkB,cAAc,WAAW,CAAC,CAAC,CAAC,CAAC,CACtL,OACuBvrB,EAAO,CACV,MAAM,IAAIq5D,EAA6B,uBAAuB,KAAK,SAAUr5D,CAAK,CACtG,CACa,CACb,CAAS,CACT,CACA,EACA4qJ,sBAAA,eAAyBK,iSCvBzB,OAAO,eAAeC,yCAAS,aAAc,CAAE,MAAO,GAAM,EACZA,yCAAA,yCAAG,OACnD,MAAMlC,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCuG,EAAqBtG,wBAA2B,EAChDyhI,EAA8CxhI,sBAAA,EAIpD,IAAA+hI,EAAA,cAAuDnC,EAAuB,oBAAqB,CAC/F,YAAYvtJ,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAK,CAAE,QAAAsI,EAAS,aAAAqnJ,GAAgB,CAGlC,OADmB,MADKrnJ,EAAQ,QAAQwnB,EAAkB,wBAAwB,wBAAwB,EACjE,IAAIkE,EAAmB,cAAc,UAAU27H,CAAY,CAAC,KAEtF3hI,EAAO,cAAe,KAE1BA,EAAO,UAAU,SAAS,KAAK,IAAI,qHAAqH8B,EAAkB,cAAc,yBAAyB,IAAI,OAAOA,EAAkB,cAAc,mBAAmB,IAAI,EAAE,CACxS,CACI,MAAM,IAAI,CAAE,QAAAxnB,EAAS,aAAAqnJ,GAAgB,CAEjC,MAAM91E,EAAa,MADKvxE,EAAQ,QAAQwnB,EAAkB,wBAAwB,wBAAwB,EACjE,IAAIkE,EAAmB,cAAc,UAAU27H,CAAY,CAAC,EACrG,OAAO,IAAIR,EAAiB,eAAe,CACvC,SAAUQ,EACV,mBAAoB91E,CAChC,CAAS,CACT,CACA,EACA41E,gDAAA,yCAAmDG,qJC/BnD,IAAI1iI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gDAAqD,EAAE+D,CAAO,qQCf3E,OAAO,eAAesiI,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAMtC,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAKpF,IAAAsiI,EAAA,cAAmCvC,EAAuB,sBAAuB,CAC7E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,GACtD,MAAO,MAAO,CAAE,KAAA59D,EAAM,QAAAk+D,EAAS,SAAAD,CAAQ,KAClB,MAAMA,EAAS,8BAA8Bj+D,EAAK,CAAC,EAAGk+D,CAAO,GACzD,UAAW,EAE5BD,EAAS,8BAA8Bj+D,EAAK,CAAC,EAAGk+D,CAAO,EACvDD,EAAS,8BAA8Bj+D,EAAK,CAAC,EAAGk+D,CAAO,CAE3E,CAAS,CACT,CACA,EACA2xF,4BAAA,qBAA+BE,+PCvB/B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMzC,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EqiI,EAA0DpiI,4BAAA,EAIhE,IAAAwiI,EAAA,cAA+C1C,EAAuB,6BAA8B,CAChG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,EAAE,EAC9D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIorK,EAAuB,oBAC1C,CACA,EACAG,wCAAA,iCAA2CE,6ICpB3C,IAAIhjI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,6TCfnE,OAAO,eAAe4iI,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAM5C,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAKpF,IAAA4iI,EAAA,cAA2C7C,EAAuB,sBAAuB,CACrF,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,YACtD,MAAO,MAAO,CAAE,KAAA59D,EAAM,QAAAk+D,EAAS,SAAAD,CAAQ,IAAO,CAC1C,KAAM,CAACoyF,EAAUC,CAAS,EAAItwJ,EAC9B,GAAI,CAGA,GAAI,EAFa,MAAMi+D,EAAS,8BAA8BoyF,EAAUnyF,CAAO,GACzD,UAAW,EAE7B,SAAWN,EAA6B,MAAM,EAAK,EAGvD,MAAMl/C,GADY,MAAMu/C,EAAS,8BAA8BqyF,EAAWpyF,CAAO,GACzD,UAAW,EACnC,SAAWN,EAA6B,MAAMl/C,CAAK,CACvE,OACuBna,EAAO,CAGV,IAFuB,MAAM05D,EAAS,8BAA8BqyF,EAAWpyF,CAAO,GACpD,UAAW,EAEzC,MAAM35D,EAEV,SAAWq5D,EAA6B,MAAM,EAAK,CACvE,CACa,CACb,CAAS,CACT,CACA,EACAuyF,oCAAA,6BAAuCI,+SCrCvC,OAAO,eAAeC,yCAAS,aAAc,CAAE,MAAO,GAAM,EACZA,yCAAA,yCAAG,OACnD,MAAMjD,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E2iI,EAA0E1iI,oCAAA,EAIhF,IAAAgjI,EAAA,cAAuDlD,EAAuB,6BAA8B,CACxG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,WAAW,EACvE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI0rK,EAA+B,4BAClD,CACA,EACAK,gDAAA,yCAAmDE,qJCpBnD,IAAIxjI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gDAAqD,EAAE+D,CAAO,sTCf3E,OAAO,eAAeojI,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMpD,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAKpF,IAAAojI,EAAA,cAA0CrD,EAAuB,sBAAuB,CACpF,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,WACtD,MAAO,MAAO,CAAE,KAAA59D,EAAM,QAAAk+D,EAAS,SAAAD,CAAQ,IAAO,CAC1C,KAAM,CAACoyF,EAAUC,CAAS,EAAItwJ,EAC9B,GAAI,CAGA,IAFiB,MAAMi+D,EAAS,8BAA8BoyF,EAAUnyF,CAAO,GACzD,UAAW,EAE7B,SAAWN,EAA6B,MAAM,EAAI,EAGtD,MAAMl/C,GADY,MAAMu/C,EAAS,8BAA8BqyF,EAAWpyF,CAAO,GACzD,UAAW,EACnC,SAAWN,EAA6B,MAAMl/C,CAAK,CACvE,OACuBna,EAAO,CAGV,GAAI,EAFmB,MAAM05D,EAAS,8BAA8BqyF,EAAWpyF,CAAO,GACpD,UAAW,EAEzC,MAAM35D,EAEV,SAAWq5D,EAA6B,MAAM,EAAI,CACtE,CACa,CACb,CAAS,CACT,CACA,EACA+yF,mCAAA,4BAAsCE,ySCrCtC,OAAO,eAAeC,wCAAS,aAAc,CAAE,MAAO,GAAM,EACbA,wCAAA,wCAAG,OAClD,MAAMvD,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EmjI,EAAwEljI,mCAAA,EAI9E,IAAAsjI,EAAA,cAAsDxD,EAAuB,6BAA8B,CACvG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,UAAU,EACtE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIksK,EAA8B,2BACjD,CACA,EACAG,+CAAA,wCAAkDE,oJCpBlD,IAAI9jI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,+CAAoD,EAAE+D,CAAO,+SCf1E,OAAO,eAAe0jI,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAM1D,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDowC,EAA8EnwC,cAAA,EAKpF,IAAAyjI,EAAA,cAAyC3D,EAAuB,sBAAuB,CACnF,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,UACtD,MAAO,MAAO,CAAE,KAAA59D,EAAM,QAAAk+D,EAAS,SAAAD,CAAQ,IAAO,CAC1C,MAAMzpC,EAAcypC,EAAS,QAAQ,QAAQnuC,EAAkB,cAAc,WAAW,EAClF,CAACugI,EAAUC,CAAS,EAAItwJ,EAAK,IAAIimC,GAAOg4B,EAAS,8BAA8Bh4B,EAAKi4B,CAAO,CAAC,EAC5F,CAACz/C,EAAMC,CAAK,EAAI,MAAM,QAAQ,IAAI,CAAC2xI,EAAUC,CAAS,CAAC,EAC7D,SAAW1yF,EAA6B,MAAMn/C,EAAK,MAAM+V,CAAW,EAAE,OAAO9V,EAAM,MAAM8V,CAAW,CAAC,CAAC,CACzG,CACb,CAAS,CACT,CACA,EACAy8H,kCAAA,2BAAqCE,mSCvBrC,OAAO,eAAeC,uCAAS,aAAc,CAAE,MAAO,GAAM,EACdA,uCAAA,uCAAG,OACjD,MAAM7D,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EyjI,EAAsExjI,kCAAA,EAI5E,IAAA4jI,EAAA,cAAqD9D,EAAuB,6BAA8B,CACtG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,SAAS,EACrE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIwsK,EAA6B,0BAChD,CACA,EACAG,8CAAA,uCAAiDE,mJCpBjD,IAAIpkI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,8CAAmD,EAAE+D,CAAO,kOCfzE,OAAO,eAAegkI,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAMhE,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAgkI,EAAA,cAA8BjE,EAAuB,gBAAiB,CAClE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,IACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,GAAG,EAC/F,iBAAiB,IAAM9kB,GAAO,KAAK,IAAIA,CAAG,CAAC,EAC3C,QAAS,CAC1B,CAAS,CACT,CACA,EACAy4G,uBAAA,gBAA0BE,iOClB1B,OAAO,eAAeC,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMnE,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E+jI,EAAgD9jI,uBAAA,EAItD,IAAAkkI,EAAA,cAA0CpE,EAAuB,6BAA8B,CAC3F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,GAAG,EAC/D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI8sK,EAAkB,eACrC,CACA,EACAG,mCAAA,4BAAsCE,wICpBtC,IAAI1kI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,uQChB5D,SAAUskI,EAAc,CAmDxB,IAAIC,EACFC,EAAY,6CACZC,EAAW,KAAK,KAChBC,EAAY,KAAK,MAEjBC,EAAiB,qBACjBC,EAAgBD,EAAiB,yDAEjCE,EAAO,KACPC,EAAW,GACXC,EAAmB,iBAEnBC,EAAW,CAAC,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAI,EACjFC,EAAY,IAKZC,EAAM,IAMR,SAASrpF,EAAMspF,EAAc,CAC3B,IAAIC,EAAKC,EAAaC,EACpB/tK,EAAIgtK,GAAU,UAAY,CAAE,YAAaA,GAAW,SAAU,KAAM,QAAS,IAAM,EACnFgB,EAAM,IAAIhB,GAAU,CAAC,EAUrBiB,EAAiB,GAajBC,EAAgB,EAMhBC,EAAa,GAIbC,EAAa,GAMbC,EAAU,KAKVC,GAAU,IAGVC,GAAS,GAkBTC,GAAc,EAIdC,GAAgB,EAGhBC,GAAS,CACP,OAAQ,GACR,UAAW,EACX,mBAAoB,EACpB,eAAgB,IAChB,iBAAkB,IAClB,kBAAmB,EACnB,uBAAwB,IACxB,OAAQ,EACT,EAKDC,GAAW,uCACXC,GAAiC,GAgBnC,SAAS5B,GAAUjuK,GAAGG,GAAG,CACvB,IAAIi4G,GAAU34G,EAAGqwK,EAAa/wK,GAAGI,EAAG4wK,EAAOz7I,GAAKmQ,GAC9CpkC,GAAI,KAGN,GAAI,EAAEA,cAAa4tK,IAAY,OAAO,IAAIA,GAAUjuK,GAAGG,EAAC,EAExD,GAAIA,IAAK,KAAM,CAEb,GAAIH,IAAKA,GAAE,eAAiB,GAAM,CAChCK,GAAE,EAAIL,GAAE,EAEJ,CAACA,GAAE,GAAKA,GAAE,EAAIuvK,GAChBlvK,GAAE,EAAIA,GAAE,EAAI,KACHL,GAAE,EAAIsvK,EACfjvK,GAAE,EAAI,CAACA,GAAE,EAAI,CAAC,GAEdA,GAAE,EAAIL,GAAE,EACRK,GAAE,EAAIL,GAAE,EAAE,MAAK,GAGjB,MACD,CAED,IAAK+vK,EAAQ,OAAO/vK,IAAK,WAAaA,GAAI,GAAK,EAAG,CAMhD,GAHAK,GAAE,EAAI,EAAIL,GAAI,GAAKA,GAAI,CAACA,GAAG,IAAM,EAG7BA,KAAM,CAAC,CAACA,GAAG,CACb,IAAKjB,GAAI,EAAGI,EAAIa,GAAGb,GAAK,GAAIA,GAAK,GAAIJ,KAAI,CAErCA,GAAIwwK,GACNlvK,GAAE,EAAIA,GAAE,EAAI,MAEZA,GAAE,EAAItB,GACNsB,GAAE,EAAI,CAACL,EAAC,GAGV,MACD,CAEDykC,GAAM,OAAOzkC,EAAC,CACxB,KAAe,CAEL,GAAI,CAACkuK,EAAU,KAAKzpI,GAAM,OAAOzkC,EAAC,CAAC,EAAG,OAAOgvK,EAAa3uK,GAAGokC,GAAKsrI,CAAK,EAEvE1vK,GAAE,EAAIokC,GAAI,WAAW,CAAC,GAAK,IAAMA,GAAMA,GAAI,MAAM,CAAC,EAAG,IAAM,CAC5D,EAGI1lC,GAAI0lC,GAAI,QAAQ,GAAG,GAAK,KAAIA,GAAMA,GAAI,QAAQ,IAAK,EAAE,IAGrDtlC,EAAIslC,GAAI,OAAO,IAAI,GAAK,GAGvB1lC,GAAI,IAAGA,GAAII,GACfJ,IAAK,CAAC0lC,GAAI,MAAMtlC,EAAI,CAAC,EACrBslC,GAAMA,GAAI,UAAU,EAAGtlC,CAAC,GACfJ,GAAI,IAGbA,GAAI0lC,GAAI,OAGlB,KAAa,CAOL,GAJAurI,EAAS7vK,GAAG,EAAGyvK,GAAS,OAAQ,MAAM,EAIlCzvK,IAAK,IAAM0vK,GACb,OAAAxvK,GAAI,IAAI4tK,GAAUjuK,EAAC,EACZiwK,GAAM5vK,GAAG6uK,EAAiB7uK,GAAE,EAAI,EAAG8uK,CAAa,EAKzD,GAFA1qI,GAAM,OAAOzkC,EAAC,EAEV+vK,EAAQ,OAAO/vK,IAAK,SAAU,CAGhC,GAAIA,GAAI,GAAK,EAAG,OAAOgvK,EAAa3uK,GAAGokC,GAAKsrI,EAAO5vK,EAAC,EAKpD,GAHAE,GAAE,EAAI,EAAIL,GAAI,GAAKykC,GAAMA,GAAI,MAAM,CAAC,EAAG,IAAM,EAGzCwpI,GAAU,OAASxpI,GAAI,QAAQ,YAAa,EAAE,EAAE,OAAS,GAC3D,MAAM,MACJ6pI,EAAgBtuK,EAAC,CAE/B,MACUK,GAAE,EAAIokC,GAAI,WAAW,CAAC,IAAM,IAAMA,GAAMA,GAAI,MAAM,CAAC,EAAG,IAAM,EAQ9D,IALA2zE,GAAWw3D,GAAS,MAAM,EAAGzvK,EAAC,EAC9BpB,GAAII,EAAI,EAIHm1B,GAAMmQ,GAAI,OAAQtlC,EAAIm1B,GAAKn1B,IAC9B,GAAIi5G,GAAS,QAAQ34G,EAAIglC,GAAI,OAAOtlC,CAAC,CAAC,EAAI,EAAG,CAC3C,GAAIM,GAAK,KAGP,GAAIN,EAAIJ,GAAG,CACTA,GAAIu1B,GACJ,QACD,UACQ,CAACw7I,IAGNrrI,IAAOA,GAAI,YAAW,IAAOA,GAAMA,GAAI,gBACvCA,IAAOA,GAAI,YAAa,IAAKA,GAAMA,GAAI,YAAW,IAAK,CACzDqrI,EAAc,GACd3wK,EAAI,GACJJ,GAAI,EACJ,QACD,CAGH,OAAOiwK,EAAa3uK,GAAG,OAAOL,EAAC,EAAG+vK,EAAO5vK,EAAC,CAC3C,CAIH4vK,EAAQ,GACRtrI,GAAMsqI,EAAYtqI,GAAKtkC,GAAG,GAAIE,GAAE,CAAC,GAG5BtB,GAAI0lC,GAAI,QAAQ,GAAG,GAAK,GAAIA,GAAMA,GAAI,QAAQ,IAAK,EAAE,EACrD1lC,GAAI0lC,GAAI,MACd,CAGD,IAAKtlC,EAAI,EAAGslC,GAAI,WAAWtlC,CAAC,IAAM,GAAIA,IAAI,CAG1C,IAAKm1B,GAAMmQ,GAAI,OAAQA,GAAI,WAAW,EAAEnQ,EAAG,IAAM,IAAI,CAErD,GAAImQ,GAAMA,GAAI,MAAMtlC,EAAG,EAAEm1B,EAAG,EAAG,CAI7B,GAHAA,IAAOn1B,EAGH4wK,GAAS9B,GAAU,OACrB35I,GAAM,KAAOt0B,GAAIyuK,GAAoBzuK,KAAMouK,EAAUpuK,EAAC,GACpD,MAAM,MACJsuK,EAAiBjuK,GAAE,EAAIL,EAAE,EAI/B,IAAKjB,GAAIA,GAAII,EAAI,GAAKowK,GAGpBlvK,GAAE,EAAIA,GAAE,EAAI,aAGHtB,GAAIuwK,EAGbjvK,GAAE,EAAI,CAACA,GAAE,EAAI,CAAC,MACT,CAWL,GAVAA,GAAE,EAAItB,GACNsB,GAAE,EAAI,GAMNlB,GAAKJ,GAAI,GAAKyvK,EACVzvK,GAAI,IAAGI,GAAKqvK,GAEZrvK,EAAIm1B,GAAK,CAGX,IAFIn1B,GAAGkB,GAAE,EAAE,KAAK,CAACokC,GAAI,MAAM,EAAGtlC,CAAC,CAAC,EAE3Bm1B,IAAOk6I,EAAUrvK,EAAIm1B,IACxBj0B,GAAE,EAAE,KAAK,CAACokC,GAAI,MAAMtlC,EAAGA,GAAKqvK,CAAQ,CAAC,EAGvCrvK,EAAIqvK,GAAY/pI,GAAMA,GAAI,MAAMtlC,CAAC,GAAG,MAChD,MACYA,GAAKm1B,GAGP,KAAOn1B,IAAKslC,IAAO,IAAI,CACvBpkC,GAAE,EAAE,KAAK,CAACokC,EAAG,CACd,CACT,MAGQpkC,GAAE,EAAI,CAACA,GAAE,EAAI,CAAC,CAEjB,CAMD4tK,GAAU,MAAQ1oF,EAElB0oF,GAAU,SAAW,EACrBA,GAAU,WAAa,EACvBA,GAAU,WAAa,EACvBA,GAAU,YAAc,EACxBA,GAAU,cAAgB,EAC1BA,GAAU,gBAAkB,EAC5BA,GAAU,gBAAkB,EAC5BA,GAAU,gBAAkB,EAC5BA,GAAU,iBAAmB,EAC7BA,GAAU,OAAS,EAqCnBA,GAAU,OAASA,GAAU,IAAM,SAAUp0J,GAAK,CAChD,IAAIna,GAAGM,GAEP,GAAI6Z,IAAO,KAET,GAAI,OAAOA,IAAO,SAAU,CAsC1B,GAlCIA,GAAI,eAAena,GAAI,gBAAgB,IACzCM,GAAI6Z,GAAIna,EAAC,EACTswK,EAAShwK,GAAG,EAAG4uK,EAAKlvK,EAAC,EACrBwvK,EAAiBlvK,IAKf6Z,GAAI,eAAena,GAAI,eAAe,IACxCM,GAAI6Z,GAAIna,EAAC,EACTswK,EAAShwK,GAAG,EAAG,EAAGN,EAAC,EACnByvK,EAAgBnvK,IAOd6Z,GAAI,eAAena,GAAI,gBAAgB,IACzCM,GAAI6Z,GAAIna,EAAC,EACLM,IAAKA,GAAE,KACTgwK,EAAShwK,GAAE,CAAC,EAAG,KAAM,EAAGN,EAAC,EACzBswK,EAAShwK,GAAE,CAAC,EAAG,EAAG4uK,EAAKlvK,EAAC,EACxB0vK,EAAapvK,GAAE,CAAC,EAChBqvK,EAAarvK,GAAE,CAAC,IAEhBgwK,EAAShwK,GAAG,KAAM4uK,EAAKlvK,EAAC,EACxB0vK,EAAa,EAAEC,EAAarvK,GAAI,EAAI,CAACA,GAAIA,MAOzC6Z,GAAI,eAAena,GAAI,OAAO,EAEhC,GADAM,GAAI6Z,GAAIna,EAAC,EACLM,IAAKA,GAAE,IACTgwK,EAAShwK,GAAE,CAAC,EAAG,KAAM,GAAIN,EAAC,EAC1BswK,EAAShwK,GAAE,CAAC,EAAG,EAAG4uK,EAAKlvK,EAAC,EACxB4vK,EAAUtvK,GAAE,CAAC,EACbuvK,GAAUvvK,GAAE,CAAC,UAEbgwK,EAAShwK,GAAG,KAAM4uK,EAAKlvK,EAAC,EACpBM,GACFsvK,EAAU,EAAEC,GAAUvvK,GAAI,EAAI,CAACA,GAAIA,QAEnC,OAAM,MACJquK,EAAiB3uK,GAAI,oBAAsBM,EAAC,EAQpD,GAAI6Z,GAAI,eAAena,GAAI,QAAQ,EAEjC,GADAM,GAAI6Z,GAAIna,EAAC,EACLM,KAAM,CAAC,CAACA,GACV,GAAIA,GACF,GAAI,OAAO,OAAU,KAAe,SAClC,OAAO,iBAAmB,OAAO,aACjCwvK,GAASxvK,OAET,OAAAwvK,GAAS,CAACxvK,GACJ,MACJquK,EAAiB,oBAAoB,OAGzCmB,GAASxvK,OAGX,OAAM,MACJquK,EAAiB3uK,GAAI,uBAAyBM,EAAC,EAsBrD,GAhBI6Z,GAAI,eAAena,GAAI,aAAa,IACtCM,GAAI6Z,GAAIna,EAAC,EACTswK,EAAShwK,GAAG,EAAG,EAAGN,EAAC,EACnB+vK,GAAczvK,IAKZ6Z,GAAI,eAAena,GAAI,eAAe,IACxCM,GAAI6Z,GAAIna,EAAC,EACTswK,EAAShwK,GAAG,EAAG4uK,EAAKlvK,EAAC,EACrBgwK,GAAgB1vK,IAKd6Z,GAAI,eAAena,GAAI,QAAQ,EAEjC,GADAM,GAAI6Z,GAAIna,EAAC,EACL,OAAOM,IAAK,SAAU2vK,GAAS3vK,OAC9B,OAAM,MACTquK,EAAiB3uK,GAAI,mBAAqBM,EAAC,EAK/C,GAAI6Z,GAAI,eAAena,GAAI,UAAU,EAKnC,GAJAM,GAAI6Z,GAAIna,EAAC,EAIL,OAAOM,IAAK,UAAY,CAAC,wBAAwB,KAAKA,EAAC,EACzD6vK,GAAiC7vK,GAAE,MAAM,EAAG,EAAE,GAAK,aACnD4vK,GAAW5vK,OAEX,OAAM,MACJquK,EAAiB3uK,GAAI,aAAeM,EAAC,CAIrD,KAGU,OAAM,MACJquK,EAAiB,oBAAsBx0J,EAAG,EAIhD,MAAO,CACL,eAAgBq1J,EAChB,cAAeC,EACf,eAAgB,CAACC,EAAYC,CAAU,EACvC,MAAO,CAACC,EAASC,EAAO,EACxB,OAAQC,GACR,YAAaC,GACb,cAAeC,GACf,OAAQC,GACR,SAAUC,EAClB,CACA,EAYI3B,GAAU,YAAc,SAAUjuK,GAAG,CACnC,GAAI,CAACA,IAAKA,GAAE,eAAiB,GAAM,MAAO,GAC1C,GAAI,CAACiuK,GAAU,MAAO,MAAO,GAE7B,IAAI9uK,GAAGF,GACLQ,EAAIO,GAAE,EACNjB,EAAIiB,GAAE,EACNV,GAAIU,GAAE,EAERid,EAAK,GAAI,CAAA,EAAG,SAAS,KAAKxd,CAAC,GAAK,kBAE9B,IAAKH,KAAM,GAAKA,KAAM,KAAOP,GAAK,MAAQA,GAAK6vK,GAAO7vK,IAAMqvK,EAAUrvK,CAAC,EAAG,CAGxE,GAAIU,EAAE,CAAC,IAAM,EAAG,CACd,GAAIV,IAAM,GAAKU,EAAE,SAAW,EAAG,MAAO,GACtC,MAAMwd,CACP,CAQD,GALA9d,IAAKJ,EAAI,GAAKyvK,EACVrvK,GAAI,IAAGA,IAAKqvK,GAIZ,OAAO/uK,EAAE,CAAC,CAAC,EAAE,QAAUN,GAAG,CAE5B,IAAKA,GAAI,EAAGA,GAAIM,EAAE,OAAQN,KAExB,GADAF,GAAIQ,EAAEN,EAAC,EACHF,GAAI,GAAKA,IAAKsvK,GAAQtvK,KAAMmvK,EAAUnvK,EAAC,EAAG,MAAMge,EAItD,GAAIhe,KAAM,EAAG,MAAO,EACrB,CACF,UAGQQ,IAAM,MAAQV,IAAM,OAASO,KAAM,MAAQA,KAAM,GAAKA,KAAM,IACrE,MAAO,GAGT,MAAM,MACH+uK,EAAiB,sBAAwBruK,EAAC,CACnD,EAQIiuK,GAAU,QAAUA,GAAU,IAAM,UAAY,CAC9C,OAAOiC,GAAS,UAAW,EAAE,CACnC,EAQIjC,GAAU,QAAUA,GAAU,IAAM,UAAY,CAC9C,OAAOiC,GAAS,UAAW,CAAC,CAClC,EAaIjC,GAAU,OAAU,UAAY,CAC9B,IAAIkC,GAAU,iBAMVC,GAAkB,KAAK,OAAQ,EAAGD,GAAW,QAC9C,UAAY,CAAE,OAAO/B,EAAU,KAAK,OAAQ,EAAG+B,EAAO,CAAI,EAC1D,UAAY,CAAE,OAAS,KAAK,OAAM,EAAK,WAAa,GAAK,SACxD,KAAK,OAAQ,EAAG,QAAW,EAAG,EAElC,OAAO,SAAUE,GAAI,CACnB,IAAIhxK,EAAGc,EAAGpB,GAAGmC,EAAGlB,EACdb,GAAI,EACJM,GAAI,CAAE,EACN6wK,GAAO,IAAIrC,GAAUgB,CAAG,EAO1B,GALIoB,IAAM,KAAMA,GAAKnB,EAChBc,EAASK,GAAI,EAAGzB,CAAG,EAExB1tK,EAAIitK,EAASkC,GAAK7B,CAAQ,EAEtBgB,GAGF,GAAI,OAAO,gBAAiB,CAI1B,IAFAnwK,EAAI,OAAO,gBAAgB,IAAI,YAAY6B,GAAK,CAAC,CAAC,EAE3C/B,GAAI+B,GAQTlB,EAAIX,EAAEF,EAAC,EAAI,QAAWE,EAAEF,GAAI,CAAC,IAAM,IAM/Ba,GAAK,MACPG,EAAI,OAAO,gBAAgB,IAAI,YAAY,CAAC,CAAC,EAC7Cd,EAAEF,EAAC,EAAIgB,EAAE,CAAC,EACVd,EAAEF,GAAI,CAAC,EAAIgB,EAAE,CAAC,IAKdV,GAAE,KAAKO,EAAI,IAAI,EACfb,IAAK,GAGTA,GAAI+B,EAAI,CAGpB,SAAqB,OAAO,YAAa,CAK7B,IAFA7B,EAAI,OAAO,YAAY6B,GAAK,CAAC,EAEtB/B,GAAI+B,GAMTlB,GAAMX,EAAEF,EAAC,EAAI,IAAM,gBAAoBE,EAAEF,GAAI,CAAC,EAAI,cAC9CE,EAAEF,GAAI,CAAC,EAAI,WAAgBE,EAAEF,GAAI,CAAC,EAAI,UACtCE,EAAEF,GAAI,CAAC,GAAK,KAAOE,EAAEF,GAAI,CAAC,GAAK,GAAKE,EAAEF,GAAI,CAAC,EAE3Ca,GAAK,KACP,OAAO,YAAY,CAAC,EAAE,KAAKX,EAAGF,EAAC,GAI/BM,GAAE,KAAKO,EAAI,IAAI,EACfb,IAAK,GAGTA,GAAI+B,EAAI,CACpB,KACY,OAAAsuK,GAAS,GACH,MACJnB,EAAiB,oBAAoB,EAK3C,GAAI,CAACmB,GAEH,KAAOrwK,GAAI+B,GACTlB,EAAIowK,GAAc,EACdpwK,EAAI,OAAMP,GAAEN,IAAG,EAAIa,EAAI,MAc/B,IAVAkB,EAAIzB,GAAE,EAAEN,EAAC,EACTkxK,IAAM7B,EAGFttK,GAAKmvK,KACPrwK,EAAI0uK,EAASF,EAAW6B,EAAE,EAC1B5wK,GAAEN,EAAC,EAAIivK,EAAUltK,EAAIlB,CAAC,EAAIA,GAIrBP,GAAEN,EAAC,IAAM,EAAGM,GAAE,IAAK,EAAEN,KAAI,CAGhC,GAAIA,GAAI,EACNM,GAAI,CAACV,GAAI,CAAC,MACL,CAGL,IAAKA,GAAI,GAAKU,GAAE,CAAC,IAAM,EAAGA,GAAE,OAAO,EAAG,CAAC,EAAGV,IAAKyvK,EAAS,CAGxD,IAAKrvK,GAAI,EAAGa,EAAIP,GAAE,CAAC,EAAGO,GAAK,GAAIA,GAAK,GAAIb,KAAI,CAGxCA,GAAIqvK,IAAUzvK,IAAKyvK,EAAWrvK,GACnC,CAED,OAAAmxK,GAAK,EAAIvxK,GACTuxK,GAAK,EAAI7wK,GACF6wK,EACf,CACA,IAQIrC,GAAU,IAAM,UAAY,CAI1B,QAHI9uK,GAAI,EACNgd,GAAO,UACPgX,GAAM,IAAI86I,GAAU9xJ,GAAK,CAAC,CAAC,EACtBhd,GAAIgd,GAAK,QAASgX,GAAMA,GAAI,KAAKhX,GAAKhd,IAAG,CAAC,EACjD,OAAOg0B,EACb,EAOI47I,EAAe,UAAY,CACzB,IAAI3mG,GAAU,aAOd,SAASmoG,GAAU9rI,GAAK+rI,EAAQC,EAASr4D,GAAU,CAOjD,QANI72G,EACF0wB,EAAM,CAAC,CAAC,EACRy+I,GACAvxK,GAAI,EACJm1B,GAAMmQ,GAAI,OAELtlC,GAAIm1B,IAAM,CACf,IAAKo8I,GAAOz+I,EAAI,OAAQy+I,KAAQz+I,EAAIy+I,EAAI,GAAKF,EAAO,CAIpD,IAFAv+I,EAAI,CAAC,GAAKmmF,GAAS,QAAQ3zE,GAAI,OAAOtlC,IAAG,CAAC,EAErCoC,EAAI,EAAGA,EAAI0wB,EAAI,OAAQ1wB,IAEtB0wB,EAAI1wB,CAAC,EAAIkvK,EAAU,IACjBx+I,EAAI1wB,EAAI,CAAC,GAAK,OAAM0wB,EAAI1wB,EAAI,CAAC,EAAI,GACrC0wB,EAAI1wB,EAAI,CAAC,GAAK0wB,EAAI1wB,CAAC,EAAIkvK,EAAU,EACjCx+I,EAAI1wB,CAAC,GAAKkvK,EAGf,CAED,OAAOx+I,EAAI,SACZ,CAKD,OAAO,SAAUwS,GAAK+rI,EAAQC,EAASnsG,GAAMqsG,EAAkB,CAC7D,IAAIv4D,EAAUz4G,GAAGZ,GAAGmC,GAAGhC,GAAGmB,GAAGuwK,GAAI1wK,GAC/Bf,GAAIslC,GAAI,QAAQ,GAAG,EACnB4rI,GAAKnB,EACL2B,GAAK1B,EA+BP,IA5BIhwK,IAAK,IACP+B,GAAIwuK,GAGJA,GAAgB,EAChBjrI,GAAMA,GAAI,QAAQ,IAAK,EAAE,EACzBvkC,GAAI,IAAI+tK,GAAUuC,CAAM,EACxBnwK,GAAIH,GAAE,IAAIukC,GAAI,OAAStlC,EAAC,EACxBuwK,GAAgBxuK,GAKhBhB,GAAE,EAAIqwK,GAAUO,EAAaC,EAAc1wK,GAAE,CAAC,EAAGA,GAAE,EAAG,GAAG,EACxD,GAAIowK,EAASroG,EAAO,EACrBloE,GAAE,EAAIA,GAAE,EAAE,QAKZ0wK,GAAKL,GAAU9rI,GAAK+rI,EAAQC,EAASE,GACjCv4D,EAAWw3D,GAAUxnG,KACrBgwC,EAAWhwC,GAASwnG,GAAS,EAGjC7wK,GAAImC,GAAI0vK,GAAG,OAGJA,GAAG,EAAE1vK,EAAC,GAAK,EAAG0vK,GAAG,IAAG,EAAG,CAG9B,GAAI,CAACA,GAAG,CAAC,EAAG,OAAOx4D,EAAS,OAAO,CAAC,EAqCpC,GAlCIj5G,GAAI,EACN,EAAEJ,IAEFsB,GAAE,EAAIuwK,GACNvwK,GAAE,EAAItB,GAGNsB,GAAE,EAAIikE,GACNjkE,GAAIyuK,EAAIzuK,GAAGH,GAAGmwK,GAAIQ,GAAIJ,CAAO,EAC7BG,GAAKvwK,GAAE,EACPnB,GAAImB,GAAE,EACNtB,GAAIsB,GAAE,GAMRV,GAAIZ,GAAIsxK,GAAK,EAGblxK,GAAIyxK,GAAGjxK,EAAC,EAIRuB,GAAIuvK,EAAU,EACdvxK,GAAIA,IAAKS,GAAI,GAAKixK,GAAGjxK,GAAI,CAAC,GAAK,KAE/BT,GAAI2xK,GAAK,GAAK1xK,IAAK,MAAQD,MAAO2xK,IAAM,GAAKA,KAAOxwK,GAAE,EAAI,EAAI,EAAI,IAC1DlB,GAAI+B,IAAK/B,IAAK+B,KAAK2vK,IAAM,GAAK3xK,IAAK2xK,IAAM,GAAKD,GAAGjxK,GAAI,CAAC,EAAI,GAC3DkxK,KAAOxwK,GAAE,EAAI,EAAI,EAAI,IAKxBV,GAAI,GAAK,CAACixK,GAAG,CAAC,EAGhBnsI,GAAMvlC,GAAI4xK,EAAa14D,EAAS,OAAO,CAAC,EAAG,CAACi4D,GAAIj4D,EAAS,OAAO,CAAC,CAAC,EAAIA,EAAS,OAAO,CAAC,MAClF,CAML,GAHAw4D,GAAG,OAASjxK,GAGRT,GAGF,IAAK,EAAEuxK,EAAS,EAAEG,GAAG,EAAEjxK,EAAC,EAAI8wK,GAC1BG,GAAGjxK,EAAC,EAAI,EAEHA,KACH,EAAEZ,GACF6xK,GAAK,CAAC,CAAC,EAAE,OAAOA,EAAE,GAMxB,IAAK1vK,GAAI0vK,GAAG,OAAQ,CAACA,GAAG,EAAE1vK,EAAC,GAAG,CAG9B,IAAK/B,GAAI,EAAGslC,GAAM,GAAItlC,IAAK+B,GAAGujC,IAAO2zE,EAAS,OAAOw4D,GAAGzxK,IAAG,CAAC,EAAE,CAG9DslC,GAAMqsI,EAAarsI,GAAK1lC,GAAGq5G,EAAS,OAAO,CAAC,CAAC,CAC9C,CAGD,OAAO3zE,EACf,CACA,IAIIqqI,EAAO,UAAY,CAGjB,SAASkC,GAAS3wK,EAAGa,EAAG8gD,GAAM,CAC5B,IAAIjiD,EAAG0sE,EAAMwkG,GAAKC,GAChBv8G,GAAQ,EACRx1D,GAAIkB,EAAE,OACN8wK,GAAMjwK,EAAIytK,EACVyC,GAAMlwK,EAAIytK,EAAY,EAExB,IAAKtuK,EAAIA,EAAE,MAAO,EAAElB,MAClB8xK,GAAM5wK,EAAElB,EAAC,EAAIwvK,EACbuC,GAAM7wK,EAAElB,EAAC,EAAIwvK,EAAY,EACzB5uK,EAAIqxK,GAAMH,GAAMC,GAAMC,GACtB1kG,EAAO0kG,GAAMF,GAAQlxK,EAAI4uK,EAAaA,EAAah6G,GACnDA,IAAS8X,EAAOzqB,GAAO,IAAMjiD,EAAI4uK,EAAY,GAAKyC,GAAMF,GACxD7wK,EAAElB,EAAC,EAAIstE,EAAOzqB,GAGhB,OAAI2S,KAAOt0D,EAAI,CAACs0D,EAAK,EAAE,OAAOt0D,CAAC,GAExBA,CACR,CAED,SAASgxK,GAAQhyK,EAAGc,EAAGmxK,GAAIC,EAAI,CAC7B,IAAIpyK,EAAGqyK,GAEP,GAAIF,IAAMC,EACRC,GAAMF,GAAKC,EAAK,EAAI,OAGpB,KAAKpyK,EAAIqyK,GAAM,EAAGryK,EAAImyK,GAAInyK,IAExB,GAAIE,EAAEF,CAAC,GAAKgB,EAAEhB,CAAC,EAAG,CAChBqyK,GAAMnyK,EAAEF,CAAC,EAAIgB,EAAEhB,CAAC,EAAI,EAAI,GACxB,KACD,CAIL,OAAOqyK,EACR,CAED,SAASC,GAASpyK,EAAGc,EAAGmxK,GAAItvH,EAAM,CAIhC,QAHI7iD,EAAI,EAGDmyK,MACLjyK,EAAEiyK,EAAE,GAAKnyK,EACTA,EAAIE,EAAEiyK,EAAE,EAAInxK,EAAEmxK,EAAE,EAAI,EAAI,EACxBjyK,EAAEiyK,EAAE,EAAInyK,EAAI6iD,EAAO3iD,EAAEiyK,EAAE,EAAInxK,EAAEmxK,EAAE,EAIjC,KAAO,CAACjyK,EAAE,CAAC,GAAKA,EAAE,OAAS,EAAGA,EAAE,OAAO,EAAG,CAAC,EAAE,CAC9C,CAGD,OAAO,SAAUgB,EAAGH,EAAGmwK,GAAIQ,EAAI7uH,EAAM,CACnC,IAAIwvH,GAAKzyK,GAAGI,GAAGuyK,GAAMzyK,GAAG0yK,GAAMC,GAAOlwK,GAAGmwK,GAAIC,GAAKC,GAAMC,GAAM/gK,GAAIghK,GAAIC,GACnEC,GAAIC,GACJ9yK,GAAIe,EAAE,GAAKH,EAAE,EAAI,EAAI,GACrB0wK,GAAKvwK,EAAE,EACPgyK,GAAKnyK,EAAE,EAGT,GAAI,CAAC0wK,IAAM,CAACA,GAAG,CAAC,GAAK,CAACyB,IAAM,CAACA,GAAG,CAAC,EAE/B,OAAO,IAAIpE,GAGV,CAAC5tK,EAAE,GAAK,CAACH,EAAE,IAAM0wK,GAAKyB,IAAMzB,GAAG,CAAC,GAAKyB,GAAG,CAAC,EAAI,CAACA,IAAM,IAGnDzB,IAAMA,GAAG,CAAC,GAAK,GAAK,CAACyB,GAAK/yK,GAAI,EAAIA,GAAI,CAClD,EAgBQ,IAbAoC,GAAI,IAAIusK,GAAU3uK,EAAC,EACnBuyK,GAAKnwK,GAAE,EAAI,GACX3C,GAAIsB,EAAE,EAAIH,EAAE,EACZZ,GAAI+wK,GAAKtxK,GAAI,EAERijD,IACHA,EAAOusH,EACPxvK,GAAIuzK,EAASjyK,EAAE,EAAImuK,CAAQ,EAAI8D,EAASpyK,EAAE,EAAIsuK,CAAQ,EACtDlvK,GAAIA,GAAIkvK,EAAW,GAKhBrvK,GAAI,EAAGkzK,GAAGlzK,EAAC,IAAMyxK,GAAGzxK,EAAC,GAAK,GAAIA,KAAI,CAIvC,GAFIkzK,GAAGlzK,EAAC,GAAKyxK,GAAGzxK,EAAC,GAAK,IAAIJ,KAEtBO,GAAI,EACNuyK,GAAG,KAAK,CAAC,EACTH,GAAO,OACF,CAwBL,IAvBAO,GAAKrB,GAAG,OACRuB,GAAKE,GAAG,OACRlzK,GAAI,EACJG,IAAK,EAILL,GAAImvK,EAAUpsH,GAAQqwH,GAAG,CAAC,EAAI,EAAE,EAI5BpzK,GAAI,IACNozK,GAAKrB,GAASqB,GAAIpzK,GAAG+iD,CAAI,EACzB4uH,GAAKI,GAASJ,GAAI3xK,GAAG+iD,CAAI,EACzBmwH,GAAKE,GAAG,OACRJ,GAAKrB,GAAG,QAGV3/J,GAAKkhK,GACLL,GAAMlB,GAAG,MAAM,EAAGuB,EAAE,EACpBJ,GAAOD,GAAI,OAGJC,GAAOI,GAAIL,GAAIC,IAAM,EAAI,EAAE,CAClCK,GAAKC,GAAG,QACRD,GAAK,CAAC,CAAC,EAAE,OAAOA,EAAE,EAClBF,GAAMG,GAAG,CAAC,EACNA,GAAG,CAAC,GAAKrwH,EAAO,GAAGkwH,KAIvB,EAAG,CAOD,GANAjzK,GAAI,EAGJuyK,GAAMH,GAAQgB,GAAIP,GAAKK,GAAIJ,EAAI,EAG3BP,GAAM,EAAG,CAqBX,GAjBAQ,GAAOF,GAAI,CAAC,EACRK,IAAMJ,KAAMC,GAAOA,GAAOhwH,GAAQ8vH,GAAI,CAAC,GAAK,IAGhD7yK,GAAImvK,EAAU4D,GAAOE,EAAG,EAapBjzK,GAAI,EAcN,IAXIA,IAAK+iD,IAAM/iD,GAAI+iD,EAAO,GAG1B2vH,GAAOX,GAASqB,GAAIpzK,GAAG+iD,CAAI,EAC3B4vH,GAAQD,GAAK,OACbI,GAAOD,GAAI,OAMJT,GAAQM,GAAMG,GAAKF,GAAOG,EAAI,GAAK,GACxC9yK,KAGAwyK,GAASE,GAAMQ,GAAKP,GAAQQ,GAAKC,GAAIT,GAAO5vH,CAAI,EAChD4vH,GAAQD,GAAK,OACbH,GAAM,OAQJvyK,IAAK,IAGPuyK,GAAMvyK,GAAI,GAIZ0yK,GAAOU,GAAG,QACVT,GAAQD,GAAK,OAUf,GAPIC,GAAQG,KAAMJ,GAAO,CAAC,CAAC,EAAE,OAAOA,EAAI,GAGxCF,GAASK,GAAKH,GAAMI,GAAM/vH,CAAI,EAC9B+vH,GAAOD,GAAI,OAGPN,IAAO,GAMT,KAAOH,GAAQgB,GAAIP,GAAKK,GAAIJ,EAAI,EAAI,GAClC9yK,KAGAwyK,GAASK,GAAKK,GAAKJ,GAAOK,GAAKC,GAAIN,GAAM/vH,CAAI,EAC7C+vH,GAAOD,GAAI,MAG7B,MAAuBN,KAAQ,IACjBvyK,KACA6yK,GAAM,CAAC,CAAC,GAIVD,GAAG1yK,IAAG,EAAIF,GAGN6yK,GAAI,CAAC,EACPA,GAAIC,IAAM,EAAInB,GAAG3/J,EAAE,GAAK,GAExB6gK,GAAM,CAAClB,GAAG3/J,EAAE,CAAC,EACb8gK,GAAO,EAErB,QAAoB9gK,KAAOghK,IAAMH,GAAI,CAAC,GAAK,OAASxyK,MAE1CoyK,GAAOI,GAAI,CAAC,GAAK,KAGZD,GAAG,CAAC,GAAGA,GAAG,OAAO,EAAG,CAAC,CAC3B,CAED,GAAI7vH,GAAQusH,EAAM,CAGhB,IAAKpvK,GAAI,EAAGG,GAAIuyK,GAAG,CAAC,EAAGvyK,IAAK,GAAIA,IAAK,GAAIH,KAAI,CAE7C8wK,GAAMvuK,GAAG2uK,IAAM3uK,GAAE,EAAIvC,GAAIJ,GAAIyvK,EAAW,GAAK,EAAGqC,EAAIa,EAAI,CAGlE,MACUhwK,GAAE,EAAI3C,GACN2C,GAAE,EAAI,CAACgwK,GAGT,OAAOhwK,EACf,CACA,IAYI,SAAS43G,GAAOr6G,GAAGE,GAAG0xK,GAAI/8E,EAAI,CAC5B,IAAIy+E,EAAIxzK,GAAGwD,EAAI+xB,EAAKmQ,GAKpB,GAHIosI,IAAM,KAAMA,GAAK1B,EAChBa,EAASa,GAAI,EAAG,CAAC,EAElB,CAAC5xK,GAAE,EAAG,OAAOA,GAAE,SAAQ,EAK3B,GAHAszK,EAAKtzK,GAAE,EAAE,CAAC,EACVsD,EAAKtD,GAAE,EAEHE,IAAK,KACPslC,GAAMssI,EAAc9xK,GAAE,CAAC,EACvBwlC,GAAMqvD,GAAM,GAAKA,GAAM,IAAMvxF,GAAM6sK,GAAc7sK,GAAM8sK,GACpDmD,EAAc/tI,GAAKliC,CAAE,EACrBuuK,EAAarsI,GAAKliC,EAAI,GAAG,UAE5BtD,GAAIgxK,GAAM,IAAIhC,GAAUhvK,EAAC,EAAGE,GAAG0xK,EAAE,EAGjC9xK,GAAIE,GAAE,EAENwlC,GAAMssI,EAAc9xK,GAAE,CAAC,EACvBq1B,EAAMmQ,GAAI,OAONqvD,GAAM,GAAKA,GAAM,IAAM30F,IAAKJ,IAAKA,IAAKqwK,GAAa,CAGrD,KAAO96I,EAAMn1B,GAAGslC,IAAO,IAAKnQ,IAAM,CAClCmQ,GAAM+tI,EAAc/tI,GAAK1lC,EAAC,CAGpC,SACUI,IAAKoD,EACLkiC,GAAMqsI,EAAarsI,GAAK1lC,GAAG,GAAG,EAG1BA,GAAI,EAAIu1B,GACV,GAAI,EAAEn1B,GAAI,EAAG,IAAKslC,IAAO,IAAKtlC,KAAKslC,IAAO,IAAI,UAE9CtlC,IAAKJ,GAAIu1B,EACLn1B,GAAI,EAEN,IADIJ,GAAI,GAAKu1B,IAAKmQ,IAAO,KAClBtlC,KAAKslC,IAAO,IAAI,CAM/B,OAAOxlC,GAAE,EAAI,GAAKszK,EAAK,IAAM9tI,GAAMA,EACpC,CAKD,SAASyrI,GAAS/zJ,GAAMld,GAAG,CAKzB,QAJIiC,GAAGhB,EACLf,EAAI,EACJkB,GAAI,IAAI4tK,GAAU9xJ,GAAK,CAAC,CAAC,EAEpBhd,EAAIgd,GAAK,OAAQhd,IACtBe,EAAI,IAAI+tK,GAAU9xJ,GAAKhd,CAAC,CAAC,GACrB,CAACe,EAAE,IAAMgB,GAAImwK,EAAQhxK,GAAGH,CAAC,KAAOjB,IAAKiC,KAAM,GAAKb,GAAE,IAAMpB,MAC1DoB,GAAIH,GAIR,OAAOG,EACR,CAOD,SAASoyK,GAAUxzK,GAAGQ,GAAGV,GAAG,CAK1B,QAJII,EAAI,EACNoC,EAAI9B,GAAE,OAGD,CAACA,GAAE,EAAE8B,CAAC,EAAG9B,GAAE,IAAG,EAAG,CAGxB,IAAK8B,EAAI9B,GAAE,CAAC,EAAG8B,GAAK,GAAIA,GAAK,GAAIpC,IAAI,CAGrC,OAAKJ,GAAII,EAAIJ,GAAIyvK,EAAW,GAAKe,GAG/BtwK,GAAE,EAAIA,GAAE,EAAI,KAGHF,GAAIuwK,EAGbrwK,GAAE,EAAI,CAACA,GAAE,EAAI,CAAC,GAEdA,GAAE,EAAIF,GACNE,GAAE,EAAIQ,IAGDR,EACR,CAID+vK,EAAgB,UAAY,CAC1B,IAAI0D,GAAa,8BACfC,GAAW,cACXC,GAAY,cACZC,EAAkB,qBAClBC,EAAmB,6BAErB,OAAO,SAAUzyK,GAAGokC,EAAKsrI,EAAO5vK,GAAG,CACjC,IAAI6hD,GACF1iD,GAAIywK,EAAQtrI,EAAMA,EAAI,QAAQquI,EAAkB,EAAE,EAGpD,GAAID,EAAgB,KAAKvzK,EAAC,EACxBe,GAAE,EAAI,MAAMf,EAAC,EAAI,KAAOA,GAAI,EAAI,GAAK,MAChC,CACL,GAAI,CAACywK,IAGHzwK,GAAIA,GAAE,QAAQozK,GAAY,SAAU3yK,GAAG+1I,GAAIC,GAAI,CAC7C,OAAA/zF,IAAQ+zF,GAAKA,GAAG,YAAa,IAAK,IAAM,GAAKA,IAAM,IAAM,EAAI,EACtD,CAAC51I,IAAKA,IAAK6hD,GAAO8zF,GAAK/1I,EAC5C,CAAa,EAEGI,KACF6hD,GAAO7hD,GAGPb,GAAIA,GAAE,QAAQqzK,GAAU,IAAI,EAAE,QAAQC,GAAW,MAAM,GAGrDnuI,GAAOnlC,IAAG,OAAO,IAAI2uK,GAAU3uK,GAAG0iD,EAAI,EAK5C,GAAIisH,GAAU,MACZ,MAAM,MACHI,EAAiB,SAAWluK,GAAI,SAAWA,GAAI,IAAM,YAAcskC,CAAG,EAI3EpkC,GAAE,EAAI,IACP,CAEDA,GAAE,EAAIA,GAAE,EAAI,IACb,CACP,IAOI,SAAS4vK,GAAM5vK,GAAG0yK,GAAIlC,GAAI3xK,EAAG,CAC3B,IAAIS,EAAGR,GAAGoC,EAAGL,EAAGjC,GAAGgR,GAAI+iK,GACrBpC,GAAKvwK,GAAE,EACP4yK,GAASvE,EAGX,GAAIkC,GAAI,CAQN3zJ,EAAK,CAGH,IAAKtd,EAAI,EAAGuB,EAAI0vK,GAAG,CAAC,EAAG1vK,GAAK,GAAIA,GAAK,GAAIvB,IAAI,CAI7C,GAHAR,GAAI4zK,GAAKpzK,EAGLR,GAAI,EACNA,IAAKqvK,EACLjtK,EAAIwxK,GACJ9zK,GAAI2xK,GAAG3gK,GAAK,CAAC,EAGb+iK,GAAK5E,EAAUnvK,GAAIg0K,GAAOtzK,EAAI4B,EAAI,CAAC,EAAI,EAAE,UAEzC0O,GAAKk+J,GAAUhvK,GAAI,GAAKqvK,CAAQ,EAE5Bv+J,IAAM2gK,GAAG,OAEX,GAAI1xK,EAAG,CAGL,KAAO0xK,GAAG,QAAU3gK,GAAI2gK,GAAG,KAAK,CAAC,EAAE,CACnC3xK,GAAI+zK,GAAK,EACTrzK,EAAI,EACJR,IAAKqvK,EACLjtK,EAAIpC,GAAIqvK,EAAW,CACnC,KACgB,OAAMvxJ,MAEH,CAIL,IAHAhe,GAAIiC,EAAI0vK,GAAG3gK,EAAE,EAGRtQ,EAAI,EAAGuB,GAAK,GAAIA,GAAK,GAAIvB,IAAI,CAGlCR,IAAKqvK,EAILjtK,EAAIpC,GAAIqvK,EAAW7uK,EAGnBqzK,GAAKzxK,EAAI,EAAI,EAAI6sK,EAAUnvK,GAAIg0K,GAAOtzK,EAAI4B,EAAI,CAAC,EAAI,EAAE,CACtD,CAkBH,GAfArC,EAAIA,GAAK6zK,GAAK,GAKbnC,GAAG3gK,GAAK,CAAC,GAAK,OAAS1O,EAAI,EAAItC,GAAIA,GAAIg0K,GAAOtzK,EAAI4B,EAAI,CAAC,GAExDrC,EAAI2xK,GAAK,GACLmC,IAAM9zK,KAAO2xK,IAAM,GAAKA,KAAOxwK,GAAE,EAAI,EAAI,EAAI,IAC9C2yK,GAAK,GAAKA,IAAM,IAAMnC,IAAM,GAAK3xK,GAAK2xK,IAAM,IAG3C1xK,GAAI,EAAIoC,EAAI,EAAItC,GAAIg0K,GAAOtzK,EAAI4B,CAAC,EAAI,EAAIqvK,GAAG3gK,GAAK,CAAC,GAAK,GAAM,GAC7D4gK,KAAOxwK,GAAE,EAAI,EAAI,EAAI,IAEpB0yK,GAAK,GAAK,CAACnC,GAAG,CAAC,EACjB,OAAAA,GAAG,OAAS,EAER1xK,GAGF6zK,IAAM1yK,GAAE,EAAI,EAGZuwK,GAAG,CAAC,EAAIqC,IAAQzE,EAAWuE,GAAKvE,GAAYA,CAAQ,EACpDnuK,GAAE,EAAI,CAAC0yK,IAAM,GAIbnC,GAAG,CAAC,EAAIvwK,GAAE,EAAI,EAGTA,GAkBT,GAdIlB,IAAK,GACPyxK,GAAG,OAAS3gK,GACZ/O,EAAI,EACJ+O,OAEA2gK,GAAG,OAAS3gK,GAAK,EACjB/O,EAAI+xK,GAAOzE,EAAWrvK,EAAC,EAIvByxK,GAAG3gK,EAAE,EAAI1O,EAAI,EAAI6sK,EAAUnvK,GAAIg0K,GAAOtzK,EAAI4B,CAAC,EAAI0xK,GAAO1xK,CAAC,CAAC,EAAIL,EAAI,GAI9DhC,EAEF,OAGE,GAAI+Q,IAAM,EAAG,CAGX,IAAK9Q,GAAI,EAAGoC,EAAIqvK,GAAG,CAAC,EAAGrvK,GAAK,GAAIA,GAAK,GAAIpC,KAAI,CAE7C,IADAoC,EAAIqvK,GAAG,CAAC,GAAK1vK,EACRA,EAAI,EAAGK,GAAK,GAAIA,GAAK,GAAIL,IAAI,CAG9B/B,IAAK+B,IACPb,GAAE,IACEuwK,GAAG,CAAC,GAAKrC,IAAMqC,GAAG,CAAC,EAAI,IAG7B,KAChB,KAAqB,CAEL,GADAA,GAAG3gK,EAAE,GAAK/O,EACN0vK,GAAG3gK,EAAE,GAAKs+J,EAAM,MACpBqC,GAAG3gK,IAAI,EAAI,EACX/O,EAAI,CACL,CAKL,IAAK/B,GAAIyxK,GAAG,OAAQA,GAAG,EAAEzxK,EAAC,IAAM,EAAGyxK,GAAG,IAAG,EAAG,CAC7C,CAGGvwK,GAAE,EAAIkvK,GACRlvK,GAAE,EAAIA,GAAE,EAAI,KAGHA,GAAE,EAAIivK,IACfjvK,GAAE,EAAI,CAACA,GAAE,EAAI,CAAC,EAEjB,CAED,OAAOA,EACR,CAGD,SAAS2yG,GAAQ/zG,GAAG,CAClB,IAAIwlC,GACF1lC,GAAIE,GAAE,EAER,OAAIF,KAAM,KAAaE,GAAE,SAAQ,GAEjCwlC,GAAMssI,EAAc9xK,GAAE,CAAC,EAEvBwlC,GAAM1lC,IAAKqwK,GAAcrwK,IAAKswK,EAC1BmD,EAAc/tI,GAAK1lC,EAAC,EACpB+xK,EAAarsI,GAAK1lC,GAAG,GAAG,EAErBE,GAAE,EAAI,EAAI,IAAMwlC,GAAMA,GAC9B,CASD,OAAAxjC,EAAE,cAAgBA,EAAE,IAAM,UAAY,CACpC,IAAIZ,GAAI,IAAI4tK,GAAU,IAAI,EAC1B,OAAI5tK,GAAE,EAAI,IAAGA,GAAE,EAAI,GACZA,EACb,EAUIY,EAAE,WAAa,SAAUf,GAAGC,GAAG,CAC7B,OAAOkxK,EAAQ,KAAM,IAAIpD,GAAU/tK,GAAGC,EAAC,CAAC,CAC9C,EAgBIc,EAAE,cAAgBA,EAAE,GAAK,SAAUovK,GAAIQ,GAAI,CACzC,IAAIpxK,GAAGR,EAAGe,EACRK,GAAI,KAEN,GAAIgwK,IAAM,KACR,OAAAL,EAASK,GAAI,EAAGzB,CAAG,EACfiC,IAAM,KAAMA,GAAK1B,EAChBa,EAASa,GAAI,EAAG,CAAC,EAEfZ,GAAM,IAAIhC,GAAU5tK,EAAC,EAAGgwK,GAAKhwK,GAAE,EAAI,EAAGwwK,EAAE,EAGjD,GAAI,EAAEpxK,GAAIY,GAAE,GAAI,OAAO,KAIvB,GAHApB,IAAMe,EAAIP,GAAE,OAAS,GAAK6yK,EAAS,KAAK,EAAI9D,CAAQ,GAAKA,EAGrDxuK,EAAIP,GAAEO,CAAC,EAAG,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIf,IAAI,CAC/C,OAAIA,EAAI,IAAGA,EAAI,GAERA,CACb,EAuBIgC,EAAE,UAAYA,EAAE,IAAM,SAAUf,GAAGC,GAAG,CACpC,OAAO2uK,EAAI,KAAM,IAAIb,GAAU/tK,GAAGC,EAAC,EAAG+uK,EAAgBC,CAAa,CACzE,EAOIluK,EAAE,mBAAqBA,EAAE,KAAO,SAAUf,GAAGC,GAAG,CAC9C,OAAO2uK,EAAI,KAAM,IAAIb,GAAU/tK,GAAGC,EAAC,EAAG,EAAG,CAAC,CAChD,EAkBIc,EAAE,gBAAkBA,EAAE,IAAM,SAAUhC,GAAGc,GAAG,CAC1C,IAAImzK,GAAMC,EAAUh0K,EAAG+B,GAAGwwK,EAAM0B,EAAQC,GAAQC,GAAQpzK,GACtDG,GAAI,KAKN,GAHApB,GAAI,IAAIgvK,GAAUhvK,EAAC,EAGfA,GAAE,GAAK,CAACA,GAAE,UAAS,EACrB,MAAM,MACHovK,EAAiB,4BAA8Br7D,GAAQ/zG,EAAC,CAAC,EAS9D,GANIc,IAAK,OAAMA,GAAI,IAAIkuK,GAAUluK,EAAC,GAGlCqzK,EAASn0K,GAAE,EAAI,GAGX,CAACoB,GAAE,GAAK,CAACA,GAAE,EAAE,CAAC,GAAKA,GAAE,EAAE,CAAC,GAAK,GAAK,CAACA,GAAE,GAAKA,GAAE,EAAE,QAAU,GAAK,CAACpB,GAAE,GAAK,CAACA,GAAE,EAAE,CAAC,EAI7E,OAAAiB,GAAI,IAAI+tK,GAAU,KAAK,IAAI,CAACj7D,GAAQ3yG,EAAC,EAAG+yK,EAASn0K,GAAE,GAAK,EAAIs0K,EAAMt0K,EAAC,GAAK,CAAC+zG,GAAQ/zG,EAAC,CAAC,CAAC,EAC7Ec,GAAIG,GAAE,IAAIH,EAAC,EAAIG,GAKxB,GAFAmzK,GAASp0K,GAAE,EAAI,EAEXc,GAAG,CAGL,GAAIA,GAAE,EAAI,CAACA,GAAE,EAAE,CAAC,EAAI,CAACA,GAAE,EAAG,OAAO,IAAIkuK,GAAU,GAAG,EAElDkF,EAAW,CAACE,IAAUhzK,GAAE,UAAS,GAAMN,GAAE,YAErCozK,IAAU9yK,GAAIA,GAAE,IAAIN,EAAC,EAI1B,KAAM,IAAId,GAAE,EAAI,IAAMoB,GAAE,EAAI,GAAKA,GAAE,EAAI,KAAOA,GAAE,GAAK,EAElDA,GAAE,EAAE,CAAC,EAAI,GAAK+yK,GAAU/yK,GAAE,EAAE,CAAC,GAAK,KAElCA,GAAE,EAAE,CAAC,EAAI,MAAQ+yK,GAAU/yK,GAAE,EAAE,CAAC,GAAK,YAGvC,OAAAa,GAAIb,GAAE,EAAI,GAAKkzK,EAAMt0K,EAAC,EAAI,GAAK,EAG3BoB,GAAE,EAAI,KAAIa,GAAI,EAAIA,IAGf,IAAI+sK,GAAUoF,GAAS,EAAInyK,GAAIA,EAAC,EAE9BwuK,KAKTxuK,GAAIitK,EAASuB,GAAgBlB,EAAW,CAAC,GAe3C,IAZI4E,GACFF,GAAO,IAAIjF,GAAU,EAAG,EACpBoF,KAAQp0K,GAAE,EAAI,GAClBq0K,GAASC,EAAMt0K,EAAC,IAEhBE,EAAI,KAAK,IAAI,CAAC6zG,GAAQ/zG,EAAC,CAAC,EACxBq0K,GAASn0K,EAAI,GAGfe,GAAI,IAAI+tK,GAAUgB,CAAG,IAGX,CAER,GAAIqE,GAAQ,CAEV,GADApzK,GAAIA,GAAE,MAAMG,EAAC,EACT,CAACH,GAAE,EAAG,MAENgB,GACEhB,GAAE,EAAE,OAASgB,KAAGhB,GAAE,EAAE,OAASgB,IACxBiyK,IACTjzK,GAAIA,GAAE,IAAIH,EAAC,EAEd,CAED,GAAIZ,EAAG,CAEL,GADAA,EAAIivK,EAAUjvK,EAAI,CAAC,EACfA,IAAM,EAAG,MACbm0K,GAASn0K,EAAI,CACvB,SACUF,GAAIA,GAAE,MAAMi0K,EAAI,EAChBjD,GAAMhxK,GAAGA,GAAE,EAAI,EAAG,CAAC,EAEfA,GAAE,EAAI,GACRq0K,GAASC,EAAMt0K,EAAC,MACX,CAEL,GADAE,EAAI,CAAC6zG,GAAQ/zG,EAAC,EACVE,IAAM,EAAG,MACbm0K,GAASn0K,EAAI,CACd,CAGHkB,GAAIA,GAAE,MAAMA,EAAC,EAETa,GACEb,GAAE,GAAKA,GAAE,EAAE,OAASa,KAAGb,GAAE,EAAE,OAASa,IAC/BiyK,IACT9yK,GAAIA,GAAE,IAAIN,EAAC,EAEd,CAED,OAAIozK,EAAiBjzK,IACjBmzK,KAAQnzK,GAAI+uK,EAAI,IAAI/uK,EAAC,GAElBH,GAAIG,GAAE,IAAIH,EAAC,EAAImB,GAAI+uK,GAAM/vK,GAAGwvK,GAAeP,EAAeuC,CAAI,EAAIxxK,GAC/E,EAWIe,EAAE,aAAe,SAAU4vK,GAAI,CAC7B,IAAI5xK,GAAI,IAAIgvK,GAAU,IAAI,EAC1B,OAAI4C,IAAM,KAAMA,GAAK1B,EAChBa,EAASa,GAAI,EAAG,CAAC,EACfZ,GAAMhxK,GAAGA,GAAE,EAAI,EAAG4xK,EAAE,CACjC,EAOI5vK,EAAE,UAAYA,EAAE,GAAK,SAAUf,GAAGC,GAAG,CACnC,OAAOkxK,EAAQ,KAAM,IAAIpD,GAAU/tK,GAAGC,EAAC,CAAC,IAAM,CACpD,EAMIc,EAAE,SAAW,UAAY,CACvB,MAAO,CAAC,CAAC,KAAK,CACpB,EAOIA,EAAE,cAAgBA,EAAE,GAAK,SAAUf,GAAGC,GAAG,CACvC,OAAOkxK,EAAQ,KAAM,IAAIpD,GAAU/tK,GAAGC,EAAC,CAAC,EAAI,CAClD,EAOIc,EAAE,uBAAyBA,EAAE,IAAM,SAAUf,GAAGC,GAAG,CACjD,OAAQA,GAAIkxK,EAAQ,KAAM,IAAIpD,GAAU/tK,GAAGC,EAAC,CAAC,KAAO,GAAKA,KAAM,CAErE,EAMIc,EAAE,UAAY,UAAY,CACxB,MAAO,CAAC,CAAC,KAAK,GAAKqxK,EAAS,KAAK,EAAI9D,CAAQ,EAAI,KAAK,EAAE,OAAS,CACvE,EAOIvtK,EAAE,WAAaA,EAAE,GAAK,SAAUf,GAAGC,GAAG,CACpC,OAAOkxK,EAAQ,KAAM,IAAIpD,GAAU/tK,GAAGC,EAAC,CAAC,EAAI,CAClD,EAOIc,EAAE,oBAAsBA,EAAE,IAAM,SAAUf,GAAGC,GAAG,CAC9C,OAAQA,GAAIkxK,EAAQ,KAAM,IAAIpD,GAAU/tK,GAAGC,EAAC,CAAC,KAAO,IAAMA,KAAM,CACtE,EAMIc,EAAE,MAAQ,UAAY,CACpB,MAAO,CAAC,KAAK,CACnB,EAMIA,EAAE,WAAa,UAAY,CACzB,OAAO,KAAK,EAAI,CACtB,EAMIA,EAAE,WAAa,UAAY,CACzB,OAAO,KAAK,EAAI,CACtB,EAMIA,EAAE,OAAS,UAAY,CACrB,MAAO,CAAC,CAAC,KAAK,GAAK,KAAK,EAAE,CAAC,GAAK,CACtC,EAuBIA,EAAE,MAAQ,SAAUf,GAAGC,GAAG,CACxB,IAAIhB,GAAGoC,EAAGvC,EAAGw0K,GACXnzK,EAAI,KACJhB,EAAIgB,EAAE,EAMR,GAJAH,GAAI,IAAI+tK,GAAU/tK,GAAGC,EAAC,EACtBA,GAAID,GAAE,EAGF,CAACb,GAAK,CAACc,GAAG,OAAO,IAAI8tK,GAAU,GAAG,EAGtC,GAAI5uK,GAAKc,GACP,OAAAD,GAAE,EAAI,CAACC,GACAE,EAAE,KAAKH,EAAC,EAGjB,IAAIyD,GAAKtD,EAAE,EAAImuK,EACbhrK,GAAKtD,GAAE,EAAIsuK,EACXoC,GAAKvwK,EAAE,EACPgyK,GAAKnyK,GAAE,EAET,GAAI,CAACyD,IAAM,CAACH,GAAI,CAGd,GAAI,CAACotK,IAAM,CAACyB,GAAI,OAAOzB,IAAM1wK,GAAE,EAAI,CAACC,GAAGD,IAAK,IAAI+tK,GAAUoE,GAAKhyK,EAAI,GAAG,EAGtE,GAAI,CAACuwK,GAAG,CAAC,GAAK,CAACyB,GAAG,CAAC,EAGjB,OAAOA,GAAG,CAAC,GAAKnyK,GAAE,EAAI,CAACC,GAAGD,IAAK,IAAI+tK,GAAU2C,GAAG,CAAC,EAAIvwK,EAGpD8uK,GAAiB,EAAI,GAAK,CAAC,CAE/B,CAOD,GALAxrK,GAAK2uK,EAAS3uK,EAAE,EAChBH,GAAK8uK,EAAS9uK,EAAE,EAChBotK,GAAKA,GAAG,QAGJvxK,EAAIsE,GAAKH,GAAI,CAaf,KAXIgwK,GAAOn0K,EAAI,IACbA,EAAI,CAACA,EACLL,EAAI4xK,KAEJptK,GAAKG,GACL3E,EAAIqzK,IAGNrzK,EAAE,QAAO,EAGJmB,GAAId,EAAGc,KAAKnB,EAAE,KAAK,CAAC,EAAE,CAC3BA,EAAE,QAAO,CACjB,KAKQ,KAFAuC,GAAKiyK,IAAQn0K,EAAIuxK,GAAG,SAAWzwK,GAAIkyK,GAAG,SAAWhzK,EAAIc,GAEhDd,EAAIc,GAAI,EAAGA,GAAIoB,EAAGpB,KAErB,GAAIywK,GAAGzwK,EAAC,GAAKkyK,GAAGlyK,EAAC,EAAG,CAClBqzK,GAAO5C,GAAGzwK,EAAC,EAAIkyK,GAAGlyK,EAAC,EACnB,KACD,CAgBL,GAXIqzK,KACFx0K,EAAI4xK,GACJA,GAAKyB,GACLA,GAAKrzK,EACLkB,GAAE,EAAI,CAACA,GAAE,GAGXC,IAAKoB,EAAI8wK,GAAG,SAAWlzK,GAAIyxK,GAAG,QAI1BzwK,GAAI,EAAG,KAAOA,KAAKywK,GAAGzxK,IAAG,EAAI,EAAE,CAInC,IAHAgB,GAAIouK,EAAO,EAGJhtK,EAAIlC,GAAI,CAEb,GAAIuxK,GAAG,EAAErvK,CAAC,EAAI8wK,GAAG9wK,CAAC,EAAG,CACnB,IAAKpC,GAAIoC,EAAGpC,IAAK,CAACyxK,GAAG,EAAEzxK,EAAC,EAAGyxK,GAAGzxK,EAAC,EAAIgB,GAAE,CACrC,EAAEywK,GAAGzxK,EAAC,EACNyxK,GAAGrvK,CAAC,GAAKgtK,CACV,CAEDqC,GAAGrvK,CAAC,GAAK8wK,GAAG9wK,CAAC,CACd,CAGD,KAAOqvK,GAAG,CAAC,GAAK,EAAGA,GAAG,OAAO,EAAG,CAAC,EAAG,EAAEptK,GAAG,CAGzC,OAAKotK,GAAG,CAAC,EAWF6B,GAAUvyK,GAAG0wK,GAAIptK,EAAE,GAPxBtD,GAAE,EAAIivK,GAAiB,EAAI,GAAK,EAChCjvK,GAAE,EAAI,CAACA,GAAE,EAAI,CAAC,EACPA,GAMf,EAwBIe,EAAE,OAASA,EAAE,IAAM,SAAUf,GAAGC,GAAG,CACjC,IAAIuB,GAAGpC,EACLe,EAAI,KAKN,OAHAH,GAAI,IAAI+tK,GAAU/tK,GAAGC,EAAC,EAGlB,CAACE,EAAE,GAAK,CAACH,GAAE,GAAKA,GAAE,GAAK,CAACA,GAAE,EAAE,CAAC,EACxB,IAAI+tK,GAAU,GAAG,EAGf,CAAC/tK,GAAE,GAAKG,EAAE,GAAK,CAACA,EAAE,EAAE,CAAC,EACvB,IAAI4tK,GAAU5tK,CAAC,GAGpBovK,IAAe,GAIjBnwK,EAAIY,GAAE,EACNA,GAAE,EAAI,EACNwB,GAAIotK,EAAIzuK,EAAGH,GAAG,EAAG,CAAC,EAClBA,GAAE,EAAIZ,EACNoC,GAAE,GAAKpC,GAEPoC,GAAIotK,EAAIzuK,EAAGH,GAAG,EAAGuvK,EAAW,EAG9BvvK,GAAIG,EAAE,MAAMqB,GAAE,MAAMxB,EAAC,CAAC,EAGlB,CAACA,GAAE,EAAE,CAAC,GAAKuvK,IAAe,IAAGvvK,GAAE,EAAIG,EAAE,GAElCH,GACb,EAuBIe,EAAE,aAAeA,EAAE,MAAQ,SAAUf,GAAGC,GAAG,CACzC,IAAIV,GAAGV,EAAGI,EAAGoC,GAAGL,EAAGnB,EAAG0zK,GAAKxC,GAAKC,GAAKwC,GAAKC,GAAKC,GAAKC,GAClD7xH,GAAM8xH,GACNzzK,GAAI,KACJuwK,GAAKvwK,GAAE,EACPgyK,IAAMnyK,GAAI,IAAI+tK,GAAU/tK,GAAGC,EAAC,GAAG,EAGjC,GAAI,CAACywK,IAAM,CAACyB,IAAM,CAACzB,GAAG,CAAC,GAAK,CAACyB,GAAG,CAAC,EAG/B,MAAI,CAAChyK,GAAE,GAAK,CAACH,GAAE,GAAK0wK,IAAM,CAACA,GAAG,CAAC,GAAK,CAACyB,IAAMA,IAAM,CAACA,GAAG,CAAC,GAAK,CAACzB,GAC1D1wK,GAAE,EAAIA,GAAE,EAAIA,GAAE,EAAI,MAElBA,GAAE,GAAKG,GAAE,EAGL,CAACuwK,IAAM,CAACyB,GACVnyK,GAAE,EAAIA,GAAE,EAAI,MAIZA,GAAE,EAAI,CAAC,CAAC,EACRA,GAAE,EAAI,IAIHA,GAmBT,IAhBAnB,EAAIuzK,EAASjyK,GAAE,EAAImuK,CAAQ,EAAI8D,EAASpyK,GAAE,EAAIsuK,CAAQ,EACtDtuK,GAAE,GAAKG,GAAE,EACTozK,GAAM7C,GAAG,OACT8C,GAAMrB,GAAG,OAGLoB,GAAMC,KACRG,GAAKjD,GACLA,GAAKyB,GACLA,GAAKwB,GACL10K,EAAIs0K,GACJA,GAAMC,GACNA,GAAMv0K,GAIHA,EAAIs0K,GAAMC,GAAKG,GAAK,CAAA,EAAI10K,IAAK00K,GAAG,KAAK,CAAC,EAAE,CAK7C,IAHA7xH,GAAOusH,EACPuF,GAAWnF,EAENxvK,EAAIu0K,GAAK,EAAEv0K,GAAK,GAAI,CAKvB,IAJAM,GAAI,EACJk0K,GAAMtB,GAAGlzK,CAAC,EAAI20K,GACdF,GAAMvB,GAAGlzK,CAAC,EAAI20K,GAAW,EAEpB5yK,EAAIuyK,GAAKlyK,GAAIpC,EAAI+B,EAAGK,GAAIpC,GAC3B8xK,GAAML,GAAG,EAAE1vK,CAAC,EAAI4yK,GAChB5C,GAAMN,GAAG1vK,CAAC,EAAI4yK,GAAW,EACzB/zK,EAAI6zK,GAAM3C,GAAMC,GAAMyC,GACtB1C,GAAM0C,GAAM1C,GAAQlxK,EAAI+zK,GAAYA,GAAYD,GAAGtyK,EAAC,EAAI9B,GACxDA,IAAKwxK,GAAMjvH,GAAO,IAAMjiD,EAAI+zK,GAAW,GAAKF,GAAM1C,GAClD2C,GAAGtyK,IAAG,EAAI0vK,GAAMjvH,GAGlB6xH,GAAGtyK,EAAC,EAAI9B,EACT,CAED,OAAIA,GACF,EAAEV,EAEF80K,GAAG,OAAO,EAAG,CAAC,EAGTpB,GAAUvyK,GAAG2zK,GAAI90K,CAAC,CAC/B,EAOIkC,EAAE,QAAU,UAAY,CACtB,IAAIZ,GAAI,IAAI4tK,GAAU,IAAI,EAC1B,OAAA5tK,GAAE,EAAI,CAACA,GAAE,GAAK,KACPA,EACb,EAuBIY,EAAE,KAAO,SAAUf,GAAGC,GAAG,CACvB,IAAInB,GACFqB,EAAI,KACJhB,EAAIgB,EAAE,EAMR,GAJAH,GAAI,IAAI+tK,GAAU/tK,GAAGC,EAAC,EACtBA,GAAID,GAAE,EAGF,CAACb,GAAK,CAACc,GAAG,OAAO,IAAI8tK,GAAU,GAAG,EAGrC,GAAI5uK,GAAKc,GACR,OAAAD,GAAE,EAAI,CAACC,GACAE,EAAE,MAAMH,EAAC,EAGlB,IAAIyD,GAAKtD,EAAE,EAAImuK,EACbhrK,EAAKtD,GAAE,EAAIsuK,EACXoC,EAAKvwK,EAAE,EACPgyK,GAAKnyK,GAAE,EAET,GAAI,CAACyD,IAAM,CAACH,EAAI,CAGd,GAAI,CAACotK,GAAM,CAACyB,GAAI,OAAO,IAAIpE,GAAU5uK,EAAI,CAAC,EAI1C,GAAI,CAACuxK,EAAG,CAAC,GAAK,CAACyB,GAAG,CAAC,EAAG,OAAOA,GAAG,CAAC,EAAInyK,GAAI,IAAI+tK,GAAU2C,EAAG,CAAC,EAAIvwK,EAAIhB,EAAI,CAAC,CACzE,CAOD,GALAsE,GAAK2uK,EAAS3uK,EAAE,EAChBH,EAAK8uK,EAAS9uK,CAAE,EAChBotK,EAAKA,EAAG,QAGJvxK,EAAIsE,GAAKH,EAAI,CAUf,IATInE,EAAI,GACNmE,EAAKG,GACL3E,GAAIqzK,KAEJhzK,EAAI,CAACA,EACLL,GAAI4xK,GAGN5xK,GAAE,QAAO,EACFK,IAAKL,GAAE,KAAK,CAAC,EAAE,CACtBA,GAAE,QAAO,CACV,CAcD,IAZAK,EAAIuxK,EAAG,OACPzwK,GAAIkyK,GAAG,OAGHhzK,EAAIc,GAAI,IACVnB,GAAIqzK,GACJA,GAAKzB,EACLA,EAAK5xK,GACLmB,GAAId,GAIDA,EAAI,EAAGc,IACVd,GAAKuxK,EAAG,EAAEzwK,EAAC,EAAIywK,EAAGzwK,EAAC,EAAIkyK,GAAGlyK,EAAC,EAAId,GAAKkvK,EAAO,EAC3CqC,EAAGzwK,EAAC,EAAIouK,IAASqC,EAAGzwK,EAAC,EAAI,EAAIywK,EAAGzwK,EAAC,EAAIouK,EAGvC,OAAIlvK,IACFuxK,EAAK,CAACvxK,CAAC,EAAE,OAAOuxK,CAAE,EAClB,EAAEptK,GAKGivK,GAAUvyK,GAAG0wK,EAAIptK,CAAE,CAChC,EAkBIvC,EAAE,UAAYA,EAAE,GAAK,SAAU8xK,GAAIlC,GAAI,CACrC,IAAIpxK,GAAGR,EAAGe,EACRK,GAAI,KAEN,GAAI0yK,IAAM,MAAQA,KAAO,CAAC,CAACA,GACzB,OAAA/C,EAAS+C,GAAI,EAAGnE,CAAG,EACfiC,IAAM,KAAMA,GAAK1B,EAChBa,EAASa,GAAI,EAAG,CAAC,EAEfZ,GAAM,IAAIhC,GAAU5tK,EAAC,EAAG0yK,GAAIlC,EAAE,EAGvC,GAAI,EAAEpxK,GAAIY,GAAE,GAAI,OAAO,KAIvB,GAHAL,EAAIP,GAAE,OAAS,EACfR,EAAIe,EAAIwuK,EAAW,EAEfxuK,EAAIP,GAAEO,CAAC,EAAG,CAGZ,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIf,IAAI,CAGjC,IAAKe,EAAIP,GAAE,CAAC,EAAGO,GAAK,GAAIA,GAAK,GAAIf,IAAI,CACtC,CAED,OAAI8zK,IAAM1yK,GAAE,EAAI,EAAIpB,IAAGA,EAAIoB,GAAE,EAAI,GAE1BpB,CACb,EAWIgC,EAAE,UAAY,SAAUC,GAAG,CACzB,OAAA8uK,EAAS9uK,GAAG,kBAAmButK,CAAgB,EACxC,KAAK,MAAM,KAAOvtK,EAAC,CAChC,EAcID,EAAE,WAAaA,EAAE,KAAO,UAAY,CAClC,IAAIlB,GAAGd,GAAGC,GAAGmtE,EAAKrtE,EAChBqB,GAAI,KACJZ,EAAIY,GAAE,EACNf,EAAIe,GAAE,EACNtB,GAAIsB,GAAE,EACNgwK,GAAKnB,EAAiB,EACtBgE,GAAO,IAAIjF,GAAU,KAAK,EAG5B,GAAI3uK,IAAM,GAAK,CAACG,GAAK,CAACA,EAAE,CAAC,EACvB,OAAO,IAAIwuK,GAAU,CAAC3uK,GAAKA,EAAI,IAAM,CAACG,GAAKA,EAAE,CAAC,GAAK,IAAMA,EAAIY,GAAI,GAAK,EA8BxE,GA1BAf,EAAI,KAAK,KAAK,CAAC0zG,GAAQ3yG,EAAC,CAAC,EAIrBf,GAAK,GAAKA,GAAK,KACjBL,GAAI8xK,EAActxK,CAAC,GACdR,GAAE,OAASF,IAAK,GAAK,IAAGE,IAAK,KAClCK,EAAI,KAAK,KAAK,CAACL,EAAC,EAChBF,GAAIuzK,GAAUvzK,GAAI,GAAK,CAAC,GAAKA,GAAI,GAAKA,GAAI,GAEtCO,GAAK,IACPL,GAAI,KAAOF,IAEXE,GAAIK,EAAE,gBACNL,GAAIA,GAAE,MAAM,EAAGA,GAAE,QAAQ,GAAG,EAAI,CAAC,EAAIF,IAGvCG,GAAI,IAAI+uK,GAAUhvK,EAAC,GAEnBC,GAAI,IAAI+uK,GAAU3uK,EAAI,EAAE,EAOtBJ,GAAE,EAAE,CAAC,GAMP,IALAH,GAAIG,GAAE,EACNI,EAAIP,GAAIsxK,GACJ/wK,EAAI,IAAGA,EAAI,KAOb,GAHAN,EAAIE,GACJA,GAAIg0K,GAAK,MAAMl0K,EAAE,KAAK8vK,EAAIzuK,GAAGrB,EAAGqxK,GAAI,CAAC,CAAC,CAAC,EAEnCU,EAAc/xK,EAAE,CAAC,EAAE,MAAM,EAAGM,CAAC,KAAOL,GAAI8xK,EAAc7xK,GAAE,CAAC,GAAG,MAAM,EAAGI,CAAC,EAWxE,GANIJ,GAAE,EAAIH,IAAG,EAAEO,EACfL,GAAIA,GAAE,MAAMK,EAAI,EAAGA,EAAI,CAAC,EAKpBL,IAAK,QAAU,CAACotE,GAAOptE,IAAK,OAAQ,CAItC,GAAI,CAACotE,IACH4jG,GAAMjxK,EAAGA,EAAE,EAAIkwK,EAAiB,EAAG,CAAC,EAEhClwK,EAAE,MAAMA,CAAC,EAAE,GAAGqB,EAAC,GAAG,CACpBnB,GAAIF,EACJ,KACD,CAGHqxK,IAAM,EACN/wK,GAAK,EACL+sE,EAAM,CACpB,KAAmB,EAID,CAAC,CAACptE,IAAK,CAAC,CAACA,GAAE,MAAM,CAAC,GAAKA,GAAE,OAAO,CAAC,GAAK,OAGxCgxK,GAAM/wK,GAAGA,GAAE,EAAIgwK,EAAiB,EAAG,CAAC,EACpCnvK,GAAI,CAACb,GAAE,MAAMA,EAAC,EAAE,GAAGmB,EAAC,GAGtB,KACD,EAKP,OAAO4vK,GAAM/wK,GAAGA,GAAE,EAAIgwK,EAAiB,EAAGC,EAAepvK,EAAC,CAChE,EAYIkB,EAAE,cAAgB,SAAUovK,GAAIQ,GAAI,CAClC,OAAIR,IAAM,OACRL,EAASK,GAAI,EAAGzB,CAAG,EACnByB,MAEK/2D,GAAO,KAAM+2D,GAAIQ,GAAI,CAAC,CACnC,EAeI5vK,EAAE,QAAU,SAAUovK,GAAIQ,GAAI,CAC5B,OAAIR,IAAM,OACRL,EAASK,GAAI,EAAGzB,CAAG,EACnByB,GAAKA,GAAK,KAAK,EAAI,GAEd/2D,GAAO,KAAM+2D,GAAIQ,EAAE,CAChC,EA4BI5vK,EAAE,SAAW,SAAUovK,GAAIQ,GAAIv3D,GAAQ,CACrC,IAAI70E,EACFpkC,EAAI,KAEN,GAAIi5G,IAAU,KACR+2D,IAAM,MAAQQ,IAAM,OAAOA,IAAM,UACnCv3D,GAASu3D,GACTA,GAAK,MACIR,IAAM,OAAOA,IAAM,UAC5B/2D,GAAS+2D,GACTA,GAAKQ,GAAK,MAEVv3D,GAASq2D,WAEF,OAAOr2D,IAAU,SAC1B,MAAM,MACH+0D,EAAiB,2BAA6B/0D,EAAM,EAKzD,GAFA70E,EAAMpkC,EAAE,QAAQgwK,GAAIQ,EAAE,EAElBxwK,EAAE,EAAG,CACP,IAAIlB,GACF8yB,EAAMwS,EAAI,MAAM,GAAG,EACnBmxG,EAAK,CAACt8B,GAAO,UACbu8B,GAAK,CAACv8B,GAAO,mBACby6D,GAAiBz6D,GAAO,gBAAkB,GAC1C06D,GAAU/hJ,EAAI,CAAC,EACfgiJ,GAAehiJ,EAAI,CAAC,EACpBiiJ,GAAQ7zK,EAAE,EAAI,EACd8zK,GAAYD,GAAQF,GAAQ,MAAM,CAAC,EAAIA,GACvC1/I,GAAM6/I,GAAU,OASlB,GAPIt+B,KACF12I,GAAIy2I,EACJA,EAAKC,GACLA,GAAK12I,GACLm1B,IAAOn1B,IAGLy2I,EAAK,GAAKthH,GAAM,EAAG,CAGrB,IAFAn1B,GAAIm1B,GAAMshH,GAAMA,EAChBo+B,GAAUG,GAAU,OAAO,EAAGh1K,EAAC,EACxBA,GAAIm1B,GAAKn1B,IAAKy2I,EAAIo+B,IAAWD,GAAiBI,GAAU,OAAOh1K,GAAGy2I,CAAE,EACvEC,GAAK,IAAGm+B,IAAWD,GAAiBI,GAAU,MAAMh1K,EAAC,GACrD+0K,KAAOF,GAAU,IAAMA,GAC5B,CAEDvvI,EAAMwvI,GACHD,IAAW16D,GAAO,kBAAoB,MAAQu8B,GAAK,CAACv8B,GAAO,mBAC1D26D,GAAa,QAAQ,IAAI,OAAO,OAASp+B,GAAK,OAAQ,GAAG,EAC1D,MAAQv8B,GAAO,wBAA0B,GAAG,EAC3C26D,IACDD,EACJ,CAED,OAAQ16D,GAAO,QAAU,IAAM70E,GAAO60E,GAAO,QAAU,GAC7D,EAcIr4G,EAAE,WAAa,SAAU0mB,GAAI,CAC3B,IAAIhoB,GAAGy0K,GAAIrlG,EAAIC,EAAIjwE,GAAGqxD,EAAKnxD,EAAGo1K,GAAIC,GAAI5yK,GAAGxC,GAAGI,GAC1Ce,GAAI,KACJuwK,GAAKvwK,GAAE,EAET,GAAIsnB,IAAM,OACR1oB,EAAI,IAAIgvK,GAAUtmJ,EAAE,EAGhB,CAAC1oB,EAAE,cAAgBA,EAAE,GAAKA,EAAE,IAAM,IAAMA,EAAE,GAAGgwK,CAAG,GAClD,MAAM,MACHZ,EAAiB,aACfpvK,EAAE,UAAS,EAAK,iBAAmB,oBAAsB+zG,GAAQ/zG,CAAC,CAAC,EAI5E,GAAI,CAAC2xK,GAAI,OAAO,IAAI3C,GAAU5tK,EAAC,EAoB/B,IAlBAV,GAAI,IAAIsuK,GAAUgB,CAAG,EACrBqF,GAAKF,GAAK,IAAInG,GAAUgB,CAAG,EAC3BlgG,EAAKslG,GAAK,IAAIpG,GAAUgB,CAAG,EAC3B3vK,GAAIyxK,EAAcH,EAAE,EAIpB7xK,GAAIY,GAAE,EAAIL,GAAE,OAASe,GAAE,EAAI,EAC3BV,GAAE,EAAE,CAAC,EAAI+uK,GAAUt+G,EAAMrxD,GAAIyvK,GAAY,EAAIA,EAAWp+G,EAAMA,CAAG,EACjEzoC,GAAK,CAACA,IAAM1oB,EAAE,WAAWU,EAAC,EAAI,EAAKZ,GAAI,EAAIY,GAAI20K,GAAMr1K,EAErDmxD,EAAMm/G,GACNA,GAAU,IACVtwK,EAAI,IAAIgvK,GAAU3uK,EAAC,EAGnB+0K,GAAG,EAAE,CAAC,EAAI,EAGR3yK,GAAIotK,EAAI7vK,EAAGU,GAAG,EAAG,CAAC,EAClBqvE,EAAKolG,GAAG,KAAK1yK,GAAE,MAAMqtE,CAAE,CAAC,EACpBC,EAAG,WAAWrnD,EAAE,GAAK,GACzBysJ,GAAKrlG,EACLA,EAAKC,EACLslG,GAAKD,GAAG,KAAK3yK,GAAE,MAAMstE,EAAKslG,EAAE,CAAC,EAC7BD,GAAKrlG,EACLrvE,GAAIV,EAAE,MAAMyC,GAAE,MAAMstE,EAAKrvE,EAAC,CAAC,EAC3BV,EAAI+vE,EAGN,OAAAA,EAAK8/F,EAAInnJ,GAAG,MAAMysJ,EAAE,EAAGrlG,EAAI,EAAG,CAAC,EAC/BslG,GAAKA,GAAG,KAAKrlG,EAAG,MAAMslG,EAAE,CAAC,EACzBF,GAAKA,GAAG,KAAKplG,EAAG,MAAMD,CAAE,CAAC,EACzBslG,GAAG,EAAIC,GAAG,EAAIj0K,GAAE,EAChBtB,GAAIA,GAAI,EAGRG,GAAI4vK,EAAIwF,GAAIvlG,EAAIhwE,GAAGowK,CAAa,EAAE,MAAM9uK,EAAC,EAAE,IAAK,EAAC,WAC7CyuK,EAAIuF,GAAID,GAAIr1K,GAAGowK,CAAa,EAAE,MAAM9uK,EAAC,EAAE,IAAG,CAAE,EAAI,EAAI,CAACi0K,GAAIvlG,CAAE,EAAI,CAACslG,GAAID,EAAE,EAE1E7E,GAAUn/G,EAEHlxD,EACb,EAMI+B,EAAE,SAAW,UAAY,CACvB,MAAO,CAAC+xG,GAAQ,IAAI,CAC1B,EAcI/xG,EAAE,YAAc,SAAU8xK,GAAIlC,GAAI,CAChC,OAAIkC,IAAM,MAAM/C,EAAS+C,GAAI,EAAGnE,CAAG,EAC5Bt1D,GAAO,KAAMy5D,GAAIlC,GAAI,CAAC,CACnC,EAcI5vK,EAAE,SAAW,SAAUd,GAAG,CACxB,IAAIskC,GACFxlC,GAAI,KACJK,EAAIL,GAAE,EACNF,EAAIE,GAAE,EAGR,OAAIF,IAAM,KACJO,GACFmlC,GAAM,WACFnlC,EAAI,IAAGmlC,GAAM,IAAMA,KAEvBA,GAAM,OAGJtkC,IAAK,KACPskC,GAAM1lC,GAAKqwK,GAAcrwK,GAAKswK,EAC3BmD,EAAczB,EAAc9xK,GAAE,CAAC,EAAGF,CAAC,EACnC+xK,EAAaC,EAAc9xK,GAAE,CAAC,EAAGF,EAAG,GAAG,EACjCoB,KAAM,IAAM0vK,IACrB5wK,GAAIgxK,GAAM,IAAIhC,GAAUhvK,EAAC,EAAGiwK,EAAiBnwK,EAAI,EAAGowK,CAAa,EACjE1qI,GAAMqsI,EAAaC,EAAc9xK,GAAE,CAAC,EAAGA,GAAE,EAAG,GAAG,IAE/C+wK,EAAS7vK,GAAG,EAAGyvK,GAAS,OAAQ,MAAM,EACtCnrI,GAAMsqI,EAAY+B,EAAaC,EAAc9xK,GAAE,CAAC,EAAGF,EAAG,GAAG,EAAG,GAAIoB,GAAGb,EAAG,EAAI,GAGxEA,EAAI,GAAKL,GAAE,EAAE,CAAC,IAAGwlC,GAAM,IAAMA,KAG5BA,EACb,EAOIxjC,EAAE,QAAUA,EAAE,OAAS,UAAY,CACjC,OAAO+xG,GAAQ,IAAI,CACzB,EAGI/xG,EAAE,aAAe,GAEb4tK,GAAgB,MAAMZ,GAAU,IAAIY,CAAY,EAE7CZ,EACR,CASD,SAASqE,EAASrzK,EAAG,CACnB,IAAIE,EAAIF,EAAI,EACZ,OAAOA,EAAI,GAAKA,IAAME,EAAIA,EAAIA,EAAI,CACnC,CAID,SAAS4xK,EAAc1xK,EAAG,CAMxB,QALIC,EAAGuC,EACL1C,EAAI,EACJoC,EAAIlC,EAAE,OACNH,EAAIG,EAAE,CAAC,EAAI,GAENF,EAAIoC,GAAI,CAGb,IAFAjC,EAAID,EAAEF,GAAG,EAAI,GACb0C,EAAI2sK,EAAWlvK,EAAE,OACVuC,IAAKvC,EAAI,IAAMA,EAAE,CACxBJ,GAAKI,CACN,CAGD,IAAKiC,EAAIrC,EAAE,OAAQA,EAAE,WAAW,EAAEqC,CAAC,IAAM,IAAI,CAE7C,OAAOrC,EAAE,MAAM,EAAGqC,EAAI,GAAK,CAAC,CAC7B,CAID,SAAS8vK,EAAQhxK,EAAGH,EAAG,CACrB,IAAIb,EAAGc,EACLywK,EAAKvwK,EAAE,EACPgyK,EAAKnyK,EAAE,EACPf,EAAIkB,EAAE,EACNkB,EAAIrB,EAAE,EACNgB,EAAIb,EAAE,EACNd,EAAIW,EAAE,EAGR,GAAI,CAACf,GAAK,CAACoC,EAAG,OAAO,KAMrB,GAJAlC,EAAIuxK,GAAM,CAACA,EAAG,CAAC,EACfzwK,EAAIkyK,GAAM,CAACA,EAAG,CAAC,EAGXhzK,GAAKc,EAAG,OAAOd,EAAIc,EAAI,EAAI,CAACoB,EAAIpC,EAGpC,GAAIA,GAAKoC,EAAG,OAAOpC,EAMnB,GAJAE,EAAIF,EAAI,EACRgB,EAAIe,GAAK3B,EAGL,CAACqxK,GAAM,CAACyB,EAAI,OAAOlyK,EAAI,EAAI,CAACywK,EAAKvxK,EAAI,EAAI,GAG7C,GAAI,CAACc,EAAG,OAAOe,EAAI3B,EAAIF,EAAI,EAAI,GAK/B,IAHAkC,GAAKL,EAAI0vK,EAAG,SAAWrxK,EAAI8yK,EAAG,QAAUnxK,EAAI3B,EAGvCJ,EAAI,EAAGA,EAAIoC,EAAGpC,IAAK,GAAIyxK,EAAGzxK,CAAC,GAAKkzK,EAAGlzK,CAAC,EAAG,OAAOyxK,EAAGzxK,CAAC,EAAIkzK,EAAGlzK,CAAC,EAAIE,EAAI,EAAI,GAG3E,OAAO6B,GAAK3B,EAAI,EAAI2B,EAAI3B,EAAIF,EAAI,EAAI,EACrC,CAMD,SAAS2wK,EAAS/wK,EAAG4iC,EAAK3b,EAAKpM,EAAM,CACnC,GAAI7a,EAAI4iC,GAAO5iC,EAAIinB,GAAOjnB,IAAMmvK,EAAUnvK,CAAC,EACzC,MAAM,MACJovK,GAAkBv0J,GAAQ,aAAe,OAAO7a,GAAK,SAClDA,EAAI4iC,GAAO5iC,EAAIinB,EAAM,kBAAoB,oBACzC,6BAA+B,OAAOjnB,CAAC,CAAC,CAEhD,CAID,SAASs0K,EAAMt0K,EAAG,CAChB,IAAIiC,EAAIjC,EAAE,EAAE,OAAS,EACrB,OAAOqzK,EAASrzK,EAAE,EAAIuvK,CAAQ,GAAKttK,GAAKjC,EAAE,EAAEiC,CAAC,EAAI,GAAK,CACvD,CAGD,SAASsxK,EAAc/tI,EAAK1lC,EAAG,CAC7B,OAAQ0lC,EAAI,OAAS,EAAIA,EAAI,OAAO,CAAC,EAAI,IAAMA,EAAI,MAAM,CAAC,EAAIA,IAC5D1lC,EAAI,EAAI,IAAM,MAAQA,CACzB,CAGD,SAAS+xK,EAAarsI,EAAK1lC,EAAG8C,EAAG,CAC/B,IAAIyyB,EAAKigJ,EAGT,GAAIx1K,EAAI,EAAG,CAGT,IAAKw1K,EAAK1yK,EAAI,IAAK,EAAE9C,EAAGw1K,GAAM1yK,EAAE,CAChC4iC,EAAM8vI,EAAK9vI,CAGjB,SACMnQ,EAAMmQ,EAAI,OAGN,EAAE1lC,EAAIu1B,EAAK,CACb,IAAKigJ,EAAK1yK,EAAG9C,GAAKu1B,EAAK,EAAEv1B,EAAGw1K,GAAM1yK,EAAE,CACpC4iC,GAAO8vI,CACf,MAAiBx1K,EAAIu1B,IACbmQ,EAAMA,EAAI,MAAM,EAAG1lC,CAAC,EAAI,IAAM0lC,EAAI,MAAM1lC,CAAC,GAI7C,OAAO0lC,CACR,CAMDwpI,EAAY1oF,EAAK,EACjB0oF,EAAU,QAAaA,EAAU,UAAYA,EAOF3kF,EAAO,QAChDA,EAAA,QAAiB2kF,GAIZD,IACHA,EAAe,OAAO,KAAQ,KAAe,KAAO,KAAO,QAG7DA,EAAa,UAAYC,EAE5B,GAAE3kI,SAAI,iNCx2FP,OAAO,eAAekrI,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAM9K,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E8qI,EAAiB7qI,iBAAuB,EAC9C,IAAA8qI,EAAA,cAAmChL,EAAuB,gBAAiB,CACvE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,SACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,QAAQ,EACpG,WAAW,IAAM,CAACn/C,EAAMC,IAAU,IAAI45I,EAAe,UAAU75I,CAAI,EAAE,KAAKC,CAAK,EAAE,SAAU,CAAA,EAC3F,IAAI,CAACk/C,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,qBAAqB,EAAG,IAAM,CAAC,CAAClW,EAAMO,CAAG,IAE5I,IAAI2V,EAA6B,mBAAoBA,EAA6B,uBAAuBlW,EAAK,cAAgBkW,EAA6B,iCAAiC3V,EAAI,UAAU,CAAC,CAAC,CAAC,EACxM,KAAK,CACN,KAAM,CAAC2V,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,qBAAqB,EACrH,GAAI,CAACA,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,uBAAuB,CACxH,CAAA,EACI,IAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,qBAAqB,EAAG,IAAM,CAAC,CAAClW,EAAMO,CAAG,IAEvI,IAAI2V,EAA6B,eAAgBA,EAA6B,0BAA2BA,EAA6B,iCAAiClW,EAAK,UAAU,KAAOkW,EAA6B,iCAAiC3V,EAAI,UAAU,CAAC,CAAC,CAAC,EACvQ,KAAK,CACN,KAAM,CAAC2V,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,qBAAqB,EAChH,GAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,uBAAuB,CACnH,CAAA,EACI,IAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,qBAAqB,EAAG,IAAM,CAAC,CAAC7V,EAAME,CAAG,IAEvI,IAAI2V,EAA6B,eAAgBA,EAA6B,0BAA2BA,EAA6B,iCAAiC7V,EAAK,UAAU,KAAO6V,EAA6B,iCAAiC3V,EAAI,UAAU,CAAC,CAAC,CAAC,EACvQ,KAAK,CACN,KAAM,CAAC2V,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,qBAAqB,EAChH,GAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,uBAAuB,CACnH,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CACA,EACAy6F,4BAAA,qBAA+BG,+PCrC/B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMlL,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E6qI,EAA0D5qI,4BAAA,EAIhE,IAAAirI,EAAA,cAA+CnL,EAAuB,6BAA8B,CAChG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,QAAQ,EACpE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI4zK,EAAuB,oBAC1C,CACA,EACAI,wCAAA,iCAA2CE,6ICpB3C,IAAIzrI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,yOCfnE,OAAO,eAAeqrI,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAMrL,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAqrI,EAAA,cAA+BtL,EAAuB,gBAAiB,CACnE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,KACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,IAAI,EAChG,iBAAiB,IAAM9kB,GAAO,KAAK,KAAKA,CAAG,CAAC,EAC5C,QAAS,CAC1B,CAAS,CACT,CACA,EACA8/G,wBAAA,iBAA2BE,uOClB3B,OAAO,eAAeC,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAMxL,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EorI,EAAkDnrI,wBAAA,EAIxD,IAAAurI,EAAA,cAA2CzL,EAAuB,6BAA8B,CAC5F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,IAAI,EAChE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIm0K,EAAmB,gBACtC,CACA,EACAG,oCAAA,6BAAuCE,yICpBvC,IAAI/rI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oCAAyC,EAAE+D,CAAO,qQCf/D,OAAO,eAAe2rI,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAM3L,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA2rI,EAAA,cAAmC5L,EAAuB,gBAAiB,CACvE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,SACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,QAAQ,EACpG,cAAc,CAACA,EAA6B,UAAU,gBAAiBA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC/W,EAAMC,OAAa8W,EAA6B,MAAM/W,EAAK,SAASC,CAAI,CAAC,CAAC,EAC1M,SAAS,CAAC8W,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,eAAe,EAAG,IAAM,CAAC/W,EAAMC,IAAS,CAC9I,GAAID,EAAK,WAAaC,EAAK,SACvB,MAAM,IAAI8W,EAA6B,8BAA8B/W,EAAMC,CAAI,EAEnF,SAAW8W,EAA6B,MAAM/W,EAAK,WAAW,SAASC,EAAK,UAAU,CAAC,CAC1F,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CACA,EACAoyG,4BAAA,qBAA+BE,+PCxB/B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAM9L,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E0rI,EAA0DzrI,4BAAA,EAIhE,IAAA6rI,EAAA,cAA+C/L,EAAuB,6BAA8B,CAChG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,QAAQ,EACpE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIy0K,EAAuB,oBAC1C,CACA,EACAG,wCAAA,iCAA2CE,6ICpB3C,IAAIrsI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,qQCfnE,OAAO,eAAeisI,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAMjM,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAisI,EAAA,cAAmClM,EAAuB,gBAAiB,CACvE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,SACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,QAAQ,EACpG,WAAW,IAAM9R,GAAO,IAAI8R,EAA6B,UAAU9R,EAAI,QAAQ,CAAC,EAChF,QAAS,CAC1B,CAAS,CACT,CACA,EACA0tG,4BAAA,qBAA+BE,+PClB/B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMpM,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EgsI,EAA0D/rI,4BAAA,EAIhE,IAAAmsI,EAAA,cAA+CrM,EAAuB,6BAA8B,CAChG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,QAAQ,EACpE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI+0K,EAAuB,oBAC1C,CACA,EACAG,wCAAA,iCAA2CE,6ICpB3C,IAAI3sI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,kOCfnE,OAAO,eAAeusI,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAMvM,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAusI,EAAA,cAA8BxM,EAAuB,gBAAiB,CAClE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,IACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,GAAG,EAC/F,YAAY,IAAMlW,MAAYkW,EAA6B,SAASlW,EAAK,WAAW,GAAG,CAAC,EACxF,IAAI,CAACkW,EAA6B,QAAQ,QAAQ,EAAG,IAAM,CAAC,CAAClW,CAAI,OAAUkW,EAA6B,SAASlW,EAAK,WAAW,GAAG,CAAC,EACrI,QAAS,CAC1B,CAAS,CACT,CACA,EACAoyG,uBAAA,gBAA0BE,iOCnB1B,OAAO,eAAeC,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAM1M,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EssI,EAAgDrsI,uBAAA,EAItD,IAAAysI,EAAA,cAA0C3M,EAAuB,6BAA8B,CAC3F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,GAAG,EAC/D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIq1K,EAAkB,eACrC,CACA,EACAG,mCAAA,4BAAsCE,wICpBtC,IAAIjtI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,qQCf9D,OAAO,eAAe6sI,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAM7M,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E8qI,EAAiB7qI,iBAAuB,EAC9C,IAAA4sI,EAAA,cAAmC9M,EAAuB,gBAAiB,CACvE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,SACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,QAAQ,EACpG,WAAW,IAAM,CAACn/C,EAAMC,IAAU,IAAI45I,EAAe,UAAU75I,CAAI,EAAE,IAAIC,CAAK,EAAE,SAAU,CAAA,EAC1F,cAAc,CAACk/C,EAA6B,QAAQ,YAAaA,EAA6B,QAAQ,WAAW,EAAG,IAAM,CAACn/C,EAAMC,IAAU,CAC5I,GAAIA,IAAU,EACV,MAAM,IAAIk/C,EAA6B,gBAAgB,uBAAuB,EAElF,SAAWA,EAA6B,SAAS,IAAI06F,EAAe,UAAU75I,CAAI,EAAE,IAAIC,CAAK,EAAE,SAAQ,CAAE,CAC5G,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CACA,EACA07I,4BAAA,qBAA+BE,+PCtB/B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMhN,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E4sI,EAA0D3sI,4BAAA,EAIhE,IAAA+sI,EAAA,cAA+CjN,EAAuB,6BAA8B,CAChG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,QAAQ,EACpE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI21K,EAAuB,oBAC1C,CACA,EACAG,wCAAA,iCAA2CE,6ICpB3C,IAAIvtI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,iSCfnE,OAAO,eAAemtI,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMnN,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAmtI,EAAA,cAAuCpN,EAAuB,gBAAiB,CAC3E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,eACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,cAAc,EAC1G,iBAAiB,IAAMzgD,MAAWygD,EAA6B,QAAQ,UAAUzgD,CAAG,CAAC,CAAC,EAAE,QAAS,CAClH,CAAS,CACT,CACA,EACAu9I,gCAAA,yBAAmCE,uRCjBnC,OAAO,eAAeC,qCAAS,aAAc,CAAE,MAAO,GAAM,EAChBA,qCAAA,qCAAG,OAC/C,MAAMtN,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EktI,EAAkEjtI,gCAAA,EAIxE,IAAAqtI,EAAA,cAAmDvN,EAAuB,6BAA8B,CACpG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,cAAc,EAC1E,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIi2K,EAA2B,wBAC9C,CACA,EACAG,4CAAA,qCAA+CE,iJCpB/C,IAAI7tI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,4CAAiD,EAAE+D,CAAO,qQCfvE,OAAO,eAAeytI,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAMzN,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDowC,EAA8EnwC,cAAA,EAIpF,IAAAwtI,EAAA,cAAmC1N,EAAuB,gBAAiB,CACvE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,MACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,KAAK,EACjG,WAAW,IAAM,CAACn/C,EAAMC,IAAUD,IAASC,CAAK,EAChD,WAAW,IAAM,CAACD,EAAMC,IAAUD,EAAK,cAAcC,CAAK,IAAM,CAAC,EACjE,IAAI,CAACk/C,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,eAAe,EAAG,IAAM,CAAC,CAACn/C,EAAMC,CAAK,OAAUk/C,EAA6B,MAAMn/C,EAAK,IAAG,IAAOC,EAAM,IAAK,GAC7MD,EAAK,WAAaC,EAAM,QAAQ,CAAC,EAEhC,IAAI,CAACk/C,EAA6B,UAAU,gBAAiBA,EAA6B,UAAU,eAAe,EAAG,IAAM,OAAUA,EAA6B,MAAM,EAAK,CAAC,EAC/K,YAAY,IAAM,CAACn/C,EAAMC,IAAUD,IAASC,CAAK,EACjD,aAAau/C,GAAY,CAACx/C,EAAMC,OAAck/C,EAA6B,WAAWn/C,EAAMw/C,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,eAAe,CAAC,EAAE,QAAO,OAAW8tC,EAA6B,WAAWl/C,EAAOu/C,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,eAAe,CAAC,EAAE,QAAS,CAAA,EAChV,KAAK,CAEN,KAAM,CAAC8tC,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,aAAa,EAC7G,GAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,QAAQ,CACpG,CAAA,EACI,IAAI,CAAC,OAAQ,MAAM,EAAGK,GAAY,CAAC,CAACx/C,EAAMC,CAAK,OAAUk/C,EAA6B,MAAM,KAAK,aAAa,CAACn/C,EAAK,QAASC,EAAM,OAAO,EAAGu/C,CAAQ,EACrJ,UAAW,GACZ,KAAK,aAAa,CAACx/C,EAAK,UAAWC,EAAM,SAAS,EAAGu/C,CAAQ,EACxD,UAAW,GAChB,KAAK,aAAa,CAACx/C,EAAK,OAAQC,EAAM,MAAM,EAAGu/C,CAAQ,EAClD,UAAW,GAChB,KAAK,aAAa,CAACx/C,EAAK,MAAOC,EAAM,KAAK,EAAGu/C,CAAQ,EAChD,UAAS,CAAE,EAAG,EAAK,EACvB,IAAI,CAAC,OAAQ,MAAM,EAAGA,GAAY,CAAC,CAACi9F,EAAOC,CAAM,IAAM,CACxD,MAAM18I,EAAOy8I,EAAM,MAAMj9F,EAAS,QAAQ,QAAQnuC,EAAkB,cAAc,WAAW,CAAC,EACxFpR,EAAQy8I,EAAO,MAAMl9F,EAAS,QAAQ,QAAQnuC,EAAkB,cAAc,WAAW,CAAC,EAC1F3S,EAAMsB,EAAK,OAAOC,CAAK,EAC7B,GAAI,CAACvB,GAAQsB,EAAK,WAAa,WAAeC,EAAM,WAAa,UAC7D,MAAM,IAAIk/C,EAA6B,kBAAkB,CAACs9F,EAAOC,CAAM,CAAC,EAE5E,SAAWv9F,EAA6B,MAAMzgD,CAAG,CACjE,EAAe,EAAK,EACH,IAAI,CAACygD,EAA6B,QAAQ,aAAcA,EAA6B,QAAQ,YAAY,EAAG,IAAM,CAAC,CAACw9F,EAAMC,CAAI,OAAUz9F,EAA6B,SAAUA,EAA6B,+BAAgCA,EAA6B,0CAA0Cw9F,EAAK,UAAU,CAAC,OAChUx9F,EAA6B,+BAAgCA,EAA6B,0CAA0Cy9F,EAAK,UAAU,CAAC,MACpJz9F,EAA6B,8BAA+BA,EAA6B,wCAAwCw9F,EAAK,UAAU,CAAC,OAC7Ix9F,EAA6B,8BAA+BA,EAA6B,wCAAwCy9F,EAAK,UAAU,CAAC,CAAC,CAAC,EAC1J,IAAI,CAACz9F,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,QAAQ,EAAGK,GAAY,CAAC,CAACq9F,EAAOC,CAAK,OAE/H39F,EAA6B,SAAUA,EAA6B,cAAeA,EAA6B,iCAAiC09F,EAAM,UAAU,EAAGr9F,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,eAAe,CAAC,EAAE,QAAS,OAC9P8tC,EAA6B,cAAeA,EAA6B,iCAAiC29F,EAAM,UAAU,EAAGt9F,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,eAAe,CAAC,EAAE,SAAS,CAAC,EAC/N,QAAS,CAC1B,CAAS,CACT,CACA,EACAkrI,4BAAA,qBAA+BQ,+PCxD/B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMlO,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EwtI,EAA0DvtI,4BAAA,EAIhE,IAAAiuI,EAAA,cAA+CnO,EAAuB,6BAA8B,CAChG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIu2K,EAAuB,oBAC1C,CACA,EACAS,wCAAA,iCAA2CE,6ICpB3C,IAAIzuI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,gPCfnE,OAAO,eAAequI,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAMrO,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAquI,EAAA,cAAgCtO,EAAuB,gBAAiB,CACpE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,MACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,KAAK,EACjG,iBAAiB,IAAM9kB,GAAO,KAAK,MAAMA,CAAG,CAAC,EAC7C,QAAS,CAC1B,CAAS,CACT,CACA,EACA8iH,yBAAA,kBAA4BE,6OClB5B,OAAO,eAAeC,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAMxO,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EouI,EAAoDnuI,yBAAA,EAI1D,IAAAuuI,EAAA,cAA4CzO,EAAuB,6BAA8B,CAC7F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIm3K,EAAoB,iBACvC,CACA,EACAG,qCAAA,8BAAwCE,0ICpBxC,IAAI/uI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,gPCfhE,OAAO,eAAe2uI,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAM3O,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA2uI,EAAA,cAAgC5O,EAAuB,gBAAiB,CACpE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,MACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,KAAK,EACjG,YAAY,IAAMlW,MAAYkW,EAA6B,SAASlW,EAAK,WAAW,KAAK,CAAC,EAC1F,IAAI,CAACkW,EAA6B,QAAQ,QAAQ,EAAG,IAAM,CAAC,CAAC7V,CAAI,OAAU6V,EAA6B,SAAS7V,EAAK,WAAW,KAAK,CAAC,EACvI,QAAS,CAC1B,CAAS,CACT,CACA,EACAm0G,yBAAA,kBAA4BE,6OCnB5B,OAAO,eAAeC,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAM9O,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E0uI,EAAoDzuI,yBAAA,EAI1D,IAAA6uI,EAAA,cAA4C/O,EAAuB,6BAA8B,CAC7F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIy3K,EAAoB,iBACvC,CACA,EACAG,qCAAA,8BAAwCE,0ICpBxC,IAAIrvI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,kOCfhE,OAAO,eAAeivI,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAMjP,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDowC,EAA8EnwC,cAAA,EAC9Eu/D,EAA6Bt/D,6BAAmC,EAItE,IAAA+uI,EAAA,cAA8BlP,EAAuB,gBAAiB,CAClE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,IACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,GAAG,EAC/F,IAAI,CAAC,WAAW,EAAGK,GAAaj+D,GAAS,CAC1C,MAAM8rD,EAAM9rD,EAAK,CAAC,EACZmmC,KAAU6mD,EAA2B,SAASlhC,EAAI,IAAK,EAAEmS,EAAS,QAAQ,IAAInuC,EAAkB,cAAc,OAAO,GAAK,EAAE,EAClI,OAAO,IAAI8tC,EAA6B,UAAUz3B,CAAG,CACxD,CAAA,EACI,UAAU83B,GAAanS,GAAQ,CAChC,MAAM3lB,KAAU6mD,EAA2B,SAASlhC,EAAI,IAAK,EAAEmS,EAAS,QAAQ,IAAInuC,EAAkB,cAAc,OAAO,GAAK,EAAE,EAClI,OAAO,IAAI8tC,EAA6B,UAAUz3B,CAAG,CACxD,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CACA,EACAq2H,uBAAA,gBAA0BE,iOC5B1B,OAAO,eAAeC,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMpP,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EgvI,EAAgD/uI,uBAAA,EAItD,IAAAmvI,EAAA,cAA0CrP,EAAuB,6BAA8B,CAC3F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,IAAKA,EAA6B,eAAe,GAAG,EAChH,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI+3K,EAAkB,eACrC,CACA,EACAG,mCAAA,4BAAsCE,wICpBtC,IAAI3vI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,8PCf9D,OAAO,eAAeuvI,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMvP,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAuvI,EAAA,cAAkCxP,EAAuB,gBAAiB,CACtE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,SACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,QAAQ,EACpG,QAAQ,IAAMz3D,MAAYy3D,EAA6B,MAAMz3D,EAAK,WAAa,WAAW,CAAC,EAC3F,QAAS,CAC1B,CAAS,CACT,CACA,EACA22J,2BAAA,oBAA8BE,yPClB9B,OAAO,eAAeC,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAM1P,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EsvI,EAAwDrvI,2BAAA,EAI9D,IAAAyvI,EAAA,cAA8C3P,EAAuB,6BAA8B,CAC/F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,QAAQ,EACpE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIq4K,EAAsB,mBACzC,CACA,EACAG,uCAAA,gCAA0CE,4ICpB1C,IAAIjwI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uCAA4C,EAAE+D,CAAO,gPCflE,OAAO,eAAe6vI,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAM7P,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA6vI,EAAA,cAAgC9P,EAAuB,gBAAiB,CACpE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,OACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,MAAM,EAClG,QAAQ,IAAMz3D,MAAYy3D,EAA6B,MAAMz3D,EAAK,WAAa,WAAW,CAAC,EAC3F,QAAS,CAC1B,CAAS,CACT,CACA,EACAi3J,yBAAA,kBAA4BE,6OClB5B,OAAO,eAAeC,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAMhQ,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E4vI,EAAoD3vI,yBAAA,EAI1D,IAAA+vI,EAAA,cAA4CjQ,EAAuB,6BAA8B,CAC7F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,OAAQA,EAA6B,eAAe,MAAM,EACtH,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI24K,EAAoB,iBACvC,CACA,EACAG,qCAAA,8BAAwCE,0ICpBxC,IAAIvwI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,4QCfhE,OAAO,eAAemwI,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMnQ,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAmwI,EAAA,cAAoCpQ,EAAuB,gBAAiB,CACxE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,WACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,UAAU,EACtG,QAAQ,IAAMz3D,MAAYy3D,EAA6B,MAAMz3D,EAAK,WAAa,SAAS,CAAC,EACzF,QAAS,CAC1B,CAAS,CACT,CACA,EACAu3J,6BAAA,sBAAgCE,qQClBhC,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAMtQ,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EkwI,EAA4DjwI,6BAAA,EAIlE,IAAAqwI,EAAA,cAAgDvQ,EAAuB,6BAA8B,CACjG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,UAAU,EACtE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIi5K,EAAwB,qBAC3C,CACA,EACAG,yCAAA,kCAA4CE,8ICpB5C,IAAI7wI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,4QCfpE,OAAO,eAAeywI,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMzQ,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAywI,EAAA,cAAoC1Q,EAAuB,gBAAiB,CACxE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,WACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,UAAU,EACtG,WAAW,IAAM,OAAUA,EAA6B,MAAM,EAAI,CAAC,EACnE,QAAQ,IAAM,OAAUA,EAA6B,MAAM,EAAK,CAAC,EACjE,QAAS,CAC1B,CAAS,CACT,CACA,EACAogG,6BAAA,sBAAgCE,qQCnBhC,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAM5Q,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EwwI,EAA4DvwI,6BAAA,EAIlE,IAAA2wI,EAAA,cAAgD7Q,EAAuB,6BAA8B,CACjG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,UAAU,EACtE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIu5K,EAAwB,qBAC3C,CACA,EACAG,yCAAA,kCAA4CE,8ICpB5C,IAAInxI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,qQCfpE,OAAO,eAAe+wI,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAM/Q,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA+wI,EAAA,cAAmChR,EAAuB,gBAAiB,CACvE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,UACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,SAAS,EACrG,QAAQ,IAAMz3D,MAAYy3D,EAA6B,MAAMz3D,EAAK,WAAa,MAAM,CAAC,EACtF,QAAS,CAC1B,CAAS,CACT,CACA,EACAm4J,4BAAA,qBAA+BE,+PClB/B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMlR,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E8wI,EAA0D7wI,4BAAA,EAIhE,IAAAixI,EAAA,cAA+CnR,EAAuB,6BAA8B,CAChG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,SAAS,EACrE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI65K,EAAuB,oBAC1C,CACA,EACAG,wCAAA,iCAA2CE,6ICpB3C,IAAIzxI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,yOCfnE,OAAO,eAAeqxI,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAMrR,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAqxI,EAAA,cAA+BtR,EAAuB,gBAAiB,CACnE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,KACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,IAAI,EAChG,WAAW,IAAM9R,MAAW8R,EAA6B,QAAQ9R,EAAI,UAAY,EAAE,CAAC,EACpF,QAAS,CAC1B,CAAS,CACT,CACA,EACA8yG,wBAAA,iBAA2BE,uOClB3B,OAAO,eAAeC,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAMxR,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EoxI,EAAkDnxI,wBAAA,EAIxD,IAAAuxI,EAAA,cAA2CzR,EAAuB,6BAA8B,CAC5F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,IAAI,EAChE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIm6K,EAAmB,gBACtC,CACA,EACAG,oCAAA,6BAAuCE,yICpBvC,IAAI/xI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oCAAyC,EAAE+D,CAAO,0RCf/D,OAAO,eAAe2xI,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAM3R,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA2xI,EAAA,MAAMC,WAAgC7R,EAAuB,gBAAiB,CAC1E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,aACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,YAAY,EACxG,cAAc,CAACA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAACwe,EAAKzS,OAAc/L,EAA6B,MAAMwhG,GAAwB,YAAYhjF,EAAKzS,CAAK,CAAC,CAAC,EAAE,QAAS,CAC3P,CAAS,CACT,CAKI,OAAO,YAAYyS,EAAKzS,EAAO,CAC3B,MAAM01F,EAAWjjF,EAAI,MAAM,GAAG,EACxBkjF,EAAY31F,EAAM,MAAM,GAAG,EACjC,GAAI,CAACy1F,GAAwB,aAAaE,EAAU,CAAC,EAAGD,EAAS,CAAC,CAAC,GAC/D,CAACD,GAAwB,WAAWC,EAAS,CAAC,CAAC,EAC/C,MAAO,GAEX,IAAIE,EAAK,EACLC,EAAK,EACT,KAAOA,EAAKF,EAAU,QAAQ,CAC1B,GAAIF,GAAwB,WAAWE,EAAUE,CAAE,CAAC,EAAG,CACnDA,IACA,QAChB,CACY,GAAID,IAAOF,EAAS,OAChB,MAAO,GAEX,GAAID,GAAwB,aAAaE,EAAUE,CAAE,EAAGH,EAASE,CAAE,CAAC,EAAG,CACnEA,IACAC,IACA,QAChB,CACY,GAAIH,EAASE,CAAE,EAAE,SAAW,EACxB,MAAO,GAEXA,GACZ,CACQ,MAAO,EACf,CACI,OAAO,WAAWnjF,EAAK,CACnB,OAAOA,IAAQ,GACvB,CACI,OAAO,aAAa39D,EAAMC,EAAO,CAE7B,OADqB,IAAI,OAAO,IAAID,CAAI,IAAK,IAAI,EAC7B,KAAK,IAAIC,CAAK,GAAG,CAC7C,CACA,EACAwgJ,+BAAA,wBAAkCE,iRCzDlC,OAAO,eAAeK,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAMlS,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E0xI,EAAgEzxI,+BAAA,EAItE,IAAAiyI,EAAA,cAAkDnS,EAAuB,6BAA8B,CACnG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,YAAY,EACxE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIy6K,EAA0B,uBAC7C,CACA,EACAO,2CAAA,oCAA8CE,gJCpB9C,IAAIzyI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,gPCftE,OAAO,eAAeqyI,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAMrS,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAqyI,EAAA,cAAgCtS,EAAuB,gBAAiB,CACpE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,MACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,KAAK,EACjG,eAAe,IAAM9R,MAAW8R,EAA6B,QAAQ9R,EAAI,aAAa,CAAC,EACvF,cAAc,IAAMA,MAAW8R,EAA6B,YAAY9R,EAAI,WAAW,YAAW,EAAIA,EAAI,QAAQ,CAAC,EACnH,QAAS,CAC1B,CAAS,CACT,CACA,EACA8zG,yBAAA,kBAA4BE,6OCnB5B,OAAO,eAAeC,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAMxS,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EoyI,EAAoDnyI,yBAAA,EAI1D,IAAAuyI,EAAA,cAA4CzS,EAAuB,6BAA8B,CAC7F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIm7K,EAAoB,iBACvC,CACA,EACAG,qCAAA,8BAAwCE,0ICpBxC,IAAI/yI,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,0NChB/D,SAAUke,EAAS,CAGZ0hC,EAAA,QAAiB1hC,EAAS,CAgBjC,GAAC,SAAUy0H,EAAW,KAoBfC,EAAU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAQ7F,SAASC,EAASl8K,EAAGa,EAAG,CACpB,IAAI7B,EAAIgB,EAAE,CAAC,EACPF,EAAIE,EAAE,CAAC,EACPZ,EAAIY,EAAE,CAAC,EACPV,EAAIU,EAAE,CAAC,EAEXhB,IAAMc,EAAIV,EAAI,CAACU,EAAIR,GAAKuB,EAAE,CAAC,EAAI,UAAY,EAC3C7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAIc,EAAI,CAACd,EAAII,GAAKyB,EAAE,CAAC,EAAI,UAAY,EAC3CvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAME,EAAIN,EAAI,CAACM,EAAIQ,GAAKe,EAAE,CAAC,EAAI,UAAY,EAC3CzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIE,EAAI,CAACF,EAAIJ,GAAK6B,EAAE,CAAC,EAAI,WAAa,EAC5Cf,GAAMA,GAAK,GAAKA,IAAM,IAAMV,EAAI,EAChCJ,IAAMc,EAAIV,EAAI,CAACU,EAAIR,GAAKuB,EAAE,CAAC,EAAI,UAAY,EAC3C7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAIc,EAAI,CAACd,EAAII,GAAKyB,EAAE,CAAC,EAAI,WAAa,EAC5CvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAME,EAAIN,EAAI,CAACM,EAAIQ,GAAKe,EAAE,CAAC,EAAI,WAAa,EAC5CzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIE,EAAI,CAACF,EAAIJ,GAAK6B,EAAE,CAAC,EAAI,SAAW,EAC1Cf,GAAMA,GAAK,GAAKA,IAAM,IAAMV,EAAI,EAChCJ,IAAMc,EAAIV,EAAI,CAACU,EAAIR,GAAKuB,EAAE,CAAC,EAAI,WAAa,EAC5C7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAIc,EAAI,CAACd,EAAII,GAAKyB,EAAE,CAAC,EAAI,WAAa,EAC5CvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAME,EAAIN,EAAI,CAACM,EAAIQ,GAAKe,EAAE,EAAE,EAAI,MAAQ,EACxCzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIE,EAAI,CAACF,EAAIJ,GAAK6B,EAAE,EAAE,EAAI,WAAa,EAC7Cf,GAAMA,GAAK,GAAKA,IAAM,IAAMV,EAAI,EAChCJ,IAAMc,EAAIV,EAAI,CAACU,EAAIR,GAAKuB,EAAE,EAAE,EAAI,WAAa,EAC7C7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAIc,EAAI,CAACd,EAAII,GAAKyB,EAAE,EAAE,EAAI,SAAW,EAC3CvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAME,EAAIN,EAAI,CAACM,EAAIQ,GAAKe,EAAE,EAAE,EAAI,WAAa,EAC7CzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIE,EAAI,CAACF,EAAIJ,GAAK6B,EAAE,EAAE,EAAI,WAAa,EAC7Cf,GAAMA,GAAK,GAAKA,IAAM,IAAMV,EAAI,EAEhCJ,IAAMc,EAAIR,EAAIF,EAAI,CAACE,GAAKuB,EAAE,CAAC,EAAI,UAAY,EAC3C7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAII,EAAIU,EAAI,CAACV,GAAKyB,EAAE,CAAC,EAAI,WAAa,EAC5CvB,GAAMA,GAAK,EAAIA,IAAM,IAAMN,EAAI,EAC/BI,IAAME,EAAIQ,EAAId,EAAI,CAACc,GAAKe,EAAE,EAAE,EAAI,UAAY,EAC5CzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIJ,EAAIM,EAAI,CAACN,GAAK6B,EAAE,CAAC,EAAI,UAAY,EAC3Cf,GAAMA,GAAK,GAAKA,IAAM,IAAMV,EAAI,EAChCJ,IAAMc,EAAIR,EAAIF,EAAI,CAACE,GAAKuB,EAAE,CAAC,EAAI,UAAY,EAC3C7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAII,EAAIU,EAAI,CAACV,GAAKyB,EAAE,EAAE,EAAI,SAAW,EAC3CvB,GAAMA,GAAK,EAAIA,IAAM,IAAMN,EAAI,EAC/BI,IAAME,EAAIQ,EAAId,EAAI,CAACc,GAAKe,EAAE,EAAE,EAAI,UAAY,EAC5CzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIJ,EAAIM,EAAI,CAACN,GAAK6B,EAAE,CAAC,EAAI,UAAY,EAC3Cf,GAAMA,GAAK,GAAKA,IAAM,IAAMV,EAAI,EAChCJ,IAAMc,EAAIR,EAAIF,EAAI,CAACE,GAAKuB,EAAE,CAAC,EAAI,UAAY,EAC3C7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAII,EAAIU,EAAI,CAACV,GAAKyB,EAAE,EAAE,EAAI,WAAa,EAC7CvB,GAAMA,GAAK,EAAIA,IAAM,IAAMN,EAAI,EAC/BI,IAAME,EAAIQ,EAAId,EAAI,CAACc,GAAKe,EAAE,CAAC,EAAI,UAAY,EAC3CzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIJ,EAAIM,EAAI,CAACN,GAAK6B,EAAE,CAAC,EAAI,WAAa,EAC5Cf,GAAMA,GAAK,GAAKA,IAAM,IAAMV,EAAI,EAChCJ,IAAMc,EAAIR,EAAIF,EAAI,CAACE,GAAKuB,EAAE,EAAE,EAAI,WAAa,EAC7C7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAII,EAAIU,EAAI,CAACV,GAAKyB,EAAE,CAAC,EAAI,SAAW,EAC1CvB,GAAMA,GAAK,EAAIA,IAAM,IAAMN,EAAI,EAC/BI,IAAME,EAAIQ,EAAId,EAAI,CAACc,GAAKe,EAAE,CAAC,EAAI,WAAa,EAC5CzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIJ,EAAIM,EAAI,CAACN,GAAK6B,EAAE,EAAE,EAAI,WAAa,EAC7Cf,GAAMA,GAAK,GAAKA,IAAM,IAAMV,EAAI,EAEhCJ,IAAMc,EAAIV,EAAIE,GAAKuB,EAAE,CAAC,EAAI,OAAS,EACnC7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAIc,EAAIV,GAAKyB,EAAE,CAAC,EAAI,WAAa,EACvCvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAME,EAAIN,EAAIc,GAAKe,EAAE,EAAE,EAAI,WAAa,EACxCzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIE,EAAIN,GAAK6B,EAAE,EAAE,EAAI,SAAW,EACtCf,GAAMA,GAAK,GAAKA,IAAM,GAAKV,EAAI,EAC/BJ,IAAMc,EAAIV,EAAIE,GAAKuB,EAAE,CAAC,EAAI,WAAa,EACvC7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAIc,EAAIV,GAAKyB,EAAE,CAAC,EAAI,WAAa,EACvCvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAME,EAAIN,EAAIc,GAAKe,EAAE,CAAC,EAAI,UAAY,EACtCzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIE,EAAIN,GAAK6B,EAAE,EAAE,EAAI,WAAa,EACxCf,GAAMA,GAAK,GAAKA,IAAM,GAAKV,EAAI,EAC/BJ,IAAMc,EAAIV,EAAIE,GAAKuB,EAAE,EAAE,EAAI,UAAY,EACvC7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAIc,EAAIV,GAAKyB,EAAE,CAAC,EAAI,UAAY,EACtCvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAME,EAAIN,EAAIc,GAAKe,EAAE,CAAC,EAAI,UAAY,EACtCzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIE,EAAIN,GAAK6B,EAAE,CAAC,EAAI,SAAW,EACrCf,GAAMA,GAAK,GAAKA,IAAM,GAAKV,EAAI,EAC/BJ,IAAMc,EAAIV,EAAIE,GAAKuB,EAAE,CAAC,EAAI,UAAY,EACtC7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMN,EAAIc,EAAIV,GAAKyB,EAAE,EAAE,EAAI,UAAY,EACvCvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAME,EAAIN,EAAIc,GAAKe,EAAE,EAAE,EAAI,UAAY,EACvCzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMV,EAAIE,EAAIN,GAAK6B,EAAE,CAAC,EAAI,UAAY,EACtCf,GAAMA,GAAK,GAAKA,IAAM,GAAKV,EAAI,EAE/BJ,IAAMI,GAAKU,EAAI,CAACR,IAAMuB,EAAE,CAAC,EAAI,UAAY,EACzC7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMQ,GAAKd,EAAI,CAACI,IAAMyB,EAAE,CAAC,EAAI,WAAa,EAC1CvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAMJ,GAAKM,EAAI,CAACQ,IAAMe,EAAE,EAAE,EAAI,WAAa,EAC3CzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMR,GAAKF,EAAI,CAACJ,IAAM6B,EAAE,CAAC,EAAI,SAAW,EACxCf,GAAMA,GAAK,GAAIA,IAAM,IAAMV,EAAI,EAC/BJ,IAAMI,GAAKU,EAAI,CAACR,IAAMuB,EAAE,EAAE,EAAI,WAAa,EAC3C7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMQ,GAAKd,EAAI,CAACI,IAAMyB,EAAE,CAAC,EAAI,WAAa,EAC1CvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAMJ,GAAKM,EAAI,CAACQ,IAAMe,EAAE,EAAE,EAAI,QAAU,EACxCzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMR,GAAKF,EAAI,CAACJ,IAAM6B,EAAE,CAAC,EAAI,WAAa,EAC1Cf,GAAMA,GAAK,GAAIA,IAAM,IAAMV,EAAI,EAC/BJ,IAAMI,GAAKU,EAAI,CAACR,IAAMuB,EAAE,CAAC,EAAI,WAAa,EAC1C7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMQ,GAAKd,EAAI,CAACI,IAAMyB,EAAE,EAAE,EAAI,SAAW,EACzCvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAMJ,GAAKM,EAAI,CAACQ,IAAMe,EAAE,CAAC,EAAI,WAAa,EAC1CzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMR,GAAKF,EAAI,CAACJ,IAAM6B,EAAE,EAAE,EAAI,WAAa,EAC3Cf,GAAMA,GAAK,GAAIA,IAAM,IAAMV,EAAI,EAC/BJ,IAAMI,GAAKU,EAAI,CAACR,IAAMuB,EAAE,CAAC,EAAI,UAAY,EACzC7B,GAAMA,GAAK,EAAIA,IAAM,IAAMc,EAAI,EAC/BR,IAAMQ,GAAKd,EAAI,CAACI,IAAMyB,EAAE,EAAE,EAAI,WAAa,EAC3CvB,GAAMA,GAAK,GAAKA,IAAM,IAAMN,EAAI,EAChCI,IAAMJ,GAAKM,EAAI,CAACQ,IAAMe,EAAE,CAAC,EAAI,UAAY,EACzCzB,GAAMA,GAAK,GAAKA,IAAM,IAAME,EAAI,EAChCQ,IAAMR,GAAKF,EAAI,CAACJ,IAAM6B,EAAE,CAAC,EAAI,UAAY,EACzCf,GAAMA,GAAK,GAAKA,IAAM,IAAMV,EAAI,EAEhCY,EAAE,CAAC,EAAIhB,EAAIgB,EAAE,CAAC,EAAI,EAClBA,EAAE,CAAC,EAAIF,EAAIE,EAAE,CAAC,EAAI,EAClBA,EAAE,CAAC,EAAIZ,EAAIY,EAAE,CAAC,EAAI,EAClBA,EAAE,CAAC,EAAIV,EAAIU,EAAE,CAAC,EAAI,CAC1B,CAEI,SAASm8K,EAAOl9K,EAAG,CACf,IAAIm9K,EAAU,CAAE,EACZt9K,EAEJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACrBs9K,EAAQt9K,GAAK,CAAC,EAAIG,EAAE,WAAWH,CAAC,GAAKG,EAAE,WAAWH,EAAI,CAAC,GAAK,IAAMG,EAAE,WAAWH,EAAI,CAAC,GAAK,KAAOG,EAAE,WAAWH,EAAI,CAAC,GAAK,IAE3H,OAAOs9K,CACf,CAEI,SAASC,EAAar9K,EAAG,CACrB,IAAIo9K,EAAU,CAAE,EACZt9K,EAEJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACrBs9K,EAAQt9K,GAAK,CAAC,EAAIE,EAAEF,CAAC,GAAKE,EAAEF,EAAI,CAAC,GAAK,IAAME,EAAEF,EAAI,CAAC,GAAK,KAAOE,EAAEF,EAAI,CAAC,GAAK,IAE/E,OAAOs9K,CACf,CAEI,SAASE,EAAKr9K,EAAG,CACb,IAAIL,EAAIK,EAAE,OACNiiD,EAAQ,CAAC,WAAY,WAAY,YAAa,SAAS,EACvDpiD,EACAoyC,EACAxW,EACAo2E,EACA19F,EACA5C,EAEJ,IAAK1R,EAAI,GAAIA,GAAKF,EAAGE,GAAK,GACtBo9K,EAASh7H,EAAOi7H,EAAOl9K,EAAE,UAAUH,EAAI,GAAIA,CAAC,CAAC,CAAC,EAKlD,IAHAG,EAAIA,EAAE,UAAUH,EAAI,EAAE,EACtBoyC,EAASjyC,EAAE,OACXy7B,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjD57B,EAAI,EAAGA,EAAIoyC,EAAQpyC,GAAK,EACzB47B,EAAK57B,GAAK,CAAC,GAAKG,EAAE,WAAWH,CAAC,IAAOA,EAAI,GAAM,GAGnD,GADA47B,EAAK57B,GAAK,CAAC,GAAK,MAAUA,EAAI,GAAM,GAChCA,EAAI,GAEJ,IADAo9K,EAASh7H,EAAOxmB,CAAI,EACf57B,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACrB47B,EAAK57B,CAAC,EAAI,EAKlB,OAAAgyG,EAAMlyG,EAAI,EACVkyG,EAAMA,EAAI,SAAS,EAAE,EAAE,MAAM,gBAAgB,EAC7C19F,EAAK,SAAS09F,EAAI,CAAC,EAAG,EAAE,EACxBtgG,EAAK,SAASsgG,EAAI,CAAC,EAAG,EAAE,GAAK,EAE7Bp2E,EAAK,EAAE,EAAItnB,EACXsnB,EAAK,EAAE,EAAIlqB,EAEX0rK,EAASh7H,EAAOxmB,CAAI,EACbwmB,CACf,CAEI,SAASq7H,EAAWv9K,EAAG,CACnB,IAAIJ,EAAII,EAAE,OACNkiD,EAAQ,CAAC,WAAY,WAAY,YAAa,SAAS,EACvDpiD,EACAoyC,EACAxW,EACAo2E,EACA19F,EACA5C,EAEJ,IAAK1R,EAAI,GAAIA,GAAKF,EAAGE,GAAK,GACtBo9K,EAASh7H,EAAOm7H,EAAar9K,EAAE,SAASF,EAAI,GAAIA,CAAC,CAAC,CAAC,EAWvD,IAJAE,EAAKF,EAAI,GAAMF,EAAII,EAAE,SAASF,EAAI,EAAE,EAAI,IAAI,WAAW,CAAC,EAExDoyC,EAASlyC,EAAE,OACX07B,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACjD57B,EAAI,EAAGA,EAAIoyC,EAAQpyC,GAAK,EACzB47B,EAAK57B,GAAK,CAAC,GAAKE,EAAEF,CAAC,IAAOA,EAAI,GAAM,GAIxC,GADA47B,EAAK57B,GAAK,CAAC,GAAK,MAAUA,EAAI,GAAM,GAChCA,EAAI,GAEJ,IADAo9K,EAASh7H,EAAOxmB,CAAI,EACf57B,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACrB47B,EAAK57B,CAAC,EAAI,EAKlB,OAAAgyG,EAAMlyG,EAAI,EACVkyG,EAAMA,EAAI,SAAS,EAAE,EAAE,MAAM,gBAAgB,EAC7C19F,EAAK,SAAS09F,EAAI,CAAC,EAAG,EAAE,EACxBtgG,EAAK,SAASsgG,EAAI,CAAC,EAAG,EAAE,GAAK,EAE7Bp2E,EAAK,EAAE,EAAItnB,EACXsnB,EAAK,EAAE,EAAIlqB,EAEX0rK,EAASh7H,EAAOxmB,CAAI,EAEbwmB,CACf,CAEI,SAASs7H,EAAK59K,EAAG,CACb,IAAIK,EAAI,GACJiC,EACJ,IAAKA,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACpBjC,GAAKg9K,EAASr9K,GAAMsC,EAAI,EAAI,EAAM,EAAI,EAAI+6K,EAASr9K,GAAMsC,EAAI,EAAM,EAAI,EAE3E,OAAOjC,CACf,CAEI,SAASw9K,EAAIz8K,EAAG,CACZ,IAAIlB,EACJ,IAAKA,EAAI,EAAGA,EAAIkB,EAAE,OAAQlB,GAAK,EAC3BkB,EAAElB,CAAC,EAAI09K,EAAKx8K,EAAElB,CAAC,CAAC,EAEpB,OAAOkB,EAAE,KAAK,EAAE,CACxB,CAGQy8K,EAAIH,EAAK,OAAO,CAAC,EAgBjB,OAAO,YAAgB,KAAe,CAAC,YAAY,UAAU,OAC5D,UAAY,CACT,SAASI,EAAMzjJ,EAAKiY,EAAQ,CAGxB,OAFAjY,EAAOA,EAAM,GAAM,EAEfA,EAAM,EACC,KAAK,IAAIA,EAAMiY,EAAQ,CAAC,EAG5B,KAAK,IAAIjY,EAAKiY,CAAM,CAC3C,CAEY,YAAY,UAAU,MAAQ,SAAUzc,EAAM1hB,EAAI,CAC9C,IAAIm+B,EAAS,KAAK,WACdtzB,EAAQ8+J,EAAMjoJ,EAAMyc,CAAM,EAC1BrzB,EAAMqzB,EACN0jB,EACAgI,EACA+/G,EACAC,EAMJ,OAJI7pK,IAAOipK,IACPn+J,EAAM6+J,EAAM3pK,EAAIm+B,CAAM,GAGtBtzB,EAAQC,EACD,IAAI,YAAY,CAAC,GAG5B+2C,EAAM/2C,EAAMD,EACZg/C,EAAS,IAAI,YAAYhI,CAAG,EAC5B+nH,EAAc,IAAI,WAAW//G,CAAM,EAEnCggH,EAAc,IAAI,WAAW,KAAMh/J,EAAOg3C,CAAG,EAC7C+nH,EAAY,IAAIC,CAAW,EAEpBhgH,EACV,CACb,EAAY,EASR,SAASigH,EAAOz4I,EAAK,CACjB,MAAI,kBAAkB,KAAKA,CAAG,IAC1BA,EAAM,SAAS,mBAAmBA,CAAG,CAAC,GAGnCA,CACf,CAEI,SAAS04I,EAAoB14I,EAAK24I,EAAkB,CAChD,IAAI7rI,EAAS9M,EAAI,OACd44I,EAAO,IAAI,YAAY9rI,CAAM,EAC7Btf,EAAM,IAAI,WAAWorJ,CAAI,EACzBl+K,EAEH,IAAKA,EAAI,EAAGA,EAAIoyC,EAAQpyC,GAAK,EACzB8yB,EAAI9yB,CAAC,EAAIslC,EAAI,WAAWtlC,CAAC,EAG7B,OAAOi+K,EAAmBnrJ,EAAMorJ,CACxC,CAEI,SAASC,EAAoBD,EAAM,CAC/B,OAAO,OAAO,aAAa,MAAM,KAAM,IAAI,WAAWA,CAAI,CAAC,CACnE,CAEI,SAASE,EAAwBv8I,EAAO6jC,EAAQu4G,EAAkB,CAC9D,IAAI5iK,EAAS,IAAI,WAAWwmB,EAAM,WAAa6jC,EAAO,UAAU,EAEhE,OAAArqD,EAAO,IAAI,IAAI,WAAWwmB,CAAK,CAAC,EAChCxmB,EAAO,IAAI,IAAI,WAAWqqD,CAAM,EAAG7jC,EAAM,UAAU,EAEzBxmB,CAClC,CAEI,SAASgjK,EAAkBV,EAAK,CAC5B,IAAIvnH,EAAQ,CAAE,EACVhkB,EAASurI,EAAI,OACbz8K,EAEJ,IAAKA,EAAI,EAAGA,EAAIkxC,EAAS,EAAGlxC,GAAK,EAC7Bk1D,EAAM,KAAK,SAASunH,EAAI,OAAOz8K,EAAG,CAAC,EAAG,EAAE,CAAC,EAG7C,OAAO,OAAO,aAAa,MAAM,OAAQk1D,CAAK,CACtD,CAWI,SAASkoH,GAAW,CAEhB,KAAK,MAAO,CACpB,CAUI,OAAAA,EAAS,UAAU,OAAS,SAAUh5I,EAAK,CAGvC,YAAK,aAAay4I,EAAOz4I,CAAG,CAAC,EAEtB,IACV,EASDg5I,EAAS,UAAU,aAAe,SAAUjqC,EAAU,CAClD,KAAK,OAASA,EACd,KAAK,SAAWA,EAAS,OAEzB,IAAIjiG,EAAS,KAAK,MAAM,OACpBpyC,EAEJ,IAAKA,EAAI,GAAIA,GAAKoyC,EAAQpyC,GAAK,GAC3Bo9K,EAAS,KAAK,MAAOC,EAAO,KAAK,MAAM,UAAUr9K,EAAI,GAAIA,CAAC,CAAC,CAAC,EAGhE,YAAK,MAAQ,KAAK,MAAM,UAAUA,EAAI,EAAE,EAEjC,IACV,EAUDs+K,EAAS,UAAU,IAAM,SAAUttC,EAAK,CACpC,IAAIktC,EAAO,KAAK,MACZ9rI,EAAS8rI,EAAK,OACdl+K,EACA47B,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtDsrC,EAEJ,IAAKlnE,EAAI,EAAGA,EAAIoyC,EAAQpyC,GAAK,EACzB47B,EAAK57B,GAAK,CAAC,GAAKk+K,EAAK,WAAWl+K,CAAC,IAAOA,EAAI,GAAM,GAGtD,YAAK,QAAQ47B,EAAMwW,CAAM,EACzB80B,EAAMy2G,EAAI,KAAK,KAAK,EAEhB3sC,IACA9pE,EAAMm3G,EAAkBn3G,CAAG,GAG/B,KAAK,MAAO,EAELA,CACV,EAODo3G,EAAS,UAAU,MAAQ,UAAY,CACnC,YAAK,MAAQ,GACb,KAAK,QAAU,EACf,KAAK,MAAQ,CAAC,WAAY,WAAY,YAAa,SAAS,EAErD,IACV,EAODA,EAAS,UAAU,SAAW,UAAY,CACtC,MAAO,CACH,KAAM,KAAK,MACX,OAAQ,KAAK,QACb,KAAM,KAAK,MAAM,MAAK,CACzB,CACJ,EASDA,EAAS,UAAU,SAAW,SAAUl8H,EAAO,CAC3C,YAAK,MAAQA,EAAM,KACnB,KAAK,QAAUA,EAAM,OACrB,KAAK,MAAQA,EAAM,KAEZ,IACV,EAMDk8H,EAAS,UAAU,QAAU,UAAY,CACrC,OAAO,KAAK,MACZ,OAAO,KAAK,MACZ,OAAO,KAAK,OACf,EAQDA,EAAS,UAAU,QAAU,SAAU1iJ,EAAMwW,EAAQ,CACjD,IAAIpyC,EAAIoyC,EACJ4/D,EACA19F,EACA5C,EAGJ,GADAkqB,EAAK57B,GAAK,CAAC,GAAK,MAAUA,EAAI,GAAM,GAChCA,EAAI,GAEJ,IADAo9K,EAAS,KAAK,MAAOxhJ,CAAI,EACpB57B,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACrB47B,EAAK57B,CAAC,EAAI,EAMlBgyG,EAAM,KAAK,QAAU,EACrBA,EAAMA,EAAI,SAAS,EAAE,EAAE,MAAM,gBAAgB,EAC7C19F,EAAK,SAAS09F,EAAI,CAAC,EAAG,EAAE,EACxBtgG,EAAK,SAASsgG,EAAI,CAAC,EAAG,EAAE,GAAK,EAE7Bp2E,EAAK,EAAE,EAAItnB,EACXsnB,EAAK,EAAE,EAAIlqB,EACX0rK,EAAS,KAAK,MAAOxhJ,CAAI,CAC5B,EAWD0iJ,EAAS,KAAO,SAAUh5I,EAAK0rG,EAAK,CAGhC,OAAOstC,EAAS,WAAWP,EAAOz4I,CAAG,EAAG0rG,CAAG,CAC9C,EAUDstC,EAAS,WAAa,SAAUpyD,EAAS8kB,EAAK,CAC1C,IAAI5/G,EAAOosJ,EAAKtxD,CAAO,EACnBhlD,EAAMy2G,EAAIvsJ,CAAI,EAElB,OAAO4/G,EAAMqtC,EAAkBn3G,CAAG,EAAIA,CACzC,EASDo3G,EAAS,YAAc,UAAY,CAE/B,KAAK,MAAO,CACf,EASDA,EAAS,YAAY,UAAU,OAAS,SAAUxrJ,EAAK,CACnD,IAAIorJ,EAAOE,EAAwB,KAAK,MAAM,OAAQtrJ,CAAS,EAC3Dsf,EAAS8rI,EAAK,OACdl+K,EAIJ,IAFA,KAAK,SAAW8yB,EAAI,WAEf9yB,EAAI,GAAIA,GAAKoyC,EAAQpyC,GAAK,GAC3Bo9K,EAAS,KAAK,MAAOG,EAAaW,EAAK,SAASl+K,EAAI,GAAIA,CAAC,CAAC,CAAC,EAG/D,YAAK,MAASA,EAAI,GAAMoyC,EAAS,IAAI,WAAW8rI,EAAK,OAAO,MAAMl+K,EAAI,EAAE,CAAC,EAAI,IAAI,WAAW,CAAC,EAEtF,IACV,EAUDs+K,EAAS,YAAY,UAAU,IAAM,SAAUttC,EAAK,CAChD,IAAIktC,EAAO,KAAK,MACZ9rI,EAAS8rI,EAAK,OACdtiJ,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EACtD57B,EACAknE,EAEJ,IAAKlnE,EAAI,EAAGA,EAAIoyC,EAAQpyC,GAAK,EACzB47B,EAAK57B,GAAK,CAAC,GAAKk+K,EAAKl+K,CAAC,IAAOA,EAAI,GAAM,GAG3C,YAAK,QAAQ47B,EAAMwW,CAAM,EACzB80B,EAAMy2G,EAAI,KAAK,KAAK,EAEhB3sC,IACA9pE,EAAMm3G,EAAkBn3G,CAAG,GAG/B,KAAK,MAAO,EAELA,CACV,EAODo3G,EAAS,YAAY,UAAU,MAAQ,UAAY,CAC/C,YAAK,MAAQ,IAAI,WAAW,CAAC,EAC7B,KAAK,QAAU,EACf,KAAK,MAAQ,CAAC,WAAY,WAAY,YAAa,SAAS,EAErD,IACV,EAODA,EAAS,YAAY,UAAU,SAAW,UAAY,CAClD,IAAIl8H,EAAQk8H,EAAS,UAAU,SAAS,KAAK,IAAI,EAGjD,OAAAl8H,EAAM,KAAO+7H,EAAoB/7H,EAAM,IAAI,EAEpCA,CACV,EASDk8H,EAAS,YAAY,UAAU,SAAW,SAAUl8H,EAAO,CAEvD,OAAAA,EAAM,KAAO47H,EAAoB57H,EAAM,KAAM,EAAI,EAE1Ck8H,EAAS,UAAU,SAAS,KAAK,KAAMl8H,CAAK,CACtD,EAEDk8H,EAAS,YAAY,UAAU,QAAUA,EAAS,UAAU,QAE5DA,EAAS,YAAY,UAAU,QAAUA,EAAS,UAAU,QAU5DA,EAAS,YAAY,KAAO,SAAUxrJ,EAAKk+G,EAAK,CAC5C,IAAI5/G,EAAOqsJ,EAAW,IAAI,WAAW3qJ,CAAG,CAAC,EACrCo0C,EAAMy2G,EAAIvsJ,CAAI,EAElB,OAAO4/G,EAAMqtC,EAAkBn3G,CAAG,EAAIA,CACzC,EAEMo3G,CACX,CAAC,kLC7uBD,OAAO,eAAeC,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAMhU,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eg0I,EAAc/zI,gBAAoB,EAIxC,IAAAg0I,EAAA,cAA8BlU,EAAuB,gBAAiB,CAClE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,IACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,GAAG,EAC/F,eAAe,IAAMt1C,MAAWs1C,EAA6B,WAAY4jG,EAAY,MAAMl5I,CAAG,CAAC,CAAC,EAChG,QAAS,CAC1B,CAAS,CACT,CACA,EACAi5I,uBAAA,gBAA0BG,iOCnB1B,OAAO,eAAeC,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMpU,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E+zI,EAAgD9zI,uBAAA,EAItD,IAAAm0I,EAAA,cAA0CrU,EAAuB,6BAA8B,CAC3F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,GAAG,EAC/D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI88K,EAAkB,eACrC,CACA,EACAI,mCAAA,4BAAsCE,wICpBtC,IAAI30I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,8PCf9D,OAAO,eAAeu0I,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMvU,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAu0I,EAAA,cAAkCxU,EAAuB,gBAAiB,CACtE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,QACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,OAAO,EACnG,YAAY,IAAMlW,MAAYkW,EAA6B,SAASlW,EAAK,WAAW,OAAO,CAAC,EAC5F,IAAI,CAACkW,EAA6B,QAAQ,QAAQ,EAAG,IAAM,CAAC,CAAC7V,CAAI,OAAU6V,EAA6B,SAAS7V,EAAK,WAAW,OAAO,CAAC,EACzI,QAAS,CAC1B,CAAS,CACT,CACA,EACA+5G,2BAAA,oBAA8BE,yPCnB9B,OAAO,eAAeC,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAM1U,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Es0I,EAAwDr0I,2BAAA,EAI9D,IAAAy0I,EAAA,cAA8C3U,EAAuB,6BAA8B,CAC/F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,OAAO,EACnE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIq9K,EAAsB,mBACzC,CACA,EACAG,uCAAA,gCAA0CE,4ICpB1C,IAAIj1I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uCAA4C,EAAE+D,CAAO,gPCflE,OAAO,eAAe60I,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAM7U,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA60I,EAAA,cAAgC9U,EAAuB,gBAAiB,CACpE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,MACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,KAAK,EACjG,YAAY,IAAMlW,MAAYkW,EAA6B,SAASlW,EAAK,WAAW,KAAK,CAAC,EAC1F,IAAI,CAACkW,EAA6B,QAAQ,QAAQ,EAAG,IAAM,CAAC,CAAClW,CAAI,OAAUkW,EAA6B,SAASlW,EAAK,WAAW,KAAK,CAAC,EACvI,QAAS,CAC1B,CAAS,CACT,CACA,EACA06G,yBAAA,kBAA4BE,6OCnB5B,OAAO,eAAeC,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAMhV,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E40I,EAAoD30I,yBAAA,EAI1D,IAAA+0I,EAAA,cAA4CjV,EAAuB,6BAA8B,CAC7F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI29K,EAAoB,iBACvC,CACA,EACAG,qCAAA,8BAAwCE,0ICpBxC,IAAIv1I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,+SCfhE,OAAO,eAAem1I,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMnV,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E8qI,EAAiB7qI,iBAAuB,EAC9C,IAAAk1I,EAAA,cAAyCpV,EAAuB,gBAAiB,CAC7E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,eACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,cAAc,EAC1G,WAAW,IAAM,CAACn/C,EAAMC,IAAU,IAAI45I,EAAe,UAAU75I,CAAI,EAAE,MAAMC,CAAK,EAAE,SAAU,CAAA,EAC5F,QAAS,CAC1B,CAAS,CACT,CACA,EACAgkJ,kCAAA,2BAAqCE,mSChBrC,OAAO,eAAeC,uCAAS,aAAc,CAAE,MAAO,GAAM,EACdA,uCAAA,uCAAG,OACjD,MAAMtV,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Ek1I,EAAsEj1I,kCAAA,EAI5E,IAAAq1I,EAAA,cAAqDvV,EAAuB,6BAA8B,CACtG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,cAAc,EAC1E,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIi+K,EAA6B,0BAChD,CACA,EACAG,8CAAA,uCAAiDE,mJCpBjD,IAAI71I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,8CAAmD,EAAE+D,CAAO,kOCfzE,OAAO,eAAey1I,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAMzV,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAAy1I,EAAA,cAA8B1V,EAAuB,gBAAiB,CAClE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,IACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,GAAG,EAC/F,QAAQ,IAAMzgD,MAAWygD,EAA6B,MAAM,CAACzgD,EAAI,WAAW,CAAC,EAC7E,QAAS,CAC1B,CAAS,CACT,CACA,EACA6lJ,uBAAA,gBAA0BE,iOCf1B,OAAO,eAAeC,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAM5V,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Ew1I,EAAgDv1I,uBAAA,EAItD,IAAA21I,EAAA,cAA0C7V,EAAuB,6BAA8B,CAC3F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,GAAG,EAC/D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIu+K,EAAkB,eACrC,CACA,EACAG,mCAAA,4BAAsCE,wICpBtC,IAAIn2I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,kOCf9D,OAAO,eAAe+1I,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAM/V,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDowC,EAA8EnwC,cAAA,EAIpF,IAAA81I,EAAA,cAA8BhW,EAAuB,gBAAiB,CAClE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,IACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,GAAG,EAAE,IAAI,CAAA,EAAIK,GAAY,IAAM,IAAIL,EAA6B,mBAAoBA,EAA6B,0BAA0B,CACxO,KAAMK,EAAS,QAAQ,QAAQnuC,EAAkB,cAAc,cAAc,EAC7E,SAAUmuC,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,eAAe,CAC5G,CAAa,CAAC,CAAC,EAAE,QAAS,CAC1B,CAAS,CACT,CACA,EACAwzI,uBAAA,gBAA0BE,iOCpB1B,OAAO,eAAeC,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMlW,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E81I,EAAgD71I,uBAAA,EAItD,IAAAi2I,EAAA,cAA0CnW,EAAuB,6BAA8B,CAC3F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,GAAG,EAC/D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI6+K,EAAkB,eACrC,CACA,EACAG,mCAAA,4BAAsCE,wICpBtC,IAAIz2I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,uPCf9D,OAAO,eAAeq2I,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMrW,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAq2I,EAAA,cAAiCtW,EAAuB,gBAAiB,CACrE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,OACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,MAAM,EAClG,QAAQ,IAAMjwB,GAAQA,EAAK,MAAM,EACjC,QAAS,CAC1B,CAAS,CACT,CACA,EACAi2H,0BAAA,mBAA6BE,mPClB7B,OAAO,eAAeC,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAMxW,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eo2I,EAAsDn2I,0BAAA,EAI5D,IAAAu2I,EAAA,cAA6CzW,EAAuB,6BAA8B,CAC9F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,MAAM,EAClE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIm/K,EAAqB,kBACxC,CACA,EACAG,sCAAA,+BAAyCE,2ICpBzC,IAAI/2I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,4QCfjE,OAAO,eAAe22I,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAM3W,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA22I,EAAA,cAAoC5W,EAAuB,gBAAiB,CACxE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,UACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,SAAS,EACrG,QAAQ,IAAMjwB,GAAQA,EAAK,SAAS,EACpC,QAAS,CAC1B,CAAS,CACT,CACA,EACAu2H,6BAAA,sBAAgCE,qQClBhC,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAM9W,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E02I,EAA4Dz2I,6BAAA,EAIlE,IAAA62I,EAAA,cAAgD/W,EAAuB,6BAA8B,CACjG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,SAAS,EACrE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIy/K,EAAwB,qBAC3C,CACA,EACAG,yCAAA,kCAA4CE,8ICpB5C,IAAIr3I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,yOCfpE,OAAO,eAAei3I,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAMjX,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAi3I,EAAA,cAA+BlX,EAAuB,gBAAiB,CACnE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,KACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,IAAI,EAChG,IAAI,CAAE,EAAE,IAAM,OAAUA,EAA6B,QAAQ,KAAK,QAAQ,CAAC,EAC3E,QAAS,CAC1B,CAAS,CACT,CACA,EACA4mG,wBAAA,iBAA2BE,uOClB3B,OAAO,eAAeC,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAMpX,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eg3I,EAAkD/2I,wBAAA,EAIxD,IAAAm3I,EAAA,cAA2CrX,EAAuB,6BAA8B,CAC5F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,IAAI,EAChE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI+/K,EAAmB,gBACtC,CACA,EACAG,oCAAA,6BAAuCE,yICpBvC,IAAI33I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oCAAyC,EAAE+D,CAAO,gPCf/D,OAAO,eAAeu3I,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAMvX,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAu3I,EAAA,MAAMC,WAA0BzX,EAAuB,gBAAiB,CACpE,aAAc,CACV,MAAM,CACF,MAAO,CAAC,EAAG,CAAC,EACZ,SAAU3vF,EAA6B,eAAe,MACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,KAAK,EACjG,cAAc,CAACA,EAA6B,UAAU,gBAAiBA,EAA6B,QAAQ,UAAU,EAAGonG,GAAkB,MAAM,EACjJ,eAAe,CAACpnG,EAA6B,UAAU,gBAAiBA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,UAAU,EAAGonG,GAAkB,MAAM,EACnM,QAAS,CAC1B,CAAS,CACT,CACI,OAAO,QAAS,CACZ,MAAO,CAAChmK,EAAMwpC,OAAgBo1B,EAA6B,MAAMonG,GAAkB,QAAQhmK,EAAMwpC,CAAO,CAAC,CACjH,CACI,OAAO,QAAS,CACZ,MAAO,CAACxpC,EAAMwpC,EAAS+6B,OAAc3F,EAA6B,MAAMonG,GAAkB,QAAQhmK,EAAMwpC,EAAS+6B,CAAK,CAAC,CAC/H,CAGI,OAAO,QAAQvkE,EAAMwpC,EAAS+6B,EAAQ,GAAI,CAWtC,OAAAA,EAAQyhG,GAAkB,WAAWzhG,CAAK,EACtCA,EAAM,SAAS,GAAG,IAClB/6B,EAAUw8H,GAAkB,MAAMx8H,CAAO,GAEzC+6B,EAAM,SAAS,GAAG,IAClB/6B,EAAUw8H,GAAkB,MAAMx8H,CAAO,GAEjC,IAAI,OAAOA,EAAS+6B,EAAM,WAAW,SAAU,EAAE,CAAC,EACnD,KAAKvkE,CAAI,CAC5B,CACI,OAAO,WAAWukE,EAAO,CAErB,GAAI,CAAC,cAAc,KAAKA,CAAK,EACzB,MAAM,IAAI,MAAM,eAAe,EAEnC,MAAM0hG,EAAgB,CAAC,GAAG1hG,CAAK,EAC1B,KAAK,CAACtlE,EAAO6H,EAAOy+B,IAASA,EAAK,QAAQtmC,CAAK,IAAM6H,CAAK,EAC/D,GAAIm/J,EACA,MAAM,IAAI,MAAM,mBAAmBA,CAAa,EAAE,EAGtD,OAAI1hG,GAAO,SAAS,GAAG,IACnBA,EAAQA,EAAM,WAAW,UAAW,EAAE,GAKnC,GAAGA,CAAK,GACvB,CACI,OAAO,MAAM/6B,EAAS,CAClB,GAAI,CAACA,EACD,OAAOA,EAGX,IAAIhsB,EAAOgsB,EAAQ,CAAC,EACpB,KAAO,CAAC,IAAU;AAAA,EAAU,KAAU,GAAQ,EAAE,SAAShsB,CAAI,GACzDgsB,EAAUA,EAAQ,MAAM,CAAC,EACzBhsB,EAAOgsB,EAAQ,CAAC,EAEpB,IAAI08H,EAAU1oJ,IAAS,IACvB,QAASx5B,EAAI,EAAGA,EAAIwlD,EAAQ,OAAQxlD,IAAK,CACrC,MAAMM,EAAIklD,EAAQxlD,CAAC,EACf,CAAC,IAAU;AAAA,EAAU,KAAU,GAAQ,EAAE,SAASM,CAAC,GAAK,CAAC4hL,GACzD18H,EAAUA,EAAQ,MAAM,EAAGxlD,CAAC,EAAIwlD,EAAQ,MAAMxlD,EAAI,CAAC,EACnDA,KAEKM,IAAM,KAAOk5B,IAAS,KAC3B0oJ,EAAU,GAEL5hL,IAAM,KAAOk5B,IAAS,OAC3B0oJ,EAAU,IAEd1oJ,EAAOl5B,CACnB,CACQ,OAAOklD,CACf,CACI,OAAO,MAAMA,EAAS,CAElB,OAAOA,EACF,WAAW,uBAAwB,MAAM,EACzC,WAAW,QAAS,KAAK,EACzB,WAAW,QAAS,KAAK,CACtC,CACA,EACAs8H,yBAAA,kBAA4BE,6OCrG5B,OAAO,eAAeG,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAM5X,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Es3I,EAAoDr3I,yBAAA,EAI1D,IAAA23I,EAAA,cAA4C7X,EAAuB,6BAA8B,CAC7F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIqgL,EAAoB,iBACvC,CACA,EACAK,qCAAA,8BAAwCE,0ICpBxC,IAAIn4I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,EAChED,EAAaE,yBAA8B,EAAED,CAAO,8PChBpD,OAAO,eAAe+3I,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMC,EAA4F/7I,cAAA,EAC5F+jI,EAAkE//H,cAAA,EAClEowC,EAA8EnwC,cAAA,EAIpF,IAAA+3I,EAAA,MAAMC,WAA4BlY,EAAuB,gBAAiB,CACtE,aAAc,CACV,MAAM,CACF,MAAO,CAAC,EAAG,CAAC,EACZ,SAAU3vF,EAA6B,eAAe,QACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,OAAO,EACnG,eAAe,CAACA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC33B,EAAKuC,EAASb,OAAoBi2B,EAA6B,QAAQ6nG,GAAoB,QAAQx/H,EAAKuC,EAASb,CAAW,CAAC,CAAC,EACzS,IAAI,CAACi2B,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC,CAAC33B,EAAKuC,EAASb,CAAW,IAAM,CACtM,MAAMtpC,EAASonK,GAAoB,QAAQx/H,EAAI,WAAYuC,EAAQ,WAAYb,EAAY,UAAU,EACrG,SAAWi2B,EAA6B,YAAYv/D,EAAQ4nC,EAAI,QAAQ,CAC3E,CAAA,EACI,kBAAkB,CAAC23B,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC33B,EAAKuC,EAASb,EAAa47B,OAAc3F,EAA6B,QAAQ6nG,GAAoB,QAAQx/H,EAAKuC,EAASb,EAAa47B,CAAK,CAAC,CAAC,EAC3W,IAAI,CAAC3F,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC,CAAC33B,EAAKuC,EAASb,EAAa47B,CAAK,IAAM,CAC9P,MAAMllE,EAASonK,GAAoB,QAAQx/H,EAAI,WAAYuC,EAAQ,WAAYb,EAAY,WAAY47B,EAAM,UAAU,EACvH,SAAW3F,EAA6B,YAAYv/D,EAAQ4nC,EAAI,QAAQ,CAC3E,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CAEI,OAAO,QAAQA,EAAKuC,EAASb,EAAa47B,EAAQ,GAAI,CAClD,OAAAA,EAAQgiG,EAAoC,kBAAkB,WAAWhiG,CAAK,EAC1EA,EAAM,SAAS,GAAG,IAClB/6B,EAAU+8H,EAAoC,kBAAkB,MAAM/8H,CAAO,GAE7E+6B,EAAM,SAAS,GAAG,EAClB/6B,EAAU+8H,EAAoC,kBAAkB,MAAM/8H,CAAO,EAG7Eb,EAAcA,EAAY,WAAW,KAAM,IAAM,IAAI,EAEzD47B,EAAQ,GAAGA,EAAM,WAAW,SAAU,EAAE,CAAC,IAClCt9B,EAAI,WAAW,IAAI,OAAOuC,EAAS+6B,CAAK,EAAG57B,CAAW,CACrE,CACA,EACA29H,2BAAA,oBAA8BG,yPC3C9B,OAAO,eAAeC,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAMnY,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E83I,EAAwD73I,2BAAA,EAI9D,IAAAk4I,EAAA,cAA8CpY,EAAuB,6BAA8B,CAC/F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,OAAO,EACnE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI6gL,EAAsB,mBACzC,CACA,EACAI,uCAAA,gCAA0CE,4ICpB1C,IAAI14I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uCAA4C,EAAE+D,CAAO,gPCflE,OAAO,eAAes4I,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAMtY,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAs4I,EAAA,cAAgCvY,EAAuB,gBAAiB,CACpE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,MACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,KAAK,EACjG,iBAAiB,IAAM9kB,GAAO,KAAK,MAAMA,CAAG,CAAC,EAC7C,QAAS,CAC1B,CAAS,CACT,CACA,EACA+sH,yBAAA,kBAA4BE,6OClB5B,OAAO,eAAeC,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAMzY,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eq4I,EAAoDp4I,yBAAA,EAI1D,IAAAw4I,EAAA,cAA4C1Y,EAAuB,6BAA8B,CAC7F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIohL,EAAoB,iBACvC,CACA,EACAG,qCAAA,8BAAwCE,0ICpBxC,IAAIh5I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,8PCfhE,OAAO,eAAe44I,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAM5Y,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA44I,EAAA,cAAkC7Y,EAAuB,gBAAiB,CACtE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,QACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,OAAO,EACnG,YAAY,IAAMlW,MAAYkW,EAA6B,SAASlW,EAAK,WAAW,OAAO,CAAC,EAC5F,IAAI,CAACkW,EAA6B,QAAQ,QAAQ,EAAG,IAAM,CAAC,CAAC7V,CAAI,OAAU6V,EAA6B,SAAS7V,EAAK,WAAW,OAAO,CAAC,EACzI,QAAS,CAC1B,CAAS,CACT,CACA,EACAo+G,2BAAA,oBAA8BE,yPCnB9B,OAAO,eAAeC,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAM/Y,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E24I,EAAwD14I,2BAAA,EAI9D,IAAA84I,EAAA,cAA8ChZ,EAAuB,6BAA8B,CAC/F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,OAAO,EACnE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI0hL,EAAsB,mBACzC,CACA,EACAG,uCAAA,gCAA0CE,4ICpB1C,IAAIt5I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uCAA4C,EAAE+D,CAAO,yOCflE,OAAO,eAAek5I,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAMlZ,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EgwB,EAAY/vB,YAAkB,EAIpC,IAAAi5I,EAAA,cAA+BnZ,EAAuB,gBAAiB,CACnE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,KACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,IAAI,EAChG,eAAe,IAAMt1C,MAAWs1C,EAA6B,WAAYpgB,EAAU,MAAI,EAAI,OAAOl1B,CAAG,EAAE,OAAO,KAAK,CAAC,CAAC,EACrH,QAAS,CAC1B,CAAS,CACT,CACA,EACAm+I,wBAAA,iBAA2BE,uOCnB3B,OAAO,eAAeC,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAMrZ,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Ei5I,EAAkDh5I,wBAAA,EAIxD,IAAAo5I,EAAA,cAA2CtZ,EAAuB,6BAA8B,CAC5F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,IAAI,EAChE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIgiL,EAAmB,gBACtC,CACA,EACAG,oCAAA,6BAAuCE,yICpBvC,IAAI55I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oCAAyC,EAAE+D,CAAO,uPCf/D,OAAO,eAAew5I,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMxZ,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EgwB,EAAY/vB,YAAkB,EAIpC,IAAAu5I,EAAA,cAAiCzZ,EAAuB,gBAAiB,CACrE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,OACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,MAAM,EAClG,eAAe,IAAMt1C,MAAWs1C,EAA6B,WAAYpgB,EAAU,QAAM,EAAI,OAAOl1B,CAAG,EAAE,OAAO,KAAK,CAAC,CAAC,EACvH,QAAS,CAC1B,CAAS,CACT,CACA,EACAy+I,0BAAA,mBAA6BE,mPCnB7B,OAAO,eAAeC,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAM3Z,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eu5I,EAAsDt5I,0BAAA,EAI5D,IAAA05I,EAAA,cAA6C5Z,EAAuB,6BAA8B,CAC9F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,MAAM,EAClE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIsiL,EAAqB,kBACxC,CACA,EACAG,sCAAA,+BAAyCE,2ICpBzC,IAAIl6I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,uPCfjE,OAAO,eAAe85I,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAM9Z,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EgwB,EAAY/vB,YAAkB,EAIpC,IAAA65I,EAAA,cAAiC/Z,EAAuB,gBAAiB,CACrE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,OACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,MAAM,EAClG,eAAe,IAAMt1C,MAAWs1C,EAA6B,WAAYpgB,EAAU,QAAM,EAAI,OAAOl1B,CAAG,EAAE,OAAO,KAAK,CAAC,CAAC,EACvH,QAAS,CAC1B,CAAS,CACT,CACA,EACA++I,0BAAA,mBAA6BE,mPCnB7B,OAAO,eAAeC,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAMja,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E65I,EAAsD55I,0BAAA,EAI5D,IAAAg6I,EAAA,cAA6Cla,EAAuB,6BAA8B,CAC9F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,MAAM,EAClE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI4iL,EAAqB,kBACxC,CACA,EACAG,sCAAA,+BAAyCE,2ICpBzC,IAAIx6I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,uPCfjE,OAAO,eAAeo6I,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMpa,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EgwB,EAAY/vB,YAAkB,EAIpC,IAAAm6I,EAAA,cAAiCra,EAAuB,gBAAiB,CACrE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,OACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,MAAM,EAClG,eAAe,IAAMt1C,MAAWs1C,EAA6B,WAAYpgB,EAAU,QAAM,EAAI,OAAOl1B,CAAG,EAAE,OAAO,KAAK,CAAC,CAAC,EACvH,QAAS,CAC1B,CAAS,CACT,CACA,EACAq/I,0BAAA,mBAA6BE,mPCnB7B,OAAO,eAAeC,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAMva,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Em6I,EAAsDl6I,0BAAA,EAI5D,IAAAs6I,EAAA,cAA6Cxa,EAAuB,6BAA8B,CAC9F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,MAAM,EAClE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIkjL,EAAqB,kBACxC,CACA,EACAG,sCAAA,+BAAyCE,2ICpBzC,IAAI96I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,qQCfjE,OAAO,eAAe06I,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAM1a,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA06I,EAAA,cAAmC3a,EAAuB,gBAAiB,CACvE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,SACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,QAAQ,EACpG,cAAc,CAACA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC/W,EAAMC,OAAa8W,EAA6B,QAAQ/W,EAAK,MAAMA,EAAK,QAAQC,CAAI,CAAC,EAAE,MAAMA,EAAK,MAAM,CAAC,CAAC,EACnO,SAAS,CAAC8W,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC/W,EAAMC,IAAS,CACzI,KAAM,CAAC2E,EAAIC,CAAE,EAAI,CAAC7E,EAAK,WAAYC,EAAK,UAAU,EAC5CjlB,EAAM4pB,EAAG,MAAMA,EAAG,QAAQC,CAAE,CAAC,EAAE,MAAMA,EAAG,MAAM,EACpD,OAAO7pB,GAAO,CAAC6pB,KAASkS,EAA6B,YAAY/7B,EAAKglB,EAAK,QAAQ,KAAQ+W,EAA6B,QAAQ/7B,CAAG,CACtI,CAAA,EACI,SAAS,CAAC+7B,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,eAAe,EAAG,IAAM,CAAC/W,EAAMC,IAAS,CAC9I,GAAID,EAAK,WAAaC,EAAK,SACvB,MAAM,IAAI8W,EAA6B,8BAA8B/W,EAAMC,CAAI,EAEnF,KAAM,CAAC2E,EAAIC,CAAE,EAAI,CAAC7E,EAAK,WAAYC,EAAK,UAAU,EAC5CjlB,EAAM4pB,EAAG,MAAMA,EAAG,QAAQC,CAAE,CAAC,EAAE,MAAMA,EAAG,MAAM,EACpD,OAAO7pB,GAAO,CAAC6pB,KAASkS,EAA6B,YAAY/7B,EAAKglB,EAAK,QAAQ,KAAQ+W,EAA6B,QAAQ/7B,CAAG,CACtI,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CACA,EACAomI,4BAAA,qBAA+BE,+PC/B/B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAM7a,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Ey6I,EAA0Dx6I,4BAAA,EAIhE,IAAA46I,EAAA,cAA+C9a,EAAuB,6BAA8B,CAChG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,QAAQ,EACpE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIwjL,EAAuB,oBAC1C,CACA,EACAG,wCAAA,iCAA2CE,6ICpB3C,IAAIp7I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,4QCfnE,OAAO,eAAeg7I,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMhb,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAg7I,EAAA,cAAoCjb,EAAuB,gBAAiB,CACxE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,UACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,SAAS,EACrG,cAAc,CAACA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC/W,EAAMC,OAAa8W,EAA6B,QAAQ/W,EAAK,MAAM,EAAG,KAAK,IAAI,EAAGA,EAAK,QAAQC,CAAI,CAAC,CAAC,CAAC,CAAC,EAChO,SAAS,CAAC8W,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC/W,EAAMC,IAAS,CACzI,KAAM,CAAC2E,EAAIC,CAAE,EAAI,CAAC7E,EAAK,WAAYC,EAAK,UAAU,EAC5CjlB,EAAMglB,EAAK,WAAW,MAAM,EAAG,KAAK,IAAI,EAAG4E,EAAG,QAAQC,CAAE,CAAC,CAAC,EAChE,OAAO7pB,GAAO,CAAC6pB,KAASkS,EAA6B,YAAY/7B,EAAKglB,EAAK,QAAQ,KAAQ+W,EAA6B,QAAQ/7B,CAAG,CACtI,CAAA,EACI,SAAS,CAAC+7B,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,eAAe,EAAG,IAAM,CAAC/W,EAAMC,IAAS,CAC9I,GAAID,EAAK,WAAaC,EAAK,SACvB,MAAM,IAAI8W,EAA6B,8BAA8B/W,EAAMC,CAAI,EAEnF,KAAM,CAAC2E,EAAIC,CAAE,EAAI,CAAC7E,EAAK,WAAYC,EAAK,UAAU,EAC5CjlB,EAAMglB,EAAK,WAAW,MAAM,EAAG,KAAK,IAAI,EAAG4E,EAAG,QAAQC,CAAE,CAAC,CAAC,EAChE,OAAO7pB,GAAO,CAAC6pB,KAASkS,EAA6B,YAAY/7B,EAAKglB,EAAK,QAAQ,KAAQ+W,EAA6B,QAAQ/7B,CAAG,CACtI,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CACA,EACA0mI,6BAAA,sBAAgCE,qQC/BhC,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAMnb,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E+6I,EAA4D96I,6BAAA,EAIlE,IAAAk7I,EAAA,cAAgDpb,EAAuB,6BAA8B,CACjG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,SAAS,EACrE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI8jL,EAAwB,qBAC3C,CACA,EACAG,yCAAA,kCAA4CE,8ICpB5C,IAAI17I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,gPCfpE,OAAO,eAAes7I,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAMtb,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDowC,EAA8EnwC,cAAA,EAIpF,IAAAq7I,EAAA,cAAgCvb,EAAuB,gBAAiB,CACpE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,MACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,KAAK,EAAE,IAAI,CAACA,EAA6B,QAAQ,WAAY,WAAW,EAAGK,GAAY,CAAC,CAAC31C,EAAK6d,CAAG,IAAM,CACpM,MAAM3R,EAAcypC,EAAS,QAAQ,QAAQnuC,EAAkB,cAAc,WAAW,EAClFg8B,EAAMt3B,EAAY,QAAQlM,EAAI,WAAYkM,EAAY,UAAU2R,EAAI,KAAK,CAAC,EAChF,OAAO,IAAIy3B,EAA6B,gBAAgBK,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,iBAAiB,CAAC,EACxI,iBAAiBg8B,CAAG,CAC5B,CAAA,EAAE,QAAS,CACxB,CAAS,CACT,CACA,EACA+8G,yBAAA,kBAA4BE,6OCtB5B,OAAO,eAAeC,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAMzb,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eq7I,EAAoDp7I,yBAAA,EAI1D,IAAAw7I,EAAA,cAA4C1b,EAAuB,6BAA8B,CAC7F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIokL,EAAoB,iBACvC,CACA,EACAG,qCAAA,8BAAwCE,0ICpBxC,IAAIh8I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,8PCfhE,OAAO,eAAe47I,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAM5b,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA47I,EAAA,cAAkC7b,EAAuB,gBAAiB,CACtE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,QACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,OAAO,EACnG,cAAc,CAACA,EAA6B,UAAU,gBAAiBA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC/W,EAAMC,OAAa8W,EAA6B,MAAM/W,EAAK,SAASC,CAAI,CAAC,CAAC,EAC1M,SAAS,CAAC8W,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,eAAe,EAAG,IAAM,CAAC/W,EAAMC,IAAS,CAC9I,GAAID,EAAK,WAAaC,EAAK,SACvB,MAAM,IAAI8W,EAA6B,8BAA8B/W,EAAMC,CAAI,EAEnF,SAAW8W,EAA6B,MAAM/W,EAAK,WAAW,SAASC,EAAK,UAAU,CAAC,CAC1F,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CACA,EACAqiH,2BAAA,oBAA8BE,yPCxB9B,OAAO,eAAeC,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAM/b,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E27I,EAAwD17I,2BAAA,EAI9D,IAAA87I,EAAA,cAA8Chc,EAAuB,6BAA8B,CAC/F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,OAAO,EACnE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI0kL,EAAsB,mBACzC,CACA,EACAG,uCAAA,gCAA0CE,4ICpB1C,IAAIt8I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uCAA4C,EAAE+D,CAAO,8PCflE,OAAO,eAAek8I,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMlc,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAk8I,EAAA,cAAkCnc,EAAuB,gBAAiB,CACtE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,QACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,OAAO,EACnG,cAAc,CAACA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAACzgD,EAAK5X,IAAa,IAAIq4D,EAA6B,kBAAkBzgD,EAAK5X,EAAS,aAAa,CAAC,EAC1N,QAAS,CAC1B,CAAS,CACT,CACA,EACAkkK,2BAAA,oBAA8BE,yPClB9B,OAAO,eAAeC,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAMrc,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Ei8I,EAAwDh8I,2BAAA,EAI9D,IAAAo8I,EAAA,cAA8Ctc,EAAuB,6BAA8B,CAC/F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,OAAO,EACnE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIglL,EAAsB,mBACzC,CACA,EACAG,uCAAA,gCAA0CE,4ICpB1C,IAAI58I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uCAA4C,EAAE+D,CAAO,uPCflE,OAAO,eAAew8I,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMxc,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAw8I,EAAA,cAAiCzc,EAAuB,gBAAiB,CACrE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,OACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,MAAM,EAClG,YAAY,IAAMt1C,MAAWs1C,EAA6B,SAAS,CAAC,GAAGt1C,EAAI,UAAU,EAAE,MAAM,CAAC,EAC9F,QAAS,CAC1B,CAAS,CACT,CACA,EACAyhJ,0BAAA,mBAA6BE,mPClB7B,OAAO,eAAeC,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAM3c,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eu8I,EAAsDt8I,0BAAA,EAI5D,IAAA08I,EAAA,cAA6C5c,EAAuB,6BAA8B,CAC9F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,MAAM,EAClE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIslL,EAAqB,kBACxC,CACA,EACAG,sCAAA,+BAAyCE,2ICpBzC,IAAIl9I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,4QCfjE,OAAO,eAAe88I,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAM9c,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAMpF,IAAA88I,EAAA,cAAoC/c,EAAuB,gBAAiB,CACxE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,UACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,SAAS,EACrG,cAAc,CAACA,EAA6B,UAAU,gBAAiBA,EAA6B,QAAQ,UAAU,EAAG,IAAM,CAAC/W,EAAMC,OAAa8W,EAA6B,MAAM/W,EAAK,WAAWC,CAAI,CAAC,CAAC,EAC5M,SAAS,CAAC8W,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,eAAe,EAAG,IAAM,CAAC/W,EAAMC,IAAS,CAC9I,GAAID,EAAK,WAAaC,EAAK,SACvB,MAAM,IAAI8W,EAA6B,8BAA8B/W,EAAMC,CAAI,EAEnF,SAAW8W,EAA6B,MAAM/W,EAAK,WAAW,WAAWC,EAAK,UAAU,CAAC,CAC5F,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CACA,EACAujH,6BAAA,sBAAgCE,qQC1BhC,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAMjd,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E68I,EAA4D58I,6BAAA,EAIlE,IAAAg9I,EAAA,cAAgDld,EAAuB,6BAA8B,CACjG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,SAAS,EACrE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI4lL,EAAwB,qBAC3C,CACA,EACAG,yCAAA,kCAA4CE,8ICpB5C,IAAIx9I,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,8LCfpE,OAAO,eAAe,IAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,IAAA,QAAkB,qICDlB,OAAO,eAAe,IAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,IAAA,QAAkB,oKCDlB,OAAO,eAAe,MAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAA,QAAkB,kRCDlB,OAAO,eAAeo9I,SAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAMC,EAAaphJ,aAAqB,EACxC,SAAS4zF,EAASytD,EAAM,CACpB,OAAO,OAAOA,GAAS,UAAYD,EAAW,QAAQ,KAAKC,CAAI,CACnE,CACAF,gBAAA,QAAkBvtD,4GCLlB,OAAO,eAAe0tD,MAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAMC,EAAgBvhJ,gBAAwB,EAC9C,SAASu5D,EAAM8nF,EAAM,CACjB,GAAI,IAAKE,EAAc,SAASF,CAAI,EAChC,MAAM,UAAU,cAAc,EAElC,IAAIhnL,EACJ,OAAO,WAAW,IAAIA,EAAI,SAASgnL,EAAK,MAAM,EAAG,CAAC,EAAG,EAAE,KAAO,GAAKhnL,IAAM,GAAM,IAAOA,IAAM,EAAK,IAAMA,EAAI,KAAOA,EAAI,SAASgnL,EAAK,MAAM,EAAG,EAAE,EAAG,EAAE,KAAO,EAAGhnL,EAAI,KAAOA,EAAI,SAASgnL,EAAK,MAAM,GAAI,EAAE,EAAG,EAAE,KAAO,EAAGhnL,EAAI,KAAOA,EAAI,SAASgnL,EAAK,MAAM,GAAI,EAAE,EAAG,EAAE,KAAO,EAAGhnL,EAAI,KAAQA,EAAI,SAASgnL,EAAK,MAAM,GAAI,EAAE,EAAG,EAAE,GAAK,cAAiB,IAAOhnL,EAAI,WAAe,IAAOA,IAAM,GAAM,IAAOA,IAAM,GAAM,IAAOA,IAAM,EAAK,IAAMA,EAAI,GAAI,CACvb,CACAinL,aAAA,QAAkB/nF,0ICTlB,OAAO,eAAeioF,UAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,UAAA,gBAAG,OAC1B,MAAMD,EAAgBvhJ,gBAAwB,EACxCyhJ,EAAY,CAAE,EACpB,QAASjoL,EAAI,EAAGA,EAAI,IAAK,EAAEA,EACvBioL,EAAU,MAAMjoL,EAAI,KAAO,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,EAEpD,SAASkoL,EAAgBp1J,EAAKjV,EAAS,EAAG,CACtC,OAAQoqK,EAAUn1J,EAAIjV,EAAS,CAAC,CAAC,EAC7BoqK,EAAUn1J,EAAIjV,EAAS,CAAC,CAAC,EACzBoqK,EAAUn1J,EAAIjV,EAAS,CAAC,CAAC,EACzBoqK,EAAUn1J,EAAIjV,EAAS,CAAC,CAAC,EACzB,IACAoqK,EAAUn1J,EAAIjV,EAAS,CAAC,CAAC,EACzBoqK,EAAUn1J,EAAIjV,EAAS,CAAC,CAAC,EACzB,IACAoqK,EAAUn1J,EAAIjV,EAAS,CAAC,CAAC,EACzBoqK,EAAUn1J,EAAIjV,EAAS,CAAC,CAAC,EACzB,IACAoqK,EAAUn1J,EAAIjV,EAAS,CAAC,CAAC,EACzBoqK,EAAUn1J,EAAIjV,EAAS,CAAC,CAAC,EACzB,IACAoqK,EAAUn1J,EAAIjV,EAAS,EAAE,CAAC,EAC1BoqK,EAAUn1J,EAAIjV,EAAS,EAAE,CAAC,EAC1BoqK,EAAUn1J,EAAIjV,EAAS,EAAE,CAAC,EAC1BoqK,EAAUn1J,EAAIjV,EAAS,EAAE,CAAC,EAC1BoqK,EAAUn1J,EAAIjV,EAAS,EAAE,CAAC,EAC1BoqK,EAAUn1J,EAAIjV,EAAS,EAAE,CAAC,GAAG,YAAa,CAClD,CACAmqK,UAAA,gBAA0BE,EAC1B,SAASn5B,EAAUj8H,EAAKjV,EAAS,EAAG,CAChC,MAAMgqK,EAAOK,EAAgBp1J,EAAKjV,CAAM,EACxC,GAAI,IAAKkqK,EAAc,SAASF,CAAI,EAChC,MAAM,UAAU,6BAA6B,EAEjD,OAAOA,CACX,CACAG,iBAAA,QAAkBj5B,gHCrClB,OAAO,eAAeo5B,IAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,IAAIC,EACJ,MAAMC,EAAQ,IAAI,WAAW,EAAE,EAC/B,SAASC,GAAM,CACX,GAAI,CAACF,EAAiB,CAClB,GAAI,OAAO,OAAW,KAAe,CAAC,OAAO,gBACzC,MAAM,IAAI,MAAM,0GAA0G,EAE9HA,EAAkB,OAAO,gBAAgB,KAAK,MAAM,CAC5D,CACI,OAAOA,EAAgBC,CAAK,CAChC,CACAF,WAAA,QAAkBG,wFCZlB,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,GAAA,cAAG,OACxB,MAAMC,EAAWhiJ,WAAmB,EAC9BmsH,EAAiBnoH,iBAAyB,EAC1Ci+I,EAAS,CAAE,EACjB,SAASjxC,EAAGz7H,EAASmK,EAAKrI,EAAQ,CAC9B,IAAIu4C,EACJ,MAAMsyH,EAAO3sK,GAAS,KAAO,GAC7B,GAAIA,EAAS,CACT,MAAM4sK,EAAc,OAAO,KAAK5sK,CAAO,EACnC4sK,EAAY,SAAW,GAAKA,EAAY,CAAC,IAAM,QAC/C5sK,EAAU,OAEtB,CACI,GAAIA,EACAq6C,EAAQwyH,EAAQ7sK,EAAQ,QAAUA,EAAQ,MAAO,MAAQysK,EAAS,SAAU,EAAEzsK,EAAQ,MAAOA,EAAQ,MAAOA,EAAQ,SAAUA,EAAQ,KAAMmK,EAAKrI,CAAM,MAEtJ,CACD,MAAMgrK,EAAM,KAAK,IAAK,EAChBC,KAAWN,EAAS,SAAU,EACpCO,EAAcN,EAAQI,EAAKC,CAAI,EAC/B1yH,EAAQwyH,EAAQE,EAAML,EAAO,MAAOA,EAAO,MAAOC,EAAO,OAAYD,EAAO,SAAUC,EAAO,OAAYD,EAAO,KAAMviK,EAAKrI,CAAM,CACzI,CACI,OAAOqI,MAAWysI,EAAe,iBAAiBv8F,CAAK,CAC3D,CACA,SAAS2yH,EAAc3mI,EAAOymI,EAAKC,EAAM,CACrC,OAAA1mI,EAAM,QAANA,EAAM,MAAU,MAChBA,EAAM,QAANA,EAAM,MAAU,GACZymI,IAAQzmI,EAAM,OACdA,EAAM,QACFA,EAAM,OAAS,MACfA,EAAM,KAAO,OACbA,EAAM,MAAQ,IAGbymI,EAAMzmI,EAAM,MACjBA,EAAM,MAAQ,EAETymI,EAAMzmI,EAAM,QACjBA,EAAM,KAAO,QAEZA,EAAM,OACPA,EAAM,KAAO0mI,EAAK,MAAM,GAAI,EAAE,EAC9B1mI,EAAM,KAAK,CAAC,GAAK,EACjBA,EAAM,UAAa0mI,EAAK,CAAC,GAAK,EAAKA,EAAK,CAAC,GAAK,OAElD1mI,EAAM,MAAQymI,EACPzmI,CACX,CACAmmI,GAAA,cAAwBQ,EACxB,SAASH,EAAQE,EAAME,EAAOC,EAAOC,EAAUztK,EAAMyK,EAAKrI,EAAS,EAAG,CAClE,GAAIirK,EAAK,OAAS,GACd,MAAM,IAAI,MAAM,mCAAmC,EAEvD,GAAI,CAAC5iK,EACDA,EAAM,IAAI,WAAW,EAAE,EACvBrI,EAAS,UAGLA,EAAS,GAAKA,EAAS,GAAKqI,EAAI,OAChC,MAAM,IAAI,WAAW,mBAAmBrI,CAAM,IAAIA,EAAS,EAAE,0BAA0B,EAG/FmrK,MAAU,KAAK,IAAK,GACpBC,MAAU,GACVC,OAAeJ,EAAK,CAAC,GAAK,EAAKA,EAAK,CAAC,GAAK,OAC1CrtK,MAASqtK,EAAK,MAAM,GAAI,EAAE,GAC1BE,GAAS,YACT,MAAMG,IAAOH,EAAQ,WAAa,IAAQC,GAAS,WACnD/iK,EAAIrI,GAAQ,EAAKsrK,IAAO,GAAM,IAC9BjjK,EAAIrI,GAAQ,EAAKsrK,IAAO,GAAM,IAC9BjjK,EAAIrI,GAAQ,EAAKsrK,IAAO,EAAK,IAC7BjjK,EAAIrI,GAAQ,EAAIsrK,EAAK,IACrB,MAAMC,EAAQJ,EAAQ,WAAe,IAAS,UAC9C9iK,EAAIrI,GAAQ,EAAKurK,IAAQ,EAAK,IAC9BljK,EAAIrI,GAAQ,EAAIurK,EAAM,IACtBljK,EAAIrI,GAAQ,EAAMurK,IAAQ,GAAM,GAAO,GACvCljK,EAAIrI,GAAQ,EAAKurK,IAAQ,GAAM,IAC/BljK,EAAIrI,GAAQ,EAAKqrK,IAAa,EAAK,IACnChjK,EAAIrI,GAAQ,EAAIqrK,EAAW,IAC3B,QAASppL,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACrBomB,EAAIrI,GAAQ,EAAIpC,EAAK3b,CAAC,EAE1B,OAAOomB,CACX,CACAqiK,UAAA,QAAkB/wC,qHCrFlB,OAAO,eAAe6xC,OAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAMC,EAAa9iJ,aAAqB,EAClCmsH,EAAiBnoH,iBAAyB,EAChD,SAAS++I,EAAO1B,EAAM,CAClB,MAAMe,EAAU,OAAOf,GAAS,YAAeyB,EAAW,SAASzB,CAAI,EAAIA,EACrE2B,EAAUC,EAAQb,CAAO,EAC/B,OAAO,OAAOf,GAAS,YAAel1B,EAAe,iBAAiB62B,CAAO,EAAIA,CACrF,CACAH,OAAA,QAAkBE,EAClB,SAASE,EAAQb,EAAS,CACtB,OAAO,WAAW,IAAKA,EAAQ,CAAC,EAAI,KAAS,EAAOA,EAAQ,CAAC,GAAK,EAAK,IAASA,EAAQ,CAAC,EAAI,KAAS,GAAOA,EAAQ,CAAC,EAAI,MAAS,GAAMA,EAAQ,CAAC,EAAI,KAAS,GAAOA,EAAQ,CAAC,EAAI,MAAS,GAAMA,EAAQ,CAAC,EAAI,KAAS,GAAOA,EAAQ,CAAC,EAAI,MAAS,GAAMA,EAAQ,CAAC,EAAI,KAAS,GAAOA,EAAQ,CAAC,EAAI,MAAS,GAAMA,EAAQ,CAAC,EAAI,KAAS,GAAOA,EAAQ,CAAC,EAAI,MAAS,EAAI,GAAQA,EAAQ,CAAC,EAAI,GAAOA,EAAQ,CAAC,EAAGA,EAAQ,CAAC,EAAGA,EAAQ,CAAC,EAAGA,EAAQ,EAAE,EAAGA,EAAQ,EAAE,EAAGA,EAAQ,EAAE,EAAGA,EAAQ,EAAE,EAAGA,EAAQ,EAAE,EAAGA,EAAQ,EAAE,CAAC,CAC3f,mHCXA,OAAO,eAAec,IAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,SAASC,EAAIvzH,EAAO,CAChB,MAAMwzH,EAAQC,EAAczzH,CAAK,EAC3B0zH,EAAWC,EAAWH,EAAOxzH,EAAM,OAAS,CAAC,EACnD,OAAO4zH,EAAcF,CAAQ,CACjC,CACA,SAASE,EAAc1oI,EAAO,CAC1B,MAAM8U,EAAQ,IAAI,WAAW9U,EAAM,OAAS,CAAC,EAC7C,QAASthD,EAAI,EAAGA,EAAIshD,EAAM,OAAS,EAAGthD,IAClCo2D,EAAMp2D,CAAC,EAAKshD,EAAMthD,GAAK,CAAC,IAAQA,EAAI,EAAK,EAAM,IAEnD,OAAOo2D,CACX,CACA,SAAS6zH,EAAgBC,EAAc,CACnC,OAAUA,EAAe,KAAQ,GAAM,GAAK,GAAK,CACrD,CACA,SAASH,EAAW7oL,EAAGi0B,EAAK,CACxB,MAAMg1J,EAAO,IAAI,YAAYF,EAAgB90J,CAAG,CAAC,EAAE,KAAK,CAAC,EACzDg1J,EAAK,IAAIjpL,CAAC,EACVipL,EAAKh1J,GAAO,CAAC,GAAK,KAAQA,EAAM,GAChCg1J,EAAKA,EAAK,OAAS,CAAC,EAAIh1J,EACxBj0B,EAAIipL,EACJ,IAAIjqL,EAAI,WACJc,EAAI,WACJV,EAAI,YACJE,EAAI,UACR,QAASR,EAAI,EAAGA,EAAIkB,EAAE,OAAQlB,GAAK,GAAI,CACnC,MAAMoqL,EAAOlqL,EACPmqL,EAAOrpL,EACPspL,EAAOhqL,EACPiqL,EAAO/pL,EACbN,EAAIsqL,EAAMtqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,CAAC,EAAG,EAAG,UAAU,EACzCQ,EAAIgqL,EAAMhqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CM,EAAIkqL,EAAMlqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,CAAC,EAAG,GAAI,SAAS,EAC7CgB,EAAIwpL,EAAMxpL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,CAAC,EAAG,GAAI,WAAW,EAC/CE,EAAIsqL,EAAMtqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,CAAC,EAAG,EAAG,UAAU,EAC7CQ,EAAIgqL,EAAMhqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CM,EAAIkqL,EAAMlqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,CAAC,EAAG,GAAI,WAAW,EAC/CgB,EAAIwpL,EAAMxpL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,CAAC,EAAG,GAAI,SAAS,EAC7CE,EAAIsqL,EAAMtqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,CAAC,EAAG,EAAG,UAAU,EAC7CQ,EAAIgqL,EAAMhqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,CAAC,EAAG,GAAI,WAAW,EAC/CM,EAAIkqL,EAAMlqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,EAAE,EAAG,GAAI,MAAM,EAC3CgB,EAAIwpL,EAAMxpL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,EAAE,EAAG,GAAI,WAAW,EAChDE,EAAIsqL,EAAMtqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,EAAE,EAAG,EAAG,UAAU,EAC9CQ,EAAIgqL,EAAMhqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,EAAE,EAAG,GAAI,SAAS,EAC9CM,EAAIkqL,EAAMlqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,EAAE,EAAG,GAAI,WAAW,EAChDgB,EAAIwpL,EAAMxpL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,EAAE,EAAG,GAAI,UAAU,EAC/CE,EAAIuqL,EAAMvqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,CAAC,EAAG,EAAG,UAAU,EAC7CQ,EAAIiqL,EAAMjqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,CAAC,EAAG,EAAG,WAAW,EAC9CM,EAAImqL,EAAMnqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,EAAE,EAAG,GAAI,SAAS,EAC9CgB,EAAIypL,EAAMzpL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,CAAC,EAAG,GAAI,UAAU,EAC1CE,EAAIuqL,EAAMvqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,CAAC,EAAG,EAAG,UAAU,EAC7CQ,EAAIiqL,EAAMjqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,EAAE,EAAG,EAAG,QAAQ,EAC5CM,EAAImqL,EAAMnqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,EAAE,EAAG,GAAI,UAAU,EAC/CgB,EAAIypL,EAAMzpL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CE,EAAIuqL,EAAMvqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,CAAC,EAAG,EAAG,SAAS,EAC5CQ,EAAIiqL,EAAMjqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,EAAE,EAAG,EAAG,WAAW,EAC/CM,EAAImqL,EAAMnqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CgB,EAAIypL,EAAMzpL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CE,EAAIuqL,EAAMvqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,EAAE,EAAG,EAAG,WAAW,EAC/CQ,EAAIiqL,EAAMjqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,CAAC,EAAG,EAAG,SAAS,EAC5CM,EAAImqL,EAAMnqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CgB,EAAIypL,EAAMzpL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,EAAE,EAAG,GAAI,WAAW,EAChDE,EAAIwqL,EAAMxqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,CAAC,EAAG,EAAG,OAAO,EAC1CQ,EAAIkqL,EAAMlqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,CAAC,EAAG,GAAI,WAAW,EAC/CM,EAAIoqL,EAAMpqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,EAAE,EAAG,GAAI,UAAU,EAC/CgB,EAAI0pL,EAAM1pL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,EAAE,EAAG,GAAI,SAAS,EAC9CE,EAAIwqL,EAAMxqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,CAAC,EAAG,EAAG,WAAW,EAC9CQ,EAAIkqL,EAAMlqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CM,EAAIoqL,EAAMpqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CgB,EAAI0pL,EAAM1pL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,EAAE,EAAG,GAAI,WAAW,EAChDE,EAAIwqL,EAAMxqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,EAAE,EAAG,EAAG,SAAS,EAC7CQ,EAAIkqL,EAAMlqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,CAAC,EAAG,GAAI,UAAU,EAC1CM,EAAIoqL,EAAMpqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CgB,EAAI0pL,EAAM1pL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,CAAC,EAAG,GAAI,QAAQ,EAC5CE,EAAIwqL,EAAMxqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,CAAC,EAAG,EAAG,UAAU,EAC7CQ,EAAIkqL,EAAMlqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,EAAE,EAAG,GAAI,UAAU,EAC/CM,EAAIoqL,EAAMpqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,EAAE,EAAG,GAAI,SAAS,EAC9CgB,EAAI0pL,EAAM1pL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CE,EAAIyqL,EAAMzqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,CAAC,EAAG,EAAG,UAAU,EACzCQ,EAAImqL,EAAMnqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CM,EAAIqqL,EAAMrqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,EAAE,EAAG,GAAI,WAAW,EAChDgB,EAAI2pL,EAAM3pL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,CAAC,EAAG,GAAI,SAAS,EAC7CE,EAAIyqL,EAAMzqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,EAAE,EAAG,EAAG,UAAU,EAC9CQ,EAAImqL,EAAMnqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,CAAC,EAAG,GAAI,WAAW,EAC/CM,EAAIqqL,EAAMrqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,EAAE,EAAG,GAAI,QAAQ,EAC7CgB,EAAI2pL,EAAM3pL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,CAAC,EAAG,GAAI,WAAW,EAC/CE,EAAIyqL,EAAMzqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,CAAC,EAAG,EAAG,UAAU,EAC7CQ,EAAImqL,EAAMnqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,EAAE,EAAG,GAAI,SAAS,EAC9CM,EAAIqqL,EAAMrqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,CAAC,EAAG,GAAI,WAAW,EAC/CgB,EAAI2pL,EAAM3pL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,EAAE,EAAG,GAAI,UAAU,EAC/CE,EAAIyqL,EAAMzqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAElB,EAAI,CAAC,EAAG,EAAG,UAAU,EAC7CQ,EAAImqL,EAAMnqL,EAAGN,EAAGc,EAAGV,EAAGY,EAAElB,EAAI,EAAE,EAAG,GAAI,WAAW,EAChDM,EAAIqqL,EAAMrqL,EAAGE,EAAGN,EAAGc,EAAGE,EAAElB,EAAI,CAAC,EAAG,GAAI,SAAS,EAC7CgB,EAAI2pL,EAAM3pL,EAAGV,EAAGE,EAAGN,EAAGgB,EAAElB,EAAI,CAAC,EAAG,GAAI,UAAU,EAC9CE,EAAI0qL,EAAQ1qL,EAAGkqL,CAAI,EACnBppL,EAAI4pL,EAAQ5pL,EAAGqpL,CAAI,EACnB/pL,EAAIsqL,EAAQtqL,EAAGgqL,CAAI,EACnB9pL,EAAIoqL,EAAQpqL,EAAG+pL,CAAI,CAC3B,CACI,OAAO,YAAY,GAAGrqL,EAAGc,EAAGV,EAAGE,CAAC,CACpC,CACA,SAASqpL,EAAcvoI,EAAO,CAC1B,GAAIA,EAAM,SAAW,EACjB,OAAO,IAAI,YAEf,MAAMla,EAAS,IAAI,YAAY6iJ,EAAgB3oI,EAAM,OAAS,CAAC,CAAC,EAAE,KAAK,CAAC,EACxE,QAASthD,EAAI,EAAGA,EAAIshD,EAAM,OAAQthD,IAC9BonC,EAAOpnC,GAAK,CAAC,IAAMshD,EAAMthD,CAAC,EAAI,MAAWA,EAAI,EAAK,EAEtD,OAAOonC,CACX,CACA,SAASwjJ,EAAQ1pL,EAAGH,EAAG,CACnB,MAAM8pL,GAAO3pL,EAAI,QAAWH,EAAI,OAEhC,OADaG,GAAK,KAAOH,GAAK,KAAO8pL,GAAO,KAC7B,GAAOA,EAAM,KAChC,CACA,SAASC,EAAch1H,EAAKo/D,EAAK,CAC7B,OAAQp/D,GAAOo/D,EAAQp/D,IAAS,GAAKo/D,CACzC,CACA,SAAS61D,EAAOxoL,EAAGrC,EAAGc,EAAGE,EAAGf,EAAGN,EAAG,CAC9B,OAAO+qL,EAAQE,EAAcF,EAAQA,EAAQ1qL,EAAGqC,CAAC,EAAGqoL,EAAQ1pL,EAAGrB,CAAC,CAAC,EAAGM,CAAC,EAAGa,CAAC,CAC7E,CACA,SAASwpL,EAAMtqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAGf,EAAGN,EAAG,CAChC,OAAOkrL,EAAQ/pL,EAAIV,EAAM,CAACU,EAAIR,EAAIN,EAAGc,EAAGE,EAAGf,EAAGN,CAAC,CACnD,CACA,SAAS4qL,EAAMvqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAGf,EAAGN,EAAG,CAChC,OAAOkrL,EAAQ/pL,EAAIR,EAAMF,EAAI,CAACE,EAAIN,EAAGc,EAAGE,EAAGf,EAAGN,CAAC,CACnD,CACA,SAAS6qL,EAAMxqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAGf,EAAGN,EAAG,CAChC,OAAOkrL,EAAO/pL,EAAIV,EAAIE,EAAGN,EAAGc,EAAGE,EAAGf,EAAGN,CAAC,CAC1C,CACA,SAAS8qL,EAAMzqL,EAAGc,EAAGV,EAAGE,EAAGU,EAAGf,EAAGN,EAAG,CAChC,OAAOkrL,EAAOzqL,GAAKU,EAAI,CAACR,GAAIN,EAAGc,EAAGE,EAAGf,EAAGN,CAAC,CAC7C,CACA6pL,WAAA,QAAkBC,oGCvIlB,OAAO,eAAeqB,IAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,IAAA,IAAcA,IAAW,IAAGA,IAAqB,cAAG,OACpD,MAAM1B,EAAa9iJ,aAAqB,EAClCmsH,EAAiBnoH,iBAAyB,EAChD,SAASygJ,EAAc3lJ,EAAK,CACxBA,EAAM,SAAS,mBAAmBA,CAAG,CAAC,EACtC,MAAM8wB,EAAQ,IAAI,WAAW9wB,EAAI,MAAM,EACvC,QAAStlC,EAAI,EAAGA,EAAIslC,EAAI,OAAQ,EAAEtlC,EAC9Bo2D,EAAMp2D,CAAC,EAAIslC,EAAI,WAAWtlC,CAAC,EAE/B,OAAOo2D,CACX,CACA40H,IAAA,cAAwBC,EACxBD,IAAA,IAAc,uCACdA,IAAA,IAAc,uCACd,SAASE,EAAIvpK,EAASyP,EAAMnW,EAAOqqJ,EAAWp/I,EAAKrI,EAAQ,CACvD,MAAMstK,EAAa,OAAOlwK,GAAU,SAAWgwK,EAAchwK,CAAK,EAAIA,EAChEmwK,EAAiB,OAAO9lB,GAAc,YAAegkB,EAAW,SAAShkB,CAAS,EAAIA,EAI5F,GAHI,OAAOA,GAAc,WACrBA,KAAgBgkB,EAAW,SAAShkB,CAAS,GAE7CA,GAAW,SAAW,GACtB,MAAM,UAAU,kEAAkE,EAEtF,IAAIlvG,EAAQ,IAAI,WAAW,GAAK+0H,EAAW,MAAM,EAMjD,GALA/0H,EAAM,IAAIg1H,CAAc,EACxBh1H,EAAM,IAAI+0H,EAAYC,EAAe,MAAM,EAC3Ch1H,EAAQhlC,EAAKglC,CAAK,EAClBA,EAAM,CAAC,EAAKA,EAAM,CAAC,EAAI,GAAQz0C,EAC/By0C,EAAM,CAAC,EAAKA,EAAM,CAAC,EAAI,GAAQ,IAC3BlwC,EAAK,CACLrI,EAASA,GAAU,EACnB,QAAS7d,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACtBkmB,EAAIrI,EAAS7d,CAAC,EAAIo2D,EAAMp2D,CAAC,EAE7B,OAAOkmB,CACf,CACI,SAAWysI,EAAe,iBAAiBv8F,CAAK,CACpD,CACA40H,WAAA,QAAkBE,gGCvClB,OAAO,eAAc3gJ,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAc,IAAAA,EAAA,IAAc,OAC5B,MAAM8gJ,EAAW7kJ,WAAmB,EAC9B8kJ,EAAW9gJ,WAAmB,EACpC,IAAI+gJ,EAAW/gJ,WAAmB,EAClC,OAAO,eAAeD,EAAS,MAAO,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOghJ,EAAS,GAAM,CAAA,CAAE,EACrG,OAAO,eAAehhJ,EAAS,MAAO,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOghJ,EAAS,GAAM,CAAA,CAAE,EACrG,SAASvzC,EAAG/8H,EAAOqqJ,EAAWp/I,EAAKrI,EAAQ,CACvC,SAAWytK,EAAS,SAAS,GAAMD,EAAS,QAASpwK,EAAOqqJ,EAAWp/I,EAAKrI,CAAM,CACtF,CACAm6H,EAAG,IAAMszC,EAAS,IAClBtzC,EAAG,IAAMszC,EAAS,IAClB/gJ,EAAA,QAAkBytG,iICZlB,OAAO,eAAe,OAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAMwzC,EAAa,OAAO,OAAW,KAAe,OAAO,YAAc,OAAO,WAAW,KAAK,MAAM,EACvF,cAAA,QAAG,CAAE,WAAAA,CAAY,2FCFhC,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAMC,EAAcllJ,cAAsB,EACpCgiJ,EAAWh+I,WAAmB,EAC9BmoH,EAAiBloH,iBAAyB,EAChD,SAASkhJ,EAAG5vK,EAASmK,EAAKrI,EAAQ,CAC9B,GAAI6tK,EAAY,QAAQ,YAAc,CAACxlK,GAAO,CAACnK,EAC3C,OAAO2vK,EAAY,QAAQ,WAAY,EAE3C3vK,EAAUA,GAAW,CAAE,EACvB,MAAM+sK,EAAO/sK,EAAQ,QAAUA,EAAQ,YAAeysK,EAAS,SAAU,EACzE,GAAIM,EAAK,OAAS,GACd,MAAM,IAAI,MAAM,mCAAmC,EAIvD,GAFAA,EAAK,CAAC,EAAKA,EAAK,CAAC,EAAI,GAAQ,GAC7BA,EAAK,CAAC,EAAKA,EAAK,CAAC,EAAI,GAAQ,IACzB5iK,EAAK,CAEL,GADArI,EAASA,GAAU,EACfA,EAAS,GAAKA,EAAS,GAAKqI,EAAI,OAChC,MAAM,IAAI,WAAW,mBAAmBrI,CAAM,IAAIA,EAAS,EAAE,0BAA0B,EAE3F,QAAS7d,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACtBkmB,EAAIrI,EAAS7d,CAAC,EAAI8oL,EAAK9oL,CAAC,EAE5B,OAAOkmB,CACf,CACI,SAAWysI,EAAe,iBAAiBm2B,CAAI,CACnD,CACA2C,UAAA,QAAkBE,+GC3BlB,OAAO,eAAeC,KAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,SAASnrL,EAAEN,EAAGe,EAAGH,EAAG2B,EAAG,CACnB,OAAQvC,EAAC,CACL,IAAK,GACD,OAAQe,EAAIH,EAAM,CAACG,EAAIwB,EAC3B,IAAK,GACD,OAAOxB,EAAIH,EAAI2B,EACnB,IAAK,GACD,OAAQxB,EAAIH,EAAMG,EAAIwB,EAAM3B,EAAI2B,EACpC,IAAK,GACD,OAAOxB,EAAIH,EAAI2B,CAC3B,CACA,CACA,SAASmpL,EAAK3qL,EAAGpB,EAAG,CAChB,OAAQoB,GAAKpB,EAAMoB,IAAO,GAAKpB,CACnC,CACA,SAASgsL,EAAK11H,EAAO,CACjB,MAAMrzD,EAAI,CAAC,WAAY,WAAY,WAAY,UAAU,EACnDT,EAAI,CAAC,WAAY,WAAY,WAAY,UAAY,UAAU,EAC/DypL,EAAW,IAAI,WAAW31H,EAAM,OAAS,CAAC,EAChD21H,EAAS,IAAI31H,CAAK,EAClB21H,EAAS31H,EAAM,MAAM,EAAI,IACzBA,EAAQ21H,EACR,MAAM3rL,EAAIg2D,EAAM,OAAS,EAAI,EACvB90D,EAAI,KAAK,KAAKlB,EAAI,EAAE,EACpB4B,EAAI,IAAI,MAAMV,CAAC,EACrB,QAAStB,EAAI,EAAGA,EAAIsB,EAAG,EAAEtB,EAAG,CACxB,MAAM8yB,EAAM,IAAI,YAAY,EAAE,EAC9B,QAAS1wB,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACtB0wB,EAAI1wB,CAAC,EACAg0D,EAAMp2D,EAAI,GAAKoC,EAAI,CAAC,GAAK,GACrBg0D,EAAMp2D,EAAI,GAAKoC,EAAI,EAAI,CAAC,GAAK,GAC7Bg0D,EAAMp2D,EAAI,GAAKoC,EAAI,EAAI,CAAC,GAAK,EAC9Bg0D,EAAMp2D,EAAI,GAAKoC,EAAI,EAAI,CAAC,EAEpCJ,EAAEhC,CAAC,EAAI8yB,CACf,CACI9wB,EAAEV,EAAI,CAAC,EAAE,EAAE,GAAM80D,EAAM,OAAS,GAAK,EAAK,KAAK,IAAI,EAAG,EAAE,EACxDp0D,EAAEV,EAAI,CAAC,EAAE,EAAE,EAAI,KAAK,MAAMU,EAAEV,EAAI,CAAC,EAAE,EAAE,CAAC,EACtCU,EAAEV,EAAI,CAAC,EAAE,EAAE,GAAM80D,EAAM,OAAS,GAAK,EAAK,WAC1C,QAASp2D,EAAI,EAAGA,EAAIsB,EAAG,EAAEtB,EAAG,CACxB,MAAMyC,EAAI,IAAI,YAAY,EAAE,EAC5B,QAAS5C,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACtB4C,EAAE5C,CAAC,EAAImC,EAAEhC,CAAC,EAAEH,CAAC,EAEjB,QAASA,EAAI,GAAIA,EAAI,GAAI,EAAEA,EACvB4C,EAAE5C,CAAC,EAAIgsL,EAAKppL,EAAE5C,EAAI,CAAC,EAAI4C,EAAE5C,EAAI,CAAC,EAAI4C,EAAE5C,EAAI,EAAE,EAAI4C,EAAE5C,EAAI,EAAE,EAAG,CAAC,EAE9D,IAAIK,EAAIoC,EAAE,CAAC,EACPtB,EAAIsB,EAAE,CAAC,EACPhC,EAAIgC,EAAE,CAAC,EACP9B,EAAI8B,EAAE,CAAC,EACP1C,EAAI0C,EAAE,CAAC,EACX,QAASzC,EAAI,EAAGA,EAAI,GAAI,EAAEA,EAAG,CACzB,MAAMM,EAAI,KAAK,MAAMN,EAAI,EAAE,EACrBsB,EAAK0qL,EAAK3rL,EAAG,CAAC,EAAIO,EAAEN,EAAGa,EAAGV,EAAGE,CAAC,EAAIZ,EAAImD,EAAE5C,CAAC,EAAIsC,EAAE5C,CAAC,IAAO,EAC7DD,EAAIY,EACJA,EAAIF,EACJA,EAAIurL,EAAK7qL,EAAG,EAAE,IAAM,EACpBA,EAAId,EACJA,EAAIiB,CAChB,CACQmB,EAAE,CAAC,EAAKA,EAAE,CAAC,EAAIpC,IAAO,EACtBoC,EAAE,CAAC,EAAKA,EAAE,CAAC,EAAItB,IAAO,EACtBsB,EAAE,CAAC,EAAKA,EAAE,CAAC,EAAIhC,IAAO,EACtBgC,EAAE,CAAC,EAAKA,EAAE,CAAC,EAAI9B,IAAO,EACtB8B,EAAE,CAAC,EAAKA,EAAE,CAAC,EAAI1C,IAAO,CAC9B,CACI,OAAO,WAAW,GAAG0C,EAAE,CAAC,GAAK,GAAIA,EAAE,CAAC,GAAK,GAAIA,EAAE,CAAC,GAAK,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,GAAK,GAAIA,EAAE,CAAC,GAAK,GAAIA,EAAE,CAAC,GAAK,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,GAAK,GAAIA,EAAE,CAAC,GAAK,GAAIA,EAAE,CAAC,GAAK,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,GAAK,GAAIA,EAAE,CAAC,GAAK,GAAIA,EAAE,CAAC,GAAK,EAAGA,EAAE,CAAC,EAAGA,EAAE,CAAC,GAAK,GAAIA,EAAE,CAAC,GAAK,GAAIA,EAAE,CAAC,GAAK,EAAGA,EAAE,CAAC,CAAC,CACpO,CACAspL,YAAA,QAAkBE,iGCtElB,OAAO,eAAcvhJ,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAc,IAAAA,EAAA,IAAc,OAC5B,MAAMyhJ,EAAYxlJ,YAAoB,EAChC8kJ,EAAW9gJ,WAAmB,EACpC,IAAI+gJ,EAAW/gJ,WAAmB,EAClC,OAAO,eAAeD,EAAS,MAAO,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOghJ,EAAS,GAAM,CAAA,CAAE,EACrG,OAAO,eAAehhJ,EAAS,MAAO,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOghJ,EAAS,GAAM,CAAA,CAAE,EACrG,SAASU,EAAGhxK,EAAOqqJ,EAAWp/I,EAAKrI,EAAQ,CACvC,SAAWytK,EAAS,SAAS,GAAMU,EAAU,QAAS/wK,EAAOqqJ,EAAWp/I,EAAKrI,CAAM,CACvF,CACAouK,EAAG,IAAMX,EAAS,IAClBW,EAAG,IAAMX,EAAS,IAClB/gJ,EAAA,QAAkB0hJ,mGCZlB,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAMv5B,EAAiBnsH,iBAAyB,EAC1C2lJ,EAAU3hJ,UAAkB,EAC5B4hJ,EAAc3hJ,cAAsB,EAC1C,SAAS4hJ,EAAGtwK,EAASmK,EAAKrI,EAAQ,CAC9B9B,MAAY,CAAE,GACd8B,MAAW,GACX,IAAIu4C,KAAY+1H,EAAQ,SAAS,CAAE,GAAGpwK,EAAS,IAAK,EAAM,EAAE,IAAI,WAAW,EAAE,CAAC,EAE9E,GADAq6C,KAAYg2H,EAAY,SAASh2H,CAAK,EAClClwC,EAAK,CACL,QAASlmB,EAAI,EAAGA,EAAI,GAAIA,IACpBkmB,EAAIrI,EAAS7d,CAAC,EAAIo2D,EAAMp2D,CAAC,EAE7B,OAAOkmB,CACf,CACI,SAAWysI,EAAe,iBAAiBv8F,CAAK,CACpD,CACA81H,UAAA,QAAkBG,qHCjBlB,OAAO,eAAeC,OAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAMhD,EAAa9iJ,aAAqB,EAClCmsH,EAAiBnoH,iBAAyB,EAChD,SAAS+hJ,EAAO1E,EAAM,CAClB,MAAM2B,EAAU,OAAO3B,GAAS,YAAeyB,EAAW,SAASzB,CAAI,EAAIA,EACrEe,EAAU4D,EAAQhD,CAAO,EAC/B,OAAO,OAAO3B,GAAS,YAAel1B,EAAe,iBAAiBi2B,CAAO,EAAIA,CACrF,CACA0D,OAAA,QAAkBC,EAClB,SAASC,EAAQhD,EAAS,CACtB,OAAO,WAAW,IAAKA,EAAQ,CAAC,EAAI,KAAS,EAAOA,EAAQ,CAAC,GAAK,EAAK,IAASA,EAAQ,CAAC,EAAI,KAAS,GAAOA,EAAQ,CAAC,EAAI,MAAS,GAAMA,EAAQ,CAAC,EAAI,KAAS,EAAMA,EAAQ,CAAC,EAAI,GAAOA,EAAQ,CAAC,GAAKA,EAAQ,CAAC,EAAI,KAAS,GAAOA,EAAQ,CAAC,EAAI,MAAS,GAAMA,EAAQ,CAAC,EAAI,KAAS,GAAOA,EAAQ,CAAC,EAAI,MAAS,EAAI,IAASA,EAAQ,CAAC,EAAI,MAAS,GAAMA,EAAQ,CAAC,EAAI,KAAS,GAAOA,EAAQ,CAAC,EAAI,MAAS,EAAIA,EAAQ,CAAC,EAAGA,EAAQ,CAAC,EAAGA,EAAQ,EAAE,EAAGA,EAAQ,EAAE,EAAGA,EAAQ,EAAE,EAAGA,EAAQ,EAAE,EAAGA,EAAQ,EAAE,EAAGA,EAAQ,EAAE,CAAC,CAC3f,uGCXA,OAAO,eAAeiD,GAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,GAAA,cAAG,OACxB,MAAMjE,EAAWhiJ,WAAmB,EAC9BmsH,EAAiBnoH,iBAAyB,EAC1Ci+I,EAAS,CAAE,EACjB,SAASiE,EAAG3wK,EAASmK,EAAKrI,EAAQ,CAC9B,IAAIu4C,EACJ,GAAIr6C,EACAq6C,EAAQu2H,EAAQ5wK,EAAQ,QAAUA,EAAQ,MAAG,MAAYysK,EAAS,SAAU,EAAEzsK,EAAQ,MAAOA,EAAQ,IAAKmK,EAAKrI,CAAM,MAEpH,CACD,MAAMgrK,EAAM,KAAK,IAAK,EAChBC,KAAWN,EAAS,SAAU,EACpCoE,EAAcnE,EAAQI,EAAKC,CAAI,EAC/B1yH,EAAQu2H,EAAQ7D,EAAML,EAAO,MAAOA,EAAO,IAAKviK,EAAKrI,CAAM,CACnE,CACI,OAAOqI,MAAWysI,EAAe,iBAAiBv8F,CAAK,CAC3D,CACA,SAASw2H,EAAcxqI,EAAOymI,EAAKC,EAAM,CACrC,OAAA1mI,EAAM,QAANA,EAAM,MAAU,MAChBA,EAAM,MAANA,EAAM,IAAQ,GACVymI,EAAMzmI,EAAM,OACZA,EAAM,IAAO0mI,EAAK,CAAC,GAAK,GAAOA,EAAK,CAAC,GAAK,GAAOA,EAAK,CAAC,GAAK,EAAKA,EAAK,CAAC,EACvE1mI,EAAM,MAAQymI,IAGdzmI,EAAM,IAAOA,EAAM,IAAM,EAAK,EAC1BA,EAAM,MAAQ,GACdA,EAAM,SAGPA,CACX,CACAqqI,GAAA,cAAwBG,EACxB,SAASD,EAAQ7D,EAAME,EAAOr4J,EAAKzK,EAAKrI,EAAS,EAAG,CAChD,GAAIirK,EAAK,OAAS,GACd,MAAM,IAAI,MAAM,mCAAmC,EAEvD,GAAI,CAAC5iK,EACDA,EAAM,IAAI,WAAW,EAAE,EACvBrI,EAAS,UAGLA,EAAS,GAAKA,EAAS,GAAKqI,EAAI,OAChC,MAAM,IAAI,WAAW,mBAAmBrI,CAAM,IAAIA,EAAS,EAAE,0BAA0B,EAG/F,OAAAmrK,MAAU,KAAK,IAAK,GACpBr4J,MAAUm4J,EAAK,CAAC,EAAI,KAAS,GAAOA,EAAK,CAAC,GAAK,GAAOA,EAAK,CAAC,GAAK,EAAKA,EAAK,CAAC,GAC5E5iK,EAAIrI,GAAQ,EAAKmrK,EAAQ,cAAiB,IAC1C9iK,EAAIrI,GAAQ,EAAKmrK,EAAQ,WAAe,IACxC9iK,EAAIrI,GAAQ,EAAKmrK,EAAQ,SAAa,IACtC9iK,EAAIrI,GAAQ,EAAKmrK,EAAQ,MAAW,IACpC9iK,EAAIrI,GAAQ,EAAKmrK,EAAQ,IAAS,IAClC9iK,EAAIrI,GAAQ,EAAImrK,EAAQ,IACxB9iK,EAAIrI,GAAQ,EAAI,IAAS8S,IAAQ,GAAM,GACvCzK,EAAIrI,GAAQ,EAAK8S,IAAQ,GAAM,IAC/BzK,EAAIrI,GAAQ,EAAI,IAAS8S,IAAQ,GAAM,GACvCzK,EAAIrI,GAAQ,EAAK8S,IAAQ,EAAK,IAC9BzK,EAAIrI,GAAQ,EAAM8S,GAAO,EAAK,IAASm4J,EAAK,EAAE,EAAI,EAClD5iK,EAAIrI,GAAQ,EAAIirK,EAAK,EAAE,EACvB5iK,EAAIrI,GAAQ,EAAIirK,EAAK,EAAE,EACvB5iK,EAAIrI,GAAQ,EAAIirK,EAAK,EAAE,EACvB5iK,EAAIrI,GAAQ,EAAIirK,EAAK,EAAE,EACvB5iK,EAAIrI,GAAQ,EAAIirK,EAAK,EAAE,EAChB5iK,CACX,CACAumK,UAAA,QAAkBC,+HCnElB,OAAO,eAAeG,UAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAM9E,EAAgBvhJ,gBAAwB,EAC9C,SAAS7kB,EAAQkmK,EAAM,CACnB,GAAI,IAAKE,EAAc,SAASF,CAAI,EAChC,MAAM,UAAU,cAAc,EAElC,OAAO,SAASA,EAAK,MAAM,GAAI,EAAE,EAAG,EAAE,CAC1C,CACAgF,iBAAA,QAAkBlrK,sICRlB,OAAO,eAAc4oB,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAA,QAAkBA,EAAmB,SAAAA,EAAA,GAAaA,EAAiB,OAAAA,EAAA,GAAaA,KAAaA,EAAa,GAAAA,EAAA,GAAaA,EAAiB,OAAAA,EAAA,GAAaA,EAAoB,UAAAA,EAAA,MAAgBA,EAAc,IAAAA,EAAA,IAAc,OACrN,IAAIuiJ,EAAWtmJ,WAAmB,EAClC,OAAO,eAAe+D,EAAS,MAAO,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOuiJ,EAAS,OAAU,CAAA,CAAE,EACzG,IAAIC,EAAWviJ,WAAmB,EAClC,OAAO,eAAeD,EAAS,MAAO,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOwiJ,EAAS,OAAU,CAAA,CAAE,EACzG,IAAIzD,EAAa7+I,aAAqB,EACtC,OAAO,eAAeF,EAAS,QAAS,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO++I,EAAW,OAAU,CAAA,CAAE,EAC7G,IAAI32B,EAAiBjoH,iBAAyB,EAC9C,OAAO,eAAeH,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOooH,EAAe,OAAU,CAAA,CAAE,EACrH,IAAIw5B,EAAUxhJ,UAAkB,EAChC,OAAO,eAAeJ,EAAS,KAAM,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO4hJ,EAAQ,OAAU,CAAA,CAAE,EACvG,IAAIC,EAAcxhJ,cAAsB,EACxC,OAAO,eAAeL,EAAS,SAAU,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO6hJ,EAAY,OAAU,CAAA,CAAE,EAC/G,IAAIY,EAAUniJ,UAAkB,EAChC,OAAO,eAAeN,EAAS,KAAM,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOyiJ,EAAQ,OAAU,CAAA,CAAE,EACvG,IAAIC,EAAUniJ,UAAkB,EAChC,OAAO,eAAeP,EAAS,KAAM,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO0iJ,EAAQ,OAAU,CAAA,CAAE,EACvG,IAAIC,EAAU/+I,UAAkB,EAChC,OAAO,eAAe5D,EAAS,KAAM,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2iJ,EAAQ,OAAU,CAAA,CAAE,EACvG,IAAIC,EAAU/+I,UAAkB,EAChC,OAAO,eAAe7D,EAAS,KAAM,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO4iJ,EAAQ,OAAU,CAAA,CAAE,EACvG,IAAIC,EAAc/+I,cAAsB,EACxC,OAAO,eAAe9D,EAAS,SAAU,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO6iJ,EAAY,OAAU,CAAA,CAAE,EAC/G,IAAIC,EAAU/+I,UAAkB,EAChC,OAAO,eAAe/D,EAAS,KAAM,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO8iJ,EAAQ,OAAU,CAAA,CAAE,EACvG,IAAItF,EAAgBx5I,gBAAwB,EAC5C,OAAO,eAAehE,EAAS,WAAY,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOw9I,EAAc,OAAU,CAAA,CAAE,EACnH,IAAIuF,EAAe9+I,eAAuB,EAC1C,OAAO,eAAejE,EAAS,UAAW,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO+iJ,EAAa,OAAQ,CAAI,CAAA,kMC7BjH,OAAO,eAAeC,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMhjB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eq9I,EAAsBp9I,kBAAA,EAI5B,IAAA+iJ,EAAA,cAAkCjjB,EAAuB,gBAAiB,CACtE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,QACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,OAAO,EACnG,IAAI,CAAE,EAAE,IAAM,OAAUA,EAA6B,QAAQitG,EAAK,IAAI,CAAC,EACvE,QAAS,CAC1B,CAAS,CACT,CACA,EACA0F,2BAAA,oBAA8BE,yPCnB9B,OAAO,eAAeC,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAMnjB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E+iJ,EAAwD9iJ,2BAAA,EAI9D,IAAAkjJ,EAAA,cAA8CpjB,EAAuB,6BAA8B,CAC/F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,OAAO,EACnE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI8rL,EAAsB,mBACzC,CACA,EACAG,uCAAA,gCAA0CE,4ICpB1C,IAAI1jJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uCAA4C,EAAE+D,CAAO,kOCflE,OAAO,eAAesjJ,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAMtjB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAsjJ,EAAA,cAA8BvjB,EAAuB,gBAAiB,CAClE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,IACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,GAAG,EAC/F,QAAQ,IAAMz3D,MAAYy3D,EAA6B,QAAQz3D,EAAK,KAAK,CAAC,EAC1E,QAAS,CAC1B,CAAS,CACT,CACA,EACA0qK,uBAAA,gBAA0BE,iOClB1B,OAAO,eAAeC,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMzjB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EqjJ,EAAgDpjJ,uBAAA,EAItD,IAAAwjJ,EAAA,cAA0C1jB,EAAuB,6BAA8B,CAC3F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,GAAG,EAC/D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIosL,EAAkB,eACrC,CACA,EACAG,mCAAA,4BAAsCE,wICpBtC,IAAIhkJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,uPCf9D,OAAO,eAAe4jJ,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAM5jB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA4jJ,EAAA,cAAiC7jB,EAAuB,gBAAiB,CACrE,aAAc,CACV,MAAM,CACF,MAAO,CAAC,EAAG,CAAC,EACZ,SAAU3vF,EAA6B,eAAe,OACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,MAAM,EAClG,cAAc,CAACA,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,WAAW,EAAG,IAAM,CAACj+D,EAAQ0xK,OAAoBzzG,EAA6B,QAAQ,CAAC,GAAGj+D,CAAM,EAAE,MAAM0xK,EAAc,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EACvO,SAAS,CAACzzG,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,WAAW,EAAG,IAAM,CAACj+D,EAAQ0xK,IAAgB,CACnJ,MAAMxvI,EAAM,CAAC,GAAGliC,EAAO,UAAU,EAAE,MAAM0xK,EAAY,WAAa,CAAC,EAAE,KAAK,EAAE,EAC5E,SAAWzzG,EAA6B,YAAY/7B,EAAKliC,EAAO,QAAQ,CAC3E,CAAA,EACI,eAAe,CAACi+D,EAA6B,QAAQ,WAAYA,EAA6B,QAAQ,YAAaA,EAA6B,QAAQ,WAAW,EAAG,IAAM,CAACj+D,EAAQ0xK,EAAaj8I,OAAewoC,EAA6B,QAAQ,CAAC,GAAGj+D,CAAM,EAAE,MAAM0xK,EAAc,EAAGj8I,EAASi8I,EAAc,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAC5T,UAAU,CAACzzG,EAA6B,QAAQ,gBAAiBA,EAA6B,QAAQ,YAAaA,EAA6B,QAAQ,WAAW,EAAG,IAAM,CAACj+D,EAAQ0xK,EAAaj8I,IAAW,CAC9M,MAAMyM,EAAM,CAAC,GAAGliC,EAAO,UAAU,EAC5B,MAAM0xK,EAAY,WAAa,EAAGj8I,EAAO,WAAai8I,EAAY,WAAa,CAAC,EAChF,KAAK,EAAE,EACZ,SAAWzzG,EAA6B,YAAY/7B,EAAKliC,EAAO,QAAQ,CAC3E,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CACA,EACAwxK,0BAAA,mBAA6BG,mPC7B7B,OAAO,eAAeC,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAMhkB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E2jJ,EAAsD1jJ,0BAAA,EAI5D,IAAA+jJ,EAAA,cAA6CjkB,EAAuB,6BAA8B,CAC9F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,MAAM,EAClE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI0sL,EAAqB,kBACxC,CACA,EACAI,sCAAA,+BAAyCE,2ICpBzC,IAAIvkJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,8PCfjE,OAAO,eAAemkJ,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMnkB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAmkJ,EAAA,cAAkCpkB,EAAuB,gBAAiB,CACtE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,QACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,OAAO,EACnG,QAAQ,IAAMjwB,GAAQA,EAAK,OAAO,EAClC,QAAS,CAC1B,CAAS,CACT,CACA,EACA+jI,2BAAA,oBAA8BE,yPClB9B,OAAO,eAAeC,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAMtkB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EkkJ,EAAwDjkJ,2BAAA,EAI9D,IAAAqkJ,EAAA,cAA8CvkB,EAAuB,6BAA8B,CAC/F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,OAAO,EACnE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIitL,EAAsB,mBACzC,CACA,EACAG,uCAAA,gCAA0CE,4ICpB1C,IAAI7kJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uCAA4C,EAAE+D,CAAO,0RCflE,OAAO,eAAeykJ,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMzkB,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDowC,EAA8EnwC,cAAA,EAC9E6qI,EAAiB5qI,iBAAuB,EAC9C,IAAAukJ,EAAA,cAAsC1kB,EAAuB,gBAAiB,CAC1E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,YACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,WAAW,EACvG,WAAW,IAAM,CAACn/C,EAAMC,IAAU,IAAI45I,EAAe,UAAU75I,CAAI,EAAE,MAAMC,CAAK,EAAE,SAAU,CAAA,EAC5F,IAAI,CAACk/C,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,aAAa,EAAGK,GAAY,CAAC,CAACi0G,EAAOC,CAAK,IAE7I,IAAIv0G,EAA6B,0BAA2BA,EAA6B,iBAAiBs0G,EAAM,WAAYC,EAAM,WAAYl0G,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,eAAe,CAAC,CAAC,CAAC,EAC9N,KAAK,CAAE,KAAM,CAAC8tC,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,aAAa,EAAG,GAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,QAAQ,CAAG,CAAA,EAC3N,KAAK,CAAE,KAAM,CAACA,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,aAAa,EAAG,GAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,QAAQ,CAAG,CAAA,EAC3N,IAAI,CAACA,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,qBAAqB,EAAG,IAAM,CAAC,CAAClW,EAAMO,CAAG,IAE5I,IAAI2V,EAA6B,mBAAoBA,EAA6B,uBAAuBlW,EAAK,cAAgBkW,EAA6B,oCAAqCA,EAA6B,gBAAgB3V,EAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EAC1P,KAAK,CACN,KAAM,CAAC2V,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,qBAAqB,EACrH,GAAI,CAACA,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,uBAAuB,CACxH,CAAA,EACI,IAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,qBAAqB,EAAG,IAAM,CAAC,CAAClW,EAAMO,CAAG,IAEvI,IAAI2V,EAA6B,eAAgBA,EAA6B,0BAA2BA,EAA6B,iCAAiClW,EAAK,UAAU,KAAOkW,EAA6B,oCAAqCA,EAA6B,gBAAgB3V,EAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EACzT,KAAK,CACN,KAAM,CAAC2V,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,qBAAqB,EAChH,GAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,uBAAuB,CACnH,CAAA,EACI,IAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,qBAAqB,EAAG,IAAM,CAAC,CAAC7V,EAAME,CAAG,IAEvI,IAAI2V,EAA6B,eAAgBA,EAA6B,0BAA2BA,EAA6B,iCAAiC7V,EAAK,UAAU,KAAO6V,EAA6B,oCAAqCA,EAA6B,gBAAgB3V,EAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EACzT,QAAS,CAC1B,CAAS,CACT,CACA,EACA+pH,+BAAA,wBAAkCI,iRCvClC,OAAO,eAAeC,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAM9kB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EwkJ,EAAgEvkJ,+BAAA,EAItE,IAAA6kJ,EAAA,cAAkD/kB,EAAuB,6BAA8B,CACnG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,WAAW,EACvE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIutL,EAA0B,uBAC7C,CACA,EACAK,2CAAA,oCAA8CE,gJCpB9C,IAAIrlJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,qQCftE,OAAO,eAAeilJ,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAMjlB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAilJ,EAAA,cAAmCllB,EAAuB,gBAAiB,CACvE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,SACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,QAAQ,EACpG,YAAY,IAAOlW,GAAS,CAC7B,MAAM6K,EAAW,CACb,MAAO7K,EAAK,WAAW,UACvB,QAASA,EAAK,WAAW,WAC5B,EACD,GAAI6K,EAAS,QAAU,QAAaA,EAAS,UAAY,OACrD,MAAM,IAAIqL,EAA6B,oBAAoBlW,EAAK,IAAG,CAAE,EAEzE,OAAO,IAAIkW,EAA6B,uBAAuBrL,CAAQ,CAC1E,CAAA,EACI,KAAK,CAAE,KAAM,CAACqL,EAA6B,QAAQ,aAAa,EAAG,GAAI,CAACA,EAA6B,QAAQ,QAAQ,CAAG,CAAA,EACxH,KAAK,CAAE,KAAM,CAACA,EAA6B,QAAQ,aAAa,EAAG,GAAI,CAACA,EAA6B,QAAQ,QAAQ,CAAG,CAAA,EACxH,QAAS,CAC1B,CAAS,CACT,CACA,EACA40G,4BAAA,qBAA+BE,+PC7B/B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMplB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EglJ,EAA0D/kJ,4BAAA,EAIhE,IAAAmlJ,EAAA,cAA+CrlB,EAAuB,6BAA8B,CAChG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,QAAQ,EACpE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI+tL,EAAuB,oBAC1C,CACA,EACAG,wCAAA,iCAA2CE,6ICpB3C,IAAI3lJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,uPCfnE,OAAO,eAAeulJ,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMvlB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAulJ,EAAA,cAAiCxlB,EAAuB,gBAAiB,CACrE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,OACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,MAAM,EAClG,QAAQn5E,GAAK,IAAIub,IAAS,IAAI49D,EAA6B,KAAK59D,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAG,IAAI49D,EAA6B,YAAc,CAAC,EAC3I,QAAS,CAC1B,CAAS,CACT,CACA,EACAk1G,0BAAA,mBAA6BE,mPClB7B,OAAO,eAAeC,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAM1lB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EslJ,EAAsDrlJ,0BAAA,EAI5D,IAAAylJ,EAAA,cAA6C3lB,EAAuB,6BAA8B,CAC9F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,MAAM,EAClE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIquL,EAAqB,kBACxC,CACA,EACAG,sCAAA,+BAAyCE,2ICpBzC,IAAIjmJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,2NCfjE,OAAO,eAAe6lJ,eAAS,aAAc,CAAE,MAAO,GAAM,EACtCA,eAAA,eAAG,OACzB,MAAM7lB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAA6lJ,EAAA,cAA6B9lB,EAAuB,gBAAiB,CACjE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,GACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,EAAE,EAC9F,YAAY,IAAMlW,MAAYkW,EAA6B,WAAYA,EAA6B,oBAAoBlW,EAAK,IAAG,CAAE,CAAC,CAAC,EACpI,KAAK,CAAE,KAAM,CAACkW,EAA6B,QAAQ,aAAa,EAAG,GAAI,CAACA,EAA6B,QAAQ,QAAQ,CAAG,CAAA,EACxH,KAAK,CAAE,KAAM,CAACA,EAA6B,QAAQ,aAAa,EAAG,GAAI,CAACA,EAA6B,QAAQ,QAAQ,CAAG,CAAA,EACxH,QAAS,CAC1B,CAAS,CACT,CACA,EACAw1G,sBAAA,eAAyBE,2NCpBzB,OAAO,eAAeC,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMhmB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E4lJ,EAA8C3lJ,sBAAA,EAIpD,IAAA+lJ,EAAA,cAAyCjmB,EAAuB,6BAA8B,CAC1F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,EAAE,EAC9D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI2uL,EAAiB,cACpC,CACA,EACAG,kCAAA,2BAAqCE,uICpBrC,IAAIvmJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,gPCf7D,OAAO,eAAemmJ,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAMnmB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAmmJ,EAAA,cAAgCpmB,EAAuB,gBAAiB,CACpE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,MACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,KAAK,EACjG,eAAe,IAAM9R,MAAW8R,EAA6B,QAAQ9R,EAAI,aAAa,CAAC,EACvF,cAAc,IAAMA,MAAW8R,EAA6B,YAAY9R,EAAI,WAAW,YAAW,EAAIA,EAAI,QAAQ,CAAC,EACnH,QAAS,CAC1B,CAAS,CACT,CACA,EACA4nH,yBAAA,kBAA4BE,6OCnB5B,OAAO,eAAeC,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAMtmB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EkmJ,EAAoDjmJ,yBAAA,EAI1D,IAAAqmJ,EAAA,cAA4CvmB,EAAuB,6BAA8B,CAC7F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIivL,EAAoB,iBACvC,CACA,EACAG,qCAAA,8BAAwCE,0ICpBxC,IAAI7mJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,mRCfhE,OAAO,eAAeymJ,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMzmB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAAymJ,EAAA,cAAqC1mB,EAAuB,gBAAiB,CACzE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,OACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,MAAM,EAClG,iBAAiB,IAAMzgD,GAAO,CAACA,CAAG,EAClC,QAAS,CAC1B,CAAS,CACT,CACA,EACA62J,8BAAA,uBAAiCE,2QCfjC,OAAO,eAAeC,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAM5mB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EwmJ,EAA8DvmJ,8BAAA,EAIpE,IAAA2mJ,EAAA,cAAiD7mB,EAAuB,6BAA8B,CAClG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,MAAM,EAClE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIuvL,EAAyB,sBAC5C,CACA,EACAG,0CAAA,mCAA6CE,+ICpB7C,IAAInnJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0CAA+C,EAAE+D,CAAO,4QCfrE,OAAO,eAAe+mJ,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAM/mB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAA+mJ,EAAA,cAAoChnB,EAAuB,gBAAiB,CACxE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,MACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,KAAK,EACjG,iBAAiB,IAAMzgD,GAAOA,CAAG,EACjC,QAAS,CAC1B,CAAS,CACT,CACA,EACAm3J,6BAAA,sBAAgCE,qQCfhC,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAMlnB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E8mJ,EAA4D7mJ,6BAAA,EAIlE,IAAAinJ,EAAA,cAAgDnnB,EAAuB,6BAA8B,CACjG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,KAAK,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI6vL,EAAwB,qBAC3C,CACA,EACAG,yCAAA,kCAA4CE,8ICpB5C,IAAIznJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,yOCfpE,OAAO,eAAeqnJ,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAMrnB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eq9I,EAAsBp9I,kBAAA,EAI5B,IAAAonJ,EAAA,cAA+BtnB,EAAuB,gBAAiB,CACnE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,KACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,IAAI,EAChG,IAAI,CAAE,EAAE,IAAM,IAAM,IAAIA,EAA6B,UAAU,YAAYitG,EAAK,GAAI,CAAA,EAAE,CAAC,EACvF,QAAS,CAC1B,CAAS,CACT,CACA,EACA+J,wBAAA,iBAA2BE,uOCnB3B,OAAO,eAAeC,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAMxnB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EonJ,EAAkDnnJ,wBAAA,EAIxD,IAAAunJ,EAAA,cAA2CznB,EAAuB,6BAA8B,CAC5F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,IAAI,EAChE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAImwL,EAAmB,gBACtC,CACA,EACAG,oCAAA,6BAAuCE,yICpBvC,IAAI/nJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oCAAyC,EAAE+D,CAAO,iSCf/D,OAAO,eAAe2nJ,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAM3nB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAA2nJ,EAAA,cAAuC5nB,EAAuB,gBAAiB,CAC3E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,YAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,WAAW,EAChG,WAAW,IAAOzgD,MAAYygD,EAA6B,MAAMzgD,EAAI,UAAW,CAAA,EAAG,EAAI,EACvF,QAAQygD,EAA6B,QAAQ,YAAa,IAAOzgD,MAAYygD,EAA6B,MAAMzgD,EAAI,UAAS,CAAE,EAAG,EAAI,EACtI,QAAQygD,EAA6B,QAAQ,WAAY,IAAOzgD,GAAQ,CACzE,OAAQA,EAAI,IAAK,EAAA,CACb,IAAK,OACD,SAAWygD,EAA6B,MAAM,EAAI,EACtD,IAAK,QACD,SAAWA,EAA6B,MAAM,EAAK,EACvD,IAAK,IACD,SAAWA,EAA6B,MAAM,EAAI,EACtD,IAAK,IACD,SAAWA,EAA6B,MAAM,EAAK,EACvD,QACI,MAAM,IAAIA,EAA6B,UAAUzgD,EAAKygD,EAA6B,QAAQ,WAAW,CAC9H,CACA,EAAe,EAAK,EACH,QAAS,CAC1B,CAAS,CACT,CACA,EACAs3G,gCAAA,yBAAmCE,uRC9BnC,OAAO,eAAeC,qCAAS,aAAc,CAAE,MAAO,GAAM,EAChBA,qCAAA,qCAAG,OAC/C,MAAM9nB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E0nJ,EAAkEznJ,gCAAA,EAIxE,IAAA6nJ,EAAA,cAAmD/nB,EAAuB,6BAA8B,CACpG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,WAAW,EAChE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIywL,EAA2B,wBAC9C,CACA,EACAG,4CAAA,qCAA+CE,iJCpB/C,IAAIroJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,4CAAiD,EAAE+D,CAAO,4QCfvE,OAAO,eAAeioJ,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMjoB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAAioJ,EAAA,cAAoCloB,EAAuB,gBAAiB,CACxE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,SAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,QAAQ,EAC7F,QAAQA,EAA6B,QAAQ,SAAU,IAAOzgD,GAAQ,IAAIygD,EAA6B,YAAYzgD,EAAI,WAAYA,EAAI,QAAQ,CAAC,EAChJ,QAAQygD,EAA6B,QAAQ,cAAe,IAAOzgD,GAAQ,IAAIygD,EAA6B,YAAYzgD,EAAI,UAAU,CAAC,EACvI,YAAY,IAAOA,GAAQ,IAAIygD,EAA6B,eAAgBA,EAA6B,WAAWzgD,EAAI,IAAK,CAAA,CAAC,CAAC,EAC/H,QAAS,CAC1B,CAAS,CACT,CACA,EACAq4J,6BAAA,sBAAgCE,qQCjBhC,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAMpoB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EgoJ,EAA4D/nJ,6BAAA,EAIlE,IAAAmoJ,EAAA,cAAgDroB,EAAuB,6BAA8B,CACjG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,QAAQ,EAC7D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI+wL,EAAwB,qBAC3C,CACA,EACAG,yCAAA,kCAA4CE,8ICpB5C,IAAI3oJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,wSCfpE,OAAO,eAAeuoJ,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAMvoB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAAuoJ,EAAA,cAAwCxoB,EAAuB,gBAAiB,CAC5E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,cAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,aAAa,EAClG,QAAQA,EAA6B,QAAQ,cAAe,IAAOzgD,GAAQA,CAAG,EAC9E,QAAQygD,EAA6B,QAAQ,WAAY,IAAOzgD,MAAYygD,EAA6B,aAAcA,EAA6B,eAAezgD,EAAI,IAAG,CAAE,EAAGA,EAAI,IAAK,CAAA,EAAG,EAAK,EAChM,QAAQygD,EAA6B,QAAQ,SAAU,IAAOzgD,GAAQ,IAAIygD,EAA6B,gBAAgB,CAAE,GAAGzgD,EAAI,WAAY,MAAO,EAAG,QAAS,EAAG,QAAS,EAAG,CAAC,EAC/K,QAAS,CAC1B,CAAS,CACT,CACA,EACA24J,iCAAA,0BAAoCE,6RCjBpC,OAAO,eAAeC,sCAAS,aAAc,CAAE,MAAO,GAAM,EACfA,sCAAA,sCAAG,OAChD,MAAM1oB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EsoJ,EAAoEroJ,iCAAA,EAI1E,IAAAyoJ,EAAA,cAAoD3oB,EAAuB,6BAA8B,CACrG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,aAAa,EAClE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIqxL,EAA4B,yBAC/C,CACA,EACAG,6CAAA,sCAAgDE,kJCpBhD,IAAIjpJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,6CAAkD,EAAE+D,CAAO,yVCfxE,OAAO,eAAe6oJ,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAM7oB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAA6oJ,EAAA,cAA+C9oB,EAAuB,gBAAiB,CACnF,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,sBAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,qBAAqB,EAE1G,QAAQA,EAA6B,QAAQ,aAAc,IAAOzgD,GAEvE,IAAIygD,EAA6B,0BAA2BA,EAA6B,uBAAuBzgD,EAAI,UAAU,CAAC,CAAC,EAC3H,YAAY,IAAOA,GAAQ,IAAIygD,EAA6B,0BAA2BA,EAA6B,sBAAsBzgD,EAAI,IAAK,CAAA,CAAC,CAAC,EACrJ,QAAS,CAC1B,CAAS,CACT,CACA,EACAi5J,wCAAA,iCAA2CE,uUCnB3C,OAAO,eAAeC,6CAAS,aAAc,CAAE,MAAO,GAAM,EACRA,6CAAA,6CAAG,OACvD,MAAMhpB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E4oJ,EAAkF3oJ,wCAAA,EAIxF,IAAA+oJ,EAAA,cAA2DjpB,EAAuB,6BAA8B,CAC5G,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,qBAAqB,EAC1E,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI2xL,EAAmC,gCACtD,CACA,EACAG,oDAAA,6CAAuDE,yJCpBvD,IAAIvpJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oDAAyD,EAAE+D,CAAO,iSCf/E,OAAO,eAAempJ,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMnpB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAAmpJ,EAAA,cAAuCppB,EAAuB,gBAAiB,CAC3E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,YAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,WAAW,EAChG,WAAW,IAAOzgD,GAAQ,CAC3B,MAAM9e,KAAau/D,EAA6B,iBAAiBzgD,EAAI,IAAG,CAAE,EAC1E,GAAI9e,IAAW,OACX,MAAM,IAAIu/D,EAA6B,UAAUzgD,EAAKygD,EAA6B,QAAQ,WAAW,EAE1G,SAAWA,EAA6B,SAASv/D,CAAM,CAC1D,CAAA,EACI,UAAU,IAAO8e,GAAQ,CAC1B,MAAMmL,EAAMnL,EAAI,IAAK,EACf9e,EAAS,0BAA0B,KAAKiqB,CAAG,KAAQs1C,EAA6B,iBAAiBt1C,CAAG,EAAI,OAC9G,GAAIjqB,IAAW,OACX,MAAM,IAAIu/D,EAA6B,UAAUzgD,EAAKygD,EAA6B,QAAQ,WAAW,EAE1G,SAAWA,EAA6B,SAASv/D,CAAM,CACvE,EAAe,EAAK,EACH,gBAAgB,IAAM8e,MAAWygD,EAA6B,SAASzgD,EAAM,EAAI,CAAC,CAAC,EACnF,QAAS,CAC1B,CAAS,CACT,CACA,EACAu5J,gCAAA,yBAAmCE,uRC9BnC,OAAO,eAAeC,qCAAS,aAAc,CAAE,MAAO,GAAM,EAChBA,qCAAA,qCAAG,OAC/C,MAAMtpB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EkpJ,EAAkEjpJ,gCAAA,EAIxE,IAAAqpJ,EAAA,cAAmDvpB,EAAuB,6BAA8B,CACpG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,WAAW,EAChE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIiyL,EAA2B,wBAC9C,CACA,EACAG,4CAAA,qCAA+CE,iJCpB/C,IAAI7pJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,4CAAiD,EAAE+D,CAAO,0RCfvE,OAAO,eAAeypJ,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMzpB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAAypJ,EAAA,cAAsC1pB,EAAuB,gBAAiB,CAC1E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,WAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,UAAU,EAC/F,WAAW,IAAOzgD,MAAYygD,EAA6B,QAAQzgD,EAAI,UAAU,CAAC,EAClF,gBAAgB,IAAMA,MAAWygD,EAA6B,QAAQzgD,EAAM,EAAI,CAAC,CAAC,EAClF,QAAQygD,EAA6B,QAAQ,WAAY,IAAOzgD,GAAQ,CACzE,MAAM9e,KAAau/D,EAA6B,eAAezgD,EAAI,IAAG,CAAE,EACxE,GAAI9e,IAAW,OACX,MAAM,IAAIu/D,EAA6B,UAAUzgD,EAAKygD,EAA6B,QAAQ,UAAU,EAEzG,SAAWA,EAA6B,QAAQv/D,CAAM,CACtE,EAAe,EAAK,EACH,QAAS,CAC1B,CAAS,CACT,CACA,EACA24K,+BAAA,wBAAkCE,iRCvBlC,OAAO,eAAeC,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAM5pB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EwpJ,EAAgEvpJ,+BAAA,EAItE,IAAA2pJ,EAAA,cAAkD7pB,EAAuB,6BAA8B,CACnG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,UAAU,EAC/D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIuyL,EAA0B,uBAC7C,CACA,EACAG,2CAAA,oCAA8CE,gJCpB9C,IAAInqJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,wSCftE,OAAO,eAAe+pJ,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAM/pB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAA+pJ,EAAA,cAAwChqB,EAAuB,gBAAiB,CAC5E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,sBAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,YAAY,EAEjG,QAAQA,EAA6B,QAAQ,aAAc,IAAOzgD,GAEvE,IAAIygD,EAA6B,gBAAgBzgD,EAAI,WAAYA,EAAI,QAAQ,CAAC,EACzE,YAAY,IAAOA,GAAQ,IAAIygD,EAA6B,mBAAoBA,EAA6B,eAAezgD,EAAI,IAAK,CAAA,CAAC,CAAC,EACvI,QAAS,CAC1B,CAAS,CACT,CACA,EACAm6J,iCAAA,0BAAoCE,6RCnBpC,OAAO,eAAeC,sCAAS,aAAc,CAAE,MAAO,GAAM,EACfA,sCAAA,sCAAG,OAChD,MAAMlqB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E8pJ,EAAoE7pJ,iCAAA,EAI1E,IAAAiqJ,EAAA,cAAoDnqB,EAAuB,6BAA8B,CACrG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,YAAY,EACjE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI6yL,EAA4B,yBAC/C,CACA,EACAG,6CAAA,sCAAgDE,kJCpBhD,IAAIzqJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,6CAAkD,EAAE+D,CAAO,mRCfxE,OAAO,eAAeqqJ,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMrqB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAAqqJ,EAAA,cAAqCtqB,EAAuB,gBAAiB,CACzE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,UAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,SAAS,EAC9F,WAAW,IAAOzgD,MAAYygD,EAA6B,OAAOzgD,EAAI,UAAU,CAAC,EACjF,gBAAgB,IAAMA,MAAWygD,EAA6B,OAAOzgD,EAAM,EAAI,CAAC,CAAC,EACjF,QAAQygD,EAA6B,QAAQ,WAAY,IAAOzgD,GAAQ,CACzE,MAAM9e,KAAau/D,EAA6B,eAAezgD,EAAI,IAAG,CAAE,EACxE,GAAI9e,IAAW,OACX,MAAM,IAAIu/D,EAA6B,UAAUzgD,EAAKygD,EAA6B,QAAQ,SAAS,EAExG,SAAWA,EAA6B,OAAOv/D,CAAM,CACrE,EAAe,EAAK,EACH,QAAS,CAC1B,CAAS,CACT,CACA,EACAu5K,8BAAA,uBAAiCE,2QCvBjC,OAAO,eAAeC,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAMxqB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EoqJ,EAA8DnqJ,8BAAA,EAIpE,IAAAuqJ,EAAA,cAAiDzqB,EAAuB,6BAA8B,CAClG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,SAAS,EAC9D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAImzL,EAAyB,sBAC5C,CACA,EACAG,0CAAA,mCAA6CE,+ICpB7C,IAAI/qJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0CAA+C,EAAE+D,CAAO,iSCfrE,OAAO,eAAe2qJ,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAM3qB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAA2qJ,EAAA,cAAuC5qB,EAAuB,gBAAiB,CAC3E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,YAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,WAAW,EAChG,gBAAgB,IAAMzgD,MAAWygD,EAA6B,SAASzgD,EAAM,EAAI,CAAC,CAAC,EACnF,WAAW,IAAOA,GAAQ,CAC3B,GAAI,CAAC,OAAO,SAASA,EAAI,UAAU,EAC/B,MAAM,IAAIygD,EAA6B,UAAUzgD,EAAKygD,EAA6B,QAAQ,WAAW,EAE1G,SAAWA,EAA6B,SAAS,KAAK,MAAMzgD,EAAI,UAAU,CAAC,CAC9E,CAAA,EACI,UAAU,IAAOA,GAAQ,CAC1B,MAAMmL,EAAMnL,EAAI,IAAK,EACf9e,EAAS,SAAS,KAAKiqB,CAAG,EAAI,OAAO,SAASA,EAAK,EAAE,EAAI,OAC/D,GAAIjqB,IAAW,OACX,MAAM,IAAIu/D,EAA6B,UAAUzgD,EAAKygD,EAA6B,QAAQ,WAAW,EAE1G,SAAWA,EAA6B,SAASv/D,CAAM,CAC1D,CAAA,EACI,QAAS,CAC1B,CAAS,CACT,CACA,EACA65K,gCAAA,yBAAmCE,uRC7BnC,OAAO,eAAeC,qCAAS,aAAc,CAAE,MAAO,GAAM,EAChBA,qCAAA,qCAAG,OAC/C,MAAM9qB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E0qJ,EAAkEzqJ,gCAAA,EAIxE,IAAA6qJ,EAAA,cAAmD/qB,EAAuB,6BAA8B,CACpG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,WAAW,EAChE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIyzL,EAA2B,wBAC9C,CACA,EACAG,4CAAA,qCAA+CE,iJCpB/C,IAAIrrJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,4CAAiD,EAAE+D,CAAO,0RCfvE,OAAO,eAAeirJ,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMjrB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAirJ,EAAA,cAAsClrB,EAAuB,gBAAiB,CAC1E,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,WAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,UAAU,EAC/F,WAAW,IAAOzgD,MAAYygD,EAA6B,WAAYA,EAA6B,OAAOzgD,EAAI,UAAU,EAAE,IAAG,CAAE,CAAC,EACjI,gBAAgB,IAAMA,MAAWygD,EAA6B,WAAYA,EAA6B,MAAMzgD,CAAG,EAAE,KAAK,CAAC,EACxH,QAAQ,IAAOA,MAAYygD,EAA6B,QAAQzgD,EAAI,KAAK,CAAC,EAC1E,QAAS,CAC1B,CAAS,CACT,CACA,EACAq7J,+BAAA,wBAAkCE,iRCpBlC,OAAO,eAAeC,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAMprB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EgrJ,EAAgE/qJ,+BAAA,EAItE,IAAAmrJ,EAAA,cAAkDrrB,EAAuB,6BAA8B,CACnG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,UAAU,EAC/D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI+zL,EAA0B,uBAC7C,CACA,EACAG,2CAAA,oCAA8CE,gJCpB9C,IAAI3rJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,4QCftE,OAAO,eAAeurJ,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMvrB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAAurJ,EAAA,cAAoCxrB,EAAuB,gBAAiB,CACxE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,SAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,QAAQ,EAC7F,QAAQA,EAA6B,QAAQ,SAAU,IAAOzgD,GAAQ,IAAIygD,EAA6B,YAAYzgD,EAAI,WAAYA,EAAI,QAAQ,CAAC,EAChJ,QAAQygD,EAA6B,QAAQ,cAAe,IAAOzgD,GAAQ,IAAIygD,EAA6B,YAAYzgD,EAAI,UAAU,CAAC,EACvI,YAAY,IAAOA,GAAQ,IAAIygD,EAA6B,eAAgBA,EAA6B,WAAWzgD,EAAI,IAAK,CAAA,CAAC,CAAC,EAC/H,QAAS,CAC1B,CAAS,CACT,CACA,EACA27J,6BAAA,sBAAgCE,qQCjBhC,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAM1rB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EsrJ,EAA4DrrJ,6BAAA,EAIlE,IAAAyrJ,EAAA,cAAgD3rB,EAAuB,6BAA8B,CACjG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,QAAQ,EAC7D,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIq0L,EAAwB,qBAC3C,CACA,EACAG,yCAAA,kCAA4CE,8ICpB5C,IAAIjsJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,uWCfpE,OAAO,eAAe6rJ,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAM7rB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAA6rJ,EAAA,cAAiD9rB,EAAuB,gBAAiB,CACrF,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,QAAQ,wBAC/C,aAAeA,EAA6B,SAASA,EAA6B,QAAQ,uBAAuB,EAE5G,QAAQA,EAA6B,QAAQ,aAAc,IAAOzgD,GAEvE,IAAIygD,EAA6B,4BAA6BA,EAA6B,yBAAyBzgD,EAAI,UAAU,CAAC,CAAC,EAC/H,YAAY,IAAOA,GAAQ,IAAIygD,EAA6B,4BAA6BA,EAA6B,wBAAwBzgD,EAAI,IAAK,CAAA,CAAC,CAAC,EACzJ,QAAS,CAC1B,CAAS,CACT,CACA,EACAi8J,0CAAA,mCAA6CE,mVCnB7C,OAAO,eAAeC,+CAAS,aAAc,CAAE,MAAO,GAAM,EACNA,+CAAA,+CAAG,OACzD,MAAMhsB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E4rJ,EAAsF3rJ,0CAAA,EAI5F,IAAA+rJ,EAAA,cAA6DjsB,EAAuB,6BAA8B,CAC9G,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,QAAQ,uBAAuB,EAC5E,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAI20L,EAAqC,kCACxD,CACA,EACAG,sDAAA,+CAAyDE,2JCpBzD,IAAIvsJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sDAA2D,EAAE+D,CAAO,yOCfjF,OAAO,eAAemsJ,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAMnsB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAIpF,IAAAmsJ,EAAA,cAA+BpsB,EAAuB,gBAAiB,CACnE,aAAc,CACV,MAAM,CACF,MAAO,EACP,SAAU3vF,EAA6B,eAAe,KACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,IAAI,EAChG,YAAY,IAAMlW,MAAYkW,EAA6B,SAASlW,EAAK,WAAW,IAAI,CAAC,EACzF,IAAI,CAACkW,EAA6B,QAAQ,QAAQ,EAAG,IAAM,CAAC,CAAClW,CAAI,OAAUkW,EAA6B,SAASlW,EAAK,WAAW,IAAI,CAAC,EACtI,QAAS,CAC1B,CAAS,CACT,CACA,EACAgyH,wBAAA,iBAA2BE,uOCnB3B,OAAO,eAAeC,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAMtsB,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EksJ,EAAkDjsJ,wBAAA,EAIxD,IAAAqsJ,EAAA,cAA2CvsB,EAAuB,6BAA8B,CAC5F,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,IAAI,EAChE,aAAc,EAC1B,CAAS,CACT,CACI,MAAM,IAAIn5E,EAAG,CACT,OAAO,IAAIi1L,EAAmB,gBACtC,CACA,EACAG,oCAAA,6BAAuCE,yICpBvC,IAAI7sJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oCAAyC,EAAE+D,CAAO,sPCf/D,OAAO,eAAeysJ,gBAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,gBAAA,gBAA0BA,gBAAA,gBAA0B,OACpD,MAAMx/D,EAAoBhxF,eAA0B,EACpD,IAAAywJ,EAAA,cAA8Bz/D,EAAkB,QAAS,CACrD,YAAY1W,EAAQ/kG,EAAS,CACzB,MAAMA,CAAO,EACb,KAAK,OAAS+kG,EAAO,UAAW,EAChC,KAAK,aAAe,GACpB,KAAK,OAAO,OAAO,KAAK,IAAM,CAC1B,KAAK,aAAe,EAChC,CAAS,EAAE,MAAOv/F,GAAU,CAChB,KAAK,aAAe,GACpB,KAAK,QAAQA,CAAK,CAC9B,CAAS,CACT,CAEI,OAAQ,CACJ,KAAK,OAAO,KAAI,EACX,KAAKglG,GAAS,KAAK,KAAKA,EAAM,KAAO,KAAOA,EAAM,KAAK,CAAC,EACxD,MAAOhlG,GAAU,KAAK,QAAQA,CAAK,CAAC,CACjD,CACI,QAAQA,EAAO,CACX,OAAK,KAAK,cACN,KAAK,OAAO,OAAOA,CAAK,EAAE,KAAI,EAAG,MAAM,IAAM,CAIzD,CAAa,EAEE,MAAM,QAAQA,CAAK,CAClC,CACA,EACAy1K,gBAAA,gBAA0BE,EAC1B,SAASC,EAAgBr2E,EAAQ/kG,EAAS,CACtC,OAAO,IAAIm7K,EAAgBp2E,EAAQ/kG,CAAO,CAC9C,CACAi7K,uBAAA,gBAA0BG,4HCpC1B,OAAO,eAAc5sJ,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAA,gBAA0B,OAC1B,IAAIysJ,EAAoBxwJ,uBAA4B,EACpD,OAAO,eAAe+D,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOysJ,EAAkB,eAAkB,CAAA,CAAE,gJCFtI,MAAMI,EAAWt2E,GAChBA,IAAW,MACX,OAAOA,GAAW,UAClB,OAAOA,EAAO,MAAS,WAExB,OAAAs2E,EAAS,SAAWt2E,GACnBs2E,EAASt2E,CAAM,GACfA,EAAO,WAAa,IACpB,OAAOA,EAAO,QAAW,YACzB,OAAOA,EAAO,gBAAmB,SAElCs2E,EAAS,SAAWt2E,GACnBs2E,EAASt2E,CAAM,GACfA,EAAO,WAAa,IACpB,OAAOA,EAAO,OAAU,YACxB,OAAOA,EAAO,gBAAmB,SAElCs2E,EAAS,OAASt2E,GACjBs2E,EAAS,SAASt2E,CAAM,GACxBs2E,EAAS,SAASt2E,CAAM,EAEzBs2E,EAAS,UAAYt2E,GACpBs2E,EAAS,OAAOt2E,CAAM,GACtB,OAAOA,EAAO,YAAe,WAE9B,WAAiBs2E,gOCxBjBjtG,EAAiB,QAAAktG,EACjBltG,EAAmC,QAAA,kBAAA,OAAO,eAAmB,IAE7D,SAASktG,EAAWC,EAAY,CAE9B,GAAI,CAACntG,EAAO,QAAQ,kBAAmB,MAAM,IAAI,MAAM,+BAA+B,EAEtF,IAAIotG,EAAY,GACZp4G,EAAY,CAAA,EAEhB,SAASzgD,EAAO84J,EAAY,CAC1Br4G,EAAU,KAAUk5D,EACpBl5D,EAAU,IAASk5D,EACnBl5D,EAAU,IAASimC,EACnBjmC,EAAU,MAAWimC,EACrBjmC,EAAU,MAAWimC,EACrB,QAASzqG,KAAQwkE,EAAWm4G,EAAW,GAAG38K,EAAMwkE,EAAUxkE,CAAI,CAAC,EAE/D28K,EAAW,MAAK,EAEhB,SAASj/C,EAAQ9xB,EAAO,CAClBgxE,IACJC,EAAW,QAAQjxE,CAAK,EACxB+wE,EAAW,MAAK,EACtB,CAEI,SAASlyE,EAAW/8F,EAAK,CACvB,GAAI,CAAAkvK,EACJ,CAAAA,EAAY,GAEZ,QAAS58K,KAAQwkE,EAAWm4G,EAAW,eAAe38K,EAAMwkE,EAAUxkE,CAAI,CAAC,EAEvE0N,EAAKmvK,EAAW,MAAMnvK,CAAG,EACxBmvK,EAAW,MAAK,EAC3B,CACA,CAEE,SAASC,GAAQ,CACXF,GACJD,EAAW,OAAM,CACrB,CAEE,SAASI,GAAU,CACjBH,EAAY,GAEZ,QAAS58K,KAAQwkE,EAAWm4G,EAAW,eAAe38K,EAAMwkE,EAAUxkE,CAAI,CAAC,EAE3E28K,EAAW,KAAK,IAAI,EACpBA,EAAW,MAAK,EACZA,EAAW,QAASA,EAAW,QAAO,EACjCA,EAAW,OAAOA,EAAW,MAAK,CAC/C,CAEE,OAAO,IAAI,eAAe,CAAC,MAAO54J,EAAO,KAAM+4J,EAAM,OAAQC,CAAM,CAAC,CACtE,kLCxDA,OAAO,eAAeC,UAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,UAAA,UAAG,OACpB,MAAM3sJ,EAAkCxE,cAAA,EAClCoxJ,EAAsBptJ,cAA4B,EAClD4sJ,EAAW3sJ,gBAAoB,EAC/BotJ,EAAsBntJ,+BAAsC,EAalE,IAAAotJ,EAAA,MAAMC,WAAkB/sJ,EAAO,KAAM,CAQjC,YAAYhuB,EAAM,CACd,MAAMA,CAAI,CAClB,CAOI,OAAO,eAAem9E,EAAM,CACxB,OAAOi9F,EAASj9F,CAAI,GAAKA,IAAS,KAC9BA,KACIy9F,EAAoB,iBAAiBz9F,CAAI,CACzD,CAMI,OAAO,oBAAoBA,EAAM,CAC7B,OAAO09F,EAAoB19F,CAAI,CACvC,CAKI,OAAO,cAAc4nC,EAAS,CAC1B,MAAM3wG,EAAO,CAAE,EAEf,OAAA2wG,EAAQ,QAAQ,CAAC9mH,EAAOK,IAAQ,CAC5B8V,EAAK9V,CAAG,EAAIL,CACxB,CAAS,EACMmW,CACf,CAMI,OAAO,YAAYkwB,EAAO,CACtB,OAAO,IAAI,IAAIA,aAAiB,QAAUA,EAAM,IAAMA,CAAK,CACnE,CAKI,OAAO,gBAAgB02I,EAAWC,EAAc,CAC5C,GAAI,CAACF,GAAU,YAAa,CACxB,MAAMG,EAAW,CACb,YAAYD,EAAa,MAAM,GAAG,EAAE,CAAC,CAAC,KACtC,GAAGD,CAAS,IAAIC,CAAY,EAC/B,EACD,OAAI,OAAO,WAAW,WAAc,UAAY,OAAO,WAAW,UAAU,WAAc,SAEtFC,EAAS,KAAK,WAAW,UAAU,SAAS,EAEvC,OAAO,WAAW,SAAY,UACnC,OAAO,WAAW,QAAQ,UAAa,UACvC,OAAO,WAAW,QAAQ,SAAS,MAAS,UAE5CA,EAAS,KAAK,WAAW,WAAW,QAAQ,SAAS,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,EAAE,EAEzE,OAAO,WAAW,SAAY,UAC9B,OAAO,WAAW,QAAQ,UAAa,UACvC,OAAO,WAAW,QAAQ,MAAS,UACnCA,EAAS,OAAO,EAAG,EAAG,IAAI,WAAW,QAAQ,QAAQ,KAAK,WAAW,QAAQ,IAAI,GAAG,EAEjFA,EAAS,KAAK,GAAG,CACpC,CACA,CAKI,OAAO,WAAY,CACf,OAGC,OAAO,WAAW,QAAW,UAAY,OAAO,WAAW,OAAO,UAAa,UAG3E,OAAO,WAAW,eAAkB,UACjD,CACA,EACAP,iBAAA,UAAoBI,8HC9GpB,OAAO,eAAe,MAAS,aAAc,CAAE,MAAO,GAAM,EACxB,MAAA,6BAAG,OACvC,MAAM/+B,EAAqBxyH,cAAkC,EACvDmxJ,EAAoCntJ,iBAAA,EAM1C,eAAe2tJ,EAA6B3qJ,EAAK4qJ,EAAc,CAE3D,GAAIA,EAAa,QAAU,IAAK,CAE5B,IAAIC,EAAa,iBACjB,GAAID,EAAa,KAAM,CACnB,MAAME,EAAiBX,EAAY,UAAU,eAAeS,EAAa,IAAI,EAC7EC,EAAa,QAAUr/B,EAAmB,WAAWs/B,CAAc,CAC/E,CACQ,MAAM,IAAI,MAAM,oBAAoB9qJ,CAAG,iBAAiB4qJ,EAAa,MAAM;AAAA,EAAOC,CAAU,EAAE,CACtG,CAEI,MAAMD,EAAa,MAAM,OAAQ,CACrC,CACA,aAAA,6BAAuCD,kHCvBvC,IAAIjuJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iBAAsB,EAAE+D,CAAO,EAC5CD,EAAaE,eAAkB,EAAED,CAAO,kTChBxC,OAAO,eAAe,6BAAS,aAAc,CAAE,MAAO,GAAM,EAC/B,6BAAA,sBAAG,OAIhC,MAAMguJ,CAAsB,CACxB,MAAM,OAAOj1B,EAAM,CAMf,GAAIA,EAAK,MAAQ,OAAOA,EAAK,MAAS,UAAY,cAAeA,EAAK,KAAM,CACxE,MAAMrvC,EAASqvC,EAAK,KAAK,UAAW,EAC9B/yC,EAAS,CAAE,EACjB,OAAa,CACT,KAAM,CAAE,KAAAhsC,EAAM,MAAAtpE,CAAO,EAAG,MAAMg5G,EAAO,KAAM,EAC3C,GAAI1vC,EACA,MAEJgsC,EAAO,KAAKt1G,CAAK,CACjC,CACYqoJ,EAAK,KAAO/yC,EAAO,KAAK,EAAE,CACtC,CAEQ,MAAO,CAAE,GAAG+yC,EAAM,UAAW,CAACA,EAAK,IAAM,CACjD,CACA,CACA,oCAAA,sBAAgCi1B,6KC5BhC,OAAO,eAAeC,eAAS,aAAc,CAAE,MAAO,GAAM,EACtCA,eAAA,eAAG,OACzB,MAAMC,EAA0CjyJ,cAAA,EAC1CsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAElCiuJ,EAAiB,WACjBC,EAA4DhuJ,oCAAA,EAClE,IAAAiuJ,EAAA,MAAMC,WAAuBJ,EAAW,SAAU,CAC9C,YAAYz7K,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,sBAAwB,IAAI27K,EAAwB,sBAAsB37K,EAAK,YAAY,CACxG,CACI,MAAM,KAAKsuB,EAAS,CAChB,SAAWN,EAAO,UAAU,CAAE,KAAM,OAAO,kBAAmB,CACtE,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAM46F,EAAU,KAAK,sBAAsB56F,CAAM,EAC3Cm8H,EAAO,CAAE,OAAQ,MAAO,GAAGn8H,EAAO,KAAM,QAAA46F,CAAS,EACvD,KAAK,QAAQ56F,EAAO,QAAS,cAAcsxJ,EAAW,UAAU,YAAYtxJ,EAAO,KAAK,EAAE,IAAI,GAAI,KAAO,CACrG,QAASsxJ,EAAW,UAAU,cAAc12D,CAAO,EACnD,OAAQuhC,EAAK,MACzB,EAAU,EAEEn8H,EAAO,QAAQ,IAAI2F,EAAkB,SAAS,KAAK,IACnDw2H,EAAK,QAAUm1B,EAAW,UAAU,cAAc12D,CAAO,GAEzD56F,EAAO,QAAQ,IAAI2F,EAAkB,SAAS,kBAAkB,IAChEw2H,EAAK,YAAc,WAEvB,MAAMw1B,EAAc3xJ,EAAO,QAAQ,IAAI2F,EAAkB,SAAS,WAAW,EACvEisJ,EAAkB5xJ,EAAO,QAAQ,IAAI2F,EAAkB,SAAS,eAAe,EAC/EksJ,EAAgB7xJ,EAAO,QAAQ,IAAI2F,EAAkB,SAAS,KAAK,GAAK,MACxEmsJ,EAAc,MAAM,KAAK,sBAAsB,OAAO31B,CAAI,EAChE,IAAI41B,EACAC,EACJ,GAAIL,EAAa,CACb,MAAMM,EAAkB,IAAI,gBAC5BH,EAAY,OAASG,EAAgB,OACrCF,EAAkB,IAAME,EAAgB,MAAM,IAAI,MAAM,uBAAuBX,EAAW,UAAU,YAAYtxJ,EAAO,KAAK,EAAE,IAAI,UAAU2xJ,CAAW,KAAK,CAAC,EAC7JK,EAAgB,WAAW,IAAMD,EAAe,EAAIJ,CAAW,CAC3E,CACQ,MAAMh5K,EAAW,MAAMk5K,EAAc7xJ,EAAO,MAAO8xJ,CAAW,EAC9D,OAAIH,IAAgB,CAACC,GAAmB,CAACj5K,EAAS,OAC9C,aAAaq5K,CAAa,EAEvBr5K,CACf,CAMI,sBAAsBqnB,EAAQ,CAC1B,MAAM46F,EAAU,IAAI,QAAQ56F,EAAO,MAAM,OAAO,EAC5CsxJ,EAAW,UAAU,YAErB12D,EAAQ,OAAO,YAAY,EAErBA,EAAQ,IAAI,YAAY,GAE9BA,EAAQ,IAAI,aAAc82D,GAAe,SAAS,EAEtD,MAAMQ,EAAalyJ,EAAO,QAAQ,IAAI2F,EAAkB,SAAS,IAAI,EACrE,OAAIusJ,GACAt3D,EAAQ,IAAI,gBAAiB,SAAS82D,GAAe,eAAeQ,CAAU,CAAC,EAAE,EAE9Et3D,CACf,CAQI,OAAO,eAAe9mH,EAAO,CACzB,MAAMm7C,EAAQ,IAAI,cAAc,OAAOn7C,CAAK,EACtCq+K,EAAY,MAAM,KAAKljI,EAAO2yD,GAAQ,OAAO,cAAcA,CAAI,CAAC,EAAE,KAAK,EAAE,EAC/E,OAAO,KAAKuwE,CAAS,CAC7B,CACA,EACAd,sBAAA,eAAyBK,EACzBA,EAAe,UAAYJ,EAAW,UAAU,gBAAgB,iBAAkBC,EAAe,OAAO,2HCnFxG,IAAIxuJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sBAA2B,EAAE+D,CAAO,+PCfjD,OAAO,eAAegvJ,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAMC,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC+xC,EAAsD9xC,cAAA,EACtDokD,EAAoEnkD,cAAA,EACpE+mC,EAAoB9mC,uBAA0B,EAIpD,IAAA6uJ,EAAA,cAAwCD,EAAsB,mBAAoB,CAC9E,YAAYx8K,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,SAAS2nD,EAAwB,oBAAoB3nD,EAAO,SAAS,KAG1D6D,EAAO,UAAU,CAAE,aAAc,CAAC,CAAE,KAFhCA,EAAO,UAAU,SAAS,KAAK,IAAI,gDAAgD,CAG1G,CACI,MAAM,IAAI7D,EAAQ,CAEd,MAAMw1C,EAA0Bx1C,EAAO,QAClC,IAAI2F,EAAkB,cAAc,uBAAuB,EAC5D6vC,IACAA,EAAwB,aAAax1C,EAAO,UAAU,KAAM,OAAWA,EAAO,UAAWA,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,qBAAqB,EAAG,KAAK,KAAM,EAAE,EACjL3F,EAAO,QAAUA,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,sBAAuB3F,EAAO,SAAS,GAE/G,MAAM2hD,KAAoBgG,EAAwB,oBAAoB3nD,EAAO,SAAS,EAChFuyJ,EAAgB5wG,EAAc,QAAU3hD,EAAO,QAAQ,MAAM2hD,EAAc,OAAO,EAAI3hD,EAAO,QAGnG,IAAIw+E,EAAY,GAQhB,GAPAj0C,EAAkB,KAAK,iBAAiBvqC,EAAO,UAAW,CACtD,WAAY,CACR,OAAAw+E,EAAY,GACL,EACV,CACb,CAAS,EAEGA,EAAW,CACX,MAAMg0E,EAAa7wG,EAAc,OAAO,WAAW3hD,EAAO,UAAWuyJ,CAAa,EAC5E19G,KAAeQ,EAAiB,kBAAkBm9G,CAAU,EAClE,MAAO,CACH,KAAM,QACN,WAAAA,EACA,SAAA39G,CACH,CACb,CAEQ,OAAQ70C,EAAO,UAAU,KAAI,CACzB,KAAKuqC,EAAkB,QAAQ,MAAM,IACjC,MAAO,CACH,KAAM,UACN,QAAS,IAAMoX,EAAc,OAAO,aAAa3hD,EAAO,UAAWuyJ,CAAa,CACnF,EACL,KAAKhoH,EAAkB,QAAQ,MAAM,iBACrC,KAAKA,EAAkB,QAAQ,MAAM,cACrC,KAAKA,EAAkB,QAAQ,MAAM,KACrC,KAAKA,EAAkB,QAAQ,MAAM,MACrC,KAAKA,EAAkB,QAAQ,MAAM,OACrC,KAAKA,EAAkB,QAAQ,MAAM,KACrC,KAAKA,EAAkB,QAAQ,MAAM,IACrC,KAAKA,EAAkB,QAAQ,MAAM,KACrC,KAAKA,EAAkB,QAAQ,MAAM,KACjC,MAAO,CACH,KAAM,OACN,QAAS,IAAMoX,EAAc,OAAO,UAAU3hD,EAAO,UAAWuyJ,CAAa,CAChF,CACjB,CACQ,MAAMj5D,EAAiB33C,EAAc,OAAO,cAAc3hD,EAAO,UAAWuyJ,CAAa,EACnF19G,KAAeQ,EAAiB,qBAAqBikD,CAAc,EACzE,MAAO,CACH,KAAM,WACN,eAAAA,EACA,SAAAzkD,CACH,CACT,CACA,EACAu9G,iCAAA,0BAAoCK,sIChFpC,IAAI1vJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iCAAsC,EAAE+D,CAAO,uRCf5D,OAAO,eAAesvJ,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAM/sJ,EAAwDtG,cAAA,EACxDwE,EAAkCR,cAAA,EAKxC,IAAAsvJ,EAAA,cAA4C9uJ,EAAO,QAAS,CACxD,YAAYhuB,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,YAAYmqB,EAAQ+hD,EAAa,CAEnC,MAAM7lB,EAAS,CAAE,EACX4zD,EAAW/tC,EAAY,IAAI,CAAC,CAAE,MAAAG,CAAO,IAAKA,CAAK,EAC/CvgE,GAAW,MAAM,QAAQ,IAAImuG,CAAQ,GAAG,IAAKvsC,GAAe,CAC9D,GAAIA,EAAW,WAAY,CACvBrnB,EAAO,KAAKqnB,EAAW,gBAAgB,EAEvC,MAChB,CACY,MAAO,CAAE,MAAOA,EAAW,IAAK,EAAE,SAAUA,EAAW,aAAe,CAClF,CAAS,EAED,IAAIqvG,EAAQjxK,EAEP,IAAKzN,GAAW,CACjB,GAAIA,EACA,OAAOA,EAAO,MAAM,WAAa,KAAK,UAClCA,EAAO,MAAM,eAAiB,KAAK,aACnCA,EAAO,MAAM,cAAgB,KAAK,WAClCA,EAAO,MAAM,YAAc,KAAK,QAEpD,CAAS,EACD,MAAM2+K,EAAU,KAAK,IAAI,GAAGD,EAAM,OAAOl2D,GAAQA,IAAS,MAAS,CAAC,EAI9Do2D,EAAiB9yJ,EAAO,QAAQ,IAAI2F,EAAkB,mBAAmB,cAAc,EACzFmtJ,IACAF,EAAQA,EAAM,IAAI,CAACl2D,EAAM7jI,IACjB6jI,IAAS,SAAc/6G,EAAQ9oB,CAAC,GAAG,OAAO,cAAgB,IACzD8oB,EAAQ9oB,CAAC,GAAG,OAAO,WAAai6L,EAC1Bp2D,EAAOm2D,EAEXn2D,CACV,GAGL,IAAIq2D,EAAW,GACXC,EAAW,OAAO,kBACtB,SAAW,CAACn6L,EAAG6jI,CAAI,IAAKk2D,EAAM,QAAO,EAC7Bl2D,IAAS,SAAcq2D,IAAa,IAAMr2D,EAAOs2D,KACjDD,EAAWl6L,EACXm6L,EAAWt2D,GAInB,GAAIq2D,EAAW,EACX,SAAWlvJ,EAAO,UAAU,KAAK,wBAAwB7D,EAAQk8B,CAAM,CAAC,EAG5E,MAAM+2H,EAAYlxG,EAAYgxG,CAAQ,EAAE,MAExC,OAAIE,EAAU,eACVpvJ,EAAO,MAAM,iBAAiB7D,EAAO,OAAO,GAAG,MAAM,sCAAsCizJ,EAAU,WAAW,IAAIA,EAAU,YAAY,IAAK,CAC3I,QAASjzJ,EAAO,QAAQ,OACxB,UAAW,MAAM,QAAQ,IAAIA,EAAO,QAC/B,IAAI,MAAOtX,IAAW,MAAMA,EAAM,OAAO,SAAQ,GAAI,UAAU,IAAI8d,GAAYA,EAAS,SAAS,KAAK,CAAC,CAAC,EAC7G,MAAO,OAAO,YAAYosJ,EAAM,IAAI,CAACM,EAAOr6L,IAAM,CAC9C,GAAGkpF,EAAYlpF,CAAC,EAAE,MAAM,WAAW,IAAIkpF,EAAYlpF,CAAC,EAAE,MAAM,YAAY,GACxEq6L,CACpB,CAAiB,EAAE,OAAOxqK,GAASA,EAAM,CAAC,IAAM,MAAS,CAAC,EAC1C,aAAc,OAAO,YAAY/G,EAAQ,IAAI,CAACzN,EAAQrb,IAAM,CACxD,GAAGkpF,EAAYlpF,CAAC,EAAE,MAAM,WAAW,IAAIkpF,EAAYlpF,CAAC,EAAE,MAAM,YAAY,GACxEqb,GAAQ,KAC5B,CAAiB,EAAE,OAAOwU,GAASA,EAAM,CAAC,IAAM,MAAS,CAAC,CAC1D,CAAa,KAEMmb,EAAO,sBAAsBovJ,EAAWtxK,EAAQoxK,CAAQ,EAAE,QAAQ,CACrF,CACA,EACAL,qCAAA,8BAAwCS,0ICnFxC,IAAIpwJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,2NCfhE,OAAO,eAAegwJ,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMvvJ,EAAkCxE,cAAA,EAYxC,IAAAg0J,EAAA,cAAkCxvJ,EAAO,KAAM,CAQ3C,YAAYhuB,EAAM,CACd,MAAMA,CAAI,CAClB,CACA,EACAu9K,2BAAA,oBAA8BE,gRC1B9B,OAAO,eAAeC,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAM1vJ,EAAkCxE,cAAA,EAClC+zJ,EAAwD/vJ,2BAAA,EAM9D,IAAAmwJ,EAAA,cAA4CJ,EAAsB,mBAAoB,CAClF,YAAYv9K,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,oBAAsB,CAAE,EAC7B,KAAK,oBAAsB,CAAE,CACrC,CACI,sBAAsBw+D,EAAU,CAC5B,KAAK,oBAAoB,KAAKA,CAAQ,CAC9C,CACI,MAAM,KAAKlwC,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,UAAWq0C,KAAY,KAAK,oBACxBA,EAASr0C,CAAM,EAEnB,MAAO,CAAE,CACjB,CACA,EACAuzJ,qCAAA,8BAAwCE,0IC5BxC,IAAI1wJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2BAAgC,EAAE+D,CAAO,EACtDD,EAAaE,qCAA0C,EAAED,CAAO,2KChBhE,OAAO,eAAeswJ,YAAS,aAAc,CAAE,MAAO,GAAM,EACzCA,YAAA,YAAG,OACtB,MAAM7vJ,EAAkCxE,cAAA,EAKxC,IAAAs0J,EAAA,cAA0B9vJ,EAAO,QAAS,CACtC,YAAYhuB,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,QAAQmqB,EAAQ,CAElB,MAAM4zJ,EAAgB,CAAE,EACxB,IAAI7xG,EACJ,GAAI,CACAA,EAAc,KAAK,QAAQ/hD,CAAM,CAC7C,MACc,CACF+hD,EAAc,CAAE,CAC5B,CACQ,UAAWwB,KAAcxB,EAAa,CAClC,MAAMG,EAAQ,MAAMqB,EAAW,MAC3BrB,EAAM,YACN0xG,EAAc,KAAK,CAAE,MAAOrwG,EAAW,MAAO,SAAUrB,EAAM,YAAW,EAAI,CAE7F,CAGQ,OADgB,MAAM,QAAQ,IAAI0xG,EAAc,IAAI1/K,GAAUA,EAAO,MAAM,cAAc8rB,EAAQ9rB,EAAO,QAAQ,CAAC,CAAC,GACnG,CAAC,CACxB,CACI,MAAM,aAAc,CAChB,MAAM,IAAI,MAAM,gDAAgD,CACxE,CACA,EACAw/K,mBAAA,YAAsBG,wHCnCtB,IAAI9wJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mBAAwB,EAAE+D,CAAO,qTCf9C,OAAO,eAAe0wJ,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAMh4D,EAA4Ez8F,cAAA,EAC5EwE,EAAkCR,cAAA,EAIxC,IAAA0wJ,EAAA,cAAiDj4D,EAA4B,uBAAwB,CACjG,YAAYjmH,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKsuB,EAAS,CAChB,SAAWN,EAAO,UAAU,CAAE,SAAU,IAAK,CAAE,CACvD,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMg0J,EAAmB,CAAC,GAAGh0J,EAAO,OAAO,EACrCi0J,EAAe,CAAE,EACvB,KAAOD,EAAiB,OAAS,GAAG,CAChC,IAAIE,EAAiB,OAAO,UACxBC,EAAgB,GACpB,SAAW,CAACC,EAAqBC,CAAc,IAAKL,EAAiB,QAAO,EAAI,CAC5E,KAAM,CAAE,YAAAM,CAAa,EAAG,MAAM,KAAK,wBAAwB,QAAQ,CAC/D,QAAS,CAACD,EAAgB,GAAGJ,CAAY,EACzC,QAASj0J,EAAO,OACpC,CAAiB,EACGs0J,EAAcJ,IACdA,EAAiBI,EACjBH,EAAgBC,EAEpC,CACYH,EAAa,KAAKD,EAAiBG,CAAa,CAAC,EACjDH,EAAiB,OAAOG,EAAe,CAAC,CACpD,CACQ,MAAO,CAAE,QAASF,CAAc,CACxC,CACA,EACAH,0CAAA,mCAA6CS,+ICpC7C,IAAIxxJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0CAA+C,EAAE+D,CAAO,6PCfrE,OAAO,eAAeoxJ,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAMrzG,EAA0C9hD,qBAAA,EAIhD,IAAAo1J,EAAA,cAA8BtzG,EAAgB,iBAAkB,CAC5D,YAAY3rE,EAAQk/K,EAAW9/K,EAAS,CACpC,MAAMY,EAAQZ,CAAO,EACrB,KAAK,MAAQ,CAAE,EACf,KAAK,UAAY8/K,CACzB,CACI,wBAAyB,CACrB,MAAMj1L,EAAK,IAAI0hF,EAAgB,cAAc,KAAK,MAAO,CAAE,UAAW,GAAO,EAC7E,YAAK,MAAQ,CAAE,EACR1hF,CACf,CACI,WAAWqhB,EAAMs8D,EAAMS,EAAM,CACzB,KAAK,MAAM,KAAK/8D,CAAI,EAChB,KAAK,MAAM,QAAU,KAAK,WAC1B+8D,EAAK,KAAK,wBAAwB,EAEtCT,EAAM,CACd,CACI,OAAOA,EAAM,CACL,KAAK,MAAM,OAAS,GACpB,KAAK,MAAM,KAAK,wBAAwB,EAE5C,MAAM,OAAOA,CAAI,CACzB,CACA,EACAo3G,uBAAA,gBAA0BG,8LC/B1B,OAAO,eAAeC,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAMzzG,EAA0C9hD,qBAAA,EAKhD,IAAAw1J,EAAA,cAA+B1zG,EAAgB,aAAc,CACzD,YAAY3rE,EAAQZ,EAAS,CACzB,MAAO,EACP,KAAK,QAAUA,EAAQ,QACvB,KAAK,QAAUY,EAEf,KAAK,QAAQ2rE,EAAgB,WAAW,EAAI,KAC5C,KAAK,QAAQ,GAAG,MAAOvE,CAAgB,EACvC,KAAK,QAAQ,GAAG,QAASC,CAAoB,EAC7C,KAAK,QAAQ,GAAG,WAAYC,CAAsB,EAClD,KAAK,SAAW,KAAK,QAAQ,QACrC,CACI,MAAO,CACH,MAAM/c,EAAM,KAAK,QAAQ,KAAM,EAC/B,OAAKA,IAED,KAAK,SAAW,GAEZ,KAAK,QAAQ,MACb,KAAK,MAAO,GAGbA,CACf,CACI,KAAK0a,EAAS,CACV,KAAK,QAAS,EACd,KAAK,QAAQ,eAAe,MAAOmC,CAAgB,EACnD,KAAK,QAAQ,eAAe,QAASC,CAAoB,EACzD,KAAK,QAAQ,eAAe,WAAYC,CAAsB,EAC9D,OAAO,KAAK,QAAQqE,EAAgB,WAAW,EAC/C,KAAK,QAAQ,QAAS,EACtB,MAAM,KAAK1G,CAAO,CAC1B,CACA,EACAm6G,iBAAA,iBAA2BE,EAE3B,SAASh4G,GAAyB,CAC9B,KAAKqE,EAAgB,WAAW,EAAE,SAAW,EACjD,CACA,SAAStE,EAAqBziE,EAAO,CACjC,KAAK+mE,EAAgB,WAAW,EAAE,KAAK,QAAS/mE,CAAK,CACzD,CACA,SAASwiE,GAAmB,CACxB,KAAKuE,EAAgB,WAAW,EAAE,MAAO,CAC7C,2PCnDA,OAAO,eAAe4zG,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAM5zG,EAA0C9hD,qBAAA,EAIhD,IAAA21J,EAAA,cAAwC7zG,EAAgB,iBAAkB,CACtE,YAAY3rE,EAAQZ,EAAS,CACzB,MAAMY,EAAQZ,CAAO,EACrB,KAAK,QAAUA,EAAQ,OAC/B,CACI,KAAK6lE,EAAS,CACV,KAAK,QAAS,EACd,MAAM,KAAKA,CAAO,CAC1B,CACA,EACAs6G,iCAAA,0BAAoCE,oNChBpC,OAAO,eAAeC,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAK7B,SAASC,EAAmB7rK,EAAU,CAClC,MAAM8rK,EAAW,CACb,MAAO,EACP,SAAU,EACV,SAAU,CACb,EACD,OAAAC,EAAwB/rK,EAAU8rK,EAAU,EAAI,EACzC,IAAI,QAASzgH,GAAY,CAC5BrrD,EAAS,GAAG,MAAO,IAAM,CACrBqrD,EAAQygH,CAAQ,CAC5B,CAAS,CACT,CAAK,CACL,CACAF,mBAAA,mBAA6BC,EAC7B,SAASE,EAAwB/rK,EAAU4+B,EAAStpC,EAAK,CACrD,GAAI,EAAE,yBAA0B0K,GAAW,CAIvC,GAFAA,EAAS,qBAAuB,GAE5B,UAAWA,EAAU,CACrB,MAAMgsK,EAAUhsK,EAAS,MACzBA,EAAS,MAAQ,CAACuI,EAAOurD,IAAS,CAC9B,MAAMm4G,EAAY,YAAY,IAAK,EACnCD,EAAQ,KAAKhsK,EAAUuI,EAAO,IAAM,CAChCq2B,EAAQ,UAAY,YAAY,IAAK,EAAGqtI,EACxCn4G,EAAM,CAC1B,CAAiB,CACJ,CACb,CAEQ,GAAI,SAAU9zD,EAAU,CAEpB,MAAMgsK,EAAUhsK,EAAS,KACzBA,EAAS,KAAO,IAAM,CAClB,MAAMisK,EAAY,YAAY,IAAK,EAC7Bx1H,EAAMu1H,EAAQ,KAAKhsK,CAAQ,EACjC,OAAI1K,GAAOmhD,GACP7X,EAAQ,QAEZA,EAAQ,UAAY,YAAY,IAAK,EAAGqtI,EACjCx1H,CACV,CACb,CAEQ,GAAInhD,EAAK,CACL,MAAM22K,EAAY,YAAY,IAAK,EACnCjsK,EAAS,GAAG,MAAO,IAAM,CACrB4+B,EAAQ,SAAW,YAAY,IAAK,EAAGqtI,CACvD,CAAa,CACb,CAEY,YAAajsK,GACb+rK,EAAwB/rK,EAAS,QAAS4+B,EAAS,EAAK,CAEpE,CACA,qIC7DA,IAAInlB,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uBAA4B,EAAE+D,CAAO,EAClDD,EAAaE,wBAA6B,EAAED,CAAO,EACnDD,EAAaG,iCAAsC,EAAEF,CAAO,EAC5DD,EAAaI,0BAA+B,EAAEH,CAAO,uJClBrD,OAAO,eAAeoyJ,aAAS,aAAc,CAAE,MAAO,GAAM,EACxCA,aAAA,aAAG,OACvB,MAAM7vJ,EAAwDtG,cAAA,EACxDwE,EAAkCR,cAAA,EAClCoyJ,EAAsDnyJ,cAAA,EACtD+xC,EAAsD9xC,cAAA,EAY5D,IAAAmyJ,EAAA,MAAMC,WAAqB9xJ,EAAO,KAAM,CASpC,YAAYhuB,EAAMjB,EAAS,CACvB,MAAMiB,CAAI,EAIV,KAAK,cAAgB,GACrB,KAAK,YAAcjB,EAAQ,YAC3B,KAAK,aAAeA,EAAQ,aAC5B,KAAK,aAAeA,EAAQ,cAAgB,OAAO,kBACnD,KAAK,gBAAkBA,EAAQ,iBAAmB,GAClD,KAAK,gBAAkBA,EAAQ,iBAAmB,GAClD,KAAK,OAASA,EAAQ,QAAU,GAChC,KAAK,wBAA0BA,EAAQ,yBAA2B,EAC1E,CAMI,OAAO,qBAAqBghL,EAAW,CACnC,MAAMC,EAAmB,CAAE,EAC3B,UAAWhhH,KAAY+gH,EACnB,UAAWpvJ,KAAYquC,EAAS,UAAW,CAClCghH,EAAiBrvJ,EAAS,SAAS,KAAK,IACzCqvJ,EAAiBrvJ,EAAS,SAAS,KAAK,EAAI,CACxC,SAAUA,EAAS,SACnB,WAAYA,EAAS,WACrB,YAAa,CAChB,GAEL,MAAM9d,EAAQmtK,EAAiBrvJ,EAAS,SAAS,KAAK,EACtD9d,EAAM,WAAaA,EAAM,YAAc8d,EAAS,WAChD9d,EAAM,aACtB,CAEQ,OAAO,OAAO,OAAOmtK,CAAgB,EAChC,OAAOntK,GAASA,EAAM,cAAgBktK,EAAU,MAAM,EACtD,IAAIltK,IAAU,CAAE,SAAUA,EAAM,SAAU,WAAYA,EAAM,UAAU,EAAG,CACtF,CAQI,OAAO,cAAc2hB,EAAaurJ,EAAWhgL,EAAW,GAAO,CAC3D,MAAMigL,EAAmB,CAAE,EAC3B,IAAIn7J,EAAQ,GACZ,UAAWm6C,KAAY+gH,EAAW,CAC9B,UAAWpvJ,KAAYquC,EAAS,UAC5BghH,EAAiBrvJ,EAAS,SAAS,KAAK,EAAIqvJ,EAAiBrvJ,EAAS,SAAS,KAAK,GAAKA,EAAS,YAC7F,CAAC9L,GAAS9kB,GAAY,EAAE4wB,EAAS,SAAS,SAASqvJ,GAE5Dn7J,EAAQ,EACpB,CACQ,OAAO,OAAO,QAAQm7J,CAAgB,EACjC,IAAI,CAAC,CAACC,EAAeC,CAAU,KAAO,CAAE,SAAU1rJ,EAAY,SAASyrJ,CAAa,EAAG,WAAAC,CAAY,EAAC,CACjH,CAMI,OAAO,gBAAgBpzI,EAAU,CAC7B,GAAIA,EAAS,SAAW,EACpB,OAAO,KAEX,GAAIA,EAAS,SAAW,EACpB,OAAOA,EAAS,CAAC,EAErB,IAAIkH,EAAMlH,EAAS,CAAC,EACpB,UAAWlK,KAAWkK,EAAS,MAAM,CAAC,EAAG,CACrC,MAAMhzB,EAASk6B,EAAI,MAAMpR,CAAO,EAChC,GAAI,CAAC9oB,EACD,OAAO,KAEXk6B,EAAMl6B,CAClB,CACQ,OAAOk6B,CACf,CAMI,OAAO,eAAegrB,EAAU,CAC5B,OAAOA,EAAS,WACxB,CAKI,aAAa,aAAa5pD,EAAS,CAC/B,OAAO,MAAM,QAAQ,IAAIA,EAAQ,IAAIvC,GAASA,EAAM,OAAO,SAAQ,CAAE,CAAC,CAC9E,CAKI,aAAa,wBAAwBuC,EAAS,CAC1C,MAAM2qK,EAAY,MAAMD,GAAa,aAAa1qK,CAAO,EACzD,OAAOA,EAAQ,IAAI,CAACvC,EAAO7vB,KAAO,CAAE,GAAG6vB,EAAO,SAAUktK,EAAU/8L,CAAC,CAAG,EAAC,CAC/E,CAKI,OAAO,uBAAuB+8L,EAAW,CACrC,OAAOA,EAAU,IAAI/gH,GAAYA,EAAS,SAAW,EAAIA,EAAS,aAAe,CAAC,CAC1F,CAKI,OAAO,oBAAoB+gH,EAAW,CAClC,OAAOA,EACF,IAAI/gH,GAAYA,EAAS,UAAYA,EAAS,aAAe,GAAKA,EAAS,SAAW,CAAC,CACpG,CAKI,eAAe+gH,EAAW,CAEtB,MAAM36I,EAAQ,IAAIo6B,EAAiB,wBAC7Bf,EAAqB,IAAMr5B,EAAM,WAAY,EACnD,UAAW45B,KAAY+gH,EACnB/gH,EAAS,MAAM,sBAAsBP,CAAkB,EAE3D,OAAOr5B,CACf,CAUI,MAAM,wBAAwBhwB,EAAS2qK,EAAWz3K,EAAS63K,EAAkB,CAAE,EAAEpgL,EAAW,GAAO,CAC/F,IAAIqgL,EACJ,GAAID,EAAgB,YAChBC,EAAoBD,EAAgB,gBAEnC,CACD,IAAIE,EAAqB,GACzBD,EAAoBL,EACf,OAAO,CAAC/rI,EAAKgrB,IAAa,CAC3B,MAAMshH,EAAkBR,GAAa,eAAe9gH,CAAQ,EAC5D,OAAIshH,EAAgB,QAAU,IAC1BD,EAAqB,IAElB,CACH,KAAMC,EAAgB,OAAS,WAAa,WAAatsI,EAAI,KAC7D,MAAOA,EAAI,OAASj0C,EAAW,KAAK,IAAI,EAAGugL,EAAgB,KAAK,EAAIA,EAAgB,MACvF,CACJ,EAAE,CAAE,KAAM,QAAS,MAAO,CAAC,CAAE,GAE1B,CAACD,GAAsBtgL,KACvBqgL,EAAkB,QAAU,MAAM,KAAK,wBAAwB,QAAQ,CAAE,QAAAhrK,EAAS,QAAA9M,CAAS,CAAA,GAAG,YAC1F83K,EAAkB,QAAU,IAC5BA,EAAkB,MAAQ,OAAO,WAGrD,CACQ,MAAO,CACH,MAAO,KAAK,eAAeL,CAAS,EACpC,GAAGI,EACH,YAAa,CACT,KAAMC,EAAkB,KACxB,MAAOA,EAAkB,KAC5B,EACD,UAAWN,GAAa,cAAcx3K,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EAAGiwJ,EAAWhgL,CAAQ,CAC1H,CACT,CAQI,aAAa,gBAAgBwgL,EAAyBnrK,EAAS9M,EAAS,CAGpE,GADqB8M,EAAQ,KAAKvC,GAASA,EAAM,SAAS,UAAU,KAAK8d,GAAYA,EAAS,UAAU,CAAC,EAErG,SAAW3C,EAAO,UAAU5Y,CAAO,EAGvC,MAAMorK,EAAsB,CAAE,EAC9B,UAAW3tK,KAASuC,EAChB,UAAWub,KAAY9d,EAAM,SAAS,UAAW,CAC7C,IAAIw/B,EAAUmuI,EAAoB7vJ,EAAS,SAAS,KAAK,EACpD0hB,IACDA,EAAU,GAEdmuI,EAAoB7vJ,EAAS,SAAS,KAAK,EAAI,EAAE0hB,CACjE,CAGQ,MAAMouI,EAA2B,CAAE,EACnC,SAAW,CAAC9vJ,EAAU3U,CAAK,IAAK,OAAO,QAAQwkK,CAAmB,EAC1DxkK,GAAS,GACTykK,EAAyB,KAAK9vJ,CAAQ,EAI9C,OAAI8vJ,EAAyB,SAAW,KACzBzyJ,EAAO,UAAU,mEAAmE,KAExFA,EAAO,WAAW,MAAMuyJ,EAAwB,QAAQ,CAAE,QAAAnrK,EAAS,QAAA9M,EAAS,GAAG,OAAO,CACzG,CAQI,MAAM,KAAK6hB,EAAQ,CAEf,GAAIA,EAAO,OAAS,KAAK,YACrB,SAAW6D,EAAO,UAAU,GAAG,KAAK,IAAI,2CAA2C,KAAK,WAAW,aAAa7D,EAAO,IAAI,cAAc,EAG7I,GAAIA,EAAO,QAAQ,QAAU,EACzB,SAAW6D,EAAO,UAAU,GAAG,KAAK,IAAI,sCAAsC,EAGlF,GAAI,KAAK,gBAAkB7D,EAAO,QAAQ,OAAS,KAAK,aAAeA,EAAO,QAAQ,OAAS,KAAK,aAChG,SAAW6D,EAAO,UAAU,GAAG,KAAK,IAAI,aAAa,KAAK,YAAY,oBAAoB,KAAK,gBAAkB,QAAU,MAAM,yBAAyB7D,EAAO,QAAQ,MAAM,GAAG,EAGtL,UAAWtX,KAASsX,EAAO,QACvB,GAAItX,EAAM,OAAO,OAAS,WAEtB,SAAWmb,EAAO,UAAU,8DAA8Dnb,EAAM,OAAO,IAAI,GAAG,EAGtH,MAAMktK,EAAY,MAAMD,GAAa,aAAa31J,EAAO,OAAO,EAEhE,IAAIu2J,EACJ,MAAI,CAAC,KAAK,kBACNA,EAAuBZ,GAAa,qBAAqBC,CAAS,EAC9DW,EAAqB,KAAK/vJ,GAAYA,EAAS,UAAU,MAC9C3C,EAAO,UAAU,SAAS,KAAK,IAAI,yCAAyC,EAI3F,KAAK,0BACJ0yJ,GAAwBZ,GAAa,qBAAqBC,CAAS,GAAG,SAAW,KACvE/xJ,EAAO,UAAU,SAAS,KAAK,IAAI,0DAA0D,EAErG,MAAM,KAAK,oBAAoB7D,EAAQ,CAAE,UAAA41J,CAAS,CAAE,CACnE,CAOI,MAAM,IAAI51J,EAAQ8B,EAAU,CAGxB,IAAI00J,EACAx2J,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,uBAAuB,IAC1E6wJ,EAA8Bx2J,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,qBAAqB,EACtG3F,EAAO,QAAUA,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,sBAAuB3F,CAAM,GAGrG,MAAMw1C,EAA0Bx1C,EAAO,QAAQ,IAAI2F,EAAkB,cAChE,uBAAuB,EAC5B,IAAI8wJ,EACA,KAAK,eAAiBjhH,IACtBihH,EAAe,CAAE,EAEjBjhH,EAAwB,cAAcghH,EAA6BliL,GAAQA,EAAK,gBAAgB,WAAW,MAAM,CAAC,EAClHkhE,EAAwB,aAAa,QAAQ,KAAK,WAAW,GAAI,KAAK,aAAcx1C,EAAQw2J,EAA6B,KAAK,KAAMC,CAAY,GAGpJ,KAAM,CAAE,OAAAviL,EAAQ,qBAAAwiL,CAAsB,EAAG,MAAM,KAAK,UAAU12J,EAAQ8B,CAAQ,EAE9E,GAAI20J,EAAc,IAEVhB,EAAiB,oBAAoBvhL,EAAO,cAAc,EACzD,KAAMkhL,GAAa,CACpB5/G,EAAwB,eAAex1C,EAAQ,CAC3C,gBAAiBo1J,EAAS,MAC1B,SAAUA,EAAS,SACnB,SAAUA,EAAS,QACvC,CAAiB,CACjB,CAAa,EACD,OAAO,OAAOqB,EAAcC,CAAoB,EAChD,MAAMC,EAAgB70J,EAAS,UAAU,IAAI6zJ,GAAa,cAAc,EAIxE,GAHAc,EAAa,cAAgBE,EAC7BF,EAAa,kBAAoB,MAAM,KAAK,oBAAoBz2J,EAAQ8B,CAAQ,GAAG,WAAY,EAE3F,KAAK,OACL,QAASjpC,EAAI,EAAGA,EAAImnC,EAAO,QAAQ,OAAQnnC,IAAK,CAC5C,MAAM6vB,EAAQsX,EAAO,QAAQnnC,CAAC,EAC9B28E,EAAwB,aAAa9sD,EAAM,UAAWsX,CAAM,EAC5Dw1C,EAAwB,eAAe9sD,EAAM,UAAW,CAAE,YAAaiuK,EAAc99L,CAAC,EAAG,CAC7G,CAEA,CAEQ,OAAAqb,EAAO,YAAemhE,EAAiB,iBAAiBnhE,EAAO,QAAQ,EAChEA,CACf,CACA,EACAshL,oBAAA,aAAuBG,yHClVvB,IAAI5yJ,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oBAAyB,EAAE+D,CAAO,qLCf/C,OAAO,eAAewzJ,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMC,EAAkDx3J,cAAA,EAClDwE,EAAkCR,cAAA,EAIxC,IAAAyzJ,EAAA,cAAiCD,EAAe,YAAa,CACzD,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,SACd,aAAc,CAC1B,CAAS,EACD,KAAK,cAAgB,EAC7B,CACI,MAAM,KAAKmqB,EAAQ,CAEf,OAAIA,EAAO,QAAQ,SAAW,KACf6D,EAAO,UAAU,SAAS,KAAK,IAAI,+BAA+B,EAE1E,MAAM,KAAK,oBAAoB7D,EAAQ,MAAS,CAC/D,CACI,MAAM,UAAUA,EAAQ,CACpB,MAAO,CACH,OAAQA,EAAO,QAAQ,CAAC,EAAE,MAC7B,CACT,CACI,MAAM,oBAAoBA,EAAQ8B,EAAU,CACxC,SAAW+B,EAAO,sBAAsB,CACpC,WAAY,EACZ,eAAgB,EAChB,cAAe,EACf,YAAa,CAChB,EAAE/B,CAAQ,CACnB,CACA,EACA80J,0BAAA,mBAA6BG,+HCrC7B,IAAIh0J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0BAA+B,EAAE+D,CAAO,6OCfrD,OAAO,eAAe4zJ,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMH,EAAkDx3J,cAAA,EAClDsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC+xC,EAAsD9xC,cAAA,EACtD49C,EAA0C39C,qBAAA,EAIhD,IAAAyzJ,EAAA,cAAqCJ,EAAe,YAAa,CAC7D,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,cACd,gBAAiB,EAC7B,CAAS,CACT,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAK,MAAM62J,EAAe,aAAa,aAAa72J,EAAO,OAAO,GAC7D,MAAM60C,GAAYgiH,EAAe,aAAa,eAAehiH,CAAQ,EAAE,MAAQ,CAAC,KACtEhxC,EAAO,UAAU,SAAS,KAAK,IAAI,oDAAoD,EAE/F,MAAM,KAAK7D,CAAM,CAChC,CACI,MAAM,UAAUA,EAAQ,CAEpB,UAAWtX,KAASsX,EAAO,QACvBtX,EAAM,OAAO,eAAe,MAAO,EAEvC,MAAM2hB,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EACtF,MAAO,CACH,OAAQ,CACJ,eAAgB,IAAIw7C,EAAgB,cAAc,CAAE,EAAE,CAAE,UAAW,GAAO,EAC1E,SAAU,UAAa,CACnB,MAAO,IAAI9L,EAAiB,wBAC5B,YAAa,CAAE,KAAM,QAAS,MAAO,CAAG,EACxC,UAAWwhH,EAAe,aAAa,cAAcxsJ,EAAa,MAAMwsJ,EAAe,aAAa,aAAa72J,EAAO,OAAO,CAAC,CACpJ,GACgB,KAAM,UACT,CACJ,CACT,CACI,MAAM,oBAAoBA,EAAQ8B,EAAU,CACxC,SAAW+B,EAAO,sBAAsB,CACpC,WAAY,EACZ,eAAgB,EAChB,cAAe,EACf,YAAa,CAChB,EAAE/B,CAAQ,CACnB,CACA,EACAk1J,8BAAA,uBAAiCE,mICpDjC,IAAIn0J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,8BAAmC,EAAE+D,CAAO,uOCfzD,OAAO,eAAe+zJ,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAO3B,IAAAC,EAAA,KAAuB,CACnB,YAAYjuK,EAAMkuK,EAAQ,CACtB,KAAK,KAAOluK,EAAK,IAAIzvB,GAAKA,EAAE,QAAQ,EACpC,KAAK,OAAS29L,EACd,KAAK,MAAQ,CAAE,CACvB,CACI,IAAI10I,EAAU7uC,EAAO,CACjB,OAAO,KAAK,MAAM,KAAK,OAAO6uC,EAAU,KAAK,IAAI,CAAC,EAAI7uC,CAC9D,CACI,IAAI6uC,EAAU,CACV,MAAMjpD,EAAI,KAAK,SAASipD,CAAQ,EAChC,OAAOjpD,EAAI,CAACA,CAAC,EAAI,CAAE,CAC3B,CACI,SAASipD,EAAU,CACf,OAAO,KAAK,MAAM,KAAK,OAAOA,EAAU,KAAK,IAAI,CAAC,CAC1D,CACI,QAAS,CACL,OAAO,OAAO,OAAO,KAAK,KAAK,CACvC,CACA,EACAw0I,wBAAA,iBAA2BG,2MC5B3B,OAAO,eAAeC,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAQ7B,IAAAC,EAAA,KAAyB,CACrB,YAAYruK,EAAMkuK,EAAQI,EAAsB,CAC5C,KAAK,KAAO,CAAE,EACd,KAAK,KAAOtuK,EAAK,IAAIzvB,GAAKA,EAAE,QAAQ,EACpC,KAAK,OAAS29L,EACd,KAAK,qBAAuBI,GAAwB,KAAK,KAAK,OAAS,CAC/E,CAMI,IAAI90I,EAAU7uC,EAAO,CACjB,GAAI,KAAK,sBAAwB,KAAK,gBAAgB6uC,CAAQ,EAAG,CAC7D,IAAI+0I,EAAS,KAAK,KAClB,QAAS7+L,EAAI,EAAGA,EAAI,KAAK,KAAK,OAAQA,IAAK,CACvC,MAAMsb,EAAM,KAAK,KAAKtb,CAAC,EACjB8+L,EAAU,KAAK,OAAOh1I,EAAS,IAAIxuC,CAAG,CAAC,EAC7C,IAAIyjL,EAAYF,EAAOC,CAAO,EACzBC,IACDA,EAAYF,EAAOC,CAAO,EAAI9+L,IAAM,KAAK,KAAK,OAAS,EAAIib,EAAQ,CAAE,GAEzE4jL,EAASE,CACzB,CACA,CACQ,OAAO9jL,CACf,CACI,gBAAgB6uC,EAAU,CACtB,IAAIk1I,EAAY,GAChB,UAAW1jL,KAAO,KAAK,KACnB,GAAIwuC,EAAS,IAAIxuC,CAAG,EAAG,CACnB0jL,EAAY,GACZ,KAChB,CAEQ,OAAOA,CACf,CAMI,IAAIl1I,EAAU,CAEV,OAAM,KAAK,sBAAwB,KAAK,gBAAgBA,CAAQ,EAGzD,KAAK,aAAaA,EAAU,KAAK,KAAM,CAAC,KAAK,IAAI,CAAC,EAF9C,CAAE,CAGrB,CACI,aAAaA,EAAUx5B,EAAM2uK,EAAa,CACtC,GAAI3uK,EAAK,SAAW,EAChB,OAAO2uK,EAEX,IAAI3jL,EAEJ,CAACA,EAAK,GAAGgV,CAAI,EAAIA,EACjB,MAAM4uK,EAAoB,CAAE,EAC5B,UAAW94K,KAAQ64K,EAAa,CAE5B,MAAMH,EAAU,KAAK,OAAOh1I,GAAU,IAAIxuC,CAAG,CAAC,EAC9C,GAAIwjL,EAAS,CAET,MAAMK,EAAW,CAAC/4K,EAAK04K,CAAO,EAAG14K,EAAK,EAAE,CAAC,EAAE,OAAO,OAAO,EACzD,GAAI+4K,EAAS,SAAW,EACpB,SAEJD,EAAkB,KAAK,KAAK,aAAap1I,EAAUx5B,EAAM6uK,CAAQ,CAAC,CAClF,KACiB,CAED,MAAMA,EAAW,OAAO,OAAO/4K,CAAI,EACnC,GAAI+4K,EAAS,SAAW,EACpB,SAEJD,EAAkB,KAAK,KAAK,aAAap1I,EAAUx5B,EAAM6uK,CAAQ,CAAC,CAClF,CACA,CACQ,OAAOD,EAAkB,KAAM,CACvC,CAQI,SAASp1I,EAAUs1I,EAAwB,GAAM,CAE7C,GAAM,KAAK,sBAAwB,KAAK,gBAAgBt1I,CAAQ,EAGhE,OAAO,KAAK,kBAAkBA,EAAU,KAAK,KAAM,CAAC,KAAK,IAAI,EAAGs1I,CAAqB,CAC7F,CACI,kBAAkBt1I,EAAUx5B,EAAM2uK,EAAaG,EAAuB,CAClE,GAAI9uK,EAAK,SAAW,EAChB,OAAO2uK,EAAY,CAAC,EAExB,IAAI3jL,EAEJ,CAACA,EAAK,GAAGgV,CAAI,EAAIA,EACjB,UAAWlK,KAAQ64K,EAAa,CAE5B,MAAMH,EAAU,KAAK,OAAOh1I,EAAS,IAAIxuC,CAAG,CAAC,EAC7C,GAAIwjL,GAAW,CAACM,EAAuB,CAEnC,MAAMD,EAAW,CAAC/4K,EAAK04K,CAAO,EAAG14K,EAAK,EAAE,CAAC,EAAE,OAAO,OAAO,EACzD,GAAI+4K,EAAS,SAAW,EACpB,SAEJ,MAAMj4H,EAAM,KAAK,kBAAkBpd,EAAUx5B,EAAM6uK,EAAUC,CAAqB,EAClF,GAAIl4H,EACA,OAAOA,CAE3B,KACiB,CAED,MAAMi4H,EAAW,OAAO,OAAO/4K,CAAI,EACnC,GAAI+4K,EAAS,SAAW,EACpB,SAEJ,MAAMj4H,EAAM,KAAK,kBAAkBpd,EAAUx5B,EAAM6uK,EAAUC,CAAqB,EAClF,GAAIl4H,EACA,OAAOA,CAE3B,CACA,CAEA,CACI,QAAS,CACL,OAAO,KAAK,KAAK,SAAW,EAAI,CAAE,EAAG,KAAK,aAAa,OAAW,KAAK,KAAM,CAAC,KAAK,IAAI,CAAC,CAChG,CACA,EACAw3H,0BAAA,mBAA6BW,qKC7I7B,OAAO,eAAe,eAAS,aAAc,CAAE,MAAO,GAAM,4HCA5D,IAAIn1J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wBAA6B,EAAE+D,CAAO,EACnDD,EAAaE,0BAA+B,EAAED,CAAO,EACrDD,EAAaG,sBAA2B,EAAEF,CAAO,8NCjBjD,IAAI+2C,EAAwC96C,qBAAA,EACxC8+C,EAAyBhE,EAAc,uBACvCgB,EAA0BhB,EAAc,wBAG5C,MAAMg+G,UAA8Bh6G,CACpC,CACI,YAAa7pD,EAAM8jK,EAAUC,EAASzjL,EACtC,CACI,MAAM0f,EAAM1f,CAAO,EAEnB,KAAK,SAAWwjL,EAChB,KAAK,QAAUC,CACvB,CAEI,mBAAoBC,EACpB,CACI,OAAO,IAAIn9G,EAAwB,KAAK,SAASm9G,CAAQ,EAAG,CAAE,UAAW,CAACC,EAAWn7G,EAAMS,IAC3F,CACI,IAAI3pE,EAAS,KAAK,QAAQokL,EAAUC,CAAS,EACzCrkL,IAAW,MACX2pE,EAAK3pE,CAAM,EACfkpE,EAAM,CAClB,CAAS,CAAC,CACV,CACA,CAEA,+BAAiB+6G,uJC3BjB,IAAIh+G,EAAwC96C,qBAAA,EAAC,cAG7C,MAAMm5J,UAAiBr+G,CACvB,CACI,YAAa7lD,EAAMC,EAAOkkK,EAASJ,EACnC,CACI,MAAO,EAEP,KAAK,kBAAoB,GACzB,KAAK,KAAO/jK,EACZ,KAAK,MAAQC,EACb,KAAK,QAAUkkK,EACf,KAAK,QAAUJ,EAEf,KAAK,QAAU,IAAI,IAEnB,KAAK,MAAW,KAChB,KAAK,QAAW,CAAE,EAClB,KAAK,SAAW,EAEhB,KAAK,KAAK,GAAG,QAAUj+K,GAAU,KAAK,QAAQA,CAAK,CAAC,EACpD,KAAK,MAAM,GAAG,QAAUA,GAAU,KAAK,QAAQA,CAAK,CAAC,EAErD,KAAK,SAAW,GAEhB,KAAK,KAAK,GAAG,MAAOs+K,EAAa,KAAK,IAAI,CAAC,EAE3C,SAASA,GACT,CACI,KAAK,SAAW,GAChB,KAAK,MAAM,GAAG,WAAY,IAAM,KAAK,SAAW,EAAI,EACpD,KAAK,MAAM,GAAG,MAAO,IAAM,CAAO,KAAK,WAAU,GAAI,KAAK,KAAI,CAAG,CAAE,CAC/E,CAEQ,KAAK,GAAG,cAAgB38G,GACxB,CACQA,IAAc,QAEd,KAAK,yBAA0B,CAE/C,CAAS,EACG,KAAK,KAAK,UACV,KAAK,yBAA0B,EACnC,KAAK,KAAK,GAAG,WAAY,IAAM,KAAK,0BAA0B,CACtE,CAEI,YACA,CACI,MAAO,CAAC,KAAK,MAAM,OAAS,KAAK,SAAW,KAAK,QAAQ,MACjE,CAEI,MACA,CACI,MAAM,KAAM,EACZ,KAAK,KAAK,QAAS,EACnB,KAAK,MAAM,QAAS,CAC5B,CAEI,MACA,CAGI,IAFA,KAAK,yBAA0B,IAEnB,CACR,GAAI,KAAK,OAAS,CAAC,KAAK,SACpB,OAAO,KAEX,KAAO,KAAK,SAAW,KAAK,QAAQ,QACpC,CACI,IAAIj7D,EAAO,KAAK,QAAQ,KAAK,UAAU,EACnC5M,EAAS,KAAK,QAAQ4M,EAAM,KAAK,KAAK,EAC1C,GAAI5M,IAAW,KACX,OAAOA,CAC3B,CAOY,GALK,KAAK,WAAY,GAClB,KAAK,KAAM,EAEf,KAAK,MAAQ,KAAK,MAAM,KAAM,EAE1B,KAAK,QAAU,KAEf,YAAK,SAAW,GACT,KAGX,IAAI+V,EAAO,KAAK,QAAQ,KAAK,KAAK,EAClC,KAAK,QAAU,KAAK,QAAQ,IAAIA,CAAI,GAAK,CAAE,EAC3C,KAAK,SAAW,CAC5B,CACA,CAEI,0BAA2B,CAClB,KAAK,oBAEN,KAAK,kBAAoB,GACzB,KAAK,iBAAkB,EAEnC,CAEI,kBACA,CACI,KAAK,KAAK,GAAG,OAAQ0uK,EAAQ,KAAK,IAAI,CAAC,EAEvC,SAASA,EAAQ73K,EACjB,CACI,IAAImJ,EAAO,KAAK,QAAQnJ,CAAI,EACxB6K,EAAM,KAAK,QAAQ,IAAI1B,CAAI,EAC1B0B,IACDA,EAAM,CAAE,EACR,KAAK,QAAQ,IAAI1B,EAAM0B,CAAG,GAE9BA,EAAI,KAAK7K,CAAI,CACzB,CACA,CACA,CAEA,kBAAiB03K,8KCrHjB,KAAM,CAAE,uBAAAr6G,EAAwB,wBAAAhD,EAAyB,aAAApB,CAAY,EAA6B16C,qBAAA,EAGlG,MAAMu5J,UAAuBz6G,CAC7B,CACI,YAAa7pD,EAAMC,EAAO8jK,EAASzjL,EACnC,CACI,MAAM0f,EAAM1f,CAAO,EAEnB,KAAK,MAAQ2f,EACb,KAAK,QAAU8jK,EACf,KAAK,GAAG,MAAO,IAAM,KAAK,MAAM,OAAO,CAC/C,CAEI,MACA,CACI,MAAM,KAAM,EACZt+G,EAAa,IAAM,KAAK,MAAM,QAAO,CAAE,CAC/C,CAEI,mBAAoBu+G,EACpB,CACI,OAAO,IAAIn9G,EAAwB,KAAK,MAAM,QAAS,CAAE,UAAW,CAACo9G,EAAWn7G,EAAMS,IACtF,CACI,IAAI3pE,EAAS,KAAK,QAAQokL,EAAUC,CAAS,EACzCrkL,IAAW,MACX2pE,EAAK3pE,CAAM,EACfkpE,EAAM,CAClB,CAAS,CAAC,CACV,CACA,CAEA,wBAAiBw7G,sMChCjB,IAAIz+G,EAAwC96C,qBAAA,EAAC,cAG7C,MAAMw5J,UAA0B1+G,CAChC,CACI,YAAa7lD,EAAMC,EAAOkkK,EAASJ,EACnC,CACI,MAAO,EAEP,KAAK,KAAQ/jK,EACb,KAAK,MAAQC,EAEb,KAAK,QAAUkkK,EACf,KAAK,QAAUJ,EAEf,KAAK,SAAW,GAChB,KAAK,QAAW,IAAI,IACpB,KAAK,SAAW,IAAI,IAEpB,KAAK,GAAG,MAAO,IAAM,KAAK,SAAQ,CAAI,EAEtC,KAAK,MAAW,KAChB,KAAK,QAAW,CAAE,EAClB,KAAK,SAAW,GAEZ,KAAK,KAAK,UAAY,KAAK,MAAM,YAEjC,KAAK,SAAW,IAGpB,KAAK,KAAK,GAAG,QAAUj+K,GAAU,KAAK,QAAQA,CAAK,CAAC,EACpD,KAAK,MAAM,GAAG,QAAUA,GAAU,KAAK,QAAQA,CAAK,CAAC,EAErD,KAAK,KAAK,GAAG,WAAY,IAAM,KAAK,SAAW,EAAI,EACnD,KAAK,MAAM,GAAG,WAAY,IAAM,KAAK,SAAW,EAAI,EAGpD,KAAK,KAAK,GAAI,MAAO,IAAM,CAAO,KAAK,WAAU,GAAI,KAAK,KAAI,CAAG,CAAE,EACnE,KAAK,MAAM,GAAG,MAAO,IAAM,CAAO,KAAK,WAAU,GAAI,KAAK,KAAI,CAAG,CAAE,CAC3E,CAEI,YACA,CAKI,MAAO,CAAC,KAAK,KAAK,OAAU,CAAC,KAAK,MAAM,OAAU,CAAC,CAAC,KAAK,SAAW,KAAK,SAAW,KAAK,QAAQ,MACzG,CAEI,UACA,CAEI,KAAK,QAAU,KACf,KAAK,SAAW,KAChB,KAAK,QAAU,IACvB,CAEI,MACA,CACI,MAAM,KAAM,EACZ,KAAK,KAAK,QAAS,EACnB,KAAK,MAAM,QAAS,CAC5B,CAEI,MACA,CACI,OAAW,CACP,GAAI,KAAK,MACL,OAAO,KAEX,KAAO,KAAK,SAAW,KAAK,QAAQ,QACpC,CACI,IAAI0G,EAAO,KAAK,QAAQ,KAAK,UAAU,EACnC5M,EAAS,KAAK,SAAW,KAAK,QAAQ,KAAK,MAAO4M,CAAI,EAAI,KAAK,QAAQA,EAAM,KAAK,KAAK,EAC3F,GAAI5M,IAAW,KACX,OAAOA,CAC3B,CAEiB,KAAK,WAAY,GAClB,KAAK,KAAM,EAEf,IAAI4M,EAAO,KAEX,QAASjoB,EAAI,EAAGA,EAAI,IAEhBioB,EAAO,KAAK,SAAW,KAAK,MAAM,OAAS,KAAK,KAAK,KAAM,EAC3D,KAAK,SAAW,CAAC,KAAK,SAGlBA,IAAS,MANM,EAAEjoB,EAMrB,CAIJ,GAAI,KAAK,MAAQioB,IAAS,KAEtB,YAAK,SAAW,GACT,KAGX,IAAImJ,EAAO,KAAK,QAAQnJ,CAAI,EAE5B,GAAI,KAAK,UAAY,KAAK,MAAM,KAC5B,KAAK,QAAU,aACR,KAAK,KAAK,KACjB,KAAK,SAAW,SACb,CACH,IAAIwP,EAAM,KAAK,SAAW,KAAK,QAAU,KAAK,SACzCA,EAAI,IAAIrG,CAAI,GACbqG,EAAI,IAAIrG,EAAM,EAAE,EACpB,IAAI0B,EAAM2E,EAAI,IAAIrG,CAAI,EACjB0B,IACDA,EAAM,CAAE,EACR2E,EAAI,IAAIrG,EAAM0B,CAAG,GAErBA,EAAI,KAAK7K,CAAI,CAC7B,CAEY,KAAK,MAAQA,EACb,KAAK,SAAW,KAAK,SAAW,KAAK,SAAW,KAAK,SAAS,IAAImJ,CAAI,GAAK,CAAE,EAC7E,KAAK,SAAW,CAC5B,CACA,CACA,CAEA,2BAAiB4uK,iLC7HjB,IAAI1+G,EAAwC96C,qBAAA,EAAC,cAG7C,MAAMy5J,UAAsB3+G,CAC5B,CACI,YAAamxC,EACb,CACI,MAAO,EAEF,MAAM,QAAQA,CAAO,IACtBA,EAAU,MAAM,UAAU,MAAM,KAAK,SAAS,GAElD,KAAK,QAAUA,EAEf,QAAS3R,KAAU2R,EAEf3R,EAAO,GAAG,WAAY,IAAM,KAAK,KAAK,UAAU,CAAC,EACjDA,EAAO,GAAG,MAAO,IAAM,KAAK,cAAcA,CAAM,CAAC,EAGjD,KAAK,QAAQ,SAAW,GACxB,KAAK,MAAO,EAEhB,KAAK,IAAM,KAAK,QAAQ,OAAO,CACvC,CAEI,cAAeA,EACf,CACI,IAAI1oF,EAAM,KAAK,QAAQ,QAAQ0oF,CAAM,EACjC1oF,EAAM,IAGV,KAAK,QAAQ,OAAOA,EAAK,CAAC,EACtB,KAAK,KAAO,KAAK,QAAQ,QACzB,EAAE,KAAK,IAEP,KAAK,QAAQ,SAAW,GACxB,KAAK,KAAM,EACvB,CAEI,OACA,CACI,MAAM,MAAO,EACb,QAAS0oF,KAAU,KAAK,QACpBA,EAAO,MAAO,CAC1B,CAEI,MACA,CACI,QAASo/E,EAAW,EAAGA,EAAW,KAAK,QAAQ,OAAQ,EAAEA,EACzD,CACI,KAAK,KAAO,KAAK,IAAM,GAAK,KAAK,QAAQ,OACzC,IAAIj4K,EAAO,KAAK,QAAQ,KAAK,GAAG,EAAE,KAAM,EACxC,GAAIA,IAAS,KACT,OAAOA,CACvB,CAEQ,OAAO,IACf,CACA,CAEA,uBAAiBg4K,iJC7DjB,MAAMX,EAAwB94J,6BAAuC,EAC/Dm5J,EAAWn1J,gBAA0B,EACrCu1J,EAAiBt1J,sBAAgC,EACjDu1J,EAAoBt1J,yBAAmC,EAEvDy1J,EAAcx1J,qBAA+B,EAEnD,iBAAiB,CACb,sBAAA20J,EACA,SAAAK,EACA,eAAAI,EACA,kBAAAC,EAEA,YAAAG,CACH,oKCdD,OAAO,eAAeC,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAMpC,EAAkDx3J,cAAA,EAClDwE,EAAkCR,cAAA,EAClC61J,EAAkE51J,cAAA,EAClEmyJ,EAAsDlyJ,cAAA,EACtD49C,EAA0C39C,qBAAA,EAC1C21J,EAAc11J,iBAAoB,EAClCue,EAAete,mBAAqB,EAI1C,IAAA01J,EAAA,cAA+BvC,EAAe,YAAa,CACvD,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,QAAQA,EAAK,gBAAkB,QAAU,KAAK,GAC5D,aAAc,EACd,wBAAyB,GACzB,gBAAiBA,EAAK,eAClC,CAAS,CACT,CACI,MAAM,UAAUmqB,EAAQ8B,EAAU,CAC9B,MAAM8zJ,EAAY9zJ,EAAS,UAC3B,IAAIw3F,EACJ,MAAMp7E,EAAY24I,EAAe,aAAa,qBAAqBjB,CAAS,EAC5E,GAAI,KAAK,gBAAiB,CAEtB,MAAMr5G,EAASz6C,EAAS,cAAc,CAAC,EAAE,OACnC7B,EAAS6B,EAAS,cAAc,CAAC,EAAE,OACzCw3F,EAAiB,IAAIm8D,EAAiB,0BAA0B,SAAY,CAExE,MAAM95K,EAAQ,IAAIu9K,EAAuB,mBAAmBh7I,EAAYliC,GAASA,GAAQA,EAAK,WAAa,cAAiBgmC,EAAa,cAAchmC,CAAI,EAAI,GAAI,EAAI,EACvK,aAAM,IAAI,QAAS24D,GAAY,CAC3B4H,EAAO,eAAe,GAAG,OAAS55B,GAAa,EAC1BhnC,EAAM,SAASgnC,EAAU,EAAK,GAAKhnC,EAAM,IAAIgnC,EAAU,EAAE,GACjE,KAAKA,CAAQ,CAC9C,CAAqB,EACD45B,EAAO,eAAe,GAAG,MAAO5H,CAAO,EACvC4H,EAAO,eAAe,GAAG,QAAUniE,GAAU,CACzCk/G,EAAe,KAAK,QAASl/G,CAAK,CAC1D,CAAqB,CACrB,CAAiB,EAEM,IAAI+mE,EAAgB,uBAAuBlhD,EAAO,eAAgB,CACrE,eAAiB0iB,GAAa,IAAIw+B,EAAgB,cAAexlE,EAAM,IAAIgnC,CAAQ,EAAE,KAAM,EACtF,IAAI02I,GAAiBxC,EAAe,aAAa,aAAal0I,EAAU02I,CAAa,CAAC,EACtF,OAAOx/L,GAAKA,IAAM,IAAI,EAAG,CAAE,UAAW,GAAO,EAClD,UAAW,EAC/B,CAAiB,CACjB,EAAe,CACC,UAAW,GACX,SAAU,CACN0iF,EAAO,eAAe,QAAS,EAC/Bt8C,EAAO,eAAe,QAAS,CAClC,CACjB,CAAa,CACb,KACa,CAED,KAAM,CAAE,aAAAq5J,GAAiB,MAAM,KAAK,qBAAqB,QAAQ,CAAE,QAASt5J,EAAO,QAAS,EACtFisB,EAAe/N,EAAU,IAAI,GAAK,EAAE,QAAQ,EAClDo7E,EAAiB,IAAI6/D,EAAY,SAASr3J,EAAS,cAAc,CAAC,EAAE,OAAO,eAAgBA,EAAS,cAAc,CAAC,EAAE,OAAO,eAAgBpZ,GAAS4wK,EAAa5wK,EAAOujC,CAAY,EAAG4qI,EAAe,aAAa,YAAY,CAC5O,CACQ,MAAO,CACH,OAAQ,CACJ,KAAM,WACN,eAAAv9D,EACA,SAAU,SAAY,MAAM,KAAK,wBAAwBx3F,EAAS,cAAe8zJ,EAAW51J,EAAO,OAAO,CAC7G,CACJ,CACT,CACI,MAAM,oBAAoBA,EAAQ8B,EAAU,CAExC,IAAIy3J,EAAgBv5J,EAAO,QACvB8B,EAAS,UAAU,CAAC,EAAE,YAAY,MAAQA,EAAS,UAAU,CAAC,EAAE,YAAY,QAC5EA,EAAS,UAAY,CAACA,EAAS,UAAU,CAAC,EAAGA,EAAS,UAAU,CAAC,CAAC,EAClEy3J,EAAgB,CAACv5J,EAAO,QAAQ,CAAC,EAAGA,EAAO,QAAQ,CAAC,CAAC,GAEzD,KAAM,CAAE,UAAA41J,CAAS,EAAK9zJ,EAChB03J,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAClF,IAAIx0K,EAAaw0K,EAAU,CAAC,EAAE,YAAY,MAAQA,EAAU,CAAC,EAAE,YAAY,MAC3E,OAAK,KAAK,kBAENx0K,GAAc,OAEPyiB,EAAO,sBAAsB,CACpC,WAAAziB,EACA,eAAgBw0K,EAAU,CAAC,EAAE,YAAY,MACzC,cAAeA,EAAU,CAAC,EAAE,YAAY,MACxC,YAAa4D,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EACrFD,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,CAC5F,EAAW,CAAE,GAAG33J,EAAU,cAAAy3J,EAAe,CACzC,CACA,EACAN,wBAAA,iBAA2BS,6HChG3B,IAAI32J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wBAA6B,EAAE+D,CAAO,+PCfnD,OAAO,eAAeu2J,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAM9C,EAAkDx3J,cAAA,EAClDwE,EAAkCR,cAAA,EAClC81J,EAAc71J,iBAAoB,EAIxC,IAAAs2J,EAAA,cAAwC/C,EAAe,YAAa,CAChE,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,iBACd,aAAc,EACd,wBAAyB,EACrC,CAAS,CACT,CACI,MAAM,UAAUmqB,EAAQ,CACpB,MAAM41J,EAAY,MAAMiB,EAAe,aAAa,aAAa72J,EAAO,OAAO,EACzEke,EAAY24I,EAAe,aAAa,qBAAqBjB,CAAS,EACtE,CAAE,aAAA0D,GAAiB,MAAM,KAAK,qBAAqB,QAAQ,CAAE,QAASt5J,EAAO,QAAS,EACtFisB,EAAe/N,EAAU,IAAIxkD,GAAKA,EAAE,QAAQ,EAElD,MAAO,CACH,OAAQ,CACJ,KAAM,WACN,eAJK,IAAIy/L,EAAY,kBAAkBn5J,EAAO,QAAQ,CAAC,EAAE,OAAO,eAAgBA,EAAO,QAAQ,CAAC,EAAE,OAAO,eAAgBtX,GAAS4wK,EAAa5wK,EAAOujC,CAAY,EAAG4qI,EAAe,aAAa,YAAY,EAK7M,SAAU,SAAY,MAAM,KAAK,wBAAwB72J,EAAO,QAAS41J,EAAW51J,EAAO,OAAO,CACrG,CACJ,CACT,CACI,MAAM,oBAAoBA,EAAQ8B,EAAU,CACxC,KAAM,CAAE,UAAA8zJ,CAAS,EAAK9zJ,EAChB03J,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAClF,SAAW/xJ,EAAO,sBAAsB,CACpC,WAAY+xJ,EAAU,CAAC,EAAE,YAAY,MAAQA,EAAU,CAAC,EAAE,YAAY,MACtE,eAAgBA,EAAU,CAAC,EAAE,YAAY,MAAQA,EAAU,CAAC,EAAE,YAAY,MAC1E,cAAe,EACf,YAAa4D,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EACrFD,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,CACnF,EAAE33J,CAAQ,CACnB,CACA,EACA63J,iCAAA,0BAAoCE,sIC5CpC,IAAI92J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iCAAsC,EAAE+D,CAAO,6OCf5D,OAAO,eAAe02J,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMjD,EAAkDx3J,cAAA,EAClDwE,EAAkCR,cAAA,EAClC81J,EAAc71J,iBAAoB,EAIxC,IAAAy2J,EAAA,cAAqClD,EAAe,YAAa,CAC7D,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,cACd,aAAc,EACd,gBAAiB,EAC7B,CAAS,CACT,CACI,MAAM,UAAUmqB,EAAQ,CAEpB,MAAO,CACH,OAAQ,CACJ,KAAM,WACN,eAJK,IAAIm5J,EAAY,eAAen5J,EAAO,QAAQ,CAAC,EAAE,OAAO,eAAgBA,EAAO,QAAQ,CAAC,EAAE,OAAO,eAAgB62J,EAAe,aAAa,aAAc,CAAE,UAAW,GAAO,EAKpL,SAAU,SAAY,MAAM,KAAK,wBAAwB72J,EAAO,QAAS,MAAM62J,EAAe,aAAa,aAAa72J,EAAO,OAAO,EAAGA,EAAO,OAAO,CAC1J,CACJ,CACT,CACI,MAAM,oBAAoBA,EAAQ8B,EAAU,CACxC,KAAM,CAAE,UAAA8zJ,CAAS,EAAK9zJ,EAChB03J,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAClF,SAAW/xJ,EAAO,sBAAsB,CACpC,WAAY+xJ,EAAU,CAAC,EAAE,YAAY,MAAQA,EAAU,CAAC,EAAE,YAAY,MACtE,eAAgB,EAChB,cAAe,EACf,YAAa4D,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EACrFD,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,CACnF,EAAE33J,CAAQ,CACnB,CACA,EACAg4J,8BAAA,uBAAiCE,mICxCjC,IAAIj3J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,8BAAmC,EAAE+D,CAAO,2PCfzD,OAAO,eAAe62J,iBAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,iBAAA,wBAAkCA,iBAAA,iBAA2B,OAC7D,MAAMj4I,EAAe3iB,mBAAqB,EAK1C,SAAS66J,EAAiBv3I,EAAU,CAChC,MAAMknF,EAAM,CAAE,EACd,UAAW11H,KAAOwuC,EAAS,OACvBknF,EAAI11H,EAAI,KAAK,KAAQ6tC,EAAa,cAAcW,EAAS,IAAIxuC,CAAG,CAAC,EAErE,OAAO,KAAK,UAAU01H,EAAK,KAAM,IAAI,CACzC,CACAowD,iBAAA,iBAA2BC,EAY3B,SAASC,EAAwBx3I,EAAUzE,EAAW,CAClD,OAAOA,EACF,IAAK1X,GAAa,CACnB,MAAMxqB,EAAO2mC,EAAS,IAAInc,CAAQ,EAClC,OAAIxqB,KACWgmC,EAAa,cAAchmC,CAAI,EAEvC,EACV,CAAA,EACI,KAAK,EAAE,CAChB,CACAi+K,wBAAA,wBAAkCE,mICrClC,OAAO,eAAeC,SAAS,aAAc,CAAE,MAAO,GAAM,EAC5CA,SAAA,SAAG,OACnB,MAAMv2J,EAAkCxE,cAAA,EAClCD,EAAciE,aACd42J,EAAkD32J,wBAAA,EAIxD,IAAA+2J,EAAA,MAAM3zJ,EAAS,CACX,YAAY2D,EAAapf,EAASqvK,EAAe,CAC7C,KAAK,KAAO,WACZ,KAAK,YAAcjwJ,EACnB,KAAK,QAAUpf,EACf,KAAK,cAAgBqvK,CAC7B,CACI,IAAInmL,EAAK,CACL,OAAO,KAAK,QAAQ,IAAI,OAAOA,GAAQ,SAAWA,EAAMA,EAAI,KAAK,CACzE,CACI,IAAIA,EAAK,CACL,OAAO,KAAK,QAAQ,IAAI,OAAOA,GAAQ,SAAWA,EAAMA,EAAI,KAAK,CACzE,CACI,IAAIA,EAAKL,EAAO,CACZ,OAAO,IAAI4yB,GAAS,KAAK,YAAa,KAAK,QAAQ,IAAI,OAAOvyB,GAAQ,SAAWA,EAAMA,EAAI,MAAOL,CAAK,EAAG,KAAK,aAAa,CACpI,CACI,OAAOK,EAAK,CACR,OAAO,IAAIuyB,GAAS,KAAK,YAAa,KAAK,QAAQ,OAAO,OAAOvyB,GAAQ,SAAWA,EAAMA,EAAI,KAAK,EAAG,KAAK,aAAa,CAChI,CACI,MAAO,CACH,OAAO,KAAK,YAAY,KAAK,mBAAmB,KAAK,QAAQ,KAAI,CAAE,EAAGA,GAAO,KAAK,YAAY,SAASA,CAAG,CAAC,CACnH,CACI,QAAS,CACL,OAAO,KAAK,mBAAmB,KAAK,QAAQ,OAAM,CAAE,CAC5D,CACI,QAAQ5Q,EAAI,CACR,SAAW,CAAC4Q,EAAKL,CAAK,IAAK,KAAK,QAAQ,UACpCvQ,EAAGuQ,EAAO,KAAK,YAAY,SAASK,CAAG,CAAC,CAEpD,CACI,IAAI,MAAO,CACP,OAAO,KAAK,QAAQ,IAC5B,CACI,CAAC,OAAO,QAAQ,GAAI,CAChB,OAAO,KAAK,YAAY,KAAK,mBAAmB,KAAK,QAAQ,QAAO,CAAE,EAAG,CAAC,CAACA,EAAKL,CAAK,IAAM,CAAC,KAAK,YAAY,SAASK,CAAG,EAAGL,CAAK,CAAC,EAAE,OAAO,QAAQ,EAAG,CAC9J,CACI,OAAO6jB,EAAO,CACV,GAAI,CAACA,EACD,MAAO,GAEX,GAAI,OAASA,EACT,MAAO,GAGX,GAAI,KAAK,OAASA,EAAM,KACpB,MAAO,GAGX,UAAWxjB,KAAO,KAAK,OACnB,GAAI,CAAC,KAAK,IAAIA,CAAG,GAAG,OAAOwjB,EAAM,IAAIxjB,CAAG,CAAC,EACrC,MAAO,GAGf,MAAO,EACf,CACI,OAAO5Q,EAAI,CACP,OAAO,IAAImjC,GAAS,KAAK,eAAiBtH,EAAY,KAAK,KAAK,QAC3D,OAAO,CAACtrB,EAAOK,IAAQ5Q,EAAGuQ,EAAO,KAAK,YAAY,SAASK,CAAG,CAAC,CAAC,CAAC,EAAG,KAAK,aAAa,CACnG,CACI,IAAI5Q,EAAI,CACJ,OAAO,IAAImjC,GAAS,KAAK,eAAiBtH,EAAY,KAAK,KAAK,QAC3D,IAAI,CAACtrB,EAAOK,IAAQ5Q,EAAGuQ,EAAO,KAAK,YAAY,SAASK,CAAG,CAAC,CAAC,CAAC,EAAG,KAAK,aAAa,CAChG,CACI,MAAMwjB,EAAO,CACT,GAAI,KAAK,KAAOA,EAAM,MAAQA,aAAiB+O,GAC3C,OAAO/O,EAAM,MAAM,IAAI,EAE3B,IAAI1M,EAAU,KAAK,QAGnB,GAAI0M,aAAiB+O,GACjB,SAAW,CAACF,EAAUjS,CAAK,IAAKoD,EAAM,QAAS,CAC3C,MAAMrD,EAAO,KAAK,QAAQ,IAAIkS,CAAQ,EACtC,GAAIlS,GAAQ,CAACA,EAAK,OAAOC,CAAK,EAC1B,OAEJtJ,EAAUA,EAAQ,IAAIub,EAAUjS,CAAK,CACrD,KAGY,UAAW,CAACiS,EAAUjS,CAAK,IAAKoD,EAAO,CACnC,MAAMrD,EAAO,KAAK,QAAQ,IAAIkS,EAAS,KAAK,EAC5C,GAAIlS,GAAQ,CAACA,EAAK,OAAOC,CAAK,EAC1B,OAEJtJ,EAAUA,EAAQ,IAAIub,EAAS,MAAOjS,CAAK,CAC3D,CAEQ,OAAO,KAAK,2BAA2BtJ,EAAS0M,CAAK,CAC7D,CACI,UAAUxI,EAAQwI,EAAO,CACrB,GAAI,KAAK,KAAOA,EAAM,MAAQA,aAAiB+O,GAC3C,OAAO/O,EAAM,UAAUxI,EAAQ,IAAI,EAEvC,IAAIlE,EAAU,KAAK,QAEnB,GAAI0M,aAAiB+O,GACjB,SAAW,CAACF,EAAUjS,CAAK,IAAKoD,EAAM,QAAS,CAC3C,MAAMrD,EAAO,KAAK,QAAQ,IAAIkS,CAAQ,EACtC,IAAI1yB,EACAwgB,GAAQ,CAACA,EAAK,OAAOC,CAAK,EAC1BzgB,EAAQqb,EAAOmF,EAAMC,EAAO,KAAK,YAAY,SAASiS,CAAQ,CAAC,EAG/D1yB,EAAQygB,EAEZtJ,EAAUA,EAAQ,IAAIub,EAAU1yB,CAAK,CACrD,KAGY,UAAW,CAAC0yB,EAAUjS,CAAK,IAAKoD,EAAO,CACnC,MAAMrD,EAAO,KAAK,QAAQ,IAAIkS,EAAS,KAAK,EAC5C,IAAI1yB,EACAwgB,GAAQ,CAACA,EAAK,OAAOC,CAAK,EAC1BzgB,EAAQqb,EAAOmF,EAAMC,EAAOiS,CAAQ,EAGpC1yB,EAAQygB,EAEZtJ,EAAUA,EAAQ,IAAIub,EAAS,MAAO1yB,CAAK,CAC3D,CAEQ,OAAO,KAAK,2BAA2BmX,EAAS0M,CAAK,CAC7D,CACI,2BAA2B1M,EAAS0M,EAAO,CAEvC,GAAI,KAAK,eAAiB,KAAK,cAAc,QAAS,CAClD,IAAI46J,EAAgB,KAAK,cAAc,QAEvC,MAAI,kBAAmB56J,GAASA,EAAM,eAAiBA,EAAM,cAAc,UACvE46J,EAAgB7rJ,GACX,aAAa,KAAK,cAAc,qBAAsB6rJ,EAAe56J,EAAM,cAAc,OAAO,GAElG,IAAI+O,GAAS,KAAK,YAAazb,EAAS,CAAE,qBAAsB,KAAK,cAAc,qBAAsB,QAASsnK,CAAa,CAAE,CACpJ,CAEQ,OAAO,IAAI7rJ,GAAS,KAAK,YAAazb,EAAS0M,EAAM,aAAa,CAC1E,CACI,OAAO,aAAa4iK,EAAsBp8K,EAASq8K,EAAc,CAE7D,MAAMC,EAAU,CAAC,GAAGt8K,EAAQ,KAAI,EAAI,GAAGq8K,EAAa,MAAM,EAEpDE,EAAiB,CAAE,EACnBC,EAAc,CAAE,EAEhBC,EAAsB,IAAI,IAAIJ,EAAa,OAAO,IAAIrmL,GAAOA,EAAI,IAAI,CAAC,EACtE0mL,EAAkB18K,EAAQ,KAAI,EAAG,OAAOhK,GAAOymL,EAAoB,IAAIzmL,EAAI,IAAI,CAAC,EACtF,UAAWA,KAAOsmL,EAAS,CAEvB,GAAIE,EAAYxmL,EAAI,IAAI,IAAM,EAC1B,SAGJwmL,EAAYxmL,EAAI,IAAI,EAAI,EAExB,MAAM2mL,EAAeD,EAAgB,KAAK9gM,GAAKA,EAAE,OAASoa,EAAI,IAAI,EAIlE,GAAIomL,EAAqBpmL,EAAI,IAAI,GAAK2mL,EAAc,CAChDJ,EAAevmL,EAAI,IAAI,EAAIomL,EAAqBpmL,EAAI,IAAI,EACnD,IAAIgK,EAAQ,IAAIhK,CAAG,EAAGqmL,EAAa,IAAIrmL,CAAG,CAAC,EAChD,QAChB,CAEY,GAAI,GAAComL,EAAqBpmL,EAAI,IAAI,GAAK2mL,GAKvC,IAAI,CAAC38K,EAAQ,IAAIhK,CAAG,EAAG,CACnBumL,EAAevmL,EAAI,IAAI,EAAIqmL,EAAa,IAAIrmL,CAAG,EAC/C,QAChB,CAEiBqmL,EAAa,IAAIrmL,CAAG,IACrBumL,EAAevmL,EAAI,IAAI,EAAIgK,EAAQ,IAAIhK,CAAG,GAE1D,CACQ,OAAO,IAAI0vB,EAAO,cAAc62J,CAAc,CACtD,CACI,gBAAgBvmL,EAAKL,EAAO,CACxB,OAAO,KAAK,mBAAmBK,EAAKL,CAAK,CACjD,CACI,mBAAmBK,EAAKL,EAAO,CAC3B,OAAI,KAAK,eAAiB,KAAK,cAAc,QAClC,IAAI4yB,GAAS,KAAK,YAAa,KAAK,QAAS,CAChD,qBAAsB,KAAK,cAAc,qBACzC,QAAS,KAAK,cAAc,QAAQ,IAAIvyB,EAAKL,CAAK,CAClE,CAAa,EAEE,IAAI4yB,GAAS,KAAK,YAAa,KAAK,QAAS,CAChD,qBAAsB,KAAK,eAAe,sBAAwB,CAAE,EACpE,QAAS,IAAI7C,EAAO,cAAe,EAAC,IAAI1vB,EAAKL,CAAK,CAC9D,CAAS,CACT,CACI,mBAAmBK,EAAK,CACpB,OAAO,KAAK,sBAAsBA,CAAG,CAC7C,CACI,sBAAsBA,EAAK,CACvB,OAAI,KAAK,cACE,IAAIuyB,GAAS,KAAK,YAAa,KAAK,QAAS,CAChD,qBAAsB,KAAK,cAAc,qBACzC,QAAS,KAAK,cAAc,SAAS,OAAOvyB,CAAG,CAC/D,CAAa,EAEE,IAAIuyB,GAAS,KAAK,YAAa,KAAK,OAAO,CAC1D,CACI,YAAa,CACT,OAAO,KAAK,eAAe,OACnC,CACI,gBAAgBvyB,EAAK,CACjB,OAAO,KAAK,cAAc,IAAIA,CAAG,CACzC,CACI,UAAW,CACP,SAAW8lL,EAAmB,kBAAkB,IAAI,CAC5D,CACI,CAAC,YAAY5xK,EAAUs/B,EAAU,CAC7B,UAAW5tD,KAAKsuB,EACZ,MAAMs/B,EAAS5tD,CAAC,CAE5B,CACI,mBAAmBuvB,EAAU,CACzB,MAAO,CACH,CAAC,OAAO,QAAQ,EAAG,IAAMA,CAC5B,CACT,CACA,EACA8wK,gBAAA,SAAmB1zJ,iLC5OnB,OAAO,eAAeq0J,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAM37J,EAAcC,aACd+6J,EAAkC/2J,gBAAA,EAIxC,IAAA23J,EAAA,MAAMC,EAAgB,CAClB,YAAY5wJ,EAAakwJ,EAAsB,CAC3C,KAAK,YAAclwJ,EACnB,KAAK,qBAAuBkwJ,CACpC,CACI,aAAa,OAAOW,EAA8B/8K,EAASksB,EAAa,CACpE,OAAO,IAAI4wJ,GAAgB5wJ,GAAc,MAAM6wJ,EAA6B,QAAQ,CAAE,QAAA/8K,EAAS,GAAG,aAAa,CACvH,CACI,SAAS8M,EAAU,GAAI,CACnB,OAAO,IAAImvK,EAAW,SAAS,KAAK,eAAiBh7J,EAAY,KAAKnU,EAAQ,IAAI,CAAC,CAAC9W,EAAKL,CAAK,IAAM,CAACK,EAAI,MAAOL,CAAK,CAAC,CAAC,EAAG,KAAK,qBAAuB,CAAE,qBAAsB,KAAK,oBAAoB,EAAK,MAAS,CAC7N,CACI,aAAa6uC,EAAU,CACnB,OAAO,KAAK,SAAS,CAAC,GAAGA,CAAQ,CAAC,CAC1C,CACI,WAAW/jB,EAAQ,CACf,OAAO,KAAK,SAAS,OAAO,QAAQA,CAAM,EAAE,IAAI,CAAC,CAACzqB,EAAKL,CAAK,IAAM,CAAC,KAAK,YAAY,SAASK,CAAG,EAAGL,CAAK,CAAC,CAAC,CAClH,CACA,EACAinL,uBAAA,gBAA0BE,4HCzB1B,IAAIl4J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gBAAqB,EAAE+D,CAAO,EAC3CD,EAAaE,uBAA4B,EAAED,CAAO,EAClDD,EAAaG,wBAA6B,EAAEF,CAAO,mNCjBnD,OAAO,eAAe+3J,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMtE,EAAkDx3J,cAAA,EAClDwE,EAAkCR,cAAA,EAClC+3J,EAAsE93J,cAAA,EACtE41J,EAAkE31J,cAAA,EAClEkyJ,EAAsDjyJ,cAAA,EACtD29C,EAA0C19C,qBAAA,EAC1Cue,EAAete,mBAAqB,EAI1C,IAAA23J,EAAA,MAAMC,WAAiCzE,EAAe,YAAa,CAC/D,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,WACb,aAAc,QAAQA,EAAK,gBAAkB,QAAU,KAAK,IAAIA,EAAK,SAAW,WAAa,aAAa,GAC1G,aAAc,EACd,gBAAiBA,EAAK,gBACtB,wBAAyB,EACrC,CAAS,CACT,CACI,OAAO,eAAe0lL,EAAOC,EAAiB,CAC1C,OAAOD,EACH,IAAIrC,EAAuB,mBAAmBsC,EAAkBx/K,GAASA,GAAQA,EAAK,WAAa,cAAiBgmC,EAAa,cAAchmC,CAAI,EAAI,GAAI,EAAI,EAC/J,IAAIk9K,EAAuB,iBAAiBsC,EAAiBJ,EAAyB,uBAAuB,CACzH,CACI,MAAM,UAAUp7J,EAAQ,CACpB,MAAMu8C,EAASv8C,EAAO,QAAQ,CAAC,EAAE,OAC3BC,EAASD,EAAO,QAAQ,CAAC,EAAE,OAC3B41J,EAAY,MAAMiB,EAAe,aAAa,aAAa72J,EAAO,OAAO,EACzEw7J,EAAkB3E,EAAe,aAAa,qBAAqBjB,CAAS,EAClF,IAAIt8D,EACJ,OAAI,KAAK,SAELA,EAAiB,IAAIm8D,EAAiB,0BAA0B,SAAY,CAExE,MAAM95K,EAAQ2/K,GACT,eAAe,KAAK,gBAAiBE,CAAe,EACzD,aAAM,IAAI,QAAS7mH,GAAY,CAC3B4H,EAAO,eAAe,GAAG,OAAS55B,GAAa,EAC1BhnC,EAAM,SAASgnC,EAAU,EAAI,GAAKhnC,EAAM,IAAIgnC,EAAU,EAAE,GAChE,KAAKA,CAAQ,CAC9C,CAAqB,EACD45B,EAAO,eAAe,GAAG,MAAO5H,CAAO,EACvC4H,EAAO,eAAe,GAAG,QAAUniE,GAAU,CACzCk/G,EAAe,KAAK,QAASl/G,CAAK,CAC1D,CAAqB,CACrB,CAAiB,EAEM,IAAI+mE,EAAgB,uBAAuBlhD,EAAO,eAAgB,CACrE,eAAiB0iB,GAAa,IAAIw+B,EAAgB,cAAexlE,EAAM,IAAIgnC,CAAQ,EAAE,KAAM,EACtF,IAAI02I,GAAiBxC,EAAe,aAAa,aAAal0I,EAAU02I,CAAa,CAAC,EACtF,OAAOx/L,GAAKA,IAAM,IAAI,EAAG,CAAE,UAAW,GAAO,EAClD,SAAU,GACV,UAAW,EAC/B,CAAiB,CACjB,EAAe,CACC,UAAW,GACX,SAAU,CACN0iF,EAAO,eAAe,QAAS,EAC/Bt8C,EAAO,eAAe,QAAS,CAClC,CACjB,CAAa,EAKDq5F,EAAiB,IAAIm8D,EAAiB,0BAA0B,SAAY,CAGxE,MAAM95K,EAAQ2/K,GACT,eAAe,KAAK,gBAAiBE,CAAe,EACzD,IAAIC,EAAc,GAClB,OAAAl/G,EAAO,eAAe,GAAG,OAAS55B,GAAa,EAC1BhnC,EAAM,SAASgnC,EAAU,EAAI,GAC1ChnC,EAAM,IAAIgnC,EAAU,IAAIw+B,EAAgB,iBAAiB,CAAE,UAAW,EAAK,CAAE,CAAC,GACzE,MAAMx+B,CAAQ,CAC3C,CAAiB,EACD45B,EAAO,eAAe,GAAG,MAAO,IAAM,CAClC,UAAWjzD,KAAY3N,EAAM,SACzB2N,EAAS,MAAO,EAEpBmyK,EAAc,EAClC,CAAiB,EACDl/G,EAAO,eAAe,GAAG,QAAUniE,GAAU,CACzCk/G,EAAe,KAAK,QAASl/G,CAAK,CACtD,CAAiB,EAEM,IAAI+mE,EAAgB,uBAAuBlhD,EAAO,eAAgB,CACrE,eAAiB0iB,GAAa,CAE1B,IAAI90B,EAAYlS,EAAM,IAAIgnC,CAAQ,EAGlC,OAAI90B,EAAU,SAAW,IACjB4tK,EACA5tK,EAAY,CAAClS,EAAM,IAAIgnC,EAAU,IAAIw+B,EAAgB,iBAAiB,CAAE,UAAW,EAAK,CAAE,CAAC,CAAC,EAG5FtzD,EAAY,CAAE,GAKL,IAAIszD,EAAgB,cAActzD,EAAU,IAAIpuB,GAAMA,EAAG,MAAO,CAAA,EAAG,CAAE,UAAW,EAAK,CAAE,EACxF,IAAI45L,GAAiBxC,EAAe,aAAa,aAAal0I,EAAU02I,CAAa,CAAC,CACzG,EACD,SAAU,GACV,UAAW,EAC/B,CAAiB,CACjB,EAAe,CACC,UAAW,GACX,SAAU,CACN98G,EAAO,eAAe,QAAS,EAC/Bt8C,EAAO,eAAe,QAAS,CAClC,CACjB,CAAa,EAEE,CACH,OAAQ,CACJ,KAAM,WACN,eAAAq5F,EACA,SAAU,SAAY,MAAM,KAAK,wBAAwBt5F,EAAO,QAAS41J,EAAW51J,EAAO,QAAS,CAAA,EAAI,EAAI,CAC/G,CACJ,CACT,CACI,MAAM,oBAAoBA,EAAQ8B,EAAU,CACxC,KAAM,CAAE,UAAA8zJ,CAAS,EAAK9zJ,EAChB03J,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAClF,IAAIx0K,EAAaw0K,EAAU,CAAC,EAAE,YAAY,MAAQA,EAAU,CAAC,EAAE,YAAY,MAC3E,OAAK,KAAK,kBAENx0K,GAAc,IAEd,KAAK,WAELA,GAAc,OAEPyiB,EAAO,sBAAsB,CACpC,WAAAziB,EACA,eAAgBw0K,EAAU,CAAC,EAAE,YAAY,MACzC,cAAe,KAAK,SAAWA,EAAU,CAAC,EAAE,YAAY,MAAQ,EAChE,YAAa4D,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EACrFD,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,CACnF,EAAE33J,CAAQ,CACnB,CACA,EACAq5J,gCAAA,yBAAmCG,qICrJnC,IAAIv4J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gCAAqC,EAAE+D,CAAO,6RCf3D,OAAO,eAAes4J,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAM7E,EAAkDx3J,cAAA,EAClDwE,EAAkCR,cAAA,EAClC81J,EAAc71J,iBAAoB,EAIxC,IAAAq4J,EAAA,cAA6C9E,EAAe,YAAa,CACrE,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,WACb,aAAc,cACd,aAAc,EACd,gBAAiB,EAC7B,CAAS,CACT,CACI,MAAM,UAAUmqB,EAAQ,CAEpB,MAAO,CACH,OAAQ,CACJ,KAAM,WACN,eAJK,IAAIm5J,EAAY,eAAen5J,EAAO,QAAQ,CAAC,EAAE,OAAO,eAAgBA,EAAO,QAAQ,CAAC,EAAE,OAAO,eAAgB62J,EAAe,aAAa,aAAc,CAAE,SAAU,GAAM,UAAW,EAAK,CAAE,EAKpM,SAAU,SAAY,MAAM,KAAK,wBAAwB72J,EAAO,QAAS,MAAM62J,EAAe,aAAa,aAAa72J,EAAO,OAAO,EAAGA,EAAO,QAAS,CAAE,EAAE,EAAI,CACpK,CACJ,CACT,CACI,MAAM,oBAAoBA,EAAQ8B,EAAU,CACxC,KAAM,CAAE,UAAA8zJ,CAAS,EAAK9zJ,EAChB03J,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAClF,SAAW/xJ,EAAO,sBAAsB,CACpC,WAAY+xJ,EAAU,CAAC,EAAE,YAAY,MAAQA,EAAU,CAAC,EAAE,YAAY,MACtE,eAAgB,EAChB,cAAe,EACf,YAAa4D,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EACrFD,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,CACnF,EAAE33J,CAAQ,CACnB,CACA,EACA45J,sCAAA,+BAAyCE,2ICxCzC,IAAI74J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,uOCfjE,OAAO,eAAey4J,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMhF,EAAkDx3J,cAAA,EAClDwE,EAAkCR,cAAA,EAClC+3J,EAAsE93J,cAAA,EACtE41J,EAAkE31J,cAAA,EAClEkyJ,EAAsDjyJ,cAAA,EACtDwe,EAAeve,mBAAqB,EAI1C,IAAAq4J,EAAA,MAAMC,WAA8BlF,EAAe,YAAa,CAC5D,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,QAAQA,EAAK,gBAAkB,QAAU,KAAK,GAC5D,aAAc,EACd,gBAAiBA,EAAK,eAClC,CAAS,CACT,CACI,OAAO,eAAe0lL,EAAOC,EAAiB,CAC1C,OAAOD,EACH,IAAIrC,EAAuB,mBAAmBsC,EAAkBx/K,GAASA,GAAQA,EAAK,WAAa,cAAiBgmC,EAAa,cAAchmC,CAAI,EAAI,GAAI,EAAK,EAChK,IAAIk9K,EAAuB,iBAAiBsC,EAAiBJ,EAAyB,uBAAuB,CACzH,CACI,MAAM,UAAUp7J,EAAQ,CACpB,MAAMu8C,EAASv8C,EAAO,QAAQ,CAAC,EAAE,OAC3BC,EAASD,EAAO,QAAQ,CAAC,EAAE,OAC3B41J,EAAY,MAAMiB,EAAe,aAAa,aAAa72J,EAAO,OAAO,EACzEw7J,EAAkB3E,EAAe,aAAa,qBAAqBjB,CAAS,EAGlF,GAAI4F,EAAgB,SAAW,EAC3B,OAAAj/G,EAAO,eAAe,QAAS,EACxB,CAAE,OAAQt8C,CAAQ,EAE7B,MAAMq5F,EAAiB,IAAIm8D,EAAiB,0BAA0B,SAAY,CAE9E,MAAM95K,EAAQogL,GACT,eAAe,KAAK,gBAAiBP,CAAe,EACzD,aAAM,IAAI,QAAS7mH,GAAY,CAC3B4H,EAAO,eAAe,GAAG,OAAQ55B,GAAYhnC,EAAM,IAAIgnC,EAAU,EAAI,CAAC,EACtE45B,EAAO,eAAe,GAAG,MAAO5H,CAAO,EACvC4H,EAAO,eAAe,GAAG,QAASniE,GAASk/G,EAAe,KAAK,QAASl/G,CAAK,CAAC,CAC9F,CAAa,EAEM6lB,EAAO,eAAe,OAAO0iB,GAAY,CAAChnC,EAAM,SAASgnC,EAAU,EAAI,CAAC,CAC3F,EAAW,CACC,UAAW,GACX,SAAU,CACN45B,EAAO,eAAe,QAAS,EAC/Bt8C,EAAO,eAAe,QAAS,CAClC,CACb,CAAS,EACD,MAAO,CACH,OAAQ,CACJ,KAAM,WACN,eAAAq5F,EACA,SAAUr5F,EAAO,QACpB,CACJ,CACT,CACI,MAAM,oBAAoBD,EAAQ8B,EAAU,CACxC,KAAM,CAAE,UAAA8zJ,CAAS,EAAK9zJ,EAChB03J,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAClF,IAAIx0K,EAAaw0K,EAAU,CAAC,EAAE,YAAY,MAAQA,EAAU,CAAC,EAAE,YAAY,MAC3E,OAAK,KAAK,kBAENx0K,GAAc,OAEPyiB,EAAO,sBAAsB,CACpC,WAAAziB,EACA,eAAgBw0K,EAAU,CAAC,EAAE,YAAY,MACzC,cAAeA,EAAU,CAAC,EAAE,YAAY,MACxC,YAAa4D,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EACrFD,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,CACnF,EAAE33J,CAAQ,CACnB,CACA,EACA+5J,6BAAA,sBAAgCE,kIChFhC,IAAIh5J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,6BAAkC,EAAE+D,CAAO,iQCfxD,OAAO,eAAe44J,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMzgE,EAAwDl8F,cAAA,EAY9D,IAAA48J,EAAA,cAAkC1gE,EAAkB,qBAAsB,CAQtE,YAAY1lH,EAAM,CACd,MAAMA,CAAI,CAClB,CACA,EACAmmL,2BAAA,oBAA8BE,gIC1B9B,IAAIn5J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2BAAgC,EAAE+D,CAAO,mNCftD,OAAO,eAAe+4J,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMC,EAAgE/8J,cAAA,EAItE,IAAAg9J,EAAA,cAAuCD,EAAsB,mBAAoB,CA6B7E,YAAYvmL,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,YAAYulH,EAAa,CAC3B,MAAO,CAAE,QAASA,EAAY,GAAK,CAC3C,CACA,EACA+gE,gCAAA,yBAAmCG,qIC1CnC,IAAIv5J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gCAAqC,EAAE+D,CAAO,gPCf3D,OAAO,eAAem5J,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAM52J,EAAwDtG,cAAA,EACxDgxF,EAAoBhtF,eAA0B,EAC9Cw/D,EAA6Bv/D,6BAAmC,EAKtE,IAAAk5J,EAAA,MAAMC,EAAmB,CACrB,YAAYC,EAAwBC,EAAQC,EAASC,EAAOC,EAAgB3+K,EAASkjC,EAASu5E,EAAS,CACnG,KAAK,iBAAmB,CAAE,EAC1B,KAAK,WAAa,EAClB,KAAK,cAAgB,EACrB,KAAK,wBAA0B,GAC/B,KAAK,uBAAyB8hE,EAC9B,KAAK,OAASC,EACd,KAAK,QAAUC,EACf,KAAK,MAAQC,EACb,KAAK,eAAiBC,EACtB,KAAK,QAAU3+K,EACV,IAAIwnB,EAAkB,uBAAuB,qBAAsB,EAAI,EAC5E,KAAK,QAAU0b,EACf,KAAK,QAAUu5E,EACf,KAAK,gBAAkBz8G,EAAQ,IAAIwnB,EAAkB,uBAAuB,iBAAiB,IAAM,GACnG,MAAMmlG,EAAc,KAAK,QAAQ,QAAQ,GAAG,EAC5C,KAAK,eAAiBA,EAAc,EAAI,KAAK,QAAQ,MAAMA,EAAc,EAAG,KAAK,QAAQ,MAAM,EAAI,IAC3G,CACI,OAAO,cAAczwH,EAAS6D,EAAM,CAEhC,MAAM9D,EAAQ,IAAI,MAAMC,CAAO,EAC/B,OAAAD,EAAM,KAAO8D,EACN9D,CACf,CACI,OAAQ,CACA,EAAE,KAAK,aAAe,IAClB,KAAK,iBAAiB,OAAS,GAE/B,KAAK,gBAAkB,sBACvB,KAAK,WAAa,KAAK,iBACvB,KAAK,WAAW,KAAK,GAAG,EACxB,KAAK,iBAAmB,CAAE,EAC1B,KAAK,wBAA0B,GAC/B,KAAK,aAEL,KAAK,WAAY,IAIb,KAAK,gBAAkB,GAAK,KAAK,gBACjC,KAAK,QAAQqiL,GAAmB,cAAc,sCAAsC,KAAK,cAAc,IAAK,yBAAyB,CAAC,EAE1I,KAAK,MAAO,GAEhB,KAAK,wBAA0B,GAE3C,CACI,YAAa,CACT,GAAI,KAAK,gBACL,GAAI,KAAK,6BAA6B,KAAK,eAAe,GAAK,CAAC,KAAK,wBAEjE,KAAK,gBAAkB,OACvB,KAAK,WAAa,OAClB,KAAK,MAAO,MAEX,CAED,MAAMM,EAAa,IAAI1sE,EAAkB,SAAS,CAAE,WAAY,GAAM,EACtE0sE,EAAW,MAAQ,IAAM,CAExB,EACD,MAAMC,EAAkB,KAAK,WAEvBC,EAAc,CAChB,QAAS,KAAK,QACd,OAAQ,CACJ,SAAU,CAAE,QAAS,KAAK,OAAS,EACnC,KAAMF,EACN,QAAS,KAAK,QACd,QAAS,KAAK,OACjB,EACD,gBAAiB,KAAK,eACzB,EACD,KAAK,uBAAuB,QAAQE,CAAW,EAC1C,KAAK,CAAC,CAAE,OAAA72J,KAAa,CAEtBA,EAAO,KACF,GAAG,QAAShsB,GAAS,KAAK,QAAQqiL,GAClC,cAAcriL,EAAM,QAAS,wBAAwB,CAAC,CAAC,EACvD,GAAG,OAAQ,KAAK,MAAM,EACtB,GAAG,MAAO,IAAM,KAAK,MAAK,CAAE,EAEjC,UAAW8iL,KAAaF,EACpBD,EAAW,KAAKG,CAAS,EAE7BH,EAAW,KAAK,IAAI,CACvB,CAAA,EACI,MAAO3iL,GAAU,CACd,KAAK,eAEL,KAAK,QAAQqiL,GAAmB,cAAcriL,EAAM,QAAS,yBAAyB,CAAC,EAIvF,KAAK,MAAO,CAEpC,CAAiB,EAED,KAAK,gBAAkB,OACvB,KAAK,WAAa,MAClC,CAEA,CACI,UAAU5G,EAAMq+G,EAAY,CAEpBr+G,IAAS,QAAUq+G,EAAW,OAC9B,KAAK,WAAchvB,EAA2B,SAASgvB,EAAW,KAAM,KAAK,OAAO,GAIpFr+G,IAAS,WAAa,CAAC,KAAK,gBAAkBq+G,EAAW,KAAO,KAAK,gBACjE,KAAK,eAAeA,EAAW,IAAI,EAC/B,KAAK,iBAAmB,KAAK,cAAgB,EAE7C,KAAK,gBAAkB,QAGvB,KAAK,gBACL,KAAK,gBAAkBA,EAAW,KAClC,KAAK,aACD,KAAK,6BAA6B,KAAK,eAAe,GACtD,KAAK,WAAa,KAAK,iBACvB,KAAK,WAAW,KAAK,KAAK,WAAW,SAAW,EAAI,IAAM,GAAG,GAG7D,KAAK,WAAa,CAAE,GAIvB,KAAK,gBACV,KAAK,QAAQ4qE,GAAmB,cAAc,oBAAoB,KAAK,cAAc,mCAAoC,yBAAyB,CAAC,EAIvJ,KAAK,gBAAkB,MAEnC,CACI,OAAOx9K,EAAM,CACL,KAAK,iBACL,KAAK,WAAW,KAAKA,CAAI,CAErC,CAUI,6BAA6BknB,EAAW,CACpC,MAAO,CAAC,KAAK,iBAAmB,CAAC,KAAK,gBAAkBA,IAAc,qBAC9E,CACA,EACAo2J,0BAAA,mBAA6BE,gNCrK7B,OAAO,eAAeU,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMvnC,EAA8Dv2H,cAAA,EAC9DwE,EAAkCR,cAAA,EAClCk5J,EAAsDj5J,0BAAA,EAO5D,IAAA85J,EAAA,cAAsCxnC,EAAqB,iBAAkB,CACzE,YAAY//I,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKsuB,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAM88J,GAAkB,MAAM,KAAK,2BAC9B,QAAQ,CAAE,QAAS98J,EAAO,QAAS,WAAY,EAAM,CAAA,GAAG,WAE7D,MAAO,CAAE,kBADiB,IAAIu8J,EAAqB,mBAAmB,KAAK,uBAAwBv8J,EAAO,KAAMA,EAAO,MAAOA,EAAO,IAAK88J,EAAgB98J,EAAO,QAASA,EAAO,QAASA,EAAO,OAAO,CAC5K,CACpC,CACA,EACAm9J,+BAAA,wBAAkCE,oICzBlC,IAAIt6J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,+BAAoC,EAAE+D,CAAO,iRCf1D,OAAO,eAAek6J,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAMntE,EAA8E9wF,cAAA,EAC9EwE,EAAkCR,cAAA,EAOxC,IAAAk6J,EAAA,cAA2CptE,EAA6B,yBAA0B,CAC9F,YAAYt6G,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,WAAWmqB,EAAQmG,EAAWhoB,EAAS,CAEzC,GAAI6hB,EAAO,OAAS,QAChB,SAAW6D,EAAO,UAAU,SAAS,KAAK,IAAI,+BAA+B,EAGjF,KAAM,CAAE,WAAAolE,GAAe,MAAM,KAAK,0BAA0B,QAAQ,CAAE,QAAA9qF,EAAS,WAAY,GAAM,EACjG,OAAMgoB,KAAa8iE,KAKRplE,EAAO,cAAe,KAJlBA,EAAO,UAAU,SAAS,KAAK,IAAI,8BAA8BsC,CAAS,0BAErF,OAAO,KAAK8iE,CAAU,CAAC,EAAE,CAGrC,CACI,MAAM,UAAUjpE,EAAQmG,EAAWhoB,EAAS,CAExC,OAAQ,MAAM,KAAK,qBAAqB,QAAQ,CAC5C,QAAAA,EACA,OAAQ,CACJ,QAAAA,EACA,WAAY6hB,EAAO,UACtB,EACD,gBAAiBmG,CACpB,CAAA,GAAG,MACZ,CACI,MAAM,cAAcqjE,EAAU,CAC1B,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,cAAc1lB,EAAS,CACzB,OAAQ,MAAM,KAAK,0BAA0B,QAAQ,CAAE,QAAAA,EAAS,WAAY,EAAM,CAAA,GAAG,UAC7F,CACI,MAAM,qBAAqBqrF,EAAU,CACjC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,oBAAoB1lB,EAAS,CAC/B,OAAQ,MAAM,KAAK,gCAAgC,QAAQ,CAAE,QAAAA,EAAS,iBAAkB,EAAM,CAAA,GAAG,gBACzG,CACA,EACAm/K,oCAAA,6BAAuCE,yICpDvC,IAAIz6J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oCAAyC,EAAE+D,CAAO,oVCf/D,OAAO,eAAeq6J,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAM55J,EAAkCxE,cAAA,EAYxC,IAAAq+J,EAAA,cAA6C75J,EAAO,KAAM,CAQtD,YAAYhuB,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,mCAAqCA,EAAK,kCACvD,CACA,EACA4nL,sCAAA,+BAAyCE,yNC3BzC,OAAO,eAAeC,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMj4J,EAAwDtG,cAAA,EACxDw+J,EAAsDx6J,cAAA,EACtD+sF,EAAY9sF,mBAAqB,EAKvC,IAAAw6J,EAAA,KAAyB,CACrB,YAAYC,EAAW37I,EAAU47I,EAAa,GAAO,CACjD,KAAK,UAAYD,EACjB,KAAK,SAAW37I,EAChB,KAAK,WAAa47I,EAClB,KAAK,cAAgB,GACrB,KAAK,cAAgB,GACrB,KAAK,kBAAoBD,EAAU,QAAQ,QAAQp4J,EAAkB,wBAAwB,iBAAiB,EAC9G,KAAK,gBAAkB,IAAIk4J,EAAK,gBAAgB,KAAK,iBAAiB,EACtE,KAAK,eAAiB,IAAI,GAClC,CACI,gBAAiB,CAErB,CAOI,YAAa,CACT,MAAM7qK,EAAM,KAAK,eAAgB,EACjC,GAAIA,IAAQ,QAAa,KAAK,WAC1B,MAAM,IAAI6qK,EAAK,oBAEnB,OAAO7qK,CACf,CAMI,MAAM,YAAY2vB,EAAU,CACxB,GAAI,MAAK,cAGT,GAAI,CACA,MAAM3mC,EAAO,MAAM,KAAK,UAAU,SAAS2mC,CAAQ,EACnD,GAAI,CAAC3mC,GAAQ,KAAK,cACd,QAGA,CAAC,KAAK,UAAY,CAAC,KAAK,eAAe,IAAIo0G,EAAU,aAAap0G,CAAI,CAAC,KACvE,KAAK,QAAQA,CAAI,EACb,KAAK,UACL,KAAK,eAAe,IAAIo0G,EAAU,aAAap0G,CAAI,CAAC,EAGxE,OACe5B,EAAO,CACV,KAAK,UAAUA,CAAK,CAChC,CACA,CACI,MAAM,QAAS,CACX,GAAI,MAAK,cAGT,OAAO,KAAK,WAAY,CAChC,CACI,UAAU8G,EAAK,CACX,GAAI,KAAK,WACL,MAAMA,EAGN,KAAK,cAAgB,EAEjC,CACI,qBAAqBlF,EAAM,CACvB,GAAIA,EAAK,WAAa,UAClB,MAAM,IAAI,MAAM,mBAAmBA,EAAK,KAAK,aAAaA,EAAK,QAAQ,+BAA+B,EAErG,GAAI,CAAC6hL,EAAK,YAAY7hL,EAAK,SAAS,MAAO6hL,EAAK,UAAU,eAAgB,KAAK,iBAAiB,EACjG,MAAM,IAAI,MAAM,iBAAiB7hL,EAAK,SAAS,KAAK,eAAeA,EAAK,KAAK,aAAaA,EAAK,QAAQ,+BAA+B,EAE1I,OAAO,KAAK,gBAAgB,iBAAiBA,CAAI,CACzD,CACA,EACA4hL,0BAAA,mBAA6BK,+HCtF7B,IAAIl7J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,EACjED,EAAaE,0BAA+B,EAAED,CAAO,6NChBrD,OAAO,eAAe86J,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMC,EAAwF9+J,cAAA,EACxFw+J,EAAsDx6J,cAAA,EAC5D,IAAA+6J,EAAA,cAAoCD,EAAkC,kBAAmB,CACrF,YAAYJ,EAAW37I,EAAU/X,EAAajd,EAAW4wK,EAAY,CACjE,MAAMD,EAAW37I,EAAU47I,CAAU,EACrC,KAAK,YAAc3zJ,EACnB,KAAK,MAAQ,OACb,KAAK,kBAAoB,GACzB,KAAK,aAAe,OACpB,KAAK,UAAYjd,GAAa,GACtC,CACI,gBAAiB,CACb,OAAOywK,EAAK,aAAa,GAAIA,EAAK,QAAQ,UAAU,CAC5D,CACI,QAAQ7hL,EAAM,CACN,KAAK,QAAU,QACf,KAAK,MAAQA,EAAK,MACdA,EAAK,WAAa,YAClB,KAAK,aAAeA,EAAK,YAI7B,KAAK,OAAS,KAAK,UAAYA,EAAK,MAChC,KAAK,mBAAqBA,EAAK,WAAa,WAAa,KAAK,eAAiBA,EAAK,WACpF,KAAK,kBAAoB,GACzB,KAAK,aAAe,QAGpC,CACI,YAAa,CACT,OAAI,KAAK,QAAU,OACR,KAAK,WAAY,EAExB,KAAK,mBAAqB,KAAK,aACxB6hL,EAAK,WAAW,KAAK,MAAO,KAAK,YAAY,EAAE,MAAM,KAAK,WAAW,EAEzEA,EAAK,aAAa,KAAK,MAAOA,EAAK,QAAQ,UAAU,CACpE,CACA,EACAK,6BAAA,sBAAgCG,6SCzChC,OAAO,eAAeC,0CAAS,aAAc,CAAE,MAAO,GAAM,EACXA,0CAAA,0CAAG,OACpD,MAAMH,EAAwF9+J,cAAA,EACxFsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC46J,EAA4D36J,6BAAA,EAIlE,IAAAg7J,EAAA,cAAwDJ,EAAkC,8BAA+B,CACrH,YAAYtoL,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,KAAK,aAAe,kBAChB6D,EAAO,UAAU,yDAA2D,KAEhFA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI,CAAE,QAAA1lB,EAAS,KAAA+9B,GAAQ,CACzB,OAAO,IAAIgiJ,EAAwB,sBAAsB,MAAM,KAAK,mCAAmC,QAAQ,CAAE,QAAShiJ,EAAK,WAAY,QAAA/9B,CAAS,CAAA,EAAG+9B,EAAK,SAAU/9B,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EAAGuW,EAAK,SAAS,CAC1P,CACA,EACAoiJ,iDAAA,0CAAoDE,sJCvBpD,IAAIz7J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iDAAsD,EAAE+D,CAAO,EAC5ED,EAAaE,6BAAkC,EAAED,CAAO,0OChBxD,OAAO,eAAeq7J,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAMN,EAAwF9+J,cAAA,EACxFo0C,EAA8EpwC,cAAA,EACpF,IAAAq7J,EAAA,cAA8BP,EAAkC,kBAAmB,CAC/E,YAAYJ,EAAW37I,EAAU47I,EAAY,CACzC,MAAMD,EAAW37I,EAAU47I,CAAU,EACrC,KAAK,MAAQ,MACrB,CACI,gBAAiB,CACb,SAAWvqH,EAA6B,cAAc,IAAKA,EAA6B,QAAQ,WAAW,CACnH,CACI,QAAQn5E,EAAG,CACH,KAAK,QAAU,SACf,KAAK,MAAQ,GAEjB,KAAK,OACb,CACI,YAAa,CACT,OAAI,KAAK,QAAU,OACR,KAAK,WAAY,KAEjBm5E,EAA6B,cAAc,OAAO,KAAK,KAAK,EAAGA,EAA6B,QAAQ,WAAW,CAClI,CACA,EACAgrH,uBAAA,gBAA0BE,yQCzB1B,OAAO,eAAeC,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAMT,EAAwF9+J,cAAA,EACxFwE,EAAkCR,cAAA,EAClCknC,EAAoBjnC,uBAA0B,EAC9Cm7J,EAAgDl7J,uBAAA,EAItD,IAAAs7J,EAAA,cAAkDV,EAAkC,8BAA+B,CAC/G,YAAYtoL,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,KAAK,aAAe,SAC3BA,EAAO,KAAK,WAAW,iBAAmBuqC,EAAkB,QAAQ,gBAAgB,YACzE1mC,EAAO,UAAU,mEAAqE,KAE1FA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI,CAAE,QAAA1lB,EAAS,KAAA+9B,GAAQ,CACzB,OAAO,IAAIuiJ,EAAkB,gBAAgB,MAAM,KAAK,mCAAmC,QAAQ,CAAE,QAASviJ,EAAK,WAAY,QAAA/9B,CAAS,CAAA,EAAG+9B,EAAK,QAAQ,CAChK,CACA,EACA0iJ,2CAAA,oCAA8CE,gJCxB9C,IAAI/7J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,EACtED,EAAaE,uBAA4B,EAAED,CAAO,iPChBlD,OAAO,eAAe27J,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAMZ,EAAwF9+J,cAAA,EAC9F,IAAA2/J,EAAA,cAA+Bb,EAAkC,kBAAmB,CAChF,YAAYJ,EAAW37I,EAAU47I,EAAY,CACzC,MAAMD,EAAW37I,EAAU47I,CAAU,EACrC,KAAK,MAAQ,MACrB,CACI,QAAQhiL,EAAM,CAEN,KAAK,QAAU,SACf,KAAK,MAAQA,EAEzB,CACI,YAAa,CACT,OAAI,KAAK,QAAU,OACR,KAAK,WAAY,EAErB,KAAK,KACpB,CACA,EACA+iL,wBAAA,iBAA2BE,+QCrB3B,OAAO,eAAeC,qCAAS,aAAc,CAAE,MAAO,GAAM,EAChBA,qCAAA,qCAAG,OAC/C,MAAMf,EAAwF9+J,cAAA,EACxFwE,EAAkCR,cAAA,EAClC07J,EAAkDz7J,wBAAA,EAIxD,IAAA67J,EAAA,cAAmDhB,EAAkC,8BAA+B,CAChH,YAAYtoL,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,KAAK,aAAe,YAChB6D,EAAO,UAAU,mDAAqD,KAE1EA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI,CAAE,QAAA1lB,EAAS,KAAA+9B,GAAQ,CACzB,OAAO,IAAI6iJ,EAAmB,iBAAiB,MAAM,KAAK,mCAAmC,QAAQ,CAAE,QAAS7iJ,EAAK,WAAY,QAAA/9B,CAAS,CAAA,EAAG+9B,EAAK,QAAQ,CAClK,CACA,EACAgjJ,4CAAA,qCAA+CE,iJCtB/C,IAAIr8J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,4CAAiD,EAAE+D,CAAO,EACvED,EAAaE,wBAA6B,EAAED,CAAO,kSChBnD,OAAO,eAAei8J,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMlB,EAAwF9+J,cAAA,EACxFo0C,EAA8EpwC,cAAA,EAC9E+sF,EAAY9sF,mBAAqB,EACvC,IAAAg8J,EAAA,cAAsCnB,EAAkC,kBAAmB,CACvF,YAAYJ,EAAW37I,EAAU47I,EAAY,CACzC,MAAMD,EAAW37I,EAAU47I,CAAU,EACrC,KAAK,cAAgB,IAAI,IACzB,KAAK,MAAQ,MACrB,CACI,QAAQuB,EAAO,CAEnB,CACI,MAAM,YAAY58I,EAAU,CACnB,KAAK,eAAeA,CAAQ,IACzB,KAAK,QAAU,SACf,KAAK,MAAQ,GAEjB,KAAK,OAAS,EAE1B,CACI,gBAAiB,CACb,SAAW8wB,EAA6B,cAAc,IAAKA,EAA6B,QAAQ,WAAW,CACnH,CACI,YAAa,CACT,OAAI,KAAK,QAAU,OACR,KAAK,WAAY,KAEjBA,EAA6B,cAAc,OAAO,KAAK,KAAK,EAAGA,EAA6B,QAAQ,WAAW,CAClI,CAMI,eAAe9wB,EAAU,CACrB,GAAI,KAAK,SAAU,CACf,MAAM68I,EAAc,CAAC,GAAG78I,CAAQ,EAChC68I,EAAY,KAAK,CAAC9kK,EAAO+kK,IAAQ/kK,EAAM,CAAC,EAAE,MAAM,cAAc+kK,EAAI,CAAC,EAAE,KAAK,CAAC,EAC3E,MAAMvhJ,EAAYshJ,EAAY,IAAI,CAAC,CAACh5J,CAAQ,IAAMA,EAAS,KAAK,EAAE,KAAK,GAAG,EACpE8D,EAAQk1J,EAAY,IAAI,CAAC,CAAA,CAAGxjL,CAAI,IAAMo0G,EAAU,aAAap0G,CAAI,CAAC,EAAE,KAAK,GAAG,EAC5Eib,EAAM,KAAK,cAAc,IAAIinB,CAAS,EACtChqC,EAAS+iB,IAAQ,QAAaA,EAAI,IAAIqT,CAAK,EAEjD,OAAKrT,GACD,KAAK,cAAc,IAAIinB,EAAW,IAAI,GAAK,EAE/C,KAAK,cAAc,IAAIA,CAAS,EAAE,IAAI5T,CAAK,EACpCp2B,CACnB,CACQ,MAAO,EACf,CACA,EACAmrL,+BAAA,wBAAkCK,yTCtDlC,OAAO,eAAeC,4CAAS,aAAc,CAAE,MAAO,GAAM,EACTA,4CAAA,4CAAG,OACtD,MAAMxB,EAAwF9+J,cAAA,EACxFwE,EAAkCR,cAAA,EAClCg8J,EAAgE/7J,+BAAA,EAItE,IAAAs8J,EAAA,cAA0DzB,EAAkC,8BAA+B,CACvH,YAAYtoL,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,KAAK,aAAe,SAAWA,EAAO,KAAK,WAAW,iBAAmB,cACrE6D,EAAO,UAAU,gEAAkE,KAEvFA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI,CAAE,QAAA1lB,EAAS,KAAA+9B,GAAQ,CACzB,OAAO,IAAImjJ,EAA0B,wBAAwB,MAAM,KAAK,mCAAmC,QAAQ,CAAE,QAASnjJ,EAAK,WAAY,QAAA/9B,CAAS,CAAA,EAAG+9B,EAAK,QAAQ,CAChL,CACA,EACAyjJ,mDAAA,4CAAsDE,wJCtBtD,IAAI98J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mDAAwD,EAAE+D,CAAO,EAC9ED,EAAaE,+BAAoC,EAAED,CAAO,wPChB1D,OAAO,eAAe08J,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAM3B,EAAwF9+J,cAAA,EACxFw+J,EAAsDx6J,cAAA,EAC5D,IAAA08J,EAAA,cAAgC5B,EAAkC,kBAAmB,CACjF,YAAYJ,EAAW37I,EAAU/X,EAAa21J,EAAkBC,EAAkBjC,EAAY,CAC1F,MAAMD,EAAW37I,EAAU47I,CAAU,EACrC,KAAK,YAAc3zJ,EACnB,KAAK,iBAAmB21J,EACxB,KAAK,iBAAmBC,EACxB,KAAK,MAAQ,MACrB,CACI,gBAAiB,CACb,OAAOpC,EAAK,aAAa,IAAKA,EAAK,QAAQ,WAAW,CAC9D,CACI,QAAQ7hL,EAAM,CACV,GAAI,KAAK,QAAU,OAAW,CAC1B,MAAM6Q,EAAM,KAAK,qBAAqB7Q,CAAI,EAC1C,KAAK,MAAQ,CAAE,IAAA6Q,EAAK,MAAO,CAAG,CAC1C,KACa,CACD,MAAMqzK,EAAe,KAAK,qBAAqBlkL,CAAI,EACnD,KAAK,MAAM,IAAM,KAAK,iBACjB,aAAa,CAAC,KAAK,MAAM,IAAKkkL,CAAY,EAAG,KAAK,SAAS,EAChE,KAAK,MAAM,OACvB,CACA,CACI,YAAa,CACT,GAAI,KAAK,QAAU,OACf,OAAO,KAAK,WAAY,EAE5B,MAAMruK,EAAQ,IAAIgsK,EAAK,eAAe,KAAK,MAAM,KAAK,EAEtD,OADe,KAAK,iBAAiB,aAAa,CAAC,KAAK,MAAM,IAAKhsK,CAAK,EAAG,KAAK,SAAS,EAC3E,MAAM,KAAK,WAAW,CAC5C,CACA,EACAiuK,yBAAA,kBAA4BK,qRCpC5B,OAAO,eAAeC,sCAAS,aAAc,CAAE,MAAO,GAAM,EACfA,sCAAA,sCAAG,OAChD,MAAMjC,EAAwF9+J,cAAA,EACxFsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCmwC,EAA8ElwC,cAAA,EAC9Eu8J,EAAoDt8J,yBAAA,EAI1D,IAAA68J,EAAA,cAAoDlC,EAAkC,8BAA+B,CACjH,YAAYtoL,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,wBAA0BA,EAAK,uBAC5C,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,KAAK,aAAe,SAChB6D,EAAO,UAAU,gDAAkD,KAEvEA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI,CAAE,QAAA1lB,EAAS,KAAA+9B,GAAQ,CACzB,OAAO,IAAI4jJ,EAAoB,kBAAkB,MAAM,KAAK,mCAAmC,QAAQ,CAAE,QAAS5jJ,EAAK,WAAY,QAAA/9B,CAAO,CAAE,EAAG+9B,EAAK,SAAU/9B,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EAAG,MAAM,KAAK,wBAAwB,QAAQ,CACnQ,aAAc8tC,EAA6B,eAAe,SAC1D,QAAAt1D,EACA,sBAAuB,EAC1B,CAAA,EAAG,MAAM,KAAK,wBAAwB,QAAQ,CAC3C,aAAcs1D,EAA6B,eAAe,SAC1D,QAAAt1D,EACA,sBAAuB,EACnC,CAAS,CAAC,CACV,CACA,EACAiiL,6CAAA,sCAAgDE,kJCjChD,IAAIv9J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,6CAAkD,EAAE+D,CAAO,EACxED,EAAaE,yBAA8B,EAAED,CAAO,4NChBpD,OAAO,eAAem9J,cAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,cAAA,cAAG,OACxB,MAAMpC,EAAwF9+J,cAAA,EACxFo0C,EAA8EpwC,cAAA,EACpF,IAAAm9J,EAAA,cAA4BrC,EAAkC,kBAAmB,CAC7E,YAAYJ,EAAW37I,EAAU/X,EAAa21J,EAAkBhC,EAAY,CACxE,MAAMD,EAAW37I,EAAU47I,CAAU,EACrC,KAAK,YAAc3zJ,EACnB,KAAK,iBAAmB21J,EACxB,KAAK,MAAQ,MACrB,CACI,gBAAiB,CACb,SAAWvsH,EAA6B,cAAc,IAAKA,EAA6B,QAAQ,WAAW,CACnH,CACI,QAAQz3D,EAAM,CACV,GAAI,KAAK,QAAU,OACf,KAAK,MAAQ,KAAK,qBAAqBA,CAAI,MAE1C,CACD,MAAMkkL,EAAe,KAAK,qBAAqBlkL,CAAI,EACnD,KAAK,MAAQ,KAAK,iBAAiB,aAAa,CAAC,KAAK,MAAOkkL,CAAY,EAAG,KAAK,SAAS,CACtG,CACA,CACI,YAAa,CACT,OAAI,KAAK,QAAU,OACR,KAAK,WAAY,EAErB,KAAK,MAAM,MAAM,KAAK,WAAW,CAChD,CACA,EACAK,qBAAA,cAAwBE,6PC9BxB,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAMvC,EAAwF9+J,cAAA,EACxFsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCmwC,EAA8ElwC,cAAA,EAC9Eg9J,EAA4C/8J,qBAAA,EAIlD,IAAAm9J,EAAA,cAAgDxC,EAAkC,8BAA+B,CAC7G,YAAYtoL,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,wBAA0BA,EAAK,uBAC5C,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,KAAK,aAAe,SAChB6D,EAAO,UAAU,gDAAkD,KAEvEA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI,CAAE,KAAAqY,EAAM,QAAA/9B,GAAW,CACzB,OAAO,IAAIoiL,EAAgB,cAAc,MAAM,KAAK,mCAAmC,QAAQ,CAAE,QAASrkJ,EAAK,WAAY,QAAA/9B,CAAO,CAAE,EAAG+9B,EAAK,SAAU/9B,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EAAG,MAAM,KAAK,wBAAwB,QAAQ,CAC3P,aAAc8tC,EAA6B,eAAe,SAC1D,QAAAt1D,EACA,sBAAuB,EACnC,CAAS,CAAC,CACV,CACA,EACAuiL,yCAAA,kCAA4CE,8IC7B5C,IAAI79J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,EACpED,EAAaE,qBAA0B,EAAED,CAAO,qQChBhD,OAAO,eAAey9J,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAMz9B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAKpF,IAAAy9J,EAAA,cAAmC19B,EAAuB,sBAAuB,CAC7E,YAAY29B,EAAkB,CAC1B,MAAM,CACF,MAAO,OAAO,kBACd,SAAUttH,EAA6B,eAAe,GACtD,MAAO,MAAOt1D,GAAY,CACtB,KAAM,CAAE,KAAAtI,EAAM,QAAAk+D,EAAS,SAAAD,CAAU,EAAG31D,EAC9B,CAAC+nJ,EAAU,GAAG15E,CAAS,EAAI32E,EAC3Bye,EAAO,MAAMw/C,EAAS,8BAA8BoyF,EAAUnyF,CAAO,EAC3E,OAAO,MAAM,KAAK,YAAYz/C,EAAM,CAAE,GAAGnW,EAAS,KAAMquE,CAAW,EAAE,EAAE,CAC1E,CACb,CAAS,EACD,KAAK,iBAAmBu0G,CAChC,CACI,WAAWlrL,EAAM,CACb,OAAOA,EAAK,OAAS,CAC7B,CACI,MAAM,YAAYmrL,EAAQ7iL,EAASwD,EAAS,CACxC,KAAM,CAAE,KAAA9L,EAAM,QAAAk+D,EAAS,SAAAD,CAAU,EAAG31D,EACpC,GAAItI,EAAK,SAAW,EAEhB,OADiB8L,EAAQ,MAAMqR,GAAO,CAACA,CAAG,KACpBygD,EAA6B,MAAM,EAAK,EAAI,QAAQ,OAAO,IAAIA,EAA6B,QAAQ9xD,CAAO,CAAC,EAEtI,GAAI,CAEA,MAAMs/K,EAAiBprL,EAAK,MAAO,EAC7BmS,EAAO,MAAM8rD,EAAS,8BAA8BmtH,EAAgBltH,CAAO,EACjF,OAAI,KAAK,iBAAiB,aAAa,CAACitH,EAAQh5K,CAAI,EAAG8rD,CAAQ,EAAE,cAClDL,EAA6B,MAAM,EAAI,EAE/C,KAAK,YAAYutH,EAAQ7iL,EAAS,CAAC,GAAGwD,EAAS,EAAK,CAAC,CACxE,OACevH,EAAO,CACV,OAAO,KAAK,YAAY4mL,EAAQ7iL,EAAS,CAAC,GAAGwD,EAASvH,CAAK,CAAC,CACxE,CACA,CACA,EACAymL,4BAAA,qBAA+BK,+PC7C/B,OAAO,eAAeC,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAM/9B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Ew9J,EAA0Dv9J,4BAAA,EAIhE,IAAA89J,EAAA,cAA+Ch+B,EAAuB,6BAA8B,CAChG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,EAAE,EAC9D,aAAc,EAC1B,CAAS,EACD,KAAK,wBAA0B59D,EAAK,uBAC5C,CACI,MAAM,IAAIA,EAAM,CACZ,MAAMkrL,EAAmB,MAAM,KAAK,wBAAwB,QAAQ,CAChE,aAActtH,EAA6B,eAAe,MAC1D,sBAAuB,GACvB,QAAS59D,EAAK,QACd,UAAWA,EAAK,SAC5B,CAAS,EACD,OAAO,IAAIgrL,EAAuB,qBAAqBE,CAAgB,CAC/E,CACA,EACAI,wCAAA,iCAA2CE,6IC3B3C,IAAIt+J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,0RCfnE,OAAO,eAAek+J,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMl+B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAKpF,IAAAk+J,EAAA,cAAsCn+B,EAAuB,sBAAuB,CAChF,YAAYo+B,EAAY,CACpB,MAAM,CACF,MAAO,OAAO,kBACd,SAAU/tH,EAA6B,eAAe,OACtD,MAAO,MAAOt1D,GAAY,CACtB,MAAMsjL,EAAO,MAAM,KAAK,WAAW,MAAMtjL,CAAO,EAChD,SAAWs1D,EAA6B,MAAM,CAACguH,EAAK,UAAU,CACjE,CACb,CAAS,EACD,KAAK,WAAaD,CAC1B,CACI,WAAW3rL,EAAM,CACb,OAAOA,EAAK,OAAS,CAC7B,CACA,EACAyrL,+BAAA,wBAAkCI,iRCxBlC,OAAO,eAAeC,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAMv+B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Ei+J,EAAgEh+J,+BAAA,EAItE,IAAAs+J,EAAA,cAAkDx+B,EAAuB,6BAA8B,CACnG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,MAAM,EAClE,aAAc,EAC1B,CAAS,EACD,KAAK,wBAA0B59D,EAAK,uBAC5C,CACI,MAAM,IAAIA,EAAM,CACZ,MAAM2rL,EAAa,MAAM,KAAK,wBAAwB,QAAQ,CAC1D,aAAc/tH,EAA6B,eAAe,GAC1D,QAAS59D,EAAK,QACd,UAAWA,EAAK,SAC5B,CAAS,EACD,OAAO,IAAIyrL,EAA0B,wBAAwBE,CAAU,CAC/E,CACA,EACAG,2CAAA,oCAA8CE,gJC1B9C,IAAI9+J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,6TCftE,OAAO,eAAe0+J,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAM1+B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAA0+J,EAAA,cAA2C3+B,EAAuB,gBAAiB,CAC/E,YAAY4+B,EAAuB,CAC/B,MAAM,CACF,MAAO,EACP,SAAUvuH,EAA6B,eAAe,IACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,GAAG,EAC/F,IAAI,CAAC,OAAQ,MAAM,EAAGK,GAAY,CAAC,CAACp5C,EAAO6jC,CAAM,IAEtD,KAAK,sBAAsB,aAAa,CAACA,EAAQ7jC,CAAK,EAAGo5C,CAAQ,CAAC,EAC7D,QAAS,CAC1B,CAAS,EACD,KAAK,sBAAwBkuH,CACrC,CACA,EACAF,oCAAA,6BAAuCG,+SClBvC,OAAO,eAAeC,yCAAS,aAAc,CAAE,MAAO,GAAM,EACZA,yCAAA,yCAAG,OACnD,MAAM9+B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Ey+J,EAA0Ex+J,oCAAA,EAIhF,IAAA6+J,EAAA,cAAuD/+B,EAAuB,6BAA8B,CACxG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,GAAG,EAC/D,aAAc,EAC1B,CAAS,EACD,KAAK,wBAA0B59D,EAAK,uBAC5C,CACI,MAAM,IAAIA,EAAM,CACZ,MAAMmsL,EAAwB,MAAM,KAAK,wBAAwB,QAAQ,CACrE,aAAcvuH,EAA6B,eAAe,IAC1D,sBAAuB,GACvB,QAAS59D,EAAK,QACd,UAAWA,EAAK,SAC5B,CAAS,EACD,OAAO,IAAIisL,EAA+B,6BAA6BE,CAAqB,CACpG,CACA,EACAE,gDAAA,yCAAmDE,qJC3BnD,IAAIr/J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gDAAqD,EAAE+D,CAAO,0RCf3E,OAAO,eAAei/J,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMj/B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAAi/J,EAAA,cAAsCl/B,EAAuB,gBAAiB,CAC1E,YAAYm/B,EAAkB,CAC1B,MAAM,CACF,MAAO,EACP,SAAU9uH,EAA6B,eAAe,GACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,EAAE,EAC9F,IAAI,CAAC,OAAQ,MAAM,EAAGvS,GAAuB,CAAC,CAACxmC,EAAO6jC,CAAM,IAEjE,KAAK,iBAAiB,aAAa,CAACA,EAAQ7jC,CAAK,EAAGwmC,CAAmB,CAAC,EACnE,QAAS,CAC1B,CAAS,EACD,KAAK,iBAAmBqhI,CAChC,CACA,EACAF,+BAAA,wBAAkCG,iRClBlC,OAAO,eAAeC,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAMr/B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eg/J,EAAgE/+J,+BAAA,EAItE,IAAAo/J,EAAA,cAAkDt/B,EAAuB,6BAA8B,CACnG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,EAAE,EAC9D,aAAc,EAC1B,CAAS,EACD,KAAK,wBAA0B59D,EAAK,uBAC5C,CACI,MAAM,IAAIA,EAAM,CACZ,MAAM0sL,EAAmB,MAAM,KAAK,wBAAwB,QAAQ,CAChE,aAAc9uH,EAA6B,eAAe,GAC1D,sBAAuB,GACvB,QAAS59D,EAAK,QACd,UAAWA,EAAK,SAC5B,CAAS,EACD,OAAO,IAAIwsL,EAA0B,wBAAwBE,CAAgB,CACrF,CACA,EACAE,2CAAA,oCAA8CE,gJC3B9C,IAAI5/J,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,mRCftE,OAAO,eAAew/J,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMx/B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAAw/J,EAAA,cAAqCz/B,EAAuB,gBAAiB,CACzE,YAAY29B,EAAkB,CAC1B,MAAM,CACF,MAAO,EACP,SAAUttH,EAA6B,eAAe,UACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,SAAS,EACrG,IAAI,CAAC,OAAQ,MAAM,EAAGvS,GAAuB,CAAC,CAACxmC,EAAO6jC,CAAM,OAAUkV,EAA6B,MAAM,CAAC,KAAK,iBAC/G,aAAa,CAAC/4C,EAAO6jC,CAAM,EAAG2C,CAAmB,EAAE,UAAU,CAAC,EAC9D,QAAS,CAC1B,CAAS,EACD,KAAK,iBAAmB6/H,CAChC,CACA,EACA6B,8BAAA,uBAAiCE,2QCjBjC,OAAO,eAAeC,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAM3/B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9Eu/J,EAA8Dt/J,8BAAA,EAIpE,IAAA0/J,EAAA,cAAiD5/B,EAAuB,6BAA8B,CAClG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,SAAS,EACrE,aAAc,EAC1B,CAAS,EACD,KAAK,wBAA0B59D,EAAK,uBAC5C,CACI,MAAM,IAAIA,EAAM,CACZ,MAAMkrL,EAAmB,MAAM,KAAK,wBAAwB,QAAQ,CAChE,aAActtH,EAA6B,eAAe,MAC1D,sBAAuB,GACvB,QAAS59D,EAAK,QACd,UAAWA,EAAK,SAC5B,CAAS,EACD,OAAO,IAAI+sL,EAAyB,uBAAuB7B,CAAgB,CACnF,CACA,EACAgC,0CAAA,mCAA6CE,+IC3B7C,IAAIlgK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0CAA+C,EAAE+D,CAAO,sTCfrE,OAAO,eAAe8/J,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAM9/B,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EACpF,IAAA8/J,EAAA,cAA0C//B,EAAuB,gBAAiB,CAC9E,YAAY29B,EAAkBwB,EAAkB,CAC5C,MAAM,CACF,MAAO,EACP,SAAU9uH,EAA6B,eAAe,IACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,GAAG,EAC/F,IAAI,CAAC,OAAQ,MAAM,EAAGK,GAAY,CAAC,CAACp5C,EAAO6jC,CAAM,OAKlDkV,EAA6B,MAAM,KAAK,iBAAiB,aAAa,CAAC/4C,EAAO6jC,CAAM,EAAGuV,CAAQ,EAC9F,YACD,KAAK,iBAAiB,aAAa,CAACp5C,EAAO6jC,CAAM,EAAGuV,CAAQ,EACvD,UAAU,CAAC,EACf,QAAS,CAC1B,CAAS,EACD,KAAK,iBAAmBitH,EACxB,KAAK,iBAAmBwB,CAChC,CACA,EACAW,mCAAA,4BAAsCE,ySCzBtC,OAAO,eAAeC,wCAAS,aAAc,CAAE,MAAO,GAAM,EACbA,wCAAA,wCAAG,OAClD,MAAMjgC,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9E6/J,EAAwE5/J,mCAAA,EAI9E,IAAAggK,EAAA,cAAsDlgC,EAAuB,6BAA8B,CACvG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,GAAG,EAC/D,aAAc,EAC1B,CAAS,EACD,KAAK,wBAA0B59D,EAAK,uBAC5C,CACI,MAAM,IAAIA,EAAM,CACZ,MAAMkrL,EAAmB,MAAM,KAAK,wBAAwB,QAAQ,CAChE,aAActtH,EAA6B,eAAe,MAC1D,sBAAuB,GACvB,QAAS59D,EAAK,QACd,UAAWA,EAAK,SAC5B,CAAS,EACK0sL,EAAmB,MAAM,KAAK,wBAAwB,QAAQ,CAChE,aAAc9uH,EAA6B,eAAe,GAC1D,sBAAuB,GACvB,QAAS59D,EAAK,QACd,UAAWA,EAAK,SAC5B,CAAS,EACD,OAAO,IAAIqtL,EAA8B,4BAA4BnC,EAAkBwB,CAAgB,CAC/G,CACA,EACAc,+CAAA,wCAAkDE,oJCjClD,IAAIxgK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,+CAAoD,EAAE+D,CAAO,mRCf1E,OAAO,eAAeogK,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMpgC,EAAkE/jI,cAAA,EAClEsG,EAAwDtC,cAAA,EACxDowC,EAA8EnwC,cAAA,EACpF,IAAAmgK,EAAA,cAAqCrgC,EAAuB,gBAAiB,CACzE,YAAY29B,EAAkB,CAC1B,MAAM,CACF,MAAO,EACP,SAAUttH,EAA6B,eAAe,GACtD,aAAeA,EAA6B,SAASA,EAA6B,eAAe,EAAE,EAC9F,WAAW,IAAM,CAACn/C,EAAMC,IAAUD,EAAOC,CAAK,EAC9C,WAAW,IAAM,CAACD,EAAMC,IAAUD,EAAK,cAAcC,CAAK,IAAM,EAAE,EAClE,YAAY,IAAM,CAACD,EAAMC,IAAUD,EAAOC,CAAK,EAC/C,aAAau/C,GAAY,CAACx/C,EAAMC,OAAck/C,EAA6B,WAAWn/C,EAAMw/C,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,eAAe,CAAC,EAAE,QAAS,KACvL8tC,EAA6B,WAAWl/C,EAAOu/C,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,eAAe,CAAC,EAAE,QAAS,CAAA,EAChJ,KAAK,CAEN,KAAM,CAAC8tC,EAA6B,QAAQ,cAAeA,EAA6B,QAAQ,aAAa,EAC7G,GAAI,CAACA,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,QAAQ,CACpG,CAAA,EACI,IAAI,CAACA,EAA6B,QAAQ,wBAAyBA,EAA6B,QAAQ,uBAAuB,EAAG,IAAM,CAAC,CAACiwH,EAAOC,CAAK,OAEvJlwH,EAA6B,SAAUA,EAA6B,+BAAgCA,EAA6B,0CAA0CiwH,EAAM,UAAU,CAAC,KACxLjwH,EAA6B,+BAAgCA,EAA6B,0CAA0CkwH,EAAM,UAAU,CAAC,CAAC,CAAC,EAC1J,IAAI,CAAClwH,EAA6B,QAAQ,sBAAuBA,EAA6B,QAAQ,qBAAqB,EAAG,IAAM,CAAC,CAACw9F,EAAMC,CAAI,OAEjJz9F,EAA6B,SAAUA,EAA6B,8BAA+BA,EAA6B,wCAAwCw9F,EAAK,UAAU,CAAC,KACpLx9F,EAA6B,8BAA+BA,EAA6B,wCAAwCy9F,EAAK,UAAU,CAAC,CAAC,CAAC,EACtJ,IAAI,CAACz9F,EAA6B,QAAQ,SAAUA,EAA6B,QAAQ,QAAQ,EAAGK,GAAY,CAAC,CAACq9F,EAAOC,CAAK,OAE/H39F,EAA6B,SAAUA,EAA6B,cAAeA,EAA6B,iCAAiC09F,EAAM,UAAU,EAAGr9F,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,eAAe,CAAC,EAAE,QAAS,KAC9P8tC,EAA6B,cAAeA,EAA6B,iCAAiC29F,EAAM,UAAU,EAAGt9F,EAAS,QAAQ,QAAQnuC,EAAkB,wBAAwB,eAAe,CAAC,EAAE,SAAS,CAAC,EAC/N,IAAI,CAAC,OAAQ,MAAM,EAAGmuC,GAAY,CAAC,CAACx/C,EAAMC,CAAK,IAAM,CACtD,MAAMqvK,EAAc,KAAK,kBAAkBtvK,EAAK,QAASC,EAAM,QAASu/C,CAAQ,EAChF,GAAI8vH,IAAgB,OAChB,SAAWnwH,EAA6B,MAAMmwH,CAAW,EAE7D,MAAMC,EAAgB,KAAK,kBAAkBvvK,EAAK,UAAWC,EAAM,UAAWu/C,CAAQ,EACtF,GAAI+vH,IAAkB,OAClB,SAAWpwH,EAA6B,MAAMowH,CAAa,EAE/D,MAAMC,EAAa,KAAK,kBAAkBxvK,EAAK,OAAQC,EAAM,OAAQu/C,CAAQ,EAC7E,OAAIgwH,IAAe,UACJrwH,EAA6B,MAAMqwH,CAAU,KAEjDrwH,EAA6B,MAAM,KAAK,kBAAkBn/C,EAAK,MAAOC,EAAM,MAAOu/C,CAAQ,GAAK,EAAK,CAChI,EAAe,EAAK,EACH,QAAS,CAC1B,CAAS,EACD,KAAK,iBAAmBitH,CAChC,CACI,kBAAkBzsK,EAAMC,EAAOu/C,EAAU,CAGrC,OADuB,KAAK,iBAAiB,aAAa,CAACx/C,EAAMC,CAAK,EAAGu/C,CAAQ,EAC9D,WACf,OAEkB,KAAK,aAAa,CAACx/C,EAAMC,CAAK,EAAGu/C,CAAQ,EAC1C,UAC7B,CACA,EACA0vH,8BAAA,uBAAiCO,2QC9DjC,OAAO,eAAeC,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAM5gC,EAAkE/jI,cAAA,EAClEo0C,EAA8EpwC,cAAA,EAC9EmgK,EAA8DlgK,8BAAA,EAIpE,IAAA2gK,EAAA,cAAiD7gC,EAAuB,6BAA8B,CAClG,YAAYvtJ,EAAM,CACd,MAAM,CACF,GAAGA,EACH,cAAe,CAAC49D,EAA6B,eAAe,EAAE,EAC9D,aAAc,EAC1B,CAAS,EACD,KAAK,wBAA0B59D,EAAK,uBAC5C,CACI,MAAM,IAAIA,EAAM,CACZ,MAAMkrL,EAAmB,MAAM,KAAK,wBAAwB,QAAQ,CAChE,aAActtH,EAA6B,eAAe,MAC1D,sBAAuB,GACvB,QAAS59D,EAAK,QACd,UAAWA,EAAK,SAC5B,CAAS,EACD,OAAO,IAAI2tL,EAAyB,uBAAuBzC,CAAgB,CACnF,CACA,EACAiD,0CAAA,mCAA6CE,+IC3B7C,IAAInhK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0CAA+C,EAAE+D,CAAO,yMCfrE,OAAO,eAAe+gK,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAM7S,EAA0CjyJ,cAAA,EAC1CsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCuuH,EAAqBtuH,cAAkC,EACvD6gK,EAAc,iCACpB,SAASC,EAAWrkK,EAAQ,CACxB,MAAMo8H,EAAU,IAAI,QAAQp8H,EAAO,MAAOA,EAAO,IAAI,EACrD,MAAO,CACH,MAAO,IAAI,QAAQ,IAAI,IAAI,IAAIo8H,EAAQ,GAAG,GAAIgoC,CAAW,EAAGhoC,CAAO,CACtE,CACL,CACA,SAASkoC,EAAgBnmL,EAAS,CAC9B,MAAM45D,EAAU55D,EAAQ,IAAIwnB,EAAkB,cAAc,gBAAgB,EAC5E,OAAIoyC,EACQ/3C,GAAW+3C,EAAQ,SAASssH,EAAWrkK,CAAM,CAAC,EAElDA,GAAW,QAAQ,QAAQqkK,EAAWrkK,CAAM,CAAC,CACzD,CAIA,IAAAukK,EAAA,cAA+BjT,EAAW,SAAU,CAChD,YAAYz7K,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKsuB,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,IAAI9rB,EAAS,MAAM,KAAK,aAAa,QAAQ8rB,CAAM,EACnD,GAAI9rB,EAAO,SAAW,KAAO8rB,EAAO,QAAQ,IAAI2F,EAAkB,gBAAgB,kBAAkB,EAAG,CACnG,IAAI6+J,EAAiB,MAAM,KAAK,aAAa,QAAQ,CACjD,GAAGxkK,EACH,QAASA,EAAO,QACX,IAAI2F,EAAkB,gBAAgB,mBAAoB,EAAK,EAC/D,IAAIA,EAAkB,cAAc,iBAAkB,CAAE,SAAU2+J,EAAgBtkK,EAAO,OAAO,EAAG,CACxH,CAAa,EAEGwkK,EAAe,SAAW,MAC1B,CAACtwL,EAAQswL,CAAc,EAAI,CAACA,EAAgBtwL,CAAM,GAGtD,KAAM,CAAE,KAAA8+E,CAAI,EAAKwxG,EACbxxG,IACI,WAAYA,GAAQ,OAAOA,EAAK,QAAW,WAC3C,MAAMA,EAAK,OAAQ,EAEd,YAAaA,GAAQ,OAAOA,EAAK,SAAY,WAClDA,EAAK,QAAS,EAGd,QAAU6+D,EAAmB,WAAWy/B,EAAW,UAAU,eAAet+F,CAAI,CAAC,EAGrG,CACQ,OAAO9+E,CACf,CACA,EACAiwL,wBAAA,iBAA2BM,6HC5D3B,IAAI1hK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wBAA6B,EAAE+D,CAAO,2RCfnD,OAAO,eAAcA,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAsB,YAAAA,EAAA,WAAqB,OAO3C,MAAM49D,UAAmB,KAAM,CAE3B,YAAY3mF,EAAS6D,EAAM,CACvB,MAAM7D,CAAO,EACb,KAAK,KAAO6D,CACpB,CACA,CACAklB,EAAA,WAAqB49D,EAOpB,SAAUC,EAAa,CACpBA,EAAY,mBAAwB,qBACpCA,EAAY,oBAAyB,sBACrCA,EAAY,mBAAwB,qBACpCA,EAAY,iBAAsB,oBAClCA,EAAY,oBAAyB,uBACrCA,EAAY,mBAAwB,sBACpCA,EAAY,qBAA0B,wBACtCA,EAAY,wBAA6B,2BACzCA,EAAY,sBAA2B,yBACvCA,EAAY,qBAA0B,wBACtCA,EAAY,sBAA2B,yBACvCA,EAAY,iBAAsB,mBAClCA,EAAY,0BAA+B,4BAC3CA,EAAY,sBAA2B,wBACvCA,EAAY,8BAAmC,gCAC/CA,EAAY,yBAA8B,2BAC1CA,EAAY,uBAA4B,0BACxCA,EAAY,oBAAyB,sBACrCA,EAAY,qBAA0B,uBACtCA,EAAY,sBAA2B,wBACvCA,EAAY,2BAAgC,6BAC5CA,EAAY,yBAA8B,2BAC1CA,EAAY,+BAAoC,iCAChDA,EAAY,8BAAmC,gCAC/CA,EAAY,sBAA2B,wBACvCA,EAAY,uBAA4B,yBACxCA,EAAY,yBAA8B,2BAC1CA,EAAY,6BAAkC,+BAC9CA,EAAY,+BAAoC,iCAChDA,EAAY,uBAA4B,yBACxCA,EAAY,uBAA4B,yBACxCA,EAAY,2BAAgC,6BAC5CA,EAAY,wBAA6B,0BACzCA,EAAY,qBAA0B,uBACtCA,EAAY,mBAAwB,qBACpCA,EAAY,oBAAyB,sBACrCA,EAAY,qBAA0B,uBACtCA,EAAY,2BAAgC,6BAC5CA,EAAY,sBAA2B,wBACvCA,EAAY,yBAA8B,2BAC1CA,EAAY,qBAA0B,uBACtCA,EAAY,wBAA6B,0BACzCA,EAAY,8BAAmC,gCAC/CA,EAAY,8BAAmC,gCAC/CA,EAAY,yBAA8B,2BAC1CA,EAAY,4BAAiC,8BAC7CA,EAAY,iBAAsB,mBAClCA,EAAY,uBAA4B,yBACxCA,EAAY,4BAAiC,8BAC7CA,EAAY,4BAAiC,8BAI7CA,EAAY,sBAA2B,wBACvCA,EAAY,mBAAwB,oBACvC,EAAgB79D,EAAQ,cAAgBA,EAAA,YAAsB,CAAE,EAAC,yOC9ElE,OAAO,eAAes/D,sBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,sBAAA,oBAAG,OAC9B,MAAMC,EAAsCtjE,oBAAA,EACtCujE,EAAqBv/D,YAA2B,EAChDw/D,EAA6Bv/D,6BAAmC,EAItE,MAAMw/D,CAAoB,CACtB,YAAYC,EAAS,CACjB,KAAK,QAAUA,CACvB,CACI,MAAM,KAAK18D,EAAK,CACZ,MAAM1tB,EAAW,MAAO,KAAK,SAAW,OAAO0tB,EAAK,CAAE,QAAS,IAAI,QAAQ,CAAE,OAAQ,qBAAqB,CAAE,CAAC,CAAE,EAC/G,GAAI1tB,EAAS,IAAMA,EAAS,QAAS,CACjC,IAAIwtB,EAAYxtB,EAAS,QAAQ,IAAI,cAAc,EACnD,GAAIwtB,EAAW,CACX,MAAM68D,EAAW78D,EAAU,QAAQ,GAAG,EAClC68D,EAAW,IACX78D,EAAYA,EAAU,OAAO,EAAG68D,CAAQ,EAE5D,CACY,GAAI78D,IAAc,sBAEd,OAAQ,MAAMxtB,EAAS,KAAM,EAI7B,GAAIA,EAAS,QAAQ,IAAI,MAAM,EAAG,CAC9B,IAAIsqF,EAcJ,GAbAtqF,EAAS,QAAQ,QAAQ,CAAC7E,EAAOK,IAAQ,CACrC,GAAIA,IAAQ,OAAQ,CAChB,MAAM+uF,KAAiBN,EAAmB,OAAO9uF,CAAK,EACtD,UAAWquF,KAAQe,EAAW,IAAI,OAAQ,qBAAqB,EAC3D,GAAIf,EAAK,MAAQ,YAAa,CAC1B,GAAIc,EACA,MAAM,IAAI,MAAM,kDAAoD58D,CAAG,EAE3E48D,KAAmBJ,EAA2B,SAASV,EAAK,IAAK97D,CAAG,CACxG,CAEA,CACA,CAAqB,EACG48D,EACA,OAAO,KAAK,KAAKA,CAAY,CAErD,CACgB,MAAM,IAAIN,EAAa,WAAW,kCAAkCx8D,CAAS,GAAIw8D,EAAa,YAAY,uBAAuB,CAEjJ,KAEY,OAAM,IAAI,MAAMhqF,EAAS,YAAc,gBAAgBA,EAAS,MAAM,EAAE,CAEpF,CACA,CACA+pF,6BAAA,oBAA8BI,qKCvD9B,OAAO,eAAeK,OAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,OAAA,KAAG,OACf,MAAMh8C,CAAK,CAOP,OAAO,aAAanrC,EAAM,CACtB,OAAOA,EAAK,QAAQ,GAAG,EAAI,GAAK,EAAEA,GAAQA,EAAK,CAAC,IAAM,IAC9D,CAQI,OAAO,UAAUA,EAAMmC,EAAS,CAE5B,GAAInC,GAAQA,EAAK,CAAC,IAAM,IACpB,OAAO,KAEX,MAAMonF,EAAepnF,EAAK,QAAQ,GAAG,EACrC,GAAIonF,GAAgB,EAAG,CAEnB,GAAIpnF,EAAK,OAASonF,EAAe,GAC1BpnF,EAAK,OAAOonF,EAAe,CAAC,IAAM,KAClCpnF,EAAK,OAAOonF,EAAe,CAAC,IAAM,IACrC,OAAO,KAEX,MAAM5uF,EAASwH,EAAK,OAAO,EAAGonF,CAAY,EAE1C,GAAI5uF,IAAW,IACX,OAAO,KAGX,GAAI2J,EAAQ3J,CAAM,EACd,OAAOA,CAEvB,CACQ,OAAO,IACf,CAMI,OAAO,kBAAkB6uF,EAAc,CACnC,GAAIA,IAAiB,MAAQ,OAAOA,GAAiB,SACjD,OAAOA,EAEX,MAAM7V,EAAK6V,EAAa,KAAK,EAC7B,OAAO7V,GAAU,IACzB,CAOI,OAAO,6BAA6B15E,EAAOc,EAAS,CAChD,MAAO,CAACuyC,EAAK,mBAAmBrzC,CAAK,IAC7Bc,EAAQ,yBAA4B,OAAOd,GAAU,WAAaA,EAAM,CAAC,IAAM,KAAOqzC,EAAK,8BAA8BrzC,CAAK,GAC9I,CAMI,OAAO,mBAAmBgG,EAAS,CAC/B,OAAO,OAAOA,GAAY,UAAYqtC,EAAK,cAAc,KAAKrtC,CAAO,CAC7E,CAMI,OAAO,8BAA8BwpF,EAAW,CAC5C,OAAOn8C,EAAK,oBAAoB,KAAKm8C,CAAS,CACtD,CAMI,OAAO,cAAcxvF,EAAO,CACxB,OAAOA,IAAU,OAAOA,GAAU,UAAaA,GAAS,OAAOA,GAAU,SACjF,CAMI,OAAO,WAAWkoC,EAAK,CACnB,MAAO,GAAQA,GAAOmL,EAAK,UAAU,KAAKnL,CAAG,EACrD,CAMI,OAAO,eAAeA,EAAK,CACvB,MAAO,CAAC,CAACA,GAAOA,EAAI,CAAC,IAAM,KAAOmL,EAAK,eAAe,KAAKnL,CAAG,CACtE,CAMI,OAAO,eAAeliC,EAAS,CAC3B,OAAOqtC,EAAK,eAAertC,CAAO,CAC1C,CAOI,OAAO,gBAAgBqE,EAAShK,EAAK,CACjC,MAAML,EAAQqK,EAAQhK,CAAG,EACzB,OAAS,OAAOL,GAAU,UAAaA,GAASA,EAAM,YAAY,CAC1E,CAMI,OAAO,kBAAkBqK,EAAS,CAC9B,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EACjC,GAAIgpC,EAAK,gBAAgBhpC,EAAShK,CAAG,EACjC,MAAO,GAGf,MAAO,EACf,CAKI,OAAO,0BAA0BA,EAAK,CAClC,OAAOA,EAAI,WAAW,KAAK,CACnC,CAMI,OAAO,UAAU4tF,EAASC,EAAS,CAC/B,MAAMuB,EAAW,OAAO,KAAKxB,CAAO,EAC9ByB,EAAW,OAAO,KAAKxB,CAAO,EACpC,OAAIuB,EAAS,SAAWC,EAAS,OACtB,GACJD,EAAS,MAAOpvF,GAAQ,CAC3B,MAAMsvF,EAAS1B,EAAQ5tF,CAAG,EACpBuvF,EAAS1B,EAAQ7tF,CAAG,EAC1B,OAAQsvF,IAAWC,GAAYD,IAAW,MACtCC,IAAW,MACX,OAAOD,GAAW,UAClB,OAAOC,GAAW,UAClB,KAAK,UAAUD,EAAQC,CAAM,CAC7C,CAAS,CACT,CAEA,CAEA,OAAAv8C,EAAK,UAAY,6DAEjBA,EAAK,eAAiB,eAEtBA,EAAK,cAAgB,aAErBA,EAAK,oBAAsB,eAE3BA,EAAK,mBAAqB,8BAE1BA,EAAK,oBAAsB,gBAG3BA,EAAK,eAAiB,CAClB,cAAe,GACf,QAAS,GACT,aAAc,GACd,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,GACP,UAAW,GACX,YAAa,GACb,SAAU,GACV,QAAS,GACT,YAAa,GACb,QAAS,GACT,QAAS,GACT,QAAS,GACT,UAAW,GACX,aAAc,GACd,aAAc,GACd,WAAY,GACZ,OAAQ,GACR,QAAS,GACT,SAAU,GACV,WAAY,GACZ,SAAU,EACb,EAEDA,EAAK,sBAAwB,CACzB,QACA,SACA,YACA,WACA,YACH,EAEDA,EAAK,uBAAyB,CAC1B,aACA,SACA,MACA,SACA,QACA,QACA,QACA,UACA,WACA,OACA,QACA,SACA,UACH,EAEDA,EAAK,sBAAwB,CACzB,WACA,WACH,EAEDA,EAAK,WAAa,CACd,QACA,OACA,SACA,YACA,SACA,MACA,OACH,EAEDA,EAAK,eAAiB,CAClB,QACA,OACA,QACH,EACDg8C,OAAA,KAAeh8C,+LC3Pf,OAAO,eAAc/jB,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAA+B,qBAAAA,EAAA,wBAAkC,OACjE,MAAMy/D,EAA6BxjE,6BAAmC,EAChEsjE,EAAsCt/D,oBAAA,EACtC8/D,EAA0B7/D,cAAA,EAIhC,MAAMqgE,CAAwB,CAC1B,YAAYC,EAAY,CACpB,KAAK,WAAaA,CAC1B,CAII,eAAgB,CACZ,OAAO,KAAK,UACpB,CAsBI,WAAW5nF,EAAM6nF,EAAajvF,EAAUwuB,EAAQ,qBAAsB,CAClE,MAAMigE,EAAe,KAAK,WAAWrnF,CAAI,EAEzC,GAAIqnF,IAAiB,MAASA,GAAgBA,EAAa,KAAK,IAAM,KAClE,OAAO,KAGX,IAAIS,EAAkB,GACtB,GAAIT,GAAgBQ,EAAa,CAC7B,MAAM/vF,EAAQqvF,EAAO,KAAK,kBAAkBE,CAAY,EACxD,GAAIvvF,GAASA,IAAUkI,EACnB,GAAI,OAAOlI,GAAU,UAAa,CAACqvF,EAAO,KAAK,WAAWrvF,CAAK,GAAK,CAACqvF,EAAO,KAAK,eAAervF,CAAK,EAE5FqvF,EAAO,KAAK,mBAAmBrvF,CAAK,IACrCgwF,EAAkB,QAItB,QAAOhwF,CAG3B,CAEQ,MAAMU,EAAS2uF,EAAO,KAAK,UAAUnnF,EAAM,KAAK,UAAU,EACpD+nF,EAAQ,KAAK,WAAW,QAAQ,EAChCC,GAAiB,CAAC,CAACD,GAASA,IAAU,KAAOA,EAAM,QAAQ,GAAG,EAAI,EAClEroD,EAAO,KAAK,WAAW,OAAO,EAC9BuoD,EAAmBd,EAAO,KAAK,mBAAmBnnF,CAAI,EAC5D,GAAIxH,EAAQ,CACR,MAAM0vF,EAAqB,KAAK,WAAW1vF,CAAM,EAC3CV,EAAQqvF,EAAO,KAAK,kBAAkBe,CAAkB,EAC9D,GAAIpwF,EAAO,CACP,GAAI,OAAOowF,GAAuB,UAAY,CAACtvF,EAAQ,oBAInD,GAAI,CAACuuF,EAAO,KAAK,6BAA6BrvF,EAAOc,CAAO,EAExD,OAAOoH,UAKPlI,EAAM,CAAC,IAAM,KAAO,CAACmwF,GAAoB,CAACC,EAAmB,SAAS,GAAK,EAAEloF,KAAQ,KAAK,YAE1F,OAAOA,EAGf,OAAOlI,EAAQkI,EAAK,OAAOxH,EAAO,OAAS,CAAC,CAC5D,CACA,SACiBqvF,IAAiBE,GAASA,IAAU,IAAQnvF,EAAQ,0BAA6B8mC,GAAQsoD,IAC3F,CAACC,GAAoB,CAACd,EAAO,KAAK,aAAannF,CAAI,EACtD,GAAIgoF,EAAe,CACf,GAAIpvF,EAAQ,yBACR,OAASmvF,GAASroD,KAAYmnD,EAA2B,SAASkB,EAAOroD,CAAI,EAAI,IAAM1/B,EAGvF,MAAM,IAAI2mF,EAAa,WAAW,sCAAsC3mF,CAAI,iBAAiB+nF,CAAK,oBAAqBpB,EAAa,YAAY,qBAAqB,CAEzL,KAEgB,QAAOoB,EAAQ/nF,UAGd,CAAC6nF,GAAenoD,GAAQ,CAACuoD,GAAoB,CAACd,EAAO,KAAK,aAAannF,CAAI,EAChF,SAAW6mF,EAA2B,SAAS7mF,EAAM0/B,CAAI,EAG7D,GAAIooD,EACA,OAAO9nF,EAGP,MAAM,IAAI2mF,EAAa,WAAW,gDAAgD3mF,CAAI,OAAO,KAAK,UAAUqnF,CAAY,CAAC,IAAKV,EAAa,YAAY,mBAAmB,CAEtL,CAWI,WAAW3mD,EAAK+nD,EAAO,CAEnB,GAAIA,GAAS,KAAK,WAAW,QAAQ,GAAK/nD,EAAI,WAAW,KAAK,WAAW,QAAQ,CAAC,EAC9E,OAAOA,EAAI,OAAO,KAAK,WAAW,QAAQ,EAAE,MAAM,EAGtD,GAAI,CAAC+nD,GAAS,KAAK,WAAW,OAAO,GAAK/nD,EAAI,WAAW,KAAK,WAAW,OAAO,CAAC,EAC7E,OAAOA,EAAI,OAAO,KAAK,WAAW,OAAO,EAAE,MAAM,EAKrD,MAAMmoD,EAAoB,CAAE,OAAQ,GAAI,OAAQnoD,CAAK,EACrD,UAAW7nC,KAAO,KAAK,WAAY,CAC/B,MAAML,EAAQ,KAAK,WAAWK,CAAG,EACjC,GAAIL,GAAS,CAACqvF,EAAO,KAAK,mBAAmBhvF,CAAG,EAAG,CAC/C,MAAMiwF,EAAajB,EAAO,KAAK,kBAAkBrvF,CAAK,EACtD,GAAIkoC,EAAI,WAAWooD,CAAU,EAAG,CAC5B,MAAMC,EAASroD,EAAI,OAAOooD,EAAW,MAAM,EAC3C,GAAKC,EAMIA,EAAO,OAASF,EAAkB,OAAO,SAE9CA,EAAkB,OAAShwF,EAC3BgwF,EAAkB,OAASE,WARvBN,EAEA,OAAO5vF,CAQnC,CACA,CACA,CAEQ,OAAIgwF,EAAkB,OACXA,EAAkB,OAAS,IAAMA,EAAkB,OAEvDnoD,CACf,CACA,CACA5Y,EAAA,wBAAkCugE,EAClCvgE,EAA+B,qBAAA,CAC3B,mBAAoB,GACpB,wBAAyB,GACzB,yBAA0B,EAC7B,4MC1KD,OAAO,eAAekhE,gBAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,gBAAA,cAAG,OACxB,MAAMzB,EAA6BxjE,6BAAmC,EAChEsjE,EAAsCt/D,oBAAA,EACtCq/D,EAAwDp/D,6BAAA,EACxDihE,EAAgEhhE,iCAAA,EAChE4/D,EAA0B3/D,cAAA,EAIhC,MAAMghE,CAAc,CAChB,YAAY5vF,EAAS,CACjBA,EAAUA,GAAW,CAAE,EACvB,KAAK,eAAiBA,EAAQ,gBAAkB,IAAI8tF,EAAsB,oBAC1E,KAAK,cAAgB,CAAE,EACvB,KAAK,gBAAkB,CAAC9tF,EAAQ,eAChC,KAAK,wBAA0B,CAAC,CAACA,EAAQ,wBACzC,KAAK,yBAA2BA,EAAQ,0BAA4B,GACpE,KAAK,uBAAyB,2BAA4BA,EAAU,CAAC,CAACA,EAAQ,uBAAyB,EAC/G,CAUI,OAAO,iBAAiBd,EAAO2wF,EAAaC,EAAW,CACnD,GAAI,OAAO5wF,GAAU,SACjB,MAAM,IAAI6uF,EAAa,WAAW,sDAAsD,KAAK,UAAU7uF,CAAK,CAAC,IAAK4wF,CAAS,EAE/H,GAAI,CAACvB,EAAO,KAAK,mBAAmB,KAAKrvF,CAAK,EAAG,CAC7C,GAAI2wF,EACA,MAAM,IAAI9B,EAAa,WAAW,kEAAkE,KAAK,UAAU7uF,CAAK,CAAC,IAAK4wF,CAAS,EAGvI,MAAO,EAEvB,CACQ,MAAO,EACf,CASI,OAAO,kBAAkB5wF,EAAO6wF,EAAc,CAC1C,GAAI,OAAO7wF,GAAU,SACjB,MAAM,IAAI6uF,EAAa,WAAW,uDAAuD,KAAK,UAAU7uF,CAAK,CAAC,IAAK6uF,EAAa,YAAY,sBAAsB,EAEtK,GAAI,CAACQ,EAAO,KAAK,oBAAoB,KAAKrvF,CAAK,EAAG,CAC9C,GAAI6wF,EACA,MAAM,IAAIhC,EAAa,WAAW,6DAA6D,KAAK,UAAU7uF,CAAK,CAAC,IAAK6uF,EAAa,YAAY,sBAAsB,EAGxK,MAAO,EAEvB,CACQ,MAAO,EACf,CAMI,kBAAkBxkF,EAAS,CACvB,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EAAG,CACpC,IAAIrK,EAAQqK,EAAQhK,CAAG,EACvB,GAAIL,GAAS,OAAOA,GAAU,UACtBA,EAAM,UAAU,GAAK,CAACA,EAAM,KAAK,EAAG,CACpC,GAAI,OAAOA,EAAM,UAAU,GAAM,UAAYqvF,EAAO,KAAK,eAAervF,EAAM,UAAU,CAAC,EACrF,MAAM,IAAI6uF,EAAa,WAAW,gEAAgE7uF,EAAM,UAAU,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAExK7uF,EAAQqK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,MAAOA,EAAM,UAAU,CAAC,CAAE,EAC3FA,EAAM,KAAK,EAAIA,EAAM,UAAU,EAC3BqvF,EAAO,KAAK,mBAAmBrvF,EAAM,UAAU,CAAC,EAChD,OAAOA,EAAM,UAAU,EAGvBA,EAAM,UAAU,EAAI,EAE5C,CAEA,CACQ,OAAOqK,CACf,CASI,oBAAoBA,EAASymF,EAAyBz7E,EAAM,CACxD,MAAMy6E,EAAazlF,EAAQ,cAAe,EAC1C,UAAWhK,KAAQgV,GAAQ,OAAO,KAAKy6E,CAAU,EAE7C,GAAIT,EAAO,KAAK,sBAAsB,QAAQhvF,CAAG,EAAI,GAAK,CAACgvF,EAAO,KAAK,0BAA0BhvF,CAAG,EAAG,CAEnG,MAAM0wF,EAAWjB,EAAWzvF,CAAG,EAC/B,GAAIgvF,EAAO,KAAK,mBAAmBhvF,CAAG,GAAKgvF,EAAO,KAAK,uBAAuB,QAAQhvF,CAAG,GAAK,IACtFA,IAAQ,SAAW,OAAOyvF,EAAWzvF,CAAG,GAAM,UAC3C,EAAEyvF,EAAWzvF,CAAG,EAAE,YAAY,GAAKyvF,EAAWzvF,CAAG,EAAE,YAAY,IAAM,SACxE,MAAM,IAAIwuF,EAAa,WAAW;AAAA,gBAC1CxuF,CAAG,OAAO,KAAK,UAAU0wF,CAAQ,CAAC,GAAIlC,EAAa,YAAY,oBAAoB,EAInF,GAAIQ,EAAO,KAAK,sBAAsB,QAAQA,EAAO,KAAK,kBAAkB0B,CAAQ,CAAC,GAAK,EACtF,MAAM,IAAIlC,EAAa,WAAW;AAAA,gBACtCxuF,CAAG,OAAO,KAAK,UAAU0wF,CAAQ,CAAC,GAAIlC,EAAa,YAAY,qBAAqB,EAGpF,GAAIkC,GAAY1B,EAAO,KAAK,mBAAmBA,EAAO,KAAK,kBAAkB0B,CAAQ,CAAC,GAC/EA,EAAS,SAAS,IAAM,GAC3B,MAAM,IAAIlC,EAAa,WAAW,4CAA4CxuF,CAAG,OAAO,KAAK,UAAU0wF,CAAQ,CAAC,IAAKlC,EAAa,YAAY,uBAAuB,EAGzK,KAAOQ,EAAO,KAAK,cAAcS,EAAWzvF,CAAG,CAAC,GAAG,CAC/C,MAAML,EAAQ8vF,EAAWzvF,CAAG,EAC5B,IAAI2wF,EAAU,GACd,GAAI,OAAOhxF,GAAU,SACjB8vF,EAAWzvF,CAAG,EAAIgK,EAAQ,WAAWrK,EAAO,EAAI,EAChDgxF,EAAUA,GAAWhxF,IAAU8vF,EAAWzvF,CAAG,MAE5C,CACD,MAAMq5E,EAAK15E,EAAM,KAAK,EAChBJ,EAAOI,EAAM,OAAO,EAEpBixF,EAAgB,EAAE,YAAajxF,IAAUqvF,EAAO,KAAK,WAAWhvF,CAAG,EACzE,GAAI,QAASL,EAEe05E,GAAO,MAAQ,OAAOA,GAAO,WACjDoW,EAAWzvF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIyvF,EAAWzvF,CAAG,CAAC,EAAG,CAAE,MAAOgK,EAAQ,WAAWqvE,EAAI,EAAI,EAAG,EAC3GsX,EAAUA,GAAWtX,IAAOoW,EAAWzvF,CAAG,EAAE,KAAK,WAGhD,CAACgvF,EAAO,KAAK,mBAAmBhvF,CAAG,GAAK4wF,EAAe,CAE5D,MAAMC,EAAQ7mF,EAAQ,WAAWhK,EAAK,EAAI,EACtC6wF,IAAU7wF,IAEVyvF,EAAWzvF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIyvF,EAAWzvF,CAAG,CAAC,EAAG,CAAE,MAAO6wF,CAAK,CAAE,EACpFF,EAAU,GAE1C,CACwB,GAAIpxF,GAAQ,OAAOA,GAAS,UAAYA,IAAS,WACzC,CAACI,EAAM,YAAY,GAAK,CAACA,EAAM,YAAY,EAAE,OAAO,IACrDixF,EAAe,CAElB,IAAIE,EAAe9mF,EAAQ,WAAWzK,EAAM,EAAI,EAC5CkxF,GAA2BlxF,IAASuxF,IACpCA,EAAe9mF,EAAQ,WAAWzK,EAAM,EAAK,GAE7CuxF,IAAiBvxF,IACjBoxF,EAAU,GACVlB,EAAWzvF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIyvF,EAAWzvF,CAAG,CAAC,EAAG,CAAE,QAAS8wF,CAAY,CAAE,EAE7H,CACA,CACoB,GAAI,CAACH,EACD,KAExB,CACA,CAEA,CAMI,UAAU3mF,EAAS,CAAE,eAAA+mF,EAAgB,sBAAAC,CAAqB,EAAI,CAE1D,GAAIA,GAAyBD,IAAmB,EAC5C,UAAW/wF,KAAO,OAAO,KAAKgK,CAAO,EACjC,GAAIhK,IAAQ,aAAe,OAAOgK,EAAQhK,CAAG,GAAM,SAC/CgK,EAAQhK,CAAG,EAAIgK,EAAQhK,CAAG,EAAE,YAAa,MAExC,CACD,MAAML,EAAQqK,EAAQhK,CAAG,EACzB,GAAIL,GAAS,OAAOA,GAAU,UACtB,OAAOA,EAAM,WAAW,GAAM,SAAU,CACxC,MAAMkkC,EAAYlkC,EAAM,WAAW,EAAE,YAAa,EAC9CkkC,IAAclkC,EAAM,WAAW,IAC/BqK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,YAAakkC,CAAS,CAAE,EAEjH,CAEA,CAGA,CAKI,iBAAiB75B,EAAS,CACtB,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EAAG,CACpC,MAAMrK,EAAQqK,EAAQhK,CAAG,EACzB,GAAIL,GAAS,OAAOA,GAAU,UAC1B,GAAI,OAAOA,EAAM,YAAY,GAAM,SAC/BqK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEL,CAAK,EAAG,CAAE,aAAc,CAAE,CAACA,EAAM,YAAY,CAAC,EAAG,EAAI,EAAI,UAEnG,MAAM,QAAQA,EAAM,YAAY,CAAC,EAAG,CACzC,MAAMkb,EAAW,CAAE,EACnB,UAAWo2E,KAAkBtxF,EAAM,YAAY,EAC3Ckb,EAASo2E,CAAc,EAAI,GAE/BjnF,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,aAAckb,CAAQ,CAAE,CACrG,EAEA,CACA,CAMI,qBAAqB7Q,EAAS,CAAE,eAAA+mF,CAAc,EAAIG,EAAe,CAC7D,GAAIH,GAAkBA,GAAkB,KAChC/mF,EAAQ,YAAY,EAAG,CACvB,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EACjC,GAAI,CAAAglF,EAAO,KAAK,0BAA0BhvF,CAAG,GAGzC,CAACgvF,EAAO,KAAK,mBAAmBhvF,CAAG,GAAK,CAACgvF,EAAO,KAAK,gBAAgBhlF,EAAShK,CAAG,EAAG,CACpF,MAAML,EAAQqK,EAAQhK,CAAG,EACrBL,GAAS,OAAOA,GAAU,SACpB,eAAgBqK,EAAQhK,CAAG,IAE7BgK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIgK,EAAQhK,CAAG,CAAC,EAAG,CAAE,aAAc,EAAI,CAAE,IAKxFgK,EAAQhK,CAAG,EAAI,CACX,MAAOL,EACP,aAAc,EACjB,EACGqvF,EAAO,KAAK,6BAA6BrvF,EAAOuxF,CAAa,IAC7DlnF,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIgK,EAAQhK,CAAG,CAAC,EAAG,CAAE,UAAW,EAAI,CAAE,GAGjH,CAEgB,OAAOgK,EAAQ,YAAY,CAC3C,CAEA,CASI,6BAA6BmnF,EAAeC,EAAcF,EAAel8E,EAAM,CAC3E,UAAWhV,KAAQgV,GAA0C,OAAO,KAAKo8E,CAAY,EACjF,GAAIpC,EAAO,KAAK,gBAAgBmC,EAAenxF,CAAG,IAI1C,OAAOoxF,EAAapxF,CAAG,GAAM,SAC7BoxF,EAAapxF,CAAG,EAAI,CAAE,MAAOoxF,EAAapxF,CAAG,EAAG,aAAc,EAAM,EAMpEoxF,EAAapxF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIoxF,EAAapxF,CAAG,CAAC,EAAG,CAAE,aAAc,EAAI,CAAE,EAG9F,CAACgvF,EAAO,KAAK,UAAUmC,EAAcnxF,CAAG,EAAGoxF,EAAapxF,CAAG,CAAC,GAC5D,MAAM,IAAIwuF,EAAa,WAAW,+CAA+CxuF,CAAG,SAAS,KAAK,UAAUgvF,EAAO,KAAK,kBAAkBmC,EAAcnxF,CAAG,CAAC,CAAC,CAAC,OAAO,KAAK,UAAUgvF,EAAO,KAAK,kBAAkBoC,EAAapxF,CAAG,CAAC,CAAC,CAAC,GAAIwuF,EAAa,YAAY,2BAA2B,CAIjT,CAMI,SAASxkF,EAAS,CAAE,eAAA+mF,GAAkB,CAClC,UAAW/wF,KAAO,OAAO,KAAKgK,CAAO,EAAG,CAEpC,GAAIglF,EAAO,KAAK,0BAA0BhvF,CAAG,EACzC,SAGJ,GAAIA,IAAQ,GACR,MAAM,IAAIwuF,EAAa,WAAW,wCAAwCxuF,CAAG,OAAO,KAAK,UAAUgK,EAAQhK,CAAG,CAAC,CAAC,IAAKwuF,EAAa,YAAY,uBAAuB,EAEzK,MAAM7uF,EAAQqK,EAAQhK,CAAG,EACnBqxF,EAAY,OAAO1xF,EAEzB,GAAIqvF,EAAO,KAAK,mBAAmBhvF,CAAG,EAAG,CACrC,OAAQA,EAAI,OAAO,CAAC,EAAC,CACjB,IAAK,QACD,GAAIL,IAAU,MAAQ0xF,IAAc,SAChC,MAAM,IAAI7C,EAAa,WAAW,gCAAgC7uF,CAAK,GAAI6uF,EAAa,YAAY,qBAAqB,EAE7H,MACJ,IAAK,OACD,GAAI7uF,IAAU,MAAQ0xF,IAAc,SAChC,MAAM,IAAI7C,EAAa,WAAW,+BAA+BxkF,EAAQhK,CAAG,CAAC,GAAIwuF,EAAa,YAAY,gBAAgB,EAE9H,MACJ,IAAK,WACG7uF,IAAU,MACV0wF,EAAc,iBAAiB1wF,EAAO,GAAM6uF,EAAa,YAAY,wBAAwB,EAEjG,MACJ,IAAK,UACD,GAAI7uF,IAAU,MAAQ0xF,IAAc,SAChC,MAAM,IAAI7C,EAAa,WAAW,qCAAqC7uF,CAAK,GAAI6uF,EAAa,YAAY,qBAAqB,EAElI,MACJ,IAAK,YACG7uF,IAAU,MACV0wF,EAAc,kBAAkB1wF,EAAO,EAAI,EAE/C,MACJ,IAAK,YACD,GAAIoxF,IAAmB,EACnB,MAAM,IAAIvC,EAAa,WAAW,wCAAwC7uF,CAAK,GAAI6uF,EAAa,YAAY,qBAAqB,EAErI,GAAI7uF,IAAU,MAAQ0xF,IAAc,UAChC,MAAM,IAAI7C,EAAa,WAAW,sCAAsC7uF,CAAK,GAAI6uF,EAAa,YAAY,uBAAuB,EAErI,KACxB,CAEgB,GAAIQ,EAAO,KAAK,eAAehvF,CAAG,GAAKgvF,EAAO,KAAK,eAAeA,EAAO,KAAK,kBAAkBrvF,CAAK,CAAC,EAClG,MAAM,IAAI6uF,EAAa,WAAW,gDAAgDxuF,CAAG,OAAOgvF,EAAO,KAC9F,kBAAkBrvF,CAAK,CAAC,IAAK6uF,EAAa,YAAY,oBAAoB,EAEnF,QAChB,CAEY,GAAI7uF,IAAU,KACV,OAAQ0xF,EAAS,CACb,IAAK,SACD,GAAIrC,EAAO,KAAK,UAAUrvF,EAAOqK,CAAO,IAAMhK,EAC1C,MAAM,IAAIwuF,EAAa,WAAW,oDAAoDxuF,CAAG,OAAO,KAC3F,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,kBAAkB,EAEzE,GAAIQ,EAAO,KAAK,eAAehvF,CAAG,EAAG,CACjC,GAAIL,IAAU,QACV,MAAM,IAAI6uF,EAAa,WAAW,4CAA4CxuF,CAAG,OAAOL,CAAK,IAAK6uF,EAAa,YAAY,mBAAmB,EAE7I,GAAIQ,EAAO,KAAK,WAAWrvF,CAAK,GAAKA,IAAU,IAAIywF,EAA0B,wBAAwBpmF,CAAO,EAAE,WAAWhK,CAAG,EAC7H,MAAM,IAAIwuF,EAAa,WAAW,iDAAiDxuF,CAAG,OAAOL,CAAK,IAAK6uF,EAAa,YAAY,mBAAmB,CAEnL,CACwB,MACJ,IAAK,SACD,GAAI,CAACQ,EAAO,KAAK,aAAahvF,CAAG,GAAK,EAAE,QAASL,KACzCA,EAAM,OAAO,IAAM,MAAQ,CAACqK,EAAQ,OAAO,EAAI,CAACA,EAAQ,QAAQ,GACpE,MAAM,IAAIwkF,EAAa,WAAW,kCAAkCxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAExJ,UAAW8C,KAAa,OAAO,KAAK3xF,CAAK,EAAG,CACxC,MAAM4xF,EAAc5xF,EAAM2xF,CAAS,EACnC,GAAKC,EAGL,OAAQD,EAAS,CACb,IAAK,MACD,GAAItC,EAAO,KAAK,eAAeuC,CAAW,GACnCA,IAAgB,SAAWA,IAAgB,OAASA,IAAgB,UAAYA,IAAgB,QACnG,MAAM,IAAI/C,EAAa,WAAW,gDAAgDxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAEtK,GAAIQ,EAAO,KAAK,eAAehvF,CAAG,EAAG,CACjC,GAAIuxF,IAAgB,QAChB,MAAM,IAAI/C,EAAa,WAAW,4CAA4CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAE7J,GAAIQ,EAAO,KAAK,WAAWuC,CAAW,GACpCA,IAAgB,IAAInB,EAA0B,wBAAwBpmF,CAAO,EAAE,WAAWhK,CAAG,EAChG,MAAM,IAAIwuF,EAAa,WAAW,iDAAiDxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,CAE/M,CACoC,GAAI,OAAO+C,GAAgB,SACvB,MAAM,IAAI/C,EAAa,WAAW,8CAA8CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAEpK,GAAIQ,EAAO,KAAK,UAAUuC,EAAavnF,CAAO,IAAMhK,EAChD,MAAM,IAAIwuF,EAAa,WAAW,oDAAoDxuF,CAAG,OAAO,KAC3F,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,kBAAkB,EAEzE,MACJ,IAAK,QACD,GAAI7uF,EAAM,YAAY,IAAM,SAAW4xF,IAAgB,OAASA,IAAgB,SAC5E,MAAM,IAAI/C,EAAa,WAAW,iEAAiExuF,CAAG,OAAOuxF,CAAW,IAAK/C,EAAa,YAAY,oBAAoB,EAE9K,GAAI,OAAO+C,GAAgB,SACvB,MAAM,IAAI/C,EAAa,WAAW,kDAAkD,KAAK,UAAU6C,CAAS,CAAC,IAAK7C,EAAa,YAAY,oBAAoB,EAEnK,GAAI+C,IAAgB,OAASA,IAAgB,WACrCR,IAAmB,GAAOQ,IAAgB,WAC1CR,IAAmB,GAAOQ,IAAgB,WAC1CA,EAAY,CAAC,IAAM,KAAO,CAACvC,EAAO,KAAK,WAAWuC,CAAW,GACjE,MAAM,IAAI/C,EAAa,WAAW,oDAAoDxuF,CAAG,OAAOuxF,CAAW,IAAK/C,EAAa,YAAY,oBAAoB,EAEjK,MACJ,IAAK,WACD,GAAI,OAAO+C,GAAgB,UAAY5xF,EAAM,KAAK,GAAKA,EAAM,KAAK,IAAM4xF,EACpE,MAAM,IAAI/C,EAAa,WAAW,uDAAuDxuF,CAAG,MACjIuxF,CAAW,UAAU5xF,EAAM,KAAK,CAAC,IAAK6uF,EAAa,YAAY,wBAAwB,EAEtD,GAAI,UAAW7uF,EACX,MAAM,IAAI6uF,EAAa,WAAW,iDAAiDxuF,CAAG,IAAKwuF,EAAa,YAAY,wBAAwB,EAEhJ,MACJ,IAAK,aACD,GAAIuC,IAAmB,IACf,OAAO,KAAKQ,CAAW,EAAE,OAAS,GAC/BvC,EAAO,KAAK,eAAe,QAAQ,OAAO,KAAKuC,CAAW,EAAE,CAAC,CAAC,EAAI,GACrE,MAAM,IAAI/C,EAAa,WAAW,gCAAgCxuF,CAAG,OAAO,OAAO,KAAKuxF,CAAW,CAAC,kCAC1HvC,EAAO,KAAK,eAAe,KAAK,IAAI,CAAC,GAAIR,EAAa,YAAY,yBAAyB,EAG7E,UAAWyC,KAAkB,OAAO,KAAKM,CAAW,EAAG,CACnD,GAAIN,IAAmB,SAAWtxF,EAAM,UAAU,EAC9C,MAAM,IAAI6uF,EAAa,WAAW,6EAA6ExuF,CAAG,IAAKwuF,EAAa,YAAY,wBAAwB,EAE5K,GAAIQ,EAAO,KAAK,WAAW,QAAQiC,CAAc,EAAI,EACjD,MAAM,IAAIzC,EAAa,WAAW,gCAAgCxuF,CAAG,OAAOixF,CAAc,sBACrHjC,EAAO,KAAK,WAAW,KAAK,IAAI,CAAC,GAAIR,EAAa,YAAY,yBAAyB,CAExG,CACoC,MACJ,IAAK,YACD6B,EAAc,iBAAiBkB,EAAa,GAAM/C,EAAa,YAAY,wBAAwB,EACnG,MACJ,IAAK,aACD6B,EAAc,kBAAkBkB,EAAa,EAAI,EACjD,MACJ,IAAK,UACD,GAAIA,IAAgB,MAAQ,OAAOA,GAAgB,UAC/C,MAAM,IAAI/C,EAAa,WAAW,8CAA8CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,oBAAoB,EAErK,GAAI,EAAE,QAAS7uF,IAAU,CAACqvF,EAAO,KAAK,WAAWhvF,CAAG,EAChD,MAAM,IAAIwuF,EAAa,WAAW,mCAAmCxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,uBAAuB,EAE7J,MACJ,IAAK,SACD,GAAIuC,IAAmB,GAAO,CAACpxF,EAAM,YAAY,GAAK,CAACA,EAAM,YAAY,EAAE,QAAQ,EAC/E,MAAM,IAAI6uF,EAAa,WAAW,gDAAgDxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,uBAAuB,EAE1K,MACJ,IAAK,QACD,GAAIQ,EAAO,KAAK,mBAAmBuC,CAAW,GAAKA,IAAgB,QAC/D,MAAM,IAAI/C,EAAa,WAAW,0CAA0CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,kBAAkB,CAEnM,CACA,CACwB,MACJ,QACI,MAAM,IAAIA,EAAa,WAAW,iCAAiCxuF,CAAG,OAAOL,CAAK,IAAK6uF,EAAa,YAAY,uBAAuB,CAC/J,CAEA,CACA,CAQI,eAAexkF,EAASvJ,EAAS+wF,EAAmB,CAEhD,OAAI,OAAOxnF,GAAY,WAInBwnF,GAAqB,EAAE,UAAWxnF,IAAYvJ,EAAQ,eACnD,OAAOA,EAAQ,eAAkB,UAAY,UAAWA,EAAQ,gBACnEuJ,EAAQ,OAAO,EAAIvJ,EAAQ,cAAc,OAAO,EAC5CA,EAAQ,cAAc,iBAAiB,IACvCuJ,EAAQ,iBAAiB,EAAI,KAIjCvJ,EAAQ,SAAW,CAACA,EAAQ,WACtB,UAAWuJ,EAKRA,EAAQ,OAAO,IAAM,MAAQ,OAAOA,EAAQ,OAAO,GAAM,UAC3D,CAACglF,EAAO,KAAK,WAAWhlF,EAAQ,OAAO,CAAC,IAE3CA,EAAQ,OAAO,KAAQ0kF,EAA2B,SAAS1kF,EAAQ,OAAO,EAAGvJ,EAAQ,eAAiBA,EAAQ,cAAc,OAAO,GAAKA,EAAQ,OAAO,IANvJuJ,EAAQ,OAAO,EAAIvJ,EAAQ,QAC3BuJ,EAAQ,iBAAiB,EAAI,MAQ9BA,CACf,CAOI,oBAAoBimF,EAAY/iD,EAAS,CACrC,GAAI,CAAC8hD,EAAO,KAAK,WAAWiB,CAAU,EAClC,GAAI,CACAA,KAAiBvB,EAA2B,SAASuB,EAAY/iD,CAAO,CACxF,MACuB,CACP,MAAM,IAAI,MAAM,wBAAwB+iD,CAAU,EAAE,CACpE,CAGQ,OAAI,KAAK,wBAA0BA,EAAW,WAAW,mBAAmB,IACxEA,EAAa,uBAEVA,CACf,CASI,MAAM,mBAAmBjmF,EAASvJ,EAASuU,EAAM,CAC7C,UAAWhV,KAAQgV,GAA0C,OAAO,KAAKhL,CAAO,EAAI,CAChF,MAAMrK,EAAQqK,EAAQhK,CAAG,EACzB,GAAIL,GAAS,OAAOA,GAAU,UACtB,aAAcA,GAASA,EAAM,UAAU,IAAM,MAAQ,CAACc,EAAQ,qBAAsB,CAMpF,GAAI,KAAK,gBACL,GAAI,CACA,MAAMgxF,EAAgB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEznF,CAAO,EAAG,CAAE,CAAChK,CAAG,EAAG,OAAO,OAAO,CAAA,EAAIgK,EAAQhK,CAAG,CAAC,EAAG,EAC1G,OAAOyxF,EAAczxF,CAAG,EAAE,UAAU,EACpC,MAAM,KAAK,MAAML,EAAM,UAAU,EAAG,OAAO,OAAO,OAAO,OAAO,GAAIc,CAAO,EAAG,CAAE,SAAU,GAAO,cAAAgxF,EAAe,iBAAkB,GAAM,2BAA4B,GAAM,qBAAsB,EAAI,CAAE,CAAC,CACnO,OAC+BntG,EAAG,CACN,MAAM,IAAIkqG,EAAa,WAAWlqG,EAAE,QAASkqG,EAAa,YAAY,sBAAsB,CACxH,CAEoBxkF,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,YAAa,MAAM,KAAK,MAAMA,EAAM,UAAU,EAAG,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIc,CAAO,EAAG,CAAE,SAAU,GAAO,kBAAmB,GAAM,2BAA4B,GAAM,cAAeuJ,CAAO,CAAE,CAAC,GAClP,cAAe,CAAA,CAAE,CAC9C,CAEA,CACQ,OAAOA,CACf,CACI,MAAM,MAAMA,EAASvJ,EAAU,CAAE,EAGjCixF,EAAkB,CAAA,EAAI,CAClB,KAAM,CAAE,QAAAxkD,EAAS,cAAAukD,EAAe,SAAAE,EAAU,eAAAZ,EAAiBV,EAAc,wBAAyB,sBAAAW,EAAuB,iBAAAY,EAAkB,kBAAAC,CAAoB,EAAGpxF,EAC5JqxF,EAAiBrxF,EAAQ,gBAAkB,CAAE,EAEnD,GAAI,OAAO,KAAKqxF,CAAc,EAAE,QAAU,KAAK,yBAC3C,MAAM,IAAItD,EAAa,WAAW,sDAAwD,OAAO,KAAKsD,CAAc,EAAGtD,EAAa,YAAY,gBAAgB,EAEpK,GAAIxkF,GAAY,KAA+B,CAE3C,GAAI,CAAC4nF,GAAoBH,GAAiBzC,EAAO,KAAK,kBAAkByC,CAAa,EACjF,MAAM,IAAIjD,EAAa,WAAW,yDAA0DA,EAAa,YAAY,6BAA6B,EAGtJ,OAAO,IAAI4B,EAA0B,wBAAwB,KAAK,eAAe,GAAI3vF,EAAS,EAAK,CAAC,CAChH,SACiB,OAAOuJ,GAAY,SAAU,CAClC,MAAMimF,EAAa,KAAK,oBAAoBjmF,EAASkjC,CAAO,EACtD6kD,EAAiB,KAAK,kBAAkB9B,EAAYxvF,CAAO,EACjE,GAAIsxF,EACA,OAAO,IAAI3B,EAA0B,wBAAwB2B,CAAc,EAE/E,MAAMC,EAAsB,MAAM,KAAK,MAAM,MAAM,KAAK,KAAK/B,CAAU,EAAG,OAAO,OAAO,OAAO,OAAO,CAAE,EAAExvF,CAAO,EAAG,CAAE,QAASwvF,EAAY,SAAU,GAAM,eAAgB,OAAO,OAAO,OAAO,OAAO,CAAA,EAAI6B,CAAc,EAAG,CAAE,CAAC7B,CAAU,EAAG,EAAI,CAAE,CAAC,CAAE,CAAC,EACtP,YAAK,eAAe+B,EAAoB,cAAa,EAAIvxF,EAAS,EAAI,EAC/DuxF,CACnB,SACiB,MAAM,QAAQhoF,CAAO,EAAG,CAE7B,MAAMioF,EAAc,CAAE,EAChB5mE,EAAW,MAAM,QAAQ,IAAIrhB,EAAQ,IAAI,CAACs3D,EAAY58E,IAAM,CAC9D,GAAI,OAAO48E,GAAe,SAAU,CAChC,MAAM2uB,EAAa,KAAK,oBAAoB3uB,EAAYp0B,CAAO,EAC/D+kD,EAAYvtG,CAAC,EAAIurG,EACjB,MAAM8B,EAAiB,KAAK,kBAAkB9B,EAAYxvF,CAAO,EACjE,OAAIsxF,GAGG,KAAK,KAAK9B,CAAU,CAC/C,KAEoB,QAAO3uB,CAE3B,CAAa,CAAC,EAEF,GAAIuwB,EACA,OAAO,IAAIzB,EAA0B,wBAAwB/kE,CAAQ,EAEzE,MAAM6mE,EAAkB,MAAM7mE,EAAS,OAAO,CAAC8mE,EAAmBlZ,EAAcv0F,IAAMytG,EACjF,KAAMC,GAAe,KAAK,MAAMnZ,EAAc,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEx4E,CAAO,EAAG,CAAE,QAASwxF,EAAYvtG,CAAC,GAAK+b,EAAQ,QAAS,SAAU,CAAC,CAACwxF,EAAYvtG,CAAC,GAAK+b,EAAQ,SAAU,cAAe2xF,EAAW,cAAa,EAAI,eAAgBH,EAAYvtG,CAAC,EAAI,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEotG,CAAc,EAAG,CAAE,CAACG,EAAYvtG,CAAC,CAAC,EAAG,EAAI,CAAE,EAAIotG,EAAgB,EAEtW,CACI,eAAgBptG,EAAI2mC,EAAS,OAAS,CACtD,CAAa,CAAC,EAAG,QAAQ,QAAQ,IAAI+kE,EAA0B,wBAAwBqB,GAAiB,CAAE,CAAA,CAAC,CAAC,EAEhG,YAAK,eAAeS,EAAgB,cAAa,EAAIzxF,EAAS,EAAI,EAC3DyxF,CACnB,SACiB,OAAOloF,GAAY,SAAU,CAClC,GAAI,aAAcA,EACd,OAAO,MAAM,KAAK,MAAMA,EAAQ,UAAU,EAAGvJ,CAAO,EAcxD,GAXAuJ,EAAU,OAAO,OAAO,CAAA,EAAIA,CAAO,EAE/B2nF,GACA,OAAO3nF,EAAQ,OAAO,EAG1B,KAAK,eAAeA,EAASvJ,EAAS,EAAI,EAG1C,KAAK,iBAAiBuJ,CAAO,EAEzB6nF,EACA,OAAO,IAAIzB,EAA0B,wBAAwBpmF,CAAO,EAGxE,IAAIqoF,EAAgB,CAAE,EACtB,GAAI,YAAaroF,EACb,GAAI+mF,GAAkB,IAAK,CAEvB,GAAI,OAAO/mF,EAAQ,SAAS,GAAM,SAC9B,MAAM,IAAIwkF,EAAa,WAAW,8CAAgD,OAAOxkF,EAAQ,SAAS,EAAGwkF,EAAa,YAAY,oBAAoB,EAG9J6D,EAAgB,MAAM,KAAK,kBAAkB,KAAK,oBAAoBroF,EAAQ,SAAS,EAAGkjC,CAAO,CAAC,EAClG,OAAOljC,EAAQ,SAAS,CAC5C,KAEoB,OAAM,IAAIwkF,EAAa,WAAW,oDAAqDA,EAAa,YAAY,qBAAqB,EAG7I,KAAK,qBAAqB6D,EAAe,CAAE,eAAAtB,CAAgB,EAAEX,EAA0B,oBAAoB,EAC3G,MAAMkC,EAAa,OAAO,OAAOD,EAAeroF,CAAO,EAEvD,KAAK,kBAAkBsoF,CAAU,EACjC,KAAK,UAAUA,EAAY,CAAE,eAAAvB,EAAgB,sBAAAC,CAAqB,CAAE,EACpE,KAAK,qBAAqBsB,EAAY,CAAE,eAAAvB,CAAgB,EAAEX,EAA0B,oBAAoB,EACxG,MAAMp7E,EAAO,OAAO,KAAKs9E,CAAU,EAC7BC,EAAkB,CAAE,EAC1B,GAAI,OAAOd,GAAkB,SAEzB,UAAWzxF,KAAOyxF,EACVzxF,KAAOsyF,EACPC,EAAgB,KAAKvyF,CAAG,EAGxBsyF,EAAWtyF,CAAG,EAAIyxF,EAAczxF,CAAG,EAK/C,MAAM,KAAK,mBAAmBsyF,EAAY7xF,EAASuU,CAAI,EACvD,MAAMw9E,EAAoB,IAAIpC,EAA0B,wBAAwBkC,CAAU,EAE1F,OAAKA,GAAcA,EAAW,UAAU,GAAKjC,EAAc,0BAA4B,MAC9ErmF,EAAQ,QAAQ,GAAK,OAAOA,EAAQ,QAAQ,GAAM,UAAaA,EAAQ,QAAQ,IAAM,MACtFynF,GAAiB,WAAYA,GAAiBznF,EAAQ,QAAQ,EAAE,QAAQ,GAAG,EAAI,EAC/EsoF,EAAW,QAAQ,EAAIb,EAAc,QAAQ,EAAIznF,EAAQ,QAAQ,GAE5DglF,EAAO,KAAK,aAAahlF,EAAQ,QAAQ,CAAC,GAAKA,EAAQ,QAAQ,IAAKsoF,KAEzEA,EAAW,QAAQ,EAAIE,EAAkB,WAAWxoF,EAAQ,QAAQ,EAAG,EAAI,IAGnF,KAAK,oBAAoBwoF,EAAmB,KAAK,wBAAyBx9E,CAAI,EAE1E,CAAC48E,GAAoBH,GAAiBV,GAAkB,KACxD,KAAK,6BAA6BU,EAAea,EAAYlC,EAA0B,qBAAsBmC,CAAe,EAE5H,KAAK,iBAAmB,CAACb,EAAgB,gBACzC,KAAK,SAASY,EAAY,CAAE,eAAAvB,CAAc,CAAE,EAEzCyB,CACnB,KAEY,OAAM,IAAIhE,EAAa,WAAW,0EAA0ExkF,CAAO,GAAIwkF,EAAa,YAAY,qBAAqB,CAEjL,CAMI,MAAM,KAAKt8D,EAAK,CAEZ,MAAMo8B,EAAS,KAAK,cAAcp8B,CAAG,EACrC,GAAIo8B,EACA,OAAOA,EAGX,IAAI+sB,EACJ,GAAI,CACAA,EAAW,MAAM,KAAK,eAAe,KAAKnpD,CAAG,CACzD,OACe5tC,EAAG,CACN,MAAM,IAAIkqG,EAAa,WAAW,iCAAiCt8D,CAAG,KAAK5tC,EAAE,OAAO,GAAIkqG,EAAa,YAAY,6BAA6B,CAC1J,CAEQ,GAAI,EAAE,aAAcnT,GAChB,MAAM,IAAImT,EAAa,WAAW,yCAAyCt8D,CAAG,GAAIs8D,EAAa,YAAY,sBAAsB,EAErI,OAAO,KAAK,cAAct8D,CAAG,EAAImpD,EAAS,UAAU,CAC5D,CAUI,kBAAkBnpD,EAAKzxB,EAAS,CAC5B,GAAIyxB,KAAQzxB,EAAQ,gBAAkB,CAAE,GAAG,CACvC,GAAIA,EAAQ,2BACR,OAAOyxB,EAGP,MAAM,IAAIs8D,EAAa,WAAW,0CAA4Ct8D,EAAKs8D,EAAa,YAAY,2BAA2B,CAEvJ,CACQ,OAAO,IACf,CAKI,MAAM,kBAAkBiE,EAAkB,CAEtC,IAAIJ,EAAgB,MAAM,KAAK,KAAKI,CAAgB,EAEpD,GAAI,OAAOJ,GAAkB,UAAY,MAAM,QAAQA,CAAa,EAChE,MAAM,IAAI7D,EAAa,WAAW,gDAAkDiE,EAAkBjE,EAAa,YAAY,sBAAsB,EAGzJ,GAAI,YAAa6D,EACb,MAAM,IAAI7D,EAAa,WAAW,uDAAyDiE,EAAkBjE,EAAa,YAAY,qBAAqB,EAE/J,OAAA6D,EAAgB,OAAO,OAAO,CAAA,EAAIA,CAAa,EAG/C,KAAK,iBAAiBA,CAAa,EAC5BA,CACf,CACA,CACA,OAAAhC,EAAc,wBAA0B,IACxCF,gBAAA,cAAwBE,iLClwBxB,OAAO,eAAeqC,kBAAS,aAAc,CAAE,MAAO,GAAM,0KCC5D,OAAO,eAAeC,gBAAS,aAAc,CAAE,MAAO,GAAM,yLCD5D,IAAI/jE,EAAmBC,uBAAQA,sBAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,uBAAQA,sBAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uBAA8B,EAAE+D,CAAO,EACpDD,EAAaE,oBAA2B,EAAED,CAAO,EACjDD,EAAaG,6BAAoC,EAAEF,CAAO,EAC1DD,EAAaI,yBAAgC,EAAEH,CAAO,EACtDD,EAAaK,uBAA8B,EAAEJ,CAAO,EACpDD,EAAaM,iCAAwC,EAAEL,CAAO,EAC9DD,EAAaO,cAAqB,EAAEN,CAAO,sVCrB3C,OAAO,eAAeshK,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OAOrC,IAAAC,EAAA,KAAiC,CAC7B,qBAAsB,CAClB,MAAO,EACf,CACI,MAAM,OAAOC,EAAYC,EAAgB99I,EAAM59B,EAAMrV,EAAOgZ,EAAO,CAC/D,IAAI0gE,EAEJ,GAAIq3G,EAAe,aAAa/3K,EAAQ,CAAC,GAAK+3K,EAAe,QAAQ/3K,EAAQ,CAAC,EAE1E0gE,EAAKq3G,EAAe,QAAQ/3K,EAAQ,CAAC,EAAE,CAAC,MAEvC,CAGD,MAAMg4K,EADe,MAAM/9I,EAAK,gBAAgB59B,EAAK2D,CAAK,EAAG3D,EAAM2D,CAAK,IACvC,KAC3B,MAAMi6B,EAAK,eAAe,MAAM89I,EAAe,WAAW17K,CAAI,EAAGA,EAAK2D,CAAK,CAAC,EAC5Ei6B,EAAK,YAAY,UAAW,EAElC,GAAI,CAAC+9I,EAAS,CACVD,EAAe,aAAa/3K,CAAK,EAAI,GACrC,MAChB,CACY0gE,EAAKs3G,EAELD,EAAe,QAAQ/3K,EAAQ,CAAC,EAAI,CAAC0gE,CAAE,CACnD,CAGQ,IAAIsiD,EAAM+0D,EAAe,QAAQ/3K,CAAK,EACjCgjH,IACDA,EAAM+0D,EAAe,QAAQ/3K,CAAK,EAAI,CAAE,GAGvCgjH,EAAI,KAAM9zH,GAASA,EAAK,OAAOwxE,CAAE,CAAC,GACnCsiD,EAAI,KAAKtiD,CAAE,EAGV,MAAMq3G,EAAe,uCACtBA,EAAe,aAAa/3K,CAAK,EAAI,GAEjD,CACA,EACA43K,kCAAA,2BAAqCK,gQClDrC,OAAO,eAAeC,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMj+F,EAA0D1nE,6BAAA,EAC1D8jE,EAA2B9/D,cAAA,EAKjC,IAAA4hK,EAAA,MAAMC,EAAsB,CAexB,aAAa,sBAAsBL,EAAgB99I,EAAM59B,EAAM2D,EAAO1B,EAAWlC,EAAQV,EAAS28K,EAAYC,EAAc,CACxH,MAAMC,EAAkB,MAAMt+I,EAAK,mBAAmB59B,EAAM2D,CAAK,EAC3Dw4K,EAAmB,MAAMv+I,EAAK,oBAAoBj6B,EAAO3D,CAAI,EAC7Do8K,EAAuBz4K,EAAQw4K,EAC/B93D,EAAWq3D,EAAe,QAAQQ,CAAe,EACvD,GAAI73D,GAAY,CAAC43D,EAEb,UAAWz/K,KAAW6nH,EAGlB,GADgB83D,GAAoB,EACvB,CACT,MAAMrlJ,EAAS4kJ,EAAe,QAAQU,EAAuB,CAAC,EAC9D,GAAItlJ,EACA,UAAW3W,KAAS2W,EAEhB8G,EAAK,gBAAgBj6B,EAAOnH,EAASyF,EAAWlC,EAAQogB,EAAO9gB,EAAS28K,CAAU,OAKlF38K,GACAu+B,EAAK,uBAAuB79B,CAAM,EAClC27K,EAAe,+BAA+BU,EAAuB,CAAC,EAAE,KAAK,CAAE,QAASr8K,EAAQ,UAAAkC,EAAW,OAAQzF,EAAS,WAAAw/K,CAAU,CAAE,GAGxIN,EAAe,+BAA+BU,EAAuB,CAAC,EACjE,KAAK,CAAE,QAAA5/K,EAAS,UAAAyF,EAAW,OAAAlC,EAAQ,WAAAi8K,CAAU,CAAE,CAGhF,KACqB,CAED,MAAM77J,EAAQ,MAAMyd,EAAK,uBAAuB59B,EAAMk8K,CAAe,EACrEt+I,EAAK,gBAAgBj6B,EAAOnH,EAASyF,EAAWlC,EAAQogB,EAAO9gB,EAAS28K,CAAU,CACtG,SAKgB38K,GACAu+B,EAAK,uBAAuB79B,CAAM,EAGlCk8K,GAEA,GAAIP,EAAe,QAAS,CAEpBA,EAAe,QAAQ/3K,CAAK,GAC5B+3K,EAAe,UAAU,IAAI99F,EAAwB,WAAW,8CAA8C89F,EAAe,QAAQ/3K,CAAK,EAAE,CAAC,EAAE,KAAK,GAAIi6E,EAAwB,YAAY,kBAAkB,CAAC,EAGnN,QAASluG,EAAI,EAAGA,EAAIi0B,EAAOj0B,IACnB,MAAMkuD,EAAK,eAAe59B,EAAKtwB,CAAC,EAAGswB,EAAMtwB,CAAC,IAAM,OAChDgsM,EAAe,UAAU,IAAI99F,EAAwB,WAAW,sDAAuDA,EAAwB,YAAY,kBAAkB,CAAC,EAItL,MAAMy+F,EAAoBX,EAAe,yBAAyBQ,CAAe,EAC3EI,EAAgB,CAAE,UAAAr6K,EAAW,OAAAlC,EAAQ,QAAAV,EAAS,kBAAmB,CAAA,EAAI,MAAO68K,CAAiB,EACnGG,EAAkB,KAAKC,CAAa,EAGpC,QAAS5sM,EAAI2sM,EAAkB,OAAS,EAAG3sM,GAAK,EAAGA,IAAK,CAEpD,MAAM6sM,EAAqBF,EAAkB3sM,CAAC,EAC1C6sM,EAAmB,MAAQL,IAC3BI,EAAc,kBAAkB,KAAKC,CAAkB,EACvDF,EAAkB,OAAO3sM,EAAG,CAAC,EAEzD,CACA,OAGgBgsM,EAAe,+BAA+BQ,CAAe,EAAE,KAAK,CAAE,UAAAj6K,EAAW,OAAAlC,EAAQ,QAAAV,EAAS,WAAA28K,EAAY,CAG9H,CACI,mBAAoB,CAChB,MAAO,EACf,CACI,kBAAmB,CACf,MAAO,EACf,CACI,MAAM,SAASN,EAAgB99I,EAAM59B,EAAM2D,EAAO64K,EAAY,CAC1D,MAAMxxL,EAAMgV,EAAK2D,CAAK,EACtB,GAAI3Y,EAAK,CACL,MAAMgK,EAAU,MAAM0mL,EAAe,WAAW17K,CAAI,EACpD,GAAI,CAAC07K,EAAe,iBAAiB/3K,CAAK,GAAK,MAAMi6B,EAAK,gBAAgB5oC,EAASgL,EAAK2D,CAAK,CAAC,EAE1F,OAAIq2E,EAAO,KAAK,oBAAoBhlF,EAAShK,CAAG,IAAM,UAClD0wL,EAAe,iBAAiB/3K,EAAQ,CAAC,EAAI,IAE1C,EAEvB,CACQ,MAAO,EACf,CACI,MAAM,KAAK+3K,EAAgB99I,EAAM5yC,EAAKgV,EAAM2D,EAAO,CAC/C,OAAO3D,EAAK2D,CAAK,CACzB,CACI,MAAM,OAAO+3K,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAOy2D,EAAY,CACpE,MAAMqiH,EAAcz8K,EAAK2D,CAAK,EACxB3O,EAAU,MAAM0mL,EAAe,WAAW17K,CAAI,EAC9CiC,EAAY,MAAM27B,EAAK,gBAAgB5oC,EAAShK,CAAG,EACzD,GAAIiX,EAAW,CACX,MAAMnX,EAAU,MAAM8yC,EAAK,YAAY5oC,EAAShK,EAAKL,EAAOgZ,EAAO3D,CAAI,EACvE,GAAIlV,EAAQ,OACR,QAASiV,KAAUjV,EAAS,CAExB,IAAI4xL,EAAY,MAAM9+I,EAAK,qBAAqB59B,EAAM2D,CAAK,EAC3D,MAAMtE,EAAU26E,EAAO,KAAK,kBAAkBhlF,EAASynL,EAAaC,CAAS,EAC7E,IAAIC,EAAoB,EACxB,KAAOD,IAAc,YAAc,OAAOA,GAAc,UAEhD,OAAOA,GAAc,SACrBC,IAGAh5K,IAEJ+4K,EAAY,MAAM9+I,EAAK,qBAAqB59B,EAAM2D,EAAQg5K,CAAiB,EAE/E,MAAMX,EAAahiG,EAAO,KAAK,yBAAyB0iG,CAAS,EACjE9+I,EAAK,8BAA8B5yC,EAAKqU,EAAS28K,CAAU,EAC3D,MAAMC,EAAejiG,EAAO,KAAK,6BAA6B0iG,CAAS,EACvE,GAAI/xL,EAAO,CAGP,MAAMiyL,EAAqB,UAAW5iG,EAAO,KAAK,yBAAyBhlF,EAAShK,CAAG,EACvF,GAAI4xL,GAAsBjyL,EAAM,OAAO,EAAG,CACtC,IAAMiyL,GAAsB,CAAC,MAAM,QAAQjyL,CAAK,GAAK,CAACA,EAAM,OAAO,GAC3DA,EAAM,OAAO,GAAK,CAAC,MAAM,QAAQA,EAAM,OAAO,CAAC,IAChDoV,IAAW69B,EAAK,OAAQ,CAC3B,MAAMi/I,EAAcj/I,EAAK,YAAY,UAAW,EAChD89I,EAAe,SAAS/3K,EAAOi6B,EAAK,YAAY,KAAKi/I,EAAaj/I,EAAK,QAASA,EAAK,OAAQA,EAAK,gBAAiB,CAAA,CAAC,EACpH89I,EAAe,SAAS/3K,EAAOi6B,EAAK,YAAY,KAAKi/I,EAAaj/I,EAAK,SAAU79B,EAAQ69B,EAAK,gBAAiB,CAAA,CAAC,EAChH79B,EAAS88K,CACzC,CAE4B,GAAIx9K,GAAW,CAACq8K,EAAe,iBAC3B,MAAM,IAAI99F,EAAwB,WAAW,mDAAmD5yF,CAAG,GAAI4yF,EAAwB,YAAY,8BAA8B,CAEzM,CACA,CACoB,MAAMm+F,GAAsB,sBAAsBL,EAAgB99I,EAAM59B,EAAM2D,EAAO1B,EAAWlC,EAAQV,EAAS28K,EAAYC,CAAY,CAC7J,CAEA,CACA,CACA,EACAJ,6BAAA,sBAAgCE,yMC7KhC,OAAO,eAAee,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMl/F,EAA0D1nE,6BAAA,EAC1D2lK,EAA0E3hK,6BAAA,EAC1E8/D,EAA2B7/D,cAAA,EAMjC,IAAA4iK,EAAA,KAA4B,CACxB,qBAAsB,CAClB,MAAO,EACf,CACI,MAAM,OAAOtB,EAAYC,EAAgB99I,EAAM59B,EAAMrV,EAAOgZ,EAAO,CAC/D,GAAI,CAAC,MAAM,QAAQhZ,CAAK,EAAG,CACvB,MAAMqyL,EAAiB,WAAYvB,EAE7BzmL,EAAU,MAAM0mL,EAAe,WAAW17K,CAAI,EAC9Ci9K,EAAWj9K,EAAK2D,EAAQ,CAAC,EACzBu5K,EAAmBljG,EAAO,KAAK,qBAAqBhlF,EAASioL,CAAQ,EAC3E,GAAIC,EAAkB,CAElB,GAAIt/F,EAAwB,KAAK,mBAAmBs/F,CAAgB,EAChE,MAAM,IAAIt/F,EAAwB,WAAW,kDAAkDs/F,CAAgB,GAAIt/F,EAAwB,YAAY,uBAAuB,EAElL,GAAI,OAAOs/F,GAAqB,SAC5B,MAAM,IAAIt/F,EAAwB,WAAW,uCAAuCs/F,CAAgB,GAAIt/F,EAAwB,YAAY,uBAAuB,EAGvK,GAAI,OAAOjzF,GAAU,SAAU,CAE3B,GAAIqvF,EAAO,KAAK,oBAAoBhlF,EAASioL,CAAQ,IAAM,MACvD,MAAM,IAAIr/F,EAAwB,WAAW,gGAAgGjzF,CAAK,GAAIizF,EAAwB,YAAY,oBAAoB,EAGlN,MAAMvZ,EAAKzmC,EAAK,eAAe5oC,EAASrK,CAAK,EACzC05E,IACAq3G,EAAe,QAAQ/3K,EAAQ,CAAC,EAAI,CAAC0gE,CAAE,EAE/D,CAEgB,MAAM84G,EAAgBv/I,EAAK,sBAAsB5oC,EAASkoL,CAAgB,EAC1E,GAAIC,EAAe,CACf,MAAMC,EAAc,MAAMx/I,EAAK,YAAY5oC,EAASkoL,EAAkB,MAAMt/I,EAAK,gBAAgB59B,EAAK2D,CAAK,EAAG3D,EAAM2D,CAAK,EAAGA,EAAO3D,CAAI,EACvI,GAAIg9K,EAAgB,CAEhB,MAAM/3D,EAAU,MAAMrnF,EAAK,uBAAuB59B,EAAM2D,EAAQ,CAAC,EACjE,UAAW05K,KAAcD,EACrB1B,EAAe,SAAS/3K,EAAOi6B,EAAK,YAAY,KAAKqnF,EAASk4D,EAAeE,EAAYz/I,EAAK,gBAAiB,CAAA,CAAC,CAE5I,KAGwB,WAAWy/I,KAAcD,EACrB,MAAMvB,EAAwB,sBAAsB,sBAAsBH,EAAgB99I,EAAM59B,EAAM2D,EAAQ,EAAGw5K,EAAeE,EAAY,GAAO,GAAO,EAAK,CAG3L,CACA,CACY,MAAMC,EAAcN,EAAiB,EAAI,EACzC,MAAMtB,EAAe,cAAc17K,EAAK,MAAM,EAAGA,EAAK,OAASs9K,CAAW,EAAG3yL,EAAOgZ,EAAQ25K,EAAa,EAAI,EAE7G,MAAM5B,EAAe,mCAAoC,CACrE,CACQA,EAAe,aAAa/3K,CAAK,EAAI,EAC7C,CACA,EACAm5K,6BAAA,sBAAgCS,oPCpEhC,OAAO,eAAeC,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAM5/F,EAA0D1nE,6BAAA,EAOhE,IAAAunK,EAAA,KAA+B,CAC3B,qBAAsB,CAClB,MAAO,EACf,CACI,MAAM,OAAOhC,EAAYC,EAAgB99I,EAAM59B,EAAMrV,EAAOgZ,EAAO,CAC/D,MAAM1R,EAAW,MAAM2rC,EAAK,gBAAgB59B,EAAK2D,CAAK,EAAG3D,EAAM2D,CAAK,EACpE,GAAI,MAAM,QAAQhZ,CAAK,EAEnBA,EAAQA,EAAM,IAAK81E,IAAc,CAAE,SAAUA,EAAU,YAAaxuE,CAAQ,EAAG,MAE9E,CACD,GAAI,OAAOtH,GAAU,SACjB,MAAM,IAAIizF,EAAwB,WAAW,wCAAwC,KAAK,UAAUjzF,CAAK,CAAC,yBAA0BizF,EAAwB,YAAY,0BAA0B,EAEtMjzF,EAAQ,CAAE,SAAUA,EAAO,YAAasH,CAAU,CAC9D,CACQ,MAAMypL,EAAe,cAAc17K,EAAK,MAAM,EAAGA,EAAK,OAAS,CAAC,EAAGrV,EAAOgZ,EAAQ,EAAG,EAAI,EACzF+3K,EAAe,aAAa/3K,CAAK,EAAI,EAC7C,CACA,EACA65K,gCAAA,yBAAmCE,+NC7BnC,OAAO,eAAeC,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAM9B,EAA0E3lK,6BAAA,EAC1E8jE,EAA2B9/D,cAAA,EAMjC,IAAA0jK,EAAA,KAA2B,CACvB,qBAAsB,CAClB,MAAO,EACf,CACI,MAAM,OAAOnC,EAAYC,EAAgB99I,EAAM59B,EAAMrV,EAAOgZ,EAAO,CAC/D,GAAI,CAAC,MAAM,QAAQhZ,CAAK,EAAG,CACvB,GAAI,OAAOA,GAAU,SAAU,CAE3B,MAAMqK,EAAU,MAAM0mL,EAAe,WAAW17K,CAAI,EAG9CqkE,EAFoB2V,EAAO,KAAK,oBAAoBhlF,EAASgL,EAAK2D,EAAQ,CAAC,CAAC,IAEjD,SAC3B,MAAMi6B,EAAK,sBAAsB5oC,EAASrK,CAAK,EAC/C,MAAMizC,EAAK,eAAe5oC,EAASrK,CAAK,EAC9C,GAAI05E,EAAI,CAEJ,MAAM5D,EAAW,CAAE,MAAO4D,EAAG,WAAa,YAAcA,EAAG,MAAQ15E,CAAO,EAC1E,MAAM+wL,EAAe,cAAc17K,EAAK,MAAM,EAAGA,EAAK,OAAS,CAAC,EAAGygE,EAAU98D,EAAQ,EAAG,EAAI,EAE5F+3K,EAAe,QAAQ/3K,EAAQ,CAAC,EAAI,CAAC0gE,CAAE,CAC3D,CACA,KACiB,CAGD,MAAMw5G,EAAqB,CAAC,CAACnC,EAAe,QAAQ/3K,EAAQ,CAAC,EAExDk6K,GACD,OAAOnC,EAAe,QAAQ/3K,CAAK,EAEvC,MAAM+3K,EAAe,cAAc17K,EAAK,MAAM,EAAGA,EAAK,OAAS,CAAC,EAAGrV,EAAOgZ,EAAQ,EAAG,EAAI,EACpFk6K,IACDnC,EAAe,QAAQ/3K,EAAQ,CAAC,EAAI+3K,EAAe,QAAQ/3K,CAAK,EAEpF,CAEY,MAAM84K,EAAc,MAAM7+I,EAAK,gBAAgB59B,EAAK2D,CAAK,EAAG3D,EAAM2D,CAAK,EACjEpZ,EAAOkyL,IAAgB,KACvB7+I,EAAK,sBAAsB,MAAM89I,EAAe,WAAW17K,CAAI,EAAGy8K,CAAW,EAC7E,KACFlyL,GAEA,MAAMsxL,EAAwB,sBAAsB,sBAAsBH,EAAgB99I,EAAM59B,EAAM2D,EAAQ,EAAGi6B,EAAK,QAASrzC,EAAM,GAAO,GAAO,EAAK,EAG5J,MAAMmxL,EAAe,mCAAoC,CACrE,CACQA,EAAe,aAAa/3K,CAAK,EAAI,EAC7C,CACA,EACAg6K,4BAAA,qBAA+BG,wMC3D/B,OAAO,eAAeC,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMxC,EAAwFrlK,kCAAA,EACxF4mK,EAA8E5iK,6BAAA,EAC9EsjK,EAAoFrjK,gCAAA,EACpFwjK,EAA4EvjK,4BAAA,EAC5E4/D,EAA2B3/D,cAAA,EAKjC,IAAA2jK,EAAA,MAAMC,EAAsB,CAMxB,OAAO,uBAAuBxC,EAAY,CACtC,MAAO,WAAYA,IACV,SAAUA,GAAc,OAAO,KAAKA,CAAU,EAAE,SAAW,GAAM,OAAO,KAAKA,CAAU,EAAE,SAAW,EACrH,CAMI,OAAO,wBAAwBA,EAAY,CACvC,MAAO,WAAYA,IACV,SAAUA,GAAc,OAAO,KAAKA,CAAU,EAAE,OAAS,GACtD,EAAE,SAAUA,IAAe,OAAO,KAAKA,CAAU,EAAE,OAAS,EAChF,CAQI,OAAO,uBAAuBA,EAAY93K,EAAO3D,EAAM,CACnD,IAAIk+K,EAAyBD,GAAsB,uBAAuBxC,CAAU,EAChFjpL,EAAQ,GACZ,QAAS9iB,EAAIi0B,EAAOj0B,EAAIswB,EAAK,OAAQtwB,KAC7B,CAACwuM,GAA0B,OAAOl+K,EAAKtwB,CAAC,GAAM,YAC9C8iB,GAAS,IAAMwN,EAAKtwB,CAAC,GAGrB,CAACwuM,GAA0B,OAAOl+K,EAAKtwB,CAAC,GAAM,WAC9CwuM,EAAyB,IAGjC,OAAO1rL,CACf,CAeI,aAAa,oBAAoBkpL,EAAgB17K,EAAM2D,EAAO,CAC1D,MAAMw6K,EAAW,CACb,WAAY,CAAE,OAAQ,EAAM,EAC5B,MAAAx6K,EACA,SAAU,EACb,EAED,IAAIy6K,EAAsB,GAE1B,MAAMppL,EAAU,MAAM0mL,EAAe,WAAW17K,EAAM,CAAC,EACvD,QAAStwB,EAAIi0B,EAAQ,EAAGj0B,GAAK,EAAGA,IAC5B,GAAI,OAAOswB,EAAKtwB,CAAC,GAAM,SAAU,CAE7B,MAAM2uM,EAAiBrkG,EAAO,KAAK,gBAAgBhlF,EAAS,aAAcgL,EAAKtwB,CAAC,EAAG,EAAK,EACxF,GAAI2uM,GAAkBJ,GAAsB,uBAAuBI,CAAc,EAC7E,MAAO,CACH,WAAYA,EACZ,MAAO3uM,EAAI,EACX,SAAU,EACb,EAEL,MAAM4uM,EAAmBtkG,EAAO,KAAK,gBAAgBhlF,EAAS,aAAcgL,EAAKtwB,EAAI,CAAC,EAAG,EAAK,EAC9F,GAAK4uM,EAQA,CAED,MAAMtB,EAAiB,WAAYsB,EAEnC,UAAWC,KAAuBN,GAAsB,mBACpD,GAAIK,EAAiBC,CAAmB,EACpC,OAAIvB,EAEIiB,GAAsB,mBAAmBM,CAAmB,EAAE,oBAAmB,EAC1E,CACH,WAAYD,EACZ,MAAO5uM,EACP,SAAU,EACb,EAGMyuM,EAKPC,EACOD,EAGA,CACH,WAAYG,EACZ,MAAO5uM,EACP,SAAU,EACb,EAMjB,OAAOyuM,CAC3B,KA5CuC,CACnB,GAAIC,EAEA,OAAOD,EAGXC,EAAsB,EAC1C,CAsCA,CAEQ,OAAOD,CACf,CAeI,aAAa,6BAA6BzC,EAAgB17K,EAAM2D,EAAO,CACnE,MAAMirD,EAAU,MAAMqvH,GAAsB,oBAAoBvC,EAAgB17K,EAAM2D,CAAK,EAC3F,MAAO,CAACirD,EAAQ,UAAY,EAAE,WAAYA,EAAQ,WAC1D,CACI,mBAAoB,CAChB,MAAO,EACf,CACI,kBAAmB,CACf,MAAO,EACf,CACI,MAAM,SAAS8sH,EAAgB99I,EAAM59B,EAAM2D,EAAO64K,EAAY,CAC1D,MAAO,CAAC,CAAC,MAAM,KAAK,KAAKd,EAAgB99I,EAAM,KAAM59B,EAAM2D,CAAK,CACxE,CACI,MAAM,KAAK+3K,EAAgB99I,EAAM5yC,EAAKgV,EAAM2D,EAAO,CAC/C,MAAM83K,EAAazhG,EAAO,KAAK,yBAAyB,MAAM0hG,EAAe,WAAW17K,EAAM,CAAC,EAAGA,EAAK2D,EAAQ,CAAC,CAAC,EACjH,UAAW66K,KAAiBP,GAAsB,mBAC9C,GAAIxC,EAAW+C,CAAa,EACxB,MAAO,CACH,WAAA/C,EACA,QAASwC,GAAsB,mBAAmBO,CAAa,CAClE,EAGT,OAAO,IACf,CACI,MAAM,OAAO9C,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAOy2D,EAAY,CACpE,OAAOA,EAAW,QAAQ,OAAOA,EAAW,WAAYshH,EAAgB99I,EAAM59B,EAAMrV,EAAOgZ,CAAK,CACxG,CACA,EACAs6K,OAAAA,EAAsB,mBAAqB,CACvC,MAAO,IAAI1C,EAA6B,2BACxC,SAAU,IAAIuB,EAAwB,sBACtC,YAAa,IAAIU,EAA2B,yBAC5C,QAAS,IAAIG,EAAuB,oBACvC,EACDI,sBAAA,sBAAgCE,2JCvLhC,aAAiB,SAASQ,EAAW1+K,EAAQ,CAC3C,OAAIA,IAAW,MAAQ,OAAOA,GAAW,UAAYA,EAAO,QAAU,KAC7D,KAAK,UAAUA,CAAM,EAG1B,MAAM,QAAQA,CAAM,EACf,IAAMA,EAAO,OAAO,CAACxwB,EAAGmvM,EAAIh+L,IAAO,CACxC,MAAM0vJ,EAAQ1vJ,IAAO,EAAI,GAAK,IACxBiK,EAAQ+zL,IAAO,QAAa,OAAOA,GAAO,SAAW,KAAOA,EAClE,OAAOnvM,EAAI6gK,EAAQquC,EAAU9zL,CAAK,CACxC,EAAO,EAAE,EAAI,IAGJ,IAAM,OAAO,KAAKoV,CAAM,EAAE,KAAM,EAAC,OAAO,CAACxwB,EAAGmvM,EAAIh+L,IAAO,CAC5D,GAAIqf,EAAO2+K,CAAE,IAAM,QACf,OAAO3+K,EAAO2+K,CAAE,GAAM,SACxB,OAAOnvM,EAET,MAAM6gK,EAAQ7gK,EAAE,SAAW,EAAI,GAAK,IACpC,OAAOA,EAAI6gK,EAAQquC,EAAUC,CAAE,EAAI,IAAMD,EAAU1+K,EAAO2+K,CAAE,CAAC,CACjE,EAAK,EAAE,EAAI,GACV,sHCxBD,OAAO,eAAe1kG,OAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,OAAA,KAAG,OACf,MAAM4D,EAA0D1nE,6BAAA,EAC1DwK,EAAqBxG,wBAA2B,EAChD6jK,EAAyE5jK,6BAAA,EAEzEwkK,EAAmBvkK,oBAAuB,EAIhD,MAAM4jB,CAAK,CACP,YAAYvyC,EAAS,CACjB,KAAK,eAAiBA,EAAQ,eAC9B,KAAK,YAAcA,EAAQ,aAAe,IAAIi1B,EAAmB,YACjE,KAAK,SAAW,KAAK,YAAY,UAAUsd,EAAK,IAAM,OAAO,EAC7D,KAAK,QAAU,KAAK,YAAY,UAAUA,EAAK,IAAM,MAAM,EAC3D,KAAK,OAAS,KAAK,YAAY,UAAUA,EAAK,IAAM,KAAK,EACzD,KAAK,QAAU,KAAK,YAAY,UAAUA,EAAK,IAAM,MAAM,EAC3D,KAAK,QAAU,KAAK,YAAY,UAAUA,EAAK,IAAM,MAAM,CACnE,CAYI,OAAO,gBAAgBhpC,EAAS4pL,EAAY5zL,EAAKmzL,EAAU,CACvD,MAAM5+K,EAAQvK,EAAQ,cAAa,EAAGhK,CAAG,EACzC,GAAI,CAACuU,EACD,OAAO4+K,EAEX,MAAM5zL,EAAOgV,EAAMq/K,CAAU,EAC7B,OAAOr0L,IAAS,OAAY4zL,EAAW5zL,CAC/C,CAYI,OAAO,yBAAyByK,EAAShK,EAAK,CAC1C,OAAOgzC,EAAK,gBAAgBhpC,EAAS,aAAchK,EAAK,CAAE,OAAQ,GAAM,CAChF,CAOI,OAAO,oBAAoBgK,EAAShK,EAAK,CACrC,MAAMqxF,EAAYr+C,EAAK,gBAAgBhpC,EAAS,QAAShK,EAAK,IAAI,EAClE,OAAIqxF,IAAc,QACP,KAEJA,CACf,CAOI,OAAO,wBAAwBrnF,EAAShK,EAAK,CACzC,OAAOgzC,EAAK,gBAAgBhpC,EAAS,YAAahK,EAAKgK,EAAQ,cAAe,EAAC,WAAW,GAAK,IAAI,CAC3G,CAOI,OAAO,yBAAyBA,EAAShK,EAAK,CAC1C,OAAOgzC,EAAK,gBAAgBhpC,EAAS,aAAchK,EAAKgK,EAAQ,cAAe,EAAC,YAAY,GAAK,IAAI,CAC7G,CAOI,OAAO,sBAAsBA,EAAShK,EAAK,CACvC,MAAO,CAAC,CAACgzC,EAAK,gBAAgBhpC,EAAS,WAAYhK,EAAK,IAAI,CACpE,CAOI,OAAO,qBAAqBgK,EAAShK,EAAK,CACtC,OAAOgzC,EAAK,gBAAgBhpC,EAAS,SAAUhK,EAAKgK,EAAQ,cAAe,EAAC,QAAQ,GAAK,IAAI,CACrG,CAQI,OAAO,kBAAkBA,EAAShK,EAAK0xL,EAAW,CAE9C,OAAOA,IAAc,aAAe1+I,EAAK,sBAAsBhpC,EAAShK,CAAG,CACnF,CAMI,OAAO,yBAAyB0xL,EAAW,CACvC,OAAOA,IAAc,KAC7B,CAMI,OAAO,6BAA6BA,EAAW,CAC3C,OAAOA,IAAc,aAC7B,CAMI,OAAO,WAAW7pJ,EAAK,CACnB,OAAOA,IAAQ,MAAQ+qD,EAAwB,KAAK,WAAW/qD,CAAG,CAC1E,CAMI,OAAO,cAAcglJ,EAAQgH,EAAU,CACnC,GAAIhH,EAAO,OAASgH,EAAS,OACzB,MAAO,GAEX,QAASnvM,EAAI,EAAGA,EAAImoM,EAAO,OAAQnoM,IAC/B,GAAImoM,EAAOnoM,CAAC,IAAMmvM,EAASnvM,CAAC,EACxB,MAAO,GAGf,MAAO,EACf,CAOI,MAAM,qBAAqBib,EAAO,CAC9B,GAAI,KAAK,eAAe,qBAAsB,CAC1C,MAAMm0L,EAAc,CAAE,EACtB,UAAWv/K,KAAS5U,EAChB,GAAI4U,GAAS,OAAOA,GAAU,SAAU,CACpC,MAAM8kE,EAAK9kE,EAAM,KAAK,EAChB/M,EAAQ+M,EAAM,QAAQ,EAC5B,GAAI8kE,GAAM7xE,EAAO,CACb,MAAMusL,EAAqBD,EAAYz6G,CAAE,EACzC,GAAI06G,GAAsBA,IAAuBvsL,EAC7C,MAAM,IAAIorF,EAAwB,WAAW,gCAAgCvZ,CAAE,GAAIuZ,EAAwB,YAAY,mBAAmB,EAE9IkhG,EAAYz6G,CAAE,EAAI7xE,CAC1C,CACA,CAEA,CACA,CAUI,MAAM,YAAYwC,EAAShK,EAAKL,EAAOgZ,EAAO3D,EAAM,CAEhD,GAAIg+B,EAAK,oBAAoBhpC,EAAShK,CAAG,IAAM,QAC3C,MAAO,CAAC,KAAK,YAAY,QAAQ,KAAK,kBAAkBL,CAAK,EAAG,KAAK,OAAO,CAAC,EAEjF,MAAMJ,EAAO,OAAOI,EACpB,OAAQJ,EAAI,CACR,IAAK,SAED,GAAII,GAAU,KACV,MAAO,CAAE,EAGb,GAAI,MAAM,QAAQA,CAAK,EAGnB,MAAI,UAAWqzC,EAAK,yBAAyBhpC,EAAShK,CAAG,EACjDL,EAAM,SAAW,EACV,CAAC,KAAK,MAAM,EAGZ,KAAK,eAAe,QAAQgZ,EAAQ,CAAC,GAAK,CAAE,GAG3D,MAAM,KAAK,qBAAqBhZ,CAAK,EAC9B,CAAE,GAUb,GAPAqK,EAAU,MAAM,KAAK,+BAA+BA,EAAShK,CAAG,EAE5D,aAAcL,IACdqK,EAAU,MAAM,KAAK,eAAe,aAAarK,EAAM,UAAU,GAAI,MAAM,KAAK,eAAe,WAAWqV,EAAM,CAAC,GAAG,eAAe,GAGvIrV,EAAQ,MAAM,KAAK,gBAAgBA,EAAOqV,EAAM2D,EAAO3O,CAAO,EAC1D,WAAYrK,EAAO,CACnB,IAAIkf,EACAm1K,EACAC,EACA5iG,EACA6iG,EACJ,IAAKl0L,KAAOL,EAAO,CACf,MAAM81E,EAAW91E,EAAMK,CAAG,EAC1B,OAAQA,EAAG,CACP,IAAK,SACD6e,EAAM42D,EACN,MACJ,IAAK,YACDu+G,EAAgBv+G,EAChB,MACJ,IAAK,aACDw+G,EAAiBx+G,EACjB,MACJ,IAAK,QACD4b,EAAY5b,EACZ,MACJ,IAAK,SACDy+G,EAAaz+G,EACb,MACJ,IAAK,cAED,MACJ,QACI,MAAM,IAAImd,EAAwB,WAAW,wBAAwB5yF,CAAG,gBAAgB,KAAK,UAAUL,CAAK,CAAC,GAAIizF,EAAwB,YAAY,oBAAoB,CACzM,CACA,CAEoB,GAAI,MAAM,KAAK,eAAevB,EAAWr8E,EAAM2D,EAAO,GAAM3O,CAAO,IAAM,QACrE,MAAO,CAAC,KAAK,YAAY,QAAQ,KAAK,kBAAkB6U,CAAG,EAAG,KAAK,OAAO,CAAC,EAG/E,GAAIA,IAAQ,KACR,MAAO,CAAE,EAEb,GAAI,OAAOA,GAAQ,SACf,MAAM,IAAI+zE,EAAwB,WAAW,uDAAuD,KAAK,UAAU/zE,CAAG,CAAC,IAAK+zE,EAAwB,YAAY,0BAA0B,EAG9L,GAAI,KAAK,eAAe,sBAAwBshG,GAAc,OAAOA,GAAe,SAChF,MAAM,IAAIthG,EAAwB,WAAW,mDAAmD,KAAK,UAAUshG,CAAU,CAAC,IAAKthG,EAAwB,YAAY,mBAAmB,EAG1L,GAAIohG,EAAe,CACf,GAAI,OAAOn1K,GAAQ,SACf,MAAM,IAAI+zE,EAAwB,WAAW,4EAA4E,KAAK,UAAU/zE,CAAG,CAAC,IAAK+zE,EAAwB,YAAY,6BAA6B,EAEtN,GAAI,CAACA,EAAwB,cAAc,iBAAiBohG,EAAe,KAAK,eAAe,aAAcphG,EAAwB,YAAY,8BAA8B,EAC3K,MAAO,CAAE,GAGT,KAAK,eAAe,uBAAyB,KAAK,eAAe,uBAAyB,KAC1FohG,EAAgBA,EAAc,YAAa,EAEvE,CACoB,GAAIC,EAAgB,CAChB,GAAI,OAAOp1K,GAAQ,SACf,MAAM,IAAI,MAAM,6EAA6E,KAAK,UAAUA,CAAG,CAAC,GAAG,EAEvH,GAAI,CAAC+zE,EAAwB,cAAc,kBAAkBqhG,EAAgB,KAAK,eAAe,YAAY,EACzG,MAAO,CAAE,CAErC,CAEoB,GAAID,GAAiBC,GAAkB,KAAK,eAAe,aAAc,CACrE,GAAI5iG,EACA,MAAM,IAAIuB,EAAwB,WAAW,mEAAmE,KAC3G,UAAUjzF,CAAK,CAAC,IAAKizF,EAAwB,YAAY,oBAAoB,EAEtF,OAAO,KAAK,oBAAoB,KAC3B,+BAA+Bj6E,EAAOkG,EAAKm1K,EAAeC,CAAc,CAAC,CACtG,SAC6BD,EAAe,CACpB,GAAI3iG,EACA,MAAM,IAAIuB,EAAwB,WAAW,0DAA0D,KAAK,UAAUjzF,CAAK,CAAC,IAAKizF,EAAwB,YAAY,oBAAoB,EAE7L,MAAO,CAAC,KAAK,YAAY,QAAQ/zE,EAAKm1K,CAAa,CAAC,CAC5E,SAC6BC,GAAkB,KAAK,eAAe,aAAc,CACzD,GAAI5iG,EACA,MAAM,IAAIuB,EAAwB,WAAW,2DAA2D,KAAK,UAAUjzF,CAAK,CAAC,IAAKizF,EAAwB,YAAY,oBAAoB,EAE9L,OAAO,KAAK,oBAAoB,KAC3B,+BAA+Bj6E,EAAOkG,EAAKm1K,EAAeC,CAAc,CAAC,CACtG,SAC6B5iG,EAAW,CAChB,GAAI,OAAOA,GAAc,SACrB,MAAM,IAAIuB,EAAwB,WAAW,kDAAkD,KAAK,UAAUvB,CAAS,CAAC,IAAKuB,EAAwB,YAAY,mBAAmB,EAExL,MAAMuhG,EAAW,KAAK,sBAAsBnqL,EAASqnF,CAAS,EAC9D,GAAI,CAAC8iG,EACD,MAAM,IAAIvhG,EAAwB,WAAW,+BAA+B,KAAK,UAAUvB,CAAS,CAAC,IAAKuB,EAAwB,YAAY,mBAAmB,EAErK,GAAIuhG,EAAS,WAAa,YACtB,MAAM,IAAIvhG,EAAwB,WAAW,uBAAuBuhG,EAAS,QAAQ,MAAM9iG,CAAS,GAAIuB,EAAwB,YAAY,mBAAmB,EAEnK,MAAO,CAAC,KAAK,YAAY,QAAQ/zE,EAAKs1K,CAAQ,CAAC,CACvE,CAEoB,OAAO,MAAM,KAAK,YAAY,IAAIvhG,EAAwB,wBAAwB,CAAE,CAAA,EAAG5yF,EAAK6e,EAAKlG,EAAO3D,CAAI,CAChI,SACyB,SAAUrV,EAAO,CAEtB,GAAI,OAAO,KAAKA,CAAK,EAAE,OAAS,EAC5B,MAAM,IAAIizF,EAAwB,WAAW,6DAA6D5yF,CAAG,IAAK4yF,EAAwB,YAAY,0BAA0B,EAGpL,MAAO,CAAE,CAC7B,SACyB,UAAWjzF,EAAO,CAEvB,GAAI,OAAO,KAAKA,CAAK,EAAE,OAAS,EAC5B,MAAM,IAAIizF,EAAwB,WAAW,8DAA8D5yF,CAAG,IAAK4yF,EAAwB,YAAY,0BAA0B,EAErL,MAAMtZ,EAAY35E,EAAM,OAAO,EAG/B,OAAI,MAAM,QAAQ25E,CAAS,EACnBA,EAAU,SAAW,EACd,CAAC,KAAK,MAAM,EAGZ,KAAK,eAAe,QAAQ3gE,EAAQ,CAAC,GAAK,CAAE,EAKhD,MAAM,KAAK,YAAY,MAAM,KAAK,eAAe,WAAW3D,CAAI,EAAGhV,EAAKs5E,EAAW3gE,EAAQ,EAAG3D,EAAK,MAAM,EAAG,EAAE,CAAC,CAE9I,KACqB,IAAI,aAAcrV,GAAS,OAAOA,EAAM,UAAU,GAAM,UAGzD,MAAO,CAAE,EAER,GAAI,WAAYqzC,EAAK,yBAAyB,MAAM,KAAK,eAAe,WAAWh+B,CAAI,EAAGhV,CAAG,EAAG,CAEjG,MAAMo0L,EAAwB,KAAK,eAAe,wBAAwBz7K,EAAQ,CAAC,EACnF,OAAOy7K,EAAwB,OAAO,OAAOA,CAAqB,EAAI,CAAC,KAAK,YAAY,WAAW,CACvH,SACyB,QAASz0L,EAAO,CASrB,GAPI,OAAO,KAAKA,CAAK,EAAE,OAAS,IAC5BqK,EAAU,MAAM,KAAK,eAAe,WAAWgL,EAAM,CAAC,GAGtD,aAAcrV,IACdqK,EAAU,MAAM,KAAK,eAAe,aAAarK,EAAM,UAAU,EAAGqK,EAAQ,eAAe,GAE3FrK,EAAM,OAAO,IAAM,SACnB,OAAO,KAAK,oBAAoB,KAAK,sBAAsBqK,EAASrK,EAAM,KAAK,CAAC,CAAC,EAEhF,CACD,MAAM00L,EAAU10L,EAAM,KAAK,EAC3B,IAAI20L,EACJ,GAAI,OAAOD,GAAY,SACnB,GAAI,KAAK,eAAe,QACpBC,EAAY,KAAK,eAAe,QAAQ37K,EAAQ,CAAC,EAAE,CAAC,MAGpD,OAAM,IAAIi6E,EAAwB,WAAW,sBAAsBjzF,CAAK,IAAKizF,EAAwB,YAAY,gBAAgB,OAIrI0hG,EAAY,KAAK,eAAetqL,EAASqqL,CAAO,EAEpD,OAAO,KAAK,oBAAoBC,CAAS,CACjE,CACA,KAGoB,QAAI,KAAK,eAAe,aAAa37K,EAAQ,CAAC,GACtChZ,GAAS,OAAOA,GAAU,UAAY,OAAO,KAAKA,CAAK,EAAE,SAAW,EAChE,KAAK,eAAe,QAAQgZ,EAAQ,CAAC,IACrC,KAAK,eAAe,QAAQA,EAAQ,CAAC,EAAI,CAAC,KAAK,YAAY,UAAS,CAAE,GAGvE,CAAE,EAGrB,IAAK,SACD,OAAO,KAAK,oBAAoB,KAAK,kBAAkBA,EAAO,MAAM,KAAK,+BAA+B3O,EAAShK,CAAG,EAAGA,EAAKL,EAAO,IAAI,CAAC,EAC5I,IAAK,UACD,OAAO,KAAK,oBAAoB,KAAK,kBAAkBgZ,EAAO,MAAM,KAAK,+BAA+B3O,EAAShK,CAAG,EAAGA,GAAK,EAAQL,GAAO,WAAY,KAAK,YAAY,UAAUqzC,EAAK,WAAW,CAAC,CAAC,EACxM,IAAK,SACD,OAAO,KAAK,oBAAoB,KAAK,kBAAkBr6B,EAAO,MAAM,KAAK,+BAA+B3O,EAAShK,CAAG,EAAGA,EAAKL,EAAO,KAAK,YAAY,UAAUA,EAAQ,IAAM,GAAKA,EAAQ,KAAOqzC,EAAK,YAAcA,EAAK,UAAU,CAAC,CAAC,EACxO,QACI,YAAK,eAAe,UAAU,IAAI,MAAM,yCAAyCzzC,CAAI,EAAE,CAAC,EACjF,CAAE,CACzB,CACA,CAUI,MAAM,+BAA+ByK,EAAShK,EAAK,CAC/C,MAAMu0L,EAAkBvqL,EAAQ,cAAa,EAAGhK,CAAG,EACnD,OAAIu0L,GAAmB,OAAOA,GAAoB,UAAY,aAAcA,IACxEvqL,EAAU,MAAM,KAAK,eAAe,aAAauqL,EAAiBvqL,EAAQ,cAAe,EAAE,EAAI,GAE5FA,CACf,CAKI,oBAAoBnC,EAAM,CACtB,OAAOA,EAAO,CAACA,CAAI,EAAI,CAAE,CACjC,CAQI,gBAAgBmC,EAAShK,EAAK,CAC1B,MAAMivH,EAAWjlH,EAAQ,WAAWhK,EAAK,GAAM,KAAK,eAAe,kBAAkB,EAErF,GAAI,CAACivH,EACD,OAAO,KAGX,GAAIA,EAAS,CAAC,IAAM,KAAOA,EAAS,CAAC,IAAM,IACvC,OAAI,KAAK,eAAe,sBACb,KAAK,YAAY,UAAUA,EAAS,OAAO,CAAC,CAAC,EAG7C,KAIf,GAAIj8E,EAAK,WAAWi8E,CAAQ,EACxB,OAAO,KAAK,YAAY,UAAUA,CAAQ,EAG1C,GAAIA,GAAY,KAAK,eAAe,aAChC,KAAK,eAAe,UAAU,IAAIr8B,EAAwB,WAAW,0BAA0Bq8B,CAAQ,GAAIr8B,EAAwB,YAAY,mBAAmB,CAAC,MAGnK,QAAO,KAGf,OAAO,IACf,CAQI,eAAe5oF,EAAShK,EAAK,CACzB,GAAIA,EAAI,WAAW,IAAI,EACnB,OAAO,KAAK,YAAY,UAAUA,EAAI,OAAO,CAAC,CAAC,EAEnD,MAAM6nC,EAAM79B,EAAQ,WAAWhK,EAAK,GAAO,KAAK,eAAe,kBAAkB,EACjF,GAAI,CAACgzC,EAAK,WAAWnL,CAAG,EACpB,GAAIA,GAAO,KAAK,eAAe,aAC3B,KAAK,eAAe,UAAU,IAAI,MAAM,yBAAyBA,CAAG,EAAE,CAAC,MAGvE,QAAO,KAGf,OAAO,KAAK,YAAY,UAAUA,CAAG,CAC7C,CASI,sBAAsB79B,EAAShK,EAAK,CAChC,GAAIA,EAAI,WAAW,IAAI,EACnB,OAAO,KAAK,YAAY,UAAUA,EAAI,OAAO,CAAC,CAAC,EAEnD,MAAMkxF,EAAgB,KAAK,eAAe,iBAAkB,EAC5D,IAAI+9B,EAAWjlH,EAAQ,WAAWhK,EAAK,GAAMkxF,CAAa,EAI1D,GAHI+9B,IAAajvH,IACbivH,EAAWjlH,EAAQ,WAAWhK,EAAK,GAAOkxF,CAAa,GAEvD,CAACl+C,EAAK,WAAWi8E,CAAQ,EACzB,GAAIA,GAAY,KAAK,eAAe,cAAgB,CAACA,EAAS,WAAW,GAAG,EACxE,KAAK,eAAe,UAAU,IAAI,MAAM,qBAAqBA,CAAQ,EAAE,CAAC,MAGxE,QAAO,KAGf,OAAO,KAAK,YAAY,UAAUA,CAAQ,CAClD,CAOI,YAAYtvH,EAAO8sC,EAAU,CACzB,OAAI,OAAO9sC,GAAU,SACb,OAAO,SAASA,CAAK,EACHA,EAAQ,IAAM,IACd,CAAC8sC,GAAYA,EAAS,QAAUuG,EAAK,YAC5C,OAAOrzC,CAAK,EAAE,SAAU,EAGxBA,EAAM,cAAc,EAAE,EAAE,QAAQ,aAAc,KAAK,EAIvDA,EAAQ,EAAI,MAAQ,OAIxBA,CAEnB,CAUI,kBAAkBgZ,EAAO3O,EAAShK,EAAKL,EAAO60L,EAAiB,CAE3D,MAAMC,EAAczhJ,EAAK,oBAAoBhpC,EAAShK,CAAG,EACzD,GAAIy0L,EACA,GAAIA,IAAgB,OAChB,GAAI,CAACD,EACD,OAAO,KAAK,eAAexqL,EAAS,KAAK,YAAYrK,EAAO60L,CAAe,CAAC,UAG3EC,IAAgB,UACrB,GAAI,CAACD,EACD,OAAO,KAAK,sBAAsBxqL,EAAS,KAAK,YAAYrK,EAAO60L,CAAe,CAAC,OAIvFA,EAAkB,KAAK,YAAY,UAAUC,CAAW,EAIhE,GAAI,CAACD,EAAiB,CAClB,MAAME,EAAkB1hJ,EAAK,wBAAwBhpC,EAAShK,CAAG,EAC3D20L,EAAmB3hJ,EAAK,yBAAyBhpC,EAAShK,CAAG,EACnE,OAAI20L,GAAoB,KAAK,eAAe,aACjC,KAAK,+BAA+Bh8K,EAAO,KAAK,YAAYhZ,EAAO60L,CAAe,EAAGE,EAAiBC,CAAgB,EAGtH,KAAK,YAAY,QAAQ,KAAK,YAAYh1L,EAAO60L,CAAe,EAAGE,CAAe,CAEzG,CAEQ,OAAO,KAAK,YAAY,QAAQ,KAAK,YAAY/0L,EAAO60L,CAAe,EAAGA,CAAe,CACjG,CAUI,+BAA+B77K,EAAOhZ,EAAOsH,EAAUshE,EAAW,CAC9D,GAAI,KAAK,eAAe,eAAiB,gBAErC,OAAKthE,IACDA,EAAW,IAER,KAAK,YAAY,QAAQtH,EAAO,KAAK,YAAY,UAAU,8BAA8BsH,CAAQ,IAAIshE,CAAS,EAAE,CAAC,EAEvH,CAED,MAAM4O,EAAY,KAAK,YAAY,UAAW,EACxChiD,EAAQ,KAAK,gBAAiB,EACpC,YAAK,eAAe,SAASxc,EAAO,KAAK,YAAY,KAAKw+D,EAAW,KAAK,YAAY,UAAUnkC,EAAK,IAAM,OAAO,EAAG,KAAK,YAAY,QAAQrzC,CAAK,EAAGw1B,CAAK,CAAC,EACxJluB,GACA,KAAK,eAAe,SAAS0R,EAAO,KAAK,YAAY,KAAKw+D,EAAW,KAAK,YAAY,UAAUnkC,EAAK,IAAM,UAAU,EAAG,KAAK,YAAY,QAAQ/rC,CAAQ,EAAGkuB,CAAK,CAAC,EAEtK,KAAK,eAAe,SAASxc,EAAO,KAAK,YAAY,KAAKw+D,EAAW,KAAK,YAAY,UAAUnkC,EAAK,IAAM,WAAW,EAAG,KAAK,YAAY,QAAQu1B,CAAS,EAAGpzC,CAAK,CAAC,EAC7JgiD,CACnB,CACA,CAMI,kBAAkBx3E,EAAO,CACrB,OAAOg0L,EAAiBh0L,CAAK,CACrC,CAYI,MAAM,eAAeK,EAAKgV,EAAM2D,EAAOi8K,EAAc5qL,EAAS,CAE1D,GAAI,OAAO,UAAUhK,CAAG,EACpB,OAAOA,EAGX,GAAI,CAAC40L,EAAc,CACf,MAAMC,EAAyB,KAAK,eAAe,2BAA2Bl8K,CAAK,EACnF,GAAIk8K,EACA,OAAOA,CAEvB,CACQ,GAAI,CAACjiG,EAAwB,KAAK,mBAAmB5yF,CAAG,EAAG,CACvDgK,EAAUA,GAAW,MAAM,KAAK,eAAe,WAAWgL,CAAI,EAC9D,IAAI8/K,EAAW9qL,EAAQ,cAAa,EAAGhK,CAAG,EACtC80L,GAAY,OAAOA,GAAa,WAChCA,EAAWA,EAAS,KAAK,GAEzBliG,EAAwB,KAAK,eAAekiG,CAAQ,IACpD90L,EAAM80L,EAEtB,CACQ,OAAOF,EAAe50L,EAAO,KAAK,eAAe,2BAA2B2Y,CAAK,EAAI3Y,CAC7F,CAQI,MAAM,qBAAqBgV,EAAM2D,EAAO,CACpC,OAAO,MAAM,KAAK,eAAeA,EAAQ,GAAK3D,EAAK2D,EAAQ,CAAC,EAAG3D,EAAM2D,EAAQ,CAAC,CACtF,CAUI,MAAM,gBAAgB7C,EAAMd,EAAM2D,EAAO3O,EAAS,CAC9C,MAAM+qL,EAAU,CAAE,EAClB,UAAW/0L,KAAO8V,EACdi/K,EAAQ,MAAM,KAAK,eAAe/0L,EAAKgV,EAAM2D,EAAQ,EAAG,GAAM3O,CAAO,CAAC,EAAI8L,EAAK9V,CAAG,EAEtF,OAAO+0L,CACf,CAUI,MAAM,UAAU//K,EAAM2D,EAAO,CACzB,QAASj0B,EAAIi0B,EAAOj0B,GAAK,EAAGA,IAAK,CAC7B,GAAI,MAAM,KAAK,eAAeswB,EAAKtwB,CAAC,EAAGswB,EAAMtwB,CAAC,IAAM,cAEhD,MAAO,GAEX,GAAI,KAAK,eAAe,aAAaA,CAAC,GAAK,KAAK,eAAe,iBAAiBA,CAAC,EAC7E,MAAO,EAEvB,CACQ,MAAO,EACf,CAQI,MAAM,oBAAoBi0B,EAAO3D,EAAM,CACnC,QAAStwB,EAAIi0B,EAAQ,EAAGj0B,EAAI,EAAGA,IAC3B,GAAI,MAAM,KAAK,eAAeswB,EAAKtwB,CAAC,EAAGswB,EAAMtwB,CAAC,IAAM,SAAU,CAE1D,MAAM+rM,GAAc,MAAMsC,EAAwB,sBAAsB,oBAAoB,KAAK,eAAgB/9K,EAAMtwB,CAAC,GAAG,WAC3H,OAAIquM,EAAwB,sBAAsB,wBAAwBtC,CAAU,EACzE,GAEJ93K,EAAQj0B,EAAI,CACnC,CAEQ,MAAO,EACf,CAMI,uBAAuB8sB,EAAS,CAC5B,GAAIA,EAAQ,WAAa,UACrB,MAAM,IAAIohF,EAAwB,WAAW,8CAA8CphF,EAAQ,KAAK,GAAIohF,EAAwB,YAAY,8BAA8B,CAE1L,CAKI,iBAAkB,CACd,OAAO,KAAK,eAAe,cAAgB,KAAK,YAAY,aAAc,CAClF,CAOI,MAAM,uBAAuB59E,EAAM2D,EAAO,CAEtC,IAAIwc,EAAQ,KAAK,gBAAiB,EAElC,KAAM,CAAE,WAAAs7J,EAAY,MAAOuE,CAAgB,EAAG,MAAMjC,EAAwB,sBACvE,oBAAoB,KAAK,eAAgB/9K,EAAM2D,CAAK,EACzD,GAAI,WAAY83K,EAAY,CAExB,MAAMwE,EAAsBlC,EAAwB,sBAAsB,uBAAuBtC,EAAYuE,EAAgBhgL,CAAI,EAC3HT,EAAQ,KAAK,eAAe,wBAAwBygL,CAAc,EAGxE,GAFA7/J,EAAQ5gB,EAAQA,EAAM0gL,CAAmB,EAAI,KAEzC,CAAC9/J,EAAO,CACR,IAAI8kG,EAAU,KACd,GAAI,QAASw2D,EAAY,CACrB,MAAMyE,EAAe,MAAM,KAAK,gBAAgBlgL,EAAKggL,CAAc,EAAGhgL,EAAMggL,CAAc,EACtFE,IAAiB,OACjBj7D,EAAU,MAAM,KAAK,eAAe,MAAM,KAAK,eAAe,WAAWjlH,CAAI,EAAGkgL,CAAY,EAEpH,CACqBj7D,IACDA,EAAU,KAAK,YAAY,UAAW,GAErC,KAAK,eAAe,wBAAwB+6D,CAAc,IAC3D,KAAK,eAAe,wBAAwBA,CAAc,EAAI,CAAE,GAEpE7/J,EAAQ,KAAK,eAAe,wBAAwB6/J,CAAc,EAAEC,CAAmB,EAAIh7D,CAC3G,CACA,CACQ,OAAO9kG,CACf,CAeI,MAAM,mBAAmBngB,EAAM2D,EAAO,CAClC,IAAIw8K,EAAiBx8K,EACrB,QAASj0B,EAAIi0B,EAAQ,EAAGj0B,EAAI,EAAGA,IAC3B,GAAI,OAAOswB,EAAKtwB,CAAC,GAAM,SAAU,CAC7B,MAAMgtM,EAAY,MAAM,KAAK,eAAe18K,EAAKtwB,CAAC,EAAGswB,EAAMtwB,CAAC,EAC5D,GAAIgtM,IAAc,WACd,OAAOhtM,EAEN,GAAIgtM,IAAc,QACnByD,EAAiBzwM,MAGjB,QAAOywM,CAE3B,CAEQ,OAAOA,CACf,CASI,MAAM,gBAAgBn1L,EAAKgV,EAAM2D,EAAO,CACpC,MAAMu8K,EAAe,MAAM,KAAK,eAAel1L,EAAKgV,EAAM2D,CAAK,EAC/D,OAAOu8K,IAAiB,QAAU,KAAOA,CACjD,CAOI,8BAA8Bl1L,EAAKqU,EAAS28K,EAAY,CACpD,GAAIA,GAAc38K,GAAW,CAAC,KAAK,eAAe,yBAC9C,MAAM,IAAIu+E,EAAwB,WAAW,gDAAgD5yF,CAAG,GAAI4yF,EAAwB,YAAY,qBAAqB,CAEzK,CAWI,gBAAgBj6E,EAAOnH,EAASyF,EAAWlC,EAAQogB,EAAO9gB,EAAS28K,EAAY,CAE3E,IAAI3hJ,EASJ,GARIh7B,GACA,KAAK,uBAAuBU,CAAM,EAClCs6B,EAAO,KAAK,YAAY,KAAKt6B,EAAQkC,EAAWzF,EAAS2jB,CAAK,GAG9Dka,EAAO,KAAK,YAAY,KAAK79B,EAASyF,EAAWlC,EAAQogB,CAAK,EAG9D67J,EAAY,CAMZ,GAJI3hJ,EAAK,MAAM,WAAa,iBACxBA,EAAO,KAAK,YAAY,KAAKA,EAAK,QAASA,EAAK,UAAWA,EAAK,MAAM,GAGtE,KAAK,eAAe,QAAQ12B,EAAQ,CAAC,EACrC,MAAM,IAAIi6E,EAAwB,WAAW,kDAAmDA,EAAwB,YAAY,qBAAqB,EAE7J,KAAK,eAAe,QAAQj6E,EAAQ,CAAC,EAAI,CAAC02B,CAAI,CAC1D,MAEY,KAAK,eAAe,SAAS12B,EAAO02B,CAAI,EAG5C,MAAMgiJ,EAAoB,KAAK,eAAe,kBAAkB14K,CAAK,EACrE,GAAI04K,EAAmB,CACnB,UAAWxnJ,KAAcwnJ,EACrB,KAAK,eAAe14K,EAAO02B,EAAMxF,CAAU,EAE/C,OAAO,KAAK,eAAe,kBAAkBlxB,CAAK,CAC9D,CACA,CAEI,eAAeA,EAAO02B,EAAMxF,EAAY,CAEpC,IAAIurJ,EACAvrJ,EAAW,SACX,KAAK,uBAAuBA,EAAW,MAAM,EAC7CurJ,EAAiB,KAAK,YAAY,KAAKvrJ,EAAW,OAAQA,EAAW,UAAWwF,CAAI,GAGpF+lJ,EAAiB,KAAK,YAAY,KAAK/lJ,EAAMxF,EAAW,UAAWA,EAAW,MAAM,EAGxF,KAAK,eAAe,SAASlxB,EAAOy8K,CAAc,EAElD,UAAWC,KAAoBxrJ,EAAW,kBACtC,KAAK,eAAelxB,EAAOy8K,EAAgBC,CAAgB,CAEvE,CACA,CACA,OAAAriJ,EAAK,IAAM,oCACXA,EAAK,YAAcA,EAAK,IAAM,UAC9BA,EAAK,YAAcA,EAAK,IAAM,UAC9BA,EAAK,WAAaA,EAAK,IAAM,SAC7BA,EAAK,IAAM,8CACXg8C,OAAA,KAAeh8C,+LC14Bf,OAAO,eAAesiJ,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMtmG,EAA2B9jE,cAAA,EAC3B0nE,EAA0D1jE,6BAAA,EAIhE,IAAAqmK,EAAA,KAA6B,CACzB,mBAAoB,CAChB,MAAO,EACf,CACI,kBAAmB,CACf,MAAO,EACf,CACI,MAAM,SAAS7E,EAAgB99I,EAAM59B,EAAM2D,EAAO64K,EAAY,CAC1D,OAAO,KAAK,KAAKd,EAAgB99I,EAAM,KAAM59B,EAAM2D,CAAK,CAChE,CACI,MAAM,KAAK+3K,EAAgB99I,EAAM5yC,EAAKgV,EAAM2D,EAAO,CAC/C,OAAO,OAAO3D,EAAK2D,CAAK,GAAM,QACtC,CACI,MAAM,OAAO+3K,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,CACxD,IAAI+4K,EAAY,MAAM9+I,EAAK,qBAAqB59B,EAAM2D,CAAK,EAE3D,GAAI+4K,IAAc,QAAS,CAGvB,IAAI8D,EAAc,KACdC,EAAgB,EACpB,QAAS/wM,EAAIi0B,EAAQ,EAAGj0B,EAAI,EAAGA,IAAK,CAChC,MAAMgxM,EAAY1gL,EAAKtwB,CAAC,EACxB,GAAI,OAAOgxM,GAAc,UAAY,OAAOA,GAAc,SAAU,CAChED,EAAgB/wM,EAChB8wM,EAAcE,EACd,KACpB,CACA,CACY,GAAIF,IAAgB,KAAM,CAEtB,MAAMn9K,EAAS,MAAMu6B,EAAK,YAAY,MAAM89I,EAAe,WAAW17K,CAAI,EAAGwgL,EAAa71L,EAAOgZ,EAAO3D,CAAI,EAC5G,UAAWD,KAAUsD,EACjB,MAAM,KAAK,kBAAkBq4K,EAAgB99I,EAAM79B,EAAQpV,EAAOgZ,EAAO3D,EAAK,MAAM,EAAGygL,CAAa,EAAGA,CAAa,EAGpHp9K,EAAO,SAAW,GAClB,MAAM,KAAK,kBAAkBq4K,EAAgB99I,EAAM,KAAMjzC,EAAOgZ,EAAO3D,EAAK,MAAM,EAAGygL,CAAa,EAAGA,CAAa,CAEtI,CACA,SACiB/D,IAAc,OAEnB,MAAMhB,EAAe,cAAc17K,EAAK,MAAM,EAAG,EAAE,EAAGrV,EAAOgZ,EAAQ,EAAG,EAAK,UAExE+4K,IAAc,QAAaA,IAAc,QAAS,CAKvD,QAAShtM,EAAIi0B,EAAQ,EAAGj0B,EAAI,EAAGA,IAC3B,GAAI,OAAOswB,EAAKtwB,CAAC,GAAM,SAAU,CAC7BgtM,EAAY,MAAM9+I,EAAK,eAAe59B,EAAKtwB,CAAC,EAAGswB,EAAMtwB,CAAC,EACtD,KACpB,CAGY,MAAM+sG,EAAgB,MAAMi/F,EAAe,WAAW17K,EAAK,MAAM,EAAG,EAAE,CAAC,EACvE,GAAI,UAAWg6E,EAAO,KAAK,yBAAyByC,EAAeigG,CAAS,EAAG,CAG3EhB,EAAe,aAAa/3K,EAAQ,CAAC,EAAI,GACzC,MAAMN,EAAS,MAAMu6B,EAAK,YAAY,MAAM89I,EAAe,WAAW17K,CAAI,EAAG08K,EAAW/xL,EAAOgZ,EAAO3D,CAAI,EAC1G,UAAWD,KAAUsD,EACjB,MAAM,KAAK,kBAAkBq4K,EAAgB99I,EAAM79B,EAAQpV,EAAOgZ,EAAO3D,EAAK,MAAM,EAAG,EAAE,EAAG2D,EAAQ,CAAC,EAGrGN,EAAO,SAAW,GAClB,MAAM,KAAK,kBAAkBq4K,EAAgB99I,EAAM,KAAMjzC,EAAOgZ,EAAO3D,EAAK,MAAM,EAAG,EAAE,EAAG2D,EAAQ,CAAC,CAEvH,MAGgB+3K,EAAe,WAAW/3K,EAAO,CAAC,EAElC,MAAM+3K,EAAe,cAAc17K,EAAK,MAAM,EAAG,EAAE,EAAGrV,EAAOgZ,EAAQ,EAAG,EAAK,EAE7E+3K,EAAe,YAAY,cAAc17K,EAAK,MAAM,EAAG,EAAE,CAAC,CAE1E,CACA,CACI,MAAM,kBAAkB07K,EAAgB99I,EAAMjzC,EAAOg2L,EAAeh9K,EAAOi9K,EAAcH,EAAe,CAEpG,IAAI5D,EAAcnB,EAAe,iBAAiB/3K,CAAK,EACvD,GAAIg9K,IAAkB,OAAS,MAAM/iJ,EAAK,gBAAgB+iJ,EAAeC,EAAcj9K,CAAK,GAAG,QAAQ,IAAM,KAAM,CAC/G,GAAI,CAACk5K,GAAe,CAACA,EAAY,MAAO,CACpC,MAAM/oD,EAAWl2F,EAAK,YAAY,UAAW,EAC7Ci/I,EAAc,CAAE,MAAO/oD,EAAU,cAAA2sD,EAAe,OAAQ3sD,CAAU,CAClF,KACiB,CAID,MAAM+sD,EAAcjjJ,EAAK,YAAY,UAAW,EAChD89I,EAAe,SAAS/3K,EAAOi6B,EAAK,YAAY,KAAKi/I,EAAY,MAAOj/I,EAAK,QAASijJ,EAAajjJ,EAAK,gBAAiB,CAAA,CAAC,EAE1Hi/I,EAAY,MAAQgE,CACpC,CAGgBl2L,GACA+wL,EAAe,SAAS/3K,EAAOi6B,EAAK,YAAY,KAAKi/I,EAAY,MAAOj/I,EAAK,SAAUjzC,EAAOizC,EAAK,gBAAiB,CAAA,CAAC,CAErI,MAIiBi/I,IACDA,EAAc,CAAE,cAAA4D,EAAe,OAAQ7iJ,EAAK,MAAQ,GAG5D89I,EAAe,iBAAiB/3K,CAAK,EAAIk5K,EAErCnB,EAAe,SAAWA,EAAe,kBAAkB/3K,CAAK,GAChE+3K,EAAe,UAAU,IAAI99F,EAAwB,WAAW,4CAA6CA,EAAwB,YAAY,kBAAkB,CAAC,CAEhL,CACA,EACA0iG,8BAAA,uBAAiCQ,uQC7HjC,OAAO,eAAeC,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OAKtC,IAAAC,EAAA,KAAkC,CAC9B,mBAAoB,CAChB,MAAO,EACf,CACI,kBAAmB,CACf,MAAO,EACf,CACI,MAAM,SAAStF,EAAgB99I,EAAM59B,EAAM2D,EAAO64K,EAAY,CAC1D,MAAO,EACf,CACI,MAAM,KAAKd,EAAgB99I,EAAM5yC,EAAKgV,EAAM2D,EAAO,CAC/C,MAAO,EACf,CACI,MAAM,OAAO+3K,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,CACxD+3K,EAAe,aAAa/3K,CAAK,EAAI,EAC7C,CACA,EACAo9K,mCAAA,4BAAsCE,0PCvBtC,OAAO,eAAeC,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAI9B,IAAAC,EAAA,KAA0B,CACtB,YAAYxwL,EAAS,CACjB,KAAK,QAAUA,CACvB,CACI,mBAAoB,CAChB,MAAO,EACf,CACI,kBAAmB,CACf,MAAO,EACf,CACI,MAAM,SAAS+qL,EAAgB99I,EAAM59B,EAAM2D,EAAO64K,EAAY,CAC1D,MAAO,EACf,CACI,MAAM,KAAKd,EAAgB99I,EAAM5yC,EAAKgV,EAAM2D,EAAO,CAC/C,OAAO3Y,IAAQ,KAAK,OAC5B,CACA,EACAk2L,2BAAA,oBAA8BE,gOCtB9B,OAAO,eAAeC,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMzjG,EAA0D1nE,6BAAA,EAC1DgrK,EAAwDhnK,2BAAA,EAI9D,IAAAonK,EAAA,cAAyCJ,EAAsB,mBAAoB,CAC/E,aAAc,CACV,MAAM,UAAU,CACxB,CACI,kBAAmB,CACf,MAAO,EACf,CACI,MAAM,OAAOxF,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,CAEpD+3K,EAAe,mBACXA,EAAe,gBAAgB/3K,CAAK,GACjC+3K,EAAe,eAAe/3K,CAAK,GACnC+3K,EAAe,QAAQ/3K,CAAK,IAAM,SACzC+3K,EAAe,UAAU,IAAI99F,EAAwB,WAAW,yFAC5BA,EAAwB,YAAY,2BAA2B,CAAC,EAKxG,MAAMnB,EAAgBi/F,EAAe,WAAW17K,CAAI,EAE9ChL,EAAU0mL,EAAe,aAAa/wL,GAAQ,MAAM8xF,GAAe,eAAe,EACxFi/F,EAAe,YAAY,WAAW17K,EAAK,MAAM,EAAG,EAAE,EAAGhL,CAAO,EAChE0mL,EAAe,YAAY/wL,CAAK,EAChC,MAAM+wL,EAAe,gBAAgB,MAAM1mL,CAAO,CAC1D,CACA,EACAqsL,kCAAA,2BAAqCE,yPClCrC,OAAO,eAAeC,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMN,EAAwDhrK,2BAAA,EAI9D,IAAAurK,EAAA,cAAuCP,EAAsB,mBAAoB,CAC7E,aAAc,CACV,MAAM,QAAQ,CACtB,CACI,MAAM,OAAOxF,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,CAExD+3K,EAAe,WAAW/3K,EAAQ,CAAC,EAAI,EAC/C,CACA,EACA69K,gCAAA,yBAAmCE,qOCfnC,OAAO,eAAeC,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAM/jG,EAA0D1nE,6BAAA,EAC1DgrK,EAAwDhnK,2BAAA,EAI9D,IAAA0nK,EAAA,cAAoCV,EAAsB,mBAAoB,CAC1E,aAAc,CACV,MAAM,KAAK,CACnB,CACI,kBAAmB,CACf,MAAO,EACf,CACI,MAAM,OAAOxF,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,CACxD,GAAI,OAAOhZ,GAAU,SAAU,CAE3B,GAAI+wL,EAAe,SAAW,OAAO/wL,GAAU,SAAU,CACrD,MAAMk3L,EAAY,OAAO,KAAKl3L,CAAK,EAC/Bk3L,EAAU,SAAW,GAAKA,EAAU,CAAC,IAAM,OAC3CnG,EAAe,UAAU,IAAI99F,EAAwB,WAAW,mDAAmDjzF,EAAM,KAAK,CAAC,GAAIizF,EAAwB,YAAY,qBAAqB,CAAC,CAEjN,MAEgB89F,EAAe,UAAU,IAAI99F,EAAwB,WAAW,sBAAsBjzF,CAAK,IAAKizF,EAAwB,YAAY,gBAAgB,CAAC,EAEzJ,MACZ,CAGQ,MAAMs+F,EAAkB,MAAMt+I,EAAK,mBAAmB59B,EAAM2D,CAAK,EAcjE,GAZI+3K,EAAe,QAAQQ,CAAe,IAAM,SACxCR,EAAe,QAAQQ,CAAe,EAAE,CAAC,EAAE,SAE3CR,EAAe,UAAU,IAAI99F,EAAwB,WAAW,8DAA8D59E,EAAK2D,EAAQ,CAAC,CAAC,IAAKi6E,EAAwB,YAAY,0BAA0B,CAAC,EAIjN89F,EAAe,UAAU,IAAI99F,EAAwB,WAAW,yBAAyB89F,EACpF,QAAQQ,CAAe,EAAE,CAAC,EAAE,KAAK,UAAUvxL,CAAK,IAAKizF,EAAwB,YAAY,kBAAkB,CAAC,GAIrH89F,EAAe,SAAWA,EAAe,kBAAkB/3K,CAAK,EAChE,UAAWkxB,KAAc6mJ,EAAe,kBAAkB/3K,CAAK,EACvDkxB,EAAW,QAAUlxB,GACrB+3K,EAAe,UAAU,IAAI99F,EAAwB,WAAW,8CAA8CjzF,CAAK,GAAIizF,EAAwB,YAAY,kBAAkB,CAAC,EAK1L89F,EAAe,QAAQQ,CAAe,EAAIt+I,EAAK,oBAAoB,MAAMA,EAAK,eAAe,MAAM89I,EAAe,WAAW17K,CAAI,EAAGrV,CAAK,CAAC,CAClJ,CACA,EACAg3L,6BAAA,sBAAgCG,sQCvDhC,OAAO,eAAeC,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMnkG,EAA0D1nE,6BAAA,EAC1DgrK,EAAwDhnK,2BAAA,EAI9D,IAAA8nK,EAAA,cAA0Cd,EAAsB,mBAAoB,CAChF,aAAc,CACV,MAAM,WAAW,CACzB,CACI,MAAM,OAAOxF,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,CACpD,OAAOhZ,GAAU,UACjB+wL,EAAe,UAAU,IAAI99F,EAAwB,WAAW,4BAA4BjzF,CAAK,IAAKizF,EAAwB,YAAY,sBAAsB,CAAC,EAErK,MAAMqkG,EAAgB,MAAMrkJ,EAAK,gBAAgBjzC,EAAOqV,EAAM2D,EAAO,MAAM+3K,EAAe,WAAW17K,CAAI,CAAC,EACtG,WAAYiiL,GACZvG,EAAe,UAAU,IAAI99F,EAAwB,WAAW,2CAA2C,KAAK,UAAUjzF,CAAK,CAAC,IAAKizF,EAAwB,YAAY,sBAAsB,CAAC,EAEhM,UAAWqkG,GACXvG,EAAe,UAAU,IAAI99F,EAAwB,WAAW,0CAA0C,KAAK,UAAUjzF,CAAK,CAAC,IAAKizF,EAAwB,YAAY,sBAAsB,CAAC,EAEnM89F,EAAe,aAAa/3K,CAAK,EAAI,EAC7C,CACA,EACAo+K,mCAAA,4BAAsCG,oPCzBtC,OAAO,eAAeC,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMvkG,EAA0D1nE,6BAAA,EAC1DgrK,EAAwDhnK,2BAAA,EAI9D,IAAAkoK,EAAA,cAAsClB,EAAsB,mBAAoB,CAC5E,aAAc,CACV,MAAM,OAAO,CACrB,CACI,MAAM,OAAOxF,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,CACpD,OAAOhZ,GAAU,UACjB+wL,EAAe,UAAU,IAAI99F,EAAwB,WAAW,kCAAkC5yF,CAAG,OAAOL,CAAK,IAAKizF,EAAwB,YAAY,kBAAkB,CAAC,EAE7K,WAAY,MAAMhgD,EAAK,gBAAgBjzC,EAAOqV,EAAM2D,EAAO,MAAM+3K,EAAe,WAAW17K,CAAI,CAAC,GAChG07K,EAAe,UAAU,IAAI99F,EAAwB,WAAW,qCAAqC5yF,CAAG,IAAK4yF,EAAwB,YAAY,kBAAkB,CAAC,EAExK89F,EAAe,aAAa/3K,CAAK,EAAI,EAC7C,CACA,EACAw+K,+BAAA,wBAAkCE,gPCrBlC,OAAO,eAAeC,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAM1kG,EAA0D1nE,6BAAA,EAC1D8jE,EAA8B9/D,cAAA,EAC9B2hK,EAA6D1hK,6BAAA,EAC7D+mK,EAAwD9mK,2BAAA,EAI9D,IAAAmoK,EAAA,cAAsCrB,EAAsB,mBAAoB,CAC5E,aAAc,CACV,MAAM,OAAO,CACrB,CACI,kBAAmB,CACf,MAAO,EACf,CACI,MAAM,OAAOxF,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,CACxD,MAAM84K,EAAcz8K,EAAK2D,CAAK,EAIxB3O,EAAU,MAAM0mL,EAAe,WAAW17K,CAAI,EAC9CiC,EAAY27B,EAAK,QACjB8+I,EAAY,MAAM9+I,EAAK,qBAAqB59B,EAAM2D,CAAK,EACvDtE,EAAU26E,EAAO,KAAK,kBAAkBhlF,EAASynL,EAAaC,CAAS,EACvEV,EAAahiG,EAAO,KAAK,yBAAyB0iG,CAAS,EACjE9+I,EAAK,8BAA8B5yC,EAAKqU,EAAS28K,CAAU,EAC3D,MAAMC,EAAejiG,EAAO,KAAK,6BAA6B0iG,CAAS,EAEjE7hJ,EAAW,MAAM,QAAQlwC,CAAK,EAAIA,EAAQ,CAACA,CAAK,EACtD,UAAWmO,KAAW+hC,EAAU,CACxB,OAAO/hC,GAAY,UACnB4iL,EAAe,UAAU,IAAI99F,EAAwB,WAAW,wBAAwB9kF,CAAO,IAAK8kF,EAAwB,YAAY,kBAAkB,CAAC,EAE/J,MAAMrzF,EAAOqzC,EAAK,sBAAsB5oC,EAAS8D,CAAO,EACpDvO,GACA,MAAMsxL,EAAwB,sBAAsB,sBAAsBH,EAAgB99I,EAAM59B,EAAM2D,EAAO1B,EAAW1X,EAAM8U,EAAS28K,EAAYC,CAAY,CAE/K,CAEQ,IAAIuG,EAAgB,QAAQ,QAAQxtL,CAAO,EACvCytL,EAAwB,GAC5B,UAAW3pL,KAAW+hC,EAAS,OAAQ,CACnC,MAAM6nJ,EAAc1oG,EAAO,KAAK,gBAAgBhlF,EAAS,WAAY8D,EAAS,IAAI,EAC9E4pL,IACAD,EAAwB,GACxBD,EAAgBA,EAAc,KAAMxyM,GAAM0rM,EAAe,aAAagH,EAAa1yM,EAAE,cAAa,CAAE,CAAC,EAErH,CAEY0rM,EAAe,mBACX+G,GAAyB,CAAC/G,EAAe,4CACzCA,EAAe,gBAAgB/3K,CAAK,GAAK+3K,EAAe,QAAQ/3K,CAAK,IACzE+3K,EAAe,UAAU,IAAI99F,EAAwB,WAAW,qGAC5BA,EAAwB,YAAY,2BAA2B,CAAC,EAGpG6kG,IAEAD,EAAgBA,EAAc,KAAMxyM,GAI5BA,EAAE,cAAa,EAAG,YAAY,IAAM,GAC7B,IAAI4tG,EAAwB,wBAAwB,OAAO,OAAO,OAAO,OAAO,GAAI5tG,EAAE,eAAe,EAAG,CAAE,aAAc,GAAO,uBAAwBglB,EAAQ,cAAe,CAAA,CAAE,CAAC,EAErLhlB,CACV,EAED0rM,EAAe,YAAY,WAAW17K,EAAK,MAAM,EAAGA,EAAK,OAAS,CAAC,EAAGwiL,CAAa,GAGvF9G,EAAe,eAAe/3K,CAAK,EAAI,EAC/C,CACA,EACA2+K,+BAAA,wBAAkCK,kTC3ElC,OAAO,eAAeC,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAMhlG,EAA0D1nE,6BAAA,EAKhE,IAAA2sK,EAAA,MAAMC,EAAmC,CACrC,mBAAoB,CAChB,MAAO,EACf,CACI,kBAAmB,CACf,MAAO,EACf,CACI,MAAM,SAASpH,EAAgB99I,EAAM59B,EAAM2D,EAAO64K,EAAY,CAC1D,MAAMxxL,EAAM,MAAM4yC,EAAK,eAAe59B,EAAK2D,CAAK,EAAG3D,EAAM2D,CAAK,EAC9D,OAAIi6E,EAAwB,KAAK,mBAAmB5yF,CAAG,EAE/C,GAACwxL,GACGxxL,IAAQ,SAMb,EACf,CACI,MAAM,KAAK0wL,EAAgB99I,EAAM5yC,EAAKgV,EAAM2D,EAAO,CAC/C,OAAOi6E,EAAwB,KAAK,mBAAmB5yF,CAAG,CAClE,CACI,MAAM,OAAO0wL,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,CACxD,MAAMo/K,EAAcD,GAAmC,qBAAqB93L,CAAG,EAC3E+3L,IAAgB,OACZA,GAAe,OAAOp4L,IAAUo4L,EAAY,MAC5CrH,EAAe,UAAU,IAAI99F,EAAwB,WAAW,2BAA2B5yF,CAAG,iBAAiBL,CAAK,IAAKo4L,EAAY,SAAS,CAAC,EAG9IrH,EAAe,cACpBA,EAAe,UAAU,IAAI,MAAM,oBAAoB1wL,CAAG,iBAAiBL,CAAK,GAAG,CAAC,EAExF+wL,EAAe,aAAa/3K,CAAK,EAAI,EAC7C,CACA,EACAm/K,OAAAA,EAAmC,qBAAuB,CACtD,SAAU,CAAE,KAAM,SAAU,UAAWllG,EAAwB,YAAY,mBAAqB,EAChG,QAAS,KACT,WAAY,CAAE,KAAM,SAAU,UAAWA,EAAwB,YAAY,qBAAuB,EACpG,OAAQ,KACR,SAAU,IACb,EACDglG,mCAAA,mCAA6CE,iQClD7C,OAAO,eAAeE,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAM9B,EAAwDhrK,2BAAA,EAI9D,IAAA+sK,EAAA,cAAuC/B,EAAsB,mBAAoB,CAC7E,aAAc,CACV,MAAM,QAAQ,CACtB,CACI,MAAM,SAASxF,EAAgB99I,EAAM59B,EAAM2D,EAAO64K,EAAY,CAE1D,MAAMxxL,EAAMgV,EAAK2D,CAAK,EACtB,OAAI3Y,GAAO,CAAC0wL,EAAe,aAAa/3K,CAAK,GAAK,MAAM,KAAK,KAAK+3K,EAAgB99I,EAAM5yC,EAAKgV,EAAM2D,CAAK,IACpG+3K,EAAe,aAAa/3K,CAAK,EAAI,IAElC,MAAM,SAAS+3K,EAAgB99I,EAAM59B,EAAM2D,EAAO64K,CAAU,CAC3E,CACI,MAAM,KAAKd,EAAgB99I,EAAM5yC,EAAKgV,EAAM2D,EAAO,CAC/C,OAAO,MAAMi6B,EAAK,eAAe59B,EAAK2D,CAAK,EAAG3D,EAAK,MAAM,EAAGA,EAAK,OAAS,CAAC,EAAG2D,EAAQ,EAAG,EAAI,IAAM,QAC3G,CACI,MAAM,OAAO+3K,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,CAMxD+3K,EAAe,aAAa/3K,CAAK,EAAI,GAErC,OAAO+3K,EAAe,yBAAyB/3K,CAAK,EACpD,OAAO+3K,EAAe,yBAAyB/3K,CAAK,EAEpD+3K,EAAe,aAAa/3K,CAAK,EAAI,EAC7C,CACA,EACAq/K,gCAAA,yBAAmCE,2LCnCnC,OAAO,eAAeC,YAAS,aAAc,CAAE,MAAO,GAAM,EACzCA,YAAA,YAAG,OAOtB,IAAAC,EAAA,MAAMC,EAAY,CACd,aAAc,CACV,KAAK,SAAW,CAAE,CAC1B,CACI,WAAWrjL,EAAM,CACb,GAAIA,EAAK,OAAS,EAAG,CACjB,KAAM,CAACkN,EAAM,GAAG5B,CAAI,EAAItL,EAClB8vG,EAAU,KAAK,SAAS5iG,CAAI,EAClC,GAAI4iG,EAAS,CACT,MAAMxjD,EAAawjD,EAAQ,WAAWxkG,CAAI,EAC1C,GAAIghD,EACA,OAAOA,EAAW,KAAK,CAAC,CAAE,QAAAt3D,EAAS,MAAA2O,CAAK,KAAQ,CAAE,QAAA3O,EAAS,MAAO2O,EAAQ,CAAG,EAAC,CAElG,CACA,CACQ,OAAO,KAAK,QAAU,KAAK,QAAQ,KAAM3O,IAAa,CAAE,QAAAA,EAAS,MAAO,CAAG,EAAC,EAAI,IACxF,CACI,WAAWgL,EAAMhL,EAAS,CACtB,GAAIgL,EAAK,SAAW,EAChB,KAAK,QAAUhL,MAEd,CACD,KAAM,CAACkY,EAAM,GAAG5B,CAAI,EAAItL,EACxB,IAAI8vG,EAAU,KAAK,SAAS5iG,CAAI,EAC3B4iG,IACDA,EAAU,KAAK,SAAS5iG,CAAI,EAAI,IAAIm2K,IAExCvzE,EAAQ,WAAWxkG,EAAMtW,CAAO,CAC5C,CACA,CACI,cAAckkB,EAAM,CAChB,KAAK,WAAWA,EAAM,IAAI,CAClC,CACA,EACAiqK,mBAAA,YAAsBE,4JC1CtB,OAAO,eAAeC,eAAS,aAAc,CAAE,MAAO,GAAM,EACtCA,eAAA,eAAG,OACzB,MAAM1lG,EAA0D1nE,6BAAA,EAC1DsjE,EAA8Dt/D,oBAAA,EAC9DipK,EAAwChpK,mBAAA,EACxCopK,EAA0CnpK,oBAAA,EAIhD,IAAAopK,EAAA,MAAMC,EAAe,CACjB,YAAYh4L,EAAS,CAEjB,KAAK,cAAgB,IAAImyF,EAAwB,cAAc,CAAE,eAAgBnyF,EAAQ,eAAgB,eAAgBA,EAAQ,qBAAqB,CAAE,EACxJ,KAAK,iBAAmB,CAAC,CAACA,EAAQ,iBAClC,KAAK,QAAUA,EAAQ,QACvB,KAAK,sBAAwB,CAAC,CAACA,EAAQ,sBACvC,KAAK,iBAAmB,CAAC,CAACA,EAAQ,iBAClC,KAAK,eAAiBA,EAAQ,gBAAkB83L,EAAe,aAAa,wBAC5E,KAAK,aAAe,CAAC,CAAC93L,EAAQ,aAC9B,KAAK,qBAAuB,CAAC,CAACA,EAAQ,qBACtC,KAAK,aAAeA,EAAQ,aAC5B,KAAK,aAAeA,EAAQ,aAC5B,KAAK,sBAAwBA,EAAQ,sBACrC,KAAK,yCAA2CA,EAAQ,yCACxD,KAAK,QAAUA,EAAQ,UAAY,GACnC,KAAK,yBAA2BA,EAAQ,yBACxC,KAAK,mBAAqB,GAC1B,KAAK,qBAAuB,WAAW,KAAK,cAAc,EAE1D,KAAK,gBAAkB,CAAE,EACzB,KAAK,eAAiB,CAAE,EACxB,KAAK,aAAe,CAAE,EACtB,KAAK,QAAU,CAAE,EACjB,KAAK,WAAa,CAAE,EACpB,KAAK,wBAA0B,CAAE,EACjC,KAAK,iBAAmB,CAAE,EAC1B,KAAK,YAAc,IAAI03L,EAAc,YACrC,KAAK,aAAe,CAAE,EACtB,KAAK,gBAAkB,CAAE,EACzB,KAAK,2BAA6B,CAAE,EACpC,KAAK,iBAAmB,CAAE,EAC1B,KAAK,yBAA2B,CAAE,EAClC,KAAK,yBAA2B,CAAE,EAClC,KAAK,kBAAoB,CAAE,EAC3B,KAAK,6BAA+B,CAAE,EACtC,KAAK,OAAS13L,EAAQ,OAClBA,EAAQ,SACR,KAAK,YAAc,KAAK,aAAaA,EAAQ,OAAO,EACpD,KAAK,YAAY,KAAMuJ,GAAY,KAAK,gBAAgBA,CAAO,CAAC,GAGhE,KAAK,YAAc,QAAQ,QAAQ,IAAI4oF,EAAwB,wBAAwB,KAAK,QAAU,CAAE,QAAS,KAAK,QAAS,kBAAmB,EAAI,EAAK,CAAA,CAAE,CAAC,CAE1K,CAQI,MAAM,aAAa5oF,EAASynF,EAAeG,EAAkB,CACzD,OAAO,KAAK,cAAc,MAAM5nF,EAAS,CACrC,QAAS,KAAK,QACd,iBAAA4nF,EACA,sBAAuB,KAAK,sBAC5B,cAAAH,EACA,eAAgB,KAAK,oBACjC,CAAS,CACT,CAMI,gBAAgBznF,EAAS,CACrB,MAAM0uL,EAAgB1uL,EAAQ,cAAa,EAAG,UAAU,EACxD,GAAI0uL,EAAe,CACf,GAAI,KAAK,sBAAwBA,EAAgB,KAAK,qBAClD,MAAM,IAAIlqG,EAAa,WAAW,gCAAgCkqG,CAAa,kCAAkC,KAAK,oBAAoB,IAAKlqG,EAAa,YAAY,wBAAwB,EAGhM,GAAI,KAAK,sBAAwBkqG,EAAgB,KAAK,qBAClD,MAAM,IAAIlqG,EAAa,WAAW,2BAA2BkqG,CAAa,iCAAiC,KAAK,oBAAoB,IAAKlqG,EAAa,YAAY,qBAAqB,EAE3L,KAAK,qBAAuBkqG,CAE5C,CACA,CAOI,MAAM,WAAW1jL,EAAMzS,EAAS,EAAG,CAC/B,MAAMo2L,EAAe3jL,EAErB,KAAO,OAAOA,EAAKA,EAAK,OAAS,CAAC,GAAM,UACpCA,EAAOA,EAAK,MAAM,EAAGA,EAAK,OAAS,CAAC,EAGpCzS,IACAyS,EAAOA,EAAK,MAAM,EAAG,CAACzS,CAAM,GAGhC,MAAMq2L,EAAc,MAAM,KAAK,2BAA2B5jL,CAAI,EAG9D,IAAIy6E,EAFYmpG,EAAY,QAEH,cAAe,EACxC,QAASl0M,EAAIk0M,EAAY,MAAOl0M,EAAIi0M,EAAa,OAASp2L,EAAQ7d,IAAK,CACnE,MAAMsb,EAAM24L,EAAaj0M,CAAC,EACpB6vM,EAAkB9kG,EAAWzvF,CAAG,EACtC,GAAIu0L,GAAmB,OAAOA,GAAoB,UAAY,aAAcA,EAAiB,CACzF,MAAMiD,GAAiB,MAAM,KAAK,aAAajD,EAAiB9kG,EAAY,EAAI,GAAG,cAAe,EAC5FopG,EAAY,EAAE74L,KAAOw3L,IACpBA,EAAcx3L,CAAG,EAAE,UAAU,EAAE,YAAY,GAC9C64L,IAAc,IAASn0M,IAAMi0M,EAAa,OAAS,EAAIp2L,KACvDktF,EAAa,OAAO,OAAO,CAAA,EAAI+nG,CAAa,EAE5C,OAAO/nG,EAAW,YAAY,EAC9BA,EAAWzvF,CAAG,EAAI,OAAO,OAAO,GAAIyvF,EAAWzvF,CAAG,CAAC,EAC/C,QAASu0L,IACT9kG,EAAWzvF,CAAG,EAAE,KAAK,EAAIu0L,EAAgB,KAAK,GAElD,OAAO9kG,EAAWzvF,CAAG,EAAE,UAAU,EAC7B64L,IAAc,IACd,KAAK,YAAY,WAAWF,EAAa,MAAM,EAAGj0M,EAAI6d,CAAM,EAAG,QAAQ,QAAQ,IAAIqwF,EAAwB,wBAAwBnD,CAAU,CAAC,CAAC,EAGvK,CACA,CACQ,OAAO,IAAImD,EAAwB,wBAAwBnD,CAAU,CAC7E,CAaI,MAAM,2BAA2Bz6E,EAAM,CACnC,MAAM8jL,EAAgB9jL,EAAK,OAC3B,IAAI4jL,EAAc,KACdG,EACJ,EAAG,CACCA,EAAqC,GACjCH,GAAe,yBAA0BA,EAAY,QAAQ,cAAa,EAG1EA,EAAY,QAAU,IAAIhmG,EAAwB,wBAAwBgmG,EAAY,QAAQ,gBAAgB,sBAAsB,CAAC,GAGjIA,IAIA5jL,EAAOA,EAAK,MAAM,EAAG4jL,EAAY,MAAQ,CAAC,GAE9CA,EAAc,MAAM,KAAK,YAAY,WAAW5jL,CAAI,GAAK,CAAE,QAAS,MAAM,KAAK,YAAa,MAAO,CAAG,GAK1G,MAAMgkL,EAAUhkL,EAAKA,EAAK,OAAS,CAAC,EACpC,GAAIgkL,KAAWJ,EAAY,QAAQ,cAAa,EAAI,CAChD,MAAMK,EAAeL,EAAY,QAAQ,cAAa,EAAGI,CAAO,EAC5DC,GAAgB,OAAOA,GAAiB,UAAY,aAAcA,IAClEF,EAAqC,GAEzD,CACA,OAAiBH,EAAY,MAAQ,GACtBA,EAAY,QAAQ,gBAAgB,YAAY,IAAM,IACtDA,EAAY,QAAUE,GACtB,CAACC,GAGR,OAAIH,EAAY,QAAU,GACnBA,EAAY,QAAQ,cAAe,EAAC,YAAY,IAAM,IACtDA,EAAY,QAAUE,IACzBF,EAAY,QAAU,IAAIhmG,EAAwB,wBAAwB,CAAA,CAAE,GAEzEgmG,CACf,CASI,MAAM,cAAc5jL,EAAMrV,EAAOgZ,EAAOugL,EAAgB,CACpD,MAAM,KAAK,OAAO,cAAclkL,EAAMrV,EAAOgZ,EAAOugL,CAAc,CAC1E,CAKI,MAAM,oCAAqC,CACvC,GAAI,KAAK,6BAA6B,OAAS,EAAG,CAC9C,UAAWC,KAAsB,KAAK,6BAClC,MAAM,KAAK,OAAO,YAAYA,EAAmB,MAAOA,EAAmB,IAAI,EAC/E,KAAK,OAAO,YAAYA,EAAmB,KAAK,EAEpD,YAAK,6BAA6B,OAAO,EAAG,KAAK,6BAA6B,MAAM,EAC7E,EACnB,KAEY,OAAO,EAEnB,CAMI,SAASxgL,EAAO02B,EAAM,CACd12B,IAAU,IACV,KAAK,mBAAqB,IAE9B,KAAK,OAAO,KAAK02B,CAAI,CAC7B,CAKI,UAAUppC,EAAO,CACb,KAAK,OAAO,KAAK,QAASA,CAAK,CACvC,CAKI,YAAY+D,EAAS,CACjB,KAAK,OAAO,KAAK,UAAWA,CAAO,CAC3C,CAOI,+BAA+B2O,EAAO,CAClC,IAAIyvD,EAAS,KAAK,yBAAyBzvD,CAAK,EAChD,OAAKyvD,IACDA,EAAS,CAAE,EACX,KAAK,yBAAyBzvD,CAAK,EAAIyvD,GAEpCA,CACf,CAOI,+BAA+BzvD,EAAO,CAClC,IAAIyvD,EAAS,KAAK,yBAAyBzvD,CAAK,EAChD,OAAKyvD,IACDA,EAAS,CAAE,EACX,KAAK,yBAAyBzvD,CAAK,EAAIyvD,GAEpCA,CACf,CAMI,yBAAyBzvD,EAAO,CAC5B,IAAIyvD,EAAS,KAAK,kBAAkBzvD,CAAK,EACzC,OAAKyvD,IACDA,EAAS,CAAE,EACX,KAAK,kBAAkBzvD,CAAK,EAAIyvD,GAE7BA,CACf,CAII,kBAAmB,CACf,OAAOqwH,GAAe,eAAe,KAAK,oBAAoB,CACtE,CAUI,WAAW9/K,EAAO25K,EAAa,CAE3B,MAAM8G,EAAgB,KAAK,QAAQzgL,EAAQ25K,CAAW,EAOtD,GANI8G,IACA,KAAK,QAAQzgL,CAAK,EAAIygL,EACtB,KAAK,aAAazgL,CAAK,EAAI,GAC3B,OAAO,KAAK,QAAQA,EAAQ25K,CAAW,GAGvC,KAAK,6BAA6B,OAClC,UAAWlqH,KAAU,KAAK,6BAClBA,EAAO,OAASzvD,EAAQ25K,IACxBlqH,EAAO,OAASkqH,EAChBlqH,EAAO,KAAK,OAAOzvD,EAAO25K,CAAW,GAK7C,KAAK,yBAAyB35K,EAAQ25K,CAAW,IACjD,KAAK,yBAAyB35K,CAAK,EAAI,KAAK,yBAAyBA,EAAQ25K,CAAW,EACxF,OAAO,KAAK,yBAAyB35K,EAAQ25K,CAAW,GAExD,KAAK,kBAAkB35K,EAAQ25K,EAAc,CAAC,IACzC,KAAK,kBAAkB35K,EAAQ,CAAC,IACjC,KAAK,kBAAkBA,EAAQ,CAAC,EAAI,CAAE,GAE1C,KAAK,kBAAkBA,EAAQ,CAAC,EAAI,CAChC,GAAG,KAAK,kBAAkBA,EAAQ,CAAC,EACnC,GAAG,KAAK,kBAAkBA,EAAQ25K,EAAc,CAAC,CACpD,EACD,OAAO,KAAK,kBAAkB35K,EAAQ25K,EAAc,CAAC,EAGjE,CACA,EACAmG,OAAAA,EAAe,eAAiB,CAC5B,EAAK,CACD,mBAAoB,GACpB,wBAAyB,GACzB,yBAA0B,EAC7B,EACD,IAAK,CACD,mBAAoB,GACpB,wBAAyB,GACzB,yBAA0B,EAC7B,CACJ,EACDH,eAAA,eAAyBG,2QCzVzB,OAAO,eAAeY,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAMnD,EAAwDhrK,2BAAA,EACxD0nE,EAA0D1jE,6BAAA,EAIhE,IAAAoqK,EAAA,cAA4CpD,EAAsB,mBAAoB,CAClF,aAAc,CACV,MAAM,aAAa,CAC3B,CACI,MAAM,OAAOxF,EAAgB99I,EAAM5yC,EAAKgV,EAAMrV,EAAOgZ,EAAO,EAEpD,OAAOhZ,GAAU,UAAa,OAAOA,GAAU,UAAYA,EAAM,QAAQ,IACzE+wL,EAAe,UAAU,IAAI99F,EAAwB,WAAW,mCAAmC,KAAK,UAAUjzF,CAAK,CAAC,GAAIizF,EAAwB,YAAY,kBAAkB,CAAC,CAG/L,CACA,EACAymG,qCAAA,8BAAwCE,oKCnBxC,OAAO,eAAehB,aAAS,aAAc,CAAE,MAAO,GAAM,EACxCA,aAAA,aAAG,OAEvB,MAAMp2J,EAASjX,iBAA4B,EACrC0nE,EAA0D1jE,6BAAA,EAC1DgtF,EAAoB/sF,eAA0B,EAC9CmmK,EAA2ElmK,8BAAA,EAC3E2jK,EAAyE1jK,6BAAA,EACzE0mK,EAAqFzmK,mCAAA,EACrFuhK,EAAyEthK,6BAAA,EACzE8mK,EAA2F7mK,kCAAA,EAC3FgnK,EAAuF3jK,gCAAA,EACvF8jK,EAAiF7jK,6BAAA,EACjFikK,EAA6FhkK,mCAAA,EAC7FokK,EAAqFnkK,+BAAA,EACrFskK,EAAqFrkK,+BAAA,EACrF2kK,EAA2G1kK,0CAAA,EAC3G8kK,EAAuF7kK,gCAAA,EACvFmlK,EAA8CllK,sBAAA,EAC9C47D,EAA0B37D,cAAA,EAC1Bo7D,EAAqBn7D,YAA2B,EAChD+lK,EAAiG9lK,qCAAA,EAIvG,IAAAimK,EAAA,MAAMC,WAAqBv9E,EAAkB,SAAU,CACnD,YAAYz7G,EAAS,CACjB,MAAM,CAAE,mBAAoB,GAAM,EAClCA,EAAUA,GAAW,CAAE,EACvB,KAAK,QAAUA,EACf,KAAK,eAAiB,IAAI63L,EAAiB,eAAe,OAAO,OAAO,CAAE,OAAQ,IAAM,EAAE73L,CAAO,CAAC,EAClG,KAAK,KAAO,IAAIuuF,EAAO,KAAK,CAAE,YAAavuF,EAAQ,YAAa,eAAgB,KAAK,cAAc,CAAE,EACrG,KAAK,WAAa,IAAI0hC,EACtB,KAAK,YAAc,CAAE,EACrB,KAAK,SAAW,CAAE,EAClB,KAAK,oBAAsB,CAAE,EAC7B,KAAK,UAAY,EACjB,KAAK,SAAW,CAAE,EAClB,KAAK,eAAiB,QAAQ,QAAS,EACvC,KAAK,0BAA2B,EAChC,KAAK,GAAG,MAAO,IAAM,CACb,OAAO,KAAK,WAAW,KAAS,KAChC,KAAK,KAAK,QAAS,IAAI,MAAM,mBAAmB,CAAC,CAEjE,CAAS,CACT,CAgBI,OAAO,iBAAiB+K,EAASlb,EAAWy0F,EAAShmH,EAAS,CAC1D,IAAIuJ,EACA0vL,EAAsB,CAAC,2BAA2B,EAKtD,GAJIj5L,GAAWA,EAAQ,sBACnBi5L,EAAsBj5L,EAAQ,qBAG9BuxB,IAAc,uBAAyB,CAAC0nK,EAAoB,SAAS1nK,CAAS,EAAG,CAEjF,GAAIA,IAAc,oBAAsB,CAACA,EAAU,SAAS,OAAO,EAC/D,MAAM,IAAI4gE,EAAwB,WAAW,kCAAkC5gE,CAAS,GAAI4gE,EAAwB,YAAY,uBAAuB,EAgB3J,GAbI6zB,GAAWA,EAAQ,IAAI,MAAM,GAC7BA,EAAQ,QAAQ,CAAC9mH,EAAOK,IAAQ,CAC5B,GAAIA,IAAQ,OAAQ,CAChB,MAAM+uF,KAAiBN,EAAmB,OAAO9uF,CAAK,EACtD,UAAWquF,KAAQe,EAAW,IAAI,MAAO,sCAAsC,EAAG,CAC9E,GAAI/kF,EACA,MAAM,IAAI4oF,EAAwB,WAAW,uDAAyD1lD,EAAS0lD,EAAwB,YAAY,6BAA6B,EAEpL5oF,EAAUgkF,EAAK,GAC3C,CACA,CACA,CAAiB,EAED,CAAChkF,GAAW,CAAoDvJ,GAAQ,+BACxE,MAAM,IAAImyF,EAAwB,WAAW,8CAA8C5gE,CAAS,OAAOkb,CAAO,GAAI0lD,EAAwB,YAAY,uBAAuB,CAEjM,CAEQ,IAAI+mG,EACJ,GAAIlzE,GAAWA,EAAQ,IAAI,cAAc,EAAG,CACxC,MAAMkzB,EAAclzB,EAAQ,IAAI,cAAc,EACxCzkH,EAAQ,qBAAqB,KAAK23I,CAAW,EAC/C33I,GAASA,EAAM,CAAC,IAAM,2CACtB23L,EAAmB,GAEnC,CACQ,OAAO,IAAIF,GAAa,OAAO,OAAO,CAAE,QAAAvsJ,EACpC,QAAAljC,EACA,iBAAA2vL,GAAoBl5L,GAAoB,CAAE,CAAA,CAAC,CACvD,CAMI,OAAO+kG,EAAQ,CACX,GAAI,SAAUA,EAAQ,CAClBA,EAAO,GAAG,QAAUv/F,GAAU00F,EAAO,KAAK,QAAS10F,CAAK,CAAC,EACzD,MAAM00F,EAAS6K,EAAO,KAAK,IAAIi0F,GAAa,KAAK,OAAO,CAAC,EACzD,OAAO9+F,CACnB,KACa,CACD,MAAM7uE,EAAS,IAAIowF,EAAkB,YAAY,CAAE,mBAAoB,GAAM,EAC7E1W,EAAO,GAAG,QAAUv/F,GAAU00F,EAAO,KAAK,QAAS10F,CAAK,CAAC,EACzDu/F,EAAO,GAAG,OAAS16F,GAASghB,EAAO,KAAKhhB,CAAI,CAAC,EAC7C06F,EAAO,GAAG,MAAO,IAAM15E,EAAO,KAAK,IAAI,CAAC,EACxC,MAAM6uE,EAAS7uE,EAAO,KAAK,IAAI2tK,GAAa,KAAK,OAAO,CAAC,EACzD,OAAO9+F,CACnB,CACA,CACI,WAAWsQ,EAAO5c,EAAU76C,EAAU,CAClC,KAAK,WAAW,MAAMy3D,CAAK,EAC3B,KAAK,eACA,KAAK,IAAMz3D,EAAU,EAAGvtC,GAAUutC,EAASvtC,CAAK,CAAC,CAC9D,CAYI,MAAM,cAAc+O,EAAMrV,EAAOgZ,EAAOugL,EAAgB,CACpD,IAAIU,EAAc,GAGlB,GAAIV,GAAkBvgL,EAAQ,KAAK,UAAW,CAE1C,MAAMk5K,EAAc,KAAK,eAAe,iBAAiB,KAAK,SAAS,EACnEA,IAEIA,EAAY,OACZ,KAAK,KAAK,KAAK,KAAK,YAAY,KAAKA,EAAY,MAAO,KAAK,KAAK,QAAS,KAAK,KAAK,OAAQ,KAAK,KAAK,gBAAe,CAAE,CAAC,EAG7HA,EAAY,OAAO,SAAW,GAC9B,KAAK,eAAe,QAAQA,EAAY,cAAgB,CAAC,EAAI,CAACA,EAAY,MAAM,EAChF,KAAK,eAAe,iBAAiB,OAAO,KAAK,UAAW,CAAC,GAI7D,MAAMkB,EAAwB,sBAAsB,6BAA6B,KAAK,eAAgB,KAAK,SAAU,KAAK,SAAS,GACnI,KAAK,eAAe,6BACf,KAAK,CAAE,MAAO,KAAK,UAAW,KAAM,KAAK,SAAS,MAAM,EAAG,KAAK,SAAS,MAAM,CAAC,CAAE,EACvF6G,EAAc,IAGd,MAAM,KAAK,YAAY,KAAK,UAAW,KAAK,QAAQ,CAEpE,CACQ,MAAM55L,EAAM,MAAM,KAAK,KAAK,eAAegV,EAAK2D,CAAK,EAAG3D,EAAM2D,CAAK,EAC7D+4K,EAAY,MAAM,KAAK,KAAK,qBAAqB18K,EAAM2D,CAAK,EAClE,KAAK,eAAe,aAAaA,CAAK,EAAI,GAC1C,IAAIkhL,EAAY,GAEZjnG,EAAwB,KAAK,eAAe5yF,CAAG,GAAK0xL,IAAc,YAAc1xL,IAAQ,YACxF,KAAK,KAAK,QAAS,IAAI4yF,EAAwB,WAAW,kBAAkBjzF,CAAK,gCAAiCizF,EAAwB,YAAY,4BAA4B,CAAC,EAIvL,IAAI4+F,EAAa,GACb,KAAK,eAAe,gBAAgB,OAAS,IAC7CA,EAAa,KAAK,eAAe,gBAAgB,KAAK,eAAe,gBAAgB,OAAS,CAAC,EAAE,UAErG,QAAS9sM,EAAI,KAAK,IAAI,EAAG,KAAK,eAAe,gBAAgB,OAAS,CAAC,EAAGA,EAAIswB,EAAK,OAAS,EAAGtwB,IAAK,CAChG,MAAMo1M,EAAmB,KAAK,eAAe,gBAAgBp1M,CAAC,IACtD,KAAK,eAAe,gBAAgBA,CAAC,EAAI,MAAM,KAAK,YAAYswB,EAAK,MAAM,EAAGtwB,EAAI,CAAC,EAAGA,EAAG8sM,CAAU,GAC3G,GAAKsI,EAAiB,MAKb,CAACtI,GAAcsI,EAAiB,WACrCtI,EAAa,QANY,CACzB,KAAK,eAAe,aAAa74K,CAAK,EAAI,GAC1CkhL,EAAY,GACZ,KAChB,CAIA,CAMQ,GAJI,MAAM,KAAK,KAAK,UAAU7kL,EAAM2D,CAAK,IACrCkhL,EAAY,IAGZA,EACA,UAAWE,KAAgBN,GAAa,eAAgB,CACpD,MAAMrqH,EAAa,MAAM2qH,EAAa,KAAK,KAAK,eAAgB,KAAK,KAAM/5L,EAAKgV,EAAM2D,CAAK,EAC3F,GAAIy2D,EAAY,CAEZ,MAAM2qH,EAAa,OAAO,KAAK,eAAgB,KAAK,KAAM/5L,EAAKgV,EAAMrV,EAAOgZ,EAAOy2D,CAAU,EAEzF2qH,EAAa,qBACb,KAAK,eAAe,gBAAgBphL,CAAK,EAAI,IAEjD,KACpB,CACA,CAGYA,IAAU,GAAK,MAAM,QAAQhZ,CAAK,GAClC,MAAM,KAAK,KAAK,qBAAqBA,CAAK,EAG1Ci6L,GAAejhL,EAAQ,KAAK,WAE5B,KAAK,YAAY,KAAK,SAAS,EAEnC,KAAK,UAAYA,EACjB,KAAK,SAAW3D,EAEhB,KAAK,eAAe,2BAA2B,OAAO2D,EAAQ,CAAC,CACvE,CAKI,YAAYA,EAAO,CACf,KAAK,eAAe,gBAAgB,OAAOA,EAAO,CAAC,EACnD,KAAK,eAAe,eAAe,OAAOA,EAAO,CAAC,EAClD,KAAK,eAAe,aAAa,OAAOA,EAAO,CAAC,EAChD,KAAK,eAAe,QAAQ,OAAOA,EAAO,CAAC,EAC3C,KAAK,eAAe,WAAW,OAAOA,EAAQ,EAAG,CAAC,EAClD,KAAK,eAAe,wBAAwB,OAAOA,EAAO,CAAC,EAC3D,KAAK,eAAe,iBAAiB,OAAOA,EAAO,CAAC,EACpD,KAAK,eAAe,gBAAgB,OAAOA,EAAQ,EAAG,CAAC,EACvD,KAAK,eAAe,aAAa,OAAOA,EAAO,KAAK,eAAe,aAAa,OAASA,CAAK,EAC9F,KAAK,eAAe,kBAAkB,OAAOA,EAAO,CAAC,CAE7D,CAUI,MAAM,YAAYA,EAAO3D,EAAM,CAC3B,IAAIqkH,EAAW,KAAK,eAAe,QAAQ1gH,CAAK,EACrB,CAAC,CAAC0gH,IAEzBA,EAAW,KAAK,eAAe,QAAQ1gH,CAAK,EAAI,CAAC,KAAK,KAAK,YAAY,WAAW,GAGtF,MAAMqhL,EAAc,KAAK,eAAe,yBAAyBrhL,CAAK,EACtE,GAAIqhL,EAAa,CACb,UAAWxoL,KAAW6nH,EAAU,CAC5B,MAAM83D,EAAmB,MAAM,KAAK,KAAK,oBAAoBx4K,EAAO3D,CAAI,EAClE82B,EAAU,KAAK,eAAe,WAAWnzB,CAAK,GAAKw4K,GAAoB,EACvE,KAAK,eAAe,QAAQx4K,EAAQw4K,EAAmB,CAAC,EACxD,CAAC,MAAM,KAAK,KAAK,uBAAuBn8K,EAAM2D,CAAK,CAAC,EAC1D,GAAImzB,EACA,UAAW3W,KAAS2W,EAAQ,CAExB,KAAK,eAAe,aAAanzB,CAAK,EAAI,GAC1C,UAAWshL,KAAiBD,EACxB,KAAK,KAAK,gBAAgBrhL,EAAOnH,EAASyoL,EAAc,UAAWA,EAAc,OAAQ9kK,EAAO8kK,EAAc,QAASA,EAAc,UAAU,CAE3K,KAEqB,CAED,MAAMC,EAAiB,KAAK,eAAe,+BAA+BvhL,EAAQ,MAAM,KAAK,KAAK,oBAAoBA,EAAO3D,CAAI,EAAI,CAAC,EACtI,UAAWilL,KAAiBD,EACpBC,EAAc,QACdC,EAAe,KAAK,CAChB,OAAQ1oL,EACR,UAAWyoL,EAAc,UACzB,QAASA,EAAc,OACvB,WAAYA,EAAc,UAC1D,CAA6B,EAGDC,EAAe,KAAK,CAChB,OAAQD,EAAc,OACtB,UAAWA,EAAc,UACzB,QAAAzoL,EACA,WAAYyoL,EAAc,UAC1D,CAA6B,CAG7B,CACA,CACY,KAAK,eAAe,yBAAyB,OAAOthL,EAAO,CAAC,EAC5D,KAAK,eAAe,aAAa,OAAOA,EAAO,CAAC,EAChD,KAAK,eAAe,iBAAiB,OAAOA,EAAO,CAAC,CAChE,CAEQ,MAAMwhL,EAAc,KAAK,eAAe,yBAAyBxhL,CAAK,EACtE,GAAIwhL,EAAa,CACb,UAAW3oL,KAAW6nH,EAAU,CAI5B,MAAMlkG,EAAQxc,IAAU,GAAKnH,EAAQ,WAAa,aAC3C,CAAC,KAAK,eAAe,mBAAqB,KAAK,KAAK,gBAAe,EAAKA,EAC/E,KAAK,eAAe,aAAamH,CAAK,EAAI,GAC1C,UAAWshL,KAAiBE,EACxB,KAAK,eAAe,SAASxhL,EAAO,KAAK,KAAK,YAAY,KAAKshL,EAAc,QAASA,EAAc,UAAWA,EAAc,OAAQ9kK,CAAK,CAAC,CAE/J,CACY,KAAK,eAAe,yBAAyB,OAAOxc,EAAO,CAAC,CACxE,CAEQ,MAAM04K,EAAoB,KAAK,eAAe,kBAAkB14K,CAAK,EACrE,GAAI04K,EAAmB,CAEfA,EAAkB,OAAS,GAAK14K,IAAU,GAC1C,KAAK,eAAe,UAAU,IAAIi6E,EAAwB,WAAW,iDAAkDA,EAAwB,YAAY,kBAAkB,CAAC,EAGlL,MAAMwnG,EAA0B,KAAK,eAAe,yBAAyBzhL,EAAQ,CAAC,EACtF,UAAWkxB,KAAcwnJ,EACrB+I,EAAwB,KAAKvwJ,CAAU,EAE3C,OAAO,KAAK,eAAe,kBAAkBlxB,CAAK,CAC9D,CACA,CAQI,MAAM,YAAY3D,EAAM2D,EAAO64K,EAAY,CACvC,UAAWuI,KAAgBN,GAAa,eACpC,GAAI,MAAMM,EAAa,SAAS,KAAK,eAAgB,KAAK,KAAM/kL,EAAM2D,EAAO64K,CAAU,EACnF,MAAO,CAAE,MAAO,GAAM,SAAUA,GAAcuI,EAAa,mBAAqB,EAGxF,MAAO,CAAE,MAAO,GAAO,SAAU,EAAO,CAChD,CAMI,2BAA4B,CAExB,KAAK,WAAW,QAAWp6L,GAAU,CACjC,MAAMgZ,EAAQ,KAAK,WAAW,MAAM,OAC9B3D,EAAQ,IAAI,MAAM2D,EAAQ,CAAC,EAAE,KAAK,CAAC,EAAG,IAAI,CAACpzB,EAAGb,IACzCA,IAAMi0B,EAAQ,KAAK,WAAW,IAAM,KAAK,WAAW,MAAMj0B,CAAC,EAAE,GACvE,EACD,GAAI,CAAC,KAAK,sBAAsBi0B,CAAK,EAAG,CACpC,MAAM0hL,EAAa,IAAM,KAAK,cAAcrlL,EAAMrV,EAAOgZ,EAAO,EAAI,EACpE,GAAI,CAAC,KAAK,eAAe,kBAClB,CAAC,KAAK,eAAe,YAAY,WAAW3D,EAAK,MAAM,EAAG,EAAE,CAAC,EAMhE,GAAIA,EAAK2D,CAAK,IAAM,WAAY,CAC5B,IAAI2hL,EAAO,KAAK,YAAY3hL,CAAK,EAC5B2hL,IACDA,EAAO,KAAK,YAAY3hL,CAAK,EAAI,CAAE,GAEvC2hL,EAAK,KAAKD,CAAU,CAC5C,MAEwB,KAAK,oBAAoB,KAAK,CAAE,IAAKA,EAAY,KAAArlL,EAAM,MAAA2D,EAAO,OAKlE,KAAK,eAAiB,KAAK,eAAe,KAAK0hL,CAAU,EAGzD,CAAC,KAAK,eAAe,kBAAoB1hL,IAAU,IACnD,KAAK,eAAiB,KAAK,eACtB,KAAK,IAAM,KAAK,qBAAqB,EAE9D,CACS,EACD,KAAK,WAAW,QAAW1S,GAAU,CACjC,KAAK,KAAK,QAASA,CAAK,CAC3B,CACT,CAMI,sBAAsB0S,EAAO,CACzB,QAASj0B,EAAIi0B,EAAOj0B,EAAI,EAAGA,IACvB,GAAI,KAAK,WAAW,MAAMA,EAAI,CAAC,EAAE,MAAQ,WACrC,MAAO,GAGf,MAAO,EACf,CAKI,MAAM,qBAAsB,CAExB,UAAW41M,KAAQ,KAAK,YACpB,GAAIA,EACA,UAAWC,KAAOD,EACd,MAAMC,EAAK,EAKvB,KAAK,eAAe,2BAA2B,OAAO,CAAC,EACvD,MAAMC,EAAsB,CAAE,EAC9B,UAAWD,KAAO,KAAK,oBACd,MAAM,KAAK,KAAK,eAAeA,EAAI,KAAKA,EAAI,KAAK,EAAGA,EAAI,KAAMA,EAAI,MAAO,EAAI,IAAO,SAClF,OAAOA,EAAI,KAAKA,EAAI,KAAK,GAAM,UAAa,MAAM,KAAK,KAAK,eAAeA,EAAI,KAAKA,EAAI,MAAQ,CAAC,EAAGA,EAAI,KAAMA,EAAI,MAAQ,EAAG,EAAI,IAAO,QAE3I,KAAK,SAAS,KAAK,CAAE,IAAKA,EAAI,IAAK,KAAMA,EAAI,KAAK,MAAM,EAAGA,EAAI,KAAK,OAAS,CAAC,EAAG,EAGjFC,EAAoB,KAAKD,CAAG,EAIpC,UAAWA,KAAOC,EAAqB,CAGnC,GAAI,KAAK,SAAS,OAAS,EAAG,CAE1B,MAAMC,EAAqB,CAAE,EACvBC,EAAuB,CAAE,EAC/B,QAASh2M,EAAI,EAAGA,EAAI,KAAK,SAAS,OAAQA,IAAK,CAC3C,MAAMi2M,EAAU,KAAK,SAASj2M,CAAC,EAC3BsqG,EAAO,KAAK,cAAc2rG,EAAQ,KAAMJ,EAAI,IAAI,IAChDE,EAAmB,KAAKE,CAAO,EAC/BD,EAAqB,KAAKh2M,CAAC,EAEnD,CAEgB,MAAMk2M,EAAiBH,EAAmB,KAAK,CAACI,EAAMC,IAASD,EAAK,KAAK,OAASC,EAAK,KAAK,MAAM,EAElG,UAAWH,KAAWC,EAClB,MAAMD,EAAQ,IAAK,EAIvB,MAAMI,EAA6BL,EAAqB,KAAI,EAAG,QAAS,EACxE,UAAWM,KAASD,EAChB,KAAK,SAAS,OAAOC,EAAO,CAAC,CAEjD,CACY,MAAMT,EAAI,IAAK,CAC3B,CACA,CACA,EACAd,OAAAA,EAAa,wBAA0B,MACvCA,EAAa,eAAiB,CAC1B,IAAInE,EAAyB,uBAC7B,IAAIe,EAA6B,2BACjC,IAAIM,EAAwB,sBAC5B,IAAII,EAA8B,4BAClC,IAAIP,EAA2B,yBAC/B,IAAIW,EAA0B,wBAC9B,IAAIG,EAA0B,wBAC9B,IAAIU,EAA2B,yBAC/B,IAAIqB,EAAgC,8BACpC,IAAItG,EAAwB,sBAC5B,IAAI6E,EAAqC,mCACzC,IAAI/G,EAAwB,sBAC5B,IAAIkF,EAA8B,2BACrC,EACDwC,aAAA,aAAuBkB,qLCnevB,IAAI7qK,EAAmBC,uBAAQA,sBAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,uBAAQA,sBAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oBAA6B,EAAE+D,CAAO,oRChBlD,SAASgX,EAAM,EAEE,SAAUhX,EAAS,CAGnC,IAAI5pC,EACD,OAAO,WAAe,KAAe,YACrC,OAAO4gD,EAAS,KAAeA,GAE/B,OAAO9+B,eAAW,KAAeA,gBAClC,CAAE,EAEAg/I,EAAU,CACZ,aAAc,oBAAqB9gK,EACnC,SAAU,WAAYA,GAAK,aAAc,OACzC,KACE,eAAgBA,GAChB,SAAUA,GACT,UAAW,CACV,GAAI,CACF,WAAI,KACG,EACR,MAAW,CACV,MAAO,EACjB,CACA,EAAU,EACN,SAAU,aAAcA,EACxB,YAAa,gBAAiBA,CAC/B,EAED,SAAS+gK,EAAWhnJ,EAAK,CACvB,OAAOA,GAAO,SAAS,UAAU,cAAcA,CAAG,CACtD,CAEE,GAAI+mJ,EAAQ,YACV,IAAIE,EAAc,CAChB,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,uBACD,EAEG5kD,EACF,YAAY,QACZ,SAASriG,EAAK,CACZ,OAAOA,GAAOinJ,EAAY,QAAQ,OAAO,UAAU,SAAS,KAAKjnJ,CAAG,CAAC,EAAI,EAC1E,EAGL,SAASknJ,EAAcjnJ,EAAM,CAI3B,GAHI,OAAOA,GAAS,WAClBA,EAAO,OAAOA,CAAI,GAEhB,6BAA6B,KAAKA,CAAI,GAAKA,IAAS,GACtD,MAAM,IAAI,UAAU,4CAA8CA,EAAO,GAAG,EAE9E,OAAOA,EAAK,YAAW,CAC3B,CAEE,SAASknJ,EAAe5mJ,EAAO,CAC7B,OAAI,OAAOA,GAAU,WACnBA,EAAQ,OAAOA,CAAK,GAEfA,CACX,CAGE,SAAS6mJ,EAAY9+G,EAAO,CAC1B,IAAIvyB,EAAW,CACb,KAAM,UAAW,CACf,IAAIxV,EAAQ+nC,EAAM,MAAO,EACzB,MAAO,CAAC,KAAM/nC,IAAU,OAAW,MAAOA,CAAK,CACvD,CACK,EAED,OAAIwmJ,EAAQ,WACVhxI,EAAS,OAAO,QAAQ,EAAI,UAAW,CACrC,OAAOA,CACR,GAGIA,CACX,CAEE,SAASsxI,EAAQhgC,EAAS,CACxB,KAAK,IAAM,CAAE,EAETA,aAAmBggC,EACrBhgC,EAAQ,QAAQ,SAAS9mH,EAAON,EAAM,CACpC,KAAK,OAAOA,EAAMM,CAAK,CACxB,EAAE,IAAI,EACE,MAAM,QAAQ8mH,CAAO,EAC9BA,EAAQ,QAAQ,SAASrI,EAAQ,CAC/B,GAAIA,EAAO,QAAU,EACnB,MAAM,IAAI,UAAU,sEAAwEA,EAAO,MAAM,EAE3G,KAAK,OAAOA,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,CACjC,EAAE,IAAI,EACEqI,GACT,OAAO,oBAAoBA,CAAO,EAAE,QAAQ,SAASpnH,EAAM,CACzD,KAAK,OAAOA,EAAMonH,EAAQpnH,CAAI,CAAC,CAChC,EAAE,IAAI,CAEb,CAEEonJ,EAAQ,UAAU,OAAS,SAASpnJ,EAAMM,EAAO,CAC/CN,EAAOinJ,EAAcjnJ,CAAI,EACzBM,EAAQ4mJ,EAAe5mJ,CAAK,EAC5B,IAAIkc,EAAW,KAAK,IAAIxc,CAAI,EAC5B,KAAK,IAAIA,CAAI,EAAIwc,EAAWA,EAAW,KAAOlc,EAAQA,CACvD,EAED8mJ,EAAQ,UAAU,OAAY,SAASpnJ,EAAM,CAC3C,OAAO,KAAK,IAAIinJ,EAAcjnJ,CAAI,CAAC,CACpC,EAEDonJ,EAAQ,UAAU,IAAM,SAASpnJ,EAAM,CACrC,OAAAA,EAAOinJ,EAAcjnJ,CAAI,EAClB,KAAK,IAAIA,CAAI,EAAI,KAAK,IAAIA,CAAI,EAAI,IAC1C,EAEDonJ,EAAQ,UAAU,IAAM,SAASpnJ,EAAM,CACrC,OAAO,KAAK,IAAI,eAAeinJ,EAAcjnJ,CAAI,CAAC,CACnD,EAEDonJ,EAAQ,UAAU,IAAM,SAASpnJ,EAAMM,EAAO,CAC5C,KAAK,IAAI2mJ,EAAcjnJ,CAAI,CAAC,EAAIknJ,EAAe5mJ,CAAK,CACrD,EAED8mJ,EAAQ,UAAU,QAAU,SAASjzG,EAAUigD,EAAS,CACtD,QAASp0F,KAAQ,KAAK,IAChB,KAAK,IAAI,eAAeA,CAAI,GAC9Bm0C,EAAS,KAAKigD,EAAS,KAAK,IAAIp0F,CAAI,EAAGA,EAAM,IAAI,CAGtD,EAEDonJ,EAAQ,UAAU,KAAO,UAAW,CAClC,IAAI/+G,EAAQ,CAAE,EACd,YAAK,QAAQ,SAAS/nC,EAAON,EAAM,CACjCqoC,EAAM,KAAKroC,CAAI,CACrB,CAAK,EACMmnJ,EAAY9+G,CAAK,CACzB,EAED++G,EAAQ,UAAU,OAAS,UAAW,CACpC,IAAI/+G,EAAQ,CAAE,EACd,YAAK,QAAQ,SAAS/nC,EAAO,CAC3B+nC,EAAM,KAAK/nC,CAAK,CACtB,CAAK,EACM6mJ,EAAY9+G,CAAK,CACzB,EAED++G,EAAQ,UAAU,QAAU,UAAW,CACrC,IAAI/+G,EAAQ,CAAE,EACd,YAAK,QAAQ,SAAS/nC,EAAON,EAAM,CACjCqoC,EAAM,KAAK,CAACroC,EAAMM,CAAK,CAAC,CAC9B,CAAK,EACM6mJ,EAAY9+G,CAAK,CACzB,EAEGy+G,EAAQ,WACVM,EAAQ,UAAU,OAAO,QAAQ,EAAIA,EAAQ,UAAU,SAGzD,SAAShb,EAAS5sD,EAAM,CACtB,GAAI,CAAAA,EAAK,QACT,IAAIA,EAAK,SACP,OAAO,QAAQ,OAAO,IAAI,UAAU,cAAc,CAAC,EAErDA,EAAK,SAAW,GACpB,CAEE,SAAS6nE,EAAgB/tC,EAAQ,CAC/B,OAAO,IAAI,QAAQ,SAASn4C,EAASC,EAAQ,CAC3Ck4C,EAAO,OAAS,UAAW,CACzBn4C,EAAQm4C,EAAO,MAAM,CACtB,EACDA,EAAO,QAAU,UAAW,CAC1Bl4C,EAAOk4C,EAAO,KAAK,CACpB,CACF,CAAA,CACL,CAEE,SAASguC,EAAsBC,EAAM,CACnC,IAAIjuC,EAAS,IAAI,WACbvC,EAAUswC,EAAgB/tC,CAAM,EACpC,OAAAA,EAAO,kBAAkBiuC,CAAI,EACtBxwC,CACX,CAEE,SAASywC,EAAeD,EAAM,CAC5B,IAAIjuC,EAAS,IAAI,WACbvC,EAAUswC,EAAgB/tC,CAAM,EAChC32G,EAAQ,2BAA2B,KAAK4kJ,EAAK,IAAI,EACjDv4D,EAAWrsF,EAAQA,EAAM,CAAC,EAAI,QAClC,OAAA22G,EAAO,WAAWiuC,EAAMv4D,CAAQ,EACzB+nB,CACX,CAEE,SAAS0wC,EAAsBl8I,EAAK,CAIlC,QAHIm8I,EAAO,IAAI,WAAWn8I,CAAG,EACzB25H,EAAQ,IAAI,MAAMwiB,EAAK,MAAM,EAExBriK,EAAI,EAAGA,EAAIqiK,EAAK,OAAQriK,IAC/B6/I,EAAM7/I,CAAC,EAAI,OAAO,aAAaqiK,EAAKriK,CAAC,CAAC,EAExC,OAAO6/I,EAAM,KAAK,EAAE,CACxB,CAEE,SAASyiB,EAAYp8I,EAAK,CACxB,GAAIA,EAAI,MACN,OAAOA,EAAI,MAAM,CAAC,EAElB,IAAIm8I,EAAO,IAAI,WAAWn8I,EAAI,UAAU,EACxC,OAAAm8I,EAAK,IAAI,IAAI,WAAWn8I,CAAG,CAAC,EACrBm8I,EAAK,MAElB,CAEE,SAASE,GAAO,CACd,YAAK,SAAW,GAEhB,KAAK,UAAY,SAASpoE,EAAM,CAY9B,KAAK,SAAW,KAAK,SACrB,KAAK,UAAYA,EACZA,EAGM,OAAOA,GAAS,SACzB,KAAK,UAAYA,EACRsnE,EAAQ,MAAQ,KAAK,UAAU,cAActnE,CAAI,EAC1D,KAAK,UAAYA,EACRsnE,EAAQ,UAAY,SAAS,UAAU,cAActnE,CAAI,EAClE,KAAK,cAAgBA,EACZsnE,EAAQ,cAAgB,gBAAgB,UAAU,cAActnE,CAAI,EAC7E,KAAK,UAAYA,EAAK,SAAU,EACvBsnE,EAAQ,aAAeA,EAAQ,MAAQC,EAAWvnE,CAAI,GAC/D,KAAK,iBAAmBmoE,EAAYnoE,EAAK,MAAM,EAE/C,KAAK,UAAY,IAAI,KAAK,CAAC,KAAK,gBAAgB,CAAC,GACxCsnE,EAAQ,cAAgB,YAAY,UAAU,cAActnE,CAAI,GAAK4iB,EAAkB5iB,CAAI,GACpG,KAAK,iBAAmBmoE,EAAYnoE,CAAI,EAExC,KAAK,UAAYA,EAAO,OAAO,UAAU,SAAS,KAAKA,CAAI,GAjB3D,KAAK,QAAU,GACf,KAAK,UAAY,IAmBd,KAAK,QAAQ,IAAI,cAAc,IAC9B,OAAOA,GAAS,SAClB,KAAK,QAAQ,IAAI,eAAgB,0BAA0B,EAClD,KAAK,WAAa,KAAK,UAAU,KAC1C,KAAK,QAAQ,IAAI,eAAgB,KAAK,UAAU,IAAI,EAC3CsnE,EAAQ,cAAgB,gBAAgB,UAAU,cAActnE,CAAI,GAC7E,KAAK,QAAQ,IAAI,eAAgB,iDAAiD,EAGvF,EAEGsnE,EAAQ,OACV,KAAK,KAAO,UAAW,CACrB,IAAIryD,EAAW23C,EAAS,IAAI,EAC5B,GAAI33C,EACF,OAAOA,EAGT,GAAI,KAAK,UACP,OAAO,QAAQ,QAAQ,KAAK,SAAS,EAChC,GAAI,KAAK,iBACd,OAAO,QAAQ,QAAQ,IAAI,KAAK,CAAC,KAAK,gBAAgB,CAAC,CAAC,EACnD,GAAI,KAAK,cACd,MAAM,IAAI,MAAM,sCAAsC,EAEtD,OAAO,QAAQ,QAAQ,IAAI,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC,CAEpD,GAGH,KAAK,YAAc,UAAW,CAC5B,GAAI,KAAK,iBAAkB,CACzB,IAAIozD,EAAazb,EAAS,IAAI,EAC9B,OAAIyb,IAEO,YAAY,OAAO,KAAK,gBAAgB,EAC1C,QAAQ,QACb,KAAK,iBAAiB,OAAO,MAC3B,KAAK,iBAAiB,WACtB,KAAK,iBAAiB,WAAa,KAAK,iBAAiB,UACvE,CACA,EAEiB,QAAQ,QAAQ,KAAK,gBAAgB,EAEtD,KAAa,IAAIf,EAAQ,KACjB,OAAO,KAAK,OAAO,KAAKQ,CAAqB,EAE7C,MAAM,IAAI,MAAM,+BAA+B,EAElD,EAED,KAAK,KAAO,UAAW,CACrB,IAAI7yD,EAAW23C,EAAS,IAAI,EAC5B,GAAI33C,EACF,OAAOA,EAGT,GAAI,KAAK,UACP,OAAO+yD,EAAe,KAAK,SAAS,EAC/B,GAAI,KAAK,iBACd,OAAO,QAAQ,QAAQC,EAAsB,KAAK,gBAAgB,CAAC,EAC9D,GAAI,KAAK,cACd,MAAM,IAAI,MAAM,sCAAsC,EAEtD,OAAO,QAAQ,QAAQ,KAAK,SAAS,CAExC,EAEGX,EAAQ,WACV,KAAK,SAAW,UAAW,CACzB,OAAO,KAAK,OAAO,KAAK/T,CAAM,CAC/B,GAGH,KAAK,KAAO,UAAW,CACrB,OAAO,KAAK,KAAI,EAAG,KAAK,KAAK,KAAK,CACnC,EAEM,IACX,CAGE,IAAI1vH,EAAU,CAAC,UAAW,SAAU,MAAO,OAAQ,UAAW,QAAS,OAAQ,MAAO,OAAO,EAE7F,SAASykI,EAAgBzwC,EAAQ,CAC/B,IAAI0wC,EAAU1wC,EAAO,YAAa,EAClC,OAAOh0F,EAAQ,QAAQ0kI,CAAO,EAAI,GAAKA,EAAU1wC,CACrD,CAEE,SAAS2wC,EAAQrhH,EAAOvlC,EAAS,CAC/B,GAAI,EAAE,gBAAgB4mJ,GACpB,MAAM,IAAI,UAAU,4FAA4F,EAGlH5mJ,EAAUA,GAAW,CAAE,EACvB,IAAIo+E,EAAOp+E,EAAQ,KAEnB,GAAIulC,aAAiBqhH,EAAS,CAC5B,GAAIrhH,EAAM,SACR,MAAM,IAAI,UAAU,cAAc,EAEpC,KAAK,IAAMA,EAAM,IACjB,KAAK,YAAcA,EAAM,YACpBvlC,EAAQ,UACX,KAAK,QAAU,IAAIgmJ,EAAQzgH,EAAM,OAAO,GAE1C,KAAK,OAASA,EAAM,OACpB,KAAK,KAAOA,EAAM,KAClB,KAAK,OAASA,EAAM,OAChB,CAAC64C,GAAQ74C,EAAM,WAAa,OAC9B64C,EAAO74C,EAAM,UACbA,EAAM,SAAW,GAEzB,MACM,KAAK,IAAM,OAAOA,CAAK,EAiBzB,GAdA,KAAK,YAAcvlC,EAAQ,aAAe,KAAK,aAAe,eAC1DA,EAAQ,SAAW,CAAC,KAAK,WAC3B,KAAK,QAAU,IAAIgmJ,EAAQhmJ,EAAQ,OAAO,GAE5C,KAAK,OAAS0mJ,EAAgB1mJ,EAAQ,QAAU,KAAK,QAAU,KAAK,EACpE,KAAK,KAAOA,EAAQ,MAAQ,KAAK,MAAQ,KACzC,KAAK,OAASA,EAAQ,QAAU,KAAK,QAAW,UAAY,CAC1D,GAAI,oBAAqBpb,EAAG,CAC1B,IAAIiiK,EAAO,IAAI,gBACf,OAAOA,EAAK,MACpB,CACA,IACI,KAAK,SAAW,MAEX,KAAK,SAAW,OAAS,KAAK,SAAW,SAAWzoE,EACvD,MAAM,IAAI,UAAU,2CAA2C,EAIjE,GAFA,KAAK,UAAUA,CAAI,GAEf,KAAK,SAAW,OAAS,KAAK,SAAW,UACvCp+E,EAAQ,QAAU,YAAcA,EAAQ,QAAU,YAAY,CAEhE,IAAI8mJ,EAAgB,gBACpB,GAAIA,EAAc,KAAK,KAAK,GAAG,EAE7B,KAAK,IAAM,KAAK,IAAI,QAAQA,EAAe,OAAS,IAAI,OAAO,SAAS,MACnE,CAEL,IAAIC,EAAgB,KACpB,KAAK,MAAQA,EAAc,KAAK,KAAK,GAAG,EAAI,IAAM,KAAO,KAAO,IAAI,KAAI,EAAG,QAAS,CAC9F,CACA,CAEA,CAEEH,EAAQ,UAAU,MAAQ,UAAW,CACnC,OAAO,IAAIA,EAAQ,KAAM,CAAC,KAAM,KAAK,SAAS,CAAC,CAChD,EAED,SAASjV,EAAOvzD,EAAM,CACpB,IAAI4oE,EAAO,IAAI,SACf,OAAA5oE,EACG,KAAI,EACJ,MAAM,GAAG,EACT,QAAQ,SAAS/jC,EAAO,CACvB,GAAIA,EAAO,CACT,IAAI4sG,EAAQ5sG,EAAM,MAAM,GAAG,EACvBz7C,EAAOqoJ,EAAM,MAAO,EAAC,QAAQ,MAAO,GAAG,EACvC/nJ,EAAQ+nJ,EAAM,KAAK,GAAG,EAAE,QAAQ,MAAO,GAAG,EAC9CD,EAAK,OAAO,mBAAmBpoJ,CAAI,EAAG,mBAAmBM,CAAK,CAAC,CACzE,CACA,CAAO,EACI8nJ,CACX,CAEE,SAASE,EAAaC,EAAY,CAChC,IAAInhC,EAAU,IAAIggC,EAGdoB,EAAsBD,EAAW,QAAQ,eAAgB,GAAG,EAIhE,OAAAC,EACG,MAAM,IAAI,EACV,IAAI,SAASzpC,EAAQ,CACpB,OAAOA,EAAO,QAAQ;AAAA,CAAI,IAAM,EAAIA,EAAO,OAAO,EAAGA,EAAO,MAAM,EAAIA,CACvE,CAAA,EACA,QAAQ,SAASp/B,EAAM,CACtB,IAAIpzC,EAAQozC,EAAK,MAAM,GAAG,EACtBh/E,EAAM4rC,EAAM,MAAK,EAAG,KAAM,EAC9B,GAAI5rC,EAAK,CACP,IAAIL,EAAQisC,EAAM,KAAK,GAAG,EAAE,KAAM,EAClC,GAAI,CACF66E,EAAQ,OAAOzmH,EAAKL,CAAK,CAC1B,OAAQsG,GAAO,CACd,QAAQ,KAAK,YAAcA,GAAM,OAAO,CACpD,CACA,CACA,CAAO,EACIwgH,CACX,CAEEwgC,EAAK,KAAKI,EAAQ,SAAS,EAE3B,SAAS7nJ,EAASsoJ,EAAUrnJ,EAAS,CACnC,GAAI,EAAE,gBAAgBjB,GACpB,MAAM,IAAI,UAAU,4FAA4F,EAQlH,GANKiB,IACHA,EAAU,CAAE,GAGd,KAAK,KAAO,UACZ,KAAK,OAASA,EAAQ,SAAW,OAAY,IAAMA,EAAQ,OACvD,KAAK,OAAS,KAAO,KAAK,OAAS,IACrC,MAAM,IAAI,WAAW,0FAA0F,EAEjH,KAAK,GAAK,KAAK,QAAU,KAAO,KAAK,OAAS,IAC9C,KAAK,WAAaA,EAAQ,aAAe,OAAY,GAAK,GAAKA,EAAQ,WACvE,KAAK,QAAU,IAAIgmJ,EAAQhmJ,EAAQ,OAAO,EAC1C,KAAK,IAAMA,EAAQ,KAAO,GAC1B,KAAK,UAAUqnJ,CAAQ,CAC3B,CAEEb,EAAK,KAAKznJ,EAAS,SAAS,EAE5BA,EAAS,UAAU,MAAQ,UAAW,CACpC,OAAO,IAAIA,EAAS,KAAK,UAAW,CAClC,OAAQ,KAAK,OACb,WAAY,KAAK,WACjB,QAAS,IAAIinJ,EAAQ,KAAK,OAAO,EACjC,IAAK,KAAK,GACX,CAAA,CACF,EAEDjnJ,EAAS,MAAQ,UAAW,CAC1B,IAAIgF,EAAW,IAAIhF,EAAS,KAAM,CAAC,OAAQ,IAAK,WAAY,EAAE,CAAC,EAC/D,OAAAgF,EAAS,GAAK,GACdA,EAAS,OAAS,EAClBA,EAAS,KAAO,QACTA,CACR,EAED,IAAIujJ,EAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,EAE/CvoJ,EAAS,SAAW,SAAS0yB,EAAKuqC,EAAQ,CACxC,GAAIsrF,EAAiB,QAAQtrF,CAAM,IAAM,GACvC,MAAM,IAAI,WAAW,qBAAqB,EAG5C,OAAO,IAAIj9D,EAAS,KAAM,CAAC,OAAQi9D,EAAQ,QAAS,CAAC,SAAUvqC,CAAG,CAAC,CAAC,CACrE,EAEDjD,EAAQ,aAAe5pC,EAAE,aACzB,GAAI,CACF,IAAI4pC,EAAQ,YACb,MAAa,CACZA,EAAQ,aAAe,SAAS/oB,EAAS7G,EAAM,CAC7C,KAAK,QAAU6G,EACf,KAAK,KAAO7G,EACZ,IAAI4G,EAAQ,MAAMC,CAAO,EACzB,KAAK,MAAQD,EAAM,KACpB,EACDgpB,EAAQ,aAAa,UAAY,OAAO,OAAO,MAAM,SAAS,EAC9DA,EAAQ,aAAa,UAAU,YAAcA,EAAQ,YACzD,CAEE,SAASgpH,EAAMjyG,EAAOgiH,EAAM,CAC1B,OAAO,IAAI,QAAQ,SAASxnF,EAASC,EAAQ,CAC3C,IAAIwnF,EAAU,IAAIZ,EAAQrhH,EAAOgiH,CAAI,EAErC,GAAIC,EAAQ,QAAUA,EAAQ,OAAO,QACnC,OAAOxnF,EAAO,IAAIxxC,EAAQ,aAAa,UAAW,YAAY,CAAC,EAGjE,IAAIi5H,EAAM,IAAI,eAEd,SAASC,GAAW,CAClBD,EAAI,MAAO,CACnB,CAEMA,EAAI,OAAS,UAAW,CACtB,IAAIznJ,GAAU,CACZ,WAAYynJ,EAAI,WAChB,QAASP,EAAaO,EAAI,sBAAuB,GAAI,EAAE,CACxD,EAGGD,EAAQ,IAAI,QAAQ,SAAS,IAAM,IAAMC,EAAI,OAAS,KAAOA,EAAI,OAAS,KAC5EznJ,GAAQ,OAAS,IAEjBA,GAAQ,OAASynJ,EAAI,OAEvBznJ,GAAQ,IAAM,gBAAiBynJ,EAAMA,EAAI,YAAcznJ,GAAQ,QAAQ,IAAI,eAAe,EAC1F,IAAIo+E,GAAO,aAAcqpE,EAAMA,EAAI,SAAWA,EAAI,aAClD,WAAW,UAAW,CACpB1nF,EAAQ,IAAIhhE,EAASq/E,GAAMp+E,EAAO,CAAC,CACpC,EAAE,CAAC,CACL,EAEDynJ,EAAI,QAAU,UAAW,CACvB,WAAW,UAAW,CACpBznF,EAAO,IAAI,UAAU,wBAAwB,CAAC,CAC/C,EAAE,CAAC,CACL,EAEDynF,EAAI,UAAY,UAAW,CACzB,WAAW,UAAW,CACpBznF,EAAO,IAAI,UAAU,2BAA2B,CAAC,CAClD,EAAE,CAAC,CACL,EAEDynF,EAAI,QAAU,UAAW,CACvB,WAAW,UAAW,CACpBznF,EAAO,IAAIxxC,EAAQ,aAAa,UAAW,YAAY,CAAC,CACzD,EAAE,CAAC,CACL,EAED,SAASm5H,GAAOl2H,GAAK,CACnB,GAAI,CACF,OAAOA,KAAQ,IAAM7sC,EAAE,SAAS,KAAOA,EAAE,SAAS,KAAO6sC,EAC1D,MAAW,CACV,OAAOA,EACjB,CACA,CAoBM,GAlBAg2H,EAAI,KAAKD,EAAQ,OAAQG,GAAOH,EAAQ,GAAG,EAAG,EAAI,EAE9CA,EAAQ,cAAgB,UAC1BC,EAAI,gBAAkB,GACbD,EAAQ,cAAgB,SACjCC,EAAI,gBAAkB,IAGpB,iBAAkBA,IAChB/B,EAAQ,KACV+B,EAAI,aAAe,OAEnB/B,EAAQ,cAER+B,EAAI,aAAe,gBAInBF,GAAQ,OAAOA,EAAK,SAAY,UAAY,EAAEA,EAAK,mBAAmBvB,GAAYphK,EAAE,SAAW2iK,EAAK,mBAAmB3iK,EAAE,SAAW,CACtI,IAAI+qD,GAAQ,CAAE,EACd,OAAO,oBAAoB43G,EAAK,OAAO,EAAE,QAAQ,SAAS3oJ,GAAM,CAC9D+wC,GAAM,KAAKk2G,EAAcjnJ,EAAI,CAAC,EAC9B6oJ,EAAI,iBAAiB7oJ,GAAMknJ,EAAeyB,EAAK,QAAQ3oJ,EAAI,CAAC,CAAC,CACvE,CAAS,EACD4oJ,EAAQ,QAAQ,QAAQ,SAAStoJ,GAAON,GAAM,CACxC+wC,GAAM,QAAQ/wC,EAAI,IAAM,IAC1B6oJ,EAAI,iBAAiB7oJ,GAAMM,EAAK,CAE5C,CAAS,CACT,MACQsoJ,EAAQ,QAAQ,QAAQ,SAAStoJ,GAAON,GAAM,CAC5C6oJ,EAAI,iBAAiB7oJ,GAAMM,EAAK,CAC1C,CAAS,EAGCsoJ,EAAQ,SACVA,EAAQ,OAAO,iBAAiB,QAASE,CAAQ,EAEjDD,EAAI,mBAAqB,UAAW,CAE9BA,EAAI,aAAe,GACrBD,EAAQ,OAAO,oBAAoB,QAASE,CAAQ,CAEvD,GAGHD,EAAI,KAAK,OAAOD,EAAQ,UAAc,IAAc,KAAOA,EAAQ,SAAS,CAC7E,CAAA,CACL,CAEE,OAAAhQ,EAAM,SAAW,GAEZ5yJ,EAAE,QACLA,EAAE,MAAQ4yJ,EACV5yJ,EAAE,QAAUohK,EACZphK,EAAE,QAAUgiK,EACZhiK,EAAE,SAAWma,GAGfyvB,EAAQ,QAAUw3H,EAClBx3H,EAAQ,QAAUo4H,EAClBp4H,EAAQ,SAAWzvB,EACnByvB,EAAQ,MAAQgpH,EAEhB,OAAO,eAAehpH,EAAS,aAAc,CAAE,MAAO,GAAM,EAErDA,IAEN,CAAE,CAAA,CACJ,GAAE,OAAO,KAAS,IAAc,KAAOJ,eAAI,8JChpB5C,OAAO,eAAcI,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAsB,YAAAA,EAAA,WAAqB,OAO3C,MAAM49D,UAAmB,KAAM,CAE3B,YAAY3mF,EAAS6D,EAAM,CACvB,MAAM7D,CAAO,EACb,KAAK,KAAO6D,CACpB,CACA,CACAklB,EAAA,WAAqB49D,EAOpB,SAAUC,EAAa,CACpBA,EAAY,mBAAwB,qBACpCA,EAAY,oBAAyB,sBACrCA,EAAY,mBAAwB,qBACpCA,EAAY,iBAAsB,oBAClCA,EAAY,oBAAyB,uBACrCA,EAAY,mBAAwB,sBACpCA,EAAY,qBAA0B,wBACtCA,EAAY,wBAA6B,2BACzCA,EAAY,sBAA2B,yBACvCA,EAAY,qBAA0B,wBACtCA,EAAY,sBAA2B,yBACvCA,EAAY,iBAAsB,mBAClCA,EAAY,0BAA+B,4BAC3CA,EAAY,sBAA2B,wBACvCA,EAAY,8BAAmC,gCAC/CA,EAAY,yBAA8B,2BAC1CA,EAAY,uBAA4B,0BACxCA,EAAY,oBAAyB,sBACrCA,EAAY,qBAA0B,uBACtCA,EAAY,sBAA2B,wBACvCA,EAAY,2BAAgC,6BAC5CA,EAAY,yBAA8B,2BAC1CA,EAAY,+BAAoC,iCAChDA,EAAY,8BAAmC,gCAC/CA,EAAY,sBAA2B,wBACvCA,EAAY,uBAA4B,yBACxCA,EAAY,yBAA8B,2BAC1CA,EAAY,6BAAkC,+BAC9CA,EAAY,+BAAoC,iCAChDA,EAAY,uBAA4B,yBACxCA,EAAY,uBAA4B,yBACxCA,EAAY,2BAAgC,6BAC5CA,EAAY,wBAA6B,0BACzCA,EAAY,qBAA0B,uBACtCA,EAAY,mBAAwB,qBACpCA,EAAY,oBAAyB,sBACrCA,EAAY,qBAA0B,uBACtCA,EAAY,2BAAgC,6BAC5CA,EAAY,sBAA2B,wBACvCA,EAAY,yBAA8B,2BAC1CA,EAAY,qBAA0B,uBACtCA,EAAY,wBAA6B,0BACzCA,EAAY,8BAAmC,gCAC/CA,EAAY,8BAAmC,gCAC/CA,EAAY,yBAA8B,2BAC1CA,EAAY,4BAAiC,8BAC7CA,EAAY,iBAAsB,mBAClCA,EAAY,uBAA4B,yBACxCA,EAAY,4BAAiC,8BAC7CA,EAAY,4BAAiC,8BAI7CA,EAAY,sBAA2B,wBACvCA,EAAY,mBAAwB,oBACvC,EAAgB79D,EAAQ,cAAgBA,EAAA,YAAsB,CAAE,EAAC,yNC9ElE,OAAO,eAAes/D,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OACCrjE,uBAAA,EAC/B,MAAMsjE,EAAsCt/D,kBAAA,EACtCu/D,EAAqBt/D,YAA2B,EAChDu/D,EAA6Bt/D,6BAAmC,EAItE,IAAA6rK,EAAA,KAA0B,CACtB,YAAYrsG,EAAS,CACjB,KAAK,QAAUA,CACvB,CACI,MAAM,KAAK18D,EAAK,CACZ,MAAM1tB,EAAW,MAAO,KAAK,SAAW,OAAO0tB,EAAK,CAAE,QAAS,IAAI,QAAQ,CAAE,OAAQ,qBAAqB,CAAE,CAAC,CAAE,EAC/G,GAAI1tB,EAAS,IAAMA,EAAS,QAAS,CACjC,IAAIwtB,EAAYxtB,EAAS,QAAQ,IAAI,cAAc,EACnD,GAAIwtB,EAAW,CACX,MAAM68D,EAAW78D,EAAU,QAAQ,GAAG,EAClC68D,EAAW,IACX78D,EAAYA,EAAU,OAAO,EAAG68D,CAAQ,EAE5D,CACY,GAAI78D,IAAc,sBAEd,OAAQ,MAAMxtB,EAAS,KAAM,EAI7B,GAAIA,EAAS,QAAQ,IAAI,MAAM,EAAG,CAC9B,IAAIsqF,EAcJ,GAbAtqF,EAAS,QAAQ,QAAQ,CAAC7E,EAAOK,IAAQ,CACrC,GAAIA,IAAQ,OAAQ,CAChB,MAAM+uF,KAAiBN,EAAmB,OAAO9uF,CAAK,EACtD,UAAWquF,KAAQe,EAAW,IAAI,OAAQ,qBAAqB,EAC3D,GAAIf,EAAK,MAAQ,YAAa,CAC1B,GAAIc,EACA,MAAM,IAAI,MAAM,kDAAoD58D,CAAG,EAE3E48D,KAAmBJ,EAA2B,SAASV,EAAK,IAAK97D,CAAG,CACxG,CAEA,CACA,CAAqB,EACG48D,EACA,OAAO,KAAK,KAAKA,CAAY,CAErD,CACgB,MAAM,IAAIN,EAAa,WAAW,kCAAkCx8D,CAAS,GAAIw8D,EAAa,YAAY,uBAAuB,CAEjJ,KAEY,OAAM,IAAI,MAAMhqF,EAAS,YAAc,gBAAgBA,EAAS,MAAM,EAAE,CAEpF,CACA,EACA+pF,2BAAA,oBAA8BI,qJCxD9B,OAAO,eAAeK,KAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,KAAA,KAAG,OACf,IAAAksG,EAAA,MAAMloJ,EAAK,CAOP,OAAO,aAAanrC,EAAM,CACtB,OAAOA,EAAK,QAAQ,GAAG,EAAI,GAAK,EAAEA,GAAQA,EAAK,CAAC,IAAM,IAC9D,CAQI,OAAO,UAAUA,EAAMmC,EAAS,CAE5B,GAAInC,GAAQA,EAAK,CAAC,IAAM,IACpB,OAAO,KAEX,MAAMonF,EAAepnF,EAAK,QAAQ,GAAG,EACrC,GAAIonF,GAAgB,EAAG,CAEnB,GAAIpnF,EAAK,OAASonF,EAAe,GAC1BpnF,EAAK,OAAOonF,EAAe,CAAC,IAAM,KAClCpnF,EAAK,OAAOonF,EAAe,CAAC,IAAM,IACrC,OAAO,KAEX,MAAM5uF,EAASwH,EAAK,OAAO,EAAGonF,CAAY,EAE1C,GAAI5uF,IAAW,IACX,OAAO,KAGX,GAAI2J,EAAQ3J,CAAM,EACd,OAAOA,CAEvB,CACQ,OAAO,IACf,CAMI,OAAO,kBAAkB6uF,EAAc,CACnC,GAAIA,IAAiB,MAAQ,OAAOA,GAAiB,SACjD,OAAOA,EAEX,MAAM7V,EAAK6V,EAAa,KAAK,EAC7B,OAAO7V,GAAU,IACzB,CAOI,OAAO,6BAA6B15E,EAAOc,EAAS,CAChD,MAAO,CAACuyC,GAAK,mBAAmBrzC,CAAK,IAC7Bc,EAAQ,yBAA4B,OAAOd,GAAU,WAAaA,EAAM,CAAC,IAAM,KAAOqzC,GAAK,8BAA8BrzC,CAAK,GAC9I,CAMI,OAAO,mBAAmBgG,EAAS,CAC/B,OAAO,OAAOA,GAAY,UAAYqtC,GAAK,cAAc,KAAKrtC,CAAO,CAC7E,CAMI,OAAO,8BAA8BwpF,EAAW,CAC5C,OAAOn8C,GAAK,oBAAoB,KAAKm8C,CAAS,CACtD,CAMI,OAAO,cAAcxvF,EAAO,CACxB,OAAOA,IAAU,OAAOA,GAAU,UAAaA,GAAS,OAAOA,GAAU,SACjF,CAMI,OAAO,WAAWkoC,EAAK,CACnB,MAAO,GAAQA,GAAOmL,GAAK,UAAU,KAAKnL,CAAG,EACrD,CAMI,OAAO,eAAeA,EAAK,CACvB,MAAO,CAAC,CAACA,GAAOA,EAAI,CAAC,IAAM,KAAOmL,GAAK,eAAe,KAAKnL,CAAG,CACtE,CAMI,OAAO,eAAeliC,EAAS,CAC3B,OAAOqtC,GAAK,eAAertC,CAAO,CAC1C,CAOI,OAAO,gBAAgBqE,EAAShK,EAAK,CACjC,MAAML,EAAQqK,EAAQhK,CAAG,EACzB,OAAS,OAAOL,GAAU,UAAaA,GAASA,EAAM,YAAY,CAC1E,CAMI,OAAO,kBAAkBqK,EAAS,CAC9B,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EACjC,GAAIgpC,GAAK,gBAAgBhpC,EAAShK,CAAG,EACjC,MAAO,GAGf,MAAO,EACf,CAKI,OAAO,0BAA0BA,EAAK,CAClC,OAAOA,EAAI,WAAW,KAAK,CACnC,CAMI,OAAO,UAAU4tF,EAASC,EAAS,CAC/B,MAAMuB,EAAW,OAAO,KAAKxB,CAAO,EAC9ByB,EAAW,OAAO,KAAKxB,CAAO,EACpC,OAAIuB,EAAS,SAAWC,EAAS,OACtB,GACJD,EAAS,MAAOpvF,GAAQ,CAC3B,MAAMsvF,EAAS1B,EAAQ5tF,CAAG,EACpBuvF,EAAS1B,EAAQ7tF,CAAG,EAC1B,OAAQsvF,IAAWC,GAAYD,IAAW,MACtCC,IAAW,MACX,OAAOD,GAAW,UAClB,OAAOC,GAAW,UAClB,KAAK,UAAUD,EAAQC,CAAM,CAC7C,CAAS,CACT,CAEA,EAEAv8C,OAAAA,EAAK,UAAY,6DAEjBA,EAAK,eAAiB,eAEtBA,EAAK,cAAgB,aAErBA,EAAK,oBAAsB,eAE3BA,EAAK,mBAAqB,8BAE1BA,EAAK,oBAAsB,gBAG3BA,EAAK,eAAiB,CAClB,cAAe,GACf,QAAS,GACT,aAAc,GACd,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAO,GACP,UAAW,GACX,YAAa,GACb,SAAU,GACV,QAAS,GACT,YAAa,GACb,QAAS,GACT,QAAS,GACT,QAAS,GACT,UAAW,GACX,aAAc,GACd,aAAc,GACd,WAAY,GACZ,OAAQ,GACR,QAAS,GACT,SAAU,GACV,WAAY,GACZ,SAAU,EACb,EAEDA,EAAK,sBAAwB,CACzB,QACA,SACA,YACA,WACA,YACH,EAEDA,EAAK,uBAAyB,CAC1B,aACA,SACA,MACA,SACA,QACA,QACA,QACA,UACA,WACA,OACA,QACA,SACA,UACH,EAEDA,EAAK,sBAAwB,CACzB,WACA,WACH,EAEDA,EAAK,WAAa,CACd,QACA,OACA,SACA,YACA,SACA,MACA,OACH,EAEDA,EAAK,eAAiB,CAClB,QACA,OACA,QACH,EACDg8C,KAAA,KAAeh8C,qLC3Pf,OAAO,eAAc/jB,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAA+B,qBAAAA,EAAA,wBAAkC,OACjE,MAAMy/D,EAA6BxjE,6BAAmC,EAChEsjE,EAAsCt/D,kBAAA,EACtC8/D,EAA0B7/D,YAAA,EAIhC,MAAMqgE,CAAwB,CAC1B,YAAYC,EAAY,CACpB,KAAK,WAAaA,CAC1B,CAII,eAAgB,CACZ,OAAO,KAAK,UACpB,CAsBI,WAAW5nF,EAAM6nF,EAAajvF,EAAUwuB,EAAQ,qBAAsB,CAClE,MAAMigE,EAAe,KAAK,WAAWrnF,CAAI,EAEzC,GAAIqnF,IAAiB,MAASA,GAAgBA,EAAa,KAAK,IAAM,KAClE,OAAO,KAGX,IAAIS,EAAkB,GACtB,GAAIT,GAAgBQ,EAAa,CAC7B,MAAM/vF,EAAQqvF,EAAO,KAAK,kBAAkBE,CAAY,EACxD,GAAIvvF,GAASA,IAAUkI,EACnB,GAAI,OAAOlI,GAAU,UAAa,CAACqvF,EAAO,KAAK,WAAWrvF,CAAK,GAAK,CAACqvF,EAAO,KAAK,eAAervF,CAAK,EAE5FqvF,EAAO,KAAK,mBAAmBrvF,CAAK,IACrCgwF,EAAkB,QAItB,QAAOhwF,CAG3B,CAEQ,MAAMU,EAAS2uF,EAAO,KAAK,UAAUnnF,EAAM,KAAK,UAAU,EACpD+nF,EAAQ,KAAK,WAAW,QAAQ,EAChCC,GAAiB,CAAC,CAACD,GAASA,IAAU,KAAOA,EAAM,QAAQ,GAAG,EAAI,EAClEroD,EAAO,KAAK,WAAW,OAAO,EAC9BuoD,EAAmBd,EAAO,KAAK,mBAAmBnnF,CAAI,EAC5D,GAAIxH,EAAQ,CACR,MAAM0vF,EAAqB,KAAK,WAAW1vF,CAAM,EAC3CV,EAAQqvF,EAAO,KAAK,kBAAkBe,CAAkB,EAC9D,GAAIpwF,EAAO,CACP,GAAI,OAAOowF,GAAuB,UAAY,CAACtvF,EAAQ,oBAInD,GAAI,CAACuuF,EAAO,KAAK,6BAA6BrvF,EAAOc,CAAO,EAExD,OAAOoH,UAKPlI,EAAM,CAAC,IAAM,KAAO,CAACmwF,GAAoB,CAACC,EAAmB,SAAS,GAAK,EAAEloF,KAAQ,KAAK,YAE1F,OAAOA,EAGf,OAAOlI,EAAQkI,EAAK,OAAOxH,EAAO,OAAS,CAAC,CAC5D,CACA,SACiBqvF,IAAiBE,GAASA,IAAU,IAAQnvF,EAAQ,0BAA6B8mC,GAAQsoD,IAC3F,CAACC,GAAoB,CAACd,EAAO,KAAK,aAAannF,CAAI,EACtD,GAAIgoF,EAAe,CACf,GAAIpvF,EAAQ,yBACR,OAASmvF,GAASroD,KAAYmnD,EAA2B,SAASkB,EAAOroD,CAAI,EAAI,IAAM1/B,EAGvF,MAAM,IAAI2mF,EAAa,WAAW,sCAAsC3mF,CAAI,iBAAiB+nF,CAAK,oBAAqBpB,EAAa,YAAY,qBAAqB,CAEzL,KAEgB,QAAOoB,EAAQ/nF,UAGd,CAAC6nF,GAAenoD,GAAQ,CAACuoD,GAAoB,CAACd,EAAO,KAAK,aAAannF,CAAI,EAChF,SAAW6mF,EAA2B,SAAS7mF,EAAM0/B,CAAI,EAG7D,GAAIooD,EACA,OAAO9nF,EAGP,MAAM,IAAI2mF,EAAa,WAAW,gDAAgD3mF,CAAI,OAAO,KAAK,UAAUqnF,CAAY,CAAC,IAAKV,EAAa,YAAY,mBAAmB,CAEtL,CAWI,WAAW3mD,EAAK+nD,EAAO,CAEnB,GAAIA,GAAS,KAAK,WAAW,QAAQ,GAAK/nD,EAAI,WAAW,KAAK,WAAW,QAAQ,CAAC,EAC9E,OAAOA,EAAI,OAAO,KAAK,WAAW,QAAQ,EAAE,MAAM,EAGtD,GAAI,CAAC+nD,GAAS,KAAK,WAAW,OAAO,GAAK/nD,EAAI,WAAW,KAAK,WAAW,OAAO,CAAC,EAC7E,OAAOA,EAAI,OAAO,KAAK,WAAW,OAAO,EAAE,MAAM,EAKrD,MAAMmoD,EAAoB,CAAE,OAAQ,GAAI,OAAQnoD,CAAK,EACrD,UAAW7nC,KAAO,KAAK,WAAY,CAC/B,MAAML,EAAQ,KAAK,WAAWK,CAAG,EACjC,GAAIL,GAAS,CAACqvF,EAAO,KAAK,mBAAmBhvF,CAAG,EAAG,CAC/C,MAAMiwF,EAAajB,EAAO,KAAK,kBAAkBrvF,CAAK,EACtD,GAAIkoC,EAAI,WAAWooD,CAAU,EAAG,CAC5B,MAAMC,EAASroD,EAAI,OAAOooD,EAAW,MAAM,EAC3C,GAAKC,EAMIA,EAAO,OAASF,EAAkB,OAAO,SAE9CA,EAAkB,OAAShwF,EAC3BgwF,EAAkB,OAASE,WARvBN,EAEA,OAAO5vF,CAQnC,CACA,CACA,CAEQ,OAAIgwF,EAAkB,OACXA,EAAkB,OAAS,IAAMA,EAAkB,OAEvDnoD,CACf,CACA,CACA5Y,EAAA,wBAAkCugE,EAClCvgE,EAA+B,qBAAA,CAC3B,mBAAoB,GACpB,wBAAyB,GACzB,yBAA0B,EAC7B,8LC1KD,OAAO,eAAekhE,cAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,cAAA,cAAG,OACOjlE,uBAAA,EAC/B,MAAMwjE,EAA6Bx/D,6BAAmC,EAChEs/D,EAAsCr/D,kBAAA,EACtCo/D,EAAwDn/D,2BAAA,EACxDghE,EAAgE/gE,+BAAA,EAChE2/D,EAA0B1/D,YAAA,EAIhC,IAAA6rK,EAAA,MAAM9qG,EAAc,CAChB,YAAY5vF,EAAS,CACjBA,EAAUA,GAAW,CAAE,EACvB,KAAK,eAAiBA,EAAQ,gBAAkB,IAAI8tF,EAAsB,oBAC1E,KAAK,cAAgB,CAAE,EACvB,KAAK,gBAAkB,CAAC9tF,EAAQ,eAChC,KAAK,wBAA0B,CAAC,CAACA,EAAQ,wBACzC,KAAK,yBAA2BA,EAAQ,0BAA4B,GACpE,KAAK,uBAAyB,2BAA4BA,EAAU,CAAC,CAACA,EAAQ,uBAAyB,EAC/G,CAUI,OAAO,iBAAiBd,EAAO2wF,EAAaC,EAAW,CACnD,GAAI,OAAO5wF,GAAU,SACjB,MAAM,IAAI6uF,EAAa,WAAW,sDAAsD,KAAK,UAAU7uF,CAAK,CAAC,IAAK4wF,CAAS,EAE/H,GAAI,CAACvB,EAAO,KAAK,mBAAmB,KAAKrvF,CAAK,EAAG,CAC7C,GAAI2wF,EACA,MAAM,IAAI9B,EAAa,WAAW,kEAAkE,KAAK,UAAU7uF,CAAK,CAAC,IAAK4wF,CAAS,EAGvI,MAAO,EAEvB,CACQ,MAAO,EACf,CASI,OAAO,kBAAkB5wF,EAAO6wF,EAAc,CAC1C,GAAI,OAAO7wF,GAAU,SACjB,MAAM,IAAI6uF,EAAa,WAAW,uDAAuD,KAAK,UAAU7uF,CAAK,CAAC,IAAK6uF,EAAa,YAAY,sBAAsB,EAEtK,GAAI,CAACQ,EAAO,KAAK,oBAAoB,KAAKrvF,CAAK,EAAG,CAC9C,GAAI6wF,EACA,MAAM,IAAIhC,EAAa,WAAW,6DAA6D,KAAK,UAAU7uF,CAAK,CAAC,IAAK6uF,EAAa,YAAY,sBAAsB,EAGxK,MAAO,EAEvB,CACQ,MAAO,EACf,CAMI,kBAAkBxkF,EAAS,CACvB,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EAAG,CACpC,IAAIrK,EAAQqK,EAAQhK,CAAG,EACvB,GAAIL,GAAS,OAAOA,GAAU,UACtBA,EAAM,UAAU,GAAK,CAACA,EAAM,KAAK,EAAG,CACpC,GAAI,OAAOA,EAAM,UAAU,GAAM,UAAYqvF,EAAO,KAAK,eAAervF,EAAM,UAAU,CAAC,EACrF,MAAM,IAAI6uF,EAAa,WAAW,gEAAgE7uF,EAAM,UAAU,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAExK7uF,EAAQqK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,MAAOA,EAAM,UAAU,CAAC,CAAE,EAC3FA,EAAM,KAAK,EAAIA,EAAM,UAAU,EAC3BqvF,EAAO,KAAK,mBAAmBrvF,EAAM,UAAU,CAAC,EAChD,OAAOA,EAAM,UAAU,EAGvBA,EAAM,UAAU,EAAI,EAE5C,CAEA,CACQ,OAAOqK,CACf,CASI,oBAAoBA,EAASymF,EAAyBz7E,EAAM,CACxD,MAAMy6E,EAAazlF,EAAQ,cAAe,EAC1C,UAAWhK,KAAQgV,GAAQ,OAAO,KAAKy6E,CAAU,EAE7C,GAAIT,EAAO,KAAK,sBAAsB,QAAQhvF,CAAG,EAAI,GAAK,CAACgvF,EAAO,KAAK,0BAA0BhvF,CAAG,EAAG,CAEnG,MAAM0wF,EAAWjB,EAAWzvF,CAAG,EAC/B,GAAIgvF,EAAO,KAAK,mBAAmBhvF,CAAG,GAAKgvF,EAAO,KAAK,uBAAuB,QAAQhvF,CAAG,GAAK,IACtFA,IAAQ,SAAW,OAAOyvF,EAAWzvF,CAAG,GAAM,UAC3C,EAAEyvF,EAAWzvF,CAAG,EAAE,YAAY,GAAKyvF,EAAWzvF,CAAG,EAAE,YAAY,IAAM,SACxE,MAAM,IAAIwuF,EAAa,WAAW;AAAA,gBAC1CxuF,CAAG,OAAO,KAAK,UAAU0wF,CAAQ,CAAC,GAAIlC,EAAa,YAAY,oBAAoB,EAInF,GAAIQ,EAAO,KAAK,sBAAsB,QAAQA,EAAO,KAAK,kBAAkB0B,CAAQ,CAAC,GAAK,EACtF,MAAM,IAAIlC,EAAa,WAAW;AAAA,gBACtCxuF,CAAG,OAAO,KAAK,UAAU0wF,CAAQ,CAAC,GAAIlC,EAAa,YAAY,qBAAqB,EAGpF,GAAIkC,GAAY1B,EAAO,KAAK,mBAAmBA,EAAO,KAAK,kBAAkB0B,CAAQ,CAAC,GAC/EA,EAAS,SAAS,IAAM,GAC3B,MAAM,IAAIlC,EAAa,WAAW,4CAA4CxuF,CAAG,OAAO,KAAK,UAAU0wF,CAAQ,CAAC,IAAKlC,EAAa,YAAY,uBAAuB,EAGzK,KAAOQ,EAAO,KAAK,cAAcS,EAAWzvF,CAAG,CAAC,GAAG,CAC/C,MAAML,EAAQ8vF,EAAWzvF,CAAG,EAC5B,IAAI2wF,EAAU,GACd,GAAI,OAAOhxF,GAAU,SACjB8vF,EAAWzvF,CAAG,EAAIgK,EAAQ,WAAWrK,EAAO,EAAI,EAChDgxF,EAAUA,GAAWhxF,IAAU8vF,EAAWzvF,CAAG,MAE5C,CACD,MAAMq5E,EAAK15E,EAAM,KAAK,EAChBJ,EAAOI,EAAM,OAAO,EAEpBixF,EAAgB,EAAE,YAAajxF,IAAUqvF,EAAO,KAAK,WAAWhvF,CAAG,EACzE,GAAI,QAASL,EAEe05E,GAAO,MAAQ,OAAOA,GAAO,WACjDoW,EAAWzvF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIyvF,EAAWzvF,CAAG,CAAC,EAAG,CAAE,MAAOgK,EAAQ,WAAWqvE,EAAI,EAAI,EAAG,EAC3GsX,EAAUA,GAAWtX,IAAOoW,EAAWzvF,CAAG,EAAE,KAAK,WAGhD,CAACgvF,EAAO,KAAK,mBAAmBhvF,CAAG,GAAK4wF,EAAe,CAE5D,MAAMC,EAAQ7mF,EAAQ,WAAWhK,EAAK,EAAI,EACtC6wF,IAAU7wF,IAEVyvF,EAAWzvF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIyvF,EAAWzvF,CAAG,CAAC,EAAG,CAAE,MAAO6wF,CAAK,CAAE,EACpFF,EAAU,GAE1C,CACwB,GAAIpxF,GAAQ,OAAOA,GAAS,UAAYA,IAAS,WACzC,CAACI,EAAM,YAAY,GAAK,CAACA,EAAM,YAAY,EAAE,OAAO,IACrDixF,EAAe,CAElB,IAAIE,EAAe9mF,EAAQ,WAAWzK,EAAM,EAAI,EAC5CkxF,GAA2BlxF,IAASuxF,IACpCA,EAAe9mF,EAAQ,WAAWzK,EAAM,EAAK,GAE7CuxF,IAAiBvxF,IACjBoxF,EAAU,GACVlB,EAAWzvF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIyvF,EAAWzvF,CAAG,CAAC,EAAG,CAAE,QAAS8wF,CAAY,CAAE,EAE7H,CACA,CACoB,GAAI,CAACH,EACD,KAExB,CACA,CAEA,CAMI,UAAU3mF,EAAS,CAAE,eAAA+mF,EAAgB,sBAAAC,CAAqB,EAAI,CAE1D,GAAIA,GAAyBD,IAAmB,EAC5C,UAAW/wF,KAAO,OAAO,KAAKgK,CAAO,EACjC,GAAIhK,IAAQ,aAAe,OAAOgK,EAAQhK,CAAG,GAAM,SAC/CgK,EAAQhK,CAAG,EAAIgK,EAAQhK,CAAG,EAAE,YAAa,MAExC,CACD,MAAML,EAAQqK,EAAQhK,CAAG,EACzB,GAAIL,GAAS,OAAOA,GAAU,UACtB,OAAOA,EAAM,WAAW,GAAM,SAAU,CACxC,MAAMkkC,EAAYlkC,EAAM,WAAW,EAAE,YAAa,EAC9CkkC,IAAclkC,EAAM,WAAW,IAC/BqK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,YAAakkC,CAAS,CAAE,EAEjH,CAEA,CAGA,CAKI,iBAAiB75B,EAAS,CACtB,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EAAG,CACpC,MAAMrK,EAAQqK,EAAQhK,CAAG,EACzB,GAAIL,GAAS,OAAOA,GAAU,UAC1B,GAAI,OAAOA,EAAM,YAAY,GAAM,SAC/BqK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEL,CAAK,EAAG,CAAE,aAAc,CAAE,CAACA,EAAM,YAAY,CAAC,EAAG,EAAI,EAAI,UAEnG,MAAM,QAAQA,EAAM,YAAY,CAAC,EAAG,CACzC,MAAMkb,EAAW,CAAE,EACnB,UAAWo2E,KAAkBtxF,EAAM,YAAY,EAC3Ckb,EAASo2E,CAAc,EAAI,GAE/BjnF,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,aAAckb,CAAQ,CAAE,CACrG,EAEA,CACA,CAMI,qBAAqB7Q,EAAS,CAAE,eAAA+mF,CAAc,EAAIG,EAAe,CAC7D,GAAIH,GAAkBA,GAAkB,KAChC/mF,EAAQ,YAAY,EAAG,CACvB,UAAWhK,KAAO,OAAO,KAAKgK,CAAO,EACjC,GAAI,CAAAglF,EAAO,KAAK,0BAA0BhvF,CAAG,GAGzC,CAACgvF,EAAO,KAAK,mBAAmBhvF,CAAG,GAAK,CAACgvF,EAAO,KAAK,gBAAgBhlF,EAAShK,CAAG,EAAG,CACpF,MAAML,EAAQqK,EAAQhK,CAAG,EACrBL,GAAS,OAAOA,GAAU,SACpB,eAAgBqK,EAAQhK,CAAG,IAE7BgK,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIgK,EAAQhK,CAAG,CAAC,EAAG,CAAE,aAAc,EAAI,CAAE,IAKxFgK,EAAQhK,CAAG,EAAI,CACX,MAAOL,EACP,aAAc,EACjB,EACGqvF,EAAO,KAAK,6BAA6BrvF,EAAOuxF,CAAa,IAC7DlnF,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIgK,EAAQhK,CAAG,CAAC,EAAG,CAAE,UAAW,EAAI,CAAE,GAGjH,CAEgB,OAAOgK,EAAQ,YAAY,CAC3C,CAEA,CASI,6BAA6BmnF,EAAeC,EAAcF,EAAel8E,EAAM,CAC3E,UAAWhV,KAAQgV,GAA0C,OAAO,KAAKo8E,CAAY,EACjF,GAAIpC,EAAO,KAAK,gBAAgBmC,EAAenxF,CAAG,IAI1C,OAAOoxF,EAAapxF,CAAG,GAAM,SAC7BoxF,EAAapxF,CAAG,EAAI,CAAE,MAAOoxF,EAAapxF,CAAG,EAAG,aAAc,EAAM,EAMpEoxF,EAAapxF,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,GAAIoxF,EAAapxF,CAAG,CAAC,EAAG,CAAE,aAAc,EAAI,CAAE,EAG9F,CAACgvF,EAAO,KAAK,UAAUmC,EAAcnxF,CAAG,EAAGoxF,EAAapxF,CAAG,CAAC,GAC5D,MAAM,IAAIwuF,EAAa,WAAW,+CAA+CxuF,CAAG,SAAS,KAAK,UAAUgvF,EAAO,KAAK,kBAAkBmC,EAAcnxF,CAAG,CAAC,CAAC,CAAC,OAAO,KAAK,UAAUgvF,EAAO,KAAK,kBAAkBoC,EAAapxF,CAAG,CAAC,CAAC,CAAC,GAAIwuF,EAAa,YAAY,2BAA2B,CAIjT,CAMI,SAASxkF,EAAS,CAAE,eAAA+mF,GAAkB,CAClC,UAAW/wF,KAAO,OAAO,KAAKgK,CAAO,EAAG,CAEpC,GAAIglF,EAAO,KAAK,0BAA0BhvF,CAAG,EACzC,SAGJ,GAAIA,IAAQ,GACR,MAAM,IAAIwuF,EAAa,WAAW,wCAAwCxuF,CAAG,OAAO,KAAK,UAAUgK,EAAQhK,CAAG,CAAC,CAAC,IAAKwuF,EAAa,YAAY,uBAAuB,EAEzK,MAAM7uF,EAAQqK,EAAQhK,CAAG,EACnBqxF,EAAY,OAAO1xF,EAEzB,GAAIqvF,EAAO,KAAK,mBAAmBhvF,CAAG,EAAG,CACrC,OAAQA,EAAI,OAAO,CAAC,EAAC,CACjB,IAAK,QACD,GAAIL,IAAU,MAAQ0xF,IAAc,SAChC,MAAM,IAAI7C,EAAa,WAAW,gCAAgC7uF,CAAK,GAAI6uF,EAAa,YAAY,qBAAqB,EAE7H,MACJ,IAAK,OACD,GAAI7uF,IAAU,MAAQ0xF,IAAc,SAChC,MAAM,IAAI7C,EAAa,WAAW,+BAA+BxkF,EAAQhK,CAAG,CAAC,GAAIwuF,EAAa,YAAY,gBAAgB,EAE9H,MACJ,IAAK,WACG7uF,IAAU,MACV0wF,GAAc,iBAAiB1wF,EAAO,GAAM6uF,EAAa,YAAY,wBAAwB,EAEjG,MACJ,IAAK,UACD,GAAI7uF,IAAU,MAAQ0xF,IAAc,SAChC,MAAM,IAAI7C,EAAa,WAAW,qCAAqC7uF,CAAK,GAAI6uF,EAAa,YAAY,qBAAqB,EAElI,MACJ,IAAK,YACG7uF,IAAU,MACV0wF,GAAc,kBAAkB1wF,EAAO,EAAI,EAE/C,MACJ,IAAK,YACD,GAAIoxF,IAAmB,EACnB,MAAM,IAAIvC,EAAa,WAAW,wCAAwC7uF,CAAK,GAAI6uF,EAAa,YAAY,qBAAqB,EAErI,GAAI7uF,IAAU,MAAQ0xF,IAAc,UAChC,MAAM,IAAI7C,EAAa,WAAW,sCAAsC7uF,CAAK,GAAI6uF,EAAa,YAAY,uBAAuB,EAErI,KACxB,CAEgB,GAAIQ,EAAO,KAAK,eAAehvF,CAAG,GAAKgvF,EAAO,KAAK,eAAeA,EAAO,KAAK,kBAAkBrvF,CAAK,CAAC,EAClG,MAAM,IAAI6uF,EAAa,WAAW,gDAAgDxuF,CAAG,OAAOgvF,EAAO,KAC9F,kBAAkBrvF,CAAK,CAAC,IAAK6uF,EAAa,YAAY,oBAAoB,EAEnF,QAChB,CAEY,GAAI7uF,IAAU,KACV,OAAQ0xF,EAAS,CACb,IAAK,SACD,GAAIrC,EAAO,KAAK,UAAUrvF,EAAOqK,CAAO,IAAMhK,EAC1C,MAAM,IAAIwuF,EAAa,WAAW,oDAAoDxuF,CAAG,OAAO,KAC3F,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,kBAAkB,EAEzE,GAAIQ,EAAO,KAAK,eAAehvF,CAAG,EAAG,CACjC,GAAIL,IAAU,QACV,MAAM,IAAI6uF,EAAa,WAAW,4CAA4CxuF,CAAG,OAAOL,CAAK,IAAK6uF,EAAa,YAAY,mBAAmB,EAE7I,GAAIQ,EAAO,KAAK,WAAWrvF,CAAK,GAAKA,IAAU,IAAIywF,EAA0B,wBAAwBpmF,CAAO,EAAE,WAAWhK,CAAG,EAC7H,MAAM,IAAIwuF,EAAa,WAAW,iDAAiDxuF,CAAG,OAAOL,CAAK,IAAK6uF,EAAa,YAAY,mBAAmB,CAEnL,CACwB,MACJ,IAAK,SACD,GAAI,CAACQ,EAAO,KAAK,aAAahvF,CAAG,GAAK,EAAE,QAASL,KACzCA,EAAM,OAAO,IAAM,MAAQ,CAACqK,EAAQ,OAAO,EAAI,CAACA,EAAQ,QAAQ,GACpE,MAAM,IAAIwkF,EAAa,WAAW,kCAAkCxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAExJ,UAAW8C,KAAa,OAAO,KAAK3xF,CAAK,EAAG,CACxC,MAAM4xF,EAAc5xF,EAAM2xF,CAAS,EACnC,GAAKC,EAGL,OAAQD,EAAS,CACb,IAAK,MACD,GAAItC,EAAO,KAAK,eAAeuC,CAAW,GACnCA,IAAgB,SAAWA,IAAgB,OAASA,IAAgB,UAAYA,IAAgB,QACnG,MAAM,IAAI/C,EAAa,WAAW,gDAAgDxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAEtK,GAAIQ,EAAO,KAAK,eAAehvF,CAAG,EAAG,CACjC,GAAIuxF,IAAgB,QAChB,MAAM,IAAI/C,EAAa,WAAW,4CAA4CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAE7J,GAAIQ,EAAO,KAAK,WAAWuC,CAAW,GACpCA,IAAgB,IAAInB,EAA0B,wBAAwBpmF,CAAO,EAAE,WAAWhK,CAAG,EAChG,MAAM,IAAIwuF,EAAa,WAAW,iDAAiDxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,CAE/M,CACoC,GAAI,OAAO+C,GAAgB,SACvB,MAAM,IAAI/C,EAAa,WAAW,8CAA8CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,mBAAmB,EAEpK,GAAIQ,EAAO,KAAK,UAAUuC,EAAavnF,CAAO,IAAMhK,EAChD,MAAM,IAAIwuF,EAAa,WAAW,oDAAoDxuF,CAAG,OAAO,KAC3F,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,kBAAkB,EAEzE,MACJ,IAAK,QACD,GAAI7uF,EAAM,YAAY,IAAM,SAAW4xF,IAAgB,OAASA,IAAgB,SAC5E,MAAM,IAAI/C,EAAa,WAAW,iEAAiExuF,CAAG,OAAOuxF,CAAW,IAAK/C,EAAa,YAAY,oBAAoB,EAE9K,GAAI,OAAO+C,GAAgB,SACvB,MAAM,IAAI/C,EAAa,WAAW,kDAAkD,KAAK,UAAU6C,CAAS,CAAC,IAAK7C,EAAa,YAAY,oBAAoB,EAEnK,GAAI+C,IAAgB,OAASA,IAAgB,WACrCR,IAAmB,GAAOQ,IAAgB,WAC1CR,IAAmB,GAAOQ,IAAgB,WAC1CA,EAAY,CAAC,IAAM,KAAO,CAACvC,EAAO,KAAK,WAAWuC,CAAW,GACjE,MAAM,IAAI/C,EAAa,WAAW,oDAAoDxuF,CAAG,OAAOuxF,CAAW,IAAK/C,EAAa,YAAY,oBAAoB,EAEjK,MACJ,IAAK,WACD,GAAI,OAAO+C,GAAgB,UAAY5xF,EAAM,KAAK,GAAKA,EAAM,KAAK,IAAM4xF,EACpE,MAAM,IAAI/C,EAAa,WAAW,uDAAuDxuF,CAAG,MACjIuxF,CAAW,UAAU5xF,EAAM,KAAK,CAAC,IAAK6uF,EAAa,YAAY,wBAAwB,EAEtD,GAAI,UAAW7uF,EACX,MAAM,IAAI6uF,EAAa,WAAW,iDAAiDxuF,CAAG,IAAKwuF,EAAa,YAAY,wBAAwB,EAEhJ,MACJ,IAAK,aACD,GAAIuC,IAAmB,IACf,OAAO,KAAKQ,CAAW,EAAE,OAAS,GAC/BvC,EAAO,KAAK,eAAe,QAAQ,OAAO,KAAKuC,CAAW,EAAE,CAAC,CAAC,EAAI,GACrE,MAAM,IAAI/C,EAAa,WAAW,gCAAgCxuF,CAAG,OAAO,OAAO,KAAKuxF,CAAW,CAAC,kCAC1HvC,EAAO,KAAK,eAAe,KAAK,IAAI,CAAC,GAAIR,EAAa,YAAY,yBAAyB,EAG7E,UAAWyC,KAAkB,OAAO,KAAKM,CAAW,EAAG,CACnD,GAAIN,IAAmB,SAAWtxF,EAAM,UAAU,EAC9C,MAAM,IAAI6uF,EAAa,WAAW,6EAA6ExuF,CAAG,IAAKwuF,EAAa,YAAY,wBAAwB,EAE5K,GAAIQ,EAAO,KAAK,WAAW,QAAQiC,CAAc,EAAI,EACjD,MAAM,IAAIzC,EAAa,WAAW,gCAAgCxuF,CAAG,OAAOixF,CAAc,sBACrHjC,EAAO,KAAK,WAAW,KAAK,IAAI,CAAC,GAAIR,EAAa,YAAY,yBAAyB,CAExG,CACoC,MACJ,IAAK,YACD6B,GAAc,iBAAiBkB,EAAa,GAAM/C,EAAa,YAAY,wBAAwB,EACnG,MACJ,IAAK,aACD6B,GAAc,kBAAkBkB,EAAa,EAAI,EACjD,MACJ,IAAK,UACD,GAAIA,IAAgB,MAAQ,OAAOA,GAAgB,UAC/C,MAAM,IAAI/C,EAAa,WAAW,8CAA8CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,oBAAoB,EAErK,GAAI,EAAE,QAAS7uF,IAAU,CAACqvF,EAAO,KAAK,WAAWhvF,CAAG,EAChD,MAAM,IAAIwuF,EAAa,WAAW,mCAAmCxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,uBAAuB,EAE7J,MACJ,IAAK,SACD,GAAIuC,IAAmB,GAAO,CAACpxF,EAAM,YAAY,GAAK,CAACA,EAAM,YAAY,EAAE,QAAQ,EAC/E,MAAM,IAAI6uF,EAAa,WAAW,gDAAgDxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,uBAAuB,EAE1K,MACJ,IAAK,QACD,GAAIQ,EAAO,KAAK,mBAAmBuC,CAAW,GAAKA,IAAgB,QAC/D,MAAM,IAAI/C,EAAa,WAAW,0CAA0CxuF,CAAG,OAAO,KAAK,UAAUL,CAAK,CAAC,IAAK6uF,EAAa,YAAY,kBAAkB,CAEnM,CACA,CACwB,MACJ,QACI,MAAM,IAAIA,EAAa,WAAW,iCAAiCxuF,CAAG,OAAOL,CAAK,IAAK6uF,EAAa,YAAY,uBAAuB,CAC/J,CAEA,CACA,CAQI,eAAexkF,EAASvJ,EAAS+wF,EAAmB,CAEhD,OAAI,OAAOxnF,GAAY,WAInBwnF,GAAqB,EAAE,UAAWxnF,IAAYvJ,EAAQ,eACnD,OAAOA,EAAQ,eAAkB,UAAY,UAAWA,EAAQ,gBACnEuJ,EAAQ,OAAO,EAAIvJ,EAAQ,cAAc,OAAO,EAC5CA,EAAQ,cAAc,iBAAiB,IACvCuJ,EAAQ,iBAAiB,EAAI,KAIjCvJ,EAAQ,SAAW,CAACA,EAAQ,WACtB,UAAWuJ,EAKRA,EAAQ,OAAO,IAAM,MAAQ,OAAOA,EAAQ,OAAO,GAAM,UAC3D,CAACglF,EAAO,KAAK,WAAWhlF,EAAQ,OAAO,CAAC,IAE3CA,EAAQ,OAAO,KAAQ0kF,EAA2B,SAAS1kF,EAAQ,OAAO,EAAGvJ,EAAQ,eAAiBA,EAAQ,cAAc,OAAO,GAAKA,EAAQ,OAAO,IANvJuJ,EAAQ,OAAO,EAAIvJ,EAAQ,QAC3BuJ,EAAQ,iBAAiB,EAAI,MAQ9BA,CACf,CAOI,oBAAoBimF,EAAY/iD,EAAS,CACrC,GAAI,CAAC8hD,EAAO,KAAK,WAAWiB,CAAU,EAClC,GAAI,CACAA,KAAiBvB,EAA2B,SAASuB,EAAY/iD,CAAO,CACxF,MACuB,CACP,MAAM,IAAI,MAAM,wBAAwB+iD,CAAU,EAAE,CACpE,CAGQ,OAAI,KAAK,wBAA0BA,EAAW,WAAW,mBAAmB,IACxEA,EAAa,uBAEVA,CACf,CASI,MAAM,mBAAmBjmF,EAASvJ,EAASuU,EAAM,CAC7C,UAAWhV,KAAQgV,GAA0C,OAAO,KAAKhL,CAAO,EAAI,CAChF,MAAMrK,EAAQqK,EAAQhK,CAAG,EACzB,GAAIL,GAAS,OAAOA,GAAU,UACtB,aAAcA,GAASA,EAAM,UAAU,IAAM,MAAQ,CAACc,EAAQ,qBAAsB,CAMpF,GAAI,KAAK,gBACL,GAAI,CACA,MAAMgxF,EAAgB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEznF,CAAO,EAAG,CAAE,CAAChK,CAAG,EAAG,OAAO,OAAO,CAAA,EAAIgK,EAAQhK,CAAG,CAAC,EAAG,EAC1G,OAAOyxF,EAAczxF,CAAG,EAAE,UAAU,EACpC,MAAM,KAAK,MAAML,EAAM,UAAU,EAAG,OAAO,OAAO,OAAO,OAAO,GAAIc,CAAO,EAAG,CAAE,SAAU,GAAO,cAAAgxF,EAAe,iBAAkB,GAAM,2BAA4B,GAAM,qBAAsB,EAAI,CAAE,CAAC,CACnO,OAC+BntG,EAAG,CACN,MAAM,IAAIkqG,EAAa,WAAWlqG,EAAE,QAASkqG,EAAa,YAAY,sBAAsB,CACxH,CAEoBxkF,EAAQhK,CAAG,EAAI,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIL,CAAK,EAAG,CAAE,YAAa,MAAM,KAAK,MAAMA,EAAM,UAAU,EAAG,OAAO,OAAO,OAAO,OAAO,CAAA,EAAIc,CAAO,EAAG,CAAE,SAAU,GAAO,kBAAmB,GAAM,2BAA4B,GAAM,cAAeuJ,CAAO,CAAE,CAAC,GAClP,cAAe,CAAA,CAAE,CAC9C,CAEA,CACQ,OAAOA,CACf,CACI,MAAM,MAAMA,EAASvJ,EAAU,CAAE,EAGjCixF,EAAkB,CAAA,EAAI,CAClB,KAAM,CAAE,QAAAxkD,EAAS,cAAAukD,EAAe,SAAAE,EAAU,eAAAZ,EAAiBV,GAAc,wBAAyB,sBAAAW,EAAuB,iBAAAY,EAAkB,kBAAAC,CAAoB,EAAGpxF,EAC5JqxF,EAAiBrxF,EAAQ,gBAAkB,CAAE,EAEnD,GAAI,OAAO,KAAKqxF,CAAc,EAAE,QAAU,KAAK,yBAC3C,MAAM,IAAItD,EAAa,WAAW,sDAAwD,OAAO,KAAKsD,CAAc,EAAGtD,EAAa,YAAY,gBAAgB,EAEpK,GAAIxkF,GAAY,KAA+B,CAE3C,GAAI,CAAC4nF,GAAoBH,GAAiBzC,EAAO,KAAK,kBAAkByC,CAAa,EACjF,MAAM,IAAIjD,EAAa,WAAW,yDAA0DA,EAAa,YAAY,6BAA6B,EAGtJ,OAAO,IAAI4B,EAA0B,wBAAwB,KAAK,eAAe,GAAI3vF,EAAS,EAAK,CAAC,CAChH,SACiB,OAAOuJ,GAAY,SAAU,CAClC,MAAMimF,EAAa,KAAK,oBAAoBjmF,EAASkjC,CAAO,EACtD6kD,EAAiB,KAAK,kBAAkB9B,EAAYxvF,CAAO,EACjE,GAAIsxF,EACA,OAAO,IAAI3B,EAA0B,wBAAwB2B,CAAc,EAE/E,MAAMC,EAAsB,MAAM,KAAK,MAAM,MAAM,KAAK,KAAK/B,CAAU,EAAG,OAAO,OAAO,OAAO,OAAO,CAAE,EAAExvF,CAAO,EAAG,CAAE,QAASwvF,EAAY,SAAU,GAAM,eAAgB,OAAO,OAAO,OAAO,OAAO,CAAA,EAAI6B,CAAc,EAAG,CAAE,CAAC7B,CAAU,EAAG,EAAI,CAAE,CAAC,CAAE,CAAC,EACtP,YAAK,eAAe+B,EAAoB,cAAa,EAAIvxF,EAAS,EAAI,EAC/DuxF,CACnB,SACiB,MAAM,QAAQhoF,CAAO,EAAG,CAE7B,MAAMioF,EAAc,CAAE,EAChB5mE,EAAW,MAAM,QAAQ,IAAIrhB,EAAQ,IAAI,CAACs3D,EAAY58E,IAAM,CAC9D,GAAI,OAAO48E,GAAe,SAAU,CAChC,MAAM2uB,EAAa,KAAK,oBAAoB3uB,EAAYp0B,CAAO,EAC/D+kD,EAAYvtG,CAAC,EAAIurG,EACjB,MAAM8B,EAAiB,KAAK,kBAAkB9B,EAAYxvF,CAAO,EACjE,OAAIsxF,GAGG,KAAK,KAAK9B,CAAU,CAC/C,KAEoB,QAAO3uB,CAE3B,CAAa,CAAC,EAEF,GAAIuwB,EACA,OAAO,IAAIzB,EAA0B,wBAAwB/kE,CAAQ,EAEzE,MAAM6mE,EAAkB,MAAM7mE,EAAS,OAAO,CAAC8mE,EAAmBlZ,EAAcv0F,IAAMytG,EACjF,KAAMC,GAAe,KAAK,MAAMnZ,EAAc,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEx4E,CAAO,EAAG,CAAE,QAASwxF,EAAYvtG,CAAC,GAAK+b,EAAQ,QAAS,SAAU,CAAC,CAACwxF,EAAYvtG,CAAC,GAAK+b,EAAQ,SAAU,cAAe2xF,EAAW,cAAa,EAAI,eAAgBH,EAAYvtG,CAAC,EAAI,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEotG,CAAc,EAAG,CAAE,CAACG,EAAYvtG,CAAC,CAAC,EAAG,EAAI,CAAE,EAAIotG,EAAgB,EAEtW,CACI,eAAgBptG,EAAI2mC,EAAS,OAAS,CACtD,CAAa,CAAC,EAAG,QAAQ,QAAQ,IAAI+kE,EAA0B,wBAAwBqB,GAAiB,CAAE,CAAA,CAAC,CAAC,EAEhG,YAAK,eAAeS,EAAgB,cAAa,EAAIzxF,EAAS,EAAI,EAC3DyxF,CACnB,SACiB,OAAOloF,GAAY,SAAU,CAClC,GAAI,aAAcA,EACd,OAAO,MAAM,KAAK,MAAMA,EAAQ,UAAU,EAAGvJ,CAAO,EAcxD,GAXAuJ,EAAU,OAAO,OAAO,CAAA,EAAIA,CAAO,EAE/B2nF,GACA,OAAO3nF,EAAQ,OAAO,EAG1B,KAAK,eAAeA,EAASvJ,EAAS,EAAI,EAG1C,KAAK,iBAAiBuJ,CAAO,EAEzB6nF,EACA,OAAO,IAAIzB,EAA0B,wBAAwBpmF,CAAO,EAGxE,IAAIqoF,EAAgB,CAAE,EACtB,GAAI,YAAaroF,EACb,GAAI+mF,GAAkB,IAAK,CAEvB,GAAI,OAAO/mF,EAAQ,SAAS,GAAM,SAC9B,MAAM,IAAIwkF,EAAa,WAAW,8CAAgD,OAAOxkF,EAAQ,SAAS,EAAGwkF,EAAa,YAAY,oBAAoB,EAG9J6D,EAAgB,MAAM,KAAK,kBAAkB,KAAK,oBAAoBroF,EAAQ,SAAS,EAAGkjC,CAAO,CAAC,EAClG,OAAOljC,EAAQ,SAAS,CAC5C,KAEoB,OAAM,IAAIwkF,EAAa,WAAW,oDAAqDA,EAAa,YAAY,qBAAqB,EAG7I,KAAK,qBAAqB6D,EAAe,CAAE,eAAAtB,CAAgB,EAAEX,EAA0B,oBAAoB,EAC3G,MAAMkC,EAAa,OAAO,OAAOD,EAAeroF,CAAO,EAEvD,KAAK,kBAAkBsoF,CAAU,EACjC,KAAK,UAAUA,EAAY,CAAE,eAAAvB,EAAgB,sBAAAC,CAAqB,CAAE,EACpE,KAAK,qBAAqBsB,EAAY,CAAE,eAAAvB,CAAgB,EAAEX,EAA0B,oBAAoB,EACxG,MAAMp7E,EAAO,OAAO,KAAKs9E,CAAU,EAC7BC,EAAkB,CAAE,EAC1B,GAAI,OAAOd,GAAkB,SAEzB,UAAWzxF,KAAOyxF,EACVzxF,KAAOsyF,EACPC,EAAgB,KAAKvyF,CAAG,EAGxBsyF,EAAWtyF,CAAG,EAAIyxF,EAAczxF,CAAG,EAK/C,MAAM,KAAK,mBAAmBsyF,EAAY7xF,EAASuU,CAAI,EACvD,MAAMw9E,EAAoB,IAAIpC,EAA0B,wBAAwBkC,CAAU,EAE1F,OAAKA,GAAcA,EAAW,UAAU,GAAKjC,GAAc,0BAA4B,MAC9ErmF,EAAQ,QAAQ,GAAK,OAAOA,EAAQ,QAAQ,GAAM,UAAaA,EAAQ,QAAQ,IAAM,MACtFynF,GAAiB,WAAYA,GAAiBznF,EAAQ,QAAQ,EAAE,QAAQ,GAAG,EAAI,EAC/EsoF,EAAW,QAAQ,EAAIb,EAAc,QAAQ,EAAIznF,EAAQ,QAAQ,GAE5DglF,EAAO,KAAK,aAAahlF,EAAQ,QAAQ,CAAC,GAAKA,EAAQ,QAAQ,IAAKsoF,KAEzEA,EAAW,QAAQ,EAAIE,EAAkB,WAAWxoF,EAAQ,QAAQ,EAAG,EAAI,IAGnF,KAAK,oBAAoBwoF,EAAmB,KAAK,wBAAyBx9E,CAAI,EAE1E,CAAC48E,GAAoBH,GAAiBV,GAAkB,KACxD,KAAK,6BAA6BU,EAAea,EAAYlC,EAA0B,qBAAsBmC,CAAe,EAE5H,KAAK,iBAAmB,CAACb,EAAgB,gBACzC,KAAK,SAASY,EAAY,CAAE,eAAAvB,CAAc,CAAE,EAEzCyB,CACnB,KAEY,OAAM,IAAIhE,EAAa,WAAW,0EAA0ExkF,CAAO,GAAIwkF,EAAa,YAAY,qBAAqB,CAEjL,CAMI,MAAM,KAAKt8D,EAAK,CAEZ,MAAMo8B,EAAS,KAAK,cAAcp8B,CAAG,EACrC,GAAIo8B,EACA,OAAOA,EAGX,IAAI+sB,EACJ,GAAI,CACAA,EAAW,MAAM,KAAK,eAAe,KAAKnpD,CAAG,CACzD,OACe5tC,EAAG,CACN,MAAM,IAAIkqG,EAAa,WAAW,iCAAiCt8D,CAAG,KAAK5tC,EAAE,OAAO,GAAIkqG,EAAa,YAAY,6BAA6B,CAC1J,CAEQ,GAAI,EAAE,aAAcnT,GAChB,MAAM,IAAImT,EAAa,WAAW,yCAAyCt8D,CAAG,GAAIs8D,EAAa,YAAY,sBAAsB,EAErI,OAAO,KAAK,cAAct8D,CAAG,EAAImpD,EAAS,UAAU,CAC5D,CAUI,kBAAkBnpD,EAAKzxB,EAAS,CAC5B,GAAIyxB,KAAQzxB,EAAQ,gBAAkB,CAAE,GAAG,CACvC,GAAIA,EAAQ,2BACR,OAAOyxB,EAGP,MAAM,IAAIs8D,EAAa,WAAW,0CAA4Ct8D,EAAKs8D,EAAa,YAAY,2BAA2B,CAEvJ,CACQ,OAAO,IACf,CAKI,MAAM,kBAAkBiE,EAAkB,CAEtC,IAAIJ,EAAgB,MAAM,KAAK,KAAKI,CAAgB,EAEpD,GAAI,OAAOJ,GAAkB,UAAY,MAAM,QAAQA,CAAa,EAChE,MAAM,IAAI7D,EAAa,WAAW,gDAAkDiE,EAAkBjE,EAAa,YAAY,sBAAsB,EAGzJ,GAAI,YAAa6D,EACb,MAAM,IAAI7D,EAAa,WAAW,uDAAyDiE,EAAkBjE,EAAa,YAAY,qBAAqB,EAE/J,OAAA6D,EAAgB,OAAO,OAAO,CAAA,EAAIA,CAAa,EAG/C,KAAK,iBAAiBA,CAAa,EAC5BA,CACf,CACA,EACAhC,OAAAA,EAAc,wBAA0B,IACxCF,cAAA,cAAwBE,qKCnwBxB,OAAO,eAAe,gBAAS,aAAc,CAAE,MAAO,GAAM,8JCC5D,OAAO,eAAe,cAAS,aAAc,CAAE,MAAO,GAAM,+KCD5D,IAAIzhE,EAAmBC,qBAAQA,oBAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,qBAAQA,oBAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qBAA8B,EAAE+D,CAAO,EACpDD,EAAaE,kBAA2B,EAAED,CAAO,EACjDD,EAAaG,2BAAoC,EAAEF,CAAO,EAC1DD,EAAaI,uBAAgC,EAAEH,CAAO,EACtDD,EAAaK,qBAA8B,EAAEJ,CAAO,EACpDD,EAAaM,+BAAwC,EAAEL,CAAO,EAC9DD,EAAaO,YAAqB,EAAEN,CAAO,mOCrB3C,OAAO,eAAemsK,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMje,EAA0CjyJ,cAAA,EAC1CwyH,EAAqBxuH,cAAkC,EACvD0jE,EAA0DzjE,2BAAA,EAIhE,IAAAksK,EAAA,MAAMC,WAA+B1oG,EAAwB,mBAAoB,CAC7E,YAAY2oG,EAAcvxL,EAAS,CAC/B,MAAMsxL,GAAuB,cAAcC,EAAcvxL,CAAO,CAAC,EACjE,KAAK,aAAeuxL,EACpB,KAAK,QAAUvxL,CACvB,CACI,OAAO,cAAcuxL,EAAcvxL,EAAS,CACxC,MAAO,OAAOkoB,EAAK81H,IAAS,CACxB,MAAMxjJ,EAAW,MAAM+2L,EAAa,QAAQ,CAAE,MAAOrpK,EAAK,KAAA81H,EAAM,QAAAh+I,EAAS,EACzE,OAAAxF,EAAS,KAAO,SAAY,KAAK,MAAM,QAAUk5I,EAAmB,WAAWy/B,EAAW,UAAU,eAAe34K,EAAS,IAAI,CAAC,CAAC,EAC3HA,CACV,CACT,CACA,EACA42L,8BAAA,uBAAiCE,gMCtBjC,OAAO,eAAeE,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAM99D,EAAoDxyG,cAAA,EACpDsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCssK,EAA8DrsK,6BAAA,EAC9DgsK,EAA8D/rK,8BAAA,EAMpE,IAAAqsK,EAAA,cAAkCh+D,EAAgB,4BAA6B,CAY3E,YAAYh8H,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,WAAWmqB,EAAQmG,EAAWhoB,EAAS,CACzC,OAAIA,EAAQ,IAAIwnB,EAAkB,uBAAuB,oBAAoB,GAAKQ,IAAc,yBACjFtC,EAAO,UAAU,uEAAuE,EAEnG,CAACsC,GAAa,EAAEA,KAAa,KAAK,qBAAuBA,EAAU,SAAS,OAAO,MACxEtC,EAAO,UAAU,4BAA4BsC,CAAS,EAAE,EAEhE,MAAM,KAAK,kBAAkBnG,CAAM,CAClD,CACI,MAAM,UAAUA,EAAQmG,EAAWF,EAAe,CAC9C,MAAMoE,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAStF,MAAO,CAAE,KARMiqK,EAA0B,aAAa,iBAAiB5vK,EAAO,UAAU,SAAW,GAAImG,EAAWnG,EAAO,QAAS,CAC9H,YAAAqK,EACA,eAAgBpE,EAAc,IAAIN,EAAkB,mBAAmB,cAAc,GACjF,IAAI4pK,EAAyB,uBAAuB,KAAK,aAActpK,CAAa,EACxF,aAAcA,EAAc,IAAIN,EAAkB,mBAAmB,YAAY,EACjF,GAAGM,EAAc,IAAIN,EAAkB,mBAAmB,aAAa,CACnF,CAAS,EACmB,OAAO3F,EAAO,IAAI,CACvB,CACvB,CACA,EACA2vK,2BAAA,oBAA8BG,gICjD9B,IAAI/sK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2BAAgC,EAAE+D,CAAO,EACtDD,EAAaE,8BAAmC,EAAED,CAAO,gTChBzD,OAAO,eAAe2sK,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMlsK,EAAkCxE,cAAA,EAYxC,IAAA2wK,EAAA,cAAuCnsK,EAAO,KAAM,CAShD,YAAYhuB,EAAMo6L,EAAiB,CAC/B,MAAMp6L,CAAI,EACV,KAAK,gBAAkBo6L,CAC/B,CACI,MAAM,KAAKjwK,EAAQ,CACf,OAAIA,EAAO,sBAAwB,KAAK,kBAAoBA,EAAO,wBACpD6D,EAAO,UAAU,SAAS,KAAK,IAAI,2CAA2C7D,EAAO,oBAAoB,GAAG,EAEpH,KAAK,aAAaA,CAAM,CACvC,CACA,EACA+vK,gCAAA,yBAAmCG,qIClCnC,IAAIntK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gCAAqC,EAAE+D,CAAO,+RCf3D,OAAO,eAAe+sK,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAM7e,EAA0CjyJ,cAAA,EAC1C8hD,EAA0C99C,qBAAA,EAC1CmuF,EAAmBluF,oBAAyB,EAC5C+sF,EAAoB9sF,eAA0B,EAIpD,IAAA6sK,EAAA,KAAuC,CACnC,YAAY/pK,EAAKloB,EAASuxL,EAAc,CACpC,KAAK,IAAMrpK,EACX,KAAK,QAAUloB,EACf,KAAK,aAAeuxL,CAC5B,CACI,MAAM,OAAOptC,EAAa,CAEtB,MAAM+tC,EAAc,KAAK,yBAAyB/tC,EAAY,OAAQA,EAAY,MAAM,EACxF,MAAM,KAAK,wBAAwB+tC,CAAW,CACtD,CACI,yBAAyBC,EAAeC,EAAe,CACnD,OAAO,IAAIpvH,EAAgB,cAAc,CAAE,EAAE,CAAE,UAAW,EAAO,CAAA,EAC5D,OAAO,KAAK,iBAAiB,SAAUovH,CAAa,CAAC,EACrD,OAAOA,GAAiBD,EAAgB,CAAC;AAAA,CAAM,EAAI,CAAE,CAAA,EACrD,OAAO,KAAK,iBAAiB,SAAUA,CAAa,CAAC,CAClE,CACI,iBAAiB58L,EAAMg1C,EAAO,CAC1B,OAAKA,EAIEA,EACF,IAAKlF,GAAS,CACf,IAAI1Y,EAAa,MAAO0mF,EAAiB,cAAchuE,EAAK,OAAO,CAAC,OAAQguE,EAAiB,cAAchuE,EAAK,SAAS,CAAC,OAAQguE,EAAiB,cAAchuE,EAAK,MAAM,CAAC,KAC7K,OAAIA,EAAK,MAAM,WAAa,eACxB1Y,EAAa,KAAKA,CAAU;AAAA,EAG5BA,EAAa,cAAe0mF,EAAiB,cAAchuE,EAAK,KAAK,CAAC,MAAM1Y,CAAU;AAAA,EAEnFA,CACV,CAAA,EACI,QAAQ,CAAC,GAAGp3B,CAAI;AAAA,CAAW,CAAC,EAC5B,OAAO,CAAC,GAAG,CAAC,EAfN,IAAIytE,EAAgB,cAAc,CAAE,EAAE,CAAE,UAAW,GAAO,CAgB7E,CACI,MAAM,wBAAwBkvH,EAAa,CACvC,MAAM31H,EAAW,IAAI21C,EAAkB,SACvC31C,EAAS,KAAK21H,CAAW,EAEzB,MAAMz1E,EAAU,IAAI,QAAQ,CAAE,eAAgB,2BAA2B,CAAE,EACrEq2D,EAAe,MAAM,KAAK,aAAa,QAAQ,CACjD,QAAS,KAAK,QACd,KAAM,CACF,QAAAr2D,EACA,OAAQ,QACR,KAAM02D,EAAW,UAAU,oBAAoB52G,CAAQ,CAC1D,EACD,MAAO,KAAK,GACxB,CAAS,EACD,QAAU42G,EAAW,8BAA8B,KAAK,IAAKL,CAAY,CACjF,CACI,MAAM,aAAauf,EAASjuC,EAAmBC,EAAa,CACxD,MAAM,IAAI,MAAM,mEAAmE,CAC3F,CACI,MAAM,aAAaguC,EAASC,EAAsB,CAC9C,MAAM,IAAI,MAAM,mEAAmE,CAC3F,CACA,EACAN,wCAAA,iCAA2CO,wTCpE3C,OAAO,eAAeC,0CAAS,aAAc,CAAE,MAAO,GAAM,EACXA,0CAAA,0CAAG,OACpD,MAAMC,EAA4EvxK,cAAA,EAC5EwE,EAAkCR,cAAA,EAClC8sK,EAAkF7sK,wCAAA,EAIxF,IAAAutK,EAAA,cAAwDD,EAA4B,wBAAyB,CACzG,YAAY/6L,EAAM,CACd,MAAMA,EAAM,mBAAmB,CACvC,CACI,MAAM,aAAamqB,EAAQ,CACvB,MAAI,CAACA,EAAO,sBAAwB,CAACA,EAAO,SAAS,qBACtC6D,EAAO,UAAU,SAAS,KAAK,IAAI,4FAA4F,EAE1I,CAAC7D,EAAO,sBAAwB,CAACA,EAAO,UAC7B6D,EAAO,UAAU,SAAS,KAAK,IAAI,oDAAoD,KAE3FA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,YAAK,QAAQA,EAAO,QAAS,gDAAgDA,EAAO,GAAG,EAAE,EAClF,CACH,YAAa,IAAImwK,EAAmC,iCAAiCnwK,EAAO,IAAKA,EAAO,QAAS,KAAK,YAAY,CACrI,CACT,CACA,EACA2wK,iDAAA,0CAAoDG,sJC5BpD,IAAI/tK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iDAAsD,EAAE+D,CAAO,EAC5ED,EAAaE,wCAA6C,EAAED,CAAO,yQChBnE,OAAO,eAAe2tK,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMzf,EAA0CjyJ,cAAA,EAIhD,IAAA2xK,EAAA,KAA4B,CACxB,YAAY3qK,EAAKloB,EAAS8qF,EAAYymG,EAAcuB,EAAgCC,EAAsB,CACtG,KAAK,IAAM7qK,EACX,KAAK,QAAUloB,EACf,KAAK,WAAa8qF,EAClB,KAAK,aAAeymG,EACpB,KAAK,+BAAiCuB,EACtC,KAAK,qBAAuBC,CACpC,CACI,MAAM,OAAO5uC,EAAa,CACtB,GAAIA,EAAY,OACZ,MAAM,IAAI,MAAM,oDAAoD,EAEpEA,EAAY,QACZ,MAAM,KAAK,qBAAqB,SAAUA,EAAY,MAAM,CAExE,CACI,MAAM,qBAAqB5uJ,EAAMg1C,EAAO,CAEpC,KAAM,CAAE,WAAAugD,CAAU,EAAK,MAAM,KAAK,+BAA+B,QAAQ,CAAE,QAAS,KAAK,QAAS,WAAY,EAAI,CAAE,EAC9GkoG,EAAsB,KAAK,WAC5B,OAAOhrK,GAAaA,KAAa8iE,CAAU,EAE1C9iE,EAAYgrK,EAAoB,OAAS,EAC3CA,EAAoB,CAAC,EACrB,OAAO,KAAKloG,CAAU,EAAE,KAAK,CAACmoG,EAAOC,IAAUpoG,EAAWooG,CAAK,EAAIpoG,EAAWmoG,CAAK,CAAC,EAAE,CAAC,EAErF,CAAE,OAAQ,CAAE,KAAAnyL,CAAI,CAAI,EAAG,MAAM,KAAK,qBAAqB,QAAQ,CACjE,QAAS,KAAK,QACd,OAAQ,CAAE,WAAYypC,EAAO,QAAS,KAAK,OAAS,EACpD,gBAAiBviB,CAC7B,CAAS,EAEKy0F,EAAU,IAAI,QAAQ,CAAE,eAAgBz0F,CAAS,CAAE,EACnD8qJ,EAAe,MAAM,KAAK,aAAa,QAAQ,CACjD,QAAS,KAAK,QACd,KAAM,CACF,QAAAr2D,EACA,OAAQ,MACR,KAAM02D,EAAW,UAAU,oBAAoBryK,CAAI,CACtD,EACD,MAAO,KAAK,GACxB,CAAS,EACD,QAAUqyK,EAAW,8BAA8B,KAAK,IAAKL,CAAY,CACjF,CACI,MAAM,aAAauf,EAASjuC,EAAmBC,EAAa,CACxD,MAAM,IAAI,MAAM,uDAAuD,CAC/E,CACI,MAAM,aAAaguC,EAASC,EAAsB,CAC9C,MAAM,IAAI,MAAM,uDAAuD,CAC/E,CACA,EACAM,6BAAA,sBAAgCO,sPC1DhC,OAAO,eAAeC,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAMX,EAA4EvxK,cAAA,EAC5EwE,EAAkCR,cAAA,EAClC0tK,EAA4DztK,6BAAA,EAIlE,IAAAkuK,EAAA,cAA6CZ,EAA4B,wBAAyB,CAC9F,YAAY/6L,EAAM,CACd,MAAMA,EAAM,QAAQ,CAC5B,CACI,MAAM,aAAamqB,EAAQ,CACvB,GAAI,CAACA,EAAO,qBAAsB,CAC9B,GAAI,CAACA,EAAO,SAAS,kBAAoB,CAACA,EAAO,SAAS,iBAAiB,SAAS,KAAK,EACrF,SAAW6D,EAAO,UAAU,SAAS,KAAK,IAAI,2DAA2D,EAE7G,GAAI7D,EAAO,OACP,SAAW6D,EAAO,UAAU,SAAS,KAAK,IAAI,8DAA8D,CAE5H,CACQ,SAAWA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,YAAK,QAAQA,EAAO,QAAS,qCAAqCA,EAAO,GAAG,EAAE,EACvE,CACH,YAAa,IAAI+wK,EAAwB,sBAAsB/wK,EAAO,IAAKA,EAAO,QAASA,EAAO,SAAS,aAAe,CAAE,EAAE,KAAK,aAAc,KAAK,+BAAgC,KAAK,oBAAoB,CAClN,CACT,CACA,EACAuxK,sCAAA,+BAAyCE,2IC9BzC,IAAI1uK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,EACjED,EAAaE,6BAAkC,EAAED,CAAO,gUChBxD,OAAO,eAAesuK,gBAAS,aAAc,CAAE,MAAO,GAAM,EACrCA,gBAAA,gBAAG,OAC1B,MAAM7nK,EAAqBxK,wBAA2B,EAChDw8G,EAAUx4G,aAA6B,EACvCgtF,EAAoB/sF,eAA0B,EAKpD,IAAAquK,EAAA,KAAsB,CAClB,YAAYloH,EAAU,CAClBA,EAAWA,GAAY,CAAE,EACzB,KAAK,YAAcA,EAAS,aAAe,IAAI5/C,EAAmB,YAClE,KAAK,2BAA6B,CAAC,CAAC4/C,EAAS,0BACrD,CAUI,sBAAsBiuC,EAAsB,CACxC,MAAM1+C,EAAiB5+D,GAAUo4G,EAAa,KAAK,QAASp4G,CAAK,EACjEs9G,EAAqB,GAAG,QAAS1+C,CAAa,EAC9C,MAAMnjC,EAAS,IAAIgmG,EAAQ,YACrB1uH,EAAQ,CAAE,EAChB,IAAIyqG,EAAiB,GACjBC,EAAe,GACnB,MAAM35E,EAAY,CAAE,EACpB,IAAI0zJ,EAAkB,CAAE,EACpBC,EAAqB,GACrBC,EAAqB,GACrBC,EACAC,EAAc,GACdC,EAAuB,CAAE,EAC7Bp8J,EAAO,GAAG,QAASmjC,CAAa,EAChCnjC,EAAO,GAAG,UAAWo8C,GAAO,CACpBA,EAAI,OAAS,YAAc,KAAK,YAAY9kE,EAAO,CAAC,SAAU,MAAM,CAAC,EACrE+wB,EAAU,KAAK,KAAK,YAAY,SAAS+zC,EAAI,WAAW,IAAI,CAAC,EAExDA,EAAI,OAAS,WAAa,KAAK,YAAY9kE,EAAO,CAAC,QAAQ,CAAC,EACjE0qG,EAAe,GAEV5lC,EAAI,OAAS,UAAY,KAAK,YAAY9kE,EAAO,CAAC,SAAU,SAAS,CAAC,EAC3EykL,EAAkB,CAAE,EAEf3/G,EAAI,OAAS,WAAa,KAAK,YAAY9kE,EAAO,CAAC,SAAU,UAAW,QAAQ,CAAC,GACtF0kL,EAAqB5/G,EAAI,WAAW,MAAQ,GAC5C6/G,EAAqB,GACrBC,EAA2B,GAC3BC,EAAc,GACdC,EAAuB,CAAE,GAEpBhgH,EAAI,OAAS,UAAY,KAAK,gBAAgB9kE,EAAO,CAAC,SAAU,UAAW,QAAQ,CAAC,EACzF8kL,EAAqB,KAAK,CAAE,WAAY,CAAE,CAAA,CAAE,EAEvC9kL,EAAMA,EAAM,OAAS,CAAC,IAAM,UAAY,KAAK,gBAAgBA,EAAO,CAAC,SAAU,UAAW,SAAU,SAAS,CAAC,GACnH2kL,EAAqB,GACrBC,EAA2B,GAC3BC,EAAc,GACT,CAAC,UAAW,YAAa,QAAQ,EAAE,SAAS//G,EAAI,IAAI,EAIrDggH,EAAqBA,EAAqB,OAAS,CAAC,EAAE,iBAAmBhgH,EAAI,KAH7EjZ,EAAc,IAAI,MAAM,oCAAoCiZ,EAAI,IAAI,mBAAmBp8C,EAAO,KAAO,CAAC,EAAE,CAAC,GAMxG,KAAK,gBAAgB1oB,EAAO,CAAC,SAAU,UAAW,SAAU,SAAS,CAAC,IAC3E2kL,EAAqB7/G,EAAI,KACrB,aAAcA,EAAI,WAClB8/G,EAA2B9/G,EAAI,WAAW,UAAU,EAE/C,aAAcA,EAAI,WACvB8/G,EAA2B,KAAK,YAAY,UAAU9/G,EAAI,WAAW,QAAQ,EAG7E8/G,EAA2B,QAGnC5kL,EAAM,KAAK8kE,EAAI,IAAI,CAC/B,CAAS,EACDp8C,EAAO,GAAG,WAAYo8C,GAAO,CAQzB,GAPI,KAAK,YAAY9kE,EAAO,CAAC,SAAU,MAAM,CAAC,IAC1CqlG,EAAa,KAAK,YAAat0E,CAAS,EACxC05E,EAAiB,IAEjB,KAAK,YAAYzqG,EAAO,CAAC,SAAU,UAAW,QAAQ,CAAC,GACvDqlG,EAAa,KAAKo/E,CAAe,EAEjC,KAAK,gBAAgBzkL,EAAO,CAAC,SAAU,UAAW,SAAU,SAAS,CAAC,EAAG,CAEzE,IAAInR,EACJ,GAAI,CAAC61L,GAAsBC,EACvB94H,EAAc,IAAI,MAAM,oCAAoCnjC,EAAO,KAAO,CAAC,EAAE,CAAC,UAEzEi8J,IAAuB,MAC5B91L,EAAO,KAAK,YAAY,UAAUg2L,CAAW,UAExCF,IAAuB,QAC5B91L,EAAO,KAAK,YAAY,UAAUg2L,CAAW,UAExCF,IAAuB,UAC5B91L,EAAO,KAAK,YAAY,QAAQg2L,EAAaD,CAAwB,UAEhE5kL,EAAMA,EAAM,OAAS,CAAC,IAAM,SAAU,CAC3C,MAAM+kL,EAAsBD,EAAqB,IAAK,EAClDC,GAAuBA,EAAoB,WAAW,SAAWA,EAAoB,WAAW,WAAaA,EAAoB,WAAW,OAC5Il2L,EAAO,KAAK,YAAY,KAAKk2L,EAAoB,WAAW,QAASA,EAAoB,WAAW,UAAWA,EAAoB,WAAW,MAAM,EAGpJl5H,EAAc,IAAI,MAAM,oCAAoCnjC,EAAO,KAAO,CAAC,EAAE,CAAC,CAEtG,MACyBi8J,GACL94H,EAAc,IAAI,MAAM,sBAAsB84H,CAAkB,aAAaj8J,EAAO,KAAO,CAAC,EAAE,CAAC,EAEnG,GAAI75B,EACA,GAAIi2L,EAAqB,OAAS,EAAG,CAEjC,MAAMC,EAAsBD,EAAqBA,EAAqB,OAAS,CAAC,EAC5EC,EAAoB,WAAWA,EAAoB,gBAAgB,GACnEl5H,EAAc,IAAI,MAAM,OAAOk5H,EAAoB,gBAAgB,+BAA+Br8J,EAAO,KAAO,CAAC,6BAA6B,CAAC,EAEnJq8J,EAAoB,WAAWA,EAAoB,gBAAgB,EAAIl2L,CAC/F,KACyB,CAED,MAAM7H,EAAM,KAAK,2BAA8B,IAAM09L,EAAsBA,EAC3ED,EAAgBz9L,CAAG,EAAI6H,CAC/C,CAEgB81L,EAAqB,MACrC,CACY3kL,EAAM,IAAK,CACvB,CAAS,EACD0oB,EAAO,GAAG,OAAQhhC,GAAQ,CAClB,KAAK,gBAAgBsY,EAAO,CAAC,SAAU,UAAW,SAAU,SAAS,CAAC,GAAKA,EAAMA,EAAM,OAAS,CAAC,IAAM2kL,IACvGE,EAAcn9L,EAE9B,CAAS,EACD,MAAM29G,EAAekF,EAChB,GAAG,MAAOp9H,GAAK,CACXu9H,EAGKD,GACNpF,EAAa,KAAK,YAAa,EAAE,EAHjCA,EAAa,KAAK,QAAS,IAAI,MAAM,2CAA2C,CAAC,CAKxF,CAAA,EACI,KAAK,IAAInC,EAAkB,UAAU,CACtC,WAAY,GACZ,UAAUjR,EAAO5c,EAAU76C,EAAU,CACjC9R,EAAO,MAAMupE,CAAK,EAClBz3D,EAAU,CAC1B,CACA,CAAS,CAAC,EACF,OAAO6qE,CACf,CAOI,sBAAsBkF,EAAsB,CACxC,OAAO,IAAI,QAAQ,CAAC/iD,EAASC,IAAW,CACpC,MAAM/+B,EAAS,IAAIgmG,EAAQ,YACrB1uH,EAAQ,CAAE,EAChB0oB,EAAO,GAAG,QAAS++B,CAAM,EACzB/+B,EAAO,GAAG,UAAWo8C,GAAO,CACxB9kE,EAAM,KAAK8kE,EAAI,IAAI,CACnC,CAAa,EACDp8C,EAAO,GAAG,WAAYv7C,GAAK,CACvB6yB,EAAM,IAAK,CAC3B,CAAa,EACD0oB,EAAO,GAAG,OAAQhhC,GAAQ,CAClB,KAAK,YAAYsY,EAAO,CAAC,SAAU,SAAS,CAAC,GAC7CwnD,EAAQ9/D,IAAS,MAAM,CAE3C,CAAa,EACD6iH,EACK,GAAG,QAAS9iD,CAAM,EAClB,GAAG,OAAQv7E,GAAKw8C,EAAO,MAAMx8C,CAAC,CAAC,EAC/B,GAAG,MAAO,IAAMu7E,EAAO,IAAI,MAAM,kCAAkC,CAAC,CAAC,CACtF,CAAS,CACT,CACI,YAAY77E,EAAGc,EAAG,CACd,OAAOd,EAAE,SAAWc,EAAE,QAAUd,EAAE,MAAM,CAACW,EAAGb,IAAMgB,EAAEhB,CAAC,IAAMa,CAAC,CACpE,CACI,gBAAgBX,EAAGc,EAAG,CAClB,OAAOd,EAAE,QAAUc,EAAE,QAAUA,EAAE,MAAM,CAACH,EAAGb,IAAME,EAAEF,CAAC,IAAMa,CAAC,CACnE,CACA,EACAg4M,uBAAA,gBAA0BS,4JCpM1B,IAAIpvK,EAAmBC,gBAAQA,eAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,gBAAQA,eAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uBAAgC,EAAE+D,CAAO,4KChBrD,UAAW,CACR,IAAI9Q,EAEH,OAAO,QAAW,UAAY,OACjCA,EAAO,OAEPA,EAAOhX,eAG6B0nE,EAAO,QAC3CA,EAAA,QAAiB1wD,EAAK,QAAUA,EAAK,QAAUqpF,EACpCrpF,EAAK,UAChBA,EAAK,QAAUqpF,GAIhB,IAAIy2F,EAAO9/K,EAAK,cAAgB,SAAS/uB,EAAI,CAAE,WAAWA,EAAI,CAAC,CAAI,EAGnE,SAAS48C,EAAK58C,EAAIqkG,EAAS,CAC1B,OAAO,UAAW,CACjBrkG,EAAG,MAAMqkG,EAAS,SAAS,CAC9B,CACA,CAEC,IAAIl4E,EAAU,MAAM,SAAW,SAAS5b,EAAO,CAAE,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,gBAAkB,EAEpH,SAAS6nG,EAAQp4G,EAAI,CACpB,GAAI,OAAO,MAAS,SAAU,MAAM,IAAI,UAAU,sCAAsC,EACxF,GAAI,OAAOA,GAAO,WAAY,MAAM,IAAI,UAAU,gBAAgB,EAClE,KAAK,OAAS,KACd,KAAK,OAAS,KACd,KAAK,WAAa,CAAA,EAElB8uM,EAAU9uM,EAAI48C,EAAKw0B,EAAS,IAAI,EAAGx0B,EAAKy0B,EAAQ,IAAI,CAAC,CACvD,CAEC,SAASxuC,EAAOksK,EAAU,CACzB,IAAIv1M,EAAK,KACT,GAAI,KAAK,SAAW,KAAM,CACzB,KAAK,WAAW,KAAKu1M,CAAQ,EAC7B,MACH,CACEF,EAAK,UAAW,CACf,IAAI7xL,EAAKxjB,EAAG,OAASu1M,EAAS,YAAcA,EAAS,WACrD,GAAI/xL,IAAO,KAAM,EACfxjB,EAAG,OAASu1M,EAAS,QAAUA,EAAS,QAAQv1M,EAAG,MAAM,EAC1D,MACJ,CACG,IAAIgjE,EACJ,GAAI,CACHA,EAAMx/C,EAAGxjB,EAAG,MAAM,CACtB,OACUtE,EAAG,CACT65M,EAAS,OAAO75M,CAAC,EACjB,MACJ,CACG65M,EAAS,QAAQvyI,CAAG,CACpB,CAAA,CACH,CAEC,SAAS4U,EAAQ3lD,EAAU,CAC1B,GAAI,CACH,GAAIA,IAAa,KAAM,MAAM,IAAI,UAAU,2CAA2C,EACtF,GAAIA,IAAa,OAAOA,GAAa,UAAY,OAAOA,GAAa,YAAa,CACjF,IAAIs7F,EAAOt7F,EAAS,KACpB,GAAI,OAAOs7F,GAAS,WAAY,CAC/B+nF,EAAUlyJ,EAAKmqE,EAAMt7F,CAAQ,EAAGmxB,EAAKw0B,EAAS,IAAI,EAAGx0B,EAAKy0B,EAAQ,IAAI,CAAC,EACvE,MACL,CACA,CACG,KAAK,OAAS,GACd,KAAK,OAAS5lD,EACdujL,EAAO,KAAK,IAAI,CACnB,OAAW95M,EAAG,CAAEm8E,EAAO,KAAK,KAAMn8E,CAAC,CAAE,CACrC,CAEC,SAASm8E,EAAO5lD,EAAU,CACzB,KAAK,OAAS,GACd,KAAK,OAASA,EACdujL,EAAO,KAAK,IAAI,CAClB,CAEC,SAASA,GAAS,CACjB,QAAS15M,EAAI,EAAGm1B,EAAM,KAAK,WAAW,OAAQn1B,EAAIm1B,EAAKn1B,IACtDutC,EAAO,KAAK,KAAM,KAAK,WAAWvtC,CAAC,CAAC,EAErC,KAAK,WAAa,IACpB,CAEC,SAAS25M,EAAQC,EAAaC,EAAY/9H,EAASC,EAAO,CACzD,KAAK,YAAc,OAAO69H,GAAgB,WAAaA,EAAc,KACrE,KAAK,WAAa,OAAOC,GAAe,WAAaA,EAAa,KAClE,KAAK,QAAU/9H,EACf,KAAK,OAASC,CAChB,CAQC,SAASy9H,EAAU9uM,EAAIkvM,EAAaC,EAAY,CAC/C,IAAIt1H,EAAO,GACX,GAAI,CACH75E,EAAG,SAAUuQ,EAAO,CACfspE,IACJA,EAAO,GACPq1H,EAAY3+L,CAAK,EACjB,EAAE,SAAU2I,EAAQ,CAChB2gE,IACJA,EAAO,GACPs1H,EAAWj2L,CAAM,EACjB,CAAA,CACD,OAAQk2L,EAAI,CACZ,GAAIv1H,EAAM,OACVA,EAAO,GACPs1H,EAAWC,CAAE,CAChB,CACA,CAECh3F,EAAQ,UAAU,MAAW,SAAU+2F,EAAY,CAClD,OAAO,KAAK,KAAK,KAAMA,CAAU,CACjC,EAED/2F,EAAQ,UAAU,KAAO,SAAS82F,EAAaC,EAAY,CAC1D,IAAI31M,EAAK,KACT,OAAO,IAAI4+G,EAAQ,SAAShnC,EAASC,EAAQ,CAC5CxuC,EAAO,KAAKrpC,EAAI,IAAIy1M,EAAQC,EAAaC,EAAY/9H,EAASC,CAAM,CAAC,CACrE,CAAA,CACD,EAED+mC,EAAQ,IAAM,UAAY,CACzB,IAAI9lG,EAAO,MAAM,UAAU,MAAM,KAAK,UAAU,SAAW,GAAK6Z,EAAQ,UAAU,CAAC,CAAC,EAAI,UAAU,CAAC,EAAI,SAAS,EAEhH,OAAO,IAAIisF,EAAQ,SAAUhnC,EAASC,EAAQ,CAC7C,GAAI/+D,EAAK,SAAW,EAAG,OAAO8+D,EAAQ,CAAA,CAAE,EACxC,IAAI6X,EAAY32E,EAAK,OACrB,SAAS+yC,EAAI/vD,EAAGm6B,EAAK,CACpB,GAAI,CACH,GAAIA,IAAQ,OAAOA,GAAQ,UAAY,OAAOA,GAAQ,YAAa,CAClE,IAAIs3F,EAAOt3F,EAAI,KACf,GAAI,OAAOs3F,GAAS,WAAY,CAC/BA,EAAK,KAAKt3F,EAAK,SAAUA,EAAK,CAAE41B,EAAI/vD,EAAGm6B,CAAG,CAAG,EAAE4hD,CAAM,EACrD,MACP,CACA,CACK/+D,EAAKhd,CAAC,EAAIm6B,EACN,EAAEw5D,IAAc,GACnB7X,EAAQ9+D,CAAI,CAEb,OAAQ88L,EAAI,CACZ/9H,EAAO+9H,CAAE,CACd,CACA,CACG,QAAS95M,EAAI,EAAGA,EAAIgd,EAAK,OAAQhd,IAChC+vD,EAAI/vD,EAAGgd,EAAKhd,CAAC,CAAC,CAElB,CAAG,CACD,EAED8iH,EAAQ,QAAU,SAAU7nG,EAAO,CAClC,OAAIA,GAAS,OAAOA,GAAU,UAAYA,EAAM,cAAgB6nG,EACxD7nG,EAGD,IAAI6nG,EAAQ,SAAUhnC,EAAS,CACrCA,EAAQ7gE,CAAK,CAChB,CAAG,CACD,EAED6nG,EAAQ,OAAS,SAAU7nG,EAAO,CACjC,OAAO,IAAI6nG,EAAQ,SAAUhnC,EAASC,EAAQ,CAC7CA,EAAO9gE,CAAK,CACf,CAAG,CACD,EAED6nG,EAAQ,KAAO,SAAUnvF,EAAQ,CAChC,OAAO,IAAImvF,EAAQ,SAAUhnC,EAASC,EAAQ,CAC7C,QAAQ/7E,EAAI,EAAGm1B,EAAMxB,EAAO,OAAQ3zB,EAAIm1B,EAAKn1B,IAC5C2zB,EAAO3zB,CAAC,EAAE,KAAK87E,EAASC,CAAM,CAElC,CAAG,CACD,CACF,+LCzLA,IAAI+mC,EAAUt8E,gBAAA,EAEd,sBAAiB,SAAUs6E,EAAQjtD,EAAKnsC,EAAI,CACpC,OAAOmsC,GAAQ,aACfnsC,EAAKmsC,EACLA,EAAM,MAGV,IAAIvuB,EAAM,GAEN/kC,EAAI,IAAIuiH,EAAS,SAAUhnC,EAASC,EAAQ,CAC5C+kC,EAAO,GAAG,OAAQ,SAAU16F,EAAM,CAC9Bkf,GAAQ,OAAOuuB,GAAQ,SAAYztC,EAAK,SAASytC,CAAG,EAAIztC,EAAK,SAAQ,CACxE,CAAA,EACD06F,EAAO,GAAG,MAAO,UAAY,CACzBhlC,EAAQx2C,CAAG,CACd,CAAA,EACDw7E,EAAO,GAAG,QAAS/kC,CAAM,CAC5B,CAAA,EACD,OAAIr0D,GACAnnB,EAAE,KAAK,SAAU+kC,EAAK,CAAE5d,EAAG,KAAM4d,CAAG,CAAC,EAAI5d,CAAE,EAExCnnB,CACX,kMCtBA,IAAIuuG,EAAa3kE,uBAAQA,sBAAK,WAAc,SAAU4kE,EAASC,EAAYltG,EAAGmtG,EAAW,CACrF,SAASC,EAAMj0F,EAAO,CAAE,OAAOA,aAAiBnZ,EAAImZ,EAAQ,IAAInZ,EAAE,SAAUg6E,EAAS,CAAEA,EAAQ7gE,CAAK,CAAI,CAAA,CAAE,CAC1G,OAAO,IAAKnZ,IAAMA,EAAI,UAAU,SAAUg6E,EAASC,EAAQ,CACvD,SAASozB,EAAUl0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,KAAKh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CACzF,SAASwvG,EAASn0F,EAAO,CAAE,GAAI,CAAEyV,EAAKu+E,EAAU,MAASh0F,CAAK,CAAC,CAAI,OAAQrb,EAAG,CAAEm8E,EAAOn8E,CAAC,CAAI,CAAA,CAC5F,SAAS8wB,EAAKrV,EAAQ,CAAEA,EAAO,KAAOygE,EAAQzgE,EAAO,KAAK,EAAI6zF,EAAM7zF,EAAO,KAAK,EAAE,KAAK8zF,EAAWC,CAAQ,CAAE,CAC5G1+E,GAAMu+E,EAAYA,EAAU,MAAMF,EAASC,GAAc,CAAA,CAAE,GAAG,MAAM,CAC5E,CAAK,CACJ,EACD,OAAO,eAAe+qG,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAM3iB,EAAW5wJ,gBAAoB,EAC/ByyG,EAAOzuG,WACPotJ,EAAsBntJ,cAA4B,EAClD2e,EAAa1e,gBAAmB,EAChC00F,EAAgDz0F,uBAAA,EAChDqvK,EAA8CpvK,sBAAA,EAC9CqvK,EAAkBpvK,sBAA2B,EAKnD,IAAAqvK,EAAA,MAAMC,EAAsB,CACxB,YAAYn9L,EAAM,CACd,IAAI9D,EAAIm0C,EAAI8qB,EACZ,KAAK,QAAUj/D,EAAiD8D,GAAK,UAAY,MAAQ9D,IAAO,OAASA,EAAK,OAC9G,KAAK,QAAsD8D,GAAK,QAChE,KAAK,qBAAuBqwC,EAAiDrwC,GAAK,uBAAyB,MAAQqwC,IAAO,OAASA,EAAK,IAAI,gBAC5I,KAAK,gBAAkB8qB,EAAiDn7D,GAAK,kBAAoB,MAAQm7D,IAAO,OAASA,EAAK,IAAI,QAClI,KAAK,QAAsDn7D,GAAK,MAChE,KAAK,iBAAmB,IAAIoiH,EAAmB,iBAAiBpiH,CAAI,EACpE,KAAK,gBAAkB,IAAIg9L,EAAkB,gBAAgBh9L,CAAI,EACjE,KAAK,cAAgB,CACjB,CAACm9L,GAAsB,uBAAuB,EAAG,CAC7C,mBAAoBt7E,GAAwB,KAAK,iBAAiB,uBAAuBA,CAAoB,EAC7G,mBAAoBA,GAAwB,KAAK,iBAAiB,uBAAuBA,CAAoB,CAChH,EACD,CAACs7E,GAAsB,sBAAsB,EAAG,CAC5C,mBAAoBt7E,GAAwB,KAAK,gBAAgB,sBAAsBA,CAAoB,EAC3G,mBAAoBA,GAAwB,KAAK,gBAAgB,sBAAsBA,CAAoB,CAC9G,CACJ,CACT,CASI,aAAanyG,EAAO,CAChB,MAAM0tL,EAAc,IAAIhxJ,EAAW,OAAO,CAAE,WAAY,EAAM,CAAA,EAAE,MAAM18B,CAAK,EAC3E,OAAI0tL,EAAY,OAAS,QACdA,EAAY,YAAc,WAAa,YAAcA,EAAY,UAErE,SACf,CASI,eAAe1tL,EAAO,CAClB,MAAM0tL,EAAc,IAAIhxJ,EAAW,OAAO,CAAE,WAAY,EAAM,CAAA,EAAE,MAAM18B,CAAK,EAC3E,GAAI0tL,EAAY,OAAS,SAAU,CAC/B,MAAMv0J,EAAa,CAAE,EACrB,UAAW7tB,KAAUoiL,EAAY,QACzB,SAAUpiL,EACV6tB,EAAW7tB,EAAO,IAAI,EAAI,GAG1B6tB,EAAW7tB,EAAO,UAAU,EAAI,GAGxC,OAAO6tB,CACnB,CACQ,MAAO,SACf,CAQI,cAAcw0J,EAAU3tL,EAAO,CAC3B,OAAOoiF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,KAAM,CAACmmD,EAAaqjC,CAAc,EAAI,MAAM,KAAK,eAAe+hB,EAAU3tL,EAAOytL,GAAsB,kBAAkB,EACnHn9J,EAAS,KAAK,cAAci4G,CAAW,EAC7C,GAAI,CAACj4G,EACD,MAAM,IAAI,MAAM,wCAAwCi4G,CAAW,EAAE,EAEzE,OAAOj4G,EAAO,mBAAmBs7I,CAAc,CAC3D,CAAS,CACT,CAOI,SAAS+hB,EAAU3tL,EAAO,CACtB,OAAOoiF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,KAAM,CAACmmD,EAAaqjC,CAAc,EAAI,MAAM,KAAK,eAAe+hB,EAAU3tL,EAAOytL,GAAsB,kBAAkB,EACnHn9J,EAAS,KAAK,cAAci4G,CAAW,EAC7C,GAAI,CAACj4G,EACD,MAAM,IAAI,MAAM,wCAAwCi4G,CAAW,EAAE,EAEzE,OAAOj4G,EAAO,mBAAmBs7I,CAAc,CAC3D,CAAS,CACT,CAOI,aAAa+hB,EAAU3tL,EAAO,CAC1B,OAAOoiF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,KAAM,CAACmmD,EAAaqjC,CAAc,EAAI,MAAM,KAAK,eAAe+hB,EAAU3tL,EAAOytL,GAAsB,kBAAkB,EACzH,OAAO7hB,EAAe,KAAK,IAAIr/C,EAAK,aAAa,CAAE,OAAQgc,CAAW,CAAE,CAAC,CACrF,CAAS,CACT,CAOI,YAAYolD,EAAU3tL,EAAO,CACzB,OAAOoiF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,MAAMsqF,EAAkB,IAAI,gBACtBkhB,EAAoB,CAAE,EAG5B,KAAK,eAAe,QAAQ,CAACr/L,EAAOK,IAAQ,CACxCg/L,EAAkBh/L,CAAG,EAAIL,CACzC,CAAa,EACD,MAAMqoJ,EAAO,CACT,OAAQ,OACR,QAAS,OAAO,OAAO,OAAO,OAAO,GAAIg3C,CAAiB,EAAG,CAAE,eAAgB,4BAA6B,EAC5G,KAAM5tL,EACN,OAAQ0sK,EAAgB,MAC3B,EACD,MAAM,KAAK,gBAAgBihB,EAAU/2C,EAAM,CAAE,WAAY,GAAM,EAC/D81B,EAAgB,MAAO,CACnC,CAAS,CACT,CAWI,eAAeihB,EAAU3tL,EAAO6tL,EAAc,CAC1C,OAAOzrG,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,IAAIthE,EAAM,KAAK,SAAW,OAAS6sK,EAAW,GAAGA,CAAQ,UAAU,mBAAmB3tL,CAAK,CAAC,GAExFytE,EACJ,MAAM4nC,EAAU,IAAI,QAAQ,KAAK,cAAc,EAE/C,GADAA,EAAQ,OAAO,SAAUw4E,CAAY,EACjC,KAAK,SAAW,OAAQ,CACxBx4E,EAAQ,OAAO,eAAgB,mCAAmC,EAClE5nC,EAAO,IAAI,gBACXA,EAAK,IAAI,QAASztE,CAAK,EACvB,SAAW,CAACpR,EAAKL,CAAK,IAAK,KAAK,oBAAoB,UAChDk/E,EAAK,IAAI7+E,EAAKL,CAAK,EAEvB8mH,EAAQ,OAAO,iBAAkB5nC,EAAK,WAAW,OAAO,UAAU,CAClF,MACqB,KAAK,oBAAoB,SAAQ,EAAG,OAAS,IAClD3sD,GAAO,IAAI,KAAK,oBAAoB,SAAU,CAAA,IAElD,OAAO,KAAK,gBAAgBA,EAAK,CAAE,QAAAu0F,EAAS,OAAQ,KAAK,OAAQ,KAAA5nC,EAAM,CACnF,CAAS,CACT,CASI,gBAAgB3sD,EAAK81H,EAAMvnJ,EAAS,CAChC,OAAO+yF,EAAU,KAAM,OAAQ,OAAQ,WAAa,CAChD,IAAI51F,EAAIm0C,EAAI8qB,EACZ,IAAI3rC,EACA8rJ,EACJ,GAAI,KAAK,QAAS,CACd,MAAMd,EAAa,IAAI,gBACvBl0B,EAAK,OAASk0B,EAAW,OACzBhrJ,EAAU,WAAW,IAAMgrJ,EAAW,MAAO,EAAE,KAAK,OAAO,CAC3E,CACY,MAAMY,EAAe,OAAQl/K,EAAK,KAAK,WAAa,MAAQA,IAAO,OAASA,EAAK,OAAOs0B,EAAK81H,CAAI,EASjG,GARA,aAAa92H,CAAO,EAEhB,CAAoDzwB,GAAQ,YAAeq8K,EAAa,OAGxFE,EAAkBlB,EAASgB,EAAa,IAAI,EAAIA,EAAa,QAAWR,EAAoB,iBAAiBQ,EAAa,IAAI,GAG9H,CAACA,EAAa,IAAO,CAACE,GAAkB,CAAoDv8K,GAAQ,WAAc,CAClH,MAAMy+L,EAAYhtK,EAAI,MAAM,GAAG,EAAE,GAAG,CAAC,EAC/B6qJ,EAAaC,EAAiB,MAAM2hB,EAAgB3hB,CAAc,EAAI,iBAC5E,MAAM,IAAI,MAAM,yCAAyCkiB,CAAS,iBAAiBpiB,EAAa,MAAM;AAAA,EAAOC,CAAU,EAAE,CACzI,CAGY,MAAO,EADclgH,GAAM9qB,EAAK+qI,EAAa,QAAQ,IAAI,cAAc,KAAO,MAAQ/qI,IAAO,OAAS,OAASA,EAAG,MAAM,GAAG,EAAE,GAAG,CAAC,KAAO,MAAQ8qB,IAAO,OAASA,EAAK,GAChJmgH,CAAc,CAC/C,CAAS,CACT,CACA,EACAyhB,6BAAA,sBAAgCI,EAChCA,EAAsB,wBAA0B,kCAChDA,EAAsB,uBAAyB,iCAC/CA,EAAsB,mBAAqB,cAC3CA,EAAsB,mBAAqB,GAAGA,EAAsB,uBAAuB,UAAUA,EAAsB,sBAAsB,6LClOjJ,IAAIjwK,EAAmBC,qBAAQA,oBAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,qBAAQA,oBAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,6BAAsC,EAAE+D,CAAO,8NCf5D,OAAO,eAAekwK,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMzhD,EAAqBxyH,cAAkC,EACvD8hD,EAA0C99C,qBAAA,EAC1CkwK,EAA0DjwK,2BAAA,EAC1DkuF,EAAmBjuF,oBAAyB,EAIlD,IAAAiwK,EAAA,KAA4B,CACxB,YAAYntK,EAAKloB,EAASuxL,EAAcrlK,EAAa,CACjD,KAAK,IAAMhE,EACX,KAAK,QAAUloB,EACf,KAAK,aAAeuxL,EACpB,KAAK,gBAAkB,IAAI6D,EAAwB,sBAAsB,CACrE,MAAO,CAACp5J,EAAOgiH,IAAS,KAAK,aAAa,QAAQ,CAAE,MAAAhiH,EAAO,KAAAgiH,EAAM,QAAS,KAAK,OAAO,CAAE,EACxF,2BAA4B,GAC5B,YAAA9xH,CACZ,CAAS,CACT,CACI,MAAM,OAAOi4H,EAAa,CAEtB,MAAM+tC,EAAc,KAAK,yBAAyB/tC,EAAY,OAAQA,EAAY,MAAM,EACxF,MAAM,KAAK,wBAAwB+tC,CAAW,CACtD,CACI,yBAAyBC,EAAeC,EAAe,CACnD,OAAO,IAAIpvH,EAAgB,cAAc,CAAE,EAAE,CAAE,UAAW,EAAO,CAAA,EAC5D,OAAO,KAAK,iBAAiB,SAAUovH,CAAa,CAAC,EACrD,OAAOA,GAAiBD,EAAgB,CAAC;AAAA,CAAM,EAAI,CAAE,CAAA,EACrD,OAAO,KAAK,iBAAiB,SAAUA,CAAa,CAAC,CAClE,CACI,iBAAiB58L,EAAMg1C,EAAO,CAC1B,OAAKA,EAGEA,EACF,IAAKlF,GAAS,CACf,IAAI1Y,EAAa,MAAO0mF,EAAiB,cAAchuE,EAAK,OAAO,CAAC,OAAQguE,EAAiB,cAAchuE,EAAK,SAAS,CAAC,OAAQguE,EAAiB,cAAchuE,EAAK,MAAM,CAAC,KAC7K,OAAIA,EAAK,MAAM,WAAa,eACxB1Y,EAAa,KAAKA,CAAU;AAAA,EAG5BA,EAAa,cAAe0mF,EAAiB,cAAchuE,EAAK,KAAK,CAAC,MAAM1Y,CAAU;AAAA,EAEnFA,CACV,CAAA,EACI,QAAQ,CAAC,GAAGp3B,CAAI;AAAA,CAAW,CAAC,EAC5B,OAAO,CAAC,GAAG,CAAC,EAdN,IAAIytE,EAAgB,cAAc,CAAE,EAAE,CAAE,UAAW,GAAO,CAe7E,CACI,MAAM,wBAAwBkvH,EAAa,CAEvC,MAAM9qL,EAAQ,QAAUssI,EAAmB,WAAWw+C,CAAW,EAEjE,MAAM,KAAK,gBAAgB,YAAY,KAAK,IAAK9qL,CAAK,CAC9D,CACI,MAAM,aAAakuL,EAAUC,EAAkBC,EAAY,CACvD,MAAM1zJ,EAAS,MAAM,QAAQwzJ,CAAQ,EACjCA,EACA,CAACA,CAAQ,EACPG,EAAU,CAAE,EAClB,UAAWtqK,KAAS2W,EAAQ,CACxB,IAAI4zJ,EACA,OAAOvqK,GAAU,SACjBuqK,EAAavqK,EAERA,EAAM,WAAa,eACxBuqK,EAAa,UAGbA,EAAa,UAAUvqK,EAAM,KAAK,IAEtCsqK,EAAQ,KAAK,GAAGD,EAAa,OAAS,OAAO,IAAID,EAAmB,GAAK,SAAS,GAAGG,CAAU,EAAE,CAC7G,CACQ,MAAM,KAAK,gBAAgB,YAAY,KAAK,IAAKD,EAAQ,KAAK,IAAI,CAAC,CAC3E,CACI,MAAM,aAAa3zJ,EAAQ2iH,EAAqB,CAC5C,MAAMgxC,EAAU,CAAE,EAClB,UAAWtqK,KAAS2W,EAChB2zJ,EAAQ,KAAK,SAAShxC,EAAsB,GAAK,SAAS,WAAWt5H,EAAM,KAAK,GAAG,EAEvF,MAAM,KAAK,gBAAgB,YAAY,KAAK,IAAKsqK,EAAQ,KAAK,IAAI,CAAC,CAC3E,CACA,EACAN,6BAAA,sBAAgCQ,sPCnFhC,OAAO,eAAeC,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAMnD,EAA4EvxK,cAAA,EAC5EsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCgwK,EAA4D/vK,6BAAA,EAIlE,IAAAywK,EAAA,cAA6CpD,EAA4B,wBAAyB,CAC9F,YAAY/6L,EAAM,CACd,MAAMA,EAAM,QAAQ,CAC5B,CACI,MAAM,aAAamqB,EAAQ,CACvB,MAAI,CAACA,EAAO,sBAAwB,CAACA,EAAO,SAAS,eACjD,EAAE,KAAK,uBAAyBA,EAAO,IAAI,SAAS,SAAS,GAAKA,EAAO,IAAI,SAAS,UAAU,KAChG,EAAE,KAAK,uBAAyBA,EAAO,IAAI,SAAS,SAAS,GAAKA,EAAO,IAAI,SAAS,UAAU,OACrF6D,EAAO,UAAU,SAAS,KAAK,IAAI,qFAAqF,KAE5HA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,KAAK,QAAQA,EAAO,QAAS,qCAAqCA,EAAO,GAAG,EAAE,EAC9E,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EACtF,MAAO,CACH,YAAa,IAAI2tK,EAAwB,sBAAsBtzK,EAAO,SAAS,eAAiBA,EAAO,IAAKA,EAAO,QAAS,KAAK,aAAcqK,CAAW,CAC7J,CACT,CACA,EACA0pK,sCAAA,+BAAyCE,2IC7BzC,IAAIlxK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,EACjED,EAAaE,6BAAkC,EAAED,CAAO,6OChBxD,OAAO,eAAe8wK,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAM7hB,EAAgEhzJ,cAAA,EAChEwE,EAAkCR,cAAA,EAClCskD,EAAoErkD,cAAA,EAI1E,IAAA6wK,EAAA,cAAqC9hB,EAAsB,gCAAiC,CACxF,YAAYx8K,EAAM,CACd,MAAMA,EAAM,KAAK,CACzB,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CAEnC,MAAM8hB,EAAS,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWwW,EAAU,MAAO,QAAAt4B,EAAS,EAC1F,CAAE,eAAAm7G,CAAgB,KAAO3xC,EAAwB,iBAAiB1nD,CAAM,EAC9E,MAAO,CAAE,KAAM,UAAW,QAAS,UAAa,MAAMq5F,EAAe,KAAK,CAAC,EAAE,WAAW,SAAW,CAAG,CAC9G,CACA,EACA46E,8BAAA,uBAAiCG,mICtBjC,IAAItxK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,8BAAmC,EAAE+D,CAAO,qQCfzD,OAAO,eAAekxK,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMjiB,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCinC,EAAoBhnC,uBAA0B,EAKpD,IAAAgxK,EAAA,cAAyCliB,EAAsB,gCAAiC,CAC5F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,KAAK,CACzB,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAChE,OAAO,KAAK,uBAAuB,QAAQ,CACvC,UAAW42C,EAAe,WAAWxqC,EAAU,QAAQ,EACvD,QAAAt4B,CACZ,CAAS,CACT,CACA,EACAm2L,kCAAA,2BAAqCE,uIC1BrC,IAAIzxK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,mRCf7D,OAAO,eAAeqxK,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMtzH,EAA0C9hD,qBAAA,EAC1C6nB,EAAc7jB,kBAAoB,EAOxC,IAAAqxK,EAAA,MAAMC,WAAgCxzH,EAAgB,sBAAuB,CACzE,YAAY92C,EAAaiY,EAAUg3E,EAAgB,CAC/C,MAAMA,EAAgB,CAAE,UAAW,EAAK,CAAE,EAC1C,KAAK,YAAcjvF,EACnB,KAAK,SAAWiY,EAChB,KAAK,iBAAmB,CAChC,CAcI,OAAO,SAASK,EAAU3mC,EAAM,CAC5B,OAAIA,EAAK,WAAa,WACX2mC,EAAS,IAAI3mC,CAAI,EAErBA,CACf,CASI,OAAO,SAAS2mC,EAAUtE,EAAS,CAC/B,GAAI,CACA,SAAW6I,EAAY,gBAAgB7I,EAAUriC,GAAS,CACtD,MAAM44L,EAAYD,GAAwB,SAAShyJ,EAAU3mC,CAAI,EACjE,GAAI,CAAC44L,EACD,MAAM,IAAI,MAAM,cAAc,EAElC,OAAOA,CACvB,CAAa,CACb,MACc,CAEd,CACA,CASI,OAAO,kBAAkBvqK,EAAawqK,EAAkB74L,EAAM,CAC1D,OAAIA,EAAK,WAAa,YACXquB,EAAY,UAAU,GAAGruB,EAAK,KAAK,GAAG64L,CAAgB,EAAE,EAE5D74L,CACf,CAQI,OAAO,aAAaquB,EAAawqK,EAAkBx2J,EAAS,CACxD,SAAW6I,EAAY,gBAAgB7I,EAASriC,GAAQ24L,GAAwB,kBAAkBtqK,EAAawqK,EAAkB74L,CAAI,CAAC,CAC9I,CAQI,aAAa2mC,EAAUL,EAAUuyJ,EAAkB,CAQ/C,OAPcvyJ,EAET,IAAIqyJ,GAAwB,aAAa,KAAK,KAAM,KAAK,YAAaE,CAAgB,CAAC,EAEvF,IAAI96M,GAAK46M,GAAwB,SAAS,KAAK,KAAMhyJ,CAAQ,EAAE5oD,CAAC,CAAC,EAEjE,OAAO,OAAO,CAE3B,CACI,mBAAmB4oD,EAAU,CACzB,OAAO,IAAIw+B,EAAgB,cAAc,KAAK,aAAax+B,EAAU,KAAK,SAAU,KAAK,kBAAkB,EAAG,CAAE,UAAW,EAAK,CAAE,CAC1I,CACA,EACA8xJ,+BAAA,wBAAkCE,8OCvGlC,OAAO,eAAeG,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAMziB,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCqkD,EAAoEpkD,cAAA,EACpE2jB,EAAc1jB,kBAAoB,EAClC+mC,EAAoB9mC,uBAA0B,EAC9CgxK,EAAgE/wK,+BAAA,EAItE,IAAAqxK,EAAA,MAAMC,WAAqC3iB,EAAsB,gCAAiC,CAC9F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,WAAW,CAC/B,CAMI,OAAO,aAAawsC,EAAU,CAC1B,SAAW6E,EAAY,WAAW,GAAG,OAChC,MAAM,CAAA,EAAI7E,EAAS,IAAIhE,MAAe6I,EAAY,iBAAkBA,EAAY,gBAAgB7I,CAAO,CAAC,CAAC,CAAC,CAAC,CACxH,CACI,MAAM,cAAc+1J,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAaygD,EAAmBnmE,EAAS,CAC3C,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EAEzEuY,EAAY82J,GAA6B,aAAa1wH,EAAkB,QAAQ,EAChF7tC,EAAY,CAAE,KAAM8zB,EAAkB,QAAQ,MAAM,QAAS,MAAO+Z,EAAkB,MAAO,UAAApmC,CAAW,EAExGje,KAAa0nD,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAAlxC,EAAW,QAAAt4B,CAAS,CAAA,CAAC,EAGvHq0K,EAAa,IAAIiiB,EAA0B,wBAAwBpqK,EAAai6C,EAAkB,SAAUrkD,EAAO,cAAc,EAWvI,MAAO,CACH,SAVa,IAAMA,EAAO,SAAQ,EAAG,KAAKsG,IAAS,CACnD,GAAGA,EACH,MAAO,OACP,YAAa,CACT,KAAMA,EAAK,YAAY,KACvB,MAAOA,EAAK,YAAY,MAAQ+9C,EAAkB,SAAS,MAC9D,EACD,gBAAiB,MAC7B,EAAU,EAGE,WAAAkuG,EACA,KAAM,OACT,CACT,CACA,EACAsiB,oCAAA,6BAAuCE,yICvDvC,IAAIjyK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oCAAyC,EAAE+D,CAAO,EAC/DD,EAAaE,+BAAoC,EAAED,CAAO,mQChB1D,OAAO,eAAeuF,YAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,YAAA,UAAG,OAIpB,MAAMC,CAAU,CACZ,YAAY90B,EAAO,CACf,KAAK,SAAW,YAChB,KAAK,MAAQA,CACrB,CACI,OAAO6jB,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,aAAeA,EAAM,QAAU,KAAK,KACjF,CACA,CACAgR,mBAAA,UAAoBC,+LCdpB,OAAO,eAAeC,eAAS,aAAc,CAAE,MAAO,GAAM,EACxCA,eAAA,aAAG,OAKvB,MAAMC,CAAa,CACf,aAAc,CACV,KAAK,SAAW,eAChB,KAAK,MAAQ,EAErB,CACI,OAAOnR,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,cAC7C,CACA,CACAkR,sBAAA,aAAuBC,EACvBA,EAAa,SAAW,IAAIA,4KCjB5B,OAAO,eAAeC,YAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,YAAA,UAAG,OAIpB,MAAMC,CAAU,CACZ,YAAYl1B,EAAO,CACf,KAAK,SAAW,YAChB,KAAK,MAAQA,CACrB,CACI,OAAO6jB,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,aAAeA,EAAM,QAAU,KAAK,KACjF,CACA,CACAoR,mBAAA,UAAoBC,mICdpB,OAAO,eAAeC,UAAS,aAAc,CAAE,MAAO,GAAM,EAC7CA,UAAA,QAAG,OAClB,MAAMF,EAAc1J,mBAAsB,EAM1C,MAAM6J,CAAQ,CACV,YAAYp1B,EAAOq1B,EAAoB,CACnC,KAAK,SAAW,UAChB,KAAK,MAAQr1B,EACT,OAAOq1B,GAAuB,UAC9B,KAAK,SAAWA,EAChB,KAAK,SAAWD,EAAQ,oBACxB,KAAK,UAAY,IAEZC,EACD,aAAcA,GACd,KAAK,SAAW,GAChB,KAAK,SAAWA,EAChB,KAAK,UAAY,KAGjB,KAAK,SAAWA,EAAmB,SACnC,KAAK,SAAWA,EAAmB,UAC/BD,EAAQ,gCACRA,EAAQ,oBACZ,KAAK,UAAYC,EAAmB,WAAa,KAIrD,KAAK,SAAW,GAChB,KAAK,SAAWD,EAAQ,WACxB,KAAK,UAAY,GAE7B,CACI,OAAOvR,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,WAAaA,EAAM,QAAU,KAAK,OACnEA,EAAM,WAAa,KAAK,WACtBA,EAAM,YAAc,KAAK,WAAe,CAACA,EAAM,WAAa,KAAK,YAAc,KACjF,KAAK,SAAS,OAAOA,EAAM,QAAQ,CAC/C,CACA,CACAsR,iBAAA,QAAkBC,EAClBA,EAAQ,oBAAsB,IAAIH,EAAY,UAAU,uDAAuD,EAC/GG,EAAQ,gCAAkC,IAAIH,EAAY,UAAU,0DAA0D,EAC9HG,EAAQ,WAAa,IAAIH,EAAY,UAAU,yCAAyC,4HC/CxF,OAAO,eAAeK,OAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,OAAA,KAAG,OAKf,MAAMC,CAAK,CACP,YAAY1jB,EAASyF,EAAWlC,EAAQogB,EAAO,CAC3C,KAAK,SAAW,OAChB,KAAK,MAAQ,GACb,KAAK,QAAU3jB,EACf,KAAK,UAAYyF,EACjB,KAAK,OAASlC,EACd,KAAK,MAAQogB,CACrB,CACI,OAAO3R,EAAO,CAEV,MAAO,CAAC,CAACA,IAAUA,EAAM,WAAa,QAAU,CAACA,EAAM,WACnD,KAAK,QAAQ,OAAOA,EAAM,OAAO,GACjC,KAAK,UAAU,OAAOA,EAAM,SAAS,GACrC,KAAK,OAAO,OAAOA,EAAM,MAAM,GAC/B,KAAK,MAAM,OAAOA,EAAM,KAAK,CACzC,CACA,CACAyR,cAAA,KAAeC,iJCxBf,OAAO,eAAeE,WAAS,aAAc,CAAE,MAAO,GAAM,EAC5CA,WAAA,SAAG,OAInB,MAAMC,CAAS,CACX,YAAY11B,EAAO,CACf,KAAK,SAAW,WAChB,KAAK,MAAQA,CACrB,CACI,OAAO6jB,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,YAAcA,EAAM,QAAU,KAAK,KAChF,CACA,CACA4R,kBAAA,SAAmBC,sJCdnB,OAAO,eAAeC,cAAS,aAAc,CAAE,MAAO,GAAM,EACzCA,cAAA,YAAG,OACtB,MAAMd,EAActJ,mBAAsB,EACpCwJ,EAAiBxF,sBAAyB,EAC1C4F,EAAY3F,iBAAoB,EAChCyF,EAAcxF,mBAAsB,EACpC6F,EAAS5F,cAAiB,EAC1B+F,EAAa9F,kBAAqB,EACxC,IAAIiG,EAAqB,EAIzB,MAAMC,CAAY,CACd,YAAY/0B,EAAS,CACjB,KAAK,iBAAmB,EACxBA,EAAUA,GAAW,CAAE,EACvB,KAAK,gBAAkBA,EAAQ,iBAAmB,MAAM80B,GAAoB,GACpF,CAMI,UAAU51B,EAAO,CACb,OAAO,IAAIi1B,EAAY,UAAUj1B,CAAK,CAC9C,CAQI,UAAUA,EAAO,CACb,OAAO,IAAI60B,EAAY,UAAU70B,GAAS,GAAG,KAAK,eAAe,GAAG,KAAK,kBAAkB,EAAE,CACrG,CAcI,QAAQA,EAAOq1B,EAAoB,CAC/B,OAAO,IAAIF,EAAU,QAAQn1B,EAAOq1B,CAAkB,CAC9D,CAOI,SAASr1B,EAAO,CACZ,OAAO,IAAIy1B,EAAW,SAASz1B,CAAK,CAC5C,CAII,cAAe,CACX,OAAO+0B,EAAe,aAAa,QAC3C,CASI,KAAKljB,EAASyF,EAAWlC,EAAQogB,EAAO,CACpC,OAAO,IAAIF,EAAO,KAAKzjB,EAASyF,EAAWlC,EAAQogB,GAAS,KAAK,cAAc,CACvF,CAMI,SAASt1B,EAAU,CAGf,OAAQA,EAAS,SAAQ,CACrB,IAAK,YACD,OAAO,KAAK,UAAUA,EAAS,KAAK,EACxC,IAAK,YACD,OAAO,KAAK,UAAUA,EAAS,KAAK,EACxC,IAAK,UACD,OAAIA,EAAS,SACF,KAAK,QAAQA,EAAS,MAAOA,EAAS,QAAQ,EAEpDA,EAAS,SAAS,OAAOi1B,EAAU,QAAQ,UAAU,EAGnD,KAAK,QAAQj1B,EAAS,KAAK,EAFvB,KAAK,QAAQA,EAAS,MAAO,KAAK,SAASA,EAAS,QAAQ,CAAC,EAG5E,IAAK,WACD,OAAO,KAAK,SAASA,EAAS,KAAK,EACvC,IAAK,eACD,OAAO,KAAK,aAAc,EAC9B,IAAK,OACD,OAAO,KAAK,KAAK,KAAK,SAASA,EAAS,OAAO,EAAG,KAAK,SAASA,EAAS,SAAS,EAAG,KAAK,SAASA,EAAS,MAAM,EAAG,KAAK,SAASA,EAAS,KAAK,CAAC,CAClK,CACA,CAMI,SAASA,EAAU,CACf,OAAO,KAAK,SAASA,CAAQ,CACrC,CAII,uBAAwB,CACpB,KAAK,iBAAmB,CAChC,CACA,CACAy1B,qBAAA,YAAsBE,kKC1HtB,IAAI5G,EAAmBC,kBAAQA,iBAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,kBAAQA,iBAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mBAA0B,EAAE+D,CAAO,EAChDD,EAAaE,qBAA4B,EAAED,CAAO,EAClDD,EAAaG,sBAA6B,EAAEF,CAAO,EACnDD,EAAaI,iBAAwB,EAAEH,CAAO,EAC9CD,EAAaK,mBAA0B,EAAEJ,CAAO,EAChDD,EAAaM,cAAqB,EAAEL,CAAO,EAC3CD,EAAaO,kBAAyB,EAAEN,CAAO,iKCrB/C,OAAO,eAAewG,WAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,WAAA,aAAuBG,EACvBH,WAAA,gBAA0BK,EAC1BL,WAAA,eAAyBM,EACzBN,WAAA,mBAA6BO,EAC7BP,WAAA,oBAA8BqrK,EAC9BrrK,WAAA,aAAuBQ,EACvBR,WAAA,iBAA2BgB,EAC3BhB,WAAA,iBAA2BiB,EAC3B,MAAMhB,EAAqBxK,wBAA2B,EAChDyK,EAAU,IAAID,EAAmB,YAkBvC,SAASE,EAAa/tB,EAAM,CAExB,GAAKA,EAGL,OAAQA,EAAK,SAAQ,CACjB,IAAK,YAAa,OAAOA,EAAK,MAC9B,IAAK,YAAa,MAAQ,KAAOA,EAAK,MACtC,IAAK,UACD,MAAMguB,EAAehuB,EACrB,MAAQ,IAAMguB,EAAa,MAAQ,KAC9BA,EAAa,UACVA,EAAa,SAAS,QAAU,2CAChCA,EAAa,SAAS,QAAU,yDAChCA,EAAa,SAAS,QAAU,2DAChC,KAAOA,EAAa,SAAS,MAAQ,KACxCA,EAAa,SAAW,IAAMA,EAAa,SAAW,KACtDA,EAAa,UAAY,KAAOA,EAAa,UAAY,IAClE,IAAK,OAAQ,MAAO,KAAKD,EAAa/tB,EAAK,OAAO,CAAC,IAAI+tB,EAAa/tB,EAAK,SAAS,CAAC,IAAI+tB,EAAa/tB,EAAK,MAAM,CAAC,GAAGA,EAAK,MAAM,WAAa,eAAiB,GAAK,IAAM+tB,EAAa/tB,EAAK,KAAK,CAAC,KAC/L,IAAK,WAAY,MAAQ,IAAMA,EAAK,MACpC,IAAK,eAAgB,OAAOA,EAAK,KACzC,CACA,CAMA,SAASiuB,EAAgBD,EAAc,CACnC,MAAM7zB,EAAQ,YAAY,KAAK6zB,CAAY,EAC3C,GAAI,CAAC7zB,EACD,MAAM,IAAI,MAAM6zB,EAAe,mBAAmB,EAEtD,OAAO7zB,EAAM,CAAC,CAClB,CAMA,SAAS+zB,EAAeF,EAAc,CAClC,MAAM7zB,EAAQ,qCAAqC,KAAK6zB,CAAY,EACpE,GAAI,CAAC7zB,EACD,MAAM,IAAI,MAAM6zB,EAAe,mBAAmB,EAEtD,OAAO7zB,EAAM,CAAC,IAAMA,EAAM,CAAC,EACrB,wDAA0D,0CACpE,CAMA,SAASg0B,EAAmBH,EAAc,CACtC,MAAM7zB,EAAQ,mCAAmC,KAAK6zB,CAAY,EAClE,GAAI,CAAC7zB,EACD,MAAM,IAAI,MAAM6zB,EAAe,mBAAmB,EAEtD,GAAI7zB,EAAM,CAAC,EAAG,CACV,IAAI4pD,EAAM5pD,EAAM,CAAC,EAAE,YAAa,EAEhC,MAAM++L,EAAgBn1I,EAAI,QAAQ,IAAI,EACtC,OAAIm1I,GAAiB,IACjBn1I,EAAMA,EAAI,MAAM,EAAGm1I,CAAa,GAE7Bn1I,CACf,CACI,MAAO,EACX,CAMA,SAASk1I,EAAoBjrK,EAAc,CACvC,MAAMkrK,EAAgBlrK,EAAa,QAAQ,KAAMA,EAAa,YAAY,GAAG,CAAC,EAC9E,GAAIkrK,GAAiB,EAAG,CACpB,MAAMx4H,EAAY1yC,EAAa,MAAMkrK,EAAgB,EAAGlrK,EAAa,MAAM,EAC3E,GAAI0yC,IAAc,OAASA,IAAc,MACrC,OAAOA,EAEX,MAAM,IAAI,MAAM1yC,EAAe,0CAA0C,CACjF,CACI,MAAO,EACX,CAOA,SAASI,EAAat2B,EAAOu2B,EAAa,CAEtC,GADAA,EAAcA,GAAeP,EACzB,CAACh2B,GAAS,CAACA,EAAM,OACjB,OAAOu2B,EAAY,aAAc,EAErC,OAAQv2B,EAAM,CAAC,EAAC,CACZ,IAAK,IAAK,OAAOu2B,EAAY,UAAUv2B,EAAM,OAAO,CAAC,CAAC,EACtD,IAAK,IACD,GAAI,CAACu2B,EAAY,SACb,MAAM,IAAI,MAAM,sDAAsD,EAE1E,OAAOA,EAAY,SAASv2B,EAAM,OAAO,CAAC,CAAC,EAC/C,IAAK,IACD,MAAMsH,EAAW+uB,EAAmBr2B,CAAK,EACnC4oE,EAAYu4H,EAAoBnhM,CAAK,EACrCJ,EAAO22B,EAAY,UAAUH,EAAep2B,CAAK,CAAC,EACxD,OAAOu2B,EAAY,QAAQJ,EAAgBn2B,CAAK,EAAGsH,EAAW,CAAE,SAAAA,EAAU,UAAAshE,CAAW,EAAGhpE,CAAI,EAChG,IAAK,IACL,QACI,GAAII,EAAM,CAAC,IAAM,KAAOA,EAAM,OAAS,GAAKA,EAAM,CAAC,IAAM,KAAOA,EAAMA,EAAM,OAAS,CAAC,IAAM,KAAOA,EAAMA,EAAM,OAAS,CAAC,IAAM,IAAK,CAEhI,MAAMw2B,EAAQx2B,EAAM,MAAM,EAAG,EAAE,EAAE,KAAM,EACvC,IAAIy2B,EAAc,CAAE,EAChBC,EAAa,EACb1rB,EAAY,EACZ2rB,EAAU,GACd,QAAS5xC,EAAI,EAAGA,EAAIyxC,EAAM,OAAQzxC,IAAK,CACnC,MAAM6xC,EAAOJ,EAAMzxC,CAAC,EAGpB,GAFI6xC,IAAS,KACTF,IACAE,IAAS,IAAK,CACd,GAAIF,IAAe,EACf,MAAM,IAAI,MAAM,4CAA8C12B,CAAK,EAGnE02B,GAE5B,CACoB,GAAIE,IAAS,IAAK,CACd,IAAIC,EAAU,GACV1vC,EAAIpC,EACR,KAAOoC,KAAM,GAAKqvC,EAAMrvC,CAAC,IAAM,MAC3B0vC,EAAU,CAACA,EAEVA,IAEDF,EAAU,CAACA,EAEvC,CACoB,GAAIC,IAAS,KAAO,CAACD,GAAWD,IAAe,EAAG,CAE9C,IADAD,EAAY,KAAKD,EAAM,MAAMxrB,EAAWjmB,CAAC,CAAC,EACnCyxC,EAAMzxC,EAAI,CAAC,IAAM,KACpBA,GAAK,EAETimB,EAAYjmB,EAAI,CACxC,CACA,CACgB,GAAI2xC,IAAe,EACf,MAAM,IAAI,MAAM,4CAA8C12B,CAAK,EAIvE,GAFAy2B,EAAY,KAAKD,EAAM,MAAMxrB,EAAWwrB,EAAM,MAAM,CAAC,EAEjDC,EAAY,SAAW,GAAKA,EAAY,SAAW,EACnD,MAAM,IAAI,MAAM,4BAA8Bz2B,CAAK,EAEvD,OAAAy2B,EAAcA,EAAY,IAAIvuB,GAAQA,EAAK,WAAW,GAAG,GAAK,CAACA,EAAK,SAAS,GAAG,EAAIA,EAAK,MAAM,EAAG,EAAE,EAAIA,CAAI,EACrGquB,EAAY,KAAKD,EAAaG,EAAY,CAAC,CAAC,EAAGH,EAAaG,EAAY,CAAC,CAAC,EAAGH,EAAaG,EAAY,CAAC,CAAC,EAAGA,EAAY,CAAC,EAAIH,EAAaG,EAAY,CAAC,CAAC,EAAI,MAAS,CAC3L,CACY,OAAOF,EAAY,UAAUv2B,CAAK,CAC9C,CACA,CAOA,SAAS82B,EAAiBxvC,EAAG,CAEzB,MAAO,CACH,QAAS2uC,EAAa3uC,EAAE,OAAO,EAC/B,UAAW2uC,EAAa3uC,EAAE,SAAS,EACnC,OAAQ2uC,EAAa3uC,EAAE,MAAM,EAC7B,MAAO2uC,EAAa3uC,EAAE,KAAK,CAC9B,CAEL,CAQA,SAASyvC,EAAiBC,EAAYT,EAAa,CAC/C,OAAAA,EAAcA,GAAeP,EACtBO,EAAY,KAAKD,EAAaU,EAAW,QAAST,CAAW,EAAGD,EAAaU,EAAW,UAAWT,CAAW,EAAGD,EAAaU,EAAW,OAAQT,CAAW,EAAGD,EAAaU,EAAW,MAAOT,CAAW,CAAC,CACrN,iJCxNA,OAAO,eAAcjH,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAuB,aAAAA,EAAA,aAAuBA,mBAA2BA,EAA2B,iBAAAA,EAAA,gBAA0BA,iBAAyBA,EAA8B,oBAAAA,EAAA,mBAA6B,OAClN,MAAM2H,EAAa1L,kBAAyB,EAC5C,OAAO,eAAe+D,EAAS,qBAAsB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,kBAAqB,CAAA,CAAE,EACrI,OAAO,eAAe3H,EAAS,sBAAuB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,mBAAsB,CAAA,CAAE,EACvI,OAAO,eAAe3H,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,cAAiB,CAAA,CAAE,EAC7H,OAAO,eAAe3H,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,eAAkB,CAAA,CAAE,EAC/H,OAAO,eAAe3H,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,gBAAmB,CAAA,CAAE,EACjI,OAAO,eAAe3H,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,gBAAmB,CAAA,CAAE,EACjI,OAAO,eAAe3H,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,YAAe,CAAA,CAAE,EACzH,OAAO,eAAe3H,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,YAAe,CAAA,CAAE,oRCVzH,OAAO,eAAeoqK,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAM9iB,EAAgEhzJ,cAAA,EAChEwE,EAAkCR,cAAA,EAClCskD,EAAoErkD,cAAA,EACpE8sF,EAAY7sF,mBAAqB,EAIvC,IAAA6xK,EAAA,cAAkD/iB,EAAsB,gCAAiC,CACrG,YAAYx8K,EAAM,CACd,MAAMA,EAAM,UAAU,CAC9B,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CACnC,MAAM8hB,EAAS,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWwW,EAAU,MAAO,QAAAt4B,EAAS,EAChG,GAAI8hB,EAAO,OAAS,QAAS,CACzB,MAAMo1K,KAAkB1tH,EAAwB,cAAc1nD,CAAM,EAGpE,MAAO,CACH,KAAM,QACN,WAJeo1K,EAAY,WAC1B,OAAO,MAAM,KAAK,wBAAwB,EAI3C,SAAUA,EAAY,QACzB,CACb,CACQ,MAAMC,KAAqB3tH,EAAwB,iBAAiB1nD,CAAM,EACpEie,GAAa,MAAMo3J,EAAe,SAAQ,GAAI,UAAU,IAAI57M,GAAKA,EAAE,QAAQ,EAGjF,MAAO,CACH,KAAM,WACN,eAJmB47M,EAAe,eACjC,OAAO,MAAM,KAAK,kBAAkBp3J,CAAS,CAAC,EAI/C,SAAUo3J,EAAe,QAC5B,CACT,CAOI,MAAM,kBAAkBp3J,EAAW,CAC/B,MAAMq3J,EAAa,CAAE,EACrB,OAAQ5yJ,GAAa,CACjB,MAAM24B,EAAWp9B,EAAU,IAAIxkD,GAAK02H,EAAU,aAAaztE,EAAS,IAAIjpD,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EACrF,MAAO,EAAE4hF,KAAYi6H,KAAgBA,EAAWj6H,CAAQ,EAAI,GAC/D,CACT,CAMI,MAAM,wBAAyB,CAC3B,MAAMi6H,EAAa,CAAE,EACrB,OAAQ/xJ,GAAS,CACb,MAAM83B,EAAW,OAAO,OAAO80C,EAAU,iBAAiB5sE,CAAI,CAAC,EAAE,KAAK,GAAG,EACzE,MAAO,EAAE83B,KAAYi6H,KAAgBA,EAAWj6H,CAAQ,EAAI,GAC/D,CACT,CACA,EACA65H,2CAAA,oCAA8CK,gJChE9C,IAAIzyK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2CAAgD,EAAE+D,CAAO,+PCftE,OAAO,eAAeqyK,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAMpjB,EAAgEhzJ,cAAA,EAChEwE,EAAkCR,cAAA,EAClC+3J,EAAsE93J,cAAA,EACtEmwC,EAA8ElwC,cAAA,EAC9EokD,EAAoEnkD,cAAA,EAM1E,IAAAkyK,EAAA,cAAwCrjB,EAAsB,gCAAiC,CAC3F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,QAAQ,EACpB,KAAK,mCAAqCA,EAAK,kCACvD,CACI,MAAM,eAAgB,CAClB,SAAWguB,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CACnC,KAAM,CAAE,WAAA85B,EAAY,MAAAkC,EAAO,SAAA3T,CAAU,EAAGiQ,EAClCxW,KAAa0nD,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWxtC,EAAO,QAAAh8B,CAAS,CAAA,CAAC,EAEpI,IAAK,MAAM8hB,EAAO,SAAQ,GAAI,UAAU,KAAK01K,GAAiBA,EAAc,SAAS,OAAOnvK,CAAQ,CAAC,EACjG,MAAM,IAAI,MAAM,gCAAgCA,EAAS,KAAK,+BAA+B,EAEjG,MAAMu3J,EAAY,MAAM,KAAK,mCACxB,QAAQ,CAAE,QAAS9lJ,EAAY,QAAA95B,CAAO,CAAE,EAEvC2/D,EAAY,MAAOn7B,EAAU36B,EAAM61D,IAAS,CAC9C,GAAI,CACA,MAAM3pE,EAAS,MAAM6pL,EAAU,SAASp7I,CAAQ,EAG1CizJ,EAAWjzJ,EAAS,IAAInc,EAAUtyB,CAAM,EAC9C2pE,EAAK+3H,CAAQ,CAC7B,OACmBx7L,EAAO,IACFq5D,EAA6B,mBAAmBr5D,CAAK,GAEzDyjE,EAAKl7B,CAAQ,EAEb,KAAK,QAAQxkC,EAAS,0CAA0C/D,EAAM,OAAO,sBACnDghL,EAAyB,kBAAkBz4I,CAAQ,CAAC,GAAG,GAGjF22E,EAAe,KAAK,QAASl/G,CAAK,CAEtD,CACY4N,EAAM,CACT,EAEKsxG,EAAiBr5F,EAAO,eAAe,UAAU,CAAE,UAAW,GAAO,UAAA69C,EAAW,EACtF,MAAO,CACH,KAAM,WACN,eAAAw7C,EACA,MAAM,UAAW,CACb,MAAMu8E,EAAiB,MAAM51K,EAAO,SAAU,EAC9C,MAAO,CAAE,GAAG41K,EAAgB,UAAW,CAAC,GAAGA,EAAe,UAAW,CAAE,SAAArvK,EAAU,WAAY,EAAO,CAAA,CAAG,CAC1G,CACJ,CACT,CACA,EACAivK,iCAAA,0BAAoCK,sIChEpC,IAAI/yK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iCAAsC,EAAE+D,CAAO,+PCf5D,OAAO,eAAe2yK,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAM1jB,EAAgEhzJ,cAAA,EAChEwE,EAAkCR,cAAA,EAClC+3J,EAAsE93J,cAAA,EACtEmwC,EAA8ElwC,cAAA,EAC9EokD,EAAoEnkD,cAAA,EAI1E,IAAAwyK,EAAA,cAAwC3jB,EAAsB,gCAAiC,CAC3F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,QAAQ,EACpB,KAAK,mCAAqCA,EAAK,kCACvD,CACI,MAAM,eAAgB,CAClB,SAAWguB,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CACnC,MAAM83L,EAAY,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWx/J,EAAU,MAAO,QAAAt4B,EAAS,EAC7F8hB,KAAa0nD,EAAwB,iBAAiBsuH,CAAS,KACjEtuH,EAAwB,qBAAqB1nD,EAAQ,UAAU,EACnE,MAAM89J,EAAY,MAAM,KAAK,mCACxB,QAAQ,CAAE,QAAStnJ,EAAU,WAAY,QAAAt4B,CAAO,CAAE,EACjD2/D,EAAY,MAAOh9D,EAAMkH,EAAM61D,IAAS,CAC1C,GAAI,CACe,MAAMkgH,EAAU,cAAcj9K,CAAI,GAE7C+8D,EAAK/8D,CAAI,CAE7B,OACmB1G,EAAO,IAUFq5D,EAA6B,mBAAmBr5D,CAAK,EAGzD,KAAK,QAAQ+D,EAAS,kCAAmC,KAAO,CAAE,MAAA/D,EAAO,YAAcghL,EAAyB,kBAAkBt6K,CAAI,CAAG,EAAC,EAG1Iw4G,EAAe,KAAK,QAASl/G,CAAK,CAEtD,CACY4N,EAAM,CACT,EAEKsxG,EAAiBr5F,EAAO,eAAe,UAAU,CAAE,UAAA69C,EAAW,UAAW,GAAO,EACtF,MAAO,CAAE,KAAM,WAAY,eAAAw7C,EAAgB,SAAUr5F,EAAO,QAAU,CAC9E,CACA,EACA81K,iCAAA,0BAAoCG,sICzDpC,IAAInzK,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iCAAsC,EAAE+D,CAAO,2QCf5D,OAAO,eAAe+yK,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAM9jB,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCinC,EAAoBhnC,uBAA0B,EAIpD,IAAA6yK,EAAA,MAAMC,WAAoChkB,EAAsB,gCAAiC,CAC7F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,MAAM,CAC1B,CAOI,OAAO,cAAc4gC,EAAW6/J,EAAa,CACzC,MAAMC,EAAkB,CAAE,EAC1B,UAAWpiM,KAAO,OAAO,KAAKsiC,CAAS,EAC/B,MAAM,QAAQA,EAAUtiC,CAAG,CAAC,GAAKA,IAAQ,WAErCA,IAAQ,YACRoiM,EAAgBpiM,CAAG,EAAIsiC,EAAUtiC,CAAG,EAGpCoiM,EAAgBpiM,CAAG,EAAIsiC,EAAUtiC,CAAG,EAAE,IAAImiM,CAAW,EAGpDD,GAA4B,cAAc,SAAS5/J,EAAUtiC,CAAG,EAAE,IAAI,EAC3EoiM,EAAgBpiM,CAAG,EAAImiM,EAAY7/J,EAAUtiC,CAAG,CAAC,EAGjDoiM,EAAgBpiM,CAAG,EAAIsiC,EAAUtiC,CAAG,EAG5C,OAAOoiM,CACf,CAUI,OAAO,2BAA2Bt1H,EAAgBxqC,EAAW+/J,EAAe,CAExE,GAAK//J,EAAU,OAAS,OAASA,EAAU,SAAS,OAAS,GACzDA,EAAU,OAAS,QACnBA,EAAU,OAAS,UAAW,CAC9B,GAAIA,EAAU,OAAS,MACnB,OAAO4/J,GACF,eAAep1H,EAAgBxqC,EAAU,SAAS,IAAK4H,GAAY,CACpE,GAAIA,EAAQ,MAAM,WAAa,eAC3B,OAAO4iC,EAAe,UAAU,CAAC5iC,CAAO,CAAC,EAE7C,MAAM8oD,EAAOqvG,EAAc,IAAKltK,GAAU23C,EAAe,UAAU,CAAC,OAAO,OAAOA,EACzE,cAAc5iC,EAAQ,QAASA,EAAQ,UAAWA,EAAQ,OAAQ/U,CAAK,EAAG,CAAE,SAAU+U,EAAQ,QAAU,CAAA,CAAC,CAAC,CAAC,EACpH,OAAOg4J,GAA4B,gBAAgBp1H,EAAgBkmB,CAAI,CAC3F,CAAiB,CAAC,EAEN,GAAI1wD,EAAU,MAAM,WAAa,eAC7B,OAAOA,EAEX,MAAMggK,EAAQD,EAAc,IAAKltK,GACzBmN,EAAU,OAAS,OACZwqC,EACF,WAAWxqC,EAAU,QAASA,EAAU,UAAWA,EAAU,OAAQnN,CAAK,EAE5E,OAAO,OAAO23C,EAChB,cAAcxqC,EAAU,QAASA,EAAU,UAAWA,EAAU,OAAQnN,CAAK,EAAG,CAAE,SAAUmN,EAAU,QAAQ,CAAE,CACxH,EACD,OAAO4/J,GAA4B,gBAAgBp1H,EAAgBw1H,CAAK,CACpF,CACQ,OAAOJ,GAA4B,cAAc5/J,EAAYigK,GAAiB,KAAK,2BAA2Bz1H,EAAgBy1H,EAAcF,CAAa,CAAC,CAClK,CAWI,OAAO,yBAAyBv1H,EAAgBxqC,EAAWisH,EAAa8zC,EAAe,CAEnF,GAAK//J,EAAU,OAAS,OAASA,EAAU,SAAS,OAAS,GACzDA,EAAU,OAAS,QACnBA,EAAU,OAAS,UAAW,CAC9B,MAAMkgK,EAAelgK,EAAU,OAAS,MAAQA,EAAU,SAAS,CAAC,EAAE,MAAQA,EAAU,MACxF,GAAIkgK,EAAa,WAAa,eAG1B,MAAO,CAAE,KAAMpsI,EAAkB,QAAQ,MAAM,IAAK,SAAU,EAAI,EAEtE,GAAIosI,EAAa,WAAa,WAAY,CACtC,GAAIj0C,EAAY,SAAW,EAAG,CAC1B,MAAMp5H,EAAQo5H,EAAY,CAAC,EAErB//G,EAAW,CAAE,EACnBA,EAAS,IAAIg0J,EAAa,KAAK,EAAE,EAAIrtK,EACrC,MAAM9c,EAASy0D,EACV,aAAa,CAAC01H,CAAY,EAAG,CAACh0J,CAAQ,CAAC,EAC5C,IAAItE,EACJ,OAAI5H,EAAU,OAAS,MACnB4H,EAAU4iC,EACL,UAAUxqC,EAAU,SAAS,IAAK6H,GAAQ2iC,EAC1C,cAAc3iC,EAAI,QAASA,EAAI,UAAWA,EAAI,OAAQhV,CAAK,CAAC,CAAC,EAE7DmN,EAAU,OAAS,OACxB4H,EAAU4iC,EACL,WAAWxqC,EAAU,QAASA,EAAU,UAAWA,EAAU,OAAQnN,CAAK,EAG/E+U,EAAU4iC,EACL,cAAcxqC,EAAU,QAASA,EAAU,UAAWA,EAAU,OAAQnN,CAAK,EAE/E23C,EAAe,WAAW,CAACz0D,EAAQ6xB,CAAO,CAAC,CACtE,CAEgB,OAAOg4J,GAA4B,gBAAgBp1H,EAAgByhF,EAAY,IAAKp5H,GAAU+sK,GAA4B,yBAAyBp1H,EAAgBxqC,EAAW,CAACnN,CAAK,EAAGktK,CAAa,CAAC,CAAC,CACtN,CAGY,MAD8B,CAAC,GAAG9zC,EAAa,GAAG8zC,CAAa,EAAE,KAAM7zC,GAAeA,EAAW,OAAOg0C,CAAY,CAAC,EAG1GlgK,EAGJ,CAAE,KAAM8zB,EAAkB,QAAQ,MAAM,IAAK,SAAU,EAAI,CAC9E,CACQ,OAAO8rI,GAA4B,cAAc5/J,EAAYigK,GAAiB,KACzE,yBAAyBz1H,EAAgBy1H,EAAch0C,EAAa8zC,CAAa,CAAC,CAC/F,CAQI,OAAO,eAAev1H,EAAgBviC,EAAY,CAC9C,GAAIA,EAAW,SAAW,EACtB,OAAOA,EAAW,CAAC,EAEvB,GAAIA,EAAW,OAAS,EACpB,OAAOuiC,EAAe,WAAWviC,CAAU,EAE/C,MAAM,IAAI,MAAM,sDAAsD,CAC9E,CAQI,OAAO,gBAAgBuiC,EAAgBviC,EAAY,CAC/C,GAAIA,EAAW,SAAW,EACtB,OAAOA,EAAW,CAAC,EAEvB,GAAIA,EAAW,OAAS,EACpB,OAAOuiC,EAAe,YAAYviC,CAAU,EAEhD,MAAM,IAAI,MAAM,uDAAuD,CAC/E,CAeI,OAAO,gBAAgBuiC,EAAgB5iC,EAAS,CAC5C,IAAI5H,EAAY4H,EAAQ,MACxB,OAAIA,EAAQ,QAAQ,OAAS,IACzB5H,EAAY4/J,GAA4B,2BAA2Bp1H,EAAgBxqC,EAAW4H,EAAQ,OAAO,IAE7GA,EAAQ,MAAM,OAAS,GAAKA,EAAQ,QAAQ,OAAS,KACrD5H,EAAY4/J,GACP,yBAAyBp1H,EAAgBxqC,EAAW4H,EAAQ,MAAOA,EAAQ,OAAO,GAEpF5H,CACf,CACI,MAAM,cAAc29J,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAaygD,EAAmBnmE,EAAS,CAC3C,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1DoM,EAAY4/J,GAA4B,gBAAgBp1H,EAAgBqD,CAAiB,EAC/F,OAAO,KAAK,uBAAuB,QAAQ,CAAE,UAAA7tC,EAAW,QAAAt4B,CAAO,CAAE,CACzE,CACA,EACAg4L,mCAAA,4BAAsCE,EACtCA,EAA4B,cAAgB,OAAO,KAAK9rI,EAAkB,QAAQ,KAAK,EAAE,IAAIp2D,GAAOo2D,EAAkB,QAAQ,MAAMp2D,CAAG,CAAC,wIChNxI,IAAI4uB,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,qQCf9D,OAAO,eAAewzK,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMvkB,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC08C,EAA8Dz8C,cAAA,EAC9DokD,EAAoEnkD,cAAA,EAI1E,IAAAqzK,EAAA,cAAyCxkB,EAAsB,gCAAiC,CAC5F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,SAAS,CAC7B,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EAEzE1F,KAAa0nD,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWlxC,EAAU,MAAO,QAAAt4B,CAAS,CAAA,CAAC,EAExI03L,EAAiB,MAAM51K,EAAO,SAAU,EACxC62K,EAAyB,OAC1B,YAAYjB,EAAe,UAAU,IAAIntL,GAAS,CAACA,EAAM,SAAS,MAAOA,CAAK,CAAC,CAAC,EAC/EquL,EAAqBtgK,EAAU,UAAU,IAAI/8C,IAAM,CAAE,SAAUA,EAAG,WAAY,EAAO,EAAC,EACtFs9M,EAA4B,OAC7B,YAAYD,EAAmB,IAAIruL,GAAS,CAACA,EAAM,SAAS,MAAOA,CAAK,CAAC,CAAC,EAEzEuuL,EAAkBpB,EAAe,UAClC,OAAOrvK,GAAY,EAAEA,EAAS,SAAS,SAASwwK,EAA0B,EAEzEE,EAAkBH,EAAmB,IAAIvwK,IAAa,CACxD,SAAUA,EAAS,SACnB,WAAY,EAAEA,EAAS,SAAS,SAASswK,IACrCA,EAAuBtwK,EAAS,SAAS,KAAK,EAAE,UAChE,EAAU,EAEF,IAAI8yF,EAAiB29E,EAAgB,SAAW,EAC5Ch3K,EAAO,eACPA,EAAO,eAAe,IAAK0iB,GAAa,CACpC,UAAWw0J,KAAkBF,EACzBt0J,EAAWA,EAAS,OAAOw0J,EAAe,QAAQ,EAEtD,OAAOx0J,CACvB,CAAa,EAIDkyJ,EAAmB,EACvB,OAAAv7E,EAAiBA,EAAe,IAAK32E,GAAa,CAC9CkyJ,IACA,MAAMuC,EAAwB,IAAI,IAClC,OAAOz0J,EAAS,IAAK3mC,GAAS,CAC1B,GAAIA,aAAgBgkE,EAAqB,wBAAyB,CAC9D,IAAIq3H,EAAkBD,EAAsB,IAAIp7L,EAAK,KAAK,EAC1D,OAAKq7L,IACDA,EAAkBhtK,EAAY,UAAU,GAAGruB,EAAK,KAAK,GAAG64L,CAAgB,EAAE,EAC1EuC,EAAsB,IAAIp7L,EAAK,MAAOq7L,CAAe,GAElDA,CAC3B,CACgB,OAAOr7L,CACvB,CAAa,CACb,CAAS,EACM,CACH,KAAM,WACN,eAAAs9G,EACA,SAAU,UAAa,CAAE,GAAGu8E,EAAgB,UAAWqB,CAAe,EACzE,CACT,CACA,EACAN,kCAAA,2BAAqCU,uICxErC,IAAIv0K,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,6RCf7D,OAAO,eAAem0K,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAMllB,EAAgEhzJ,cAAA,EAChEwE,EAAkCR,cAAA,EAClCskD,EAAoErkD,cAAA,EACpE4vC,EAAkC3vC,kBAAA,EAIxC,IAAAi0K,EAAA,cAA6CnlB,EAAsB,gCAAiC,CAChG,YAAYx8K,EAAM,CACd,MAAMA,EAAM,SAAS,CAC7B,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CACnC,MAAM8hB,KAAa0nD,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWlxC,EAAU,MAAO,QAAAt4B,CAAS,CAAA,CAAC,EACxI+/B,GAAa,MAAMje,EAAO,SAAQ,GAAI,UAAU,IAAIvmC,GAAKA,EAAE,QAAQ,EAEzE,MAAO,CACH,KAAM,WACN,eAHmBumC,EAAO,eAAe,OAAO,MAAM,KAAK,cAAc9hB,EAAS+/B,CAAS,CAAC,EAI5F,SAAUje,EAAO,QACpB,CACT,CAQI,MAAM,cAAc9hB,EAAS+/B,EAAW,CACpC,KAAM,CAAE,aAAAo7I,CAAY,EAAK,MAAM,KAAK,qBAAqB,QAAQ,CAAE,QAAAn7K,EAAS,EACtE23C,EAAS,IAAIod,EAAY,SAAS,CAAE,IAAK,KAAK,UAAW,EAC/D,OAAQvwB,GAAa,CACjB,MAAM14B,EAAOqvK,EAAa32I,EAAUzE,CAAS,EAC7C,OAAI4X,EAAO,IAAI7rC,CAAI,EACR,IAEX6rC,EAAO,IAAI7rC,EAAM,EAAI,EACd,GACV,CACT,CACA,EACAstL,sCAAA,+BAAyCE,2IC9CzC,IAAI10K,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,yPCfjE,OAAO,eAAes0K,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMrlB,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAIxC,IAAAq0K,EAAA,cAAuCtlB,EAAsB,gCAAiC,CAC1F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,OAAO,CAC3B,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CAG/Bs4B,EAAU,SACVt4B,EAAUA,EAAQ,IAAIwnB,EAAkB,mBAAmB,eAAgB8Q,EAAU,MAAM,GAG/F,MAAMxW,EAAS,MAAM,KAAK,uBACrB,QAAQ,CAAE,UAAWwW,EAAU,MAAO,QAAAt4B,CAAO,CAAE,EACpD,OAAI8hB,EAAO,OAAS,WAET,CACH,KAAM,WACN,eAHmB,KAAK,YAAYA,EAAO,eAAgBwW,CAAS,EAIpE,SAAU,KAAK,cAAcxW,EAAQwW,CAAS,CACjD,EAEDxW,EAAO,OAAS,QAET,CACH,KAAM,QACN,WAHe,KAAK,YAAYA,EAAO,WAAYwW,CAAS,EAI5D,SAAU,KAAK,cAAcxW,EAAQwW,CAAS,CACjD,EAGExW,CACf,CAEI,YAAY05E,EAAQt7D,EAAS,CAEzB,MAAMu5J,EAAY,EAAQv5J,EAAQ,QAAWA,EAAQ,SAAW,EAC1D,CAAE,MAAA9mB,CAAK,EAAK8mB,EACZzmC,EAAMggM,EAAYv5J,EAAQ,MAAQA,EAAQ,OAAS,EAAI,OAAO,kBACpE,OAAOs7D,EAAO,UAAU,CAAE,OAAQpiF,EAAO,MAAO,KAAK,IAAI3f,EAAM2f,EAAQ,EAAG,CAAC,EAAG,UAAW,GAAO,CACxG,CAEI,cAAc0I,EAAQoe,EAAS,CAE3B,MAAMu5J,EAAY,EAAQv5J,EAAQ,QAAWA,EAAQ,SAAW,EAChE,MAAO,IAAMpe,EAAO,SAAQ,EACvB,KAAM43K,GAAgB,CACvB,MAAMpyH,EAAc,CAAE,GAAGoyH,EAAY,WAAa,EAClD,OAAI,OAAO,SAASpyH,EAAY,KAAK,IACjCA,EAAY,MAAQ,KAAK,IAAI,EAAGA,EAAY,MAAQpnC,EAAQ,KAAK,EAC7Du5J,IACAnyH,EAAY,MAAQ,KAAK,IAAIA,EAAY,MAAOpnC,EAAQ,MAAM,IAG/D,CAAE,GAAGw5J,EAAa,YAAApyH,CAAa,CAClD,CAAS,CACT,CACA,EACAiyH,gCAAA,yBAAmCI,qICpEnC,IAAI/0K,EAAmBC,QAAQA,OAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,QAAQA,OAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gCAAqC,EAAE+D,CAAO,wPCf3D,OAAO,eAAe20K,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAM1lB,EAAgEhzJ,cAAA,EAChEwE,EAAkCR,cAAA,EAClCgyC,EAAsD/xC,cAAA,EACtDqkD,EAAoEpkD,cAAA,EACpE49C,EAA0C39C,qBAAA,EAIhD,IAAAw0K,EAAA,MAAMC,WAAiC5lB,EAAsB,gCAAiC,CAC1F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,OAAO,CAC3B,CAOI,OAAO,eAAeqoC,EAAW,CAC7B,MAAM23I,EAAmB,CAAE,EAC3B,UAAWqiB,KAAch6J,EACrB,UAAW1X,KAAY0xK,EAAY,CAC1BriB,EAAiBrvJ,EAAS,SAAS,KAAK,IACzCqvJ,EAAiBrvJ,EAAS,SAAS,KAAK,EAAI,CACxC,SAAUA,EAAS,SACnB,WAAYA,EAAS,WACrB,YAAa,CAChB,GAEL,MAAM9d,EAAQmtK,EAAiBrvJ,EAAS,SAAS,KAAK,EACtD9d,EAAM,WAAaA,EAAM,YAAc8d,EAAS,WAChD9d,EAAM,aACtB,CAEQ,OAAO,OAAO,OAAOmtK,CAAgB,EAChC,IAAIntK,GAASA,EAAM,cAAgBw1B,EAAU,OAC9C,CAAE,SAAUx1B,EAAM,SAAU,WAAYA,EAAM,UAAY,EAC1D,CAAE,SAAUA,EAAM,SAAU,WAAY,EAAI,CAAE,CAC1D,CAUI,aAAa,cAAcktK,EAAWjzI,EAAUxkC,EAASg6L,EAA+B,CACpF,IAAIC,GAAuB,MAAMD,EAC5B,QAAQ,CAAE,KAAM,aAAc,QAAAh6L,CAAO,CAAE,GAAG,SAE/C,UAAWk6L,KAAqBziB,EAC5BwiB,EAAsB,CAClB,GAAGC,EACH,IAAI,MAAMF,EACL,QAAQ,CACT,KAAM,SACN,oBAAqBC,EACrB,kBAAmBC,EACnB,QAAAl6L,CACH,CAAA,GAAG,QACP,EAGLi6L,EAAoB,MAAQ,IAAI/iI,EAAiB,wBAEjD,MAAMf,EAAqB,IAAM8jI,EAAoB,MAAM,WAAY,EACvE,UAAWvjI,KAAY+gH,EACnB/gH,EAAS,MAAM,sBAAsBP,CAAkB,EAG3D,GAAI3xB,EAAU,CACV,MAAMzE,EAAY03I,EAAU,IAAI/gH,GAAYA,EAAS,SAAS,EAC9DujI,EAAoB,UAAYH,GAAyB,eAAe/5J,CAAS,CAC7F,CACQ,OAAOk6J,CACf,CACI,MAAM,cAAchE,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CAEnC,MAAMm6L,EAAa,MAAM,QAAQ,IAAI7hK,EAAU,MAC1C,IAAIigK,GAAgB,KAAK,uBAAuB,QAAQ,CAAE,UAAWA,EAAc,QAAAv4L,CAAS,CAAA,CAAC,CAAC,EACnG,IAAIo6L,EACJ,UAAWt4K,KAAUq4K,EACjB,GAAIC,IAAe,OACfA,EAAat4K,EAAO,aAEfs4K,IAAet4K,EAAO,KAC3B,MAAM,IAAI,MAAM,mBAAmBs4K,CAAU,QAAQt4K,EAAO,IAAI,EAAE,EAI1E,GAAIs4K,IAAe,YAAc9hK,EAAU,MAAM,SAAW,EAAG,CAC3D,MAAM43C,EAAUiqH,EAAW,IAAI3wH,EAAwB,eAAe,EAKtE,MAAO,CAAE,KAAM,WAAY,eAJJ,IAAIxG,EAAgB,cAAckN,EAAQ,IAAKpuD,GAAWA,EAAO,cAAc,EAAG,CAAE,UAAW,EAAK,CAAE,EAIlF,SAH1B,IAAM,QAAQ,IAAIouD,EAAQ,IAAIpuD,GAAUA,EAAO,UAAU,CAAC,EACtE,KAAKu4K,GAAWP,GAChB,cAAcO,EAAS,GAAMr6L,EAAS,KAAK,6BAA6B,CAAC,CACzB,CACjE,CAEQ,GAAIo6L,IAAe,QAAS,CACxB,MAAMlqH,EAAUiqH,EAAW,IAAI3wH,EAAwB,YAAY,EAKnE,MAAO,CAAE,KAAM,QAAS,WAJL,IAAIxG,EAAgB,cAAckN,EAAQ,IAAKpuD,GAAWA,EAAO,UAAU,EAAG,CAAE,UAAW,EAAK,CAAE,EAIjF,SAHnB,IAAM,QAAQ,IAAIouD,EAAQ,IAAIpuD,GAAUA,EAAO,UAAU,CAAC,EACtE,KAAKu4K,GAAWP,GAChB,cAAcO,EAAS,GAAOr6L,EAAS,KAAK,6BAA6B,CAAC,CACjC,CAC1D,CAEQ,MAAM,IAAI,MAAM,mBAAmBo6L,CAAU,EAAE,CACvD,CACA,EACAR,gCAAA,yBAAmCE,iICtHnC,IAAIl1K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gCAAqC,EAAE+D,CAAO,8TCf3D,OAAO,eAAeq1K,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAM9wH,EAAoEtoD,cAAA,EACpE8hD,EAA0C99C,qBAAA,EAC1C2e,EAAe1e,mBAAqB,EAK1C,IAAAo1K,EAAA,cAAyCv3H,EAAgB,gBAAiB,CACtE,YAAYF,EAAgBt7D,EAASyF,EAAWke,EAAOnrB,EAASw6L,EAAwBC,EAAkBC,EAAuB,GAAI,CACjI,MAAM,CAAE,UAAW,GAAO,EAC1B,KAAK,eAAiB53H,EACtB,KAAK,QAAUt7D,EACf,KAAK,UAAYyF,EACjB,KAAK,MAAQke,EACb,KAAK,QAAUnrB,EACf,KAAK,uBAAyBw6L,EAC9B,KAAK,qBAAuBE,EAC5B,KAAK,WAAa,IAAI,IACtB,KAAK,kBAAoB,CAAE,EAC3B,KAAK,kBAAoB,CAAE,EAC3B,KAAK,QAAU,GAEf,KAAK,MAAM,KAAK,QAASD,CAAgB,CACjD,CACI,YAAY79H,EAAcpzB,EAAU,CAEhC,MAAI,CAAC,KAAK,SAAWozB,IAAiB,YAClC,KAAK,mBAAmB,EAAK,EACxB,MAAM3gE,GAAS,KAAK,KAAK,QAASA,CAAK,CAAC,EAE1C,MAAM,YAAY2gE,EAAcpzB,CAAQ,CACvD,CACI,KAAK8yB,EAAS,CAEV,UAAWh7E,KAAM,KAAK,kBAClBA,EAAG,QAAS,EAEhB,MAAM,KAAKg7E,CAAO,CAC1B,CACI,MAAM35D,EAAMg4L,EAAe,GAAM,CAC7B,IAAIzyJ,EACJ,GAAIyyJ,IAEAzyJ,KAAiBrE,EAAa,cAAclhC,CAAI,EAC5C,KAAK,WAAW,IAAIulC,CAAU,GAC9B,MAAO,GAIf,MAAM7f,EAAW,KAAK,eAAe,YAAY,SAAS,GAAG,EAC7D,YAAK,kBAAkB,KAAK,CACxB,SAAAA,EACA,UAAW,KAAK,eAAe,WAAW1lB,EAAM,KAAK,UAAW0lB,EAAU,KAAK,KAAK,CAChG,CAAS,EAEG6f,IACA,KAAK,WAAW,IAAIA,EAAYvlC,CAAI,EACpC,MAAM,MAAMA,CAAI,GAEb,EACf,CACI,MAAM,mBAAmBi4L,EAAY,CACjC,KAAK,QAAU,GACf,MAAMC,EAAmB,KAAK,kBAAkB,IAAK,EAC/Cr3L,KAAcgmE,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWqxH,EAAiB,UAAW,QAAS,KAAK,OAAO,CAAE,CAAC,EAClKC,EAAmBt3L,EAAQ,eAAe,IAAIghC,GAAYA,EAAS,IAAIq2J,EAAiB,QAAQ,CAAC,EAClGC,EAAiB,OAClB,KAAK,kBAAkB,KAAKA,CAAgB,EAC5CA,EAAiB,GAAG,QAAS7+L,GAAS,KAAK,QAAQA,CAAK,CAAC,EACzD6+L,EAAiB,GAAG,WAAY,IAAM,CAC9BF,GACA,KAAK,iBAAkB,EAE3B,KAAK,SAAW,EAChC,CAAa,EACDE,EAAiB,GAAG,MAAO,IAAM,CAC7B,KAAK,kBAAkB,OAAO,KAAK,kBAAkB,QAAQA,CAAgB,EAAG,CAAC,EAC7EF,GACA,KAAK,iBAAkB,EAE3B,KAAK,SAAW,EAChC,CAAa,GAEA,KAAK,YAAY,UAAU,GAC5B,KAAK,YAAY,WAAYp3L,EAAQ,QAAQ,CAEzD,CACI,MAAMkQ,EAAOurD,EAAM,CAEf,MAAMhjC,EAAO,MACZ,gBAAkB,CAEf,KAAOA,EAAK,kBAAkB,OAASA,EAAK,sBACpCA,EAAK,kBAAkB,SAAW,GAGtC,MAAMA,EAAK,mBAAmB,EAAI,EAGtC,IAAIskC,EAAY,EACZ59D,EACAo4L,EAAgB,GAEpB,KAAO,CAACA,GAAiBx6H,KAAeA,EAAY7sD,IAAQ,CACxDqnL,EAAgB,GAEhB,QAASrgN,EAAI,EAAGA,EAAIuhD,EAAK,kBAAkB,QAAUvoB,EAAQ,EAAGh5B,KAEvDioB,EAAOs5B,EAAK,kBAAkBvhD,CAAC,EAAE,KAAM,KAAM,OAC1CuhD,EAAK,MAAMt5B,CAAI,EACf+Q,IAGAqnL,EAAgB,GAI5C,CAEY9+J,EAAK,cAAe,CAChC,GAAY,EAAC,KAAK,IAAM,CACZgjC,EAAM,CACT,EAAEhjE,GAAS,KAAK,QAAQA,CAAK,CAAC,CACvC,CACI,eAAgB,CACR,KAAK,kBAAkB,SAAW,GAAK,KAAK,kBAAkB,SAAW,GACzE,KAAK,MAAO,CAExB,CACA,EACAq+L,kCAAA,2BAAqCU,0LCpIrC,OAAO,eAAeC,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAM/mB,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCqkD,EAAoEpkD,cAAA,EACpE49C,EAA0C39C,qBAAA,EAC1Cwe,EAAeve,mBAAqB,EACpC8mC,EAAoB7mC,uBAA0B,EAC9C+0K,EAAsE90K,kCAAA,EAM5E,IAAA01K,EAAA,cAAgChnB,EAAsB,gCAAiC,CACnF,YAAYx8K,EAAMyjM,EAAe,CAC7B,MAAMzjM,EAAM,MAAM,EAClB,KAAK,cAAgByjM,CAC7B,CACI,MAAM,cAAc7iK,EAAW+yD,EAAU,CACrC,OAAI/yD,EAAU,UAAU,OAAS,KAAK,iBACvB5S,EAAO,UAAU,4BAA4B,KAAK,aAAa,mBAAmB,KAEtFA,EAAO,cAAe,CACzC,CAEI,iBAAiBwG,EAAahI,EAAM7uB,EAAM,CACtC,OAAKA,EAID6uB,IAASA,EAAK,QAAQ,QAAU7uB,GAAQ6uB,EAAK,OAAO,QAAU7uB,GACvD,KAAK,iBAAiB62B,EAAahI,EAAM,GAAG7uB,CAAI,GAAG,EAEvD62B,EAAY,SAAS72B,CAAI,EANrB,KAAK,iBAAiB62B,EAAahI,EAAM,GAAG,CAO/D,CAII,MAAM,8BAA8B4+C,EAAgB9iE,EAASkkB,EAAM,CAC/D,OAAKlkB,EAAQ,IAAIwnB,EAAkB,mBAAmB,gCAAgC,GAOtFxnB,EAAUA,EAAQ,IAAIwnB,EAAkB,mBAAmB,iCAAkC,EAAK,EAC3F,CAAE,QAAAxnB,EAAS,UAAW,MAAW,IAPpCA,EAAUA,EAAQ,IAAIwnB,EAAkB,mBAAmB,iCAAkC,EAAI,EAC1F,CAAE,QAAAxnB,EAAS,aAAewpE,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAC5G,UAAW1G,EAAe,eAAe5+C,CAAI,EAC7C,QAAAlkB,CACH,CAAA,CAAC,CAAG,EAIrB,CACI,MAAM,2BAA2BwH,EAASuD,EAAQkC,EAAWke,EAAOnrB,EAAS8iE,EAAgBgG,EAAiB,CAC1G,MAAMx3D,EAAU,KAAK,eAAerE,CAAS,EAGvCmuL,EAAU,KAAK,iBAAiBt4H,EAAe,YAAaA,EAC7D,WAAWt7D,EAASyF,EAAWlC,EAAQogB,CAAK,CAAC,EAC5CkwK,EAAav4H,EAAe,YAAY,CAC1C,KAAK,qBAAqBA,EAAgBA,EAAe,cAAct7D,EAAS4zL,EAASrwL,EAAQogB,CAAK,EAAG7Z,CAAO,EAChH,KAAK,qBAAqBwxD,EAAgBA,EAAe,cAAc/3D,EAAQqwL,EAAS5zL,EAAS2jB,CAAK,EAAG7Z,CAAO,CAC5H,CAAS,EACK9N,KAAcgmE,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,QAAAxpE,EAAS,UAAWq7L,CAAY,CAAA,CAAC,EACpIC,EAAe,IAAI,IAqBzB,MAAO,CACH,eArBmB,IAAIt4H,EAAgB,uBAAuBx/D,EAAQ,eAAgB,CACtF,eAAiBghC,GAAa,CAE1B,MAAMkxJ,EAAalxJ,EAAS,IAAIrZ,CAAK,EACrC,OAAImwK,EAAa,IAAI5F,EAAW,KAAK,EAC1B,IAAI1yH,EAAgB,eAE/Bs4H,EAAa,IAAI5F,EAAW,KAAK,EAC1B,IAAI1yH,EAAgB,kBAAkB,SAAY,CACrD,MAAM1hF,EAAK,IAAI0hF,EAAgB,iBAC/B,aAAM,KACD,wBAAwBF,EAAgBt7D,EAASyF,EAAWyoL,EAAY11L,EAAS,CAAA,EAAI1e,EAAI,CAAE,MAAO,CAAC,CAAE,EACnGA,EAAG,IAAIqhB,GAAQmmE,EAAgB,SAAS,CAC3C,CAAC/9D,EAAQpI,CAAI,EACb,CAACwoB,EAAOuqK,CAAU,CAC1C,CAAqB,CAAC,CACtB,EAAmB,CAAE,cAAe,IAAK,EAC5B,EACD,UAAW,EACvB,CAAS,EAGG,SAAUlyL,EAAQ,QACrB,CACT,CAcI,MAAM,4BAA4BgE,EAASyF,EAAWlC,EAAQogB,EAAOnrB,EAASy6L,EAAkB33H,EAAgBgG,EAAiB,CAC7H,GAAI39C,EAAM,WAAa,WACnB,OAAO,KACF,2BAA2B3jB,EAASuD,EAAQkC,EAAWke,EAAOnrB,EAAS8iE,EAAgBgG,CAAe,EAE/G,MAAMxnF,EAAK,IAAIg5M,EAA6B,2BAA2Bx3H,EAAgBt7D,EAASyF,EAAWke,EAAOnrB,EAAS,KAAK,uBAAwBy6L,CAAgB,EAExK,MAAO,CACH,eAFmBn5M,EAAG,IAAIqhB,GAAQmmE,EAAgB,SAAS,CAAC,CAAC/9D,EAAQpI,CAAI,CAAC,CAAC,CAAC,EAG5E,MAAM,UAAW,CACb,MAAM+zD,EAAW,MAAM,IAAI,QAASF,GAAY,CAC5Cl1E,EAAG,YAAY,WAAai6M,GAAkB/kI,EAAQ+kI,EAAa,CAAE,CAAC,CAC1F,CAAiB,EAGD,OAAA7kI,EAAS,YAAY,QACdA,CACV,CACJ,CACT,CAaI,MAAM,wBAAwBoM,EAAgB/3D,EAAQkC,EAAWke,EAAOnrB,EAASw7L,EAAYl6M,EAAIyoD,EAAS,CACtG,MAAM7B,KAAiBrE,EAAa,cAAc94B,CAAM,EACxD,GAAIywL,EAAWtzJ,CAAU,EACrB,OAEJ5mD,EAAG,MAAMypB,CAAM,EACfywL,EAAWtzJ,CAAU,EAAIn9B,EACzBg/B,EAAQ,QACR,MAAM0xJ,EAAe,KAAK,iBAAiB34H,EAAe,WAAW,EAC/D5+C,EAAO4+C,EAAe,WAAW/3D,EAAQkC,EAAWwuL,EAActwK,CAAK,EACvE3nB,KAAcgmE,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWtlD,EAAM,QAAAlkB,CAAS,CAAA,CAAC,EAGpI,OAAAwD,EAAQ,eAAe,GAAG,OAAQ,MAAOghC,GAAa,CAClD,MAAMzuC,EAASyuC,EAAS,IAAIi3J,CAAY,EACxC,MAAM,KAAK,wBAAwB34H,EAAgB/sE,EAAQkX,EAAWke,EAAOnrB,EAASw7L,EAAYl6M,EAAIyoD,CAAO,CACzH,CAAS,EACDvmC,EAAQ,eAAe,GAAG,MAAO,IAAM,CAC/B,EAAEumC,EAAQ,QAAU,GACpBzoD,EAAG,MAAO,CAE1B,CAAS,EACMkiB,EAAQ,QACvB,CAsBI,MAAM,yCAAyCk4L,EAAYC,EAAWC,EAAYC,EAAW5uL,EAAWke,EAAOnrB,EAAS87L,EAAkBC,EAA0Bz6M,EAAIyoD,EAAS+4B,EAAgBgG,EAAiB,CAC9M,MAAM5gC,KAAiBrE,EAAa,cAAcg4J,CAAS,KAAQh4J,EAAa,cAAc1Y,CAAK,EAEnG,GAAI4wK,EAAyB7zJ,CAAU,EACnC,OASJ,GAPA6B,EAAQ,QACRgyJ,EAAyB7zJ,CAAU,EAAI,GACvC5mD,EAAG,MAAMwnF,EAAgB,SAAS,CAC9B,CAAC4yH,EAAYE,CAAU,EACvB,CAACD,EAAWE,CAAS,CACjC,CAAS,CAAC,EAEE3zJ,KAAc4zJ,EAAkB,CAChC,MAAMhmM,EAAU,MAAMgmM,EAAiB5zJ,CAAU,EACjD,UAAWn9B,KAAUjV,EACjB,MAAM,KAAK,yCAAyC4lM,EAAYC,EAAWC,EAAY7wL,EAAQkC,EAAWke,EAAOnrB,EAAS87L,EAAkBC,EAA0Bz6M,EAAIyoD,EAAS+4B,EAAgBgG,CAAe,EAElN,EAAE/+B,EAAQ,QAAU,GACpBzoD,EAAG,MAAO,EAEd,MACZ,CAIQ,MAAM8qH,EAAU,IAAI,QAAQ,MAAO51C,EAASC,IAAW,CACnD,MAAMulI,EAAe,CAAE,EAEjBP,EAAe,KAAK,iBAAiB34H,EAAe,WAAW,EAC/D5+C,EAAO4+C,EAAe,WAAW+4H,EAAW5uL,EAAWwuL,EAActwK,CAAK,EAC1E3nB,KAAcgmE,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWtlD,EAAM,QAAAlkB,CAAS,CAAA,CAAC,EAIpIwD,EAAQ,eAAe,GAAG,OAAQ,MAAOghC,GAAa,CAClD,MAAMzuC,EAASyuC,EAAS,IAAIi3J,CAAY,EACxCO,EAAa,KAAKjmM,CAAM,EACxB,MAAM,KAAK,yCAAyC2lM,EAAYC,EAAWC,EAAY7lM,EAAQkX,EAAWke,EAAOnrB,EAAS87L,EAAkBC,EAA0Bz6M,EAAIyoD,EAAS+4B,EAAgBgG,CAAe,CAClO,CAAa,EACDtlE,EAAQ,eAAe,GAAG,QAASizD,CAAM,EACzCjzD,EAAQ,eAAe,GAAG,MAAO,IAAM,CAC/B,EAAEumC,EAAQ,QAAU,GACpBzoD,EAAG,MAAO,EAEdk1E,EAAQwlI,CAAY,CACpC,CAAa,CACb,CAAS,EAEDF,EAAiB5zJ,CAAU,EAAIkkE,CACvC,CAKI,eAAe9zE,EAAW,CACtB,OAAQA,EAAU,KAAI,CAClB,KAAK8zB,EAAkB,QAAQ,MAAM,IACrC,KAAKA,EAAkB,QAAQ,MAAM,IACjC,OAAO9zB,EAAU,MACZ,QAASiU,GAAU,KAAK,eAAeA,CAAK,CAAC,EACtD,KAAK6f,EAAkB,QAAQ,MAAM,IACrC,KAAKA,EAAkB,QAAQ,MAAM,iBACrC,KAAKA,EAAkB,QAAQ,MAAM,kBACrC,KAAKA,EAAkB,QAAQ,MAAM,iBACjC,OAAO,KAAK,eAAe9zB,EAAU,IAAI,EAC7C,KAAK8zB,EAAkB,QAAQ,MAAM,KACrC,KAAKA,EAAkB,QAAQ,MAAM,IAAK,CACtC,MAAM/0D,KAAamyE,EAAwB,oBAAoBlxC,CAAS,EACxE,GAAI,CAACjhC,EACD,MAAM,IAAI,MAAM,2DAA2D,EAE/E,MAAO,CAACA,CAAM,CAC9B,CACA,CACA,CACI,qBAAqByrE,EAAgB5iC,EAAS5uB,EAAS,CACnD,GAAIA,EAAQ,SAAW,EACnB,MAAM,IAAI,MAAM,6EAA6E,EAEjG,OAAIA,EAAQ,SAAW,KACRk4D,EAAwB,uBAAuBtpC,EAAS5uB,EAAQ,CAAC,CAAC,EAE1EwxD,EAAe,YAAYxxD,EAC7B,IAAIja,MAAcmyE,EAAwB,uBAAuBtpC,EAAS7oC,CAAM,CAAC,EAAG,EAAI,CACrG,CACA,EACA4jM,yBAAA,kBAA4BgB,0HCzQ5B,IAAIr3K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yBAA8B,EAAE+D,CAAO,EACpDD,EAAaE,kCAAuC,EAAED,CAAO,2NChB7D,OAAO,eAAei3K,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMC,EAAgEj7K,aAAA,EAChEk7K,EAAgFl3K,aAAA,EAChFsC,EAAwDrC,cAAA,EACxDqkD,EAAoEpkD,cAAA,EACpE49C,EAA0C39C,qBAAA,EAC1C+mC,EAAoB9mC,uBAA0B,EAIpD,IAAA+2K,EAAA,cAAyCF,EAAsB,iBAAkB,CAC7E,YAAYzkM,EAAM,CACd,MAAMA,EAAM00D,EAAkB,QAAQ,MAAM,GAAG,CACvD,CACI,MAAM,aAAa9zB,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1Djf,EAAYqrB,EAAU,UACtBgkK,GAAiB,MAAM,QAAQ,IAAIrvL,EAAU,MAC9C,IAAIsvL,GAAgB,KAAK,uBAAuB,QAAQ,CACzD,QAAAv8L,EACA,UAAW8iE,EAAe,WAAWxqC,EAAU,QAASikK,EAAcjkK,EAAU,OAAQA,EAAU,KAAK,CAC1G,CAAA,CAAC,CAAC,GACE,IAAIkxC,EAAwB,eAAe,EAKhD,MAAO,CACH,KAAM,WACN,eANmB,IAAIxG,EAAgB,cAAcs5H,EAAc,IAAIpzJ,GAAMA,EAAG,cAAc,EAAG,CAAE,UAAW,EAAK,CAAE,EAOrH,SANa,IAAM,QAAQ,IAAIozJ,EAAc,IAAIx6K,GAAUA,EAAO,UAAU,CAAC,EAC5E,KAAKu4K,GAAW+B,EAA8B,yBAC9C,cAAc/B,EAAS,GAAMr6L,EAAS,KAAK,6BAA6B,CAAC,CAK7E,CACT,CACA,EACAk8L,kCAAA,2BAAqCM,mICpCrC,IAAI53K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,kQCf7D,OAAO,eAAew3K,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMN,EAAgEj7K,aAAA,EAChEsG,EAAwDtC,cAAA,EACxDknC,EAAoBjnC,uBAA0B,EAIpD,IAAAu3K,EAAA,cAAyCP,EAAsB,iBAAkB,CAC7E,YAAYzkM,EAAM,CACd,MAAMA,EAAM00D,EAAkB,QAAQ,MAAM,GAAG,CACvD,CACI,MAAM,aAAa9zB,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1Djf,EAAYqrB,EAAU,UACtBqkK,EAAU75H,EAAe,WAAWxqC,EAAU,OAAQrrB,EAAU,KAAMqrB,EAAU,QAASA,EAAU,KAAK,EAC9G,OAAO,KAAK,uBAAuB,QAAQ,CAAE,UAAWqkK,EAAS,QAAA38L,EAAS,CAClF,CACA,EACAy8L,kCAAA,2BAAqCG,mICpBrC,IAAIh4K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,wQCf7D,OAAO,eAAe43K,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMV,EAAgEj7K,aAAA,EAChEsG,EAAwDtC,cAAA,EACxDknC,EAAoBjnC,uBAA0B,EAIpD,IAAA23K,EAAA,cAA0CX,EAAsB,iBAAkB,CAC9E,YAAYzkM,EAAM,CACd,MAAMA,EAAM00D,EAAkB,QAAQ,MAAM,IAAI,CACxD,CACI,MAAM,aAAa+Z,EAAmBnmE,EAAS,CAC3C,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1Djf,EAAYk5D,EAAkB,UAC9B7tC,EAAY,OAAO,OAAOwqC,EAAe,cAAcqD,EAAkB,QAASl5D,EAAU,IAAKk5D,EAAkB,OAAQA,EAAkB,KAAK,EAAG,CAAE,SAAUl5D,EAAU,SAAU,EAC3L,OAAO,KAAK,uBAAuB,QAAQ,CAAE,UAAAqrB,EAAW,QAAAt4B,CAAO,CAAE,CACzE,CACA,EACA68L,mCAAA,4BAAsCE,oICpBtC,IAAIn4K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,kQCf9D,OAAO,eAAe+3K,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMb,EAAgEj7K,aAAA,EAChEsG,EAAwDtC,cAAA,EACxDskD,EAAoErkD,cAAA,EACpEinC,EAAoBhnC,uBAA0B,EAIpD,IAAA63K,EAAA,cAAyCd,EAAsB,iBAAkB,CAC7E,YAAYzkM,EAAM,CACd,MAAMA,EAAM00D,EAAkB,QAAQ,MAAM,GAAG,CACvD,CACI,MAAM,aAAa9zB,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1Djf,EAAYqrB,EAAU,UACtBwD,EAAQ,KAAK,iBAAiB5P,EAAaoM,CAAS,EACpD4H,EAAU,OAAO,OAAO4iC,EACzB,cAAcxqC,EAAU,QAASwD,EAAOxD,EAAU,OAAQA,EAAU,KAAK,EAAG,CAAE,SAAUrrB,EAAU,QAAQ,CAAE,EAC3G6U,KAAa0nD,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWtpC,EAAS,QAAAlgC,CAAS,CAAA,CAAC,EAItI,MAAO,CACH,KAAM,WACN,eAJmB8hB,EAAO,eACzB,IAAI0iB,GAAYv3B,EAAU,KAAK,KAAK4wB,GAAOA,EAAI,OAAO2G,EAAS,IAAI1I,CAAK,CAAC,CAAC,EAAI,KAAO0I,EAAS,OAAO1I,CAAK,CAAC,EAI5G,SAAUha,EAAO,QACpB,CACT,CACA,EACAk7K,kCAAA,2BAAqCE,mIC/BrC,IAAIt4K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,sPCf7D,OAAO,eAAek4K,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMjpB,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDskD,EAAoErkD,cAAA,EAK1E,IAAAi4K,EAAA,cAAuClpB,EAAsB,gCAAiC,CAC1F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,OAAO,CAC3B,CACI,MAAM,cAAc4gC,EAAWt4B,EAAS,CACpC,SAAWwpE,EAAwB,cAAcxpE,CAAO,CAChE,CACI,MAAM,aAAas4B,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EAE/E,IAAIsa,EACAxJ,EAAU,SAAW,UACrBwJ,EAAS5V,EAAY,aAAc,EAE9B,OAAOoM,EAAU,QAAW,SACjCwJ,EAASxJ,EAAU,OAGnBwJ,EAAS,CAACxJ,EAAU,MAAM,EAE9B,KAAM,CAAE,QAAA+kK,CAAS,EAAG,MAAM,KAAK,oBAAoB,QAAQ,CACvD,aAAc,CACV,OAAAv7J,EACA,iBAAkB,CAACxJ,EAAU,OAC7B,WAAY,EACf,EACD,QAAAt4B,CACZ,CAAS,EACD,MAAO,CACH,KAAM,OACN,QAAAq9L,CACH,CACT,CACA,EACAF,gCAAA,yBAAmCG,iIC3CnC,IAAI14K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gCAAqC,EAAE+D,CAAO,sVCf3D,OAAO,eAAes4K,yCAAS,aAAc,CAAE,MAAO,GAAM,EACZA,yCAAA,yCAAG,OACnD,MAAMrpB,EAAgEhzJ,cAAA,EAChEsoD,EAAoEtkD,cAAA,EAI1E,IAAAs4K,EAAA,cAAuDtpB,EAAsB,gCAAiC,CAC1G,YAAYx8K,EAAM,CACd,MAAMA,EAAM,iBAAiB,CACrC,CACI,MAAM,cAAc4gC,EAAWt4B,EAAS,CACpC,SAAWwpE,EAAwB,cAAcxpE,CAAO,CAChE,CACI,MAAM,aAAammE,EAAmBnmE,EAAS,CAQ3C,MAAO,CACH,KAAM,OACN,QATY,KAAO,SAAY,CAE/B,UAAWs4B,KAAa6tC,EAAkB,QAEtC,QADsBqD,EAAwB,aAAa,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAAlxC,EAAW,QAAAt4B,CAAS,CAAA,CAAC,EAC5G,QAAS,CAEzC,GAAY,CAIH,CACT,CACA,EACAu9L,gDAAA,yCAAmDE,iJC5BnD,IAAI74K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gDAAqD,EAAE+D,CAAO,4PCf3E,OAAO,eAAey4K,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAMxpB,EAAgEhzJ,cAAA,EAChEsoD,EAAoEtkD,cAAA,EAK1E,IAAAy4K,EAAA,cAAwCzpB,EAAsB,gCAAiC,CAC3F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,QAAQ,CAC5B,CACI,MAAM,cAAc4gC,EAAWt4B,EAAS,CACpC,SAAWwpE,EAAwB,cAAcxpE,CAAO,CAChE,CACI,MAAM,aAAas4B,EAAWt4B,EAAS,CAEnC,KAAM,CAAE,QAAAq9L,CAAS,EAAG,MAAM,KAAK,oBAAoB,QAAQ,CACvD,aAAc,CACV,OAAQ,CAAC/kK,EAAU,MAAM,EACzB,oBAAqB,CAACA,EAAU,MACnC,EACD,QAAAt4B,CACZ,CAAS,EACD,MAAO,CACH,KAAM,OACN,QAAAq9L,CACH,CACT,CACA,EACAK,iCAAA,0BAAoCE,kIC9BpC,IAAIh5K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iCAAsC,EAAE+D,CAAO,gPCf5D,OAAO,eAAe44K,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAM3pB,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDskD,EAAoErkD,cAAA,EAK1E,IAAA24K,EAAA,cAAsC5pB,EAAsB,gCAAiC,CACzF,YAAYx8K,EAAM,CACd,MAAMA,EAAM,MAAM,CAC1B,CACI,MAAM,cAAc4gC,EAAWt4B,EAAS,CACpC,SAAWwpE,EAAwB,cAAcxpE,CAAO,CAChE,CACI,MAAM,aAAas4B,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EAE/E,IAAIsa,EACAxJ,EAAU,SAAW,UACrBwJ,EAAS5V,EAAY,aAAc,EAE9B,OAAOoM,EAAU,QAAW,SACjCwJ,EAASxJ,EAAU,OAGnBwJ,EAAS,CAACxJ,EAAU,MAAM,EAE9B,KAAM,CAAE,QAAA+kK,CAAS,EAAG,MAAM,KAAK,oBAAoB,QAAQ,CACvD,aAAc,CACV,OAAAv7J,EACA,iBAAkB,CAACxJ,EAAU,OAC7B,WAAY,EACf,EACD,QAAAt4B,CACZ,CAAS,EACD,MAAO,CACH,KAAM,OACN,QAAAq9L,CACH,CACT,CACA,EACAQ,+BAAA,wBAAkCE,gIC3ClC,IAAIn5K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,+BAAoC,EAAE+D,CAAO,gPCf1D,OAAO,eAAe+4K,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAM9pB,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDskD,EAAoErkD,cAAA,EACpEinC,EAAoBhnC,uBAA0B,EAKpD,IAAA64K,EAAA,cAAsC/pB,EAAsB,gCAAiC,CACzF,YAAYx8K,EAAM,CACd,MAAMA,EAAM,MAAM,CAC1B,CACI,MAAM,cAAc4gC,EAAWt4B,EAAS,CACpC,SAAWwpE,EAAwB,cAAcxpE,CAAO,CAChE,CACI,MAAM,aAAas4B,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAEhE,IAAIorC,EAAat3D,EACbs4B,EAAU,SACVg/B,EAAaA,EAAW,IAAI9vC,EAAkB,cAAc,QAAS,EAAI,GAE7E,KAAM,CAAE,YAAA02K,CAAa,EAAG,MAAM,KAAK,4BAA4B,QAAQ,CACnE,wBAAyB,CAAE,MAAO5lK,EAAU,OAAO,KAAO,EAC1D,QAASg/B,CACrB,CAAS,EAQD,IAAI+8G,KANe7qG,EAAwB,cAAc,MAAM,KAAK,uBAAuB,QAAQ,CAC/F,UAAW1G,EAAe,mBAAoB0G,EAAwB,uBAAuB1G,EAAe,cAAc52C,EAAY,SAAS,GAAG,EAAGA,EAAY,SAAS,GAAG,EAAGA,EAAY,SAAS,GAAG,CAAC,EAAGgyK,CAAW,EAAG,CAACp7H,EAClN,cAAc52C,EAAY,SAAS,GAAG,EAAGA,EAAY,SAAS,GAAG,EAAGA,EAAY,SAAS,GAAG,CAAC,CAAC,CAAC,EACxG,QAASorC,CACrB,CAAS,CAAC,EAEsB,WACpBh/B,EAAU,cACV+7I,EAAaA,EACR,IAAIhvI,GAAQnZ,EAAY,KAAKmZ,EAAK,QAASA,EAAK,UAAWA,EAAK,OAAQ/M,EAAU,WAAW,CAAC,GAGvG,KAAM,CAAE,QAAA+kK,CAAS,EAAG,MAAM,KAAK,oBAAoB,QAAQ,CACvD,iBAAkBhpB,EAClB,QAAAr0K,CACZ,CAAS,EACD,MAAO,CACH,KAAM,OACN,QAAAq9L,CACH,CACT,CACA,EACAW,+BAAA,wBAAkCG,gICpDlC,IAAIv5K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,+BAAoC,EAAE+D,CAAO,gPCf1D,OAAO,eAAem5K,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMlqB,EAAgEhzJ,cAAA,EAChEw3J,EAAkDxzJ,cAAA,EAClDQ,EAAkCP,cAAA,EAClC+xC,EAAsD9xC,cAAA,EACtDokD,EAAoEnkD,cAAA,EACpE29C,EAA0C19C,qBAAA,EAC1CoG,EAAqBnG,wBAA2B,EAItD,IAAA84K,EAAA,cAAsCnqB,EAAsB,gCAAiC,CACzF,YAAYx8K,EAAM,CACd,MAAMA,EAAM,MAAM,CAC1B,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAaygD,EAAmBnmE,EAAS,CAC3C,MAAM8M,GAAW,MAAM,QAAQ,IAAIq5D,EAAkB,MAChD,IAAI,MAAOoyH,IAAkB,CAC9B,OAAQ,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWA,EAAc,QAAAv4L,EAAS,EACtF,UAAWu4L,CACd,EAAC,CAAC,GACE,IAAI,CAAC,CAAE,OAAAz2K,EAAQ,UAAAwW,MAAiB,CACjC,UAAYkxC,EAAwB,iBAAiB1nD,CAAM,EAC3D,UAAAwW,CACZ,EAAU,EAEF,IAAK,MAAM,QAAQ,IAAIxrB,EAAQ,IAAIvC,GAASA,EAAM,OAAO,SAAQ,CAAE,CAAC,GAC/D,KAAKA,GAAUA,EAAM,YAAY,QAAU,GAAKA,EAAM,YAAY,OAAS,OAAQ,EAAG,CACvF,UAAWA,KAASuC,EAChBvC,EAAM,OAAO,eAAe,MAAO,EAEvC,MAAO,CACH,eAAgB,IAAIy4D,EAAgB,cAAc,CAAE,EAAE,CAAE,UAAW,GAAO,EAC1E,SAAU,UAAa,CACnB,MAAO,IAAI9L,EAAiB,wBAC5B,YAAa,CAAE,KAAM,QAAS,MAAO,CAAG,EACxC,UAAWwhH,EAAe,aAAa,cAAc,IAAIhtJ,EAAmB,YAAe,MAAMgtJ,EAAe,aAAa,aAAa5rK,CAAO,CAAC,CACtK,GACgB,KAAM,UACT,CACb,CACQ,OAAO,KAAK,aAAa,QAAQ,CAAE,KAAM,QAAS,QAAAA,EAAS,QAAA9M,EAAS,CAC5E,CACA,EACAo+L,+BAAA,wBAAkCE,gIChDlC,IAAI15K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,+BAAoC,EAAE+D,CAAO,wQCf1D,OAAO,eAAes5K,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMrqB,EAAgEhzJ,cAAA,EAChEwE,EAAkCR,cAAA,EAClC+3J,EAAsE93J,cAAA,EACtEmwC,EAA8ElwC,cAAA,EAC9EokD,EAAoEnkD,cAAA,EAI1E,IAAAm5K,EAAA,cAA0CtqB,EAAsB,gCAAiC,CAC7F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,UAAU,EACtB,KAAK,mCAAqCA,EAAK,kCACvD,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAaygD,EAAmBnmE,EAAS,CAE3C,MAAM8M,GAAW,MAAM,QAAQ,IAAIq5D,EAAkB,MAChD,IAAI,MAAOoyH,IAAkB,CAC9B,OAAQ,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWA,EAAc,QAAAv4L,EAAS,EACtF,UAAWu4L,CACd,EAAC,CAAC,GACE,IAAI,CAAC,CAAE,OAAAz2K,EAAQ,UAAAwW,MAAiB,CACjC,UAAYkxC,EAAwB,iBAAiB1nD,CAAM,EAC3D,UAAAwW,CACZ,EAAU,EACIrd,EAAS,MAAM,KAAK,aAAa,QAAQ,CAAE,KAAM,WAAY,QAAAnO,EAAS,QAAA9M,EAAS,EAErF,GAAImmE,EAAkB,WAAY,CAE9B,MAAMs4H,GADgB,MAAM3xL,EAAQ,CAAC,EAAE,OAAO,SAAU,GACd,UACpC8yK,EAAY,MAAM,KAAK,mCACxB,QAAQ,CAAE,QAASz5G,EAAkB,WAAY,QAAAnmE,CAAO,CAAE,EACzDm7G,EAAiBlgG,EAAO,eACzB,UAAU,CACX,UAAW,GAEX,UAAW,MAAOupB,EAAUy6B,EAAMS,IAAS,CAEvC,GAAI,CAAC++H,EAAoB,MAAMp2K,GAAYmc,EAAS,IAAInc,EAAS,SAAS,KAAK,CAAC,EAC5E,OAAAq3C,EAAKl7B,CAAQ,EACNy6B,EAAM,EAEjB,GAAI,CACe,MAAM2gH,EAAU,cAAcp7I,CAAQ,GAEjDk7B,EAAKl7B,CAAQ,CAEzC,OAC2BvoC,EAAO,IAKFq5D,EAA6B,mBAAmBr5D,CAAK,EAGzD,KAAK,QAAQ+D,EAAS,kCAAmC,KAAO,CAAE,MAAA/D,EAAO,YAAcghL,EAAyB,kBAAkBz4I,CAAQ,CAAG,EAAC,EAG9I22E,EAAe,KAAK,QAASl/G,CAAK,CAE9D,CACoBgjE,EAAM,CACT,CACjB,CAAa,EACDhkD,EAAO,eAAiBkgG,CACpC,CACQ,OAAOlgG,CACf,CACA,EACAsjL,mCAAA,4BAAsCG,oIC1EtC,IAAI95K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,sPCf9D,OAAO,eAAe05K,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMzqB,EAAgEhzJ,cAAA,EAChEwE,EAAkCR,cAAA,EAClCskD,EAAoErkD,cAAA,EAI1E,IAAAy5K,EAAA,cAAuC1qB,EAAsB,gCAAiC,CAC1F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,OAAO,CAC3B,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAaygD,EAAmBnmE,EAAS,CAC3C,MAAM8M,GAAW,MAAM,QAAQ,IAAIq5D,EAAkB,MAChD,IAAI,MAAOoyH,IAAkB,CAC9B,OAAQ,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWA,EAAc,QAAAv4L,EAAS,EACtF,UAAWu4L,CACd,EAAC,CAAC,GACE,IAAI,CAAC,CAAE,OAAAz2K,EAAQ,UAAAwW,MAAiB,CACjC,UAAYkxC,EAAwB,iBAAiB1nD,CAAM,EAC3D,UAAAwW,CACZ,EAAU,EACF,OAAO,KAAK,aAAa,QAAQ,CAAE,KAAM,QAAS,QAAAxrB,EAAS,QAAA9M,EAAS,CAC5E,CACA,EACA2+L,gCAAA,yBAAmCE,iIC5BnC,IAAIj6K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gCAAqC,EAAE+D,CAAO,kQCf3D,OAAO,eAAe65K,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAM3C,EAAgEj7K,aAAA,EAChEsG,EAAwDtC,cAAA,EACxDskD,EAAoErkD,cAAA,EACpEinC,EAAoBhnC,uBAA0B,EAIpD,IAAA25K,EAAA,cAAyC5C,EAAsB,iBAAkB,CAC7E,YAAYzkM,EAAM,CACd,MAAMA,EAAM00D,EAAkB,QAAQ,MAAM,GAAG,CACvD,CACI,MAAM,aAAa+Z,EAAmBnmE,EAAS,CAC3C,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1Djf,EAAYk5D,EAAkB,UACpC,IAAI75B,EAAS65B,EAAkB,QAC/B,MAAM64H,EAAyB,CAAE,EAC3BlyL,EAAU,MAAM,QAAQ,IAAIG,EAAU,MACvC,IAAI,CAACsvL,EAAc7hN,IAAM,CAC1B,MAAM8xD,EAAa9xD,IAAMuyB,EAAU,MAAM,OAAS,EAAIk5D,EAAkB,OAAS,KAAK,iBAAiBj6C,EAAai6C,EAAmB,IAAIzrF,CAAC,EAAE,EACxI49C,EAAYwqC,EACb,WAAWx2B,EAAQiwJ,EAAc/vJ,EAAY25B,EAAkB,KAAK,EACnErkD,EAAS,KAAK,uBAAuB,QAAQ,CAC/C,QAAA9hB,EACA,UAAAs4B,CAChB,CAAa,EACD,OAAAgU,EAASE,EACL9xD,EAAIuyB,EAAU,MAAM,OAAS,GAC7B+xL,EAAuB,KAAKxyJ,CAAU,EAEnC,CAAE,OAAA1qB,EAAQ,UAAAwW,CAAW,CAC/B,CAAA,EACI,IAAI,MAAO,CAAE,OAAAxW,EAAQ,UAAAwW,MAAiB,CACvC,UAAYkxC,EAAwB,iBAAiB,MAAM1nD,CAAM,EACjE,UAAAwW,CACH,EAAC,CAAC,EACGtd,KAAWwuD,EAAwB,iBAAiB,MAAM,KAAK,aAChE,QAAQ,CAAE,KAAM,QAAS,QAAA18D,EAAS,QAAA9M,CAAS,CAAA,CAAC,EAYjD,MAAO,CACH,KAAM,WACN,eAZmBgb,EAAK,eAAe,UAAU,CACjD,UAAUrY,EAAMkH,EAAM61D,EAAM,CACxB,UAAWu/H,KAAyBD,EAChCr8L,EAAOA,EAAK,OAAOs8L,CAAqB,EAE5Cv/H,EAAK/8D,CAAI,EACTkH,EAAM,CACT,CACb,CAAS,EAKG,MAAM,UAAW,CACb,MAAMq1L,EAAe,MAAMlkL,EAAK,SAAU,EACpC+kB,EAAYm/J,EAAa,UAAU,OAAO72K,GAAY,CAAC22K,EACxD,KAAKC,GAAyBA,EAAsB,QAAU52K,EAAS,SAAS,KAAK,CAAC,EAC3F,MAAO,CAAE,GAAG62K,EAAc,UAAAn/J,CAAW,CACxC,CACJ,CACT,CACA,EACA++J,kCAAA,2BAAqCK,mIC/DrC,IAAIv6K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,4PCf7D,OAAO,eAAem6K,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAM1mB,EAAkDx3J,cAAA,EAClDsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCqkD,EAAoEpkD,cAAA,EACpEgnC,EAAoB/mC,uBAA0B,EAKpD,IAAAg6K,EAAA,cAAwC3mB,EAAe,YAAa,CAChE,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,iBACd,aAAc,EACd,gBAAiB,GACjB,gBAAiB,GACjB,OAAQ,EACpB,CAAS,CACT,CAOI,MAAM,gBAAgBoV,EAAS9M,EAAS,CACpC,OAAQ,MAAM,KAAK,wBAAwB,QAAQ,CAAE,QAAA8M,EAAS,QAAA9M,CAAS,CAAA,GAAG,OAClF,CACI,MAAM,UAAU6hB,EAAQ8B,EAAU,CAC9B,MAAMuI,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAE1Dpf,EAAU6W,EAAS,cACnB27K,EAAiBxyL,EAAQ,CAAC,EAC1ByyL,EAAiBzyL,EAAQ,CAAC,EAChCA,EAAQ,OAAO,EAAG,CAAC,EAEnB,MAAM0yL,EAAa,CACf,UAAYh2H,EAAwB,iBAAiB,MAAM,KAAK,aAC3D,QAAQ,CAAE,KAAM3nD,EAAO,KAAM,QAAS,CAACy9K,EAAgBC,CAAc,EAAG,QAAS19K,EAAO,OAAS,CAAA,CAAC,EACvG,UAAWihD,EACN,WAAW,CAACw8H,EAAe,UAAWC,EAAe,SAAS,EAAG,EAAK,CAC9E,EACD,OAAAzyL,EAAQ,KAAK0yL,CAAU,EAChB,CACH,OAAQ,MAAM,KAAK,aAAa,QAAQ,CACpC,KAAM39K,EAAO,KACb,QAAA/U,EACA,QAAS+U,EAAO,OAChC,CAAa,CACJ,CACT,CACI,MAAM,oBAAoBA,EAAQ8B,EAAU,CACxC,GAAI,CAAE,UAAA8zJ,CAAS,EAAK9zJ,EACpB8zJ,EAAY,CAAC,GAAGA,CAAS,EAEzB,MAAMgoB,EAAgB,MAAM,KAAK,gBAAgB59K,EAAO,QACnD,IAAI,CAACtX,EAAO7vB,KAAO,CAAE,GAAG6vB,EAAO,SAAUktK,EAAU/8L,CAAC,CAAG,EAAC,EAAGmnC,EAAO,OAAO,EAC9E41J,EAAYgoB,EAAc,IAAIl1L,GAASA,EAAM,QAAQ,EACrD,MAAM8wK,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAClF,SAAW/xJ,EAAO,sBAAsB,CACpC,WAAY+xJ,EAAU,CAAC,EAAE,YAAY,MAAQA,EAAU,CAAC,EAAE,YAAY,MAClEA,EAAU,MAAM,CAAC,EAAE,OAAO,CAAC/rI,EAAKgrB,IAAahrB,EAAMgrB,EAAS,YAAY,MAAO,CAAC,EACpF,eAAgB,EAChB,cAAe,EACf,YAAa2kH,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EACrFD,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EAC5E7D,EAAU,MAAM,CAAC,EAAE,OAAO,CAAC/oK,EAAKgoD,EAAUh8E,IAAMg0B,EAAM2sK,EAAoB,MAAM,CAAC,EAAE3gM,CAAC,EAChFg8E,EAAS,YAAY,MAAQ4kH,EAAiB,MAAM,CAAC,EAAE5gM,CAAC,EAAG,CAAC,CAChF,EAAW,CAAE,GAAGipC,EAAU,cAAA87K,EAAe,CACzC,CACA,EACAL,iCAAA,0BAAoCM,kIC5EpC,IAAI96K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iCAAsC,EAAE+D,CAAO,yNCf5D,OAAO,eAAe06K,cAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,cAAA,cAAG,OACxB,MAAM3f,EAAwF9+J,cAAA,EAC9F,IAAA0+K,EAAA,cAA4B5f,EAAkC,kBAAmB,CAC7E,YAAYJ,EAAW37I,EAAU47J,EAAkBhgB,EAAY,CAC3D,MAAMD,EAAW37I,EAAU47I,CAAU,EACrC,KAAK,iBAAmBggB,EACxB,KAAK,MAAQ,MACrB,CACI,QAAQhiM,EAAM,CACV,GAAIA,EAAK,WAAa,UAClB,MAAM,IAAI,MAAM,mBAAmBA,EAAK,KAAK,aAAaA,EAAK,QAAQ,uBAAuB,EAE9F,KAAK,QAAU,OACf,KAAK,MAAQA,EAER,KAAK,iBAAiB,WAAW,KAAK,MAAOA,CAAI,IAAM,KAC5D,KAAK,MAAQA,EAEzB,CACI,YAAa,CACT,OAAI,KAAK,QAAU,OACR,KAAK,WAAY,EAErB,KAAK,KACpB,CACA,EACA8hM,qBAAA,cAAwBG,6PC3BxB,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAM/f,EAAwF9+J,cAAA,EACxFwE,EAAkCR,cAAA,EAClCy6K,EAA4Cx6K,qBAAA,EAIlD,IAAA66K,EAAA,cAAgDhgB,EAAkC,8BAA+B,CAC7G,YAAYtoL,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,8BAAgCA,EAAK,6BAClD,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,KAAK,aAAe,SAChB6D,EAAO,UAAU,gDAAkD,KAEvEA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI,CAAE,KAAAqY,EAAM,QAAA/9B,GAAW,CACzB,OAAO,IAAI2/L,EAAgB,cAAc,MAAM,KAAK,mCAAmC,QAAQ,CAAE,QAAS5hK,EAAK,WAAY,QAAA/9B,EAAS,EAAG+9B,EAAK,SAAU,MAAM,KAAK,8BAA8B,QAAQ,CAAE,QAAA/9B,CAAO,CAAE,CAAC,CAC3N,CACA,EACA+/L,yCAAA,kCAA4CE,0ICvB5C,IAAIr7K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,EACpED,EAAaE,qBAA0B,EAAED,CAAO,yNChBhD,OAAO,eAAei7K,cAAS,aAAc,CAAE,MAAO,GAAM,EACvCA,cAAA,cAAG,OACxB,MAAMlgB,EAAwF9+J,cAAA,EAC9F,IAAAi/K,EAAA,cAA4BngB,EAAkC,kBAAmB,CAC7E,YAAYJ,EAAW37I,EAAU47J,EAAkBhgB,EAAY,CAC3D,MAAMD,EAAW37I,EAAU47I,CAAU,EACrC,KAAK,iBAAmBggB,EACxB,KAAK,MAAQ,MACrB,CACI,QAAQhiM,EAAM,CACV,GAAIA,EAAK,WAAa,UAClB,MAAM,IAAI,MAAM,mBAAmBA,EAAK,KAAK,aAAaA,EAAK,QAAQ,uBAAuB,EAE9F,KAAK,QAAU,OACf,KAAK,MAAQA,EAER,KAAK,iBAAiB,WAAW,KAAK,MAAOA,CAAI,IAAM,IAC5D,KAAK,MAAQA,EAEzB,CACI,YAAa,CACT,OAAI,KAAK,QAAU,OACR,KAAK,WAAY,EAErB,KAAK,KACpB,CACA,EACAqiM,qBAAA,cAAwBE,6PC3BxB,OAAO,eAAeC,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAMrgB,EAAwF9+J,cAAA,EACxFwE,EAAkCR,cAAA,EAClCg7K,EAA4C/6K,qBAAA,EAIlD,IAAAm7K,EAAA,cAAgDtgB,EAAkC,8BAA+B,CAC7G,YAAYtoL,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,8BAAgCA,EAAK,6BAClD,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,KAAK,aAAe,SAChB6D,EAAO,UAAU,gDAAkD,KAEvEA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI,CAAE,QAAA1lB,EAAS,KAAA+9B,GAAQ,CACzB,OAAO,IAAImiK,EAAgB,cAAc,MAAM,KAAK,mCAAmC,QAAQ,CAAE,QAASniK,EAAK,WAAY,QAAA/9B,EAAS,EAAG+9B,EAAK,SAAU,MAAM,KAAK,8BAA8B,QAAQ,CAAE,QAAA/9B,CAAO,CAAE,CAAC,CAC3N,CACA,EACAqgM,yCAAA,kCAA4CE,0ICvB5C,IAAI37K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,EACpED,EAAaE,qBAA0B,EAAED,CAAO,4MChBhD,OAAO,eAAeu7K,aAAS,aAAc,CAAE,MAAO,GAAM,EACxCA,aAAA,aAAG,OACvB,MAAMx9H,EAA0C9hD,qBAAA,EAEhD,IAAAu/K,EAAA,cAA2Bz9H,EAAgB,iBAAkB,CACzD,YAAY3rE,EAAQokB,EAAMhlB,EAAS,CAC/B,MAAMY,EAAQZ,CAAO,EAErB,MAAMiqM,EAASjqM,GAAWA,EAAQ,OAClC,KAAK,aAAe,OAAO,SAASiqM,CAAM,GAAKA,EAAS,EAAIA,EAAS,OAAO,kBAC5E,KAAK,KAAOjlL,EACZ,KAAK,OAAS,CAAE,CACxB,CAEI,MAAM/H,EAAOurD,EAAM,CACf,IAAIt8D,EACA,CAAE,OAAAmqB,GAAW,KAAK,OAEtB,KAAOA,IAAW,KAAK,eACnBnqB,EAAO,KAAK,OAAO,KAAM,EACrBA,IAAS,OAFoB,CAMjC,IAAIwT,EAAO,EACPC,EAAQ0W,EAAS,EACjBg1G,EACA/lF,EACJ,KAAO5lC,GAAQC,GACX0rH,EAAM,KAAK,OAAO3rH,EAAOC,GAAS,CAAC,EACnC2lC,EAAQ,KAAK,KAAKp5C,EAAM,KAAK,OAAOm/H,CAAG,CAAC,EACpC/lF,EAAQ,EACR5lC,EAAO2rH,EAAM,EAER/lF,EAAQ,EACb3lC,EAAQ0rH,EAAM,GAGd3rH,EAAO2rH,EACP1rH,EAAQ,IAGhB,KAAK,OAAO,OAAOD,EAAM,EAAGxT,CAAI,EAChCmqB,GACZ,CAEYA,IAAW,KAAK,cAChB,KAAK,MAAM,KAAK,OAAO,IAAG,CAAE,EAEhCmyC,EAAM,CACd,CAEI,OAAOA,EAAM,CACT,GAAI,CAAE,OAAAnyC,GAAW,KAAK,OACtB,KAAOA,KACH,KAAK,MAAM,KAAK,OAAO,IAAG,CAAE,EAEhCmyC,EAAM,CACd,CACA,EACAuhI,oBAAA,aAAuBG,yNC5DvB,OAAO,eAAeC,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAM1sB,EAAgEhzJ,cAAA,EAChEwE,EAAkCR,cAAA,EAClCowC,EAA8EnwC,cAAA,EAC9EqkD,EAAoEpkD,cAAA,EACpEgnC,EAAoB/mC,uBAA0B,EAC9Cm7K,EAA0Cl7K,oBAAA,EAIhD,IAAAu7K,EAAA,cAAyC3sB,EAAsB,gCAAiC,CAC5F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,SAAS,EACrB,KAAK,OAASA,EAAK,QAAU,OAAO,kBACpC,KAAK,mCAAqCA,EAAK,mCAC/C,KAAK,8BAAgCA,EAAK,6BAClD,CACI,MAAM,eAAgB,CAClB,SAAWguB,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CACnC,MAAM83L,EAAY,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAWx/J,EAAU,MAAO,QAAAt4B,EAAS,EAC7F8hB,KAAa0nD,EAAwB,iBAAiBsuH,CAAS,EAC/DrhM,EAAU,CAAE,OAAQ,KAAK,MAAQ,EACvC,GAAI,CAAE,eAAA0kH,CAAc,EAAKr5F,EAEzB,MAAM+9K,EAAmB,MAAM,KAAK,8BAA8B,QAAQ,CAAE,QAAA7/L,EAAS,EACrF,QAAStlB,EAAI49C,EAAU,YAAY,OAAS,EAAG59C,GAAK,EAAGA,IAAK,CACxD,IAAIqjD,EAAOzF,EAAU,YAAY59C,CAAC,EAClC,MAAMomN,EAAc,KAAK,YAAY/iK,CAAI,EACzCA,EAAO,KAAK,sBAAsBA,CAAI,EAEtC,MAAM6hJ,EAAY,MAAM,KAAK,mCACxB,QAAQ,CAAE,QAAS7hJ,EAAM,QAAA/9B,CAAO,CAAE,EACjC2/D,EAAY,MAAOn7B,EAAU36B,EAAM61D,IAAS,CAC9C,GAAI,CACA,MAAM3pE,EAAS,MAAM6pL,EAAU,SAASp7I,CAAQ,EAChDk7B,EAAK,CAAE,SAAAl7B,EAAU,OAAAzuC,EAAQ,CAC7C,OACuBkG,EAAO,IAIDq5D,EAA6B,mBAAmBr5D,CAAK,GAC1Dk/G,EAAe,KAAK,QAASl/G,CAAK,EAEtCyjE,EAAK,CAAE,SAAAl7B,EAAU,OAAQ,MAAS,CAAE,CACxD,CACgB36B,EAAM,CACT,EAEKk3L,EAAoB5lF,EAAe,UAAU,CAAE,UAAAx7C,CAAS,CAAE,EAUhEw7C,EARqB,IAAIqlF,EAAe,aAAaO,EAAmB,CAAC5qL,EAAMC,IAAU,CACrF,IAAIw2I,EAAUizC,EAAiB,WAAW1pL,EAAK,OAAQC,EAAM,MAAM,EACnE,OAAK0qL,IACDl0C,GAAW,IAERA,CACV,EAAEn2J,CAAO,EAEoB,IAAI,CAAC,CAAE,SAAA+tC,CAAQ,IAAOA,CAAQ,CACxE,CACQ,MAAO,CACH,KAAM,WACN,eAAA22E,EACA,SAAUr5F,EAAO,QACpB,CACT,CAEI,sBAAsBic,EAAM,CACxB,KAAM,CAAE,eAAAijK,EAAgB,SAAAz+J,CAAQ,EAAKxE,EACrC,OAAIijK,IAAmB50I,EAAkB,QAAQ,gBAAgB,SACtDruB,EAEJwE,IAAa,OAChBxE,EAAK,KAAK,CAAC,EACXA,CACZ,CACI,YAAYA,EAAM,CACd,KAAM,CAAE,eAAAijK,EAAgB,SAAAz+J,CAAQ,EAAKxE,EACrC,OAAIijK,IAAmB50I,EAAkB,QAAQ,gBAAgB,SACtD,GAEJ7pB,IAAa,MAC5B,CACA,EACAq+J,kCAAA,2BAAqCK,mICxFrC,IAAIr8K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,4VCf7D,OAAO,eAAei8K,0CAAS,aAAc,CAAE,MAAO,GAAM,EACXA,0CAAA,0CAAG,OACpD,MAAMj7H,EAAkF/kD,cAAA,EAClFsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCqkD,EAAoEpkD,cAAA,EACpE2jB,EAAc1jB,kBAAoB,EAClC+mC,EAAoB9mC,uBAA0B,EAIpD,IAAA67K,EAAA,cAAwDl7H,EAA+B,2BAA4B,CAC/G,YAAYvuE,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKsuB,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAChE,IAAIoM,EAAYzW,EAAO,UAEvB,MAAMoa,EAAO,KAET,KAAK,mBACL3D,EAAY8zB,EAAkB,KAAK,aAAa9zB,EAAW,CACvD,OAAO4Q,EAAI/F,EAAS,CAEhB,OAAI+F,EAAG,WAAW,iBAAmBkjB,EAAkB,QAAQ,gBAAgB,UAAYljB,EAAG,WAAW,WAAa,MAClHjN,EAAK,SAASpa,EAAO,QAAS,iCAAiCqnB,EAAG,WAAW,KAAK,MAAM,iBAAiB,EAClG,CACH,QAAS,GACT,OAAQA,EAAG,WAAW,KACjB,OAAO,CAAC5Q,EAAWwB,IAAeqJ,EAAQ,aAAa7K,EAAWwB,CAAU,EAAGoP,EAAG,KAAK,CAC/F,GAEE,CACH,QAAS,GACT,OAAQA,CACX,CACJ,CACJ,EAAE45B,CAAc,GAGrB,MAAMxxD,EAAU,KAAK,WAAWgnB,CAAS,EAEnC8oK,EAAe,IAAI,IAAI,MAAM,QAAQ,IAAI9vL,EAC1C,IAAI,MAAOja,GAAW,CAACA,EAAQ,MAAMA,EAAO,OAAO,iBAAiBwqB,EAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAG3F,IAAIw/K,EAAS,GACTp+L,EAAa,EACjB,KAAOo+L,GAAUp+L,EAAa,KAAK,eAC/Bo+L,EAAS,GACT/oK,EAAY8zB,EAAkB,KAAK,aAAa9zB,EAAW,CACvD,OAAO4Q,EAAI/F,EAAS,CAEhB,GAAI,CAAClH,EAAK,sBAAsBiN,EAAI53B,EAAS8vL,CAAY,EACrD,MAAO,CACH,QAAS,GACT,OAAQl4J,CACX,EAIL,MAAMnJ,EAAY9D,EAAK,uBAAuBiN,EAAG,UAAU,EACrD,CAACo4J,EAAYvrM,CAAM,EAAIkmC,EACxB,eAAeiN,EAAG,WAAYnJ,EAAWmJ,EAAG,MAAO/F,EAASthB,EAAO,OAAO,EAC/E,OAAIy/K,IACAD,EAAS,IAEN,CACH,QAAS,GACT,OAAAtrM,CACH,CACJ,CACjB,CAAa,EACDkN,IAEJ,OAAIA,EAAa,GACbg5B,EAAK,SAASpa,EAAO,QAAS,0BAA0B5e,CAAU,aAAa,EAG/E,KAAK,mBACLq1B,EAAY8zB,EAAkB,KAAK,aAAa9zB,EAAW,CACvD,OAAO4Q,EAAI/F,EAAS,CAChB,GAAI+F,EAAG,MAAM,OAASkjB,EAAkB,QAAQ,MAAM,OAAQ,CAC1D,KAAM,CAAE,kBAAAm1I,EAAmB,MAAAvlK,CAAK,EAAKC,EAAK,2BAA2BiN,CAAE,EACvE,OAAAjN,EAAK,SAASpa,EAAO,QAAS,SAAS0/K,EAAkB,MAAM,yCAAyC,EACjG,CACH,QAAS,GACT,OAAQp+J,EAAQ,aAAanH,EAAOulK,EAAkB,MAAM,CAAC,EAAE,OAAO,CAACC,EAAU9+L,IAAYygC,EAAQ,yBAAyB,KAAM,CAACq+J,EAAU9+L,CAAO,CAAC,EAAG6+L,EAAkB,CAAC,CAAC,CAAC,CAClL,CACzB,CACoB,MAAO,CACH,QAAS,GACT,OAAQr4J,CACX,CACJ,CACjB,CAAa,GAEE,CAAE,UAAA5Q,EAAW,QAASzW,EAAO,OAAS,CACrD,CAUI,sBAAsByW,EAAWhnB,EAAS8vL,EAAc,CAEpD,GAAI,KAAK,mBACL,MAAO,GAGX,MAAMtnK,EAAaxB,EAAU,WAU7B,MATI,GAAAwB,EAAW,iBAAmBsyB,EAAkB,QAAQ,gBAAgB,UACxEtyB,EAAW,WAAa,MACtBA,EAAW,KAAK,CAAC,EAAE,iBAAmB,QAAUA,EAAW,KAAK,CAAC,EAAE,KAAK,WAAa,YACnFA,EAAW,KAAK,CAAC,EAAE,iBAAmB,QAAUA,EAAW,KAAK,CAAC,EAAE,KAAK,WAAa,YACpFA,EAAW,KAAK,CAAC,EAAE,iBAAmB,QAAUA,EAAW,KAAK,CAAC,EAAE,KAAK,WAAa,YAClFA,EAAW,KAAK,CAAC,EAAE,iBAAmB,QAAUA,EAAW,KAAK,CAAC,EAAE,KAAK,WAAa,aAI7FxoB,EAAQ,KAAKja,MAAcmyE,EAAwB,0BAA0B43H,EAAa,IAAI/pM,CAAM,EAAGihC,CAAS,CAAC,EAK7H,CAKI,WAAWA,EAAW,CAClB,MAAMhnB,EAAU,IAAI,IACdmwL,EAAelJ,GAAiB,CAClC,MAAM9kG,KAAUjqB,EAAwB,oBAAoB+uH,CAAY,EACxE,OAAI9kG,GACAniF,EAAQ,IAAImiF,CAAG,EAEZ,EACV,EACD,OAAArnC,EAAkB,KAAK,iBAAiB9zB,EAAW,CAC/C,CAAC8zB,EAAkB,QAAQ,MAAM,OAAO,EAAGq1I,EAC3C,CAACr1I,EAAkB,QAAQ,MAAM,IAAI,EAAGq1I,EACxC,CAACr1I,EAAkB,QAAQ,MAAM,GAAG,EAAGq1I,EACvC,CAACr1I,EAAkB,QAAQ,MAAM,OAAO,EAAGq1I,CACvD,CAAS,EACM,CAAC,GAAGnwL,CAAO,CAC1B,CAMI,uBAAuBwoB,EAAY,CAC/B,OAAQA,EAAW,eAAc,CAC7B,KAAKsyB,EAAkB,QAAQ,gBAAgB,UAC/C,KAAKA,EAAkB,QAAQ,gBAAgB,SAC3C,MAAM,IAAI,MAAM,qDAAqDtyB,EAAW,cAAc,EAAE,EACpG,KAAKsyB,EAAkB,QAAQ,gBAAgB,UAC3C,OAAOA,EAAkB,KAAK,iBAAiBtyB,EAAW,KAAK,EACnE,KAAKsyB,EAAkB,QAAQ,gBAAgB,MAC3C,MAAO,CAAE,EACb,KAAKA,EAAkB,QAAQ,gBAAgB,SAC3C,SAAWrjB,EAAY,WAAWjP,EAAW,KAAK,QAAQ6D,GAAO,KAAK,uBAAuBA,CAAG,CAAC,CAAC,EACtG,KAAKyuB,EAAkB,QAAQ,gBAAgB,KAC3C,OAAItyB,EAAW,KAAK,WAAa,WACtB,CAACA,EAAW,IAAI,EAEpB,CAAE,CACzB,CACA,CACI,yBAAyBxB,EAAWmmK,EAAqB,CACrD,MAAMiD,EAAmB,CAAE,EACrBC,EAAuB,CAAE,EACzBC,EAAiB,CAAE,EACzB,UAAW5lK,KAAS1D,EAAU,MAAO,CACjC,MAAMupK,EAAiBz1I,EAAkB,KAAK,iBAAiBpwB,CAAK,EAChE,KAAK,kBAAkByiK,EAAqBoD,CAAc,EAC1DH,EAAiB,KAAK1lK,CAAK,EAEtB,KAAK,mBAAmByiK,EAAqBoD,CAAc,EAChEF,EAAqB,KAAK3lK,CAAK,EAG/B4lK,EAAe,KAAK5lK,CAAK,CAEzC,CACQ,MAAO,CACH,iBAAA0lK,EACA,qBAAAC,EACA,eAAAC,CACH,CACT,CAcI,eAAe9nK,EAAY2kK,EAAqBnmK,EAAW6K,EAASnjC,EAAS,CAEzE,GAAI,KAAK,kBAAkB85B,CAAU,EACjC,MAAO,CAAC,GAAMqJ,EAAQ,YAAY,CAAE,CAAA,CAAC,EAGzC,GAAIrJ,EAAW,OAASsyB,EAAkB,QAAQ,MAAM,YACpDtyB,EAAW,iBAAmBsyB,EAAkB,QAAQ,gBAAgB,UACxE,MAAO,CAAC,GAAOjpB,EAAQ,aAAa7K,EAAWwB,CAAU,CAAC,EAE9D,OAAQxB,EAAU,KAAI,CAClB,KAAK8zB,EAAkB,QAAQ,MAAM,OAEjC,OAAK,KAAK,mBAAmB,CAAC9zB,EAAU,QAAQ,EAAGmmK,CAAmB,EAG/D,CAAC,GAAOt7J,EAAQ,aAAa7K,EAAWwB,CAAU,CAAC,EAF/C,CAAC,GAAMqJ,EAAQ,aAAa,KAAK,eAAerJ,EAAY2kK,EAAqBnmK,EAAU,MAAO6K,EAASnjC,CAAO,EAAE,CAAC,EAAGs4B,EAAU,SAAUA,EAAU,UAAU,CAAC,EAGhL,KAAK8zB,EAAkB,QAAQ,MAAM,OAAQ,CAEzC,KAAM,CAACk1I,EAAYvrM,CAAM,EAAI,KACxB,eAAe+jC,EAAY2kK,EAAqBnmK,EAAU,MAAO6K,EAASnjC,CAAO,EACtF,MAAO,CAACshM,EAAYn+J,EAAQ,aAAaptC,EAAQuiC,EAAU,UAAU,CAAC,CACtF,CACY,KAAK8zB,EAAkB,QAAQ,MAAM,KAAM,CAEvC,GAAI9zB,EAAU,MAAM,SAAW,EAC3B,MAAO,CAAC,GAAO6K,EAAQ,aAAa7K,EAAWwB,CAAU,CAAC,EAG9D,KAAM,CAAE,iBAAA4nK,EAAkB,qBAAAC,EAAsB,eAAAC,CAAc,EAAM,KAAK,yBAAyBtpK,EAAWmmK,CAAmB,EAC1H7yJ,EAAQ,CAAE,EAChB,IAAI01J,EAAa,GACjB,OAAII,EAAiB,OAAS,IAC1BJ,EAAa,GACb11J,EAAM,KAAKzI,EAAQ,WAAWu+J,EACzB,IAAI1lK,GAAS,KAAK,eAAelC,EAAY2kK,EAAqBziK,EAAOmH,EAASnjC,CAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAEpG2hM,EAAqB,OAAS,GAC9B/1J,EAAM,KAAKzI,EAAQ,aAAaA,EAAQ,WAAWw+J,EAAsB,EAAK,EAAG7nK,CAAU,CAAC,EAE5F8nK,EAAe,OAAS,GACxBh2J,EAAM,KAAK,GAAGg2J,CAAc,EAE5Bh2J,EAAM,OAAS,IACf01J,EAAa,IAEbA,GACA,KAAK,SAASthM,EAAS,6CAA6C0hM,EAAiB,MAAM,uBAAuBC,EAAqB,MAAM,+BAA+BC,EAAe,MAAM,kBAAkB,EAEhN,CAACN,EAAY11J,EAAM,SAAW,EAAIA,EAAM,CAAC,EAAIzI,EAAQ,WAAWyI,CAAK,CAAC,CAC7F,CACY,KAAKwgB,EAAkB,QAAQ,MAAM,IACjC,MAAO,CAAC,GAAM9zB,CAAS,EAC3B,KAAK8zB,EAAkB,QAAQ,MAAM,QAEjC,OAAI,KAAK,mBAAmB9zB,EAAU,UAAWmmK,CAAmB,EACzD,CAAC,GAAMt7J,EAAQ,cAAc,KAAK,eAAerJ,EAAY2kK,EAAqBnmK,EAAU,MAAO6K,EAASnjC,CAAO,EAAE,CAAC,EAAGs4B,EAAU,SAAS,CAAC,EAGjJ,CAAC,GAAMA,CAAS,EAC3B,KAAK8zB,EAAkB,QAAQ,MAAM,MAAO,CAExC,KAAM,CAAE,iBAAAs1I,EAAkB,qBAAAC,EAAsB,eAAAC,CAAc,EAAM,KAAK,yBAAyBtpK,EAAWmmK,CAAmB,EAC1HqD,EAAS,CAAE,EACjB,IAAIR,EAAa,GACjB,OAAII,EAAiB,OAAS,IAC1BJ,EAAa,GACbQ,EAAO,KAAK3+J,EAAQ,YAAYu+J,EAC3B,IAAI1lK,GAAS,KAAK,eAAelC,EAAY2kK,EAAqBziK,EAAOmH,EAASnjC,CAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAEpG2hM,EAAqB,OAAS,GAC9BG,EAAO,KAAK3+J,EAAQ,aAAaA,EAAQ,YAAYw+J,EAAsB,EAAK,EAAG7nK,CAAU,CAAC,EAE9F8nK,EAAe,OAAS,GACxBE,EAAO,KAAK,GAAGF,CAAc,EAE7BE,EAAO,OAAS,IAChBR,EAAa,IAEbA,GACA,KAAK,SAASthM,EAAS,8CAA8C0hM,EAAiB,MAAM,uBAAuBC,EAAqB,MAAM,+BAA+BC,EAAe,MAAM,kBAAkB,EAEjN,CAACN,EAAYQ,EAAO,SAAW,EAAIA,EAAO,CAAC,EAAI3+J,EAAQ,YAAY2+J,CAAM,CAAC,CACjG,CACY,KAAK11I,EAAkB,QAAQ,MAAM,OAEjC,OAAI,KAAK,mBAAmB9zB,EAAU,UAAWmmK,CAAmB,EACzD,CAAC,GAAOt7J,EAAQ,aAAa7K,EAAWwB,CAAU,CAAC,EAEvD,CAAC,GAAMxB,CAAS,EAC3B,KAAK8zB,EAAkB,QAAQ,MAAM,UAAW,CAC5C,GAAI,KAAK,kBAAmB,CACxB,MAAM21I,EAAiB31I,EAAkB,KAAK,iBAAiB9zB,EAAU,MAAM,CAAC,CAAC,EACjF,GAAI,CAAC,KAAK,mBAAmBmmK,EAAqBsD,CAAc,EAE5D,YAAK,SAAS/hM,EAAS,iCAAiC,EACjD,CAAC,GAAMmjC,EAAQ,eAAe,KAAK,eAAerJ,EAAY2kK,EAAqBnmK,EAAU,MAAM,CAAC,EAAG6K,EAASnjC,CAAO,EAAE,CAAC,EAAGs4B,EAAU,MAAM,CAAC,EAAGA,EAAU,UAAU,CAAC,CAErM,CAEgB,MAAO,CAAC,GAAO6K,EAAQ,aAAa7K,EAAWwB,CAAU,CAAC,CAC1E,CACY,KAAKsyB,EAAkB,QAAQ,MAAM,QAAS,CAC1C,GAAI,KAAK,yBAA0B,CAE/B,MAAM41I,EAAiB,KAAK,yCAAyCloK,CAAU,EAC/E,GAAIkoK,EAAgB,CAChB,IAAIV,EAAa,GACjB,MAAMW,EAAmB3pK,EAAU,SAUnC,GATAA,KAAgByQ,EAAY,gBAAgBzQ,EAAY3iC,GAChDA,EAAM,OAAOqsM,EAAe,QAAQ,GACpCV,EAAa,GACNU,EAAe,MAEnBrsM,CACV,EACD2iC,EAAU,KAAO8zB,EAAkB,QAAQ,MAAM,QACjD9zB,EAAU,SAAW2pK,EACjBX,EACA,YAAK,SAASthM,EAAS,sCAAsCgiM,EAAe,SAAS,KAAK,EAAE,EACrF,CAAC,GAAM7+J,EAAQ,WAAW,CACzB7K,EACA6K,EAAQ,aAAa,CAAC6+J,EAAe,QAAQ,EAAG,CAAC,CAAE,CAAC,IAAIA,EAAe,SAAS,KAAK,EAAE,EAAGA,EAAe,IAAI,CAAE,CAAC,CACpJ,CAAiC,CAAC,CAElC,CACA,CAEgB,MAAO,CAAC,GAAO7+J,EAAQ,aAAa7K,EAAWwB,CAAU,CAAC,CAC1E,CACY,KAAKsyB,EAAkB,QAAQ,MAAM,KAAM,CACvC,GAAI,KAAK,yBAA0B,CAE/B,MAAM41I,EAAiB,KAAK,yCAAyCloK,CAAU,EAC/E,GAAIkoK,IACC1pK,EAAU,QAAQ,OAAO0pK,EAAe,QAAQ,GAAK1pK,EAAU,OAAO,OAAO0pK,EAAe,QAAQ,GAAI,CACzG,KAAK,SAAShiM,EAAS,mCAAmCgiM,EAAe,SAAS,KAAK,EAAE,EACzF,MAAMC,EAAmB3pK,EAAU,SACnC,OAAAA,EAAY6K,EAAQ,WAAW7K,EAAU,QAAQ,OAAO0pK,EAAe,QAAQ,EAAIA,EAAe,KAAO1pK,EAAU,QAASA,EAAU,UAAWA,EAAU,OAAO,OAAO0pK,EAAe,QAAQ,EAAIA,EAAe,KAAO1pK,EAAU,MAAM,EAC1OA,EAAU,SAAW2pK,EACd,CAAC,GAAM9+J,EAAQ,WAAW,CACzB7K,EACA6K,EAAQ,aAAa,CAAC6+J,EAAe,QAAQ,EAAG,CAAC,CAAE,CAAC,IAAIA,EAAe,SAAS,KAAK,EAAE,EAAGA,EAAe,IAAI,CAAE,CAAC,CAChJ,CAA6B,CAAC,CAC9B,CACA,CAEgB,MAAO,CAAC,GAAO7+J,EAAQ,aAAa7K,EAAWwB,CAAU,CAAC,CAC1E,CACY,KAAKsyB,EAAkB,QAAQ,MAAM,MACrC,KAAKA,EAAkB,QAAQ,MAAM,IACrC,KAAKA,EAAkB,QAAQ,MAAM,IACrC,KAAKA,EAAkB,QAAQ,MAAM,IACrC,KAAKA,EAAkB,QAAQ,MAAM,UACrC,KAAKA,EAAkB,QAAQ,MAAM,SACrC,KAAKA,EAAkB,QAAQ,MAAM,SACrC,KAAKA,EAAkB,QAAQ,MAAM,WACrC,KAAKA,EAAkB,QAAQ,MAAM,KACrC,KAAKA,EAAkB,QAAQ,MAAM,MACrC,KAAKA,EAAkB,QAAQ,MAAM,MACrC,KAAKA,EAAkB,QAAQ,MAAM,IACrC,KAAKA,EAAkB,QAAQ,MAAM,KACrC,KAAKA,EAAkB,QAAQ,MAAM,IACrC,KAAKA,EAAkB,QAAQ,MAAM,iBACrC,KAAKA,EAAkB,QAAQ,MAAM,SACrC,KAAKA,EAAkB,QAAQ,MAAM,QACrC,KAAKA,EAAkB,QAAQ,MAAM,IACrC,KAAKA,EAAkB,QAAQ,MAAM,QACrC,KAAKA,EAAkB,QAAQ,MAAM,MACrC,KAAKA,EAAkB,QAAQ,MAAM,kBACrC,KAAKA,EAAkB,QAAQ,MAAM,iBACrC,KAAKA,EAAkB,QAAQ,MAAM,iBACrC,KAAKA,EAAkB,QAAQ,MAAM,cACrC,KAAKA,EAAkB,QAAQ,MAAM,KACrC,KAAKA,EAAkB,QAAQ,MAAM,MACrC,KAAKA,EAAkB,QAAQ,MAAM,OACrC,KAAKA,EAAkB,QAAQ,MAAM,KACrC,KAAKA,EAAkB,QAAQ,MAAM,IACrC,KAAKA,EAAkB,QAAQ,MAAM,KACrC,KAAKA,EAAkB,QAAQ,MAAM,KAGjC,MAAO,CAAC,GAAOjpB,EAAQ,aAAa7K,EAAWwB,CAAU,CAAC,CAC1E,CACA,CAOI,yCAAyCA,EAAY,CACjD,GAAIA,EAAW,iBAAmBsyB,EAAkB,QAAQ,gBAAgB,UAAYtyB,EAAW,WAAa,IAAK,CACjH,GAAIA,EAAW,KAAK,CAAC,EAAE,iBAAmB,QAAUA,EAAW,KAAK,CAAC,EAAE,KAAK,WAAa,aACpFA,EAAW,KAAK,CAAC,EAAE,KAAK,WAAa,WAClC,KAAK,kCAAkCA,EAAW,KAAK,CAAC,EAAE,IAAI,IAClEA,EAAW,KAAK,CAAC,EAAE,iBAAmB,QAAUA,EAAW,KAAK,CAAC,EAAE,KAAK,WAAa,WACrF,MAAO,CACH,SAAUA,EAAW,KAAK,CAAC,EAAE,KAC7B,KAAMA,EAAW,KAAK,CAAC,EAAE,IAC5B,EAEL,GAAIA,EAAW,KAAK,CAAC,EAAE,iBAAmB,QAAUA,EAAW,KAAK,CAAC,EAAE,KAAK,WAAa,YACrFA,EAAW,KAAK,CAAC,EAAE,iBAAmB,QAAUA,EAAW,KAAK,CAAC,EAAE,KAAK,WAAa,aACpFA,EAAW,KAAK,CAAC,EAAE,KAAK,WAAa,WAClC,KAAK,kCAAkCA,EAAW,KAAK,CAAC,EAAE,IAAI,GAClE,MAAO,CACH,SAAUA,EAAW,KAAK,CAAC,EAAE,KAC7B,KAAMA,EAAW,KAAK,CAAC,EAAE,IAC5B,CAEjB,CACA,CASI,kCAAkCj8B,EAAM,CACpC,GAAIA,EAAK,WAAa,UAClB,OAAQA,EAAK,SAAS,MAAK,CACvB,IAAK,0CACL,IAAK,wDACL,IAAK,oDACL,IAAK,0CACL,IAAK,gDACL,IAAK,4CACL,IAAK,wCACL,IAAK,0CACL,IAAK,2CACL,IAAK,yCACL,IAAK,6CACD,MAAO,EAC3B,CAEQ,MAAO,EACf,CAMI,mBAAmBqkM,EAAOC,EAAO,CAC7B,OAAOD,EAAM,KAAKE,GAAQD,EAAM,KAAKE,GAAQD,EAAK,OAAOC,CAAI,CAAC,CAAC,CACvE,CAOI,kBAAkBC,EAAaC,EAAc,CACzC,OAAOD,EAAY,QAAUC,EAAa,QACtCD,EAAY,MAAMF,GAAQG,EAAa,KAAKF,GAAQD,EAAK,OAAOC,CAAI,CAAC,CAAC,CAClF,CAKI,kBAAkBvoK,EAAY,CAC1B,OAAQA,EAAW,MAAQA,EAAW,KAAK,WAAa,WAAaA,EAAW,KAAK,QAAU,OACvG,CAMI,2BAA2BoP,EAAI,CAC3B,GAAIA,EAAG,MAAM,OAASkjB,EAAkB,QAAQ,MAAM,OAAQ,CAC1D,MAAMo2I,EAAY,KAAK,2BAA2Bt5J,EAAG,KAAK,EAC1D,MAAO,CAAE,kBAAmB,CAACA,EAAG,WAAY,GAAGs5J,EAAU,iBAAiB,EAAG,MAAOA,EAAU,KAAO,CACjH,CACQ,MAAO,CAAE,kBAAmB,CAACt5J,EAAG,UAAU,EAAG,MAAOA,EAAG,KAAO,CACtE,CACA,EACAg4J,iDAAA,0CAAoDuB,kJC5epD,IAAI79K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iDAAsD,EAAE+D,CAAO,qRCf5E,OAAO,eAAey9K,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,yBAAA,yBAAmCA,yBAAA,yBAAmC,OACtE,MAAMtlF,EAAwDl8F,cAAA,EACxDiyJ,EAA0CjuJ,cAAA,EAC1CQ,EAAkCP,cAAA,EAClCuuH,EAAqBtuH,cAAkC,EACvDs/D,EAA6Br/D,6BAAmC,EAChEs9K,EAAkB,WACxB,SAASC,EAAyB93G,EAAY+3G,EAAW,CACrD,MAAMC,EAAW,YACXlhK,EAAQ,CAAE,EACVmhK,EAAmB,OAAO,QAAQj4G,CAAU,EAC7C,IAAI,CAAC,CAAC9iE,EAAWg7K,CAAQ,KAAO,CAAE,UAAAh7K,EAAW,SAAAg7K,GAAW,EACxD,KAAK,CAAC7sL,EAAMC,IAAUA,EAAM,WAAaD,EAAK,SAC/CA,EAAK,UAAU,cAAcC,EAAM,SAAS,EAC5CA,EAAM,SAAWD,EAAK,QAAQ,EAElC,IAAI8sL,EAAcF,EAAiB,OAAS,EAC5C,SAAW,CAAE,UAAA/6K,EAAW,SAAAg7K,CAAQ,IAAMD,EAAkB,CACpD,MAAMG,EAAOl7K,GAAag7K,IAAa,EAAI,GAAK,MAAMA,EAAS,QAAQ,CAAC,EAAE,QAAQ,OAAQ,EAAE,CAAC,IAC7F,GAAIC,EAAcC,EAAK,OAASL,EAAW,CACvC,KAAOI,EAAcH,EAAS,OAASD,GAAW,CAC9C,MAAM5lL,EAAO2kB,EAAM,IAAG,GAAM,GAE5BqhK,GAAehmL,EAAK,OAAS,CAC7C,CACY2kB,EAAM,KAAKkhK,CAAQ,EACnB,KACZ,CACQlhK,EAAM,KAAKshK,CAAI,EACfD,GAAeC,EAAK,MAC5B,CACI,OAAOthK,EAAM,SAAW,EAAI,MAAQA,EAAM,KAAK,GAAG,CACtD,CACA8gK,yBAAA,yBAAmCE,EAMnC,IAAAO,EAAA,cAAuC/lF,EAAkB,gBAAiB,CACtE,YAAY1lH,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAK,CAAE,IAAAwwB,GAAO,CAChB,MAAK,YAAY,KAAKA,CAAG,KAGdxC,EAAO,cAAe,KAFlBA,EAAO,UAAU,mBAAmBwC,CAAG,oCAAoC,CAGlG,CACI,MAAM,IAAIrG,EAAQ,CACd,IAAI9O,EAAS,GAEb,MAAM0pG,EAAU,IAAI,QAAQ56F,EAAO,OAAO,EAE1C46F,EAAQ,OAAO,SAAUmmF,EAAyB,MAAM/gL,EAAO,aAAU,GAAQ,CAAE,EAAE,KAAK,yBAA0B,CAAA,CAAC,EACrH,IAAIixJ,EACJ,MAAMswB,EAAmB,KAAK,IAAK,EACnC,GAAI,CACAtwB,EAAe,MAAM,KAAK,aAAa,QAAQ,CAC3C,QAASjxJ,EAAO,QAChB,KAAM,CAAE,QAAA46F,EAAS,OAAQ56F,EAAO,MAAQ,EACxC,MAAOA,EAAO,GAC9B,CAAa,CACb,OACe5lB,EAAO,CACV,OAAO,KAAK,wBAAwB4lB,EAAQ5lB,CAAK,CAC7D,CAEQ,MAAMisB,KAAUw8D,EAA2B,SAASouF,EAAa,IAAKjxJ,EAAO,GAAG,EAC1E66F,EAAc,KAAK,IAAG,EAAK0mF,EAEjC,GAAItwB,EAAa,SAAW,IAAK,CAC7B//J,EAAS,GAET,MAAMggK,EAAaD,EAAa,KAC5B,QAAUp/B,EAAmB,WAAWy/B,EAAW,UAAU,eAAeL,EAAa,IAAI,CAAC,EAC9F,iBACJ,GAAI,CAACjxJ,EAAO,aAAc,CACtB,MAAM5lB,EAAQ,IAAI,MAAM,sBAAsB4lB,EAAO,GAAG,iBAAiBixJ,EAAa,MAAM;AAAA,EAAOC,CAAU,EAAE,EAC/G,OAAO,KAAK,wBAAwBlxJ,EAAQ5lB,EAAO62K,EAAa,QAASp2D,CAAW,CACpG,CACA,CACQ,MAAM10F,EAAY26K,EAAgB,KAAK7vB,EAAa,QAAQ,IAAI,cAAc,GAAK,EAAE,IAAI,CAAC,EAE1F,MAAO,CACH,IAAA5qJ,EACA,KAAMnV,EAASogK,EAAW,UAAU,eAAeL,EAAa,IAAI,KAAQ11D,EAAkB,eAAgB,EAC9G,OAAArqG,EACA,YAAA2pG,EACA,QAASo2D,EAAa,QACtB,UAAW9qJ,IAAc,aAAe,OAAYA,CACvD,CACT,CACA,EACA06K,gCAAA,yBAAmCW,0OC/FnC,OAAO,eAAe,4BAAS,aAAc,CAAE,MAAO,GAAM,EAChC,4BAAA,qBAAG,OAC/B,MAAMX,EAAkExhL,gCAAA,EAIxE,MAAMoiL,UAA6BZ,EAA2B,wBAAyB,CACnF,0BAA2B,CACvB,OAAO,KAAK,4BACpB,CACA,CACA,mCAAA,qBAA+BY,oICX/B,IAAI1+K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAiC,EAAE+D,CAAO,EACvDD,EAAaE,gCAAqC,EAAED,CAAO,0LChB3D,OAAO,eAAes+K,eAAS,aAAc,CAAE,MAAO,GAAM,EACtCA,eAAA,eAAG,OACzB,MAAMpwB,EAA0CjyJ,cAAA,EAC1CsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAIxC,IAAAq+K,EAAA,cAA6BrwB,EAAW,SAAU,CAC9C,YAAYz7K,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,MAAM4hL,EAAe5hL,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,gBAAgB,EACxF,OAAKi8K,EAGA,MAAMA,EAAa,SAAS5hL,CAAM,KAG5B6D,EAAO,UAAU,CAAE,KAAM,OAAO,kBAAmB,KAF/CA,EAAO,UAAU,SAAS,KAAK,IAAI,qDAAqD,KAHxFA,EAAO,UAAU,SAAS,KAAK,IAAI,iDAAiD,CAM3G,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAM6hL,EAAe,OAAO7hL,EAAO,OAAU,SAAWA,EAAO,MAAQA,EAAO,MAAM,IAC9E4hL,EAAe5hL,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,gBAAgB,EAElF1F,EAAS,MAAM,KAAK,aAAa,QAAQ,CAC3C,GAAG,MAAM2hL,EAAa,SAAS5hL,CAAM,EACrC,QAASA,EAAO,QAAQ,OAAO2F,EAAkB,cAAc,gBAAgB,CAC3F,CAAS,EAGD,cAAO,eAAe1F,EAAQ,MAAO,CACjC,aAAc,GACd,WAAY,GACZ,IAAK,IAAMA,EAAO,QAAQ,IAAI,aAAa,GAAK4hL,CAC5D,CAAS,EACM5hL,CACf,CACA,EACAyhL,sBAAA,eAAyBI,yMCxCzB,OAAO,eAAeC,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAI7B,IAAAC,EAAA,KAAyB,CACrB,YAAYC,EAAW,CACnB,KAAK,UAAYA,CACzB,CACI,MAAM,SAAS7lD,EAAS,CACpB,MAAO,CACH,KAAMA,EAAQ,KACd,MAAO,KAAK,YAAYA,EAAQ,KAAK,CACxC,CACT,CACI,YAAYjiH,EAAO,CACf,OAAI,OAAOA,GAAU,SACV,KAAK,UAAYA,EAErB,IAAI,QAAQ,KAAK,UAAYA,EAAM,IAAKA,CAAK,CAC5D,CACA,EACA4nK,0BAAA,mBAA6BG,2HCtB7B,IAAIn/K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sBAA2B,EAAE+D,CAAO,EACjDD,EAAaE,0BAA+B,EAAED,CAAO,4VChBrD,OAAO,eAAe++K,0CAAS,aAAc,CAAE,MAAO,GAAM,EACXA,0CAAA,0CAAG,OACpD,MAAM9rI,EAAsEh3C,cAAA,EACtEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC4vC,EAAkC3vC,kBAAA,EAIxC,IAAA6+K,EAAA,cAAwD/rI,EAAyB,sBAAuB,CACpG,YAAYxgE,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,MAAQ,KAAK,UAAY,IAAIq9D,EAAY,SAAS,CAAE,IAAK,KAAK,SAAS,CAAE,EAAI,OAClF,MAAMzqD,EAAQ,KAAK,MACfA,GACA,KAAK,gBAAgB,sBAAsB,CAAC,CAAE,IAAA4d,CAAG,IAAOA,EAAM5d,EAAM,OAAO4d,CAAG,EAAI5d,EAAM,MAAK,CAAE,CAE3G,CACI,MAAM,KAAK0b,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,IAAI7hB,EAAU6hB,EAAO,QAErB,GAAI7hB,EAAQ,IAAIwnB,EAAkB,cAAc,wBAAwB,EAAG,CACvE,MAAM08K,EAA2BriL,EAAO,QACnC,IAAI2F,EAAkB,cAAc,wBAAwB,EAC3D28K,EAAmC,MAAM,QAAQ,IAAID,EACtD,IAAIhG,GAAe,KAAK,aAAaA,CAAW,CAAC,CAAC,EACjDkG,EAAe,MAAM,QAAQ,IAAID,EAClC,IAAI,MAAOE,GAA4B,KAAK,eAAeA,EAAyBxiL,EAAO,OAAO,CAAC,CAAC,EAEnGyiL,EAA4BziL,EAAO,QACpC,IAAI2F,EAAkB,eAAe,iBAAiB,EAC3D,GAAI88K,EACA,UAAWpG,KAAekG,EACtBE,EAA0B,gBAAgB,CACtC,IAAKpG,EAAY,OAAO,eACxB,SAAU,CACN,KAAM,EACT,CACzB,EAAuBA,EAAY,MAAM,EAG7Bl+L,EAAU6hB,EAAO,QACZ,OAAO2F,EAAkB,cAAc,wBAAwB,EAC/D,IAAIA,EAAkB,mBAAmB,aAAc48K,CAAY,CACpF,CACQ,MAAO,CAAE,QAAApkM,CAAS,CAC1B,CACI,MAAM,aAAak+L,EAAa,CAC5B,OAAI,OAAOA,GAAgB,UAAY,UAAWA,EACvC,CAAE,MAAOA,CAAa,EAE1B,CACH,GAAGA,EACH,SAAU,MAAM,KAAK,0BAA0B,QAAQ,CACnD,QAASx4K,EAAO,cAAc,oBAAoBw4K,EAAY,SAAW,EAAE,CAC9E,CAAA,GAAG,OACP,CACT,CACI,eAAemG,EAAyBrkM,EAAS,CAC7C,IAAIukM,EAGJ,OAAI,OAAOF,EAAwB,OAAU,UAAY,KAAK,QAC1DE,EAAgB,KAAK,MAAM,IAAIF,EAAwB,KAAK,GAG3DE,IACDA,EAAgB,KAAK,4BAA4B,QAAQ,CAAE,wBAAAF,EAAyB,QAAArkM,CAAS,CAAA,EACxF,KAAK,CAAC,CAAE,YAAAk+L,CAAa,IAAKA,CAAW,EAEtC,OAAOmG,EAAwB,OAAU,UAAY,KAAK,OAC1D,KAAK,MAAM,IAAIA,EAAwB,MAAOE,CAAa,GAG5DA,CACf,CACA,EACAP,iDAAA,0CAAoDQ,kJChFpD,IAAI5/K,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iDAAsD,EAAE+D,CAAO,oRCf5E,OAAO,eAAew/K,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAM5/C,EAAkE3jI,cAAA,EAClEwE,EAAkCR,cAAA,EAClC6vC,EAAkC5vC,kBAAA,EAIxC,IAAAu/K,EAAA,cAA4C7/C,EAAuB,8BAA+B,CAC9F,YAAYntJ,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,MAAQ,KAAK,UAAY,IAAIq9D,EAAY,SAAS,CAAE,IAAK,KAAK,SAAS,CAAE,EAAI,OAClF,MAAMzqD,EAAQ,KAAK,MACfA,GACA,KAAK,gBAAgB,sBAAsB,CAAC,CAAE,IAAA4d,CAAG,IAAOA,EAAM5d,EAAM,OAAO4d,CAAG,EAAI5d,EAAM,MAAK,CAAE,CAE3G,CACI,MAAM,KAAKuX,EAAQ,CAEf,SADgBgjI,EAAuB,6BAA8BA,EAAuB,uBAAuBhjI,EAAO,OAAO,CAAC,KAIvH6D,EAAO,cAAe,KAFlBA,EAAO,UAAU,SAAS,KAAK,IAAI,0DAA0D,CAGpH,CACI,eAAe1lB,EAAS,CACpB,MAAMyjJ,KAAsBoB,EAAuB,uBAAuB7kJ,CAAO,EACjF,IAAIkoB,KAAU28H,EAAuB,0BAA0BpB,CAAe,EAE9E,GAAI,KAAK,OAAS,KAAK,MAAM,IAAIv7H,CAAG,EAChC,OAAO,KAAK,MAAM,IAAIA,CAAG,EAG7B,MAAM05B,GAAO,SAAY,CACrB,IAAI8U,EACA3jD,EACJ,GAAI,CAEA,MAAM4xL,EAAuB,MAAM,KAAK,uBACnC,QAAQ,CAAE,QAAA3kM,EAAS,IAAAkoB,EAAK,aAAc,EAAI,CAAE,EACjDnV,EAAS4xL,EAAqB,OAC9Bz8K,EAAMy8K,EAAqB,IAE3B,MAAMC,EAAmB,MAAM,KAAK,iBAAiB,QAAQ,CAAE,QAAA5kM,EAAS,IAAAkoB,EAAK,MAAOy8K,EAAqB,KAAM,QAASA,EAAqB,UAAU,QAAS,EAChKjuI,GAAY,MAAM,KAAK,wBAAwB,QAAQ,CACnD,QAAA12D,EACA,IAAAkoB,EACA,SAAU08K,EAAiB,SAC3B,QAASD,EAAqB,QAC9B,YAAaA,EAAqB,WACrC,CAAA,GAAG,QACpB,MACkB,CACFjuI,EAAW,CAAE,EACb3jD,EAAS,EACzB,CAEY,KAAM,CAAE,YAAAgyB,CAAa,EAAG,MAAM,KAAK,4BAA4B,QAAQ,CACnE,QAAA/kC,EACA,IAAAkoB,EACA,SAAAwuC,EACA,OAAA3jD,EACA,wBAA0B8xI,EAAuB,wBAAwBpB,CAAe,CACxG,CAAa,EACD,OAAO1+G,CACnB,GAAY,EACJ,OAAI,KAAK,OACL,KAAK,MAAM,IAAI7c,EAAK05B,CAAG,EAEpBA,CACf,CACA,EACA6iJ,qCAAA,8BAAwCI,sICvExC,IAAIjgL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,8NCfhE,OAAO,eAAe6/K,qBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,qBAAA,mBAAG,OAC7B,MAAMp/K,EAAkCxE,cAAA,EAIxC,MAAM6jL,UAA2Br/K,EAAO,cAAe,CAKnD,YAAYhuB,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,SAAW,EAChB,KAAK,IAAI,kBAAkB,IAAI,EAC/B,KAAK,gBAAgB,sBAAsB,IAAM,CAC7C,KAAK,SAAW,CAC5B,CAAS,CACT,CAEI,MAAMiqB,EAAOqE,EAASg/K,EAAS,CACvB,KAAK,eAAe,SAASrjL,EAAM,IAAI,GACvC,KAAK,UAEjB,CACA,CACAmjL,4BAAA,mBAA6BC,qTC1B7B,OAAO,eAAeE,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAMjzF,EAA8E9wF,cAAA,EAC9EwE,EAAkCR,cAAA,EAClC89C,EAA0C79C,qBAAA,EAC1C+sF,EAAoB9sF,eAA0B,EAIpD,IAAA8/K,EAAA,MAAMC,WAA4CnzF,EAA6B,wCAAyC,CAapH,YAAYt6G,EAAM,CACd,MAAMA,CAAI,CAClB,CAOI,OAAO,sBAAsB/B,EAAO,CAChC,GAAIA,EAAM,WAAa,UAAW,CAC9B,MAAM6+G,EAAU7+G,EACVyvM,EAAY,CAAE,MAAO5wF,EAAQ,MAAO,KAAM,SAAW,EACrD,CAAE,SAAAv3G,EAAU,SAAAwlC,CAAQ,EAAK+xE,EAC/B,OAAIv3G,EACAmoM,EAAU,UAAU,EAAInoM,EAEnBwlC,GAAYA,EAAS,QAAU,4CACpC2iK,EAAU,SAAW3iK,EAAS,OAE3B2iK,CACnB,CACQ,OAAIzvM,EAAM,WAAa,YACZ,CAAE,MAAOA,EAAM,MAAO,KAAM,OAAS,EAE5CA,EAAM,WAAa,OACZ,CACH,MAAO,CACH,QAASwvM,GAAoC,sBAAsBxvM,EAAM,OAAO,EAChF,UAAWwvM,GAAoC,sBAAsBxvM,EAAM,SAAS,EACpF,OAAQwvM,GAAoC,sBAAsBxvM,EAAM,MAAM,CACjF,EACD,KAAM,QACT,EAEE,CAAE,MAAOA,EAAM,MAAO,KAAM,KAAO,CAClD,CACI,MAAM,kBAAkBksB,EAAQwpE,EAAU,CACtC,MAAK,CAAC,WAAY,SAAS,EAAE,SAASxpE,EAAO,IAAI,KAGtC6D,EAAO,cAAe,KAFlBA,EAAO,UAAU,0DAA0D,CAGlG,CACI,MAAM,UAAU7D,EAAQuwF,EAAY/mB,EAAU,CAC1C,MAAMvqF,EAAO,IAAIoxG,EAAkB,SAE7Bh6F,EAAO,CAAE,EACf,GAAI2J,EAAO,OAAS,WAAY,CAC5B,MAAM60C,EAAW,MAAM70C,EAAO,SAAU,EACpC60C,EAAS,UAAU,OAAS,IAC5Bx+C,EAAK,KAAOw+C,EAAS,UAAU,IAAIruC,GAAYA,EAAS,SAAS,KAAK,EAEtF,CAEQ,GADAvnB,EAAK,KAAK,YAAY,KAAK,UAAUoX,CAAI,CAAC;AAAA,CAAK,EAC3C2J,EAAO,OAAS,WAAY,CAC5B,MAAMwyF,EAAexyF,EAAO,eAC5B/gB,EAAK,KAAK;AAAA,CAA8B,EACxC,IAAIyb,EAAQ,GACZ,SAAU9iB,EAAI2I,EAAI,CACd,MAAMA,EAAI,CAC1B,CAEYtB,EAAK,QAEDkiE,EAAgB,MAAMqxC,CAAY,EAAE,IAAK7vE,GAAa,CACtD,MAAMiG,EAAM,GAAGluB,EAAQ,GAAK;AAAA,CAAK,GAAG,KAAK,UAAU,OAAO,YAAY,CAAC,GAAGioB,CAAQ,EAC7E,IAAI,CAAC,CAACxuC,EAAKL,CAAK,IAAM,CAACK,EAAI,MAAOmvM,GAAoC,sBAAsBxvM,CAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAC3G,OAAA4mB,EAAQ,GACDkuB,CACvB,CAAa,EAAE,UAAWu4B,EAAgB,MAAMvpE,EAAI,IAAM;AAAA,IAAO,KAAK,aAAe;AAAA,gCAAoC,KAAK,aAAa,QAAQ,KAAO,EAAE;AAAA,CAAK,CAAC,CAAC,CAAC,CACpK,MAEYqH,EAAK,QAASkiE,EAAgB,MAAMnhD,EAAO,QAAS,EAAC,KAAKlsB,GAAS,CAAC,aAAaA,CAAK;AAAA;AAAA,CAAO,CAAC,CAAC,CAAC,EAEpG,MAAO,CAAE,KAAAmL,CAAM,CACvB,CACA,EACAmkM,2CAAA,oCAA8CE,4ICnG9C,IAAIvgL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,4BAA+B,EAAE+D,CAAO,EACrDD,EAAaE,2CAAgD,EAAED,CAAO,kNChBtE,OAAO,eAAe6/K,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMp/K,EAAkCxE,cAAA,EAIxC,IAAAmkL,EAAA,cAAiC3/K,EAAO,cAAe,CAKnD,YAAYhuB,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,SAAW,EAChB,KAAK,IAAI,kBAAkB,IAAI,EAC/B,KAAK,gBAAgB,sBAAsB,IAAM,CAC7C,KAAK,SAAW,CAC5B,CAAS,CACT,CAEI,MAAMiqB,EAAOqE,EAASg/K,EAAS,CACvB,KAAK,eAAe,SAASrjL,EAAM,IAAI,GACvC,KAAK,UAEjB,CACA,EACAmjL,0BAAA,mBAA6BC,qRC1B7B,OAAO,eAAeO,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAMtzF,EAA8E9wF,cAAA,EAC9EsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC69C,EAA0C59C,qBAAA,EAC1C8sF,EAAoB7sF,eAA0B,EAIpD,IAAAkgL,EAAA,cAA6CvzF,EAA6B,wCAAyC,CAQ/G,YAAYt6G,EAAM,CACd,MAAMA,CAAI,CAClB,CAEI,MAAM,kBAAkBmqB,EAAQwpE,EAAU,CACtC,MAAK,CAAC,WAAY,OAAO,EAAE,SAASxpE,EAAO,IAAI,KAGpC6D,EAAO,cAAe,KAFlBA,EAAO,UAAU,8DAA8D,CAGtG,CACI,WAAW5kB,EAAM,CACb,MAAMszG,EAAS,CAAC,SAAU,aAAc,eAChD,EAAU,KAAK,GAAG,EACVtzG,EAAK,KAAK,GAAGszG,CAAM;AAAA,CAAI,CAC/B,CACI,WAAWgjE,EAAWrhL,EAAQ,CAG1B,MAAO,GAFK,CAACA,EAAQ,KAAK,MAAMqhL,CAAS,EAAG,KAAK,aAAa,QACtE,EAAU,KAAK,GAAG,CACG;AAAA,CACrB,CACI,kBAAkBttI,EAAOstI,EAAW,CAGhC,MAAO,GAFM,CAACttI,EAAO,KAAK,MAAMstI,CAAS,EAAG,KAAK,aAAa,QACtE,EAAU,KAAK,GAAG,CACI;AAAA,CACtB,CACI,MAAM,UAAUv1J,EAAQuwF,EAAY/mB,EAAU,CAC1C,MAAMvqF,EAAO,IAAIoxG,EAAkB,SAC7BmC,EAAexyF,EAAO,OAAS,WACjCA,EAAO,eACPA,EAAO,WACLu1J,EAAYv1J,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,4BAA4B,EACrG,IAAIzxB,EAAS,EACb,SAAU0D,EAAI2I,EAAI,CACd,MAAMA,EAAI,CACtB,CACQ,MAAMo5F,KAAax4B,EAAgB,MAAMqxC,CAAY,EAChD,IAAI,IAAM,KAAK,WAAW+iE,EAAWrhL,GAAQ,CAAC,EAC9C,QAAQ,CAAC,KAAK,kBAAkB,WAAYqhL,CAAS,CAAC,CAAC,EACvD,UAAWp0G,EAAgB,MAAMvpE,EAAI,IAAM,KAAK,kBAAkB,QAAS29K,CAAS,CAAC,CAAC,CAAC,EAC5F,YAAK,WAAWt2K,CAAI,EACpBA,EAAK,KAAK06F,CAAM,EACT,CAAE,KAAA16F,CAAM,CACvB,CACI,KAAM,CACF,OAAO,YAAY,IAAK,CAChC,CACI,MAAMs2K,EAAW,CACb,OAAO,KAAK,IAAG,EAAKA,CAC5B,CACA,EACAkuB,sCAAA,+BAAyCE,uICpEzC,IAAI5gL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0BAA+B,EAAE+D,CAAO,EACrDD,EAAaE,sCAA2C,EAAED,CAAO,gXChBjE,OAAO,eAAewgL,qCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,qCAAA,mCAAG,OAC7C,MAAM//K,EAAkCxE,cAAA,EAYxC,MAAMwkL,UAA2ChgL,EAAO,KAAM,CAS1D,YAAYhuB,EAAMiuM,EAAY,CAC1B,MAAMjuM,CAAI,EACV,KAAK,WAAaiuM,CAC1B,CACI,MAAM,KAAK9jL,EAAQ,CACf,OAAIA,EAAO,iBAAmB,KAAK,aAAeA,EAAO,mBAC1C6D,EAAO,UAAU,SAAS,KAAK,IAAI,sCAAsC7D,EAAO,eAAe,GAAG,EAE1G,KAAK,aAAaA,CAAM,CACvC,CACA,CACA4jL,4CAAA,mCAA6CC,6IClC7C,IAAI9gL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,4CAA+C,EAAE+D,CAAO,wQCfrE,OAAO,eAAe2gL,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMlgL,EAAkCxE,cAAA,EAYxC,IAAA2kL,EAAA,cAAuCngL,EAAO,KAAM,CAQhD,YAAYhuB,EAAM,CACd,MAAMA,CAAI,CAClB,CACA,EACAkuM,gCAAA,yBAAmCE,qIC1BnC,OAAO,eAAe,MAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,MAAA,0BAAoC,MAAiC,0BAAG,MAAuC,gCAAG,kBAAsB,MAAA,yBAAmC,MAAA,aAAuB,MAAsB,eAAG,MAAuB,gBAAG,OACrP,MAAMxuB,EAAsDp2J,cAAA,EACtDg2C,EAAsDhyC,cAAA,EACtD2e,EAAe1e,mBAAqB,EACpC4jB,EAAc3jB,kBAAoB,EAClC2gL,EAAiB1gL,sBAAqC,EAY5D,SAAS2gL,EAAgBz7J,EAAOrK,EAAShU,EAAa48C,EAAiB6gD,EAAmB,CACtF,MAAM5pF,EAAYyI,EAAatI,CAAO,EAEhC+lK,EAAwB/lK,EAAQ,MAAM,WAAa,YAAc,CAACypF,EAElEu8E,EAAwBC,EAAyBjmK,CAAO,EAExDkmK,KAAuBr9J,EAAY,mBAAmB7I,EAAS,CAACwL,EAAK7tC,EAAMmN,KACzEnN,EAAK,WAAa,aAClB6tC,EAAI1gC,EAAK,KAAK,GAAG,CAAC,EAAInN,EAAK,OAExB6tC,GACR,EAAE,EAEL,IAAI26J,EAAiB97J,EAGjB07J,IACAI,EAAiBA,EAAe,OAAOhhK,GAAQA,EAAK,MAAM,WAAa,cAAc,GAKrF6gK,IACAG,EAAiBA,EAAe,OAAQhhK,GAAS,CAC7C,UAAWihK,KAAWJ,EAAuB,CACzC,MAAMK,EAAWD,EAAQ,MAAM,GAAG,EAC5BE,KAAgBz9J,EAAY,oBAAoB1D,EAAMkhK,CAAQ,EACpE,UAAWE,KAAaP,EAAsBI,CAAO,EACjD,GAAI,CAACE,EAAU,UAAWz9J,EAAY,oBAAoB1D,EAAMohK,CAAS,CAAC,EACtE,MAAO,EAG/B,CACY,MAAO,EACnB,CAAS,GAGL,MAAMnlN,EAAK,IAAIg2L,EAAiB,iBAAiB+uB,EAAe,IAAIhhK,GAAQyjC,EACvE,SAAS,OAAO,KAAKs9H,CAAgB,EAAE,IAAKpwM,GAAQ,CACrD,MAAMgV,EAAOhV,EAAI,MAAM,GAAG,EACpBqyB,EAAW+9K,EAAiBpwM,CAAG,EAC/B6H,KAAWkrC,EAAY,oBAAoB1D,EAAMr6B,CAAI,EAC3D,MAAO,CAACkhB,EAAY,SAAS7D,CAAQ,EAAGxqB,CAAI,CAC/C,CAAA,CAAC,CAAC,EAAG,CACF,QAAS,IAAM0sC,EAAM,QAAS,CACtC,CAAK,EAED,OAAAm8J,EAAYx6K,EAAa5qC,EAAIipD,EAAO67J,EAAkBrmK,EAAWkmK,GAAyB,EAAQC,CAAsB,EACjH5kN,CACX,CACA,MAAA,gBAA0B0kN,EAM1B,SAASW,EAAe9oM,EAAM,CAC1B,OAAOA,EAAK,WAAa,UAC7B,CACA,MAAA,eAAyB8oM,EAMzB,SAASn+J,EAAatI,EAAS,CAC3B,SAAW6I,EAAY,cAAeA,EAAY,gBAAgB7I,CAAO,EAAE,OAAOymK,CAAc,CAAC,CACrG,CACA,MAAA,aAAuBn+J,EAuBvB,SAAS29J,EAAyBjmK,EAAS,CAEvC,MAAM0mK,EAAmB,CAAE,EAC3B,IAAIC,EAAqB,GAQzB,MAPI99J,EAAY,oBAAoB7I,EAAS,CAACvqC,EAAOqV,IAAS,CAC1D,GAAIrV,EAAM,WAAa,WAAY,CAC/B,MAAMkf,KAAUgvB,EAAa,cAAcluC,CAAK,EAC1Cm3B,GAAU85K,EAAiB/xL,CAAG,IAAM+xL,EAAiB/xL,CAAG,EAAI,CAAE,IAAG,KAAK7J,CAAI,EAChF67L,EAAqBA,GAAsB/5K,EAAS,CAChE,CACA,CAAK,EACG,CAAC+5K,EACD,OAGJ,MAAMX,EAAwB,CAAE,EAChC,UAAW79K,KAAYu+K,EAAkB,CACrC,MAAM/gK,EAAW+gK,EAAiBv+K,CAAQ,EACpCy+K,EAAoBjhK,EAAS,MAAM,CAAC,EAEtCihK,EAAkB,OAAS,IAC3BZ,EAAsBrgK,EAAS,CAAC,EAAE,KAAK,GAAG,CAAC,EAAIihK,EAE3D,CACI,OAAOZ,CACX,CACA,MAAA,yBAAmCC,EAWnC,SAASO,EAAYx6K,EAAasY,EAAU+F,EAAO67J,EAAkBrmK,EAAWgnK,EAA0B,CACtG,MAAMC,EAAiBrwI,GAAgB,CAC/BowI,IACApwI,EAAY,YAAY,KAAO,YAEnCnyB,EAAS,YAAY,WAAYyiK,EAAgC/6K,KAAiBgrC,EAAiB,uBAAuBP,CAAW,EAAGyvI,EAAkBrmK,CAAS,CAAC,EAEhK42B,EAAY,OACZA,EAAY,MAAM,sBAAsB,IAAM,CAC1C+vI,EAAYx6K,EAAasY,EAAU+F,EAAO67J,EAAkBrmK,EAAWgnK,CAAwB,CAC/G,CAAa,CAER,EACKrwI,EAAWnsB,EAAM,YAAY,UAAU,EACzCmsB,EAGAswI,EAActwI,CAAQ,EAGtBnsB,EAAM,YAAY,WAAYy8J,CAAa,CAEnD,CACA,MAAA,YAAsBN,EAQtB,SAASO,EAAgC/6K,EAAag7K,EAAed,EAAkBrmK,EAAW,CAC9F,MAAO,CACH,GAAGmnK,EACH,MAAOA,EAAc,MACjBC,EAA0Bj7K,EAAag7K,EAAc,MAAOd,CAAgB,EAC5E,OACJ,gBAAiBc,EAAc,gBAC3BA,EAAc,gBAAgB,IAAIE,IAAa,CAC3C,KAAMA,EAAS,KACf,MAAOD,EAA0Bj7K,EAAak7K,EAAS,MAAOhB,CAAgB,CAC9F,EAAc,EACF,OACJ,UAAWrmK,EAAU,IAAI1X,IAAa,CAAE,SAAAA,EAAU,WAAY,EAAK,EAAG,CACzE,CACL,CACA,MAAA,gCAA0C4+K,EAO1C,SAASE,EAA0Bj7K,EAAam7K,EAAYjB,EAAkB,CAC1E,MAAMkB,EAAkB,CAAE,EAC1B,OAAOD,EAAW,IAAK98L,GAAU,CAE7B,MAAMg9L,EAAenB,EAAiB77L,EAAM,IAAI,EAChD,GAAKg9L,GAKD,CAAAD,EAAgBC,CAAY,EAIhC,OAAAD,EAAgBC,CAAY,EAAI,GACzB,CACH,KAAMr7K,EAAY,SAASq7K,CAAY,EACvC,UAAWh9L,EAAM,SACpB,CACT,CAAK,EAAE,OAAO,OAAO,CACrB,CACA,MAAA,0BAAoC48L,EAOpC,SAASK,EAA0BtnK,EAAS5+C,EAAI,CAC5C,SAAQynD,EAAY,WAAW7I,EAASriC,GAAQA,EAAK,WAAa,MAAM,IACpEvc,EAAKA,EAAG,OAAO+jD,MAAY0gK,EAAe,sBAAsB1gK,EAAMnF,CAAO,CAAC,GAE3E5+C,CACX,CACA,aAAA,0BAAoCkmN,8GC1OpC,IAAI5iL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gCAAqC,EAAE+D,CAAO,EAC3DD,EAAaE,aAAkB,EAAED,CAAO,+JChBxC,OAAO,eAAewiL,eAAS,aAAc,CAAE,MAAO,GAAM,EACtCA,eAAA,eAAG,OACzB,MAAMC,EAA4ExmL,aAAA,EAC5EsG,EAAwDtC,cAAA,EACxDgyC,EAAsD/xC,cAAA,EACtD69C,EAA0C59C,qBAAA,EAC1Cye,EAAexe,mBAAqB,EACpCguF,EAAmB/tF,oBAAyB,EAC5CyjB,EAAcxjB,kBAAoB,EACxC,IAAAoiL,EAAA,KAAqB,CACjB,YAAYC,EAAkBC,EAAyBC,EAAwB57K,EAAa42C,EAAgBgG,EAAiBi/H,EAAYC,EAAcC,EAAWC,EAAUhgL,EAAKwuC,EAAUyxI,EAAoBC,EAAc,CAiBzN,GAhBA,KAAK,eAAiBlgL,EACtB,KAAK,iBAAmB0/K,EACxB,KAAK,wBAA0BC,EAC/B,KAAK,uBAAyBC,EAC9B,KAAK,YAAc57K,EACnB,KAAK,eAAiB42C,EACtB,KAAK,gBAAkBgG,EACvB,KAAK,WAAai/H,EAClB,KAAK,aAAeC,EACpB,KAAK,UAAYC,EACjB,KAAK,SAAWC,EAChB,KAAK,IAAMhgL,EACX,KAAK,mBAAqBigL,EAC1B,KAAK,YAAc,CAAE,EACrB,KAAK,WAAa,KAAK,cAAczxI,CAAQ,EAC7C,KAAK,aAAeA,EAAS,aAAe,KAAK,YAAY,UAAUA,EAAS,YAAY,EAAI,OAC5F0xI,EAAc,CACd,IAAIC,KAAmBrlI,EAAgB,MAAMolI,CAAY,EACrD,KAAK,eACLC,EAAe,KAAK,8BAA8BA,CAAY,GAElE3xI,EAAW,CAAE,GAAGA,EAAU,MAAO,IAAIQ,EAAiB,uBAA2B,EACjFmxI,EAAa,YAAY,WAAY3xI,CAAQ,EAC7C,KAAK,WAAW2xI,EAAc,KAAK,YAAY,SAAS,EAAE,EAAG,KAAK,YAAY,SAAS,EAAE,EAAG,KAAK,YAAY,SAAS,EAAE,EAAG,KAAK,YAAY,SAAS,EAAE,CAAC,CACpK,CACQ,KAAK,cAAgB,KAAK,mBACtB,CACI,KAAM,YACN,UAAW,CACP,cAAe,UACf,QAAS,KAAK,eAAe,cAAc,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,CAAC,CAC5K,EACD,kBAAmB,CACf,KAAK,YAAY,SAAS,GAAG,EAC7B,KAAK,YAAY,SAAS,GAAG,EAC7B,KAAK,YAAY,SAAS,GAAG,EAC7B,KAAK,YAAY,SAAS,GAAG,CAChC,EACD,eAAgB,EACnB,EACD,CACI,KAAM,YACN,UAAW,CACP,cAAe,UACf,QAAS,KAAK,eAAe,cAAc,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,CAAC,CAC5K,EACD,kBAAmB,CACf,KAAK,YAAY,SAAS,GAAG,EAC7B,KAAK,YAAY,SAAS,GAAG,EAC7B,KAAK,YAAY,SAAS,GAAG,EAC7B,KAAK,YAAY,SAAS,GAAG,CAChC,CACJ,CACb,CACI,MAAM,kBAAmB,CACrB,OAAO,KAAK,aACpB,CACI,cAAc/vK,EAAWt4B,EAASvJ,EAAS,CACvC,GAAI6hC,EAAU,OAAS,UACnB,MAAM,IAAI,MAAM,4CAA4CA,EAAU,IAAI,qBAAqB,EAEnG,MAAMqxF,EAAoB,EAAQ3pH,EAAQ,IAAIwnB,EAAkB,mBAAmB,iBAAiB,EAEpG,IAAIlmC,EAAK,KAAK,MAAMg3C,EAAU,QAASA,EAAU,UAAWA,EAAU,OAAQA,EAAU,MAAOqxF,EAAmB3pH,EAASvJ,CAAO,EAClI,OAAAnV,KAASomN,EAA4B,2BAA2BpvK,EAAWh3C,CAAE,KAClEomN,EAA4B,iBAAiBpmN,EAAIg3C,EAAW,KAAK,YAAa,KAAK,gBAAiBqxF,CAAiB,CACxI,CAMI,cAAcjzD,EAAU,CACpB,GAAI,CAACA,EAAS,aAAe,CAACA,EAAS,YAAY,OAC/C,OAGJ,KAAM,CAAE,YAAAkvD,CAAW,EAAKlvD,EACxB,UAAW4xI,KAAc1iF,EAAY,OASjC,GARI,KAAK,UACL,KAAK,cAAc0iF,EAAW,UAC9B,KAAK,gBAAgBA,EAAW,UAChC,KAAK,aAAaA,EAAW,UAC7B,KAAK,YAAYA,EAAW,UAC5B,OAAO,KAAKA,EAAW,QAAQ,EAAE,SAAW,GAG5C,KAAK,cAAcA,EAAW,UAC9B,KAAK,gBAAgBA,EAAW,UAChC,KAAK,aAAaA,EAAW,UAC7B,OAAO,KAAKA,EAAW,QAAQ,EAAE,SAAW,EAC5C,OAAOA,CAGvB,CAUI,kBAAkBA,EAAY9gM,EAASyF,EAAWlC,EAAQogB,EAAO,CAC7D,MAAMre,EAAU,CAAE,EACZkvB,EAAQ,CACV,CAAE,IAAK,KAAK,WAAY,KAAMx0B,CAAS,EACvC,CAAE,IAAK,KAAK,aAAc,KAAMyF,CAAW,EAC3C,CAAE,IAAK,KAAK,UAAW,KAAMlC,CAAQ,EACrC,CAAE,IAAK,KAAK,SAAU,KAAMogB,CAAO,CACtC,EACD,UAAW5gB,KAASyxB,EAEZzxB,EAAM,MAAQ,KAAK,oBAAuBA,EAAM,KAAK,WAAa,aACjEA,EAAM,KAAK,WAAa,WAAcw+B,EAAY,kBAAkBx+B,EAAM,KAAM5U,GAASA,EAAM,WAAa,UAAU,MACvHmX,EAAQvC,EAAM,GAAG,KAAQs5B,EAAa,cAAct5B,EAAM,IAAI,GAGtE,OAAO+9L,EAAW,OAAOx7L,CAAO,CACxC,CACI,MAAMtF,EAASyF,EAAWlC,EAAQogB,EAAOw+F,EAAmB3pH,EAASvJ,EAAS,CAI1E,IAAI8xM,EAAgB,GACpB,GAAIp9K,EAAM,WAAa,eACnB,GAAI,KAAK,aACLo9K,EAAgB,GAChBp9K,EAAQ,KAAK,qBAER,OAAO,KAAK,KAAK,WAAW,QAAQ,EAAE,SAAW,GAAK,CAAC,KAAK,aAEjE,GAAIw+F,EAEAx+F,EAAQ,KAAK,YAAY,SAAS,GAAG,MAEpC,CAED,MAAMof,EAAQ,IAAIy4B,EAAgB,cAAc,CAAA,EAAI,CAAE,UAAW,GAAO,EACxE,OAAAz4B,EAAM,YAAY,WAAY,CAC1B,MAAO,IAAI2sB,EAAiB,wBAC5B,YAAa,EACb,YAAa,CAAE,KAAM,QAAS,MAAO,CAAG,EACxC,MAAO,KACP,KAAM,KACN,KAAM,IAC9B,CAAqB,EACM3sB,CAC3B,MAEqB,OAAO,KAAK,KAAK,WAAW,QAAQ,EAAE,SAAW,IAEtDpf,EAAQ,KAAK,YAAY,SAAS,GAAG,GAI7C,GAAI,CAAC10B,GAAS,eAAgB,CAC1B,MAAM6tD,EAAS,KAAK,eAAe98C,EAASyF,EAAWlC,EAAQogB,CAAK,EACpE,GAAIm5B,EACA,OAAOA,CAEvB,CAGQ,MAAMroB,EAAO,KACb,IAAIsO,EACJ,MAAMi+J,EAAqB,gBAAkB,CACzC,IAAItgL,EAAM+T,EAAK,kBAAkBA,EAAK,WAAYz0B,EAASyF,EAAWlC,EAAQogB,CAAK,EAE/E10B,GAAS,iBACTyxB,EAAM,MAAM+T,EAAK,0BAA0Bz0B,EAASyF,EAAWlC,EAAQogB,EAAOjD,EAAKzxB,EAAQ,cAAc,GAE7G,MAAMkuM,EAAuB,MAAM1oK,EAAK,uBAAuB,QAAQ,CAAE,QAAAj8B,EAAS,IAAAkoB,EAAK,EACvFA,EAAMy8K,EAAqB,IAE3B,MAAMC,EAAmB,MAAM3oK,EAAK,iBAAiB,QAAQ,CAAE,QAAAj8B,EAAS,IAAAkoB,EAAK,MAAOy8K,EAAqB,KAAM,QAASA,EAAqB,UAAU,QAAS,EAE1J,CAAE,SAAAjuI,GAAa,MAAMz6B,EAAK,wBAC3B,QAAQ,CACT,QAAAj8B,EACA,IAAAkoB,EACA,SAAU08K,EAAiB,SAC3B,YAAaD,EAAqB,WAClD,CAAa,EACD,OAAAp6J,EAAM,YAAY,WAAY,CAAE,GAAGmsB,EAAU,MAAO,IAAIQ,EAAiB,wBAA2B,SAAUj7B,EAAK,GAAG,CAAE,EAGjH2oK,EAAiB,IACpC,EAAY,EAyBJ,OAxBAr6J,EAAQ,IAAIy4B,EAAgB,kBAAkB,SAAY,CACtD,MAAMylI,EAAa,MAAMD,EAInBE,EAAqB,KAAK,YAAY,aAAc,EAC1D,IAAIrC,KAAqBrjI,EAAgB,MAAMylI,CAAU,EACpD,UAAU,CACX,OAAOpjK,EAAM,CACT,SAAQ0D,EAAY,cAAc1D,EAAM79B,EAASyF,EAAWlC,EAAQogB,CAAK,EAC9D,GAIJo9K,MAAqBx/J,EAAY,cAAc1D,EAAM79B,EAASyF,EAAWlC,EAAQ29L,CAAkB,CAC7G,CACjB,CAAa,EACD,OAAIH,GAAiBp9K,EAAM,WAAa,cAEpCk7K,EAAiB,KAAK,8BAA8BA,CAAc,GAE/DA,CACnB,EAAW,CAAE,UAAW,GAAO,EAEnB5vM,GAAS,eACF8zC,GAEX,KAAK,WAAWA,EAAO/iC,EAASyF,EAAWlC,EAAQogB,CAAK,EACjD,KAAK,eAAe3jB,EAASyF,EAAWlC,EAAQogB,CAAK,EACpE,CAcI,MAAM,0BAA0B3jB,EAASyF,EAAWlC,EAAQogB,EAAOjD,EAAKygL,EAAgB,CAEpF,MAAMt6L,EAAS,CAAE,EACjB,UAAWisB,KAAW,MAAMquK,EAAe,SAAS,QAAO,EAAI,CAC3D,MAAMhzM,EAAQ,CAAC,GAAG,EAClB,UAAW0yB,KAAYsgL,EAAe,SAAS,UAAW,CACtD,MAAM9qM,EAAOy8B,EAAQ,IAAIjS,EAAS,QAAQ,EAC1C1yB,EAAM,KAAKkI,KAAWw1G,EAAiB,cAAcx1G,CAAI,EAAI,OAAO,EACpElI,EAAM,KAAK,GAAG,CAC9B,CACYA,EAAM,KAAK,GAAG,EACd0Y,EAAO,KAAK1Y,EAAM,KAAK,EAAE,CAAC,CACtC,CACY0Y,EAAO,SAAW,GAGlBA,EAAO,KAAK,yBAAyB,EAGzC,MAAMu6L,EAAY,mBAAmB,IAAID,EAAe,SAAS,UAAU,IAAItgL,GAAY,IAAIA,EAAS,SAAS,KAAK,EAAE,EAAE,KAAK,GAAG,CAAC,OAAOha,EAAO,KAAK,GAAG,CAAC,IAAI,EAC9J,MAAO,GAAG6Z,CAAG,WAAW0gL,CAAS,EACzC,CACI,8BAA8Br+J,EAAO,CACjC,MAAMm+J,EAAqB,KAAK,YAAY,aAAc,EAC1D,OAAOn+J,EAAM,IAAIlF,MAAY0D,EAAY,UAAU1D,EAAM,CAACxnC,EAAM7H,IAAQA,IAAQ,SAAW6H,EAAK,OAAO,KAAK,YAAY,EAAI6qM,EAAqB7qM,CAAI,CAAC,CAC9J,CACI,aAAa2J,EAASyF,EAAWlC,EAAQogB,EAAO,CAC5C,OAAO,KAAK,UAAU,CAClB,EAAG3jB,EAAQ,WAAa,WAAa,GAAKqhM,EAAcrhM,CAAO,EAC/D,EAAGyF,EAAU,WAAa,WAAa,GAAK47L,EAAc57L,CAAS,EACnE,EAAGlC,EAAO,WAAa,WAAa,GAAK89L,EAAc99L,CAAM,EAC7D,EAAGogB,EAAM,WAAa,WAAa,GAAK09K,EAAc19K,CAAK,CACvE,CAAS,CACT,CACI,WAAWof,EAAO/iC,EAASyF,EAAWlC,EAAQogB,EAAO,CACjD,MAAMsmH,EAAY,KAAK,aAAajqI,EAASyF,EAAWlC,EAAQogB,CAAK,EACrE,KAAK,YAAYsmH,CAAS,EAAIlnG,EAAM,MAAO,CACnD,CACI,eAAe/iC,EAASyF,EAAWlC,EAAQogB,EAAO,CAC9C,MAAMsmH,EAAY,KAAK,aAAajqI,EAASyF,EAAWlC,EAAQogB,CAAK,EAC/Dof,EAAQ,KAAK,YAAYknG,CAAS,EACxC,GAAIlnG,EACA,OAAOA,EAAM,MAAO,CAEhC,CACI,WAAW0rJ,EAAY5qG,EAAU,CAC7B,MAAM,IAAI,MAAM,iDAAiD,CACzE,CACI,aAAa4qG,EAAY5qG,EAAU,CAC/B,MAAM,IAAI,MAAM,mDAAmD,CAC3E,CACI,UAAU4qG,EAAY5qG,EAAU,CAC5B,MAAM,IAAI,MAAM,gDAAgD,CACxE,CACA,EACAo8G,eAAA,eAAyBqB,EACzB,SAASD,EAAchrM,EAAM,CACzB,OAAOA,EAAK,WAAa,eAErB,OACIgmC,EAAa,cAAchmC,CAAI,CAC3C,wRCjTA,OAAO,eAAekrM,sCAAS,aAAc,CAAE,MAAO,GAAM,EACfA,sCAAA,sCAAG,OAChD,MAAMC,EAAkG9nL,aAAA,EAClGsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtEgnC,EAAoB/mC,uBAA0B,EAC9CoiL,EAA8CniL,sBAAA,EAIpD,IAAA2jL,EAAA,cAAoDD,EAAuC,kCAAmC,CAC1H,YAAYtxM,EAAM,CACd,MAAMA,EAAM,KAAK,CACzB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,iBAAoBA,EAAO,kBAAoB,OAASA,EAAO,kBAAoB,WAC/E6D,EAAO,UAAU,SAAS,KAAK,IAAI,sCAAsC7D,EAAO,eAAe,GAAG,EAE1G,KAAK,aAAaA,CAAM,CACvC,CACI,MAAM,aAAaA,EAAQ,CACvB,KAAM,CAAE,WAAAymL,CAAY,EAAG,MAAM,KAAK,aAAazmL,EAAO,IAAKA,EAAO,SAAUA,EAAO,QAASA,EAAO,kBAAoB,OAAO,EAC9H,OAAKymL,EAGDzmL,EAAO,iBAAmBA,EAAO,gBAAgBymL,EAAW,OAAO,KACxD5iL,EAAO,UAAU,SAAS,KAAK,IAAI,2DAA2D,KAElGA,EAAO,UAAU,CAAE,aAAc,CAAC,CAAE,KALhCA,EAAO,UAAU,kEAAkE,CAM1G,CAMI,MAAM,IAAI7D,EAAQ,CACd,KAAK,QAAQA,EAAO,QAAS,6BAA6BA,EAAO,GAAG,EAAE,EACtE,MAAMxqB,EAAS,MAAM,KAAK,aAAawqB,EAAO,IAAKA,EAAO,SAAUA,EAAO,QAASA,EAAO,kBAAoB,QAASA,EAAO,KAAK,EACpI,MAAO,CAAE,OAAAxqB,EAAQ,QAASA,EAAO,WAAW,OAAS,CAC7D,CACI,MAAM,aAAa6wB,EAAKwuC,EAAU12D,EAASmoM,EAAoB59J,EAAO,CAClE,MAAMre,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAChE,OAAO,IAAIu7K,EAAiB,eAAe,KAAK,iBAAkB,KAAK,wBAAyB,KAAK,uBAAwBv7K,EAAa42C,EAAgB,MAAMm6G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bj9K,EAASksB,CAAW,EAAG,KAAK,WAAY,KAAK,aAAc,KAAK,UAAW,KAAK,SAAUhE,EAAKwuC,EAAUyxI,EAAoB59J,CAAK,CAC7X,CACA,EACAw+J,6CAAA,sCAAgDG,8IC/ChD,IAAItkL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,6CAAkD,EAAE+D,CAAO,EACxED,EAAaE,sBAA2B,EAAED,CAAO,wPChBjD,OAAO,eAAekkL,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAM3hL,EAAwDtG,cAAA,EACxDwE,EAAkCR,cAAA,EAClCgyC,EAAsD/xC,cAAA,EACtDqkD,EAAoEpkD,cAAA,EACpE49C,EAA0C39C,qBAAA,EAC1C+vK,EAA0D9vK,2BAAA,EAC1DyvC,EAAkCxvC,kBAAA,EAClCwjB,EAAcvjB,kBAAoB,EAClC4mC,EAAoBvjC,uBAA0B,EACpD,IAAAugL,EAAA,MAAMC,EAAkB,CACpB,YAAYnhL,EAAKloB,EAASuxL,EAAc+X,EAAYp9K,EAAa42C,EAAgBgG,EAAiBygI,EAAcC,EAAWC,EAAcC,EAAyBC,EAAiCC,EAAcjgF,EAAmBC,EAAU,CAC1O,KAAK,eAAiB1hG,EACtB,KAAK,IAAMA,EACX,KAAK,QAAUloB,EACf,KAAK,aAAeuxL,EACpB,KAAK,WAAa+X,EAClB,KAAK,YAAcp9K,EACnB,KAAK,eAAiB42C,EACtB,KAAK,gBAAkBgG,EACvB,KAAK,gBAAkB,IAAIssH,EAAwB,sBAAsB,CACrE,OAAQmU,EAAe,MAAQ,OAC/B,MAAO,CAACvtK,EAAOgiH,IAAS,KAAK,aAAa,QAAQ,CAAE,MAAAhiH,EAAO,KAAAgiH,EAAM,QAAS,KAAK,iBAAiB,CAAE,EAClG,2BAA4B,GAC5B,YAAA9xH,CACZ,CAAS,EACD,KAAK,MAAQs9K,EAAY,EACrB,IAAIz0I,EAAY,SAAS,CAAE,IAAKy0I,CAAS,CAAE,EAC3C,OACJ,KAAK,aAAeC,EACpB,KAAK,wBAA0BC,EAC/B,KAAK,gCAAkCC,EACvC,KAAK,aAAeC,EACpB,KAAK,kBAAoBjgF,GAAqB,GAC9C,KAAK,SAAWC,CACxB,CACI,MAAM,kBAAmB,CACrB,OAAOy/E,GAAkB,cACjC,CACI,cAAcQ,EAAa7pM,EAASvJ,EAAS,CAEzC,IAAIqzM,EACArzM,GAAS,aACTqzM,EAAmBT,GAAkB,uBAAuB,KAAK,eAAgB,KAAK,WAAYQ,EAAapzM,EAAQ,YAAY,EAGnIqzM,EAAmB,QAAQ,QAAQD,CAAW,EAElD,MAAMrlK,EAAW,IAAIw+B,EAAgB,kBAAkB,SAAY,CAE/D,MAAM1qC,EAAY,MAAMwxK,EAClB/pK,EAAYqsB,EAAkB,KAAK,iBAAiB9zB,CAAS,EAC7DyxK,EAAc/pM,EAAQ,IAAIwnB,EAAkB,cAAc,WAAW,EACrEgxC,EAAcx4D,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEwiL,EAAc,CAACvzM,GAAS,cAAgBszM,GAAevxI,EAAY,WAAa,SAClFuxI,EACAV,GAAkB,uBAAuB,KAAK,eAAgB/wK,EAAWyH,CAAS,EAChFkqK,EAAiBZ,GAAkB,mBAAmB/wK,CAAS,EACrE,OAAO,KAAK,oBAAoB,KAAK,IAAK0xK,EAAajqK,EAAW//B,EAASiqM,CAAc,CACrG,EAAW,CAAE,UAAW,GAAO,EACvB,YAAK,eAAezlK,EAAUxkC,EAAS8pM,CAAgB,EAChDtlK,CACf,CACI,WAAWlM,EAAWt4B,EAAS,CAC3B,KAAK,kBAAoB,KAAK,QAAQ,MAAMA,CAAO,EACnD,MAAMkqM,EAAY,KAAK,gBAAgB,aAAa,KAAK,IAAKlqM,EAAQ,IAAIwnB,EAAkB,cAAc,WAAW,GAAK6hL,GAAkB,iBAAiB/wK,CAAS,CAAC,EACvK,KAAK,kBAAoB,OACzB,MAAMiS,KAAYy4B,EAAgB,MAAMknI,EAAW,CAAE,UAAW,GAAO,cAAe,OAAO,iBAAiB,CAAE,EAChH,YAAK,eAAe3/J,EAAOvqC,EAAS,QAAQ,QAAQs4B,EAAU,KAAK,CAAC,EAC7DiS,CACf,CACI,aAAajS,EAAWt4B,EAAS,CAC7B,KAAK,kBAAoB,KAAK,QAAQ,MAAMA,CAAO,EACnD,MAAMosG,EAAU,KAAK,gBAAgB,SAAS,KAAK,IAAKpsG,EAAQ,IAAIwnB,EAAkB,cAAc,WAAW,GAAK6hL,GAAkB,iBAAiB/wK,CAAS,CAAC,EACjK,YAAK,kBAAoB,OAClB8zE,CACf,CACI,UAAU9zE,EAAWt4B,EAAS,CAC1B,KAAK,kBAAoB,KAAK,QAAQ,MAAMA,CAAO,EACnD,MAAMosG,EAAU,KAAK,gBAAgB,YAAY,KAAK,IAAKpsG,EAAQ,IAAIwnB,EAAkB,cAAc,WAAW,GAAK6hL,GAAkB,iBAAiB/wK,CAAS,CAAC,EACpK,YAAK,kBAAoB,OAClB8zE,CACf,CACI,eAAe5zD,EAAQx4C,EAAS8pM,EAAkB,CAE9C,IAAIK,EAAiB,CAAE,EAEvB,IAAI,QAAQ,MAAO3zI,EAASC,IAAW,CACnC,GAAI,CACA,MAAMn+B,EAAY,MAAMwxK,EAClBM,EAAkBh+I,EAAkB,KAAK,iBAAiB9zB,CAAS,EACnE+xK,EAAa,KAAK,gCAAgC/xK,CAAS,EAC3D2xK,EAAiBZ,GAAkB,mBAAmB/wK,CAAS,EACrE6xK,EAAiBC,EAAgB,IAAI/hL,IAAa,CAC9C,SAAAA,EACA,WAAY4hL,EAAe,KAAKK,GAAiBA,EAAc,OAAOjiL,CAAQ,CAAC,CACnG,EAAkB,EACF,MAAMkiL,EAAoB,KAAK,OAAO,IAAIF,CAAU,EACpD,GAAIE,EACA,OAAO/zI,EAAQ+zI,CAAiB,EAIpC,GAAI,KAAK,gCAAiC,CACtC,MAAMC,EAAgB,MAAM,KAAK,6BAA6BlyK,CAAS,EACvE,GAAI,OAAO,SAASkyK,EAAc,KAAK,EACnC,YAAK,OAAO,IAAIH,EAAYG,CAAa,EAClCh0I,EAAQg0I,CAAa,CAEpD,CAEgB,GAAI,CAAC,KAAK,wBACN,OAAOh0I,EAAQ,CAAE,KAAM,WAAY,MAAO,OAAO,kBAAmB,QAAS,KAAK,IAAK,EAE3F,MAAMi0I,EAAiB,WAAW,IAAMj0I,EAAQ,CAC5C,KAAM,WACN,MAAO,OAAO,kBACd,QAAS,KAAK,GAClC,CAAiB,EAAG,KAAK,YAAY,EACfrsB,EAAW,KAAK,YAAY,SAAS,OAAO,EAC5CgxE,EAAiB,MAAM,KACxB,oBAAoB,KAAK,IAAKkvF,EAAY,CAAClgK,CAAQ,EAAGnqC,EAAS,EAAE,EACtEm7G,EAAe,GAAG,OAAS32E,GAAa,CACpC,aAAaimK,CAAc,EAC3B,MAAM/2L,EAAQ8wB,EAAS,IAAI2F,CAAQ,EAC7Bm9B,EAAc,CAChB,KAAM,WACN,MAAO,OAAO,kBACd,QAAS,KAAK,GACjB,EACD,GAAI5zD,EAAO,CACP,MAAMg3L,EAAmB,OAAO,SAASh3L,EAAM,MAAO,EAAE,EACnD,OAAO,MAAMg3L,CAAgB,IAC9BpjI,EAAY,KAAO,QACnBA,EAAY,MAAQojI,EACpB,KAAK,OAAO,IAAIL,EAAY/iI,CAAW,EAEnE,CACoB,OAAO9Q,EAAQ8Q,CAAW,CAC9C,CAAiB,EACD6zC,EAAe,GAAG,QAAS,IAAM,CAC7B,aAAasvF,CAAc,EAC3Bj0I,EAAQ,CAAE,KAAM,WAAY,MAAO,OAAO,kBAAmB,QAAS,KAAK,IAAK,CACpG,CAAiB,EACD2kD,EAAe,GAAG,MAAO,IAAM,CAC3B,aAAasvF,CAAc,EAC3Bj0I,EAAQ,CAAE,KAAM,WAAY,MAAO,OAAO,kBAAmB,QAAS,KAAK,IAAK,CACpG,CAAiB,CACjB,OACmBv6D,EAAO,CACV,OAAOw6D,EAAOx6D,CAAK,CACnC,CACS,CAAA,EACI,KAAMqrE,GAAgB,CACvB9uB,EAAO,YAAY,WAAY,CAC3B,MAAO,IAAI0e,EAAiB,wBAC5B,YAAAoQ,EACA,UAAW6iI,CAC3B,CAAa,CACJ,CAAA,EACI,MAAM,IAAM3xJ,EAAO,YAAY,WAAY,CAC5C,MAAO,IAAI0e,EAAiB,wBAC5B,YAAa,CAAE,KAAM,WAAY,MAAO,OAAO,kBAAmB,QAAS,KAAK,GAAK,EACrF,UAAWizI,CACvB,CAAS,CAAC,CACV,CAOI,gCAAgC7xK,EAAW,CACvC,MAAMqyK,EAAsBryK,EAAU,OAAS8zB,EAAkB,QAAQ,MAAM,QAC3E,KAAK,eAAe,cAAc9zB,EAAU,QAAQ,WAAa,WAAa,KAAK,YAAY,SAAS,GAAG,EAAIA,EAAU,QAASA,EAAU,UAAU,WAAa,WAAa,KAAK,YAAY,SAAS,GAAG,EAAIA,EAAU,UAAWA,EAAU,OAAO,WAAa,WAAa,KAAK,YAAY,SAAS,GAAG,EAAIA,EAAU,MAAM,EAClUA,EAEJ,OADwB+wK,GAAkB,sBAAsB,KAAK,YAAa,KAAK,eAAgBsB,CAAmB,CAElI,CAMI,MAAM,6BAA6BryK,EAAW,CAC1C,MAAMuuC,EAAU,CACZ,eAAiBvuC,GAAc,CAC3B,MAAMyxK,EAAc,KAAK,gCAAgCzxK,CAAS,EAC5DiyK,EAAoB,KAAK,OAAO,IAAIR,CAAW,EACrD,GAAIQ,EACA,OAAOA,EAEX,GAAI,KAAK,SAAU,CACf,MAAM/xB,EAAgB,KAAK,SACtB,OAAOoyB,GAAM,KAAK,mBAAsB,KAAK,cAAgBA,EAAG,IAAI,SAAS,KAAK,YAAY,CAAE,EAChG,IAAIA,MAAUphI,EAAwB,qBAAqBlxC,EAAWsyK,CAAE,CAAC,EAM9E,MALoB,CAChB,KAAMpyB,EAAc,KAAKqyB,GAAQA,EAAK,OAAS,UAAU,EAAI,WAAa,QAC1E,MAAOryB,EAAc,OAAS,EAAIA,EAAc,OAAO,CAAC9sI,EAAKm/J,IAASn/J,EAAMm/J,EAAK,MAAO,CAAC,EAAI,EAC7F,QAAS,KAAK,GACjB,CAErB,CACa,EACD,OAAQ,KAAK,IACb,IAAK,KAAK,GACb,EACD,SAAWrhI,EAAwB,qBAAqBlxC,EAAWuuC,CAAO,CAClF,CAUI,aAAa,uBAAuB/D,EAAgBwmI,EAAYhxK,EAAWwyK,EAAa,CACpF,MAAMtmK,EAAW,MAAMsmK,EAAY,SAAS,QAAS,EACrD,OAAQxB,EAAU,CACd,IAAK,SACD,OAAOxmI,EAAe,WAAW,CAC7BA,EAAe,aAAagoI,EAAY,SAAS,UAAU,IAAI,GAAK,EAAE,QAAQ,EAAGtmK,EAAS,IAAIlK,GAAW,OAAO,YAAY,CAAC,GAAGA,CAAO,EAClI,IAAI,CAAC,CAACtkC,EAAKL,CAAK,IAAM,CAAC,IAAIK,EAAI,KAAK,GAAIL,CAAK,CAAC,CAAC,CAAC,CAAC,EACtD2iC,CACH,EAAE,EAAK,EACZ,IAAK,QACD,MAAM,IAAI,MAAM,mCAAmC,EAEvD,IAAK,SACD,MAAM,IAAI,MAAM,oCAAoC,CAEpE,CACA,CAQI,OAAO,uBAAuBwqC,EAAgBxqC,EAAWyH,EAAW,CAChE,OAAOspK,GAAkB,iBAAiBvmI,EAAe,cAAcxqC,EAAWyH,CAAS,CAAC,CACpG,CAQI,OAAO,sBAAsB7T,EAAa42C,EAAgBxqC,EAAW,CACjE,OAAO+wK,GAAkB,iBAAiBvmI,EAAe,cAAcA,EAAe,aAAaA,EAAe,YAAYxqC,EAAW,GAAI,CAACwqC,EAAe,qBAAqB52C,EAAY,SAAS,MAAM,EAAG,QAAS42C,EAAe,yBAAwB,EAAI,EAAK,CAAC,CAAC,EAAG52C,EAAY,SAAS,OAAO,EAAG42C,EAAe,qBAAqB52C,EAAY,SAAS,MAAM,CAAC,CAAC,EAAG,CAACA,EAAY,SAAS,OAAO,CAAC,CAAC,CAAC,CACzZ,CAMI,OAAO,iBAAiBoM,EAAW,CAC/B,SAAW8zB,EAAkB,UAAU9zB,EAAW,CAAE,WAAY,GAAM,CAC9E,CAKI,OAAO,mBAAmBA,EAAW,CACjC,MAAMyH,EAAY,CAAE,EACpB,OAAAqsB,EAAkB,KAAK,iBAAiB9zB,EAAW,CAC/C,SAASigK,EAAc,CACnB,MAAMpiL,EAAOi2C,EAAkB,KAAK,iBAAiBmsI,EAAa,MAAM,CAAC,CAAC,EACpEniL,EAAQg2C,EAAkB,KAAK,iBAAiBmsI,EAAa,MAAM,CAAC,CAAC,EAC3E,UAAWwS,KAAY30L,EACdD,EAAK,KAAK60L,GAAWA,EAAQ,OAAOD,CAAQ,CAAC,GAC9ChrK,EAAU,KAAKgrK,CAAQ,EAG/B,MAAO,EACV,EACD,OAAO18L,EAAQ,CACX,UAAWga,KAAYha,EAAO,UACtBA,EAAO,SAAS,KAAKm2B,GAAY,EAAE,IAAInc,EAAS,KAAK,KAAMmc,EAAS,GACpEzE,EAAU,KAAK1X,CAAQ,EAG/B,MAAO,EACV,EACD,MAAMuV,EAAO,CAET,MAAMqtK,EAAkBrtK,EAAM,MAAM,IAAIwuB,EAAkB,KAAK,gBAAgB,EAC/E,UAAW/jC,OAAgB0gB,EAAY,WAAWkiK,EAAgB,KAAI,CAAE,EAC/DA,EAAgB,MAAMjvK,GAASA,EAAM,KAAKkvK,GAAYA,EAAS,OAAO7iL,CAAQ,CAAC,CAAC,GACjF0X,EAAU,KAAK1X,CAAQ,EAG/B,MAAO,EACV,CACb,CAAS,KACU0gB,EAAY,WAAWhJ,CAAS,CACnD,CAUI,MAAM,oBAAoBg1J,EAAU3tL,EAAO24B,EAAW//B,EAASiqM,EAAgB,CAE3E,MAAMkB,EAAsB,IAAI,IAChC,UAAWb,KAAiBL,EACxBkB,EAAoB,IAAIb,EAAc,KAAK,EAE/C,KAAK,kBAAoB,KAAK,QAAQ,MAAMtqM,CAAO,EACnD,MAAMkqM,EAAY,MAAM,KAAK,gBAAgB,cAAcnV,EAAU3tL,CAAK,EAC1E,YAAK,kBAAoB,UACd47D,EAAgB,MAAMknI,EAAW,CAAE,UAAW,GAAO,cAAe,OAAO,iBAAmB,CAAA,EACpG,IAAKkB,GAAY,KAAK,gBAAgB,SAASrrK,EAC/C,IAAK1X,GAAa,CACnB,MAAM1yB,EAAQy1M,EAAQ,IAAI/iL,EAAS,KAAK,EAAE,EAC1C,MAAI,CAAC8iL,EAAoB,IAAI9iL,EAAS,KAAK,GAAK,CAAC1yB,GAC7C+vB,EAAO,MAAM,iBAAiB,KAAK,OAAO,GAAG,KAAK,gBAAgBqvK,CAAQ,oCAAoC1sK,EAAS,KAAK,GAAG,EAE5H,CAACA,EAAU1yB,CAAK,CAC1B,CAAA,EACI,OAAO,CAAC,CAACxZ,EAAGZ,CAAC,IAAM,EAAQA,CAAE,CAAC,CAAC,CAC5C,CACI,UAAW,CACP,MAAO,qBAAqB,KAAK,GAAG,GAC5C,CACA,EACA4tN,yBAAA,kBAA4BE,EAC5BA,EAAkB,eAAiB,CAC/B,KAAM,cACN,SAAU,CACN,CACI,KAAM,YACN,UAAW,CAAE,cAAe,UAAY,EACxC,aAAc,EACjB,CACJ,CACJ,oSCzVD,OAAO,eAAegC,yCAAS,aAAc,CAAE,MAAO,GAAM,EACZA,yCAAA,yCAAG,OACnD,MAAMrC,EAAkG9nL,aAAA,EAClGsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtEgnC,EAAoB/mC,uBAA0B,EAC9C8jL,EAAoD7jL,yBAAA,EAI1D,IAAAgmL,EAAA,cAAuDtC,EAAuC,kCAAmC,CAC7H,YAAYtxM,EAAM,CACd,MAAMA,EAAM,QAAQ,CAC5B,CACI,MAAM,aAAamqB,EAAQ,CACvB,MAAI,CAACA,EAAO,iBAAmB,CAAC,KAAK,iBAAmB,CAACA,EAAO,SAAS,eACrE,EAAE,KAAK,iBAAmBA,EAAO,IAAI,SAAS,SAAS,GAAKA,EAAO,IAAI,SAAS,UAAU,OAC/E6D,EAAO,UAAU,SAAS,KAAK,IAAI,0EAA0E,KAEjHA,EAAO,UAAU,CAAE,aAAc,CAAC,CAAE,CACvD,CACI,MAAM,IAAI7D,EAAQ,CACd,KAAK,QAAQA,EAAO,QAAS,cAAcA,EAAO,GAAG,uCAAuCA,EAAO,SAAS,eAAiBA,EAAO,GAAG,EAAE,EACzI,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1Dq/K,EAAmB1pL,EAAO,QAAQ,IAAI2F,EAAkB,mBAAmB,YAAY,GAAG,SAAW,EAI3G,MAAO,CAAE,OAHM,IAAI2hL,EAAoB,kBAAmBtnL,EAAO,iBAAmB,KAAK,gBAAmBA,EAAO,IAAMA,EAAO,SAAS,eAAiBA,EAAO,IAAKA,EAAO,QAAS,KAAK,aAAc,KAAK,WAAYqK,EAAa42C,EAAgB,MAAMm6G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bp7J,EAAO,QAASqK,CAAW,EAAG,KAAK,aAAc,KAAK,UAAW,KAAK,aAEtZ,KAAK,yBAA2B,CAACq/K,EAAkB,KAAK,gCAAiC1pL,EAAO,SAAS,aAAcA,EAAO,SAAS,kBAAmBA,EAAO,SAAS,QAAQ,CACjK,CACzB,CACA,EACAwpL,gDAAA,yCAAmDG,iJCjCnD,IAAI5mL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gDAAqD,EAAE+D,CAAO,EAC3ED,EAAaE,yBAA8B,EAAED,CAAO,0RChBpD,OAAO,eAAewmL,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAM/D,EAA4ExmL,aAAA,EAC5EsG,EAAwDtC,cAAA,EACxDgyC,EAAsD/xC,cAAA,EACtD69C,EAA0C59C,qBAAA,EAC1C2jB,EAAc1jB,kBAAoB,EAClC+mC,EAAoB9mC,uBAA0B,EACpD,IAAAomL,EAAA,MAAMC,EAAiB,CACnB,YAAYt0M,EAAQ60B,EAAa48C,EAAiB,CAC9C,KAAK,OAASzxE,EACd,KAAK,eAAiBA,EACtB,KAAK,YAAc60B,EACnB,KAAK,gBAAkB48C,EACvB,MAAMnC,EAAK,IAAIva,EAAkB,QAAQ,KAAK,WAAW,EACzD,KAAK,cAAgB,CACjB,KAAM,YACN,UAAW,CACP,cAAe,UACf,QAASua,EAAG,cAAc,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,CAAC,CAC3H,EACD,kBAAmB,CACf,KAAK,YAAY,SAAS,GAAG,EAC7B,KAAK,YAAY,SAAS,GAAG,EAC7B,KAAK,YAAY,SAAS,GAAG,CAChC,CACJ,EACD,KAAK,kBAAoB,KAAK,YAAY,SAAS,yBAAyB,CACpF,CACI,OAAO,iBAAiB9oE,EAAM+tM,EAAuB,CACjD,MAAO,CAAC/tM,GAAQA,EAAK,WAAa,YAAe,CAAC+tM,GAC9C/tM,EAAK,WAAa,WAAckrC,EAAY,iBAAiBlrC,EAAMlI,GAASA,EAAM,WAAa,UAAU,EACzG,OACAkI,CACZ,CACI,OAAO,sBAAsBqiC,EAAS,CAClC,MAAMH,KAAgBgJ,EAAY,mBAAmB7I,EAASriC,GAAQA,EAAK,WAAa,UAAU,EAClG,OAAOkiC,EAAU,OAAS,MAASgJ,EAAY,WAAWhJ,CAAS,EAAE,OAASA,EAAU,MAChG,CACI,MAAM,kBAAmB,CACrB,OAAO,KAAK,aACpB,CACI,cAAczH,EAAWt4B,EAAS,CAC9B,GAAIs4B,EAAU,OAAS,UACnB,MAAM,IAAI,MAAM,4CAA4CA,EAAU,IAAI,uBAAuB,EAGrG,MAAMqxF,EAAoB,EAAQ3pH,EAAQ,IAAIwnB,EAAkB,mBAAmB,iBAAiB,EAMpG,GALI8Q,EAAU,MAAM,WAAa,gBAAkBqxF,IAC/CrxF,EAAU,MAAQ,KAAK,mBAIvB,KAAK,OAAO,cAAe,CAC3B,MAAM4xK,EAAY,KAAK,OAAO,cAAc,KAAK,gBAAiB5xK,EAAU,QAASA,EAAU,UAAWA,EAAU,OAAQA,EAAU,KAAK,EAC3I,IAAIh3C,EAAK4oN,aAAqBlnI,EAAgB,cAC1CknI,KACIlnI,EAAgB,MAAMknI,EAAW,CAAE,UAAW,EAAK,CAAE,EAIzDnD,EAA2B,GAC/B,GAAIzuK,EAAU,MAAM,WAAa,YAAc,CAACqxF,EAAmB,CAC/Do9E,EAA2B,GAC3B,MAAM1+K,EAAWiQ,EAAU,MAC3Bh3C,EAAKA,EAAG,OAAOkjD,GAAYA,EAAS,IAAInc,CAAQ,EAAE,WAAa,cAAc,CAC7F,CAQY,GANIiQ,EAAU,MAAM,OAAO,KAAK,iBAAiB,IAC7Ch3C,EAAKA,EAAG,IAAIkjD,GAAYA,EAAS,OAAO,KAAK,iBAAiB,CAAC,EAE/DlM,EAAU,MAAQ,KAAK,YAAY,aAAc,GAGjD,CAACh3C,EAAG,YAAY,UAAU,EAAG,CAC7B,MAAMy+C,KAAgB2nK,EAA4B,cAAcpvK,CAAS,EAAE,IAAIjQ,IAAa,CAAE,SAAAA,EAAU,WAAY,EAAO,EAAC,EAC5H,KAAK,YAAY/mC,EAAIg3C,EAAWt4B,EAAS+mM,EAA0B,CAAE,UAAAhnK,CAAW,CAAA,EAC3E,MAAM9jC,GAAS3a,EAAG,QAAQ2a,CAAK,CAAC,CACrD,CACY,OAAO3a,CACnB,CAEQ,MAAMsqN,EAAwB,EAAQ,KAAK,OAAO,UAAU,sBAEtD1B,EAAY,KAAK,OAAO,MAAMyB,GAAiB,iBAAiBrzK,EAAU,QAASszK,CAAqB,EAAGD,GAAiB,iBAAiBrzK,EAAU,UAAWszK,CAAqB,EAAGD,GAAiB,iBAAiBrzK,EAAU,OAAQszK,CAAqB,EAAGD,GAAiB,iBAAiBrzK,EAAU,MAAOszK,CAAqB,CAAC,EACrV,IAAItqN,EAAK4oN,aAAqBlnI,EAAgB,cAC1CknI,KACIlnI,EAAgB,MAAMknI,EAAW,CAAE,UAAW,EAAK,CAAE,EAE7D,OAAK0B,IACDtqN,KAASomN,EAA4B,2BAA2BpvK,EAAWh3C,CAAE,GAG5EA,EAAG,YAAY,UAAU,GAC1B,KAAK,YAAYA,EAAIg3C,EAAWt4B,CAAO,EAClC,MAAM/D,GAAS3a,EAAG,QAAQ2a,CAAK,CAAC,EAGrCq8B,EAAU,MAAM,OAAO,KAAK,iBAAiB,IAC7CA,EAAU,MAAQ,KAAK,YAAY,aAAc,MAE1CovK,EAA4B,iBAAiBpmN,EAAIg3C,EAAW,KAAK,YAAa,KAAK,gBAAiB,EAAQt4B,EAAQ,IAAIwnB,EAAkB,mBAAmB,iBAAiB,CAAE,CACnM,CACI,MAAM,YAAYlmC,EAAIg3C,EAAWt4B,EAAS+mM,EAA2B,GAAO8E,EAAgB,GAAI,CAE5F,MAAMD,EAAwB,EAAQ,KAAK,OAAO,UAAU,sBAEtDjiF,EAAoB,EAAQ3pH,EAAQ,IAAIwnB,EAAkB,mBAAmB,iBAAiB,EAChG8Q,EAAU,MAAM,WAAa,gBAAkBqxF,IAC/CrxF,EAAU,MAAQ,KAAK,mBAE3B,IAAIgvC,EACJ,GAAI,KAAK,OAAO,WAEZA,EAAc,MAAM,KAAK,OAAO,WAAWqkI,GAAiB,iBAAiBrzK,EAAU,QAASszK,CAAqB,EAAGD,GAAiB,iBAAiBrzK,EAAU,UAAWszK,CAAqB,EAAGD,GAAiB,iBAAiBrzK,EAAU,OAAQszK,CAAqB,EAAGD,GAAiB,iBAAiBrzK,EAAU,MAAOszK,CAAqB,CAAC,MAE3V,CAID,IAAIlxN,EAAI,EACR4sF,EAAc,MAAM,IAAI,QAAQ,CAAC9Q,EAASC,IAAW,CACjD,MAAMtU,EAAU,KAAK,OAAO,MAAMwpJ,GAAiB,iBAAiBrzK,EAAU,QAASszK,CAAqB,EAAGD,GAAiB,iBAAiBrzK,EAAU,UAAWszK,CAAqB,EAAGD,GAAiB,iBAAiBrzK,EAAU,OAAQszK,CAAqB,EAAGD,GAAiB,iBAAiBrzK,EAAU,MAAOszK,CAAqB,CAAC,EACnVzpJ,EAAQ,GAAG,QAASsU,CAAM,EAC1BtU,EAAQ,GAAG,MAAO,IAAMqU,EAAQ97E,CAAC,CAAC,EAClCynE,EAAQ,GAAG,OAAQ,IAAMznE,GAAG,CAC5C,CAAa,CACb,CAEQ,MAAMoxN,EAA6B,CAACF,MAC5B7iK,EAAY,WAAWzQ,EAAWz6B,GAAQA,EAAK,WAAa,MAAM,GACtE8tM,GAAiB,sBAAsBrzK,CAAS,EACpDh3C,EAAG,YAAY,WAAY,CACvB,MAAO,IAAI41E,EAAiB,wBAC5B,YAAa,CACT,KAAM40I,GAA6B/E,EAA2B,WAAa,QAC3E,MAAOz/H,CACV,EAED,YAAa,EACb,GAAGukI,CACf,CAAS,CACT,CACI,WAAW5V,EAAY5qG,EAAU,CAC7B,MAAM,IAAI,MAAM,mDAAmD,CAC3E,CACI,aAAa4qG,EAAY5qG,EAAU,CAC/B,MAAM,IAAI,MAAM,qDAAqD,CAC7E,CACI,UAAU4qG,EAAY5qG,EAAU,CAC5B,MAAM,IAAI,MAAM,kDAAkD,CAC1E,CACI,UAAW,CACP,MAAO,oBAAoB,KAAK,OAAO,YAAY,IAAI,GAC/D,CACA,EACAogH,wBAAA,iBAA2BE,4OC5J3B,OAAO,eAAeI,8BAAS,aAAc,CAAE,MAAO,GAAM,EACvBA,8BAAA,8BAAG,OACxC,MAAMrE,EAA4ExmL,aAAA,EAC5EsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtEqmL,EAAkDpmL,wBAAA,EAIxD,IAAA2mL,EAAA,cAA4CtE,EAA4B,wBAAyB,CAC7F,YAAYhwM,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,MAAMxqB,EAASwqB,EAAO,wBACtB,OAAIxqB,EAAO,OAAS,QAAaA,EAAO,OAAS,WAClCquB,EAAO,UAAU,GAAG,KAAK,IAAI,+EAA+E,EAEvH,OAAOruB,EAAO,OAAU,UAAY,EAAE,UAAWA,EAAO,UAC7CquB,EAAO,UAAU,GAAG,KAAK,IAAI,0CAA0C,KAE3EA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EACtF,MAAO,CACH,YAAa,CACT,OAAQ,IAAIikL,EAAmB,iBAAiB5pL,EAAO,wBAAwB,MAAOqK,EAAa,MAAM+wJ,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bp7J,EAAO,QAASqK,CAAW,CAAC,EACxN,QAASrK,EAAO,wBAAwB,SAAW,IAAI6D,EAAO,aACjE,CACJ,CACT,CACA,EACAqmL,qCAAA,8BAAwCE,8MClCxC,OAAO,eAAe,qBAAS,aAAc,CAAE,MAAO,GAAM,8HCA5D,IAAIrnL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qCAA0C,EAAE+D,CAAO,EAChED,EAAaE,4BAAiC,EAAED,CAAO,EACvDD,EAAaG,wBAA6B,EAAEF,CAAO,oPCjBnD,OAAO,eAAeuF,YAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,YAAA,UAAG,OAIpB,MAAMC,CAAU,CACZ,YAAY90B,EAAO,CACf,KAAK,SAAW,YAChB,KAAK,MAAQA,CACrB,CACI,OAAO6jB,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,aAAeA,EAAM,QAAU,KAAK,KACjF,CACA,CACAgR,mBAAA,UAAoBC,+LCdpB,OAAO,eAAeC,eAAS,aAAc,CAAE,MAAO,GAAM,EACxCA,eAAA,aAAG,OAKvB,MAAMC,CAAa,CACf,aAAc,CACV,KAAK,SAAW,eAChB,KAAK,MAAQ,EAErB,CACI,OAAOnR,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,cAC7C,CACA,CACAkR,sBAAA,aAAuBC,EACvBA,EAAa,SAAW,IAAIA,4KCjB5B,OAAO,eAAeC,YAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,YAAA,UAAG,OAIpB,MAAMC,CAAU,CACZ,YAAYl1B,EAAO,CACf,KAAK,SAAW,YAChB,KAAK,MAAQA,CACrB,CACI,OAAO6jB,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,aAAeA,EAAM,QAAU,KAAK,KACjF,CACA,CACAoR,mBAAA,UAAoBC,mICdpB,OAAO,eAAeC,UAAS,aAAc,CAAE,MAAO,GAAM,EAC7CA,UAAA,QAAG,OAClB,MAAMF,EAAc1J,mBAAsB,EAM1C,MAAM6J,CAAQ,CACV,YAAYp1B,EAAOq1B,EAAoB,CACnC,KAAK,SAAW,UAChB,KAAK,MAAQr1B,EACT,OAAOq1B,GAAuB,UAC9B,KAAK,SAAWA,EAChB,KAAK,SAAWD,EAAQ,oBACxB,KAAK,UAAY,IAEZC,EACD,aAAcA,GACd,KAAK,SAAW,GAChB,KAAK,SAAWA,EAChB,KAAK,UAAY,KAGjB,KAAK,SAAWA,EAAmB,SACnC,KAAK,SAAWA,EAAmB,UAC/BD,EAAQ,gCACRA,EAAQ,oBACZ,KAAK,UAAYC,EAAmB,WAAa,KAIrD,KAAK,SAAW,GAChB,KAAK,SAAWD,EAAQ,WACxB,KAAK,UAAY,GAE7B,CACI,OAAOvR,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,WAAaA,EAAM,QAAU,KAAK,OACnEA,EAAM,WAAa,KAAK,WACtBA,EAAM,YAAc,KAAK,WAAe,CAACA,EAAM,WAAa,KAAK,YAAc,KACjF,KAAK,SAAS,OAAOA,EAAM,QAAQ,CAC/C,CACA,CACAsR,iBAAA,QAAkBC,EAClBA,EAAQ,oBAAsB,IAAIH,EAAY,UAAU,uDAAuD,EAC/GG,EAAQ,gCAAkC,IAAIH,EAAY,UAAU,0DAA0D,EAC9HG,EAAQ,WAAa,IAAIH,EAAY,UAAU,yCAAyC,4HC/CxF,OAAO,eAAeK,OAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,OAAA,KAAG,OAKf,MAAMC,CAAK,CACP,YAAY1jB,EAASyF,EAAWlC,EAAQogB,EAAO,CAC3C,KAAK,SAAW,OAChB,KAAK,MAAQ,GACb,KAAK,QAAU3jB,EACf,KAAK,UAAYyF,EACjB,KAAK,OAASlC,EACd,KAAK,MAAQogB,CACrB,CACI,OAAO3R,EAAO,CAEV,MAAO,CAAC,CAACA,IAAUA,EAAM,WAAa,QAAU,CAACA,EAAM,WACnD,KAAK,QAAQ,OAAOA,EAAM,OAAO,GACjC,KAAK,UAAU,OAAOA,EAAM,SAAS,GACrC,KAAK,OAAO,OAAOA,EAAM,MAAM,GAC/B,KAAK,MAAM,OAAOA,EAAM,KAAK,CACzC,CACA,CACAyR,cAAA,KAAeC,iJCxBf,OAAO,eAAeE,WAAS,aAAc,CAAE,MAAO,GAAM,EAC5CA,WAAA,SAAG,OAInB,MAAMC,CAAS,CACX,YAAY11B,EAAO,CACf,KAAK,SAAW,WAChB,KAAK,MAAQA,CACrB,CACI,OAAO6jB,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,YAAcA,EAAM,QAAU,KAAK,KAChF,CACA,CACA4R,kBAAA,SAAmBC,sJCdnB,OAAO,eAAeC,cAAS,aAAc,CAAE,MAAO,GAAM,EACzCA,cAAA,YAAG,OACtB,MAAMd,EAActJ,mBAAsB,EACpCwJ,EAAiBxF,sBAAyB,EAC1C4F,EAAY3F,iBAAoB,EAChCyF,EAAcxF,mBAAsB,EACpC6F,EAAS5F,cAAiB,EAC1B+F,EAAa9F,kBAAqB,EACxC,IAAIiG,EAAqB,EAIzB,MAAMC,CAAY,CACd,YAAY/0B,EAAS,CACjB,KAAK,iBAAmB,EACxBA,EAAUA,GAAW,CAAE,EACvB,KAAK,gBAAkBA,EAAQ,iBAAmB,MAAM80B,GAAoB,GACpF,CAMI,UAAU51B,EAAO,CACb,OAAO,IAAIi1B,EAAY,UAAUj1B,CAAK,CAC9C,CAQI,UAAUA,EAAO,CACb,OAAO,IAAI60B,EAAY,UAAU70B,GAAS,GAAG,KAAK,eAAe,GAAG,KAAK,kBAAkB,EAAE,CACrG,CAcI,QAAQA,EAAOq1B,EAAoB,CAC/B,OAAO,IAAIF,EAAU,QAAQn1B,EAAOq1B,CAAkB,CAC9D,CAOI,SAASr1B,EAAO,CACZ,OAAO,IAAIy1B,EAAW,SAASz1B,CAAK,CAC5C,CAII,cAAe,CACX,OAAO+0B,EAAe,aAAa,QAC3C,CASI,KAAKljB,EAASyF,EAAWlC,EAAQogB,EAAO,CACpC,OAAO,IAAIF,EAAO,KAAKzjB,EAASyF,EAAWlC,EAAQogB,GAAS,KAAK,cAAc,CACvF,CAMI,SAASt1B,EAAU,CAGf,OAAQA,EAAS,SAAQ,CACrB,IAAK,YACD,OAAO,KAAK,UAAUA,EAAS,KAAK,EACxC,IAAK,YACD,OAAO,KAAK,UAAUA,EAAS,KAAK,EACxC,IAAK,UACD,OAAIA,EAAS,SACF,KAAK,QAAQA,EAAS,MAAOA,EAAS,QAAQ,EAEpDA,EAAS,SAAS,OAAOi1B,EAAU,QAAQ,UAAU,EAGnD,KAAK,QAAQj1B,EAAS,KAAK,EAFvB,KAAK,QAAQA,EAAS,MAAO,KAAK,SAASA,EAAS,QAAQ,CAAC,EAG5E,IAAK,WACD,OAAO,KAAK,SAASA,EAAS,KAAK,EACvC,IAAK,eACD,OAAO,KAAK,aAAc,EAC9B,IAAK,OACD,OAAO,KAAK,KAAK,KAAK,SAASA,EAAS,OAAO,EAAG,KAAK,SAASA,EAAS,SAAS,EAAG,KAAK,SAASA,EAAS,MAAM,EAAG,KAAK,SAASA,EAAS,KAAK,CAAC,CAClK,CACA,CAMI,SAASA,EAAU,CACf,OAAO,KAAK,SAASA,CAAQ,CACrC,CAII,uBAAwB,CACpB,KAAK,iBAAmB,CAChC,CACA,CACAy1B,qBAAA,YAAsBE,kKC1HtB,IAAI5G,EAAmBC,kBAAQA,iBAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,kBAAQA,iBAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mBAA0B,EAAE+D,CAAO,EAChDD,EAAaE,qBAA4B,EAAED,CAAO,EAClDD,EAAaG,sBAA6B,EAAEF,CAAO,EACnDD,EAAaI,iBAAwB,EAAEH,CAAO,EAC9CD,EAAaK,mBAA0B,EAAEJ,CAAO,EAChDD,EAAaM,cAAqB,EAAEL,CAAO,EAC3CD,EAAaO,kBAAyB,EAAEN,CAAO,qNCrB/C,OAAO,eAAeigB,eAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,eAAA,kBAA4BA,eAAA,gBAA0B,OACtDA,eAAA,SAAmBE,EACnBF,eAAA,eAAyBK,EACzBL,eAAA,cAAwBO,EACxBP,eAAA,kBAA4BQ,EAC5BR,eAAA,aAAuBa,EACvBb,eAAA,mBAA6Bc,EAC7Bd,eAAA,YAAsBe,EACtBf,eAAA,kBAA4BgB,EAC5BhB,eAAA,oBAA8BiB,EAC9BjB,eAAA,0BAAoCmB,EACpCnB,eAAA,SAAmBwB,EACnBxB,eAAA,eAAyByB,EACzBzB,eAAA,YAAsB0B,EACtB1B,eAAA,kBAA4B4B,EAC5B5B,eAAA,WAAqB6B,EACrB7B,eAAA,iBAA2B+B,EAC3B/B,eAAA,UAAoBgC,EACpBhC,eAAA,gBAA0BiC,EAC1BjC,eAAA,mBAA6BkC,EAC7BlC,eAAA,UAAoBmC,EACpBnC,eAAA,aAAuBuC,EACvBvC,eAAA,qBAA+BsC,EAC/BtC,eAAA,qBAA+BwC,EAC/B,MAAMhc,EAAqBxK,wBAA2B,EAChDikB,EAAK,IAAIzZ,EAAmB,YAKXwZ,eAAA,gBAAG,CAAC,UAAW,YAAa,SAAU,OAAO,EAKpEA,eAAA,kBAA4B,CAAC,UAAW,YAAa,QAAQ,EAS7D,SAASE,EAASC,EAAMC,EAAoB,CACxC,OAAIA,GAAsBD,EAAK,MAAM,WAAa,eACvC,CAACA,EAAK,QAASA,EAAK,UAAWA,EAAK,MAAM,EAE9C,CAACA,EAAK,QAASA,EAAK,UAAWA,EAAK,OAAQA,EAAK,KAAK,CACjE,CASA,SAASE,EAAeF,EAAMC,EAAoB,CAC9C,MAAMnZ,EAAQ,CAAE,EAChB,UAAWtuB,KAAQunC,EAASC,EAAMC,CAAkB,EAC5CznC,EAAK,WAAa,OAClB0nC,EAAe1nC,EAAMynC,CAAkB,EAAE,QAAQE,GAAWrZ,EAAM,KAAKqZ,CAAO,CAAC,EAG/ErZ,EAAM,KAAKtuB,CAAI,EAGvB,OAAOsuB,CACX,CAOA,SAASsZ,EAAcJ,EAAM,CACzB,MAAO,CACH,CAAE,IAAK,UAAW,MAAOA,EAAK,OAAS,EACvC,CAAE,IAAK,YAAa,MAAOA,EAAK,SAAW,EAC3C,CAAE,IAAK,SAAU,MAAOA,EAAK,MAAQ,EACrC,CAAE,IAAK,QAAS,MAAOA,EAAK,KAAO,CACtC,CACL,CAWA,SAASK,EAAkBC,EAAYC,EAAW1Z,EAAa,CAC3D,MAAM2Z,EAAW,CAAE,EACnB,OAAAF,EAAW,QAASG,GAAcD,EAASC,EAAU,GAAG,EAAIA,EAAU,KAAK,EACvEF,IACAC,EAAS,QAAUA,EAAS,SAAWD,EAAU,SAAS,EAC1DC,EAAS,UAAYA,EAAS,WAAaD,EAAU,WAAW,EAChEC,EAAS,OAASA,EAAS,QAAUD,EAAU,QAAQ,EACvDC,EAAS,MAAQA,EAAS,OAASD,EAAU,OAAO,IAEhD1Z,GAAeiZ,GAAI,KAAKU,EAAS,QAASA,EAAS,UAAWA,EAAS,OAAQA,EAAS,KAAK,CACzG,CAMA,SAASE,EAAaV,EAAMjjC,EAAI,CAC5BA,EAAGijC,EAAK,QAAS,SAAS,EAC1BjjC,EAAGijC,EAAK,UAAW,WAAW,EAC9BjjC,EAAGijC,EAAK,OAAQ,QAAQ,EACxBjjC,EAAGijC,EAAK,MAAO,OAAO,CAC1B,CAOA,SAASW,EAAmBX,EAAMjjC,EAAI4I,EAAO,CAAA,EAAI,CACzCq6B,EAAK,QAAQ,WAAa,OAC1BW,EAAmBX,EAAK,QAASjjC,EAAI,CAAC,GAAG4I,EAAM,SAAS,CAAC,EAGzD5I,EAAGijC,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,EAErCq6B,EAAK,UAAU,WAAa,OAC5BW,EAAmBX,EAAK,UAAWjjC,EAAI,CAAC,GAAG4I,EAAM,WAAW,CAAC,EAG7D5I,EAAGijC,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,EAEzCq6B,EAAK,OAAO,WAAa,OACzBW,EAAmBX,EAAK,OAAQjjC,EAAI,CAAC,GAAG4I,EAAM,QAAQ,CAAC,EAGvD5I,EAAGijC,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,EAEnCq6B,EAAK,MAAM,WAAa,OACxBW,EAAmBX,EAAK,MAAOjjC,EAAI,CAAC,GAAG4I,EAAM,OAAO,CAAC,EAGrD5I,EAAGijC,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,CAEzC,CAOA,SAASi7B,EAAYZ,EAAM1qB,EAAQ,CAC/B,MAAMwR,EAAQ,CAAE,EAChB,OAAIxR,EAAO0qB,EAAK,QAAS,SAAS,GAC9BlZ,EAAM,KAAKkZ,EAAK,OAAO,EAEvB1qB,EAAO0qB,EAAK,UAAW,WAAW,GAClClZ,EAAM,KAAKkZ,EAAK,SAAS,EAEzB1qB,EAAO0qB,EAAK,OAAQ,QAAQ,GAC5BlZ,EAAM,KAAKkZ,EAAK,MAAM,EAEtB1qB,EAAO0qB,EAAK,MAAO,OAAO,GAC1BlZ,EAAM,KAAKkZ,EAAK,KAAK,EAElBlZ,CACX,CAQA,SAAS+Z,EAAkBb,EAAM1qB,EAAQ3P,EAAO,CAAA,EAAI,CAChD,IAAImhB,EAAQ,CAAE,EACd,OAAIkZ,EAAK,QAAQ,WAAa,OAC1BlZ,EAAQ,CAAC,GAAGA,EAAO,GAAG+Z,EAAkBb,EAAK,QAAS1qB,EAAQ,CAAC,GAAG3P,EAAM,SAAS,CAAC,CAAC,EAG/E2P,EAAO0qB,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,GACzCmhB,EAAM,KAAKkZ,EAAK,OAAO,EAG3BA,EAAK,UAAU,WAAa,OAC5BlZ,EAAQ,CAAC,GAAGA,EAAO,GAAG+Z,EAAkBb,EAAK,UAAW1qB,EAAQ,CAAC,GAAG3P,EAAM,WAAW,CAAC,CAAC,EAGnF2P,EAAO0qB,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,GAC7CmhB,EAAM,KAAKkZ,EAAK,SAAS,EAG7BA,EAAK,OAAO,WAAa,OACzBlZ,EAAQ,CAAC,GAAGA,EAAO,GAAG+Z,EAAkBb,EAAK,OAAQ1qB,EAAQ,CAAC,GAAG3P,EAAM,QAAQ,CAAC,CAAC,EAG7E2P,EAAO0qB,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,GACvCmhB,EAAM,KAAKkZ,EAAK,MAAM,EAG1BA,EAAK,MAAM,WAAa,OACxBlZ,EAAQ,CAAC,GAAGA,EAAO,GAAG+Z,EAAkBb,EAAK,MAAO1qB,EAAQ,CAAC,GAAG3P,EAAM,OAAO,CAAC,CAAC,EAG3E2P,EAAO0qB,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,GACrCmhB,EAAM,KAAKkZ,EAAK,KAAK,EAGtBlZ,CACX,CAOA,SAASga,EAAoBd,EAAM1qB,EAAQ,CACvC,MAAMyrB,EAAQ,CAAE,EAChB,OAAIzrB,EAAO0qB,EAAK,QAAS,SAAS,GAC9Be,EAAM,KAAK,SAAS,EAEpBzrB,EAAO0qB,EAAK,UAAW,WAAW,GAClCe,EAAM,KAAK,WAAW,EAEtBzrB,EAAO0qB,EAAK,OAAQ,QAAQ,GAC5Be,EAAM,KAAK,QAAQ,EAEnBzrB,EAAO0qB,EAAK,MAAO,OAAO,GAC1Be,EAAM,KAAK,OAAO,EAEfA,CACX,CAQA,SAASC,EAA0BhB,EAAM1qB,EAAQ3P,EAAO,CAAA,EAAI,CACxD,IAAIo7B,EAAQ,CAAE,EACd,MAAME,EAAQ,CAAC,GAAGt7B,EAAM,SAAS,EAC7Bq6B,EAAK,QAAQ,WAAa,OAC1Be,EAAQ,CAAC,GAAGA,EAAO,GAAGC,EAA0BhB,EAAK,QAAS1qB,EAAQ2rB,CAAK,CAAC,EAGxE3rB,EAAO0qB,EAAK,QAASiB,CAAK,GAC1BF,EAAM,KAAKE,CAAK,EAGxB,MAAMC,EAAQ,CAAC,GAAGv7B,EAAM,WAAW,EAC/Bq6B,EAAK,UAAU,WAAa,OAC5Be,EAAQ,CAAC,GAAGA,EAAO,GAAGC,EAA0BhB,EAAK,UAAW1qB,EAAQ4rB,CAAK,CAAC,EAG1E5rB,EAAO0qB,EAAK,UAAWkB,CAAK,GAC5BH,EAAM,KAAKG,CAAK,EAGxB,MAAMC,EAAQ,CAAC,GAAGx7B,EAAM,QAAQ,EAC5Bq6B,EAAK,OAAO,WAAa,OACzBe,EAAQ,CAAC,GAAGA,EAAO,GAAGC,EAA0BhB,EAAK,OAAQ1qB,EAAQ6rB,CAAK,CAAC,EAGvE7rB,EAAO0qB,EAAK,OAAQmB,CAAK,GACzBJ,EAAM,KAAKI,CAAK,EAGxB,MAAMC,EAAQ,CAAC,GAAGz7B,EAAM,OAAO,EAC/B,OAAIq6B,EAAK,MAAM,WAAa,OACxBe,EAAQ,CAAC,GAAGA,EAAO,GAAGC,EAA0BhB,EAAK,MAAO1qB,EAAQ8rB,CAAK,CAAC,EAGtE9rB,EAAO0qB,EAAK,MAAOoB,CAAK,GACxBL,EAAM,KAAKK,CAAK,EAGjBL,CACX,CASA,SAASM,EAASrB,EAAM54B,EAAQyf,EAAa,CACzC,OAAQA,GAAeiZ,GAAI,KAAK14B,EAAO44B,EAAK,QAAS,SAAS,EAAG54B,EAAO44B,EAAK,UAAW,WAAW,EAAG54B,EAAO44B,EAAK,OAAQ,QAAQ,EAAG54B,EAAO44B,EAAK,MAAO,OAAO,CAAC,CACpK,CAUA,SAASsB,EAAetB,EAAM54B,EAAQyf,EAAalhB,EAAO,CAAA,EAAI,CAC1D,OAAQkhB,GAAeiZ,GAAI,KAAKE,EAAK,QAAQ,WAAa,OACtDsB,EAAetB,EAAK,QAAS54B,EAAQyf,EAAa,CAAC,GAAGlhB,EAAM,SAAS,CAAC,EACtEyB,EAAO44B,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,EAAGq6B,EAAK,UAAU,WAAa,OACxEsB,EAAetB,EAAK,UAAW54B,EAAQyf,EAAa,CAAC,GAAGlhB,EAAM,WAAW,CAAC,EAC1EyB,EAAO44B,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,EAAGq6B,EAAK,OAAO,WAAa,OACzEsB,EAAetB,EAAK,OAAQ54B,EAAQyf,EAAa,CAAC,GAAGlhB,EAAM,QAAQ,CAAC,EACpEyB,EAAO44B,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,EAAGq6B,EAAK,MAAM,WAAa,OAClEsB,EAAetB,EAAK,MAAO54B,EAAQyf,EAAa,CAAC,GAAGlhB,EAAM,OAAO,CAAC,EAClEyB,EAAO44B,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,CAAC,CAC9C,CAQA,SAAS47B,EAAYvB,EAAMjqB,EAASyrB,EAAc,CAC9C,IAAIlxC,EAAQkxC,EACZ,OAAAlxC,EAAQylB,EAAQzlB,EAAO0vC,EAAK,QAAS,SAAS,EAC9C1vC,EAAQylB,EAAQzlB,EAAO0vC,EAAK,UAAW,WAAW,EAClD1vC,EAAQylB,EAAQzlB,EAAO0vC,EAAK,OAAQ,QAAQ,EACrCjqB,EAAQzlB,EAAO0vC,EAAK,MAAO,OAAO,CAC7C,CASA,SAASyB,EAAkBzB,EAAMjqB,EAASyrB,EAAc77B,EAAO,CAAA,EAAI,CAC/D,IAAIrV,EAAQkxC,EACZ,OAAIxB,EAAK,QAAQ,WAAa,OAC1B1vC,EAAQmxC,EAAkBzB,EAAK,QAASjqB,EAASzlB,EAAO,CAAC,GAAGqV,EAAM,SAAS,CAAC,EAG5ErV,EAAQylB,EAAQzlB,EAAO0vC,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,EAEzDq6B,EAAK,UAAU,WAAa,OAC5B1vC,EAAQmxC,EAAkBzB,EAAK,UAAWjqB,EAASzlB,EAAO,CAAC,GAAGqV,EAAM,WAAW,CAAC,EAGhFrV,EAAQylB,EAAQzlB,EAAO0vC,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,EAE7Dq6B,EAAK,OAAO,WAAa,OACzB1vC,EAAQmxC,EAAkBzB,EAAK,OAAQjqB,EAASzlB,EAAO,CAAC,GAAGqV,EAAM,QAAQ,CAAC,EAG1ErV,EAAQylB,EAAQzlB,EAAO0vC,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,EAEvDq6B,EAAK,MAAM,WAAa,OACxB1vC,EAAQmxC,EAAkBzB,EAAK,MAAOjqB,EAASzlB,EAAO,CAAC,GAAGqV,EAAM,OAAO,CAAC,EAGxErV,EAAQylB,EAAQzlB,EAAO0vC,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,EAElDrV,CACX,CAOA,SAASoxC,EAAW1B,EAAM2B,EAAS,CAC/B,OAAOA,EAAQ3B,EAAK,QAAS,SAAS,GAC/B2B,EAAQ3B,EAAK,UAAW,WAAW,GACnC2B,EAAQ3B,EAAK,OAAQ,QAAQ,GAC7B2B,EAAQ3B,EAAK,MAAO,OAAO,CACtC,CAQA,SAAS4B,EAAiB5B,EAAM2B,EAASh8B,EAAO,CAAA,EAAI,CAChD,OAAQq6B,EAAK,QAAQ,WAAa,OAC9B4B,EAAiB5B,EAAK,QAAS2B,EAAS,CAAC,GAAGh8B,EAAM,SAAS,CAAC,EAC5Dg8B,EAAQ3B,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,KACtCq6B,EAAK,UAAU,WAAa,OAC5B4B,EAAiB5B,EAAK,UAAW2B,EAAS,CAAC,GAAGh8B,EAAM,WAAW,CAAC,EAChEg8B,EAAQ3B,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,KAC9Cq6B,EAAK,OAAO,WAAa,OACzB4B,EAAiB5B,EAAK,OAAQ2B,EAAS,CAAC,GAAGh8B,EAAM,QAAQ,CAAC,EAC1Dg8B,EAAQ3B,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,KACxCq6B,EAAK,MAAM,WAAa,OACxB4B,EAAiB5B,EAAK,MAAO2B,EAAS,CAAC,GAAGh8B,EAAM,OAAO,CAAC,EACxDg8B,EAAQ3B,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,EAClD,CAOA,SAASk8B,EAAU7B,EAAM2B,EAAS,CAC9B,OAAOA,EAAQ3B,EAAK,QAAS,SAAS,GAC/B2B,EAAQ3B,EAAK,UAAW,WAAW,GACnC2B,EAAQ3B,EAAK,OAAQ,QAAQ,GAC7B2B,EAAQ3B,EAAK,MAAO,OAAO,CACtC,CAQA,SAAS8B,EAAgB9B,EAAM2B,EAASh8B,EAAO,CAAA,EAAI,CAC/C,OAAQq6B,EAAK,QAAQ,WAAa,OAC9B8B,EAAgB9B,EAAK,QAAS2B,EAAS,CAAC,GAAGh8B,EAAM,SAAS,CAAC,EAC3Dg8B,EAAQ3B,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,KACtCq6B,EAAK,UAAU,WAAa,OAC5B8B,EAAgB9B,EAAK,UAAW2B,EAAS,CAAC,GAAGh8B,EAAM,WAAW,CAAC,EAC/Dg8B,EAAQ3B,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,KAC9Cq6B,EAAK,OAAO,WAAa,OACzB8B,EAAgB9B,EAAK,OAAQ2B,EAAS,CAAC,GAAGh8B,EAAM,QAAQ,CAAC,EACzDg8B,EAAQ3B,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,KACxCq6B,EAAK,MAAM,WAAa,OACxB8B,EAAgB9B,EAAK,MAAO2B,EAAS,CAAC,GAAGh8B,EAAM,OAAO,CAAC,EACvDg8B,EAAQ3B,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,EAClD,CAMA,SAASo8B,EAAmBvpC,EAAMmN,EAAM,CACpC,GAAIA,EAAK,SAAW,EAChB,OAAOnN,EAEX,GAAIA,EAAK,WAAa,OAClB,OAAOupC,EAAmBvpC,EAAKmN,EAAK,CAAC,CAAC,EAAGA,EAAK,MAAM,CAAC,CAAC,EAE1D,MAAM,IAAI,MAAM,gBAAgBA,EAAK,CAAC,CAAC,sBAAsBnN,EAAK,QAAQ,EAAE,CAChF,CAaA,SAASwpC,EAAUC,EAAOC,EAAO,CAC7B,MAAO,CAACA,GACDA,EAAM,WAAa,YAClBA,EAAM,WAAa,QAAUD,EAAM,WAAa,QAAUE,EAAqBF,EAAOC,CAAK,GAC5FA,EAAM,OAAOD,CAAK,CAC7B,CAiBA,SAASG,EAAapC,EAAM79B,EAASyF,EAAWlC,EAAQogB,EAAO,CAC3D,OAAOkc,EAAUhC,EAAK,QAAS79B,CAAO,GAC/B6/B,EAAUhC,EAAK,UAAWp4B,CAAS,GACnCo6B,EAAUhC,EAAK,OAAQt6B,CAAM,GAC7Bs8B,EAAUhC,EAAK,MAAOla,CAAK,CACtC,CAYA,SAASqc,EAAqBnC,EAAMnF,EAAS,CACzC,OAAOuH,EAAapC,EAAMnF,EAAQ,QAASA,EAAQ,UAAWA,EAAQ,OAAQA,EAAQ,KAAK,CAC/F,CACA,SAASwH,EAAqBrC,EAAMnF,EAASyH,EAAM,CAAA,EAAI,CACnD,MAAMx1B,EAAM,CAAE,EACd,SAASna,EAAM4vC,EAAUC,EAAO,CAC5B,OAAOd,EAAWa,EAAU,CAACE,EAAI9xC,KAAQ,CACrC,IAAIpC,GAAIm0C,GACR,MAAMC,GAAKH,EAAM7xC,EAAG,EACpB,OAAQ8xC,EAAG,SAAQ,CACf,IAAK,WACD,OAAQH,EAAI,gBAAkBK,GAAG,WAAa,cACrCD,IAAMn0C,GAAKue,EAAI21B,EAAG,KAAK,KAAO,MAAQl0C,KAAO,OAAS,OAASA,GAAG,OAAOo0C,EAAE,KAAO,MAAQD,KAAO,OAASA,IAAM51B,EAAI21B,EAAG,KAAK,EAAIE,GAAI,KACjJ,IAAK,OACD,OAAOA,GAAG,WAAa,QAAUhwC,EAAM8vC,EAAIE,EAAE,EACjD,QACI,OAAOF,EAAG,OAAOE,EAAE,CACvC,CACA,CAAS,CACT,CACI,OAAOhwC,EAAMkoC,EAASmF,CAAI,IAAMsC,EAAI,eAAiBx1B,EAAM,GAC/D,4LCpgBA,OAAO,eAAesZ,WAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,WAAA,aAAuBG,EACvBH,WAAA,gBAA0BK,EAC1BL,WAAA,eAAyBM,EACzBN,WAAA,mBAA6BO,EAC7BP,WAAA,oBAA8BqrK,EAC9BrrK,WAAA,aAAuBQ,EACvBR,WAAA,iBAA2BgB,EAC3BhB,WAAA,iBAA2BiB,EAC3B,MAAMhB,EAAqBxK,wBAA2B,EAChDyK,EAAU,IAAID,EAAmB,YAkBvC,SAASE,EAAa/tB,EAAM,CAExB,GAAKA,EAGL,OAAQA,EAAK,SAAQ,CACjB,IAAK,YAAa,OAAOA,EAAK,MAC9B,IAAK,YAAa,MAAQ,KAAOA,EAAK,MACtC,IAAK,UACD,MAAMguB,EAAehuB,EACrB,MAAQ,IAAMguB,EAAa,MAAQ,KAC9BA,EAAa,UACVA,EAAa,SAAS,QAAU,2CAChCA,EAAa,SAAS,QAAU,yDAChCA,EAAa,SAAS,QAAU,2DAChC,KAAOA,EAAa,SAAS,MAAQ,KACxCA,EAAa,SAAW,IAAMA,EAAa,SAAW,KACtDA,EAAa,UAAY,KAAOA,EAAa,UAAY,IAClE,IAAK,OAAQ,MAAO,KAAKD,EAAa/tB,EAAK,OAAO,CAAC,IAAI+tB,EAAa/tB,EAAK,SAAS,CAAC,IAAI+tB,EAAa/tB,EAAK,MAAM,CAAC,GAAGA,EAAK,MAAM,WAAa,eAAiB,GAAK,IAAM+tB,EAAa/tB,EAAK,KAAK,CAAC,KAC/L,IAAK,WAAY,MAAQ,IAAMA,EAAK,MACpC,IAAK,eAAgB,OAAOA,EAAK,KACzC,CACA,CAMA,SAASiuB,EAAgBD,EAAc,CACnC,MAAM7zB,EAAQ,YAAY,KAAK6zB,CAAY,EAC3C,GAAI,CAAC7zB,EACD,MAAM,IAAI,MAAM6zB,EAAe,mBAAmB,EAEtD,OAAO7zB,EAAM,CAAC,CAClB,CAMA,SAAS+zB,EAAeF,EAAc,CAClC,MAAM7zB,EAAQ,qCAAqC,KAAK6zB,CAAY,EACpE,GAAI,CAAC7zB,EACD,MAAM,IAAI,MAAM6zB,EAAe,mBAAmB,EAEtD,OAAO7zB,EAAM,CAAC,IAAMA,EAAM,CAAC,EACrB,wDAA0D,0CACpE,CAMA,SAASg0B,EAAmBH,EAAc,CACtC,MAAM7zB,EAAQ,mCAAmC,KAAK6zB,CAAY,EAClE,GAAI,CAAC7zB,EACD,MAAM,IAAI,MAAM6zB,EAAe,mBAAmB,EAEtD,GAAI7zB,EAAM,CAAC,EAAG,CACV,IAAI4pD,EAAM5pD,EAAM,CAAC,EAAE,YAAa,EAEhC,MAAM++L,EAAgBn1I,EAAI,QAAQ,IAAI,EACtC,OAAIm1I,GAAiB,IACjBn1I,EAAMA,EAAI,MAAM,EAAGm1I,CAAa,GAE7Bn1I,CACf,CACI,MAAO,EACX,CAMA,SAASk1I,EAAoBjrK,EAAc,CACvC,MAAMkrK,EAAgBlrK,EAAa,QAAQ,KAAMA,EAAa,YAAY,GAAG,CAAC,EAC9E,GAAIkrK,GAAiB,EAAG,CACpB,MAAMx4H,EAAY1yC,EAAa,MAAMkrK,EAAgB,EAAGlrK,EAAa,MAAM,EAC3E,GAAI0yC,IAAc,OAASA,IAAc,MACrC,OAAOA,EAEX,MAAM,IAAI,MAAM1yC,EAAe,0CAA0C,CACjF,CACI,MAAO,EACX,CAOA,SAASI,EAAat2B,EAAOu2B,EAAa,CAEtC,GADAA,EAAcA,GAAeP,EACzB,CAACh2B,GAAS,CAACA,EAAM,OACjB,OAAOu2B,EAAY,aAAc,EAErC,OAAQv2B,EAAM,CAAC,EAAC,CACZ,IAAK,IAAK,OAAOu2B,EAAY,UAAUv2B,EAAM,OAAO,CAAC,CAAC,EACtD,IAAK,IACD,GAAI,CAACu2B,EAAY,SACb,MAAM,IAAI,MAAM,sDAAsD,EAE1E,OAAOA,EAAY,SAASv2B,EAAM,OAAO,CAAC,CAAC,EAC/C,IAAK,IACD,MAAMsH,EAAW+uB,EAAmBr2B,CAAK,EACnC4oE,EAAYu4H,EAAoBnhM,CAAK,EACrCJ,EAAO22B,EAAY,UAAUH,EAAep2B,CAAK,CAAC,EACxD,OAAOu2B,EAAY,QAAQJ,EAAgBn2B,CAAK,EAAGsH,EAAW,CAAE,SAAAA,EAAU,UAAAshE,CAAW,EAAGhpE,CAAI,EAChG,IAAK,IACL,QACI,GAAII,EAAM,CAAC,IAAM,KAAOA,EAAM,OAAS,GAAKA,EAAM,CAAC,IAAM,KAAOA,EAAMA,EAAM,OAAS,CAAC,IAAM,KAAOA,EAAMA,EAAM,OAAS,CAAC,IAAM,IAAK,CAEhI,MAAMw2B,EAAQx2B,EAAM,MAAM,EAAG,EAAE,EAAE,KAAM,EACvC,IAAIy2B,EAAc,CAAE,EAChBC,EAAa,EACb1rB,EAAY,EACZ2rB,EAAU,GACd,QAAS5xC,EAAI,EAAGA,EAAIyxC,EAAM,OAAQzxC,IAAK,CACnC,MAAM6xC,EAAOJ,EAAMzxC,CAAC,EAGpB,GAFI6xC,IAAS,KACTF,IACAE,IAAS,IAAK,CACd,GAAIF,IAAe,EACf,MAAM,IAAI,MAAM,4CAA8C12B,CAAK,EAGnE02B,GAE5B,CACoB,GAAIE,IAAS,IAAK,CACd,IAAIC,EAAU,GACV1vC,EAAIpC,EACR,KAAOoC,KAAM,GAAKqvC,EAAMrvC,CAAC,IAAM,MAC3B0vC,EAAU,CAACA,EAEVA,IAEDF,EAAU,CAACA,EAEvC,CACoB,GAAIC,IAAS,KAAO,CAACD,GAAWD,IAAe,EAAG,CAE9C,IADAD,EAAY,KAAKD,EAAM,MAAMxrB,EAAWjmB,CAAC,CAAC,EACnCyxC,EAAMzxC,EAAI,CAAC,IAAM,KACpBA,GAAK,EAETimB,EAAYjmB,EAAI,CACxC,CACA,CACgB,GAAI2xC,IAAe,EACf,MAAM,IAAI,MAAM,4CAA8C12B,CAAK,EAIvE,GAFAy2B,EAAY,KAAKD,EAAM,MAAMxrB,EAAWwrB,EAAM,MAAM,CAAC,EAEjDC,EAAY,SAAW,GAAKA,EAAY,SAAW,EACnD,MAAM,IAAI,MAAM,4BAA8Bz2B,CAAK,EAEvD,OAAAy2B,EAAcA,EAAY,IAAIvuB,GAAQA,EAAK,WAAW,GAAG,GAAK,CAACA,EAAK,SAAS,GAAG,EAAIA,EAAK,MAAM,EAAG,EAAE,EAAIA,CAAI,EACrGquB,EAAY,KAAKD,EAAaG,EAAY,CAAC,CAAC,EAAGH,EAAaG,EAAY,CAAC,CAAC,EAAGH,EAAaG,EAAY,CAAC,CAAC,EAAGA,EAAY,CAAC,EAAIH,EAAaG,EAAY,CAAC,CAAC,EAAI,MAAS,CAC3L,CACY,OAAOF,EAAY,UAAUv2B,CAAK,CAC9C,CACA,CAOA,SAAS82B,EAAiBxvC,EAAG,CAEzB,MAAO,CACH,QAAS2uC,EAAa3uC,EAAE,OAAO,EAC/B,UAAW2uC,EAAa3uC,EAAE,SAAS,EACnC,OAAQ2uC,EAAa3uC,EAAE,MAAM,EAC7B,MAAO2uC,EAAa3uC,EAAE,KAAK,CAC9B,CAEL,CAQA,SAASyvC,EAAiBC,EAAYT,EAAa,CAC/C,OAAAA,EAAcA,GAAeP,EACtBO,EAAY,KAAKD,EAAaU,EAAW,QAAST,CAAW,EAAGD,EAAaU,EAAW,UAAWT,CAAW,EAAGD,EAAaU,EAAW,OAAQT,CAAW,EAAGD,EAAaU,EAAW,MAAOT,CAAW,CAAC,CACrN,iJCxNA,OAAO,eAAcjH,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAuB,aAAAA,EAAA,aAAuBA,mBAA2BA,EAA2B,iBAAAA,EAAA,gBAA0BA,iBAAyBA,EAA8B,oBAAAA,EAAA,mBAA6B,OAClN,MAAM2H,EAAa1L,kBAAyB,EAC5C,OAAO,eAAe+D,EAAS,qBAAsB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,kBAAqB,CAAA,CAAE,EACrI,OAAO,eAAe3H,EAAS,sBAAuB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,mBAAsB,CAAA,CAAE,EACvI,OAAO,eAAe3H,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,cAAiB,CAAA,CAAE,EAC7H,OAAO,eAAe3H,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,eAAkB,CAAA,CAAE,EAC/H,OAAO,eAAe3H,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,gBAAmB,CAAA,CAAE,EACjI,OAAO,eAAe3H,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,gBAAmB,CAAA,CAAE,EACjI,OAAO,eAAe3H,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,YAAe,CAAA,CAAE,EACzH,OAAO,eAAe3H,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,YAAe,CAAA,CAAE,uJCVzH,OAAO,eAAenB,WAAS,aAAc,CAAE,MAAO,GAAM,EAC1CA,WAAA,WAAG,OACrBA,WAAA,UAAoBwc,EACpBxc,WAAA,eAAyB0c,EACzB1c,WAAA,cAAwB4c,EACxB5c,WAAA,cAAwB6c,EACxB7c,WAAA,YAAsB8c,EACtB9c,WAAA,aAAuB+c,EACvB/c,WAAA,iBAA2Bgd,EAC3Bhd,WAAA,SAAmBid,EACnB,MAAM7E,EAAe3iB,mBAAqB,EAM1CuK,WAAA,WAAqB,CAAC,YAAa,YAAa,UAAW,WAAY,eAAgB,MAAM,EAS7F,SAASwc,EAAU9b,EAAO,CACtB,MAAMrgB,EAAO,CAAE,EACf,OAAOqgB,EAAM,OAAOtuB,GAAQ,CACxB,MAAMqqC,KAAiBrE,EAAa,cAAchmC,CAAI,EACtD,MAAO,EAAEqqC,KAAcp8B,KAAUA,EAAKo8B,CAAU,EAAI,GAC5D,CAAK,CACL,CAOA,SAASC,EAAehc,EAAOic,EAAU,CACrC,OAAOjc,EAAM,OAAQtuB,GAASA,EAAK,WAAauqC,CAAQ,CAC5D,CAMA,SAASC,EAAclc,EAAO,CAC1B,OAAOgc,EAAehc,EAAO,WAAW,CAC5C,CAMA,SAASmc,EAAcnc,EAAO,CAC1B,OAAOgc,EAAehc,EAAO,WAAW,CAC5C,CAMA,SAASoc,EAAYpc,EAAO,CACxB,OAAOgc,EAAehc,EAAO,SAAS,CAC1C,CAMA,SAASqc,EAAarc,EAAO,CACzB,OAAOgc,EAAehc,EAAO,UAAU,CAC3C,CAMA,SAASsc,EAAiBtc,EAAO,CAC7B,OAAOgc,EAAehc,EAAO,cAAc,CAC/C,CAMA,SAASuc,EAASvc,EAAO,CACrB,OAAOgc,EAAehc,EAAO,MAAM,CACvC,6ICxFA,IAAIvH,EAAmBC,YAAQA,WAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,YAAQA,WAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sBAA6B,EAAE+D,CAAO,EACnDD,EAAaE,kBAAyB,EAAED,CAAO,yTChB/C,OAAO,eAAeinL,oCAAS,aAAc,CAAE,MAAO,GAAM,EACjBA,oCAAA,oCAAG,OAC9C,MAAMxgL,EAAqBxK,wBAA2B,EAChD2iB,EAAe3e,mBAAqB,EAM1C,IAAAinL,EAAA,KAA0C,CACtC,YAAYjgL,EAAc,IAAIR,EAAmB,YAAe,CAC5D,KAAK,OAAS,EACd,KAAK,WAAa,CAAE,EACpB,KAAK,kBAAoB,CAAE,EAC3B,KAAK,SAAW,CAAE,cAAe,EAAO,EACxC,KAAK,YAAcQ,CAC3B,CACI,OAAOruB,EAAM,CACT,MAAM7H,KAAU6tC,EAAa,cAAchmC,CAAI,EAC/C,IAAIuuM,EAAU,KAAK,WAAWp2M,CAAG,EACjC,OAAIo2M,IAAY,SACZA,EAAU,KAAK,SACf,KAAK,WAAWp2M,CAAG,EAAIo2M,EACvB,KAAK,kBAAkBA,CAAO,EAAIvuM,GAE/BuuM,CACf,CACI,eAAevuM,EAAM,CACjB,MAAM7H,KAAU6tC,EAAa,cAAchmC,CAAI,EAC/C,OAAO,KAAK,WAAW7H,CAAG,CAClC,CACI,OAAOquF,EAAU,CACb,MAAMr4E,EAAS,KAAK,kBAAkBq4E,CAAQ,EAC9C,GAAIr4E,IAAW,OACX,MAAM,IAAI,MAAM,aAAaq4E,CAAQ,oCAAoC,EAE7E,OAAOr4E,CACf,CACI,CAAC,WAAY,CACT,UAAWhW,KAAO,OAAO,KAAK,KAAK,iBAAiB,EAChD,MAAM,OAAO,SAASA,EAAK,EAAE,CAEzC,CACI,kBAAkBq2M,EAAqB,CACnC,MAAM,IAAI,MAAM,oCAAoC,CAC5D,CACI,yBAAyBA,EAAqB,CAC1C,MAAM,IAAI,MAAM,2CAA2C,CACnE,CACA,EACAH,2CAAA,oCAA8CI,uOClD9C,OAAO,eAAcrnL,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAA,wBAAkC,OAClCA,EAAA,aAAuBsnL,EACvBtnL,EAAA,uBAAiCunL,EACjCvnL,EAAA,oBAA8BwnL,EAC9BxnL,EAAA,oBAA8BynL,EAC9BznL,EAAA,cAAwB0nL,EACxB1nL,EAAA,iBAA2B2nL,EAC3B3nL,EAAA,kBAA4B4nL,EAC5B,MAAM9jK,EAAc7nB,kBAAoB,EACxC+D,EAAkC,wBAAA,OAAO,YAAY8jB,EAAY,gBAAgB,IAAI,CAACpzC,EAAOK,IAAQ,CAACL,EAAOK,CAAG,CAAC,CAAC,EAMlH,SAASu2M,EAAaO,EAAiBC,EAAa,CAChD,GAAID,EAAgB,SAAW,GAAKC,EAAY,MAAMlvM,GAAQA,IAAS,MAAS,EAC5E,MAAO,GAGX,MAAMmvM,EAA4B,CAAE,EACpC,QAASC,EAAkB,EAAGA,EAAkBlkK,EAAY,gBAAgB,OAAQkkK,IAC5EF,EAAYE,CAAe,GAC3BD,EAA0B,KAAKjkK,EAAY,gBAAgBkkK,CAAe,CAAC,EASnF,OALsBH,EAAgB,IAAI,CAACI,EAAgB1vM,KAEhD,CAAE,MADKgvM,EAAuBU,EAAgBF,CAAyB,EAC9D,MAAAxvM,CAAO,EAC1B,EAEoB,KAAK,CAAC2vM,EAAYC,IAAgBA,EAAY,MAAQD,EAAW,KAAK,EAAE,CAAC,EAAE,KACpG,CAMA,SAASX,EAAuBU,EAAgBG,EAAuB,CACnE,OAAOH,EACF,IAAI,CAACnxJ,EAAOrhE,IAAM2yN,EAAsB,SAAStxJ,CAAK,EAAImxJ,EAAe,OAASxyN,EAAI,CAAC,EACvF,OAAO,CAACgxD,EAAK4hK,IAAQ5hK,EAAM4hK,EAAK,CAAC,CAC1C,CAMA,SAASb,EAAoBc,EAAuBR,EAAa,CAC7D,OAAOQ,EAAsB,IAAIC,GAAoB,CACjD,MAAMC,EAAwBxoL,EAAQ,wBAAwBuoL,CAAgB,EAC9E,OAAOT,EAAYU,CAAqB,CAChD,CAAK,CACL,CAQA,SAASf,EAAoBvgL,EAAOuhL,EAAY,CAC5C,MAAMC,EAAexhL,EAAM,IAAItuB,GAAQ,CACnC,GAAIA,EAAM,CACN,GAAIA,EAAK,WAAa,QAAU+uM,EAAiB/uM,CAAI,EACjD,OAEJ,MAAM+vM,EAAcF,EAAW,eAAe7vM,CAAI,EAClD,OAAI+vM,IAAgB,OACT,OAEJA,CACnB,CACQ,OAAO/vM,CACf,CAAK,EACD,GAAI,CAAA8vM,EAAa,SAAS,MAAM,EAGhC,OAAOA,CACX,CAYA,SAAShB,EAAcnlM,EAASyF,EAAWlC,EAAQogB,EAAO0iL,EAAgB,CACtE,IAAIC,EAA+B,GAiBnC,MAAO,CAhBkB,CAACtmM,GAAW,OAAWyF,GAAa,OAAWlC,GAAU,OAAWogB,GAAS,MAAS,EAC1G,IAAIttB,GAAQ,CACb,GAAIA,EAAM,CACN,GAAIA,EAAK,WAAa,WAClB,OAEJ,GAAIA,EAAK,WAAa,OAAQ,CAC1B,GAAIgwM,EACA,OAAOhwM,EAEXiwM,EAA+B,GAC/B,MAChB,CACA,CACQ,OAAOjwM,CACf,CAAK,EACyBiwM,CAA4B,CAC1D,CAKA,SAASlB,EAAiBmB,EAAa,CACnC,UAAWC,KAAajlK,EAAY,gBAAiB,CACjD,MAAMvD,EAAUuoK,EAAYC,CAAS,EACrC,GAAIxoK,EAAQ,WAAa,YAAeA,EAAQ,WAAa,QAAUonK,EAAiBpnK,CAAO,EAC3F,MAAO,EAEnB,CACI,MAAO,EACX,CAKA,SAASqnK,EAAkB1gL,EAAO,CAC9B,OAAOA,EAAM,IAAItuB,GAAQA,GAAM,WAAa,QAAU+uM,EAAiB/uM,CAAI,CAAC,CAChF,iNCpIA,OAAO,eAAeowM,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMC,EAAehtL,kBAAwB,EAI7C,IAAAitL,EAAA,KAA6B,CACzB,YAAY13M,EAAS,CACjB,KAAK,SAAW,CACZ,sBAAuB,EAC1B,EACD,KAAK,WAAaA,EAAQ,WAC1B,KAAK,UAAY,IAAI,GAC7B,CACI,IAAI01B,EAAOx2B,EAAO,CACd,MAAMy4M,EAAO,KAAK,UAClB,IAAIC,EAAOD,EAAK,IAAIjiL,EAAM,CAAC,CAAC,EACvBkiL,IACDA,EAAO,IAAI,IACXD,EAAK,IAAIjiL,EAAM,CAAC,EAAGkiL,CAAI,GAE3B,IAAIC,EAAOD,EAAK,IAAIliL,EAAM,CAAC,CAAC,EACvBmiL,IACDA,EAAO,IAAI,IACXD,EAAK,IAAIliL,EAAM,CAAC,EAAGmiL,CAAI,GAE3B,IAAIC,EAAOD,EAAK,IAAIniL,EAAM,CAAC,CAAC,EACvBoiL,IACDA,EAAO,IAAI,IACXD,EAAK,IAAIniL,EAAM,CAAC,EAAGoiL,CAAI,GAE3B,MAAMC,EAAYD,EAAK,IAAIpiL,EAAM,CAAC,CAAC,EACnC,OAAKqiL,GACDD,EAAK,IAAIpiL,EAAM,CAAC,EAAGx2B,CAAK,EAErB,CAAC64M,CAChB,CACI,OAAOriL,EAAO,CACV,MAAMiiL,EAAO,KAAK,UACZC,EAAOD,EAAK,IAAIjiL,EAAM,CAAC,CAAC,EAC9B,GAAI,CAACkiL,EACD,MAAO,GAEX,MAAMC,EAAOD,EAAK,IAAIliL,EAAM,CAAC,CAAC,EAC9B,GAAI,CAACmiL,EACD,MAAO,GAEX,MAAMC,EAAOD,EAAK,IAAIniL,EAAM,CAAC,CAAC,EAC9B,GAAI,CAACoiL,EACD,MAAO,GAEX,MAAM3sJ,EAAM2sJ,EAAK,OAAOpiL,EAAM,CAAC,CAAC,EAEhC,OAAIy1B,GAAO2sJ,EAAK,OAAS,IACrBD,EAAK,OAAOniL,EAAM,CAAC,CAAC,EAChBmiL,EAAK,OAAS,IACdD,EAAK,OAAOliL,EAAM,CAAC,CAAC,EAChBkiL,EAAK,OAAS,GACdD,EAAK,OAAOjiL,EAAM,CAAC,CAAC,IAIzBy1B,CACf,CACI,IAAI5rD,EAAK,CACL,MAAMo2M,KAAc8B,EAAa,qBAAqBl4M,EAAK,KAAK,UAAU,EAE1E,GAAI,GAACo2M,GAAWA,EAAQ,SAAS,MAAS,GAG1C,OAAO,KAAK,WAAWA,CAAO,CACtC,CACI,WAAWz6E,EAAK,CACZ,MAAM08E,EAAO,KAAK,UAAU,IAAI18E,EAAI,CAAC,CAAC,EACtC,GAAI,CAAC08E,EACD,OAEJ,MAAMC,EAAOD,EAAK,IAAI18E,EAAI,CAAC,CAAC,EAC5B,GAAI,CAAC28E,EACD,OAEJ,MAAMC,EAAOD,EAAK,IAAI38E,EAAI,CAAC,CAAC,EAC5B,GAAK48E,EAGL,OAAOA,EAAK,IAAI58E,EAAI,CAAC,CAAC,CAC9B,CACI,CAAC,KAAKxlG,EAAO,CACT,MAAMwlG,KAAUu8E,EAAa,qBAAqB/hL,EAAO,KAAK,UAAU,EACxE,GAAI,CAACwlG,EACD,OAEJ,KAAM,CAAC88E,EAAKC,EAAKC,EAAKC,CAAG,EAAIj9E,EACvB,CAACk9E,EAAOlsK,EAAOC,EAAOksK,CAAK,EAAI3iL,EACrC,IAAI4iL,EACAC,EACAC,EACAC,EACAb,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,UACZe,EAAWV,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK,IAAI1zF,CAAI,EACpBq0F,EAAeF,GAAS,KAAK,WAAW,OAAOn0F,CAAI,EACnD,MAAM00F,EAAWV,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK,IAAI5zF,CAAI,EACpBu0F,EAAersK,GAAS,KAAK,WAAW,OAAO83E,CAAI,EACnD,MAAM40F,EAAWV,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAWgB,KAAQD,EAAU,CACzBd,EAAOD,EAAK,IAAIgB,CAAI,EACpBL,EAAersK,GAAS,KAAK,WAAW,OAAO0sK,CAAI,EACnD,MAAMC,EAAWX,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAWiB,KAAQD,EACfL,EAAeJ,GAAS,KAAK,WAAW,OAAOU,CAAI,EACnD,KAAM,CAACT,EAAcC,EAAcC,EAAcC,CAAY,CAErF,CACA,CACA,CACA,CAEI,CAAC,YAAYv9E,EAAKxlG,EAAO,CACrB,KAAM,CAACsiL,EAAKC,EAAKC,EAAKC,CAAG,EAAIj9E,EAC7B,IAAI08E,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,UACZe,EAAWV,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK,IAAI1zF,CAAI,EACpB,MAAM00F,EAAWV,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK,IAAI5zF,CAAI,EACpB,MAAM40F,EAAWV,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAWgB,KAAQD,EAAU,CACzBd,EAAOD,EAAK,IAAIgB,CAAI,EACpB,MAAMC,EAAWX,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAWiB,KAAQD,EACf,KAAM,CAAC70F,EAAMD,EAAM60F,EAAME,CAAI,CAErD,CACA,CACA,CACA,CACI,MAAMrjL,EAAO,CACT,IAAIzY,EAAQ,EACZ,MAAMi+G,KAAUu8E,EAAa,qBAAqB/hL,EAAO,KAAK,UAAU,EACxE,GAAI,CAACwlG,EACD,MAAO,GAEX,MAAM88E,EAAM98E,EAAI,CAAC,EACX+8E,EAAM/8E,EAAI,CAAC,EACXg9E,EAAMh9E,EAAI,CAAC,EACXi9E,EAAMj9E,EAAI,CAAC,EACjB,IAAI08E,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,UACZe,EAAWV,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK,IAAI1zF,CAAI,EACpB,MAAM00F,EAAWV,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK,IAAI5zF,CAAI,EACpB,MAAM40F,EAAWV,IAAQ,OAAaL,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,GAAML,EAAK,KAAM,EAC/E,UAAWgB,KAAQD,EACfd,EAAOD,EAAK,IAAIgB,CAAI,EAChBV,IAAQ,OACJL,EAAK,IAAIK,CAAG,GACZl7L,IAIJA,GAAS66L,EAAK,IAGtC,CACA,CACQ,OAAO76L,CACf,CACA,EACAu6L,8BAAA,uBAAiCwB,wOCxLjC,OAAO,eAAeC,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMhkL,EAAqBxK,wBAA2B,EAChD+sL,EAA2B/oL,8BAA0C,EACrEgpL,EAAe/oL,kBAAwB,EAS7C,IAAAwqL,EAAA,MAAMC,EAA4B,CAC9B,YAAYC,EAAmB3jL,EAAc,IAAIR,EAAmB,YAAe,CAC/E,KAAK,wBAA0B,CAAE,EACjC,KAAK,SAAW,CAAE,cAAe,EAAM,EACvC,KAAK,oBAAsBmkL,EAC3B,MAAMC,EAAe,CAEjB,kBAAmB,CAAE,EAErB,iBAAkB,OAClB,WAAY,KACZ,YAAA5jL,CACH,EACD,KAAK,iCAAmC,CACpC,IAAI+hL,EAAyB,uBAAuB6B,CAAY,EAChE,IAAI7B,EAAyB,uBAAuB6B,CAAY,EAChE,IAAI7B,EAAyB,uBAAuB6B,CAAY,CACnE,EACD,KAAK,YAAc5jL,CAC3B,CACI,OAAOruB,EAAM,CACT,OAAIA,EAAK,WAAa,OACX,KAAK,mBAAmBA,EAAM,EAAK,EAEvC,KAAK,oBAAoB,OAAOA,CAAI,CACnD,CACI,mBAAmBwnC,EAAM5tC,EAAU,CAE/B,GAAI4tC,EAAK,MAAM,WAAa,eACxB,MAAM,IAAI,MAAM,sEAAsE,EAG1F,MAAM0qK,KAA4B7B,EAAa,qBAAqB,CAAC7oK,EAAK,QAASA,EAAK,UAAWA,EAAK,OAAQA,EAAK,KAAK,EAAG,IAAI,EAC3HgqC,EAAK0gI,GAAyBA,EAAsB,MAAM3D,GAAWA,IAAY,MAAS,EAC5F,KAAK,iCAAiC,CAAC,EAAE,WAAW2D,CAAqB,EACzE,OAEJ,GAAI1gI,IAAO,QAAa53E,EAEpB,OAAQ43E,IAAO,OAAY,OAAYugI,GAA4B,QAAUvgI,EAGjF,MAAM2gI,EAAgB,CAClB,KAAK,OAAO3qK,EAAK,OAAO,EACxB,KAAK,OAAOA,EAAK,SAAS,EAC1B,KAAK,OAAOA,EAAK,MAAM,CAC1B,EACK4qK,EAAe,KAAK,wBAAwB,OAAS,EAC3D,KAAK,wBAAwB,KAAKD,CAAa,EAC/C,MAAME,EAAe,KAAK,OAAO,KAAK,YAAY,cAAc,EAChE,YAAK,iCAAiC,CAAC,EAAE,IAAI,CACzCF,EAAc,CAAC,EACfA,EAAc,CAAC,EACfA,EAAc,CAAC,EACfE,CACH,EAAED,CAAY,EACf,KAAK,iCAAiC,CAAC,EAAE,IAAI,CACzCD,EAAc,CAAC,EACfA,EAAc,CAAC,EACfA,EAAc,CAAC,EACfE,CACH,EAAED,CAAY,EACf,KAAK,iCAAiC,CAAC,EAAE,IAAI,CACzCD,EAAc,CAAC,EACfA,EAAc,CAAC,EACfA,EAAc,CAAC,EACfE,CACH,EAAED,CAAY,EAERL,GAA4B,QAAUK,CACrD,CACI,eAAepyM,EAAM,CACjB,OAAIA,EAAK,WAAa,OACX,KAAK,mBAAmBA,EAAM,EAAI,EAEtC,KAAK,oBAAoB,eAAeA,CAAI,CAC3D,CACI,OAAOwmF,EAAU,CACb,GAAIurH,GAA4B,QAAUvrH,EAAU,CAEhD,MAAM4rH,GAAgB,CAACL,GAA4B,QAAUvrH,GAAY,EACzE,GAAI4rH,GAAgB,KAAK,wBAAwB,OAC7C,MAAM,IAAI,MAAM,aAAa5rH,CAAQ,+DAA+D,EAExG,MAAMspH,EAAe,KAAK,wBAAwBsC,CAAY,EAC9D,OAAO,KAAK,YAAY,KAAK,KAAK,OAAOtC,EAAa,CAAC,CAAC,EAAG,KAAK,OAAOA,EAAa,CAAC,CAAC,EAAG,KAAK,OAAOA,EAAa,CAAC,CAAC,CAAC,CACjI,CAEQ,OAAO,KAAK,oBAAoB,OAAOtpH,CAAQ,CACvD,CACI,CAAC,WAAY,CACT,UAAWA,KAAY,KAAK,oBAAoB,UAAS,EACrD,MAAMA,EAEV,UAAWA,KAAY,KAAK,wBAAwB,KAAI,EACpD,MAAMurH,GAA4B,QAAW,EAAIvrH,CAE7D,CACI,CAAC,kBAAkBgoH,EAAqB,CACpC,UAAW8D,KAAe,KAAK,yBAAyB9D,CAAmB,EACvE,MAAM,KAAK,OAAO8D,CAAW,CAEzC,CACI,CAAC,yBAAyB9D,EAAqB,CAC3C,KAAM,CAAC+D,EAAWtC,CAA4B,KAAQI,EAAa,eAAe7B,EAAoB,QAASA,EAAoB,UAAWA,EAAoB,OAAQA,EAAoB,MAAO,EAAI,EAEzM,UAAWgE,KAAS,KAAK,kBAAkBD,EAAU,CAAC,CAAC,EACnD,UAAWE,KAAS,KAAK,kBAAkBF,EAAU,CAAC,CAAC,EACnD,UAAWG,KAAS,KAAK,kBAAkBH,EAAU,CAAC,CAAC,EACnD,UAAWI,KAAS,KAAK,kBAAkBJ,EAAU,CAAC,CAAC,EAGnD,GAAKC,GAASC,GAAW,CAACA,GAAS,CAACC,EAAQ,CAExC,MAAMrwK,EAAU,CAACmwK,EAAOC,EAAOC,EAAOC,CAAK,EAC3C,UAAWL,KAAe,KAAK,iCAAiC,CAAC,EAAE,YAAYjwK,EAASkwK,CAAS,EAC7F,MAAMR,GAA4B,QAC9B,KAAK,iCAAiC,CAAC,EAAE,WAAWO,CAAW,CAEnG,SACiC,CAACE,GAASC,EAAO,CAEtB,MAAMpwK,EAAU,CAACowK,EAAOC,EAAOF,EAAOG,CAAK,EAC3C,UAAWL,KAAe,KAAK,iCAAiC,CAAC,EAAE,YAAYjwK,EAASkwK,CAAS,EAC7F,MAAMR,GAA4B,QAC9B,KAAK,iCAAiC,CAAC,EAAE,WAAWO,CAAW,CAEnG,KAC6B,CAED,MAAMjwK,EAAU,CAACqwK,EAAOF,EAAOC,EAAOE,CAAK,EAC3C,UAAWL,KAAe,KAAK,iCAAiC,CAAC,EAAE,YAAYjwK,EAASkwK,CAAS,EAC7F,MAAMR,GAA4B,QAC9B,KAAK,iCAAiC,CAAC,EAAE,WAAWO,CAAW,CAEnG,CAKA,CAMI,CAAC,kBAAkBM,EAAa,CAE5B,GAAIA,GAAa,WAAa,OAAQ,CAClC,MAAO,KAAK,yBAAyBA,CAAW,EAChD,MACZ,CAEQ,GAAIA,IAAgB,OAAW,CAE3B,MAAM,OACN,MACZ,CAEQ,MAAMliK,EAAM,KAAK,eAAekiK,CAAW,EACvCliK,IAAQ,SAGZ,MAAMA,EACd,CACA,EACAmhK,mCAAA,4BAAsCE,EACtCA,EAA4B,QAAU,GAAK,mRCpL3C,OAAO,eAAec,6BAAS,aAAc,CAAE,MAAO,GAAM,EACxBA,6BAAA,6BAAG,OACvC,MAAMxC,EAAehtL,kBAAwB,EACvC+sL,EAA2B/oL,8BAAmC,EAIpE,IAAAyrL,EAAA,cAA2C1C,EAAyB,sBAAuB,CACvF,YAAYx3M,EAAS,CACjB,MAAMA,CAAO,EACb,KAAK,SAAW,CACZ,sBAAuB,EAC1B,CACT,CACI,CAAC,qBAAqB0b,EAAKtU,EAAM,CAC7B,UAAW+yM,KAAuB,KAAK,WAAW,yBAAyB/yM,CAAI,EACvEsU,EAAI,IAAIy+L,CAAmB,IAC3B,MAAMA,EAGtB,CACI,CAAC,KAAKzkL,EAAO,CACT,MAAMwlG,KAAUu8E,EAAa,qBAAqB/hL,EAAO,KAAK,UAAU,EACxE,GAAI,CAACwlG,EACD,OAEJ,KAAM,CAAC88E,EAAKC,EAAKC,EAAKC,CAAG,EAAIj9E,EACvB,CAACk9E,EAAOlsK,EAAOC,EAAOksK,CAAK,EAAI3iL,EAC/B,CAAC0kL,EAAaC,EAAaC,EAAaC,CAAW,KAAQ9C,EAAa,mBAAmB/hL,CAAK,EACtG,IAAI4iL,EACAC,EACAC,EACAC,EACAb,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,UACZe,EAAYN,IAAU,OACvBgC,EAAc,KAAK,qBAAqBzC,EAAMS,CAAK,EAAKT,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK,IAAI1zF,CAAI,EACpBq0F,EAAe,CAAC8B,GAAehC,EAAQA,EAAQ,KAAK,WAAW,OAAOn0F,CAAI,EAC1E,MAAM00F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK0rK,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK,IAAI5zF,CAAI,EACpBu0F,EAAe,CAAC8B,GAAenuK,EAAQA,EAAQ,KAAK,WAAW,OAAO83E,CAAI,EAC1E,MAAM40F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK0rK,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAWgB,KAAQD,EAAU,CACzBd,EAAOD,EAAK,IAAIgB,CAAI,EACpBL,EAAe,CAAC8B,GAAenuK,EAAQA,EAAQ,KAAK,WAAW,OAAO0sK,CAAI,EAC1E,MAAMC,EAAYT,IAAU,OACvBkC,EAAc,KAAK,qBAAqBzC,EAAMO,CAAK,EAAKP,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAWiB,MAAQD,EACfL,EAAe,CAAC8B,GAAelC,EAAQA,EAAQ,KAAK,WAAW,OAAOU,EAAI,EAC1E,KAAM,CAACT,EAAcC,EAAcC,EAAcC,CAAY,CAErF,CACA,CACA,CACA,CAEI,CAAC,YAAYv9E,EAAKxlG,EAAO,CACrB,KAAM,CAACsiL,EAAKC,EAAKC,EAAKC,CAAG,EAAIj9E,EACvB,CAACk9E,EAAOlsK,EAAOC,EAAOksK,CAAK,EAAI3iL,EAC/B,CAAC0kL,EAAaC,EAAaC,EAAaC,CAAW,KAAQ9C,EAAa,mBAAmB/hL,CAAK,EACtG,IAAIkiL,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,UACZe,EAAYN,IAAU,OACvBgC,EAAc,KAAK,qBAAqBzC,EAAMS,CAAK,EAAKT,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK,IAAI1zF,CAAI,EACpB,MAAM00F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK0rK,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK,IAAI5zF,CAAI,EACpB,MAAM40F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK0rK,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAWgB,KAAQD,EAAU,CACzBd,EAAOD,EAAK,IAAIgB,CAAI,EACpB,MAAMC,EAAYT,IAAU,OACvBkC,EAAc,KAAK,qBAAqBzC,EAAMO,CAAK,EAAKP,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAWiB,KAAQD,EACf,KAAM,CACF,OAAO,SAAS70F,EAAM,EAAE,EACxB,OAAO,SAASD,EAAM,EAAE,EACxB,OAAO,SAAS60F,EAAM,EAAE,EACxB,OAAO,SAASE,EAAM,EAAE,CAC3B,CAEzB,CACA,CACA,CACA,CACI,MAAMrjL,EAAO,CACT,IAAIzY,EAAQ,EACZ,MAAMi+G,KAAUu8E,EAAa,qBAAqB/hL,EAAO,KAAK,UAAU,EACxE,GAAI,CAACwlG,EACD,MAAO,GAEX,KAAM,CAAC88E,EAAKC,EAAKC,EAAKC,CAAG,EAAIj9E,EACvB,CAACk9E,EAAOlsK,EAAOC,EAAOksK,CAAK,EAAI3iL,EAC/B,CAAC0kL,EAAaC,EAAaC,EAAaC,CAAW,KAAQ9C,EAAa,mBAAmB/hL,CAAK,EACtG,IAAIkiL,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,UACZe,EAAYN,IAAU,OACvBgC,EAAc,KAAK,qBAAqBzC,EAAMS,CAAK,EAAKT,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK,IAAI1zF,CAAI,EACpB,MAAM00F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK0rK,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK,IAAI5zF,CAAI,EACpB,MAAM40F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK0rK,EAAK,IAAIK,CAAG,EAAI,CAACA,CAAG,EAAI,CAAA,EACjFL,EAAK,KAAI,EACb,UAAWgB,KAAQD,EACfd,EAAOD,EAAK,IAAIgB,CAAI,EAChBR,IAAU,OACNkC,EACAt9L,GAAS,CAAC,GAAG,KAAK,qBAAqB66L,EAAMO,CAAK,CAAC,EAAE,OAEhDP,EAAK,IAAIK,CAAG,GACjBl7L,IAIJA,GAAS66L,EAAK,IAGtC,CACA,CACQ,OAAO76L,CACf,CACA,EACAg9L,oCAAA,6BAAuCO,+ICtJvC,OAAO,eAAeC,SAAS,aAAc,CAAE,MAAO,GAAM,EAC5CA,SAAA,SAAG,OACnB,MAAMluI,EAA0C9hD,qBAAA,EAC1CwK,EAAqBxG,wBAA2B,EAChD6jB,EAAc5jB,kBAAoB,EAClCgsL,EAAuB/rL,0BAAuC,EAC9D8mL,EAAwC7mL,2CAA2D,EACnGqqL,EAAgCpqL,mCAAmD,EACnForL,EAAiCnrL,oCAA+C,EAChF2oL,EAAe1oL,kBAAuB,EAI5C,IAAA4rL,EAAA,MAAMC,EAAS,CACX,YAAY56M,EAAS,CACjB,KAAK,SAAW,CAAE,sBAAuB,EAAM,EAC/C,KAAK,MAAQ,EACb,KAAK,QAAUA,EACf,KAAK,YAAcA,EAAQ,YAC3B,KAAK,WAAaA,EAAQ,WAC1B,KAAK,eAAiB46M,GAAS,wBAAwB56M,CAAO,EAC9D,KAAK,8BAAgC,KAAK,eAAe,IAAI66M,GAAaA,EAAU,cAAc,CAC1G,CAMI,OAAO,eAAgB,CACnB,OAAO,IAAID,GAAS,CAChB,kBAAmBA,GAAS,2BAC5B,iBAAkBE,GAAc,IAAIb,EAA+B,6BAA6Ba,CAAU,EAC1G,WAAY,IAAI7B,EAA8B,4BAA4B,IAAIxD,EAAsC,mCAAqC,EACzJ,YAAa,IAAIxgL,EAAmB,WAChD,CAAS,CACT,CAKI,OAAO,wBAAwBj1B,EAAS,CACpC,MAAM+6M,EAAU,CAAE,EAClB,GAAI/6M,EAAQ,kBAAkB,SAAW,EACrC,MAAM,IAAI,MAAM,4CAA4C,EAEhE,UAAWy2M,KAAkBz2M,EAAQ,kBAAmB,CACpD,GAAI,CAAC46M,GAAS,mBAAmBnE,CAAc,EAC3C,MAAM,IAAI,MAAM,8BAA8BA,CAAc,EAAE,EAElEsE,EAAQ,KAAK,CACT,MAAO/6M,EAAQ,iBAAiBA,CAAO,EACvC,eAAAy2M,EACA,sBAAuB,OAAO,YAAYA,EAAe,IAAI,CAACv3M,EAAOK,IAAQ,CAACL,EAAOK,CAAG,CAAC,CAAC,CAC1G,CAAa,CACb,CACQ,OAAOw7M,CACf,CAKI,OAAO,mBAAmBC,EAAa,CACnC,UAAWC,KAAgB3oK,EAAY,gBACnC,GAAI,CAAC0oK,EAAY,SAASC,CAAY,EAClC,MAAO,GAGf,OAAOD,EAAY,SAAW,CACtC,CAII,IAAI,MAAO,CACP,OAAO,KAAK,KACpB,CAMI,QAAQpsK,EAAM,CACV,MAAMssK,EAAc,CAChB,KAAK,WAAW,OAAOtsK,EAAK,OAAO,EACnC,KAAK,WAAW,OAAOA,EAAK,SAAS,EACrC,KAAK,WAAW,OAAOA,EAAK,MAAM,EAClC,KAAK,WAAW,OAAOA,EAAK,KAAK,CACpC,EACD,IAAIusK,EAAU,GACd,UAAWC,KAAgB,KAAK,eAE5BD,EAAUC,EAAa,MAClB,OAAQ3D,EAAa,qBAAqB2D,EAAa,eAAgBF,CAAW,EAAG,EAAI,EAElG,OAAIC,GACA,KAAK,QACE,IAEJ,EACf,CAMI,WAAWvsK,EAAM,CACb,MAAMssK,EAAc,CAChB,KAAK,WAAW,eAAetsK,EAAK,OAAO,EAC3C,KAAK,WAAW,eAAeA,EAAK,SAAS,EAC7C,KAAK,WAAW,eAAeA,EAAK,MAAM,EAC1C,KAAK,WAAW,eAAeA,EAAK,KAAK,CAC5C,EAGD,GAAIssK,EAAY,SAAS,MAAS,EAC9B,MAAO,GAEX,IAAIG,EAAa,GACjB,UAAWD,KAAgB,KAAK,eAI5B,GAFAC,EAAaD,EAAa,MACrB,UAAW3D,EAAa,qBAAqB2D,EAAa,eAAgBF,CAAW,CAAC,EACvF,CAACG,EACD,MAGR,OAAIA,GACA,KAAK,QACE,IAEJ,EACf,CAKI,OAAOt2G,EAAQ,CACX,OAAAA,EAAO,GAAG,OAAQn2D,GAAQ,KAAK,WAAWA,CAAI,CAAC,EACxCm2D,CACf,CAQI,cAAch0F,EAASyF,EAAWlC,EAAQogB,EAAO,CAC7C,OAAO,KAAK,OAAO,KAAK,MAAM3jB,EAASyF,EAAWlC,EAAQogB,CAAK,CAAC,CACxE,CAKI,YAAYA,EAAO,CACf,OAAI,OAAOA,GAAU,WACjBA,EAAQ,KAAK,YAAY,UAAUA,CAAK,GAErC,KAAK,cAAc,OAAW,OAAW,OAAWA,CAAK,CACxE,CAKI,OAAOqwE,EAAQ,CACX,OAAAA,EAAO,GAAG,OAASn2D,GAAS,KAAK,QAAQA,CAAI,CAAC,EACvCm2D,CACf,CAQI,CAAC,UAAUh0F,EAASyF,EAAWlC,EAAQogB,EAAO,CAE1C,MAAM4mL,EAA+B,EAAQ,KAAK,WAAW,SAAS,eAClE,OAAO,OAAO,KAAK,cAAc,EAAE,MAAM53I,GAAWA,EAAQ,MAAM,SAAS,qBAAqB,EAE9F,CAAC63I,EAAgBlE,CAA4B,KAAQI,EAAa,eAAe1mM,EAASyF,EAAWlC,EAAQogB,EAAO4mL,CAA4B,EAEhJF,EAAe,KAAK,kBAAmB3D,EAAa,cAAc,KAAK,8BAA+B8D,CAAc,CAAC,EAErHC,KAA4B/D,EAAa,qBAAqB2D,EAAa,eAAgBG,CAAc,EAG/G,UAAWE,KAAkBL,EAAa,MAAM,KAAKI,CAAqB,EAAG,CAEzE,MAAM5sK,EAAO,KAAK,YAAY,KAAK6sK,EAAeL,EAAa,sBAAsB,OAAO,EAAGK,EAAeL,EAAa,sBAAsB,SAAS,EAAGK,EAAeL,EAAa,sBAAsB,MAAM,EAAGK,EAAeL,EAAa,sBAAsB,KAAK,CAAC,EAC5Q/D,KACQ/kK,EAAY,cAAc1D,EAAM79B,EAASyF,EAAWlC,EAAQogB,CAAK,IACrE,MAAMka,GAIV,MAAMA,CAEtB,CACA,CAQI,SAAS79B,EAASyF,EAAWlC,EAAQogB,EAAO,CACxC,MAAO,CAAC,GAAG,KAAK,UAAU3jB,EAASyF,EAAWlC,EAAQogB,CAAK,CAAC,CACpE,CAQI,MAAM3jB,EAASyF,EAAWlC,EAAQogB,EAAO,CACrC,SAAW63C,EAAgB,MAAM,KAAK,UAAUx7D,EAASyF,EAAWlC,EAAQogB,CAAK,CAAC,CAC1F,CAQI,CAAC,aAAa29C,EAAiBthE,EAASyF,EAAWlC,EAAQogB,EAAO,CAE9D,MAAM4mL,EAA+B,EAAQ,KAAK,WAAW,SAAS,eAClE,OAAO,OAAO,KAAK,cAAc,EAAE,MAAM53I,GAAWA,EAAQ,MAAM,SAAS,qBAAqB,EAE9F,CAAC63I,EAAgBlE,CAA4B,KAAQI,EAAa,eAAe1mM,EAASyF,EAAWlC,EAAQogB,EAAO4mL,CAA4B,EAEhJF,EAAe,KAAK,kBAAmB3D,EAAa,cAAc,KAAK,8BAA+B8D,CAAc,CAAC,EAErHC,KAA4B/D,EAAa,qBAAqB2D,EAAa,eAAgBG,CAAc,EACzGrgF,KAAUu8E,EAAa,qBAAqB+D,EAAuB,KAAK,UAAU,EAExF,GAAI,CAACtgF,EACD,OAGJ,MAAMxlG,KAAY+hL,EAAa,qBAAqB2D,EAAa,eAAgB,CAACrqM,EAASyF,EAAWlC,EAAQogB,CAAK,CAAC,EAC9GgnL,EAAkB,CAAE,EAC1B,QAASz3N,EAAI,EAAGA,EAAIyxC,EAAM,OAAQzxC,KAC1ByxC,EAAMzxC,CAAC,EAAE,WAAa,YAAcyxC,EAAMzxC,CAAC,EAAE,WAAa,SAC1Dy3N,EAAgB,KAAKz3N,CAAC,EAI9B,IAAI03N,EAAsB,GAC1B,MAAMC,EAAgBlmL,EAAM,IAAI,CAAC9D,EAAU3tC,IAAM,CAC7C,MAAM43N,EAAiB,CAAE,EACzB,QAASx1N,EAAIpC,EAAI,EAAGoC,EAAIqvC,EAAM,OAAQrvC,IAC9BurC,EAAS,OAAO8D,EAAMrvC,CAAC,CAAC,IACxBw1N,EAAe,KAAKx1N,CAAC,EACrBs1N,EAAsB,IAG9B,OAAOE,CACnB,CAAS,EAED,UAAWC,KAAyBV,EAAa,MAC5C,YAAYlgF,EAAKsgF,CAAqB,EAAG,CAC1C,IAAIO,EAAc,GACdC,EAA2B,GAC/B,MAAMC,EAAkB,CAAE,EAC1B,UAAWh4N,KAAKy3N,EAAiB,CAE7B,GAAIC,EAAqB,CACrB,MAAMO,EAAUN,EAAc33N,CAAC,EAC/B,GAAIi4N,GACA,UAAW71N,KAAK61N,EACZ,GAAIJ,EAAsB73N,CAAC,IAAM63N,EAAsBz1N,CAAC,EAAG,CACvD01N,EAAc,GACd,KAChC,EAGoB,GAAIA,EACA,KAExB,CACgB,MAAMI,EAAc,KAAK,WAAW,OAAOL,EAAsB73N,CAAC,CAAC,EAKnE,GAAIyxC,EAAMzxC,CAAC,EAAE,WAAa,OAAQ,CAC9B,GAAIk4N,EAAY,WAAa,OAAQ,CAGjC,MAAMC,KAAyB9pK,EAAY,sBAAsB6pK,EAAazmL,EAAMzxC,CAAC,EAAG,CAAE,eAAgB,GAAM,EAChH,GAAIm4N,EAAoB,CACpBJ,EAA2B,GAC3B,SAAW,CAACz8M,EAAKL,EAAK,IAAK,OAAO,QAAQk9M,CAAkB,EAAG,CAC3D,MAAMxqL,GAAW,KAAK,YAAY,SAASryB,CAAG,EAC9C,GAAI08M,EAAgB,KAAKnoM,IAASA,GAAM,CAAC,EAAE,OAAO8d,EAAQ,GAAK,CAAC9d,GAAM,CAAC,EAAE,OAAO5U,EAAK,CAAC,EAAG,CAErF68M,EAAc,GACd,KACpC,CACgCE,EAAgB,KAAK,CAACrqL,GAAU1yB,EAAK,CAAC,CACtE,CAC4B,QAC5B,CACA,CACoB68M,EAAc,GACd,KACpB,CAGgB,GAAIC,GAA4BC,EAC3B,KAAKnoM,GAASA,EAAM,CAAC,EAAE,OAAO4hB,EAAMzxC,CAAC,CAAC,GAAK,CAAC6vB,EAAM,CAAC,EAAE,OAAOqoM,CAAW,CAAC,EAAG,CAE5EJ,EAAc,GACd,KACpB,CACgBE,EAAgB,KAAK,CAACvmL,EAAMzxC,CAAC,EAAGk4N,CAAW,CAAC,CAC5D,CACiBJ,IAED,MAAM1pI,EAAgB,SAAS4pI,CAAe,EAE9D,CACA,CASI,YAAY5pI,EAAiBthE,EAASyF,EAAWlC,EAAQogB,EAAO,CAC5D,MAAO,CAAC,GAAG,KAAK,aAAa29C,EAAiBthE,EAASyF,EAAWlC,EAAQogB,CAAK,CAAC,CACxF,CASI,cAAc29C,EAAiBthE,EAASyF,EAAWlC,EAAQogB,EAAO,CAC9D,SAAW63C,EAAgB,MAAM,KAAK,aAAa8F,EAAiBthE,EAASyF,EAAWlC,EAAQogB,CAAK,CAAC,CAC9G,CAQI,WAAW3jB,EAASyF,EAAWlC,EAAQogB,EAAO,CAE1C,MAAM4mL,EAA+B,EAAQ,KAAK,WAAW,SAAS,eAClE,OAAO,OAAO,KAAK,cAAc,EAAE,MAAM53I,GAAWA,EAAQ,MAAM,SAAS,qBAAqB,EAE9F,CAAC63I,CAAc,KAAQ9D,EAAa,eAAe1mM,EAASyF,EAAWlC,EAAQogB,EAAO4mL,CAA4B,EAExH,GAAIC,EAAe,MAAMc,GAAiBA,IAAkB,MAAS,EACjE,OAAO,KAAK,KAGhB,MAAMjB,EAAe,KAAK,kBAAmB3D,EAAa,cAAc,KAAK,8BAA+B8D,CAAc,CAAC,EAErHC,KAA4B/D,EAAa,qBAAqB2D,EAAa,eAAgBG,CAAc,EAE/G,OAAOH,EAAa,MAAM,MAAMI,CAAqB,CAC7D,CAKI,WAAY,CACR,OAAO,IAAId,EAAqB,mBAAmB,IAAI,CAC/D,CACA,EACAD,gBAAA,SAAmBG,EACnBA,EAAS,2BAA6B,CAClC,CAAC,QAAS,UAAW,YAAa,QAAQ,EAC1C,CAAC,QAAS,YAAa,SAAU,SAAS,EAC1C,CAAC,QAAS,SAAU,UAAW,WAAW,CAC7C,6KCjYD,OAAO,eAAeF,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMD,EAAahwL,gBAAsB,EAIzC,IAAA6xL,EAAA,MAAMC,EAAmB,CACrB,YAAYxhF,EAAO,CACf,KAAK,MAAQA,CACrB,CACI,IAAI,MAAO,CACP,OAAO,KAAK,MAAM,IAC1B,CACI,IAAInsF,EAAM,CACN,YAAK,MAAM,QAAQA,CAAI,EAChB,IACf,CACI,OAAOA,EAAM,CACT,YAAK,MAAM,WAAWA,CAAI,EACnB,IACf,CACI,IAAIA,EAAM,CAEN,UAAWtvC,KAAU,KAAK,MAAM,UAAUsvC,EAAK,QAASA,EAAK,UAAWA,EAAK,OAAQA,EAAK,KAAK,EAC3F,MAAO,GAEX,MAAO,EACf,CACI,MAAM79B,EAASyF,EAAWlC,EAAQogB,EAAO,CACrC,MAAM2mG,EAAW,IAAIo/E,EAAW,SAAS,KAAK,MAAM,OAAO,EAC3D,UAAW7rK,KAAQ,KAAK,MAAM,UAAU79B,EAASyF,EAAWlC,EAAQogB,CAAK,EACrE2mG,EAAS,QAAQzsF,CAAI,EAEzB,OAAO,IAAI2tK,GAAmBlhF,CAAQ,CAC9C,CACI,CAAC,OAAO,QAAQ,GAAI,CAChB,OAAO,KAAK,MAAM,UAAW,CACrC,CACA,EACAq/E,0BAAA,mBAA6B6B,0KCvC7B,OAAO,eAAe,gBAAS,aAAc,CAAE,MAAO,GAAM,yOCA5D,OAAO,eAAeC,wBAAS,aAAc,CAAE,MAAO,GAAM,EAC7BA,wBAAA,wBAAG,OAClC,MAAMvnL,EAAqBxK,wBAA2B,EAChD2iB,EAAe3e,mBAAqB,EAI1C,IAAAguL,EAAA,KAA8B,CAC1B,YAAYhnL,EAAc,IAAIR,EAAmB,YAAe,CAC5D,KAAK,OAAS,EACd,KAAK,WAAa,IAAI,IACtB,KAAK,kBAAoB,IAAI,IAC7B,KAAK,SAAW,CAAE,cAAe,EAAO,EACxC,KAAK,YAAcQ,CAC3B,CACI,OAAOruB,EAAM,CACT,MAAM7H,KAAU6tC,EAAa,cAAchmC,CAAI,EAC/C,IAAIuuM,EAAU,KAAK,WAAW,IAAIp2M,CAAG,EACrC,OAAIo2M,IAAY,SACZA,EAAU,KAAK,SACf,KAAK,WAAW,IAAIp2M,EAAKo2M,CAAO,EAChC,KAAK,kBAAkB,IAAIA,EAASp2M,CAAG,GAEpCo2M,CACf,CACI,eAAevuM,EAAM,CACjB,MAAM7H,KAAU6tC,EAAa,cAAchmC,CAAI,EAC/C,OAAO,KAAK,WAAW,IAAI7H,CAAG,CACtC,CACI,OAAOquF,EAAU,CACb,MAAMr4E,EAAS,KAAK,kBAAkB,IAAIq4E,CAAQ,EAClD,GAAIr4E,IAAW,OACX,MAAM,IAAI,MAAM,aAAaq4E,CAAQ,oCAAoC,EAE7E,SAAWxgD,EAAa,cAAc73B,EAAQ,KAAK,WAAW,CACtE,CACI,WAAY,CACR,OAAO,KAAK,kBAAkB,KAAM,CAC5C,CACI,kBAAkBqgM,EAAqB,CACnC,MAAM,IAAI,MAAM,oCAAoC,CAC5D,CACI,yBAAyBA,EAAqB,CAC1C,MAAM,IAAI,MAAM,2CAA2C,CACnE,CACA,EACA4G,+BAAA,wBAAkCE,kQC9ClC,OAAO,eAAeC,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAM1nL,EAAqBxK,wBAA2B,EAChD2iB,EAAe3e,mBAAqB,EAI1C,IAAAmuL,EAAA,KAAiC,CAC7B,YAAYnnL,EAAc,IAAIR,EAAmB,YAAe,CAC5D,KAAK,OAAS,EACd,KAAK,WAAa,CAAE,EACpB,KAAK,kBAAoB,CAAE,EAC3B,KAAK,SAAW,CAAE,cAAe,EAAO,EACxC,KAAK,YAAcQ,CAC3B,CACI,OAAOruB,EAAM,CACT,MAAM7H,KAAU6tC,EAAa,cAAchmC,CAAI,EAC/C,IAAIuuM,EAAU,KAAK,WAAWp2M,CAAG,EACjC,OAAIo2M,IAAY,SACZA,EAAU,KAAK,SACf,KAAK,WAAWp2M,CAAG,EAAIo2M,EACvB,KAAK,kBAAkBA,CAAO,EAAIp2M,GAE/Bo2M,CACf,CACI,eAAevuM,EAAM,CACjB,MAAM7H,KAAU6tC,EAAa,cAAchmC,CAAI,EAC/C,OAAO,KAAK,WAAW7H,CAAG,CAClC,CACI,OAAOquF,EAAU,CACb,MAAMr4E,EAAS,KAAK,kBAAkBq4E,CAAQ,EAC9C,GAAIr4E,IAAW,OACX,MAAM,IAAI,MAAM,aAAaq4E,CAAQ,oCAAoC,EAE7E,SAAWxgD,EAAa,cAAc73B,EAAQ,KAAK,WAAW,CACtE,CACI,CAAC,WAAY,CACT,UAAWhW,KAAO,OAAO,KAAK,KAAK,iBAAiB,EAChD,MAAM,OAAO,SAASA,EAAK,EAAE,CAEzC,CACI,kBAAkBq2M,EAAqB,CACnC,MAAM,IAAI,MAAM,oCAAoC,CAC5D,CACI,yBAAyBA,EAAqB,CAC1C,MAAM,IAAI,MAAM,2CAA2C,CACnE,CACA,EACA+G,kCAAA,2BAAqCE,iOChDrC,OAAO,eAAeC,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAM7nL,EAAqBxK,wBAA2B,EAChD6nB,EAAc7jB,kBAAoB,EAQxC,IAAAsuL,EAAA,MAAMC,EAAqB,CACvB,YAAYC,EAAqBC,EAAyBznL,EAAc,IAAIR,EAAmB,YAAe,CAC1G,KAAK,SAAW,CAAE,cAAe,EAAM,EACvC,KAAK,oBAAsBgoL,EAC3B,KAAK,wBAA0BC,EAC/B,KAAK,YAAcznL,CAC3B,CACI,OAAOruB,EAAM,CACT,OAAIA,EAAK,WAAa,OAEX41M,GAAqB,QAAW,EAAI,KAAK,wBAAwB,OAAO51M,CAAI,EAEhF,KAAK,oBAAoB,OAAOA,CAAI,CACnD,CACI,eAAeA,EAAM,CACjB,GAAIA,EAAK,WAAa,OAAQ,CAC1B,MAAMwmF,EAAW,KAAK,wBAAwB,eAAexmF,CAAI,EACjE,OAAIwmF,IAAa,OACNA,EAGJovH,GAAqB,QAAW,EAAIpvH,CACvD,CACQ,OAAO,KAAK,oBAAoB,eAAexmF,CAAI,CAC3D,CACI,OAAOwmF,EAAU,CACb,GAAIovH,GAAqB,QAAUpvH,EAAU,CAEzC,MAAM4rH,GAAgB,CAACwD,GAAqB,QAAUpvH,GAAY,EAClE,OAAO,KAAK,wBAAwB,OAAO4rH,CAAY,CACnE,CAEQ,OAAO,KAAK,oBAAoB,OAAO5rH,CAAQ,CACvD,CACI,CAAC,WAAY,CACT,UAAWA,KAAY,KAAK,oBAAoB,UAAS,EACrD,MAAMA,EAEV,UAAWA,KAAY,KAAK,wBAAwB,UAAS,EACzD,MAAMovH,GAAqB,QAAW,EAAIpvH,CAEtD,CACI,CAAC,kBAAkBgoH,EAAqB,CACpC,UAAW8D,KAAe,KAAK,yBAAyB9D,CAAmB,EACvE,MAAM,KAAK,OAAO8D,CAAW,CAEzC,CACI,CAAC,yBAAyB9D,EAAqB,CAC3C,QAASuH,KAAuB,KAAK,wBAAwB,UAAS,EAAI,CACtEA,EAAsBH,GAAqB,QAAW,EAAIG,EAC1D,MAAMC,EAAe,KAAK,OAAOD,CAAmB,KAC5C7qK,EAAY,cAAc8qK,EAAcxH,EAAoB,QAASA,EAAoB,UAAWA,EAAoB,OAAQA,EAAoB,KAAK,IAC7J,MAAMuH,EAEtB,CACA,CACA,EACAL,4BAAA,qBAA+BE,EAC/BA,EAAqB,QAAU,GAAK,8RCrEpC,OAAO,eAAeK,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAMpoL,EAAqBxK,wBAA2B,EAChD6nB,EAAc7jB,kBAAoB,EAClCgpL,EAAe/oL,kBAAwB,EAS7C,IAAA4uL,EAAA,MAAMC,EAAgC,CAClC,YAAYN,EAAqBxnL,EAAc,IAAIR,EAAmB,YAAe,CACjF,KAAK,wBAA0B,CAAE,EACjC,KAAK,+BAAiC,CAAE,EACxC,KAAK,SAAW,CAAE,cAAe,EAAM,EACvC,KAAK,oBAAsBgoL,EAC3B,KAAK,YAAcxnL,CAC3B,CACI,OAAOruB,EAAM,CACT,OAAIA,EAAK,WAAa,OACX,KAAK,mBAAmBA,EAAM,EAAK,EAEvC,KAAK,oBAAoB,OAAOA,CAAI,CACnD,CACI,mBAAmBwnC,EAAM5tC,EAAU,CAE/B,GAAI4tC,EAAK,MAAM,WAAa,eACxB,MAAM,IAAI,MAAM,sEAAsE,EAG1F,MAAM0qK,KAA4B7B,EAAa,qBAAqB,CAAC7oK,EAAK,QAASA,EAAK,UAAWA,EAAK,OAAQ,MAAS,EAAG,IAAI,GAAG,MAAM,EAAG,CAAC,EACvIgqC,EAAK0gI,GAAyBA,EAAsB,MAAM3D,GAAWA,IAAY,MAAS,EAC5F,KAAK,+BAA+B2D,EAAsB,KAAKiE,GAAgC,SAAS,CAAC,EACzG,OAEJ,GAAI3kI,IAAO,QAAa53E,EAEpB,OAAQ43E,IAAO,OAAY,OAAY2kI,GAAgC,QAAU3kI,EAGrF,MAAM2gI,EAAgB,CAClB,KAAK,OAAO3qK,EAAK,OAAO,EACxB,KAAK,OAAOA,EAAK,SAAS,EAC1B,KAAK,OAAOA,EAAK,MAAM,CAC1B,EACK4qK,EAAe,KAAK,wBAAwB,OAAS,EAC3D,YAAK,wBAAwB,KAAKD,CAAa,EAC/C,KAAK,+BAA+BA,EAAc,KAAKgE,GAAgC,SAAS,CAAC,EAAI/D,EAE9F+D,GAAgC,QAAU/D,CACzD,CACI,eAAepyM,EAAM,CACjB,OAAIA,EAAK,WAAa,OACX,KAAK,mBAAmBA,EAAM,EAAI,EAEtC,KAAK,oBAAoB,eAAeA,CAAI,CAC3D,CACI,OAAOwmF,EAAU,CACb,GAAI2vH,GAAgC,QAAU3vH,EAAU,CAEpD,MAAM4rH,GAAgB,CAAC+D,GAAgC,QAAU3vH,GAAY,EAC7E,GAAI4rH,GAAgB,KAAK,wBAAwB,OAC7C,MAAM,IAAI,MAAM,aAAa5rH,CAAQ,+DAA+D,EAExG,MAAMspH,EAAe,KAAK,wBAAwBsC,CAAY,EAC9D,OAAO,KAAK,YAAY,KAAK,KAAK,OAAOtC,EAAa,CAAC,CAAC,EAAG,KAAK,OAAOA,EAAa,CAAC,CAAC,EAAG,KAAK,OAAOA,EAAa,CAAC,CAAC,CAAC,CACjI,CAEQ,OAAO,KAAK,oBAAoB,OAAOtpH,CAAQ,CACvD,CACI,CAAC,WAAY,CACT,UAAWA,KAAY,KAAK,oBAAoB,UAAS,EACrD,MAAMA,EAEV,UAAWA,KAAY,KAAK,wBAAwB,KAAI,EACpD,MAAM2vH,GAAgC,QAAW,EAAI3vH,CAEjE,CACI,CAAC,kBAAkBgoH,EAAqB,CACpC,UAAW8D,KAAe,KAAK,yBAAyB9D,CAAmB,EACvE,MAAM,KAAK,OAAO8D,CAAW,CAEzC,CACI,CAAC,yBAAyB9D,EAAqB,CAC3C,QAASuH,KAAuB,KAAK,wBAAwB,KAAI,EAAI,CACjEA,EAAsBI,GAAgC,QAAW,EAAIJ,EACrE,MAAMC,EAAe,KAAK,OAAOD,CAAmB,KAC5C7qK,EAAY,cAAc8qK,EAAcxH,EAAoB,QAASA,EAAoB,UAAWA,EAAoB,OAAQA,EAAoB,KAAK,IAC7J,MAAMuH,EAEtB,CACA,CACA,EACAE,uCAAA,gCAA0CE,EAC1CA,EAAgC,QAAU,GAAK,GAC/CA,EAAgC,UAAY,wOClG5C,OAAO,eAAeC,qBAAS,aAAc,CAAE,MAAO,GAAM,EAChCA,qBAAA,qBAAG,OAC/B,MAAMvoL,EAAqBxK,wBAA2B,EAChD2iB,EAAe3e,mBAAqB,EAI1C,IAAAgvL,EAAA,KAA2B,CACvB,YAAYhoL,EAAc,IAAIR,EAAmB,YAAe,CAC5D,KAAK,SAAW,CAAE,cAAe,EAAO,EACxC,KAAK,YAAcQ,CAC3B,CACI,OAAOruB,EAAM,CACT,OAAO,OAAO,IAAI,WAAYgmC,EAAa,cAAchmC,CAAI,CAAC,EAAE,CACxE,CACI,eAAeA,EAAM,CACjB,OAAO,KAAK,OAAOA,CAAI,CAC/B,CACI,OAAOwmF,EAAU,CACb,MAAMr4E,EAAS,OAAO,OAAOq4E,CAAQ,EACrC,GAAIr4E,IAAW,OACX,MAAM,IAAI,MAAM,aAAa,OAAOq4E,CAAQ,CAAC,oCAAoC,EAErF,SAAWxgD,EAAa,cAAc73B,EAAO,MAAM,CAAC,EAAG,KAAK,WAAW,CAC/E,CACI,WAAY,CACR,MAAM,IAAI,MAAM,4BAA4B,CACpD,CACI,kBAAkBqgM,EAAqB,CACnC,MAAM,IAAI,MAAM,oCAAoC,CAC5D,CACI,yBAAyBA,EAAqB,CAC1C,MAAM,IAAI,MAAM,2CAA2C,CACnE,CACA,EACA4H,4BAAA,qBAA+BE,uKCnC/B,OAAO,eAAe,eAAS,aAAc,CAAE,MAAO,GAAM,wRCA5D,OAAO,eAAeC,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAMlG,EAAehtL,kBAAwB,EAK7C,IAAAmzL,EAAA,KAAsC,CAClC,YAAY59M,EAAS,CACjB,KAAK,SAAW,CACZ,sBAAuB,EAC1B,EACD,KAAK,WAAaA,EAAQ,WAC1B,KAAK,UAAY,IAAI,GAC7B,CACI,IAAI01B,EAAOx2B,EAAO,CACd,IAAIwc,EAAM,KAAK,UACXq8L,EAAY,GAChB,SAAW,CAAC9zN,EAAGmjB,CAAI,IAAKsuB,EAAM,QAAO,EAAI,CACrC,MAAMmoL,EAAYniM,EAClB,IAAIoiM,EAAUD,EAAU,IAAIz2M,CAAI,EAC3B02M,EAII75N,IAAMyxC,EAAM,OAAS,IAC1BqiL,EAAY,KAJZ+F,EAAU75N,IAAMyxC,EAAM,OAAS,EAAIx2B,EAAQ,IAAI,IAC/C2+M,EAAU,IAAIz2M,EAAM02M,CAAO,GAK/BpiM,EAAMoiM,CAClB,CACQ,MAAO,CAAC/F,CAChB,CACI,OAAOriL,EAAO,CACV,MAAMiiL,EAAO,KAAK,UACZC,EAAOD,EAAK,IAAIjiL,EAAM,CAAC,CAAC,EAC9B,GAAI,CAACkiL,EACD,MAAO,GAEX,MAAMC,EAAOD,EAAK,IAAIliL,EAAM,CAAC,CAAC,EAC9B,GAAI,CAACmiL,EACD,MAAO,GAEX,MAAMC,EAAOD,EAAK,IAAIniL,EAAM,CAAC,CAAC,EAC9B,GAAI,CAACoiL,EACD,MAAO,GAEX,MAAM3sJ,EAAM2sJ,EAAK,OAAOpiL,EAAM,CAAC,CAAC,EAEhC,OAAIy1B,GAAO2sJ,EAAK,OAAS,IACrBD,EAAK,OAAOniL,EAAM,CAAC,CAAC,EAChBmiL,EAAK,OAAS,IACdD,EAAK,OAAOliL,EAAM,CAAC,CAAC,EAChBkiL,EAAK,OAAS,GACdD,EAAK,OAAOjiL,EAAM,CAAC,CAAC,IAIzBy1B,CACf,CACI,IAAI5rD,EAAK,CACL,MAAMo2M,KAAc8B,EAAa,qBAAqBl4M,EAAK,KAAK,UAAU,EAE1E,GAAI,GAACo2M,GAAWA,EAAQ,SAAS,MAAS,GAG1C,OAAO,KAAK,WAAWA,CAAO,CACtC,CACI,WAAWz6E,EAAK,CACZ,MAAM08E,EAAO,KAAK,UAAU,IAAI18E,EAAI,CAAC,CAAC,EACtC,GAAI,CAAC08E,EACD,OAEJ,MAAMC,EAAOD,EAAK,IAAI18E,EAAI,CAAC,CAAC,EAC5B,GAAI,CAAC28E,EACD,OAEJ,MAAMC,EAAOD,EAAK,IAAI38E,EAAI,CAAC,CAAC,EAC5B,GAAK48E,EAGL,OAAOA,EAAK,IAAI58E,EAAI,CAAC,CAAC,CAC9B,CACI,CAAC,KAAKxlG,EAAO,CACT,MAAMwlG,KAAUu8E,EAAa,qBAAqB/hL,EAAO,KAAK,UAAU,EACxE,GAAKwlG,EAGL,UAAW6iF,KAAgB,KAAK,YAAY7iF,EAAKxlG,CAAK,EAClD,KAAM,CACFwlG,EAAI,CAAC,IAAM,OAAYxlG,EAAM,CAAC,EAAI,KAAK,WAAW,OAAOqoL,EAAa,CAAC,CAAC,EACxE7iF,EAAI,CAAC,IAAM,OAAYxlG,EAAM,CAAC,EAAI,KAAK,WAAW,OAAOqoL,EAAa,CAAC,CAAC,EACxE7iF,EAAI,CAAC,IAAM,OAAYxlG,EAAM,CAAC,EAAI,KAAK,WAAW,OAAOqoL,EAAa,CAAC,CAAC,EACxE7iF,EAAI,CAAC,IAAM,OAAYxlG,EAAM,CAAC,EAAI,KAAK,WAAW,OAAOqoL,EAAa,CAAC,CAAC,CAC3E,CAEb,CACI,CAAC,YAAY7iF,EAAKxlG,EAAO,CACrB,OAAO,MAAO,KACT,iBAAiB,EAAGwlG,EAAKxlG,EAAO,KAAK,UAAW,EAAE,CAC/D,CACI,CAAC,iBAAiB3uB,EAAOm0H,EAAKxlG,EAAOha,EAAKsiM,EAAa,CACnD,GAAIj3M,IAAUm0H,EAAI,OACd,KAAM,CAAC,GAAG8iF,CAAW,MAEpB,CACD,MAAMplI,EAAKsiD,EAAIn0H,CAAK,EAGpB,GAFoB2uB,EAAM3uB,CAAK,EAS1B,CAED,MAAMowM,EAAcv+H,EACpB,GAAIu+H,IAAgB,OAAW,CAC3B,MAAM8G,EAASviM,EAAI,IAAIy7L,CAAW,EAC9B8G,IACAD,EAAYj3M,CAAK,EAAI6xE,EACrB,MAAO,KACF,iBAAiB7xE,EAAQ,EAAGm0H,EAAKxlG,EAAOuoL,EAAQD,CAAW,EAExF,CACA,KAjBgB,UAAW,CAACz+M,EAAK0+M,CAAM,IAAKviM,EAAI,QAAO,EACnCsiM,EAAYj3M,CAAK,EAAIxH,EACrB,MAAO,KACF,iBAAiBwH,EAAQ,EAAGm0H,EAAKxlG,EAAOuoL,EAAQD,CAAW,CAepF,CACA,CACI,MAAMtoL,EAAO,CACT,OAAO,KAAK,WAAW,EAAGA,EAAO,KAAK,SAAS,CACvD,CACI,WAAW3uB,EAAO2uB,EAAOha,EAAK,CAC1B,MAAM47L,EAAc5hL,EAAM3uB,CAAK,EAC/B,IAAIkW,EAAQ,EAEZ,GAAKq6L,EAQA,CAED,MAAMH,EAAc,KAAK,WAAW,eAAeG,CAAW,EAC9D,GAAIH,IAAgB,OAAW,CAC3B,GAAIpwM,IAAU2uB,EAAM,OAAS,EACzB,OAAIha,EAAI,IAAIy7L,CAAW,EACZ,EAEJ,EAEX,MAAM8G,EAASviM,EAAI,IAAIy7L,CAAW,EAC9B8G,IACAhhM,GAAS,KAAK,WAAWlW,EAAQ,EAAG2uB,EAAOuoL,CAAM,EAErE,CACA,KAvB0B,CACd,GAAIl3M,IAAU2uB,EAAM,OAAS,EACzB,OAAOha,EAAI,KAEf,UAAWuiM,KAAUviM,EAAI,SACrBuB,GAAS,KAAK,WAAWlW,EAAQ,EAAG2uB,EAAOuoL,CAAM,CAEjE,CAiBQ,OAAOhhM,CACf,CACA,EACA0gM,uCAAA,gCAA0CO,4UCnK1C,OAAO,eAAeC,sCAAS,aAAc,CAAE,MAAO,GAAM,EACfA,sCAAA,sCAAG,OAChD,MAAM1G,EAAehtL,kBAAwB,EACvCkzL,EAAoClvL,uCAA4C,EAMtF,IAAA2vL,EAAA,cAAoDT,EAAkC,+BAAgC,CAClH,YAAY39M,EAAS,CACjB,MAAMA,CAAO,EACb,KAAK,SAAW,CACZ,sBAAuB,EAC1B,CACT,CACI,CAAC,YAAYk7H,EAAKxlG,EAAO,CACrB,OAAO,MAAO,KACT,uBAAuB,EAAGwlG,EAAKxlG,KAAW+hL,EAAa,mBAAmB/hL,CAAK,EAAG,KAAK,UAAW,CAAA,CAAE,CACjH,CACI,CAAC,uBAAuB3uB,EAAOm0H,EAAKxlG,EAAO2oL,EAAiB3iM,EAAKsiM,EAAa,CAC1E,GAAIj3M,IAAUm0H,EAAI,OACd,KAAM,CAAC,GAAG8iF,CAAW,MAEpB,CACD,MAAMplI,EAAKsiD,EAAIn0H,CAAK,EACduwM,EAAc5hL,EAAM3uB,CAAK,EAE/B,GAAKuwM,EAOA,GAAI+G,EAAgBt3M,CAAK,EAAG,CAC7B,MAAMu3M,EAAuB,KACxB,WAAW,yBAAyBhH,CAAW,EAEpD,UAAW6C,KAAuBmE,EAAsB,CACpD,MAAML,EAASviM,EAAI,IAAIy+L,CAAmB,EACtC8D,IACAD,EAAYj3M,CAAK,EAAIozM,EACrB,MAAO,KAAK,uBAAuBpzM,EAAQ,EAAGm0H,EAAKxlG,EAAO2oL,EAAiBJ,EAAQD,CAAW,EAEtH,CACA,KACiB,CAED,MAAM7G,EAAcv+H,EACpB,GAAIu+H,IAAgB,OAAW,CAC3B,MAAM8G,EAASviM,EAAI,IAAIy7L,CAAW,EAC9B8G,IACAD,EAAYj3M,CAAK,EAAI6xE,EACrB,MAAO,KAAK,uBAAuB7xE,EAAQ,EAAGm0H,EAAKxlG,EAAO2oL,EAAiBJ,EAAQD,CAAW,EAEtH,CACA,KA5BgB,UAAW,CAACz+M,EAAK0+M,CAAM,IAAKviM,EAAI,QAAO,EACnCsiM,EAAYj3M,CAAK,EAAIxH,EACrB,MAAO,KACF,uBAAuBwH,EAAQ,EAAGm0H,EAAKxlG,EAAO2oL,EAAiBJ,EAAQD,CAAW,CA0B3G,CACA,CACI,WAAWj3M,EAAO2uB,EAAOha,EAAK,CAC1B,MAAM47L,EAAc5hL,EAAM3uB,CAAK,EAC/B,IAAIkW,EAAQ,EAEZ,GAAKq6L,EAQA,GAAIA,EAAY,WAAa,WAAcG,EAAa,kBAAkBH,CAAW,EAAG,CACzF,MAAMgH,EAAuB,KAAK,WAAW,yBAAyBhH,CAAW,EAEjF,UAAW6C,KAAuBmE,EAC9B,GAAIv3M,IAAU2uB,EAAM,OAAS,EACrBha,EAAI,IAAIy+L,CAAmB,GAC3Bl9L,QAGH,CACD,MAAMghM,EAASviM,EAAI,IAAIy+L,CAAmB,EACtC8D,IACAhhM,GAAS,KAAK,WAAWlW,EAAQ,EAAG2uB,EAAOuoL,CAAM,EAEzE,CAEA,KACa,CAED,MAAM9G,EAAc,KAAK,WAAW,eAAeG,CAAW,EAC9D,GAAIH,IAAgB,OAAW,CAC3B,GAAIpwM,IAAU2uB,EAAM,OAAS,EACzB,OAAIha,EAAI,IAAIy7L,CAAW,EACZ,EAEJ,EAEX,MAAM8G,EAASviM,EAAI,IAAIy7L,CAAW,EAC9B8G,IACAhhM,GAAS,KAAK,WAAWlW,EAAQ,EAAG2uB,EAAOuoL,CAAM,EAErE,CACA,KAxC0B,CACd,GAAIl3M,IAAU2uB,EAAM,OAAS,EACzB,OAAOha,EAAI,KAEf,UAAWuiM,KAAUviM,EAAI,SACrBuB,GAAS,KAAK,WAAWlW,EAAQ,EAAG2uB,EAAOuoL,CAAM,CAEjE,CAkCQ,OAAOhhM,CACf,CACA,EACAkhM,6CAAA,sCAAgDI,0QC5GhD,OAAO,eAAeC,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAM/G,EAAehtL,kBAAwB,EAI7C,IAAAg0L,EAAA,KAAgC,CAC5B,YAAYz+M,EAAS,CACjB,KAAK,SAAW,CACZ,sBAAuB,EAC1B,EACD,KAAK,WAAaA,EAAQ,WAC1B,KAAK,cAAgB,CAAE,CAC/B,CACI,IAAI01B,EAAOx2B,EAAO,CACd,MAAMy4M,EAAO,KAAK,cACZC,EAAOD,EAAKjiL,EAAM,CAAC,CAAC,IAAMiiL,EAAKjiL,EAAM,CAAC,CAAC,EAAI,IAC3CmiL,EAAOD,EAAKliL,EAAM,CAAC,CAAC,IAAMkiL,EAAKliL,EAAM,CAAC,CAAC,EAAI,IAC3CoiL,EAAOD,EAAKniL,EAAM,CAAC,CAAC,IAAMmiL,EAAKniL,EAAM,CAAC,CAAC,EAAI,IACjD,OAAIoiL,EAAKpiL,EAAM,CAAC,CAAC,EACN,IAEXoiL,EAAKpiL,EAAM,CAAC,CAAC,EAAIx2B,EACV,GACf,CACI,OAAOw2B,EAAO,CACV,MAAMiiL,EAAO,KAAK,cACZC,EAAOD,EAAKjiL,EAAM,CAAC,CAAC,EAC1B,GAAI,CAACkiL,EACD,MAAO,GAEX,MAAMC,EAAOD,EAAKliL,EAAM,CAAC,CAAC,EAC1B,GAAI,CAACmiL,EACD,MAAO,GAEX,MAAMC,EAAOD,EAAKniL,EAAM,CAAC,CAAC,EAI1B,MAHI,CAACoiL,GAGD,CAACA,EAAKpiL,EAAM,CAAC,CAAC,EACP,IAEX,OAAOoiL,EAAKpiL,EAAM,CAAC,CAAC,EAEhB,OAAO,KAAKoiL,CAAI,EAAE,SAAW,IAC7B,OAAOD,EAAKniL,EAAM,CAAC,CAAC,EAChB,OAAO,KAAKmiL,CAAI,EAAE,SAAW,IAC7B,OAAOD,EAAKliL,EAAM,CAAC,CAAC,EAChB,OAAO,KAAKkiL,CAAI,EAAE,SAAW,GAC7B,OAAOD,EAAKjiL,EAAM,CAAC,CAAC,IAIzB,GACf,CACI,IAAIn2B,EAAK,CACL,MAAMo2M,KAAc8B,EAAa,qBAAqBl4M,EAAK,KAAK,UAAU,EAE1E,GAAI,GAACo2M,GAAWA,EAAQ,SAAS,MAAS,GAG1C,OAAO,KAAK,WAAWA,CAAO,CACtC,CACI,WAAWz6E,EAAK,CACZ,OAAO,KAAK,cAAcA,EAAI,CAAC,CAAC,IAAIA,EAAI,CAAC,CAAC,IAAIA,EAAI,CAAC,CAAC,IAAIA,EAAI,CAAC,CAAC,CACtE,CACI,CAAC,KAAKxlG,EAAO,CACT,MAAMwlG,KAAUu8E,EAAa,qBAAqB/hL,EAAO,KAAK,UAAU,EACxE,GAAI,CAACwlG,EACD,OAEJ,KAAM,CAAC88E,EAAKC,EAAKC,EAAKC,CAAG,EAAIj9E,EACvB,CAACk9E,EAAOlsK,EAAOC,EAAOksK,CAAK,EAAI3iL,EACrC,IAAI4iL,EACAC,EACAC,EACAC,EACAb,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,cACZe,EAAWV,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK1zF,CAAI,EAChBq0F,EAAeF,GAAS,KAAK,WAAW,OAAO,OAAO,SAASn0F,EAAM,EAAE,CAAC,EACxE,MAAM00F,EAAWV,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK5zF,CAAI,EAChBu0F,EAAersK,GAAS,KAAK,WAAW,OAAO,OAAO,SAAS83E,EAAM,EAAE,CAAC,EACxE,MAAM40F,EAAWV,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAWgB,KAAQD,EAAU,CACzBd,EAAOD,EAAKgB,CAAI,EAChBL,EAAersK,GAAS,KAAK,WAAW,OAAO,OAAO,SAAS0sK,EAAM,EAAE,CAAC,EACxE,MAAMC,EAAWX,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAWiB,KAAQD,EACfL,EAAeJ,GAAS,KAAK,WAAW,OAAO,OAAO,SAASU,EAAM,EAAE,CAAC,EACxE,KAAM,CAACT,EAAcC,EAAcC,EAAcC,CAAY,CAErF,CACA,CACA,CACA,CAEI,CAAC,YAAYv9E,EAAKxlG,EAAO,CACrB,KAAM,CAACsiL,EAAKC,EAAKC,EAAKC,CAAG,EAAIj9E,EAC7B,IAAI08E,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,cACZe,EAAWV,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK1zF,CAAI,EAChB,MAAM00F,EAAWV,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK5zF,CAAI,EAChB,MAAM40F,EAAWV,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAWgB,KAAQD,EAAU,CACzBd,EAAOD,EAAKgB,CAAI,EAChB,MAAMC,EAAWX,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAWiB,KAAQD,EACf,KAAM,CACF,OAAO,SAAS70F,EAAM,EAAE,EACxB,OAAO,SAASD,EAAM,EAAE,EACxB,OAAO,SAAS60F,EAAM,EAAE,EACxB,OAAO,SAASE,EAAM,EAAE,CAC3B,CAEzB,CACA,CACA,CACA,CACI,MAAMrjL,EAAO,CACT,IAAIzY,EAAQ,EACZ,MAAMi+G,KAAUu8E,EAAa,qBAAqB/hL,EAAO,KAAK,UAAU,EACxE,GAAI,CAACwlG,EACD,MAAO,GAEX,MAAM88E,EAAM98E,EAAI,CAAC,EACX+8E,EAAM/8E,EAAI,CAAC,EACXg9E,EAAMh9E,EAAI,CAAC,EACXi9E,EAAMj9E,EAAI,CAAC,EACjB,IAAI08E,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,cACZe,EAAWV,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK1zF,CAAI,EAChB,MAAM00F,EAAWV,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK5zF,CAAI,EAChB,MAAM40F,EAAWV,IAAQ,OAAaA,KAAOL,EAAO,CAACK,CAAG,EAAI,CAAE,EAAI,OAAO,KAAKL,CAAI,EAClF,UAAWgB,KAAQD,EACfd,EAAOD,EAAKgB,CAAI,EACZV,IAAQ,OACJA,KAAOL,GACP76L,IAIJA,GAAS,OAAO,KAAK66L,CAAI,EAAE,MAGnD,CACA,CACQ,OAAO76L,CACf,CACA,EACAuhM,iCAAA,0BAAoCE,kSCxKpC,OAAO,eAAeC,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAMlH,EAAehtL,kBAAwB,EACvC+zL,EAA8B/vL,iCAAsC,EAI1E,IAAAmwL,EAAA,cAA8CJ,EAA4B,yBAA0B,CAChG,YAAYx+M,EAAS,CACjB,MAAMA,CAAO,EACb,KAAK,SAAW,CACZ,sBAAuB,EAC1B,CACT,CACI,CAAC,qBAAqB0b,EAAKtU,EAAM,CAC7B,UAAW+yM,KAAuB,KAAK,WAAW,yBAAyB/yM,CAAI,EACvE+yM,KAAuBz+L,IACvB,MAAMy+L,EAGtB,CACI,CAAC,KAAKzkL,EAAO,CACT,MAAMwlG,KAAUu8E,EAAa,qBAAqB/hL,EAAO,KAAK,UAAU,EACxE,GAAI,CAACwlG,EACD,OAEJ,KAAM,CAAC88E,EAAKC,EAAKC,EAAKC,CAAG,EAAIj9E,EACvB,CAACk9E,EAAOlsK,EAAOC,EAAOksK,CAAK,EAAI3iL,EAC/B,CAAC0kL,EAAaC,EAAaC,EAAaC,CAAW,KAAQ9C,EAAa,mBAAmB/hL,CAAK,EACtG,IAAI4iL,EACAC,EACAC,EACAC,EACAb,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,cACZe,EAAYN,IAAU,OACvBgC,EAAc,KAAK,qBAAqBzC,EAAMS,CAAK,EAAKJ,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK1zF,CAAI,EAChBq0F,EAAe,CAAC8B,GAAehC,EAAQA,EAAQ,KAAK,WAAW,OAAO,OAAO,SAASn0F,EAAM,EAAE,CAAC,EAC/F,MAAM00F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK+rK,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK5zF,CAAI,EAChBu0F,EAAe,CAAC8B,GAAenuK,EAAQA,EAAQ,KAAK,WAAW,OAAO,OAAO,SAAS83E,EAAM,EAAE,CAAC,EAC/F,MAAM40F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK+rK,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAWgB,KAAQD,EAAU,CACzBd,EAAOD,EAAKgB,CAAI,EAChBL,EAAe,CAAC8B,GAAenuK,EAAQA,EAAQ,KAAK,WAAW,OAAO,OAAO,SAAS0sK,EAAM,EAAE,CAAC,EAC/F,MAAMC,EAAYT,IAAU,OACvBkC,EAAc,KAAK,qBAAqBzC,EAAMO,CAAK,EAAKF,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAWiB,MAAQD,EACfL,EAAe,CAAC8B,GAAelC,EAAQA,EAAQ,KAAK,WAAW,OAAO,OAAO,SAASU,GAAM,EAAE,CAAC,EAC/F,KAAM,CAACT,EAAcC,EAAcC,EAAcC,CAAY,CAErF,CACA,CACA,CACA,CAEI,CAAC,YAAYv9E,EAAKxlG,EAAO,CACrB,KAAM,CAACsiL,EAAKC,EAAKC,EAAKC,CAAG,EAAIj9E,EACvB,CAACk9E,EAAOlsK,EAAOC,EAAOksK,CAAK,EAAI3iL,EAC/B,CAAC0kL,EAAaC,EAAaC,EAAaC,CAAW,KAAQ9C,EAAa,mBAAmB/hL,CAAK,EACtG,IAAIkiL,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,cACZe,EAAYN,IAAU,OACvBgC,EAAc,KAAK,qBAAqBzC,EAAMS,CAAK,EAAKJ,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK1zF,CAAI,EAChB,MAAM00F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK+rK,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK5zF,CAAI,EAChB,MAAM40F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK+rK,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAWgB,KAAQD,EAAU,CACzBd,EAAOD,EAAKgB,CAAI,EAChB,MAAMC,EAAYT,IAAU,OACvBkC,EAAc,KAAK,qBAAqBzC,EAAMO,CAAK,EAAKF,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAWiB,KAAQD,EACf,KAAM,CACF,OAAO,SAAS70F,EAAM,EAAE,EACxB,OAAO,SAASD,EAAM,EAAE,EACxB,OAAO,SAAS60F,EAAM,EAAE,EACxB,OAAO,SAASE,EAAM,EAAE,CAC3B,CAEzB,CACA,CACA,CACA,CACI,MAAMrjL,EAAO,CACT,IAAIzY,EAAQ,EACZ,MAAMi+G,KAAUu8E,EAAa,qBAAqB/hL,EAAO,KAAK,UAAU,EACxE,GAAI,CAACwlG,EACD,MAAO,GAEX,KAAM,CAAC88E,EAAKC,EAAKC,EAAKC,CAAG,EAAIj9E,EACvB,CAACk9E,EAAOlsK,EAAOC,EAAOksK,CAAK,EAAI3iL,EAC/B,CAAC0kL,EAAaC,EAAaC,EAAaC,CAAW,KAAQ9C,EAAa,mBAAmB/hL,CAAK,EACtG,IAAIkiL,EACAC,EACAC,EACJ,MAAMH,EAAO,KAAK,cACZe,EAAYN,IAAU,OACvBgC,EAAc,KAAK,qBAAqBzC,EAAMS,CAAK,EAAKJ,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAW1zF,KAAQy0F,EAAU,CACzBd,EAAOD,EAAK1zF,CAAI,EAChB,MAAM00F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK+rK,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAW5zF,KAAQ20F,EAAU,CACzBd,EAAOD,EAAK5zF,CAAI,EAChB,MAAM40F,EAAYzsK,IAAU,OACvBmuK,EAAc,KAAK,qBAAqBzC,EAAM1rK,CAAK,EAAK+rK,KAAOL,EAAO,CAACK,CAAG,EAAI,GAC/E,OAAO,KAAKL,CAAI,EACpB,UAAWgB,KAAQD,EACfd,EAAOD,EAAKgB,CAAI,EACZR,IAAU,OACNkC,EACAt9L,GAAS,CAAC,GAAG,KAAK,qBAAqB66L,EAAMO,CAAK,CAAC,EAAE,OAEhDF,KAAOL,GACZ76L,IAIJA,GAAS,OAAO,KAAK66L,CAAI,EAAE,MAGnD,CACA,CACQ,OAAO76L,CACf,CACA,EACA0hM,uCAAA,gCAA0CE,4LCtJ1C,OAAO,eAAe,iBAAS,aAAc,CAAE,MAAO,GAAM,qJCA5D,OAAO,eAAe,YAAS,aAAc,CAAE,MAAO,GAAM,qICA5D,IAAI1wL,EAAmBC,WAAQA,UAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,WAAQA,UAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0BAA2C,EAAE+D,CAAO,EACjED,EAAaE,uBAA2C,EAAED,CAAO,EACjED,EAAaG,+BAAmD,EAAEF,CAAO,EACzED,EAAaI,kCAAsD,EAAEH,CAAO,EAC5ED,EAAaK,2CAA+D,EAAEJ,CAAO,EACrFD,EAAaM,4BAAgD,EAAEL,CAAO,EACtED,EAAaO,mCAAuD,EAAEN,CAAO,EAC7ED,EAAaQ,uCAA2D,EAAEP,CAAO,EACjFD,EAAa6D,4BAAgD,EAAE5D,CAAO,EACtED,EAAa8D,sBAAqC,EAAE7D,CAAO,EAC3DD,EAAa+D,8BAA6C,EAAE9D,CAAO,EACnED,EAAagE,oCAAmD,EAAE/D,CAAO,EACzED,EAAaiE,uCAAsD,EAAEhE,CAAO,EAC5ED,EAAakE,6CAA4D,EAAEjE,CAAO,EAClFD,EAAamE,iCAAgD,EAAElE,CAAO,EACtED,EAAaoE,uCAAsD,EAAEnE,CAAO,EAC5ED,EAAaqE,wBAAiC,EAAEpE,CAAO,EACvDD,EAAasE,kBAA2B,EAAErE,CAAO,EACjDD,EAAauE,mBAA4B,EAAEtE,CAAO,EAClDD,EAAawE,gBAAyB,EAAEvE,CAAO,uKClC/C,OAAO,eAAe,eAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,eAAA,YAAsBswL,EACtB,MAAMC,EAAet0L,iBAAqB,EAU1C,SAASq0L,EAAY/5G,EAAQ,CACzB,MAAMg2B,EAAQgkF,EAAa,SAAS,cAAe,EACnD,OAAO,IAAI,QAAQ,CAACh/I,EAASC,IAAW+6D,EAAM,OAAOh2B,CAAM,EACtD,GAAG,QAAS/kC,CAAM,EAClB,KAAK,MAAO,IAAMD,EAAQg7D,CAAK,CAAC,CAAC,CAC1C,6RCjBA,OAAO,eAAeikF,uCAAS,aAAc,CAAE,MAAO,GAAM,EACdA,uCAAA,uCAAG,OACjD,MAAMC,EAA4Fx0L,aAAA,EAC5F8nL,EAAkG9jL,aAAA,EAClGsC,EAAwDrC,cAAA,EACxDO,EAAkCN,cAAA,EAClC63J,EAAsE53J,cAAA,EACtEswL,EAAqBrwL,sBAA2B,EAItD,IAAAswL,EAAA,cAAqD5M,EAAuC,kCAAmC,CAC3H,YAAYtxM,EAAM,CACd,MAAMA,EAAM,MAAM,CAC1B,CACI,MAAM,aAAasuB,EAAS,CACxB,SAAWN,EAAO,UAAU,CAAE,aAAc,CAAC,CAAE,CACvD,CACI,MAAM,IAAI7D,EAAQ,CACd,KAAK,QAAQA,EAAO,QAAS,8BAA8BA,EAAO,GAAG,EAAE,EACvE,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFnwB,EAAS,IAAIq+M,EAAoC,iBAAiB,QAAUC,EAAmB,aAAa9zL,EAAO,KAAK,EAAGqK,EAAa,MAAM+wJ,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bp7J,EAAO,QAASqK,CAAW,CAAC,EACnQ,OAAA70B,EAAO,SAAW,IAAM,oBAAoBwqB,EAAO,GAAG,IACtDxqB,EAAO,eAAiBwqB,EAAO,IACxB,CAAE,OAAAxqB,CAAQ,CACzB,CACA,EACAo+M,8CAAA,uCAAiDI,+IC3BjD,IAAIjxL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,8CAAmD,EAAE+D,CAAO,mVCfzE,OAAO,eAAe6wL,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAMpwL,EAAkCxE,cAAA,EAYxC,IAAA60L,EAAA,cAA8CrwL,EAAO,KAAM,CAMvD,YAAYhuB,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,uBAAyBA,EAAK,uBACnC,KAAK,wBAA0BA,EAAK,wBACpC,KAAK,6BAA+BA,EAAK,4BACjD,CACA,EACAo+M,uCAAA,gCAA0CE,wIC3B1C,IAAIpxL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uCAA4C,EAAE+D,CAAO,yMCflE,OAAO,eAAegxL,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAMzuL,EAAwDtG,cAAA,EACxDg1L,EAA0DhxL,cAAA,EAC1DknC,EAAoBjnC,uBAA0B,EACpD,IAAAgxL,EAAA,MAAMC,WAA2BF,EAAS,eAAgB,CACtD,YAAYl2M,EAASq2M,EAAyB,CAC1C,MAAMr2M,EAAQ,QAAQwnB,EAAkB,wBAAwB,iBAAiB,CAAC,EAClF,KAAK,QAAUxnB,EACf,KAAK,wBAA0Bq2M,CACvC,CACI,MAAM,iBAAiBt4K,EAAM,CACzB,MAAMt2B,EAAQ2kD,EAAkB,QAAQ,gBACxC,OAAQruB,EAAK,eAAc,CACvB,KAAKt2B,EAAM,KACP,OAAO,KAAK,cAAcs2B,CAAI,EAClC,KAAKt2B,EAAM,SACP,OAAO,MAAM,KAAK,kBAAkBs2B,CAAI,EAC5C,KAAKt2B,EAAM,MACP,OAAO,MAAM,KAAK,eAAes2B,CAAI,EACzC,KAAKt2B,EAAM,UACP,OAAO2uM,GAAmB,mBAAmBr4K,CAAI,EACrD,KAAKt2B,EAAM,UACP,OAAO2uM,GAAmB,mBAAmBr4K,CAAI,EACrD,KAAKt2B,EAAM,SACP,OAAO2uM,GAAmB,kBAAkBr4K,CAAI,CAChE,CACA,CACI,OAAO,kBAAkBlgC,EAAM,CAC3B,OAAO,IAAIq4M,EAAS,UAAUr4M,EAAK,SAAS,KAAK,CACzD,CACI,MAAM,YAAY0kC,EAAUxE,EAAM,CAC9B,MAAMu4K,EAAe,MAAM,KAAK,wBAAwB,QAAQ,CAC5D,aAAc/zK,EACd,UAAWxE,EAAK,KAChB,QAAS,KAAK,OAC1B,CAAS,EACKw4K,EAAe,MAAM,QAAQ,IAAIx4K,EAAK,KAAK,IAAIJ,GAAO,KAAK,iBAAiBA,CAAG,CAAC,CAAC,EACvF,GAAI,CAAC24K,EAAa,WAAWC,CAAY,EACrC,MAAM,IAAIL,EAAS,aAAaK,EAAch0K,CAAQ,EAE1D,OAAO,IAAI2zK,EAAS,SAAS3zK,EAAUg0K,EAAcD,EAAa,KAAK,CAC/E,CACI,MAAM,kBAAkBv4K,EAAM,CAC1B,OAAO,KAAK,YAAYA,EAAK,SAAS,YAAa,EAAEA,CAAI,CACjE,CACI,MAAM,eAAeA,EAAM,CACvB,OAAO,KAAK,YAAYA,EAAK,KAAK,MAAOA,CAAI,CACrD,CACI,OAAO,mBAAmBA,EAAM,CAC5B,MAAM1oC,EAAO0oC,EAAK,WAClB,OAAO,IAAIm4K,EAAS,UAAU7gN,EAAM0oC,CAAI,CAChD,CACI,OAAO,mBAAmBA,EAAM,CAC5B,OAAO,IAAIm4K,EAAS,UAAUn4K,CAAI,CAC1C,CACA,EACAk4K,0BAAA,mBAA6BG,8NCzD7B,OAAO,eAAeI,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAMhvL,EAAwDtG,cAAA,EACxDyI,EAAoCzE,cAAA,EACpCw6J,EAAsDv6J,cAAA,EACtDqkD,EAAoEpkD,cAAA,EACpEgnC,EAAoB/mC,uBAA0B,EAC9C4wL,EAAsD3wL,0BAAA,EAI5D,IAAAmxL,EAAA,KAAwB,CACpB,YAAYz2M,EAASq2M,EAAyB7b,EAAwB1xH,EAAiB,CACnF,KAAK,QAAU9oE,EACf,KAAK,uBAAyBw6L,EAC9B,KAAK,gBAAkB1xH,EACvB,KAAK,cAAgB,CACjB,CAACn/C,EAAQ,eAAe,IAAI,EAAG,CAACoU,EAAM24K,IAAa,KAAK,KAAK34K,CAAI,EACjE,CAACpU,EAAQ,eAAe,QAAQ,EAAG,CAACoU,EAAM63B,IAAY,KAAK,SAAS73B,EAAM63B,CAAO,EACjF,CAACjsC,EAAQ,eAAe,QAAQ,EAAG,CAACoU,EAAM63B,IAAY,KAAK,aAAa73B,EAAM63B,CAAO,EACrF,CAACjsC,EAAQ,eAAe,SAAS,EAAG,CAACoU,EAAM63B,IAAY,KAAK,cAAc73B,EAAM63B,CAAO,EACvF,CAACjsC,EAAQ,eAAe,SAAS,EAAG,CAACgtL,EAAOD,IAAa,KAAK,cAAe,CAChF,EACD,KAAK,YAAc,IAAIT,EAAqB,mBAAmBj2M,EAASq2M,CAAuB,CACvG,CACI,MAAM,8BAA8Bt4K,EAAM63B,EAAS,CAE/C,OADkB,KAAK,cAAc73B,EAAK,cAAc,EACvC,KAAK,IAAI,EAAEA,EAAM63B,CAAO,CACjD,CACI,KAAK73B,EAAM,CACP,OAAOA,CACf,CACI,SAASA,EAAM63B,EAAS,CACpB,MAAM/3D,EAAO+3D,EAAQ,IAAI8pH,EAAK,gBAAgB,KAAK,QAAQ,QAAQl4J,EAAkB,cAAc,WAAW,EAAGuW,CAAI,CAAC,EACtH,GAAI,CAAClgC,EACD,MAAM,IAAI6hL,EAAK,qBAAqB3hJ,EAAK,KAAM63B,CAAO,EAE1D,OAAO,KAAK,YAAY,uBAAuB/3D,CAAI,CAC3D,CACI,MAAM,aAAakgC,EAAM63B,EAAS,CAC9B,OAAO73B,EAAK,MAAM,CACd,KAAMA,EAAK,KACX,QAAA63B,EACA,SAAU,IACtB,CAAS,CACT,CACI,MAAM,cAAc73B,EAAM63B,EAAS,CAC/B,MAAM1pC,EAAc,KAAK,QAAQ,QAAQ1E,EAAkB,cAAc,WAAW,EAC9Es7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1DoM,KAAgBkxC,EAAwB,sBAAsBzrC,EAAK,WAAW,MAAO63B,EAASkN,EAAgB,KAAK,eAAe,EAClIg1H,EAAY,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAAx/J,EAAW,QAAS,KAAK,QAAS,EAC1FxW,KAAa0nD,EAAwB,iBAAiBsuH,CAAS,EACrE,OAAO,MAAM,IAAI,QAAQ,CAACthI,EAASC,IAAW,CAC1C30C,EAAO,eAAe,GAAG,MAAO,IAAM,CAClC00C,EAAQ,EAAK,CAC7B,CAAa,EACD10C,EAAO,eAAe,GAAG,QAAS20C,CAAM,EACxC30C,EAAO,eAAe,GAAG,OAAQ,IAAM,CACnCA,EAAO,eAAe,MAAO,EAC7B00C,EAAQ,EAAI,CAC5B,CAAa,CACJ,CAAA,EACI,KAAMzjD,GAAWgrB,EAAK,WAAW,IAAM,CAAChrB,EAASA,CAAM,EACvD,KAAMA,GAAW,IAAI2sK,EAAK,eAAe3sK,CAAM,CAAC,CAC7D,CACI,eAAgB,CACZ,MAAM,IAAI2sK,EAAK,YACvB,CACA,EACA82B,yBAAA,kBAA4BI,2LCrE5B,OAAO,eAAeC,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAMrvL,EAAwDtG,cAAA,EACxDs1L,EAAoDtxL,yBAAA,EAC1D,IAAA4xL,EAAA,KAA0B,CACtB,YAAY92M,EAAS+9B,EAAMs4K,EAAyB7b,EAAwB1xH,EAAiB,CACzF,KAAK,QAAU9oE,EACf,KAAK,KAAO+9B,EACZ,KAAK,wBAA0Bs4K,EAC/B,KAAK,uBAAyB7b,EAC9B,KAAK,gBAAkB1xH,EACvB,KAAK,kBACD,IAAI0tI,EAAoB,kBAAkBx2M,EAASq2M,EAAyB7b,EAAwB1xH,CAAe,CAC/H,CACI,MAAM,SAASlT,EAAS,CAEpB,OADe,MAAM,KAAK,kBAAkB,8BAA8B,KAAK,KAAMA,CAAO,GAC9E,MAAM,KAAK,QAAQ,QAAQpuC,EAAkB,cAAc,WAAW,CAAC,CAC7F,CACI,MAAM,cAAcouC,EAAS,CAEzB,OADe,MAAM,KAAK,kBAAkB,8BAA8B,KAAK,KAAMA,CAAO,GAC9E,UAAW,CACjC,CACI,8BAA8BA,EAAS,CACnC,OAAO,KAAK,8BAA8B,KAAK,KAAMA,CAAO,CACpE,CACI,8BAA8B73B,EAAM63B,EAAS,CACzC,OAAO,KAAK,kBAAkB,8BAA8B73B,EAAM63B,CAAO,CACjF,CACA,EACAihJ,2BAAA,oBAA8BluL,4RC7B9B,OAAO,eAAeouL,uCAAS,aAAc,CAAE,MAAO,GAAM,EACdA,uCAAA,uCAAG,OACjD,MAAMC,EAA0F91L,aAAA,EAC1FsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtEkwC,EAA8EjwC,cAAA,EAC9E4wL,EAAsD3wL,0BAAA,EACtDuxL,EAAwDtxL,2BAAA,EAI9D,IAAA0xL,EAAA,cAAqDD,EAAmC,+BAAgC,CACpH,YAAYt/M,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKsuB,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMq1L,KAAkB5hJ,EAA6B,+BAA+BzzC,EAAO,OAAO,EAClG,OAAO,IAAIg1L,EAAsB,oBAAoBK,EAAa,MAAM,IAAIjB,EAAqB,mBAAmBiB,EAAa,KAAK,uBAAuB,EAAE,iBAAiBr1L,EAAO,OAAO,EAAG,KAAK,wBAAyB,KAAK,uBAAwB,MAAMo7J,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bp7J,EAAO,QAASA,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,CAAC,CAAC,CACjb,CACA,EACAuvL,8CAAA,uCAAiDI,+ICxBjD,IAAIvyL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,8CAAmD,EAAE+D,CAAO,oMCfzE,OAAO,eAAemyL,YAAS,aAAc,CAAE,MAAO,GAAM,EACzCA,YAAA,YAAG,OACtB,MAAM5vL,EAAwDtG,cAAA,EACxD+7J,EAAsE/3J,cAAA,EAI5E,IAAAmyL,EAAA,KAAkB,CACd,YAAYn3K,EAASo3K,EAAmCt3M,EAAS8oE,EAAiB/oC,EAAW,CACzF,KAAK,QAAUG,EACf,KAAK,kCAAoCo3K,EACzC,KAAK,QAAUt3M,EACf,KAAK,gBAAkB8oE,EACvB,KAAK,UAAY/oC,EACjB,KAAK,OAAS,IAAI,IAClB,KAAK,kBAAoB,IAAI,IAC7B,KAAK,eAAiB,IAAI,IAAI,KAAK,QAAQ,UAAU,IAAInkD,GAAKA,EAAE,KAAK,CAAC,EACtE,KAAK,YAAc,EACnB,KAAK,oBAAsB,EACnC,CAQI,gBAAgB4oD,EAAU,CACtB,MAAM+yK,EAAQ,KAAK,YAAa,EAChC,GAAIA,EACA,OAAOA,EAGX,KAAK,cAEL,MAAMpqM,EAAUq3B,EACX,OAAO,CAACroD,EAAGksC,IAAa,KAAK,eAAe,IAAIA,EAAS,KAAK,CAAC,EAC9DmvL,EAAY,KAAK,aAAarqM,CAAO,EAE3C,IAAIsqM,EAAmB,KAAK,kBAAkB,IAAID,CAAS,EACvD/sK,EACJ,GAAIgtK,EAAkB,CAClB,MAAMC,EAA0BD,EAChChtK,GAAO,SAAY,CACf,MAAMjM,EAAQ,MAAMk5K,EACpB,MAAM,QAAQ,IAAI,KAAK,QAAQ,WAAW,IAAI,MAAO1zK,GAAc,CAE/D,MAAM3b,EAAW2b,EAAU,SAAS,MACpC,MAAMxF,EAAM,YAAYnW,CAAQ,EAAE,YAAYmc,CAAQ,CAC1E,CAAiB,CAAC,CAClB,GAAgB,EAAC,KAAK,SAAY,CAClB,MAAM,KAAK,8BAA+B,CAC1D,CAAa,CACb,MAGYizK,GAAoB,SAAY,CAC5B,MAAMz7J,EAAc,CAAE,EACtB,MAAM,QAAQ,IAAI,KAAK,QAAQ,WAAW,IAAI,MAAOhY,GAAc,CAC/D,MAAMhuC,EAAMguC,EAAU,SAAS,MAC/BgY,EAAYhmD,CAAG,EAAI,MAAM,KAAK,kCACzB,QAAQ,CAAE,KAAMguC,EAAW,QAAS,KAAK,QAAS,EACvD,MAAMgY,EAAYhmD,CAAG,EAAE,YAAYwuC,CAAQ,CAC/D,CAAiB,CAAC,EACF,MAAMhG,EAAQ,CAAE,YAAAwd,EAAa,SAAU7uC,CAAS,EAChD,YAAK,OAAO,IAAIqqM,EAAWh5K,CAAK,EAChC,MAAM,KAAK,8BAA+B,EACnCA,CACvB,GAAgB,EACJ,KAAK,kBAAkB,IAAIg5K,EAAWC,CAAgB,EACtDhtK,EAAMgtK,EAEV,OAAOhtK,CACf,CACI,MAAM,+BAAgC,CAC9B,EAAE,KAAK,cAAgB,GACvB,MAAM,KAAK,uBAAwB,CAE/C,CACI,MAAM,wBAAyB,CAC3B,MAAMve,EAAc,KAAK,QAAQ,QAAQ1E,EAAkB,cAAc,WAAW,EAEpF,IAAImwL,EAAO,MAAM,QAAQ,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,IAAI,MAAO,CAACx7N,EAAGqiD,CAAK,IAAM,CACpE,KAAM,CAAE,SAAUo5K,EAAe,YAAA57J,CAAa,EAAGxd,EAGjD,IAAIq5K,EAAiBD,EACrB,UAAWvvL,KAAY2zB,EAAa,CAChC,MAAMrmD,EAAQ,MAAMqmD,EAAY3zB,CAAQ,EAAE,OAAQ,EAC9C1yB,IAEAkiN,EAAiBA,EAAe,IAAI3rL,EAAY,SAAS7D,CAAQ,EAAG1yB,CAAK,EAE7F,CAEY,OAAOkiN,CACnB,CAAS,CAAC,EAIF,GAAIF,EAAK,SAAW,GAAK,KAAK,eAAe,OAAS,EAAG,CACrD,MAAMz2I,EAAS,CAAE,EACjB,MAAM,QAAQ,IAAI,KAAK,QAAQ,WAAW,IAAI,MAAOl9B,GAAc,CAC/D,MAAMhuC,EAAMguC,EAAU,SAGhBruC,EAAQ,MAFK,MAAM,KAAK,kCACzB,QAAQ,CAAE,KAAMquC,EAAW,QAAS,KAAK,QAAS,GACxB,OAAQ,EACnCruC,IAAU,QACVurE,EAAO,KAAK,CAAClrE,EAAKL,CAAK,CAAC,CAE5C,CAAa,CAAC,EACFgiN,EAAO,CAAC,KAAK,gBAAgB,SAASz2I,CAAM,CAAC,CACzD,CACQ,KAAK,aAAay2I,CAAI,CAC9B,CACI,aAAc,CACV,GAAI,KAAK,oBACL,OAAO,QAAQ,OAAO,IAAI,MAAM,8DAA8D,CAAC,CAE3G,CAOI,MAAM,gBAAiB,CACnB,MAAMJ,EAAQ,KAAK,YAAa,EAChC,GAAIA,EACA,OAAOA,EAEX,KAAK,oBAAsB,GAC3B,MAAM9sK,EAAM,IAAI,QAAS+rB,GAAY,CACjC,KAAK,aAAeA,CAChC,CAAS,EACD,aAAM,KAAK,8BAA+B,EACnC/rB,CACf,CAII,aAAajG,EAAU,CACnB,SAAWy4I,EAAyB,yBAAyBz4I,EAAU,KAAK,SAAS,CAC7F,CACA,EACA4yK,mBAAA,YAAsBU,8MCjJtB,OAAO,eAAeC,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAM7jC,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtEokD,EAAoEnkD,cAAA,EACpE29C,EAA0C19C,qBAAA,EAC1C8xL,EAAwC7xL,mBAAA,EAI9C,IAAAyyL,EAAA,cAAuC9jC,EAAsB,gCAAiC,CAC1F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,OAAO,EACnB,KAAK,kCAAoCA,EAAK,iCACtD,CACI,MAAM,eAAgB,CAClB,SAAWguB,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEshD,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bj9K,EAASksB,CAAW,EAE/H,CAAE,MAAA8P,EAAO,WAAA8D,CAAU,EAAKxH,EACxBw/J,EAAY,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAW97J,EAAO,QAAAh8B,EAAS,EACnF8hB,KAAa0nD,EAAwB,iBAAiBsuH,CAAS,EAI/D/3J,EAAY,CACd,GAAGzH,EAAU,UACb,GAAGwH,EAAW,IAAIjH,GAAOA,EAAI,QAAQ,CACjD,EAAU,IAAIxQ,IAAa,CAAE,SAAAA,EAAU,WAAY,EAAK,EAAG,EAC7C4vL,GAAkB,MAAMn2L,EAAO,SAAQ,GAAI,UAAU,IAAIvmC,GAAKA,EAAE,QAAQ,EA2B9E,MAAO,CACH,KAAM,WACN,eA3BmB,IAAIynF,EAAgB,kBAAkB,IAAM,IAAI,QAAQ,CAACxM,EAASC,IAAW,CAChG,MAAMrpD,EAAS,IAAIgqM,EAAc,YAAY9+K,EAAW,KAAK,kCAAmCt4B,EAAS8oE,EAAiBmvI,CAAc,EAMxIn2L,EAAO,eAAe,GAAG,MAAO,SAAY,CACxC,GAAI,CACA,MAAMo2L,EAAsB,IAAIl1I,EAAgB,cAAc,MAAM51D,EAAO,iBAAkB,CAAE,UAAW,GAAO,EACjHopD,EAAQ0hJ,CAAmB,CAC/C,OACuBj8M,EAAO,CACVw6D,EAAOx6D,CAAK,CAChC,CACA,CAAa,EAED6lB,EAAO,eAAe,GAAG,QAAS20C,CAAM,EAIxC30C,EAAO,eAAe,GAAG,OAAS0iB,GAAa,CAC3Cp3B,EAAO,gBAAgBo3B,CAAQ,EAAE,MAAMiyB,CAAM,CAC7D,CAAa,CACb,CAAS,EAAG,CAAE,UAAW,GAAO,EAIpB,SAAU,UAAa,CAAE,GAAG,MAAM30C,EAAO,SAAQ,EAAI,UAAAie,GACxD,CACT,CACA,EACAg4K,gCAAA,yBAAmCI,iICpEnC,IAAIvzL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gCAAqC,EAAE+D,CAAO,0OCf3D,OAAO,eAAemzL,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMlkC,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtE8xC,EAAsD7xC,cAAA,EACtD29C,EAA0C19C,qBAAA,EAKhD,IAAA+yL,EAAA,cAAqCnkC,EAAsB,gCAAiC,CACxF,YAAYx8K,EAAM,CACd,MAAMA,EAAM,KAAK,CACzB,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEshD,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bj9K,EAASksB,CAAW,EACrI,MAAO,CACH,eAAgB,IAAI82C,EAAgB,kBAAkB8F,EAAgB,SAAQ,CAAE,EAChF,SAAU,IAAM,QAAQ,QAAQ,CAC5B,MAAO,IAAI5R,EAAiB,wBAC5B,YAAa,CAAE,KAAM,QAAS,MAAO,CAAG,EACxC,UAAW,CAAE,CAC7B,CAAa,EACD,KAAM,UACT,CACT,CACA,EACAkhJ,8BAAA,uBAAiCE,+HCjCjC,IAAI1zL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,8BAAmC,EAAE+D,CAAO,kQCfzD,OAAO,eAAeszL,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMrkC,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtE8xC,EAAsD7xC,cAAA,EACtDmkD,EAAoElkD,cAAA,EACpE09C,EAA0Cz9C,qBAAA,EAKhD,IAAAizL,EAAA,cAAyCtkC,EAAsB,gCAAiC,CAC5F,YAAYx8K,EAAM,CACd,MAAMA,EAAM,SAAS,CAC7B,CACI,MAAM,cAAc4gC,EAAW+yD,EAAU,CACrC,OAAI/yD,EAAU,KAAK,WAAa,eACjB5S,EAAO,UAAU,GAAG,KAAK,IAAI,4CAA4C4S,EAAU,KAAK,QAAQ,aAAa,KAEjH5S,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CAEnC,KAAM,CAAE,YAAAk+L,CAAa,EAAG,MAAM,KAAK,4BAA4B,QAAQ,CACnE,wBAAyB,CACrB,MAAO5lK,EAAU,KAAK,MACtB,KAAM,KAAK,oBAAsB,SAAW,MAC/C,EACD,QAAAt4B,CACZ,CAAS,EAED,IAAI8hB,EACJ,GAAI,CACAA,KAAa0nD,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAC5F,aAAeA,EAAwB,uBAAuBlxC,EAAU,MAAO4lK,CAAW,EAC1F,QAAAl+L,CAChB,CAAa,CAAC,CACd,OACe/D,EAAO,CACV,GAAIq8B,EAAU,OAAQ,CAElB,MAAMpM,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEshD,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bj9K,EAASksB,CAAW,EACrIpK,EAAS,CACL,eAAgB,IAAIkhD,EAAgB,kBAAkB8F,EAAgB,SAAQ,CAAE,EAChF,KAAM,WACN,SAAU,UAAa,CACnB,MAAO,IAAI5R,EAAiB,wBAC5B,YAAa,CAAE,KAAM,QAAS,MAAO,CAAG,EACxC,UAAW,CAAE,CACrC,EACiB,EACD,KAAK,QAAQl3D,EAAS,sDAAsD/D,EAAM,OAAO,EAAE,CAC3G,KAEgB,OAAMA,CAEtB,CACQ,OAAO6lB,CACf,CACA,EACAy2L,kCAAA,2BAAqCE,mIC/DrC,IAAI7zL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,4PCf7D,OAAO,eAAeyzL,0BAAS,aAAc,CAAE,MAAO,GAAM,EAC3BA,0BAAA,0BAAG,OACpC,MAAMxkC,EAAgEhzJ,cAAA,EAChEsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtE8xC,EAAsD7xC,cAAA,EACtD29C,EAA0C19C,qBAAA,EAIhD,IAAAqzL,EAAA,cAAwCzkC,EAAsB,wBAAyB,CACnF,YAAYx8K,EAAM,CACd,MAAMA,EAAM,QAAQ,CAC5B,CACI,MAAM,cAAcu+L,EAAY5qG,EAAU,CACtC,SAAW3lE,EAAO,cAAe,CACzC,CACI,MAAM,aAAa4S,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEshD,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bj9K,EAASksB,CAAW,EAYrI,MAAO,CAAE,KAAM,WAAY,eAXJ,IAAI82C,EAAgB,cAAc1qC,EAAU,SAC9D,IAAI18C,GAAKktF,EAAgB,SAAS,OAAO,QAAQltF,CAAC,EAClD,IAAI,CAAC,CAACoa,EAAKL,CAAK,IAAM,CAACu2B,EAAY,SAASl2B,EAAI,MAAM,CAAC,CAAC,EAAGL,CAAK,CAAC,CAAC,CAAC,CAAC,EAS9B,SAR1B,IAAM,QAAQ,QAAQ,CACnC,MAAO,IAAIuhE,EAAiB,wBAC5B,YAAa,CAAE,KAAM,QAAS,MAAO5+B,EAAU,SAAS,MAAQ,EAChE,UAAWA,EAAU,UAAU,IAAIjQ,IAAa,CAC5C,SAAAA,EACA,WAAYiQ,EAAU,SAAS,KAAKkM,GAAY,EAAE,IAAInc,EAAS,KAAK,KAAMmc,EAAS,CACnG,EAAc,CACd,CAAS,CACoD,CAC7D,CACA,EACAk0K,iCAAA,0BAAoCE,kICnCpC,IAAIh0L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iCAAsC,EAAE+D,CAAO,sSCf5D,OAAO,eAAe4zL,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAM1c,EAAgEj7K,aAAA,EAChEsG,EAAwDtC,cAAA,EACxD+3J,EAAsE93J,cAAA,EACtEqkD,EAAoEpkD,cAAA,EACpE49C,EAA0C39C,qBAAA,EAC1C+mC,EAAoB9mC,uBAA0B,EAIpD,IAAAwzL,EAAA,cAA+C3c,EAAsB,iBAAkB,CACnF,YAAYzkM,EAAM,CACd,MAAMA,EAAM00D,EAAkB,QAAQ,MAAM,gBAAgB,CACpE,CACI,MAAM,aAAa9zB,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1D48C,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bj9K,EAASksB,CAAW,EAC/H+X,EAAW,MAAM,KAAK,8BAA8B6+B,EAAgB9iE,EAASs4B,CAAS,EAC5F,GAAI2L,EAAS,UACT,OAAOA,EAAS,UAEpBjkC,EAAUikC,EAAS,QACnB,MAAMh3B,EAAYqrB,EAAU,UAC5B,GAAIA,EAAU,QAAQ,WAAa,YAAcA,EAAU,OAAO,WAAa,WAAY,CACvF,MAAMqjK,EAAYrjK,EAAU,OACtBygL,EAAW,MAAM,KAAK,4BAA4BzgL,EAAU,QAASrrB,EAAU,KAAM0uL,EAAWrjK,EAAU,MAAOt4B,EAAS,GAAO8iE,EAAgBgG,CAAe,EAChK/oC,GAAazH,EAAU,MAAM,WAAa,WAAa,CAACqjK,EAAWrjK,EAAU,KAAK,EAAI,CAACqjK,CAAS,GACjG,IAAItzK,IAAa,CAAE,SAAAA,EAAU,WAAY,EAAO,EAAC,EACtD,MAAO,CACH,KAAM,WACN,eAAgB0wL,EAAS,eACzB,SAAU,UAAa,CAAE,GAAG,MAAMA,EAAS,SAAQ,EAAI,UAAAh5K,GAC1D,CACb,CACQ,GAAIzH,EAAU,QAAQ,WAAa,YAAcA,EAAU,OAAO,WAAa,WAAY,CAEvF,MAAM4oC,EAAS4B,EAAe,eAAeA,EAAe,WAAWxqC,EAAU,QAASA,EAAU,UAAU,KAAMA,EAAU,OAAQA,EAAU,KAAK,CAAC,EAChJ90B,KAAcgmE,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,QAAAxpE,EAAS,UAAWkhE,CAAQ,CAAA,CAAC,EAChIw6H,EAAapjK,EAAU,QACvBqjK,EAAYrjK,EAAU,OACtBkjK,EAAa,CAAE,EACfrgF,EAAiB,IAAIn4C,EAAgB,uBAAuBx/D,EAAQ,eAAgB,CACtF,eAAiBghC,GAAa,CAC1B,MAAMh9B,EAAUg9B,EAAS,IAAIk3J,CAAU,EACjC3wL,EAASy5B,EAAS,IAAIm3J,CAAS,EAC/BxwK,EAAQmN,EAAU,MAAM,WAAa,WAAakM,EAAS,IAAIlM,EAAU,KAAK,EAAIA,EAAU,MAClG,OAAO,IAAI0qC,EAAgB,kBAAkB,SAAY,CACrD,MAAM1hF,EAAK,IAAI0hF,EAAgB,iBAC/B,aAAM,KAAK,yCAAyC04H,EAAYC,EAAWn0L,EAASuD,EAAQkC,EAAU,KAAMke,EAAOnrB,EAASw7L,EAAY,CAAE,EAAEl6M,EAAI,CAAE,MAAO,CAAG,EAAEwhF,EAAgBgG,CAAe,EACtLxnF,EAAG,IAAKqhB,IACP21B,EAAU,MAAM,WAAa,aAC7B31B,EAAOA,EAAK,IAAI21B,EAAU,MAAOnN,CAAK,GAEnCxoB,EACV,CACJ,EAAE,CAAE,UAAW,GAAO,cAAe,GAAG,CAAE,CAC9C,EACD,UAAW,EAC3B,CAAa,EACKo9B,GAAazH,EAAU,MAAM,WAAa,WAC5C,CAACojK,EAAYC,EAAWrjK,EAAU,KAAK,EACvC,CAACojK,EAAYC,CAAS,GACrB,IAAItzK,IAAa,CAAE,SAAAA,EAAU,WAAY,EAAO,EAAC,EACtD,MAAO,CACH,KAAM,WACN,eAAA8yF,EACA,SAAU,UAAa,CAAE,GAAG,MAAM33G,EAAQ,SAAQ,EAAI,UAAAu8B,GACzD,CACb,CACQ,GAAIzH,EAAU,QAAQ,WAAa,YAAcA,EAAU,OAAO,WAAa,WAC3E,OAAO,KAAK,uBAAuB,QAAQ,CACvC,QAAAt4B,EACA,UAAW8iE,EAAe,WAAWxqC,EAAU,OAAQwqC,EAAe,oBAAoBA,EAAe,UAAU71D,EAAU,IAAI,CAAC,EAAGqrB,EAAU,QAASA,EAAU,KAAK,CACvL,CAAa,EAGL,MAAMjQ,EAAW,KAAK,iBAAiB6D,CAAW,EAC5C1oB,KAAcgmE,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CACnG,QAAAxpE,EACA,UAAW8iE,EAAe,WAAWxqC,EAAU,QAASrrB,EAAWob,EAAUiQ,EAAU,KAAK,CACxG,CAAS,CAAC,EASF,MAAO,CACH,KAAM,WACN,eAVmB90B,EAAQ,eAAe,IAAKb,GAC3C21B,EAAU,OAAO,OAAO31B,EAAK,IAAI0lB,CAAQ,CAAC,EACnCiQ,EAAU,MAAM,WAAa,WAChCwwC,EAAgB,SAAS,CAAC,CAACxwC,EAAU,MAAO31B,EAAK,IAAI21B,EAAU,KAAK,CAAC,CAAC,CAAC,EACvEwwC,EAAgB,SAAU,EAE3B,IACV,EAIG,SAAU,UAAa,CACnB,GAAG,MAAMtlE,EAAQ,SAAU,EAC3B,WAAY80B,EAAU,MAAM,WAAa,WAAa,CAACA,EAAU,KAAK,EAAI,CAAE,GACvE,IAAIjQ,IAAa,CAAE,SAAAA,EAAU,WAAY,EAAO,EAAC,CACtE,EACS,CACT,CACA,EACAwwL,wCAAA,iCAA2CG,yICtG3C,IAAIp0L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,4SCfnE,OAAO,eAAeg0L,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,MAAM9c,EAAgEj7K,aAAA,EAChEsG,EAAwDtC,cAAA,EACxD+3J,EAAsE93J,cAAA,EACtEqkD,EAAoEpkD,cAAA,EACpE49C,EAA0C39C,qBAAA,EAC1Cwe,EAAeve,mBAAqB,EACpC8mC,EAAoB7mC,uBAA0B,EAIpD,IAAA2zL,EAAA,cAAgD/c,EAAsB,iBAAkB,CACpF,YAAYzkM,EAAM,CACd,MAAMA,EAAM00D,EAAkB,QAAQ,MAAM,iBAAiB,CACrE,CACI,MAAM,aAAa9zB,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1D48C,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bj9K,EAASksB,CAAW,EAC/H+X,EAAW,MAAM,KAAK,8BAA8B6+B,EAAgB9iE,EAASs4B,CAAS,EAC5F,GAAI2L,EAAS,UACT,OAAOA,EAAS,UAEpBjkC,EAAUikC,EAAS,QACnB,MAAMh3B,EAAYqrB,EAAU,UACtBhnB,EAAU,KAAK,eAAerE,CAAS,EACvCksM,EAAO7gL,EAAU,QAAQ,WAAa,WACtC8gL,EAAO9gL,EAAU,OAAO,WAAa,WAC3C,GAAIA,EAAU,QAAQ,WAAa,YAAcA,EAAU,OAAO,WAAa,WAAY,CAEvF,MAAM8iK,EAAU,KAAK,iBAAiBlvK,EAAaoM,CAAS,EACtD4oC,EAAS,KAAK,qBAAqB4B,EAAgBA,EACpD,cAAcxqC,EAAU,QAAS8iK,EAAS9iK,EAAU,OAAQA,EAAU,KAAK,EAAGhnB,CAAO,EACpF9N,KAAcgmE,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,QAAAxpE,EAAS,UAAWkhE,CAAQ,CAAA,CAAC,EAChIw6H,EAAapjK,EAAU,QACvBqjK,EAAYrjK,EAAU,OAEtB4wF,EAAW,IAAI,IACfsyE,EAAa,CAAE,EACfrgF,EAAiB,IAAIn4C,EAAgB,uBAAuBx/D,EAAQ,eAAgB,CACtF,eAAiBghC,IAAa,CAE1B,MAAMh9B,GAAUg9B,GAAS,IAAIk3J,CAAU,EACjC3wL,GAASy5B,GAAS,IAAIm3J,CAAS,EAC/BxwK,GAAQmN,EAAU,MAAM,WAAa,WACvCkM,GAAS,IAAIlM,EAAU,KAAK,EAC5BA,EAAU,MAER+gL,MAAuBx1K,EAAa,cAAcr8B,EAAO,KAAQq8B,EAAa,cAAc1Y,EAAK,EACjGmuL,MAAsBz1K,EAAa,cAAc94B,EAAM,KAAQ84B,EAAa,cAAc1Y,EAAK,EACrG,OAAO,IAAI63C,EAAgB,kBAAkB,SAAY,CAErD,GAAIkmD,EAAS,IAAImwF,EAAgB,GAAKnwF,EAAS,IAAIowF,EAAe,EAC9D,OAAO,IAAIt2I,EAAgB,cAG/B,MAAM1hF,GAAK,IAAI0hF,EAAgB,iBACzBj5B,GAAU,CAAE,MAAO,CAAG,EAE5B,OAAKm/E,EAAS,IAAImwF,EAAgB,IAC9BnwF,EAAS,IAAImwF,EAAgB,EAC7B,MAAM,KAAK,yCAAyC3d,EAAYC,EAAWn0L,GAASA,GAASyF,EAAU,KAAMke,GAAOnrB,EAASw7L,EAAY,CAAE,EAAEl6M,GAAIyoD,GAAS+4B,EAAgBgG,CAAe,GAGxLogD,EAAS,IAAIowF,EAAe,IAC7BpwF,EAAS,IAAIowF,EAAe,EAC5B,MAAM,KAAK,yCAAyC5d,EAAYC,EAAW5wL,GAAQA,GAAQkC,EAAU,KAAMke,GAAOnrB,EAASw7L,EAAY,CAAE,EAAEl6M,GAAIyoD,GAAS+4B,EAAgBgG,CAAe,GAEpLxnF,GAAG,IAAKqhB,KAEP21B,EAAU,MAAM,WAAa,aAC7B31B,GAAOA,GAAK,IAAI21B,EAAU,MAAOnN,EAAK,GAEnCxoB,GACV,CACJ,EAAE,CAAE,UAAW,GAAO,cAAe,GAAG,CAAE,CAC9C,EACD,UAAW,EAC3B,CAAa,EACKo9B,GAAazH,EAAU,MAAM,WAAa,WAC5C,CAACojK,EAAYpjK,EAAU,OAAQA,EAAU,KAAK,EAC9C,CAACojK,EAAYpjK,EAAU,MAAM,GAC5B,IAAIjQ,KAAa,CAAE,SAAAA,GAAU,WAAY,EAAO,EAAC,EACtD,MAAO,CACH,KAAM,WACN,eAAA8yF,EACA,SAAU,UAAa,CAAE,GAAG,MAAM33G,EAAQ,SAAQ,EAAI,UAAAu8B,GACzD,CACb,CACQ,GAAI,CAACo5K,GAAQ,CAACC,EAAM,CAChB,MAAM/wL,EAAW,KAAK,iBAAiB6D,CAAW,EAC5C6sL,EAAW,MAAM,KAAK,4BAA4BzgL,EAAU,QAASrrB,EAAU,KAAMob,EAAUiQ,EAAU,MAAOt4B,EAAS,GAAM8iE,EAAgBgG,CAAe,EASpK,MAAO,CACH,KAAM,WACN,eAVmBiwI,EAAS,eAAe,IAAKp2M,GAC5C21B,EAAU,OAAO,OAAO31B,EAAK,IAAI0lB,CAAQ,CAAC,EACnCiQ,EAAU,MAAM,WAAa,WAChCwwC,EAAgB,SAAS,CAAC,CAACxwC,EAAU,MAAO31B,EAAK,IAAI21B,EAAU,KAAK,CAAC,CAAC,CAAC,EACvEwwC,EAAgB,SAAU,EAE3B,IACV,EAIG,SAAU,UAAa,CACnB,GAAG,MAAMiwI,EAAS,SAAU,EAC5B,WAAYzgL,EAAU,MAAM,WAAa,WAAa,CAACA,EAAU,KAAK,EAAI,CAAE,GACvE,IAAIjQ,IAAa,CAAE,SAAAA,EAAU,WAAY,EAAO,EAAC,CAC1E,EACa,CACb,CAEQ,MAAM7gB,EAAU2xM,EAAO7gL,EAAU,OAASA,EAAU,QAC9C3iC,EAASwjN,EAAO7gL,EAAU,QAAUA,EAAU,OAC9CyT,EAAOotK,EAAOr2I,EAAe,UAAU71D,EAAU,IAAI,EAAIA,EAAU,KACnE8rM,EAAW,MAAM,KAAK,4BAA4BvxM,EAASukC,EAAMp2C,EAAO2iC,EAAU,MAAOt4B,EAAS,GAAM8iE,EAAgBgG,CAAe,EACvI/oC,GAAazH,EAAU,MAAM,WAAa,WAAa,CAAC3iC,EAAO2iC,EAAU,KAAK,EAAI,CAAC3iC,CAAK,GACzF,IAAI0yB,IAAa,CAAE,SAAAA,EAAU,WAAY,EAAO,EAAC,EACtD,MAAO,CACH,KAAM,WACN,eAAgB0wL,EAAS,eACzB,SAAU,UAAa,CAAE,GAAG,MAAMA,EAAS,SAAQ,EAAI,UAAAh5K,GAC1D,CACT,CACA,EACAk5K,yCAAA,kCAA4CM,0IC7H5C,IAAI30L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yCAA8C,EAAE+D,CAAO,sSCfpE,OAAO,eAAeu0L,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMrd,EAAgEj7K,aAAA,EAChEsG,EAAwDtC,cAAA,EACxD+3J,EAAsE93J,cAAA,EACtE+xC,EAAsD9xC,cAAA,EACtDokD,EAAoEnkD,cAAA,EACpE29C,EAA0C19C,qBAAA,EAC1C8mC,EAAoB7mC,uBAA0B,EAIpD,IAAAk0L,EAAA,cAA+Ctd,EAAsB,iBAAkB,CACnF,YAAYzkM,EAAM,CACd,MAAMA,EAAM00D,EAAkB,QAAQ,MAAM,gBAAgB,CACpE,CACI,MAAM,aAAa9zB,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1D48C,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bj9K,EAASksB,CAAW,EAC/Hjf,EAAYqrB,EAAU,UACtBhnB,EAAU,KAAK,eAAerE,CAAS,EACvCysM,EAAQ,CAAE,EAEhB,GAAIphL,EAAU,QAAQ,WAAa,YAC/BA,EAAU,OAAO,WAAa,YAC9BA,EAAU,QAAQ,OAAOA,EAAU,MAAM,EACzC,MAAO,CACH,KAAM,WACN,eAAgB,IAAI0qC,EAAgB,kBAAkB8F,EAAgB,SAAQ,CAAE,EAChF,SAAU,IAAM,QAAQ,QAAQ,CAC5B,MAAO,IAAI5R,EAAiB,wBAC5B,YAAa,CAAE,KAAM,QAAS,MAAO,CAAG,EACxC,UAAW,CAAE,CACjC,CAAiB,CACJ,EAGL,MAAMjzB,EAAW,MAAM,KAAK,8BAA8B6+B,EAAgB9iE,EAASs4B,CAAS,EAC5F,GAAI2L,EAAS,UACT,OAAOA,EAAS,UAEpBjkC,EAAUikC,EAAS,QAEnB,MAAM01K,KAAkBnwI,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CACvG,QAAAxpE,EACA,UAAW8iE,EAAe,WAAWxqC,EAAU,QAASrrB,EAAU,KAAMqrB,EAAU,OAAQA,EAAU,KAAK,CACrH,CAAS,CAAC,EAEF,IAAI6iF,EACJ,GAAI7iF,EAAU,QAAQ,WAAa,YAAcA,EAAU,OAAO,WAAa,WAAY,CAIvF,MAAMshL,EAAO,KAAK,iBAAiB1tL,EAAaoM,CAAS,EACnDuhL,KAAmBrwI,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CACxG,QAAAxpE,EACA,UAAW8iE,EAAe,aAAa,KAAK,qBAAqBA,EAAgBA,EAC5E,cAAcxqC,EAAU,QAASshL,EAAMthL,EAAU,OAAQA,EAAU,KAAK,EAAGhnB,CAAO,EAAGwxD,EAAe,yBAAyB,IAAK,CACnIA,EAAe,qBAAqBxqC,EAAU,OAAO,EACrDwqC,EAAe,qBAAqBxqC,EAAU,MAAM,CACxE,CAAiB,CAAC,CAClB,CAAa,CAAC,EAAE,eAAe,IAAIkM,GAAYA,EAAS,OAAOo1K,CAAI,CAAC,EACxDz+F,EAAiB,IAAIn4C,EAAgB,cAAc,CAC/C62I,EACAF,EAAY,cAC5B,EAAe,CAAE,UAAW,GAAO,CACnC,MAGgBrhL,EAAU,QAAQ,WAAa,YAC/BohL,EAAM,KAAK5wI,EAAgB,SAAS,CAAC,CAACxwC,EAAU,QAASA,EAAU,MAAM,CAAC,CAAC,CAAC,EAE5EA,EAAU,OAAO,WAAa,YAC9BohL,EAAM,KAAK5wI,EAAgB,SAAS,CAAC,CAACxwC,EAAU,OAAQA,EAAU,OAAO,CAAC,CAAC,CAAC,EAEhF6iF,EAAiBw+F,EAAY,eAAe,QAAQD,CAAK,EAa7D,MAAO,CACH,KAAM,WACN,eAAAv+F,EACA,SAda,SAAY,CACzB,MAAM2+F,EAAgB,MAAMH,EAAY,SAAU,EAClD,MAAO,CACH,GAAGG,EACH,YAAa,CACT,GAAGA,EAAc,YAEjB,MAAOA,EAAc,YAAY,MAAQ,CAC5C,CACJ,CACJ,CAKA,CACT,CACA,EACAN,wCAAA,iCAA2CO,yIChG3C,IAAIn1L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,oUCfnE,OAAO,eAAe+0L,sCAAS,aAAc,CAAE,MAAO,GAAM,EACfA,sCAAA,sCAAG,OAChD,MAAMC,EAAwF/4L,cAAA,EACxFgzJ,EAAgEhvJ,cAAA,EAChEsC,EAAwDrC,cAAA,EACxD83J,EAAsE73J,cAAA,EACtEokD,EAAoEnkD,cAAA,EACpE29C,EAA0C19C,qBAAA,EAIhD,IAAA40L,EAAA,cAAoDhmC,EAAsB,gCAAiC,CACvG,YAAYx8K,EAAM,CACd,MAAMA,EAAM,cAAc,EAC1B,KAAK,iBAAmB,CAChC,CACI,MAAM,cAAc4gC,EAAWt4B,EAAS,CACpC,SAAWwpE,EAAwB,cAAcxpE,CAAO,CAChE,CACI,MAAM,aAAas4B,EAAWt4B,EAAS,CACnC,MAAMksB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEshD,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bj9K,EAASksB,CAAW,EAE/HiuL,EAAgB7hL,EAAU,SACxBkxC,EAAwB,iBAAiB,MAAM,KAAK,uBACnD,QAAQ,CAAE,UAAWlxC,EAAU,MAAO,QAAAt4B,CAAO,CAAE,CAAC,EAAE,eACvD,IAAIgjE,EAAgB,cAAc,CAAC8F,EAAgB,SAAQ,CAAE,EAAG,CAAE,UAAW,GAAO,EAExF,IAAIsxI,EACAC,EACA/hL,EAAU,SAEV8hL,EAAmB,IAAIH,EAAkC,wBAAwB/tL,EAAaoM,EAAU,OAAO,IAAI2hL,EAAkC,wBAAwB,aAAa,KAAK,KAAM/tL,EAAa,KAAK,gBAAgB,CAAC,EAAGiuL,EAAc,OAAO,EAChQ,KAAK,oBAEL7hL,EAAU,SAEV+hL,EAAmB,IAAIJ,EAAkC,wBAAwB/tL,EAAaoM,EAAU,OAAO,IAAI2hL,EAAkC,wBAAwB,aAAa,KAAK,KAAM/tL,EAAa,KAAK,gBAAgB,CAAC,EAAGiuL,EAAc,OAAO,EAChQ,KAAK,oBAGT,KAAM,CAAE,QAAA9c,CAAS,EAAG,MAAM,KAAK,oBAAoB,QAAQ,CACvD,iBAAA+c,EACA,iBAAAC,EACA,QAAAr6M,CACZ,CAAS,EACD,MAAO,CACH,KAAM,OACN,QAAAq9L,CACH,CACT,CACA,EACA2c,6CAAA,sCAAgDM,8ICpDhD,IAAI11L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,6CAAkD,EAAE+D,CAAO,oPCfxE,OAAO,eAAes1L,kBAAS,aAAc,CAAE,MAAO,GAAM,EACnCA,kBAAA,kBAAG,OAC5B,MAAM70L,EAAkCxE,cAAA,EAYxC,IAAAs5L,EAAA,cAAgC90L,EAAO,KAAM,CAQzC,YAAYhuB,EAAM,CACd,MAAMA,CAAI,CAClB,CACA,EACA6iN,yBAAA,kBAA4BE,0HC1B5B,IAAI71L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,yBAA8B,EAAE+D,CAAO,gOCfpD,OAAO,eAAey1L,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMC,EAA4Dz5L,aAAA,EAC5DsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtEokD,EAAoEnkD,cAAA,EACpE+mC,EAAoB9mC,uBAA0B,EAIpD,IAAAs1L,EAAA,cAA0CD,EAAoB,iBAAkB,CAC5E,YAAYjjN,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,OAAO,GAAK3F,EAAO,QAAQ,IAAI,IAAI6D,EAAO,iBAAiB,SAAS,CAAC,KAC7GA,EAAO,UAAU,GAAG,KAAK,IAAI,kCAAkC,KAEnEA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CAEd,GAAI,CAAE,UAAAyW,EAAW,QAAAt4B,CAAO,EAAK,MAAM,KAAK,MAAM6hB,EAAO,MAAOA,EAAO,OAAO,EAC1E,MAAC,CAAE,UAAAyW,EAAW,QAAAt4B,CAAS,EAAG,MAAM,KAAK,SAASs4B,EAAWt4B,CAAO,EAEzD,CAAE,OADM,MAAM,KAAK,SAASs4B,EAAWt4B,CAAO,CAC5B,CACjC,CACI,MAAM,MAAMoH,EAAOpH,EAAS,CAExBA,GAAW,MAAM,KAAK,0BAA0B,QAAQ,CAAE,QAAAA,EAAS,WAAY,EAAM,CAAA,GAAG,QAExF,IAAIs4B,EACJ,GAAI,OAAOlxB,GAAU,SAAU,CAE3BpH,EAAUA,EAAQ,IAAIwnB,EAAkB,cAAc,YAAapgB,CAAK,EACxE,MAAM87B,EAAUljC,EAAQ,IAAIwnB,EAAkB,cAAc,OAAO,EAC7DgxC,EAAcx4D,EAAQ,IAAIwnB,EAAkB,cAAc,WAAW,EACrEqzL,EAAmB,MAAM,KAAK,mBAAmB,QAAQ,CAAE,QAAA76M,EAAS,MAAAoH,EAAO,YAAAoxD,EAAa,QAAAt1B,EAAS,EACvG5K,EAAYuiL,EAAiB,UAEzBA,EAAiB,UACjB76M,EAAUA,EAAQ,IAAIwnB,EAAkB,cAAc,QAASqzL,EAAiB,OAAO,EAEvG,MAEYviL,EAAYlxB,EAGhB,GAAIpH,EAAQ,IAAIwnB,EAAkB,cAAc,eAAe,EAAG,CAC9D,MAAM0E,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1D48C,EAAkB,MAAMm0G,EAAyB,gBAClD,OAAO,KAAK,6BAA8Bj9K,EAASksB,CAAW,EACnEoM,KAAgBkxC,EAAwB,sBAAsBlxC,EAAWt4B,EAAQ,IAAIwnB,EAAkB,cAAc,eAAe,EAAGs7C,EAAgBgG,EAAiB,CAAE,sBAAuB,GAAM,EAEvM9oE,EAAUA,EAAQ,OAAOwnB,EAAkB,cAAc,WAAW,CAChF,CACQ,MAAO,CAAE,UAAA8Q,EAAW,QAAAt4B,CAAS,CACrC,CACI,MAAM,SAASs4B,EAAWt4B,EAAS,CAE/B,OAAAA,EAAUA,EAAQ,IAAIwnB,EAAkB,cAAc,MAAO8Q,CAAS,EACrE,CAAE,UAAAA,EAAW,QAAAt4B,CAAO,EAAK,MAAM,KAAK,+BAA+B,QAAQ,CAAE,QAAAA,EAAS,UAAAs4B,EAAW,EAElGt4B,EAAUA,EAAQ,IAAIwnB,EAAkB,cAAc,MAAO8Q,CAAS,EAC/D,CAAE,UAAAA,EAAW,QAAAt4B,CAAS,CACrC,CACI,MAAM,SAASs4B,EAAWt4B,EAAS,CAC/B,MAAM8hB,EAAS,MAAM,KAAK,uBAAuB,QAAQ,CAAE,QAAA9hB,EAAS,UAAAs4B,EAAW,EAC/E,OAAAxW,EAAO,QAAU9hB,EACV8hB,CACf,CACA,EACA44L,mCAAA,4BAAsCI,oIC1EtC,IAAIl2L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,iZCf9D,OAAO,eAAe81L,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMvzL,EAAwDtG,cAAA,EACxDg2C,EAAsDhyC,cAAA,EACtD89C,EAA0C79C,qBAAA,EAChD,IAAA61L,EAAA,cAA+Ch4I,EAAgB,gBAAiB,CAC5E,YAAYwmI,EAAWlxK,EAAW2iL,EAAsBj7M,EAASk7M,EAAUC,EAAcC,EAAmB3kN,EAAS,CAgBjH,GAfA,MAAM,CAAE,UAAW,GAAO,GAAGA,CAAO,CAAE,EACtC,KAAK,QAAU,GACf,KAAK,iBAAmB,CAAE,EAC1B,KAAK,yBAA2B,EAChC,KAAK,4BAA8B,EAEnC,KAAK,oBAAsB,QAAQ,QAAQ,MAAS,EACpD,KAAK,SAAW,GAChB,KAAK,UAAY+yM,EACjB,KAAK,UAAYlxK,EACjB,KAAK,qBAAuB2iL,EAC5B,KAAK,QAAUj7M,EACf,KAAK,SAAWk7M,EAChB,KAAK,aAAeC,EACpB,KAAK,kBAAoBC,EACrB,KAAK,cAAgB,EACrB,MAAM,IAAI,MAAM,mFAAmF,KAAK,YAAY,EAAE,CAElI,CAII,WAAY,CACH,KAAK,SACN,KAAK,iBAAkB,CAEnC,CACI,YAAYx+I,EAAcpzB,EAAU,CAChC,OAAIozB,IAAiB,YAAc,CAAC,KAAK,UAGhC,KAAK,oBACN,KAAK,kBAAoB,IAAI,QAAQ,CAACpG,EAASC,IAAW,CACtD,KAAK,kBAAkB,CAAE,IAAK,KAAK,QAAU,EAAE,CAAE,CAAA,EAC5C,KAAM4kJ,GAAgB,CAEvB,MAAMlgG,EAAiBkgG,EAAY,OAAO,cAAc,KAAK,UAAW,KAAK,OAAO,EACpFlgG,EAAe,YAAY,WAAazkD,GAAa,CACjDA,EAAS,MAAQ,IAAIQ,EAAiB,wBACtCikD,EAAe,QAAS,EACxB,KAAK,mBAAmBkgG,EAAY,SAAU3kJ,CAAQ,EACjD,KAAMujI,GAAwB,CAE/B,MAAMqhB,EAAiB,CAAE,GAAGD,EAAY,SAAU,GAAG3kJ,EAAU,GAAGujI,CAAqB,EACvFzjI,EAAQ8kJ,CAAc,CACzB,CAAA,EACI,MAAM,IAAM,CACb9kJ,EAAQ,CACJ,GAAG6kJ,EAAY,SACf,MAAO,IAAInkJ,EAAiB,uBAChE,CAAiC,CACjC,CAA6B,CAC7B,CAAyB,CACJ,CAAA,EACI,MAAMT,CAAM,CACrC,CAAiB,GAEL,KAAK,kBACA,KAAKC,GAAY,KAAK,YAAY,WAAYA,CAAQ,CAAC,EACvD,MAAMp8E,GAAK,KAAK,KAAK,QAASA,CAAC,CAAC,GAElC,MAAM,YAAYsiF,EAAcpzB,CAAQ,CACvD,CACI,KAAK8yB,EAAS,CAEV,UAAWh7E,KAAM,KAAK,iBAClBA,EAAG,QAAS,EAEhB,MAAM,KAAKg7E,CAAO,CAC1B,CACI,MAAM5oD,EAAOurD,EAAM,CACf,GAAI,KAAK,QAAS,CAEd,UAAW9zD,KAAY,KAAK,iBAAkB,CAC1C,KAAOuI,EAAQ,GAAG,CACd,MAAM68E,EAAOplF,EAAS,KAAM,EAC5B,GAAIolF,IAAS,KACT,MAGA78E,IACA,KAAK,MAAM68E,CAAI,CAEvC,CACgB,GAAI78E,GAAS,EACT,KAEpB,CAEgBA,GAAS,GAAK,KAAK,oBAAmB,EAItC,KAAK,kBAAkB,CAAE,IAAK,KAAK,QAAU,EAAE,CAAE,CAAA,EAC5C,KAAM2nM,GAAgB,CACvB,KAAK,0BAA0BA,EAAY,gBAAiB,EAAK,EACjEp8I,EAAM,CAC1B,CAAiB,EAGDA,EAAM,CAEtB,MAGY,KAAK,QAAU,GAEf,KAAK,kBAAkB,CAAE,IAAK,KAAK,QAAU,EAAE,CAAE,CAAA,EAC5C,KAAMo8I,GAAgB,CACvB,KAAK,cAAcA,CAAW,EAC9Bp8I,EAAM,CACT,CAAA,EAEI,MAAMhjE,GAAS,WAAW,IAAM,KAAK,QAAQA,CAAK,CAAC,CAAC,CAErE,CACI,qBAAsB,CAClB,OAAQ,KAAK,iBAAiB,OAAS,KAAK,yBAA2B,KAAK,4BACxE,KAAK,eAAiB,CAAC,KAAK,oCAAmC,GAAM,CAAC,KAAK,SACvF,CACI,qCAAsC,CAClC,MAAO,EACf,CACI,qBAAsB,CAClB,OAAQ,KAAK,iBAAiB,OAAS,KAAK,yBAA2B,KAAK,4BAA+B,CACnH,CAMI,cAAcs/M,EAAa,CAEvB,GAAI,CACA,MAAMpwM,EAAWowM,EAAY,OAAO,cAAc,KAAK,UAAW,KAAK,QAAS,KAAK,oBAAoB,EACzG,KAAK,iBAAiB,KAAKpwM,CAAQ,EACnC,IAAIqwM,EAAmB,GACnBC,EAAmB,GAEvBtwM,EAAS,aAAe,KACxBA,EAAS,GAAG,QAAUlP,GAAU,KAAK,QAAQA,CAAK,CAAC,EACnDkP,EAAS,GAAG,WAAY,IAAM,KAAK,YAAW,CAAE,EAChDA,EAAS,GAAG,MAAO,IAAM,CACrB,KAAK,iBAAiB,OAAO,KAAK,iBAAiB,QAAQA,CAAQ,EAAG,CAAC,EAGvEqwM,EAAmB,GACdC,GACD,KAAK,8BAGLA,GACA,KAAK,0BAA0BF,EAAY,gBAAiB,EAAI,CAEpF,CAAa,EAGDpwM,EAAS,YAAY,WAAaurD,GAAa,CAE3C,KAAK,oBAAsB,KAAK,oBAC3B,KAAKglJ,IAAqB,UACtBA,IACDA,EAAmBH,EAAY,UAE5B,KAAK,mBAAmBG,EAAkBhlJ,CAAQ,IAC5D,EACI,KAAMujI,GAAwB,CAE/B,MAAMqhB,EAAiB,CAAE,GAAGC,EAAY,SAAU,GAAG7kJ,EAAU,GAAGujI,CAAqB,EAEvF,OAAAqhB,EAAe,MAAQ,IAAIpkJ,EAAiB,wBAE5C,KAAK,eAAeokJ,CAAc,EAE9B,KAAK,mBACL,KAAK,kBACA,KAAKK,GAAcA,EAAW,MAAM,WAAY,CAAA,EAChD,MAAM,IAAM,CAEzC,CAAyB,EAGL,KAAK,eAAeL,EAAgBC,CAAW,EAC1C,KAAMK,GAAa,QAAQ,IAAIA,CAAQ,CAAC,EACxC,KAAK,MAAOA,GAAa,CAE1B,MAAM/iE,EAAY,MAAM,KAAK,aAAc,EAC3C,UAAWgjE,KAAWD,EAClB/iE,EAAU,KAAKgjE,EAASN,EAAY,IAAI,EAE5CE,EAAmB,GACfD,GACA,KAAK,8BAET,KAAK,0BAA0BD,EAAY,gBAAiB,EAAI,CACxF,CAAqB,EAAE,MAAMt/M,GAAS,KAAK,QAAQA,CAAK,CAAC,EAC9Bq/M,CAC3B,CAAiB,CAAC,EAAE,MAAOr/M,IACP,KAAK,QAAQA,CAAK,EACX,CAAE,EACZ,CACjB,CAAa,CACb,OACe6/M,EAAW,CACd,KAAK,QAAQA,CAAS,CAClC,CACA,CACI,eAAeC,EAAa,CACxB,MAAMC,EAAuB,KAAK,YAAY,UAAU,EACxD,KAAK,YAAY,WAAYD,CAAW,EACxCC,GAAsB,MAAM,WAAY,CAChD,CACI,WAAY,CACR,MAAO,CAAC,KAAK,IACrB,CAQI,0BAA0BC,EAAiBC,EAAU,CACjD,KAAK,aAAY,EACZ,KAAMrjE,GAAc,CAErB,KAAO,KAAK,oBAAmB,GAAM,KAAK,UAAS,GAAI,CACnD,MAAMsjE,EAAWtjE,EAAU,IAAK,EAChC,GAAIsjE,EACA,KAAK,2BACL,KAAK,kBAAkBA,EAAUF,CAAe,EAC3C,KAAMG,GAAoB,CAE3B,MAAM9X,EAA4B,KAAK,QAAQ,IAAI98K,EAAkB,eAAe,iBAAiB,EACjG88K,GACAA,EAA0B,gBAAgB,CACtC,IAAK8X,EAAgB,KAAK,IAC1B,SAAU,CAAE,GAAGA,EAAgB,SAAU,GAAGA,EAAgB,KAAK,QAAU,CAC3G,EAA+BA,EAAgB,MAAM,EAE7B,KAAK,2BACL,KAAK,cAAcA,CAAe,CACrC,CAAA,EACI,MAAMngN,GAAS,KAAK,KAAK,QAASA,CAAK,CAAC,MAG7C,MAEpB,CAEgBigN,GAAY,KAAK,YAAYrjE,EAAW,EAAI,GAC5C,KAAK,MAAO,CAEnB,CAAA,EACI,MAAM58I,GAAS,KAAK,QAAQA,CAAK,CAAC,CAC/C,CACI,YAAY48I,EAAWwjE,EAAoB,CACvC,OAAOxjE,EAAU,QAAO,GAAM,CAAC,KAAK,oBAAqB,CACjE,CACA,EACAkiE,wCAAA,iCAA2CuB,mTC3Q3C,OAAO,eAAeC,yCAAS,aAAc,CAAE,MAAO,GAAM,EACZA,yCAAA,yCAAG,OACnD,MAAM/0L,EAAwDtG,cAAA,EACxD65L,EAAkF71L,wCAAA,EAOxF,IAAAs3L,EAAA,cAAuDzB,EAAmC,gCAAiC,CACvH,YAAYvR,EAAWlxK,EAAW2iL,EAAsBj7M,EAASy8M,EAAiBvB,EAAUC,EAAcC,EAAmBsB,EAAiBC,EAA4BC,EAAmCC,EAAwC3wL,EAAa42C,EAAgB,CAC9Q,MAAM0mI,EAAWlxK,EAAW2iL,EAAsBj7M,EAASk7M,EAAUC,EAAcC,EAGnFsB,EAAkB,CAAE,cAAe,OAAO,iBAAiB,EAAK,MAAS,EACzE,KAAK,oBAAsB,GAC3B,KAAK,gBAAkBD,EACvB,KAAK,2BAA6BE,EAClC,KAAK,kCAAoCC,EACzC,KAAK,uCAAyCC,EAC9C,KAAK,YAAc,CAAE,CAAC3B,CAAQ,EAAG,EAAM,EACvC,KAAK,gBAAkBwB,EACvB,KAAK,YAAcxwL,EACnB,KAAK,eAAiB42C,CAC9B,CAII,OAAQ,CACJ,GAAI,CAAC,KAAK,gBAAiB,CACvB,MAAM,MAAO,EACb,MACZ,CACQ,KAAK,aAAY,EACZ,KAAM+1E,GAAc,CACjB,KAAK,YAAYA,EAAW,EAAK,GAE7B,KAAK,iBACL,WAAW,IAAM,KAAK,gBAAgB,IAAG,CAAE,EAE/C,MAAM,MAAO,GAGb,KAAK,oBAAsB,EAElC,CAAA,EACI,MAAM58I,GAAS,MAAM,QAAQA,CAAK,CAAC,CAChD,CACI,QAAQogE,EAAO,CACX,GAAI,CAAC,KAAK,gBAAiB,CACvB,MAAM,QAAQA,CAAK,EACnB,MACZ,CACQ,KAAK,aAAY,EACZ,KAAMw8E,GAAc,CACjBx8E,GAAS,KAAK,YAAYw8E,EAAW,EAAK,GAEtC,KAAK,iBACL,WAAW,IAAM,KAAK,gBAAgB,IAAG,CAAE,EAE/C,MAAM,QAAQx8E,CAAK,GAGnB,KAAK,oBAAsB,EAElC,CAAA,EACI,MAAMpgE,GAAS,MAAM,QAAQA,CAAK,CAAC,CAChD,CACI,YAAY48I,EAAWikE,EAAmB,CACtC,OAAQA,EAAoBjkE,EAAU,QAAO,EAAK,KAAK,qBAAuBA,EAAU,QAAS,IAC7F,CAAC,KAAK,oBAAqB,CACvC,CACI,qBAAsB,CAGlB,MAAQ,CAAC,KAAK,qBAET,KAAK,iBAAmB,KAAK,gBAAgB,uBAA2B,MAAM,oBAAqB,CAChH,CACI,qCAAsC,CAClC,MAAO,CAAC,KAAK,eACrB,CACI,WAAY,CAGR,OAAQ,KAAK,iBAAmB,KAAK,gBAAgB,oBAAqB,GAAK,CAAC,KAAK,IAC7F,CACI,cAAe,CACX,OAAK,KAAK,YACN,KAAK,UAAY,KAAK,uCACjB,QAAQ,CAAE,SAAU,KAAK,SAAU,QAAS,KAAK,OAAS,CAAA,EAC1D,KAAK9iJ,GAAUA,EAAO,SAAS,GAEjC,KAAK,SACpB,CACI,MAAM,eAAe2gE,EAAU6kJ,EAAa,CACxC,GAAI,CACA,KAAM,CAAE,MAAAx3H,CAAK,EAAK,MAAM,KAAK,kCAAkC,QAAQ,CAAE,QAAS,KAAK,QAAS,SAAArtB,CAAQ,CAAE,EAEpGqmJ,EAAmB,KAAK,QAAQ,IAAIv1L,EAAkB,eAAe,eAAe,EAC1F,GAAIu1L,EACA,UAAW/4H,KAAQD,EACfg5H,EAAiB,gBAAgB,CAAE,IAAK/4H,EAAK,IAAK,SAAU,CAAE,GAAGA,EAAK,QAAQ,GAAMu3H,EAAY,IAAI,EAI5G,OAAOx3H,EAAM,OAAQC,GACb,KAAK,YAAYA,EAAK,GAAG,EAClB,IAEX,KAAK,YAAYA,EAAK,GAAG,EAAI,GACtB,GACV,CACb,MACc,CAEF,MAAO,CAAE,CACrB,CACA,CACI,cAAcu3H,EAAa,CACvB,GAAI,KAAK,iBAAmB,CAAC,KAAK,gBAAgB,iBAAiB,IAAIA,EAAY,KAAK,GAAG,EAAG,CAG1F,KAAK,iBAAiB,iBAAiB,IAAIA,EAAY,KAAK,GAAG,EAC/D,MAAM//G,EAAS+/G,EAAY,OAAO,cAAc,KAAK,eAAe,cAAc,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,EAAG,KAAK,YAAY,SAAS,GAAG,CAAC,EAAG,KAAK,QAAQ,IAAI/zL,EAAkB,mBAAmB,kBAAmB,EAAI,CAAC,EAAE,IAAIgd,GAAY,KAAK,YAAY,KAAKA,EAAS,IAAI,GAAG,EAAGA,EAAS,IAAI,GAAG,EAAGA,EAAS,IAAI,GAAG,EAAGA,EAAS,IAAI,GAAG,CAAC,CAAC,EACpZ,KAAK,gBAAgB,OAAOg3D,CAAM,EAC7B,GAAG,MAAO,IAAM,CACjB,MAAM,cAAc+/G,CAAW,CAC/C,CAAa,CACb,MAEY,MAAM,cAAcA,CAAW,CAE3C,CACI,MAAM,mBAAmBthB,EAAqBC,EAAmB,CAC7D,OAAQ,MAAM,KAAK,2BAA2B,QAAQ,CAClD,KAAM,SACN,oBAAAD,EACA,kBAAAC,EACA,QAAS,KAAK,OACjB,CAAA,GAAG,QACZ,CACI,eAAe6hB,EAAa,CACxB,MAAM,eAAeA,CAAW,EAChC,KAAK,iBAAiB,gBAAgBA,EAAa,EAAI,CAC/D,CACA,EACAQ,gDAAA,yCAAmDS,gSCpJnD,OAAO,eAAexyL,UAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,UAAA,UAAG,OAIpB,IAAAyyL,EAAA,KAAgB,CACZ,YAAYtnN,EAAO,CACf,KAAK,SAAW,YAChB,KAAK,MAAQA,CACrB,CACI,OAAO6jB,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,aAAeA,EAAM,QAAU,KAAK,KACjF,CACA,EACAgR,iBAAA,UAAoBC,+KCdpB,OAAO,eAAeC,aAAS,aAAc,CAAE,MAAO,GAAM,EACxCA,aAAA,aAAG,OAKvB,IAAAwyL,EAAA,KAAmB,CACf,aAAc,CACV,KAAK,SAAW,eAChB,KAAK,MAAQ,EAErB,CACI,OAAO1jM,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,cAC7C,CACA,EACAkR,oBAAA,aAAuBC,EACvBA,EAAa,SAAW,IAAIA,4JCjB5B,OAAO,eAAeC,UAAS,aAAc,CAAE,MAAO,GAAM,EAC3CA,UAAA,UAAG,OAIpB,IAAAuyL,EAAA,KAAgB,CACZ,YAAYxnN,EAAO,CACf,KAAK,SAAW,YAChB,KAAK,MAAQA,CACrB,CACI,OAAO6jB,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,aAAeA,EAAM,QAAU,KAAK,KACjF,CACA,EACAoR,iBAAA,UAAoBC,uHCdpB,OAAO,eAAeC,QAAS,aAAc,CAAE,MAAO,GAAM,EAC7CA,QAAA,QAAG,OAClB,MAAMF,EAAc1J,iBAAsB,EAM1C,IAAAk8L,EAAA,MAAMryL,EAAQ,CACV,YAAYp1B,EAAOq1B,EAAoB,CACnC,KAAK,SAAW,UAChB,KAAK,MAAQr1B,EACT,OAAOq1B,GAAuB,UAC9B,KAAK,SAAWA,EAChB,KAAK,SAAWD,GAAQ,oBACxB,KAAK,UAAY,IAEZC,EACD,aAAcA,GACd,KAAK,SAAW,GAChB,KAAK,SAAWA,EAChB,KAAK,UAAY,KAGjB,KAAK,SAAWA,EAAmB,SACnC,KAAK,SAAWA,EAAmB,UAC/BD,GAAQ,gCACRA,GAAQ,oBACZ,KAAK,UAAYC,EAAmB,WAAa,KAIrD,KAAK,SAAW,GAChB,KAAK,SAAWD,GAAQ,WACxB,KAAK,UAAY,GAE7B,CACI,OAAOvR,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,WAAaA,EAAM,QAAU,KAAK,OACnEA,EAAM,WAAa,KAAK,WACtBA,EAAM,YAAc,KAAK,WAAe,CAACA,EAAM,WAAa,KAAK,YAAc,KACjF,KAAK,SAAS,OAAOA,EAAM,QAAQ,CAC/C,CACA,EACAsR,eAAA,QAAkBC,EAClBA,EAAQ,oBAAsB,IAAIH,EAAY,UAAU,uDAAuD,EAC/GG,EAAQ,gCAAkC,IAAIH,EAAY,UAAU,0DAA0D,EAC9HG,EAAQ,WAAa,IAAIH,EAAY,UAAU,yCAAyC,8GC/CxF,OAAO,eAAeK,KAAS,aAAc,CAAE,MAAO,GAAM,EAChDA,KAAA,KAAG,OAKf,IAAAoyL,EAAA,KAAW,CACP,YAAY71M,EAASyF,EAAWlC,EAAQogB,EAAO,CAC3C,KAAK,SAAW,OAChB,KAAK,MAAQ,GACb,KAAK,QAAU3jB,EACf,KAAK,UAAYyF,EACjB,KAAK,OAASlC,EACd,KAAK,MAAQogB,CACrB,CACI,OAAO3R,EAAO,CAEV,MAAO,CAAC,CAACA,IAAUA,EAAM,WAAa,QAAU,CAACA,EAAM,WACnD,KAAK,QAAQ,OAAOA,EAAM,OAAO,GACjC,KAAK,UAAU,OAAOA,EAAM,SAAS,GACrC,KAAK,OAAO,OAAOA,EAAM,MAAM,GAC/B,KAAK,MAAM,OAAOA,EAAM,KAAK,CACzC,CACA,EACAyR,YAAA,KAAeC,mICxBf,OAAO,eAAeE,SAAS,aAAc,CAAE,MAAO,GAAM,EAC5CA,SAAA,SAAG,OAInB,IAAAkyL,EAAA,KAAe,CACX,YAAY3nN,EAAO,CACf,KAAK,SAAW,WAChB,KAAK,MAAQA,CACrB,CACI,OAAO6jB,EAAO,CACV,MAAO,CAAC,CAACA,GAASA,EAAM,WAAa,YAAcA,EAAM,QAAU,KAAK,KAChF,CACA,EACA4R,gBAAA,SAAmBC,0ICdnB,OAAO,eAAeC,YAAS,aAAc,CAAE,MAAO,GAAM,EACzCA,YAAA,YAAG,OACtB,MAAMd,EAActJ,iBAAsB,EACpCwJ,EAAiBxF,oBAAyB,EAC1C4F,EAAY3F,eAAoB,EAChCyF,EAAcxF,iBAAsB,EACpC6F,EAAS5F,YAAiB,EAC1B+F,EAAa9F,gBAAqB,EACxC,IAAIiG,EAAqB,EAIzBgyL,EAAA,KAAkB,CACd,YAAY9mN,EAAS,CACjB,KAAK,iBAAmB,EACxBA,EAAUA,GAAW,CAAE,EACvB,KAAK,gBAAkBA,EAAQ,iBAAmB,MAAM80B,GAAoB,GACpF,CAMI,UAAU51B,EAAO,CACb,OAAO,IAAIi1B,EAAY,UAAUj1B,CAAK,CAC9C,CAQI,UAAUA,EAAO,CACb,OAAO,IAAI60B,EAAY,UAAU70B,GAAS,GAAG,KAAK,eAAe,GAAG,KAAK,kBAAkB,EAAE,CACrG,CAcI,QAAQA,EAAOq1B,EAAoB,CAC/B,OAAO,IAAIF,EAAU,QAAQn1B,EAAOq1B,CAAkB,CAC9D,CAOI,SAASr1B,EAAO,CACZ,OAAO,IAAIy1B,EAAW,SAASz1B,CAAK,CAC5C,CAII,cAAe,CACX,OAAO+0B,EAAe,aAAa,QAC3C,CASI,KAAKljB,EAASyF,EAAWlC,EAAQogB,EAAO,CACpC,OAAO,IAAIF,EAAO,KAAKzjB,EAASyF,EAAWlC,EAAQogB,GAAS,KAAK,cAAc,CACvF,CAMI,SAASt1B,EAAU,CAGf,OAAQA,EAAS,SAAQ,CACrB,IAAK,YACD,OAAO,KAAK,UAAUA,EAAS,KAAK,EACxC,IAAK,YACD,OAAO,KAAK,UAAUA,EAAS,KAAK,EACxC,IAAK,UACD,OAAIA,EAAS,SACF,KAAK,QAAQA,EAAS,MAAOA,EAAS,QAAQ,EAEpDA,EAAS,SAAS,OAAOi1B,EAAU,QAAQ,UAAU,EAGnD,KAAK,QAAQj1B,EAAS,KAAK,EAFvB,KAAK,QAAQA,EAAS,MAAO,KAAK,SAASA,EAAS,QAAQ,CAAC,EAG5E,IAAK,WACD,OAAO,KAAK,SAASA,EAAS,KAAK,EACvC,IAAK,eACD,OAAO,KAAK,aAAc,EAC9B,IAAK,OACD,OAAO,KAAK,KAAK,KAAK,SAASA,EAAS,OAAO,EAAG,KAAK,SAASA,EAAS,SAAS,EAAG,KAAK,SAASA,EAAS,MAAM,EAAG,KAAK,SAASA,EAAS,KAAK,CAAC,CAClK,CACA,CAMI,SAASA,EAAU,CACf,OAAO,KAAK,SAASA,CAAQ,CACrC,CAII,uBAAwB,CACpB,KAAK,iBAAmB,CAChC,CACA,EACAy1B,mBAAA,YAAsBE,wJC1HtB,IAAI5G,EAAmBC,gBAAQA,eAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,gBAAQA,eAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,iBAA0B,EAAE+D,CAAO,EAChDD,EAAaE,mBAA4B,EAAED,CAAO,EAClDD,EAAaG,oBAA6B,EAAEF,CAAO,EACnDD,EAAaI,eAAwB,EAAEH,CAAO,EAC9CD,EAAaK,iBAA0B,EAAEJ,CAAO,EAChDD,EAAaM,YAAqB,EAAEL,CAAO,EAC3CD,EAAaO,gBAAyB,EAAEN,CAAO,6JCrB/C,OAAO,eAAewG,WAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,WAAA,aAAuBG,EACvBH,WAAA,gBAA0BK,EAC1BL,WAAA,eAAyBM,EACzBN,WAAA,mBAA6BO,EAC7BP,WAAA,oBAA8BqrK,EAC9BrrK,WAAA,aAAuBQ,EACvBR,WAAA,iBAA2BgB,EAC3BhB,WAAA,iBAA2BiB,EAC3B,MAAMhB,EAAqBxK,sBAA2B,EAChDyK,EAAU,IAAID,EAAmB,YAkBvC,SAASE,EAAa/tB,EAAM,CAExB,GAAKA,EAGL,OAAQA,EAAK,SAAQ,CACjB,IAAK,YAAa,OAAOA,EAAK,MAC9B,IAAK,YAAa,MAAQ,KAAOA,EAAK,MACtC,IAAK,UACD,MAAMguB,EAAehuB,EACrB,MAAQ,IAAMguB,EAAa,MAAQ,KAC9BA,EAAa,UACVA,EAAa,SAAS,QAAU,2CAChCA,EAAa,SAAS,QAAU,yDAChCA,EAAa,SAAS,QAAU,2DAChC,KAAOA,EAAa,SAAS,MAAQ,KACxCA,EAAa,SAAW,IAAMA,EAAa,SAAW,KACtDA,EAAa,UAAY,KAAOA,EAAa,UAAY,IAClE,IAAK,OAAQ,MAAO,KAAKD,EAAa/tB,EAAK,OAAO,CAAC,IAAI+tB,EAAa/tB,EAAK,SAAS,CAAC,IAAI+tB,EAAa/tB,EAAK,MAAM,CAAC,GAAGA,EAAK,MAAM,WAAa,eAAiB,GAAK,IAAM+tB,EAAa/tB,EAAK,KAAK,CAAC,KAC/L,IAAK,WAAY,MAAQ,IAAMA,EAAK,MACpC,IAAK,eAAgB,OAAOA,EAAK,KACzC,CACA,CAMA,SAASiuB,EAAgBD,EAAc,CACnC,MAAM7zB,EAAQ,YAAY,KAAK6zB,CAAY,EAC3C,GAAI,CAAC7zB,EACD,MAAM,IAAI,MAAM6zB,EAAe,mBAAmB,EAEtD,OAAO7zB,EAAM,CAAC,CAClB,CAMA,SAAS+zB,EAAeF,EAAc,CAClC,MAAM7zB,EAAQ,qCAAqC,KAAK6zB,CAAY,EACpE,GAAI,CAAC7zB,EACD,MAAM,IAAI,MAAM6zB,EAAe,mBAAmB,EAEtD,OAAO7zB,EAAM,CAAC,IAAMA,EAAM,CAAC,EACrB,wDAA0D,0CACpE,CAMA,SAASg0B,EAAmBH,EAAc,CACtC,MAAM7zB,EAAQ,mCAAmC,KAAK6zB,CAAY,EAClE,GAAI,CAAC7zB,EACD,MAAM,IAAI,MAAM6zB,EAAe,mBAAmB,EAEtD,GAAI7zB,EAAM,CAAC,EAAG,CACV,IAAI4pD,EAAM5pD,EAAM,CAAC,EAAE,YAAa,EAEhC,MAAM++L,EAAgBn1I,EAAI,QAAQ,IAAI,EACtC,OAAIm1I,GAAiB,IACjBn1I,EAAMA,EAAI,MAAM,EAAGm1I,CAAa,GAE7Bn1I,CACf,CACI,MAAO,EACX,CAMA,SAASk1I,EAAoBjrK,EAAc,CACvC,MAAMkrK,EAAgBlrK,EAAa,QAAQ,KAAMA,EAAa,YAAY,GAAG,CAAC,EAC9E,GAAIkrK,GAAiB,EAAG,CACpB,MAAMx4H,EAAY1yC,EAAa,MAAMkrK,EAAgB,EAAGlrK,EAAa,MAAM,EAC3E,GAAI0yC,IAAc,OAASA,IAAc,MACrC,OAAOA,EAEX,MAAM,IAAI,MAAM1yC,EAAe,0CAA0C,CACjF,CACI,MAAO,EACX,CAOA,SAASI,EAAat2B,EAAOu2B,EAAa,CAEtC,GADAA,EAAcA,GAAeP,EACzB,CAACh2B,GAAS,CAACA,EAAM,OACjB,OAAOu2B,EAAY,aAAc,EAErC,OAAQv2B,EAAM,CAAC,EAAC,CACZ,IAAK,IAAK,OAAOu2B,EAAY,UAAUv2B,EAAM,OAAO,CAAC,CAAC,EACtD,IAAK,IACD,GAAI,CAACu2B,EAAY,SACb,MAAM,IAAI,MAAM,sDAAsD,EAE1E,OAAOA,EAAY,SAASv2B,EAAM,OAAO,CAAC,CAAC,EAC/C,IAAK,IACD,MAAMsH,EAAW+uB,EAAmBr2B,CAAK,EACnC4oE,EAAYu4H,EAAoBnhM,CAAK,EACrCJ,EAAO22B,EAAY,UAAUH,EAAep2B,CAAK,CAAC,EACxD,OAAOu2B,EAAY,QAAQJ,EAAgBn2B,CAAK,EAAGsH,EAAW,CAAE,SAAAA,EAAU,UAAAshE,CAAW,EAAGhpE,CAAI,EAChG,IAAK,IACL,QACI,GAAII,EAAM,CAAC,IAAM,KAAOA,EAAM,OAAS,GAAKA,EAAM,CAAC,IAAM,KAAOA,EAAMA,EAAM,OAAS,CAAC,IAAM,KAAOA,EAAMA,EAAM,OAAS,CAAC,IAAM,IAAK,CAEhI,MAAMw2B,EAAQx2B,EAAM,MAAM,EAAG,EAAE,EAAE,KAAM,EACvC,IAAIy2B,EAAc,CAAE,EAChBC,EAAa,EACb1rB,EAAY,EACZ2rB,EAAU,GACd,QAAS5xC,EAAI,EAAGA,EAAIyxC,EAAM,OAAQzxC,IAAK,CACnC,MAAM6xC,EAAOJ,EAAMzxC,CAAC,EAGpB,GAFI6xC,IAAS,KACTF,IACAE,IAAS,IAAK,CACd,GAAIF,IAAe,EACf,MAAM,IAAI,MAAM,4CAA8C12B,CAAK,EAGnE02B,GAE5B,CACoB,GAAIE,IAAS,IAAK,CACd,IAAIC,EAAU,GACV1vC,EAAIpC,EACR,KAAOoC,KAAM,GAAKqvC,EAAMrvC,CAAC,IAAM,MAC3B0vC,EAAU,CAACA,EAEVA,IAEDF,EAAU,CAACA,EAEvC,CACoB,GAAIC,IAAS,KAAO,CAACD,GAAWD,IAAe,EAAG,CAE9C,IADAD,EAAY,KAAKD,EAAM,MAAMxrB,EAAWjmB,CAAC,CAAC,EACnCyxC,EAAMzxC,EAAI,CAAC,IAAM,KACpBA,GAAK,EAETimB,EAAYjmB,EAAI,CACxC,CACA,CACgB,GAAI2xC,IAAe,EACf,MAAM,IAAI,MAAM,4CAA8C12B,CAAK,EAIvE,GAFAy2B,EAAY,KAAKD,EAAM,MAAMxrB,EAAWwrB,EAAM,MAAM,CAAC,EAEjDC,EAAY,SAAW,GAAKA,EAAY,SAAW,EACnD,MAAM,IAAI,MAAM,4BAA8Bz2B,CAAK,EAEvD,OAAAy2B,EAAcA,EAAY,IAAIvuB,GAAQA,EAAK,WAAW,GAAG,GAAK,CAACA,EAAK,SAAS,GAAG,EAAIA,EAAK,MAAM,EAAG,EAAE,EAAIA,CAAI,EACrGquB,EAAY,KAAKD,EAAaG,EAAY,CAAC,CAAC,EAAGH,EAAaG,EAAY,CAAC,CAAC,EAAGH,EAAaG,EAAY,CAAC,CAAC,EAAGA,EAAY,CAAC,EAAIH,EAAaG,EAAY,CAAC,CAAC,EAAI,MAAS,CAC3L,CACY,OAAOF,EAAY,UAAUv2B,CAAK,CAC9C,CACA,CAOA,SAAS82B,EAAiBxvC,EAAG,CAEzB,MAAO,CACH,QAAS2uC,EAAa3uC,EAAE,OAAO,EAC/B,UAAW2uC,EAAa3uC,EAAE,SAAS,EACnC,OAAQ2uC,EAAa3uC,EAAE,MAAM,EAC7B,MAAO2uC,EAAa3uC,EAAE,KAAK,CAC9B,CAEL,CAQA,SAASyvC,EAAiBC,EAAYT,EAAa,CAC/C,OAAAA,EAAcA,GAAeP,EACtBO,EAAY,KAAKD,EAAaU,EAAW,QAAST,CAAW,EAAGD,EAAaU,EAAW,UAAWT,CAAW,EAAGD,EAAaU,EAAW,OAAQT,CAAW,EAAGD,EAAaU,EAAW,MAAOT,CAAW,CAAC,CACrN,yICxNA,OAAO,eAAcjH,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DA,EAAuB,aAAAA,EAAA,aAAuBA,mBAA2BA,EAA2B,iBAAAA,EAAA,gBAA0BA,iBAAyBA,EAA8B,oBAAAA,EAAA,mBAA6B,OAClN,MAAM2H,EAAa1L,kBAAyB,EAC5C,OAAO,eAAe+D,EAAS,qBAAsB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,kBAAqB,CAAA,CAAE,EACrI,OAAO,eAAe3H,EAAS,sBAAuB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,mBAAsB,CAAA,CAAE,EACvI,OAAO,eAAe3H,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,cAAiB,CAAA,CAAE,EAC7H,OAAO,eAAe3H,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,eAAkB,CAAA,CAAE,EAC/H,OAAO,eAAe3H,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,gBAAmB,CAAA,CAAE,EACjI,OAAO,eAAe3H,EAAS,mBAAoB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,gBAAmB,CAAA,CAAE,EACjI,OAAO,eAAe3H,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,YAAe,CAAA,CAAE,EACzH,OAAO,eAAe3H,EAAS,eAAgB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO2H,EAAW,YAAe,CAAA,CAAE,yLCVzH,OAAO,eAAe,aAAS,aAAc,CAAE,MAAO,GAAM,EAC5D,aAAA,kBAA4B,aAAA,gBAA0B,OACtD,aAAA,SAAmBwY,EACnB,aAAA,eAAyBG,EACzB,aAAA,cAAwBE,EACxB,aAAA,kBAA4BC,EAC5B,aAAA,aAAuBK,EACvB,aAAA,mBAA6BC,EAC7B,aAAA,YAAsBC,EACtB,aAAA,kBAA4BC,EAC5B,aAAA,oBAA8BC,EAC9B,aAAA,0BAAoCE,EACpC,aAAA,SAAmBK,EACnB,aAAA,eAAyBC,EACzB,aAAA,YAAsBC,EACtB,aAAA,kBAA4BE,EAC5B,aAAA,WAAqBC,EACrB,aAAA,iBAA2BE,EAC3B,aAAA,UAAoBC,EACpB,aAAA,gBAA0BC,EAC1B,aAAA,mBAA6BC,EAC7B,aAAA,UAAoBC,EACpB,aAAA,aAAuBI,EACvB,aAAA,qBAA+BD,EAC/B,aAAA,qBAA+BE,EAC/B,MAAMhc,EAAqBxK,sBAA2B,EAChDikB,EAAK,IAAIzZ,EAAmB,YAKX,aAAA,gBAAG,CAAC,UAAW,YAAa,SAAU,OAAO,EAKpE,aAAA,kBAA4B,CAAC,UAAW,YAAa,QAAQ,EAS7D,SAAS0Z,EAASC,EAAMC,EAAoB,CACxC,OAAIA,GAAsBD,EAAK,MAAM,WAAa,eACvC,CAACA,EAAK,QAASA,EAAK,UAAWA,EAAK,MAAM,EAE9C,CAACA,EAAK,QAASA,EAAK,UAAWA,EAAK,OAAQA,EAAK,KAAK,CACjE,CASA,SAASE,EAAeF,EAAMC,EAAoB,CAC9C,MAAMnZ,EAAQ,CAAE,EAChB,UAAWtuB,KAAQunC,EAASC,EAAMC,CAAkB,EAC5CznC,EAAK,WAAa,OAClB0nC,EAAe1nC,EAAMynC,CAAkB,EAAE,QAAQE,GAAWrZ,EAAM,KAAKqZ,CAAO,CAAC,EAG/ErZ,EAAM,KAAKtuB,CAAI,EAGvB,OAAOsuB,CACX,CAOA,SAASsZ,EAAcJ,EAAM,CACzB,MAAO,CACH,CAAE,IAAK,UAAW,MAAOA,EAAK,OAAS,EACvC,CAAE,IAAK,YAAa,MAAOA,EAAK,SAAW,EAC3C,CAAE,IAAK,SAAU,MAAOA,EAAK,MAAQ,EACrC,CAAE,IAAK,QAAS,MAAOA,EAAK,KAAO,CACtC,CACL,CAWA,SAASK,EAAkBC,EAAYC,EAAW1Z,EAAa,CAC3D,MAAM2Z,EAAW,CAAE,EACnB,OAAAF,EAAW,QAASG,GAAcD,EAASC,EAAU,GAAG,EAAIA,EAAU,KAAK,EACvEF,IACAC,EAAS,QAAUA,EAAS,SAAWD,EAAU,SAAS,EAC1DC,EAAS,UAAYA,EAAS,WAAaD,EAAU,WAAW,EAChEC,EAAS,OAASA,EAAS,QAAUD,EAAU,QAAQ,EACvDC,EAAS,MAAQA,EAAS,OAASD,EAAU,OAAO,IAEhD1Z,GAAeiZ,GAAI,KAAKU,EAAS,QAASA,EAAS,UAAWA,EAAS,OAAQA,EAAS,KAAK,CACzG,CAMA,SAASE,EAAaV,EAAMjjC,EAAI,CAC5BA,EAAGijC,EAAK,QAAS,SAAS,EAC1BjjC,EAAGijC,EAAK,UAAW,WAAW,EAC9BjjC,EAAGijC,EAAK,OAAQ,QAAQ,EACxBjjC,EAAGijC,EAAK,MAAO,OAAO,CAC1B,CAOA,SAASW,EAAmBX,EAAMjjC,EAAI4I,EAAO,CAAA,EAAI,CACzCq6B,EAAK,QAAQ,WAAa,OAC1BW,EAAmBX,EAAK,QAASjjC,EAAI,CAAC,GAAG4I,EAAM,SAAS,CAAC,EAGzD5I,EAAGijC,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,EAErCq6B,EAAK,UAAU,WAAa,OAC5BW,EAAmBX,EAAK,UAAWjjC,EAAI,CAAC,GAAG4I,EAAM,WAAW,CAAC,EAG7D5I,EAAGijC,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,EAEzCq6B,EAAK,OAAO,WAAa,OACzBW,EAAmBX,EAAK,OAAQjjC,EAAI,CAAC,GAAG4I,EAAM,QAAQ,CAAC,EAGvD5I,EAAGijC,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,EAEnCq6B,EAAK,MAAM,WAAa,OACxBW,EAAmBX,EAAK,MAAOjjC,EAAI,CAAC,GAAG4I,EAAM,OAAO,CAAC,EAGrD5I,EAAGijC,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,CAEzC,CAOA,SAASi7B,EAAYZ,EAAM1qB,EAAQ,CAC/B,MAAMwR,EAAQ,CAAE,EAChB,OAAIxR,EAAO0qB,EAAK,QAAS,SAAS,GAC9BlZ,EAAM,KAAKkZ,EAAK,OAAO,EAEvB1qB,EAAO0qB,EAAK,UAAW,WAAW,GAClClZ,EAAM,KAAKkZ,EAAK,SAAS,EAEzB1qB,EAAO0qB,EAAK,OAAQ,QAAQ,GAC5BlZ,EAAM,KAAKkZ,EAAK,MAAM,EAEtB1qB,EAAO0qB,EAAK,MAAO,OAAO,GAC1BlZ,EAAM,KAAKkZ,EAAK,KAAK,EAElBlZ,CACX,CAQA,SAAS+Z,EAAkBb,EAAM1qB,EAAQ3P,EAAO,CAAA,EAAI,CAChD,IAAImhB,EAAQ,CAAE,EACd,OAAIkZ,EAAK,QAAQ,WAAa,OAC1BlZ,EAAQ,CAAC,GAAGA,EAAO,GAAG+Z,EAAkBb,EAAK,QAAS1qB,EAAQ,CAAC,GAAG3P,EAAM,SAAS,CAAC,CAAC,EAG/E2P,EAAO0qB,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,GACzCmhB,EAAM,KAAKkZ,EAAK,OAAO,EAG3BA,EAAK,UAAU,WAAa,OAC5BlZ,EAAQ,CAAC,GAAGA,EAAO,GAAG+Z,EAAkBb,EAAK,UAAW1qB,EAAQ,CAAC,GAAG3P,EAAM,WAAW,CAAC,CAAC,EAGnF2P,EAAO0qB,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,GAC7CmhB,EAAM,KAAKkZ,EAAK,SAAS,EAG7BA,EAAK,OAAO,WAAa,OACzBlZ,EAAQ,CAAC,GAAGA,EAAO,GAAG+Z,EAAkBb,EAAK,OAAQ1qB,EAAQ,CAAC,GAAG3P,EAAM,QAAQ,CAAC,CAAC,EAG7E2P,EAAO0qB,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,GACvCmhB,EAAM,KAAKkZ,EAAK,MAAM,EAG1BA,EAAK,MAAM,WAAa,OACxBlZ,EAAQ,CAAC,GAAGA,EAAO,GAAG+Z,EAAkBb,EAAK,MAAO1qB,EAAQ,CAAC,GAAG3P,EAAM,OAAO,CAAC,CAAC,EAG3E2P,EAAO0qB,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,GACrCmhB,EAAM,KAAKkZ,EAAK,KAAK,EAGtBlZ,CACX,CAOA,SAASga,EAAoBd,EAAM1qB,EAAQ,CACvC,MAAMyrB,EAAQ,CAAE,EAChB,OAAIzrB,EAAO0qB,EAAK,QAAS,SAAS,GAC9Be,EAAM,KAAK,SAAS,EAEpBzrB,EAAO0qB,EAAK,UAAW,WAAW,GAClCe,EAAM,KAAK,WAAW,EAEtBzrB,EAAO0qB,EAAK,OAAQ,QAAQ,GAC5Be,EAAM,KAAK,QAAQ,EAEnBzrB,EAAO0qB,EAAK,MAAO,OAAO,GAC1Be,EAAM,KAAK,OAAO,EAEfA,CACX,CAQA,SAASC,EAA0BhB,EAAM1qB,EAAQ3P,EAAO,CAAA,EAAI,CACxD,IAAIo7B,EAAQ,CAAE,EACd,MAAME,EAAQ,CAAC,GAAGt7B,EAAM,SAAS,EAC7Bq6B,EAAK,QAAQ,WAAa,OAC1Be,EAAQ,CAAC,GAAGA,EAAO,GAAGC,EAA0BhB,EAAK,QAAS1qB,EAAQ2rB,CAAK,CAAC,EAGxE3rB,EAAO0qB,EAAK,QAASiB,CAAK,GAC1BF,EAAM,KAAKE,CAAK,EAGxB,MAAMC,EAAQ,CAAC,GAAGv7B,EAAM,WAAW,EAC/Bq6B,EAAK,UAAU,WAAa,OAC5Be,EAAQ,CAAC,GAAGA,EAAO,GAAGC,EAA0BhB,EAAK,UAAW1qB,EAAQ4rB,CAAK,CAAC,EAG1E5rB,EAAO0qB,EAAK,UAAWkB,CAAK,GAC5BH,EAAM,KAAKG,CAAK,EAGxB,MAAMC,EAAQ,CAAC,GAAGx7B,EAAM,QAAQ,EAC5Bq6B,EAAK,OAAO,WAAa,OACzBe,EAAQ,CAAC,GAAGA,EAAO,GAAGC,EAA0BhB,EAAK,OAAQ1qB,EAAQ6rB,CAAK,CAAC,EAGvE7rB,EAAO0qB,EAAK,OAAQmB,CAAK,GACzBJ,EAAM,KAAKI,CAAK,EAGxB,MAAMC,EAAQ,CAAC,GAAGz7B,EAAM,OAAO,EAC/B,OAAIq6B,EAAK,MAAM,WAAa,OACxBe,EAAQ,CAAC,GAAGA,EAAO,GAAGC,EAA0BhB,EAAK,MAAO1qB,EAAQ8rB,CAAK,CAAC,EAGtE9rB,EAAO0qB,EAAK,MAAOoB,CAAK,GACxBL,EAAM,KAAKK,CAAK,EAGjBL,CACX,CASA,SAASM,EAASrB,EAAM54B,EAAQyf,EAAa,CACzC,OAAQA,GAAeiZ,GAAI,KAAK14B,EAAO44B,EAAK,QAAS,SAAS,EAAG54B,EAAO44B,EAAK,UAAW,WAAW,EAAG54B,EAAO44B,EAAK,OAAQ,QAAQ,EAAG54B,EAAO44B,EAAK,MAAO,OAAO,CAAC,CACpK,CAUA,SAASsB,EAAetB,EAAM54B,EAAQyf,EAAalhB,EAAO,CAAA,EAAI,CAC1D,OAAQkhB,GAAeiZ,GAAI,KAAKE,EAAK,QAAQ,WAAa,OACtDsB,EAAetB,EAAK,QAAS54B,EAAQyf,EAAa,CAAC,GAAGlhB,EAAM,SAAS,CAAC,EACtEyB,EAAO44B,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,EAAGq6B,EAAK,UAAU,WAAa,OACxEsB,EAAetB,EAAK,UAAW54B,EAAQyf,EAAa,CAAC,GAAGlhB,EAAM,WAAW,CAAC,EAC1EyB,EAAO44B,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,EAAGq6B,EAAK,OAAO,WAAa,OACzEsB,EAAetB,EAAK,OAAQ54B,EAAQyf,EAAa,CAAC,GAAGlhB,EAAM,QAAQ,CAAC,EACpEyB,EAAO44B,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,EAAGq6B,EAAK,MAAM,WAAa,OAClEsB,EAAetB,EAAK,MAAO54B,EAAQyf,EAAa,CAAC,GAAGlhB,EAAM,OAAO,CAAC,EAClEyB,EAAO44B,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,CAAC,CAC9C,CAQA,SAAS47B,EAAYvB,EAAMjqB,EAASyrB,EAAc,CAC9C,IAAIlxC,EAAQkxC,EACZ,OAAAlxC,EAAQylB,EAAQzlB,EAAO0vC,EAAK,QAAS,SAAS,EAC9C1vC,EAAQylB,EAAQzlB,EAAO0vC,EAAK,UAAW,WAAW,EAClD1vC,EAAQylB,EAAQzlB,EAAO0vC,EAAK,OAAQ,QAAQ,EACrCjqB,EAAQzlB,EAAO0vC,EAAK,MAAO,OAAO,CAC7C,CASA,SAASyB,EAAkBzB,EAAMjqB,EAASyrB,EAAc77B,EAAO,CAAA,EAAI,CAC/D,IAAIrV,EAAQkxC,EACZ,OAAIxB,EAAK,QAAQ,WAAa,OAC1B1vC,EAAQmxC,EAAkBzB,EAAK,QAASjqB,EAASzlB,EAAO,CAAC,GAAGqV,EAAM,SAAS,CAAC,EAG5ErV,EAAQylB,EAAQzlB,EAAO0vC,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,EAEzDq6B,EAAK,UAAU,WAAa,OAC5B1vC,EAAQmxC,EAAkBzB,EAAK,UAAWjqB,EAASzlB,EAAO,CAAC,GAAGqV,EAAM,WAAW,CAAC,EAGhFrV,EAAQylB,EAAQzlB,EAAO0vC,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,EAE7Dq6B,EAAK,OAAO,WAAa,OACzB1vC,EAAQmxC,EAAkBzB,EAAK,OAAQjqB,EAASzlB,EAAO,CAAC,GAAGqV,EAAM,QAAQ,CAAC,EAG1ErV,EAAQylB,EAAQzlB,EAAO0vC,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,EAEvDq6B,EAAK,MAAM,WAAa,OACxB1vC,EAAQmxC,EAAkBzB,EAAK,MAAOjqB,EAASzlB,EAAO,CAAC,GAAGqV,EAAM,OAAO,CAAC,EAGxErV,EAAQylB,EAAQzlB,EAAO0vC,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,EAElDrV,CACX,CAOA,SAASoxC,EAAW1B,EAAM2B,EAAS,CAC/B,OAAOA,EAAQ3B,EAAK,QAAS,SAAS,GAC/B2B,EAAQ3B,EAAK,UAAW,WAAW,GACnC2B,EAAQ3B,EAAK,OAAQ,QAAQ,GAC7B2B,EAAQ3B,EAAK,MAAO,OAAO,CACtC,CAQA,SAAS4B,EAAiB5B,EAAM2B,EAASh8B,EAAO,CAAA,EAAI,CAChD,OAAQq6B,EAAK,QAAQ,WAAa,OAC9B4B,EAAiB5B,EAAK,QAAS2B,EAAS,CAAC,GAAGh8B,EAAM,SAAS,CAAC,EAC5Dg8B,EAAQ3B,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,KACtCq6B,EAAK,UAAU,WAAa,OAC5B4B,EAAiB5B,EAAK,UAAW2B,EAAS,CAAC,GAAGh8B,EAAM,WAAW,CAAC,EAChEg8B,EAAQ3B,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,KAC9Cq6B,EAAK,OAAO,WAAa,OACzB4B,EAAiB5B,EAAK,OAAQ2B,EAAS,CAAC,GAAGh8B,EAAM,QAAQ,CAAC,EAC1Dg8B,EAAQ3B,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,KACxCq6B,EAAK,MAAM,WAAa,OACxB4B,EAAiB5B,EAAK,MAAO2B,EAAS,CAAC,GAAGh8B,EAAM,OAAO,CAAC,EACxDg8B,EAAQ3B,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,EAClD,CAOA,SAASk8B,EAAU7B,EAAM2B,EAAS,CAC9B,OAAOA,EAAQ3B,EAAK,QAAS,SAAS,GAC/B2B,EAAQ3B,EAAK,UAAW,WAAW,GACnC2B,EAAQ3B,EAAK,OAAQ,QAAQ,GAC7B2B,EAAQ3B,EAAK,MAAO,OAAO,CACtC,CAQA,SAAS8B,EAAgB9B,EAAM2B,EAASh8B,EAAO,CAAA,EAAI,CAC/C,OAAQq6B,EAAK,QAAQ,WAAa,OAC9B8B,EAAgB9B,EAAK,QAAS2B,EAAS,CAAC,GAAGh8B,EAAM,SAAS,CAAC,EAC3Dg8B,EAAQ3B,EAAK,QAAS,CAAC,GAAGr6B,EAAM,SAAS,CAAC,KACtCq6B,EAAK,UAAU,WAAa,OAC5B8B,EAAgB9B,EAAK,UAAW2B,EAAS,CAAC,GAAGh8B,EAAM,WAAW,CAAC,EAC/Dg8B,EAAQ3B,EAAK,UAAW,CAAC,GAAGr6B,EAAM,WAAW,CAAC,KAC9Cq6B,EAAK,OAAO,WAAa,OACzB8B,EAAgB9B,EAAK,OAAQ2B,EAAS,CAAC,GAAGh8B,EAAM,QAAQ,CAAC,EACzDg8B,EAAQ3B,EAAK,OAAQ,CAAC,GAAGr6B,EAAM,QAAQ,CAAC,KACxCq6B,EAAK,MAAM,WAAa,OACxB8B,EAAgB9B,EAAK,MAAO2B,EAAS,CAAC,GAAGh8B,EAAM,OAAO,CAAC,EACvDg8B,EAAQ3B,EAAK,MAAO,CAAC,GAAGr6B,EAAM,OAAO,CAAC,EAClD,CAMA,SAASo8B,EAAmBvpC,EAAMmN,EAAM,CACpC,GAAIA,EAAK,SAAW,EAChB,OAAOnN,EAEX,GAAIA,EAAK,WAAa,OAClB,OAAOupC,EAAmBvpC,EAAKmN,EAAK,CAAC,CAAC,EAAGA,EAAK,MAAM,CAAC,CAAC,EAE1D,MAAM,IAAI,MAAM,gBAAgBA,EAAK,CAAC,CAAC,sBAAsBnN,EAAK,QAAQ,EAAE,CAChF,CAaA,SAASwpC,EAAUC,EAAOC,EAAO,CAC7B,MAAO,CAACA,GACDA,EAAM,WAAa,YAClBA,EAAM,WAAa,QAAUD,EAAM,WAAa,QAAUE,EAAqBF,EAAOC,CAAK,GAC5FA,EAAM,OAAOD,CAAK,CAC7B,CAiBA,SAASG,EAAapC,EAAM79B,EAASyF,EAAWlC,EAAQogB,EAAO,CAC3D,OAAOkc,EAAUhC,EAAK,QAAS79B,CAAO,GAC/B6/B,EAAUhC,EAAK,UAAWp4B,CAAS,GACnCo6B,EAAUhC,EAAK,OAAQt6B,CAAM,GAC7Bs8B,EAAUhC,EAAK,MAAOla,CAAK,CACtC,CAYA,SAASqc,EAAqBnC,EAAMnF,EAAS,CACzC,OAAOuH,EAAapC,EAAMnF,EAAQ,QAASA,EAAQ,UAAWA,EAAQ,OAAQA,EAAQ,KAAK,CAC/F,CACA,SAASwH,EAAqBrC,EAAMnF,EAASyH,EAAM,CAAA,EAAI,CACnD,MAAMx1B,EAAM,CAAE,EACd,SAASna,EAAM4vC,EAAUC,EAAO,CAC5B,OAAOd,EAAWa,EAAU,CAACE,EAAI9xC,KAAQ,CACrC,IAAIpC,GAAIm0C,GACR,MAAMC,GAAKH,EAAM7xC,EAAG,EACpB,OAAQ8xC,EAAG,SAAQ,CACf,IAAK,WACD,OAAQH,EAAI,gBAAkBK,GAAG,WAAa,cACrCD,IAAMn0C,GAAKue,EAAI21B,EAAG,KAAK,KAAO,MAAQl0C,KAAO,OAAS,OAASA,GAAG,OAAOo0C,EAAE,KAAO,MAAQD,KAAO,OAASA,IAAM51B,EAAI21B,EAAG,KAAK,EAAIE,GAAI,KACjJ,IAAK,OACD,OAAOA,GAAG,WAAa,QAAUhwC,EAAM8vC,EAAIE,EAAE,EACjD,QACI,OAAOF,EAAG,OAAOE,EAAE,CACvC,CACA,CAAS,CACT,CACI,OAAOhwC,EAAMkoC,EAASmF,CAAI,IAAMsC,EAAI,eAAiBx1B,EAAM,GAC/D,iJCpgBA,OAAO,eAAe,SAAS,aAAc,CAAE,MAAO,GAAM,EAC1C,SAAA,WAAG,OACrB,SAAA,UAAoB81B,EACpB,SAAA,eAAyBE,EACzB,SAAA,cAAwBE,EACxB,SAAA,cAAwBC,EACxB,SAAA,YAAsBC,EACtB,SAAA,aAAuBC,EACvB,SAAA,iBAA2BC,EAC3B,SAAA,SAAmBC,EACnB,MAAM7E,EAAe3iB,iBAAqB,EAM1C,SAAA,WAAqB,CAAC,YAAa,YAAa,UAAW,WAAY,eAAgB,MAAM,EAS7F,SAAS+mB,EAAU9b,EAAO,CACtB,MAAMrgB,EAAO,CAAE,EACf,OAAOqgB,EAAM,OAAOtuB,GAAQ,CACxB,MAAMqqC,KAAiBrE,EAAa,cAAchmC,CAAI,EACtD,MAAO,EAAEqqC,KAAcp8B,KAAUA,EAAKo8B,CAAU,EAAI,GAC5D,CAAK,CACL,CAOA,SAASC,EAAehc,EAAOic,EAAU,CACrC,OAAOjc,EAAM,OAAQtuB,GAASA,EAAK,WAAauqC,CAAQ,CAC5D,CAMA,SAASC,EAAclc,EAAO,CAC1B,OAAOgc,EAAehc,EAAO,WAAW,CAC5C,CAMA,SAASmc,EAAcnc,EAAO,CAC1B,OAAOgc,EAAehc,EAAO,WAAW,CAC5C,CAMA,SAASoc,EAAYpc,EAAO,CACxB,OAAOgc,EAAehc,EAAO,SAAS,CAC1C,CAMA,SAASqc,EAAarc,EAAO,CACzB,OAAOgc,EAAehc,EAAO,UAAU,CAC3C,CAMA,SAASsc,EAAiBtc,EAAO,CAC7B,OAAOgc,EAAehc,EAAO,cAAc,CAC/C,CAMA,SAASuc,EAASvc,EAAO,CACrB,OAAOgc,EAAehc,EAAO,MAAM,CACvC,mICxFA,IAAIvH,EAAmBC,UAAQA,SAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,UAAQA,SAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,oBAA6B,EAAE+D,CAAO,EACnDD,EAAaE,gBAAyB,EAAED,CAAO,8LChB/C,OAAO,eAAeu4L,oBAAS,aAAc,CAAE,MAAO,GAAM,EACjCA,oBAAA,oBAAG,OAC9B,MAAM35K,EAAe3iB,iBAAqB,EACpC6nB,EAAc7jB,gBAAoB,EAIxC,IAAAu4L,EAAA,MAAMC,EAAoB,CACtB,aAAc,CACV,KAAK,eAAiB,IAAI,IAC1B,KAAK,WAAa,CAAE,CAC5B,CACI,aAAa7/M,EAAM,CACf,OAAOA,GAAQA,EAAK,WAAa,cAAiBgmC,EAAa,cAAchmC,CAAI,EAAI6/M,GAAoB,WACjH,CASI,mBAAmBC,EAAen2M,EAASyF,EAAWlC,EAAQogB,EAAO,CAEjE,KAAK,WAAW,KAAKwyL,CAAa,EAElC,MAAM3nN,EAAM,GAAG,KAAK,aAAawR,CAAO,CAAC,GAAGk2M,GAAoB,YAAY,GAAG,KAAK,aAAazwM,CAAS,CAAC,GAAGywM,GAAoB,YAAY,GAAG,KAAK,aAAa3yM,CAAM,CAAC,GAAG2yM,GAAoB,YAAY,GAAG,KAAK,aAAavyL,CAAK,CAAC,GACxO,IAAIyyL,EAAoB,KAAK,eAAe,IAAI5nN,CAAG,EAC9C4nN,IACDA,EAAoB,CAAE,EACtB,KAAK,eAAe,IAAI5nN,EAAK4nN,CAAiB,GAElDA,EAAkB,KAAKD,CAAa,CAC5C,CAKI,yBAAyBt4K,EAAM,CAE3B,IAAIr6B,EAAO,IAAK+9B,EAAY,UAAU1D,CAAI,EAAE,IAAIxnC,MAAYgmC,EAAa,cAAchmC,CAAI,CAAC,CAAC,EAC7F,QAASnjB,EAAI,EAAGA,EAAIquD,EAAY,gBAAgB,OAAQruD,IAAK,CACzD,MAAMmjO,EAAU7yM,EAChBA,EAAO,CAAE,EACT,UAAWhV,KAAO6nN,EAAS,CACvB7yM,EAAK,KAAKhV,CAAG,EACb,MAAM8nN,EAAc,CAAC,GAAG9nN,CAAG,EAC3B8nN,EAAYpjO,CAAC,EAAIgjO,GAAoB,YACrC1yM,EAAK,KAAK8yM,CAAW,CACrC,CACA,CAEQ,MAAMC,EAAiB,CAAE,EACzB,UAAW/nN,KAAOgV,EAAM,CACpB,MAAMkR,EAAQ,KAAK,eAAe,IAAIlmB,EAAI,KAAK0nN,GAAoB,YAAY,CAAC,EAC5ExhM,GACA6hM,EAAe,KAAK,GAAG7hM,CAAK,CAE5C,CACQ,OAAO6hM,CACf,CACA,EACAL,OAAAA,EAAoB,YAAc,IAClCA,EAAoB,aAAe,IACnCF,oBAAA,oBAA8BE,sLCjE9B,IAAIM,EAAiBn5L,gBAAQA,eAAK,eAAkB,SAAUlqC,EAAG,CAC7D,GAAI,CAAC,OAAO,cAAe,MAAM,IAAI,UAAU,sCAAsC,EACrF,IAAIW,EAAIX,EAAE,OAAO,aAAa,EAAGD,EACjC,OAAOY,EAAIA,EAAE,KAAKX,CAAC,GAAKA,EAAI,OAAO,UAAa,WAAa,SAASA,CAAC,EAAIA,EAAE,OAAO,QAAQ,EAAC,EAAID,EAAI,CAAE,EAAEujO,EAAK,MAAM,EAAGA,EAAK,OAAO,EAAGA,EAAK,QAAQ,EAAGvjO,EAAE,OAAO,aAAa,EAAI,UAAY,CAAE,OAAO,IAAO,EAAEA,GAC9M,SAASujO,EAAKzjO,EAAG,CAAEE,EAAEF,CAAC,EAAIG,EAAEH,CAAC,GAAK,SAAUe,EAAG,CAAE,OAAO,IAAI,QAAQ,SAAUi7E,EAASC,EAAQ,CAAEl7E,EAAIZ,EAAEH,CAAC,EAAEe,CAAC,EAAG2iO,EAAO1nJ,EAASC,EAAQl7E,EAAE,KAAMA,EAAE,KAAK,CAAI,CAAA,CAAE,CAAG,CAC9J,SAAS2iO,EAAO1nJ,EAASC,EAAQv7E,EAAGK,EAAG,CAAE,QAAQ,QAAQA,CAAC,EAAE,KAAK,SAAS,EAAG,CAAEi7E,EAAQ,CAAE,MAAO,EAAG,KAAMt7E,EAAG,GAAMu7E,CAAM,CAAE,CAC7H,EACG0nJ,EAAWt5L,gBAAQA,eAAK,SAAY,SAAUtpC,EAAG,CAAE,OAAO,gBAAgB4iO,GAAW,KAAK,EAAI5iO,EAAG,MAAQ,IAAI4iO,EAAQ5iO,CAAC,CAAE,EACxH6iO,EAAoBv5L,gBAAQA,eAAK,kBAAqB,SAAU4kE,EAASC,EAAYC,EAAW,CAChG,GAAI,CAAC,OAAO,cAAe,MAAM,IAAI,UAAU,sCAAsC,EACrF,IAAItuG,EAAIsuG,EAAU,MAAMF,EAASC,GAAc,EAAE,EAAGhvG,EAAGuC,EAAI,CAAE,EAC7D,OAAOvC,EAAI,CAAA,EAAIujO,EAAK,MAAM,EAAGA,EAAK,OAAO,EAAGA,EAAK,QAAQ,EAAGvjO,EAAE,OAAO,aAAa,EAAI,UAAY,CAAE,OAAO,IAAK,EAAIA,EACpH,SAASujO,EAAKzjO,EAAG,CAAMa,EAAEb,CAAC,IAAGE,EAAEF,CAAC,EAAI,SAAUe,EAAG,CAAE,OAAO,IAAI,QAAQ,SAAUX,EAAGc,EAAG,CAAEuB,EAAE,KAAK,CAACzC,EAAGe,EAAGX,EAAGc,CAAC,CAAC,EAAI,GAAKysH,EAAO3tH,EAAGe,CAAC,CAAI,CAAA,CAAE,EAAG,CACxI,SAAS4sH,EAAO3tH,EAAGe,EAAG,CAAE,GAAI,CAAE6vB,EAAK/vB,EAAEb,CAAC,EAAEe,CAAC,CAAC,CAAE,OAAUjB,EAAG,CAAE4jO,EAAOjhO,EAAE,CAAC,EAAE,CAAC,EAAG3C,CAAC,CAAI,CAAA,CAChF,SAAS8wB,EAAK3wB,EAAG,CAAEA,EAAE,iBAAiB0jO,EAAU,QAAQ,QAAQ1jO,EAAE,MAAM,CAAC,EAAE,KAAK4jO,EAAS5nJ,CAAM,EAAIynJ,EAAOjhO,EAAE,CAAC,EAAE,CAAC,EAAGxC,CAAC,CAAE,CACtH,SAAS4jO,EAAQ1oN,EAAO,CAAEwyG,EAAO,OAAQxyG,CAAK,CAAE,CAChD,SAAS8gE,EAAO9gE,EAAO,CAAEwyG,EAAO,QAASxyG,CAAK,CAAE,CAChD,SAASuoN,EAAO/iO,EAAGI,EAAG,CAAMJ,EAAEI,CAAC,EAAG0B,EAAE,QAASA,EAAE,QAAQkrH,EAAOlrH,EAAE,CAAC,EAAE,CAAC,EAAGA,EAAE,CAAC,EAAE,CAAC,CAAC,CAAE,CACnF,EACD,OAAO,eAAeqhO,eAAS,aAAc,CAAE,MAAO,GAAM,EACtCA,eAAA,eAAG,OACzB,MAAM3qF,EAAO,WACPzhB,EAAoBhtF,eAA0B,EAC9Cs4L,EAAwBr4L,2BAAgC,EAU9D,IAAAo5L,EAAA,MAAMC,EAAe,CACjB,YAAYhtF,EAAQ,IAAImC,EAAK,MAAS,CAClC,KAAK,eAAiB,IAAI6pF,EAAsB,oBAChD,KAAK,MAAQ,GACb,KAAK,UAAY,CAAE,EACnB,KAAK,MAAQhsF,CACrB,CACI,eAAet7D,EAAU,CACrB,KAAK,UAAU,KAAKA,CAAQ,CACpC,CACI,cAAe,CACX,UAAWA,KAAY,KAAK,UACxBA,EAAU,CAEtB,CACI,UAAW,CACP,OAAO,KAAK,KACpB,CAQI,KAAM,CACF,KAAK,MAAQ,GAEb,UAAWynJ,KAAiB,KAAK,eAAe,WAC5CA,EAAc,KAAK,IAAI,EAE3B,KAAK,aAAc,CAC3B,CACI,kBAAkBniH,EAAQ,CACtBA,EAAO,GAAG,OAASn2D,GAAS,CACxB,GAAI,CAAC,KAAK,OAAS,CAAC,KAAK,MAAM,WAAWA,EAAK,QAASA,EAAK,UAAWA,EAAK,OAAQA,EAAK,KAAK,EAC3F,UAAWs4K,KAAiB,KAAK,eAAe,yBAAyBt4K,CAAI,EAMzEs4K,EAAc,KAAK,OAAQt4K,CAAI,EAC3Bs4K,EAAc,eACdA,EAAc,KAAKt4K,CAAI,CAI/C,CAAS,CACT,CACI,OAAO,cAAco5K,EAAW,CAC5B,OAAOL,EAAiB,KAAM,UAAW,WAA4B,CACjE,IAAIxqN,EAAI8qN,EAAK32K,EAAI8qB,EACjB,UAAW0J,KAAYkiJ,EACnB,GAAI,CACA,QAASj6E,EAAK,GAAMm6E,GAAcD,EAAM,OAAQV,EAAczhJ,CAAQ,GAAIqiJ,EAAcA,EAAe,MAAMT,EAAQQ,EAAW,KAAM,CAAA,EAAG/qN,EAAKgrN,EAAa,KAAM,CAAChrN,GAAK,CACnKi/D,EAAK+rJ,EAAa,MAClBp6E,EAAK,GACL,GAAI,CAEA,MAAM,MAAM25E,EADEtrJ,CACW,CACrD,QACgC,CACJ2xE,EAAK,EACjC,CACA,CACA,OACuBq6E,EAAO,CAAEH,EAAM,CAAE,MAAOG,CAAK,CAAG,QAC/B,CACJ,GAAI,CACI,CAACr6E,GAAM,CAAC5wI,IAAOm0C,EAAK42K,EAAW,UAAS,MAAMR,EAAQp2K,EAAG,KAAK42K,CAAU,CAAC,EACrG,QAC4B,CAAE,GAAID,EAAK,MAAMA,EAAI,KAAM,CACvD,CAEA,CAAS,CACT,CACI,OAAOljH,EAAQ,CACX,GAAI,KAAK,MACL,MAAM,IAAI,MAAM,kDAAkD,EAEtE,YAAK,kBAAkBA,CAAM,EACtB,KAAK,MAAM,OAAOA,CAAM,CACvC,CACI,MAAMh0F,EAASyF,EAAWlC,EAAQogB,EAAO,CACrC,MAAM2zL,EAAc,KAAK,MAAM,MAAMt3M,EAASyF,EAAWlC,EAAQogB,CAAK,EACtE,IAAIqwE,EAASsjH,EAEb,GAAI,CAAC,KAAK,MAAO,CAEb,MAAMnB,EAAgB,IAAIzrG,EAAkB,YAAY,CAAE,WAAY,GAAM,EAC5E,KAAK,eAAe,mBAAmByrG,EAAen2M,EAASyF,EAAWlC,EAAQogB,CAAK,EACvFqwE,EAAS0W,EAAkB,SAAS,KAAKssG,GAAe,cAAc,CAACM,EAAanB,CAAa,CAAC,CAAC,EACnGA,EAAc,GAAG,OAAQt4K,GAAQ,CAC7Bm2D,EAAO,KAAK,OAAQn2D,CAAI,CACxC,CAAa,EACDm2D,EAAO,YAAcsjH,EAKrB,MAAM3nC,EAAU2nC,EAAY,MAC5BA,EAAY,MAASh2M,GAAS,CAC1B60M,EAAc,cAAgB,GAC9BxmC,EAAQ,KAAK2nC,EAAah2M,CAAI,CACjC,CACb,CACQ,OAAO0yF,CACf,CAII,UAAW,CACP,OAAO,KAAK,KACpB,CACA,EACA8iH,sBAAA,eAAyBE,uKCrJzB,IAAI55L,EAAmBC,mBAAQA,kBAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,mBAAQA,kBAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,2BAAoC,EAAE+D,CAAO,EAC1DD,EAAaE,sBAA+B,EAAED,CAAO,+NChBrD,OAAO,eAAe85L,uBAAS,aAAc,CAAE,MAAO,GAAM,EAC9BA,uBAAA,uBAAG,OACjC,MAAMznC,EAAsDp2J,cAAA,EACtDg2C,EAAsDhyC,cAAA,EACtD85L,EAAwB75L,yBAA8B,EAI5D,IAAA85L,EAAA,cAAqCD,EAAsB,cAAe,CACtE,YAAYxtF,EAAO0tF,EAAqB,CACpC,MAAM1tF,CAAK,EACX,KAAK,QAAU,GACf,KAAK,iBAAmB,IAAI,IAC5B,KAAK,iBAAmB,IAAI,IAC5B,KAAK,yBAA2B,IAAI,IACpC,KAAK,aAAe,CAChB,MAAO,IAAIt6D,EAAiB,wBAC5B,YAAa,CAAE,KAAM,QAAS,MAAO,CAAG,EACxC,UAAW,CAAE,CAChB,EACD,KAAK,oBAAsBgoJ,CACnC,CACI,OAAO1jH,EAAQ,CACX,OAAK,KAAK,OACN,MAAM,OAAOA,CAAM,EAEhBA,CACf,CACI,qBAAsB,CAClB,OAAO,KAAK,iBAAiB,KAAO,CAC5C,CACI,MAAMh0F,EAASyF,EAAWlC,EAAQogB,EAAO,CAErC,MAAM++K,EAAY,MAAM,MAAM1iM,EAASyF,EAAWlC,EAAQogB,CAAK,EACzDhgB,EAAW,IAAImsK,EAAiB,0BAA0B4yB,EAAW,CACvE,UAAW,GACX,QAAS,IAAM,CAEX,KAAK,iBAAiB,OAAO/+L,CAAQ,CACxC,CACb,CAAS,EAED,IAAIuI,EAAQ,KAAK,SAAU,EAAC,WAAWlM,EAASyF,EAAWlC,EAAQogB,CAAK,EACxE,MAAMurC,EAAW,CACb,MAAO,IAAIQ,EAAiB,wBAC5B,YAAa,CACT,KAAM,WACN,MAAOxjD,CACV,CACJ,EACDvI,EAAS,YAAY,WAAYurD,CAAQ,EACzCvrD,EAAS,YAAY,YAAauI,CAAK,EAEvCw2L,EAAU,GAAG,OAAQ,IAAM,CACvB/+L,EAAS,YAAY,YAAa,EAAEuI,CAAK,EACzC,KAAK,oBAAoBvI,EAAUuI,CAAK,CACpD,CAAS,EAED,KAAK,iBAAiB,IAAIvI,CAAQ,EAElC,UAAW+qD,KAAY,KAAK,yBACxBA,EAAU,EAEd,OAAO/qD,CACf,CACI,gBAAgBurD,EAAUyoJ,EAAc,CAGpC,GAFA,KAAK,aAAe,CAAE,GAAGzoJ,CAAU,EACnC,KAAK,aAAa,YAAc,CAAE,KAAM,QAAS,MAAO,CAAG,EACvDyoJ,EACA,UAAWh0M,KAAY,KAAK,iBAAkB,CAC1C,MAAMuI,EAAQvI,EAAS,YAAY,WAAW,EAC9C,KAAK,oBAAoBA,EAAUuI,CAAK,CACxD,CAEA,CACI,oBAAoBvI,EAAUuI,EAAO,CAEjC,MAAMqoM,EAAc,CAChB,MAAO,IAAI7kJ,EAAiB,wBAC5B,YAAa,CACT,KAAM,WACN,MAAOxjD,CACV,EACD,UAAW,CAAE,CAChB,EACD,KAAK,oBAAoB,KAAK,aAAcqoM,CAAW,EAClD,KAAM9hB,GAAwB,CAC/BA,EAAoB,MAAQ,IAAI/iI,EAAiB,wBAEjD,MAAM8kJ,EAAuB7wM,EAAS,YAAY,UAAU,EAC5DA,EAAS,YAAY,WAAY8uL,CAAmB,EACpD+hB,GAAsB,MAAM,WAAY,CAC3C,CAAA,EACI,MAAM,IAAM,CAEzB,CAAS,CACT,CACI,2BAA2B9lJ,EAAU,CACjC,KAAK,yBAAyB,IAAIA,CAAQ,CAClD,CACI,8BAA8BA,EAAU,CACpC,KAAK,yBAAyB,OAAOA,CAAQ,CACrD,CACA,EACA6oJ,8BAAA,uBAAiCK,0MCxGjC,OAAO,eAAeC,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAM3J,EAA4Fx0L,aAAA,EAC5FsG,EAAwDtC,cAAA,EACxD89C,EAA0C79C,qBAAA,EAC1C4vC,EAAkC3vC,kBAAA,EAClC8sF,EAAoB7sF,eAA0B,EAC9C+mC,EAAoB9mC,uBAA0B,EAC9Ci3L,EAAkGh3L,gDAAA,EAClGw5L,EAA8Dv5L,8BAAA,EACpE,IAAA85L,EAAA,KAA4B,CACxB,YAAY9V,EAAW0R,EAAUuB,EAAiBtB,EAAcoE,EAAgBC,EAAWC,EAAYvzL,EAAa48C,EAAiB,CACjI,KAAK,eAAiBoyI,EACtB,KAAK,UAAY1R,EACjB,KAAK,SAAW0R,EAChB,KAAK,gBAAkBuB,EACvB,KAAK,aAAetB,EACpB,KAAK,UAAYqE,EACjB,KAAK,eAAiBD,EACtB,KAAK,WAAaE,EAClB,KAAK,YAAcvzL,EACnB,KAAK,gBAAkB48C,EACvB,KAAK,aAAe,IAAI/T,EAAY,SAAS,CAAE,IAAK,KAAK,UAAW,CAC5E,CACI,MAAM,iBAAiB/0D,EAAS,CAE5B,OADe,MAAM,KAAK,gBAAgB,CAAE,IAAK,KAAK,QAAU,EAAE,CAAE,EAAEA,EAAS,KAAK,kBAAkBA,CAAO,CAAC,GAChG,OAAO,iBAAiBA,CAAO,CACrD,CACI,cAAcs4B,EAAWt4B,EAASvJ,EAAS,CAEvC,MAAMimN,EAAkB,KAAK,kBAAkB18M,CAAO,EACtD,GAAI08M,GAAmBpkL,EAAU,OAAS,WAAaokL,EAAgB,QACnE,OAAO,IAAIhH,EAAoC,iBAAiBgH,EAAiB18M,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EAAG,KAAK,eAAe,EAAE,cAAc8Q,EAAWt4B,CAAO,EAGrM,KAAK,aAAa,OAAS,GAC3B,KAAK,gBAAgB,CAAE,IAAK,KAAK,UAAY,CAAA,EAAIA,EAAS08M,CAAe,EACpE,MAAMzgN,GAAS3a,EAAG,QAAQ2a,CAAK,CAAC,EAEzC,MAAMiwB,EAAclsB,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,EACzEs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1D5qC,EAAK,IAAIi7N,EAA2C,yCAAyC,KAAK,UAAWjkL,EAAW7hC,EAASuJ,EAAS,KAAK,gBAAiB,KAAK,SAAU,KAAK,aAAc,CAACgkF,EAAMi4H,IAAoB,KAAK,gBAAgBj4H,EAAMi4H,EAAiBj8M,EAAS08M,CAAe,EAAGA,EAAiB,KAAK,UAAU,2BAA4B,KAAK,UAAU,kCAAmC,KAAK,UAAU,uCAAwCxwL,EAAa42C,CAAc,EAC1e,GAAI45I,EAAiB,CACjBA,EAAgB,QAAU,GAG1B,MAAMxmJ,EAAW,IAAM50E,EAAG,UAAW,EACrCo7N,EAAgB,2BAA2BxmJ,CAAQ,EACnD50E,EAAG,GAAG,MAAO,IAAMo7N,EAAgB,8BAA8BxmJ,CAAQ,CAAC,CACtF,CACQ,OAAO50E,CACf,CACI,WAAWg3C,EAAWt4B,EAAS,CAC3B,OAAO,IAAIgjE,EAAgB,kBAAkB,UAC1B,MAAM,KAAK,gBAAgB,CAAE,IAAK,KAAK,QAAU,EAAE,CAAE,EAAEhjE,EAAS,KAAK,kBAAkBA,CAAO,CAAC,GAChG,OAAO,WAAWs4B,EAAWt4B,CAAO,CACrD,CACT,CACI,MAAM,aAAas4B,EAAWt4B,EAAS,CAEnC,OAAO,MADQ,MAAM,KAAK,gBAAgB,CAAE,IAAK,KAAK,QAAU,EAAE,CAAE,EAAEA,EAAS,KAAK,kBAAkBA,CAAO,CAAC,GAC1F,OAAO,aAAas4B,EAAWt4B,CAAO,CAClE,CACI,MAAM,UAAUs4B,EAAWt4B,EAAS,CAEhC,OAAO,MADQ,MAAM,KAAK,gBAAgB,CAAE,IAAK,KAAK,QAAU,EAAE,CAAE,EAAEA,EAAS,KAAK,kBAAkBA,CAAO,CAAC,GAC1F,OAAO,UAAUs4B,EAAWt4B,CAAO,CAC/D,CAQI,MAAM,UAAUgkF,EAAMi4H,EAAiBj8M,EAAS08M,EAAiB,CAEzD14H,EAAK,UACLhkF,EAAUA,EAAQ,MAAMgkF,EAAK,OAAO,GAGxC,IAAI97D,EAAM87D,EAAK,IACXz5C,EACAmsB,EACJ,GAAI,KAAK,kBAAoB,UAAY12D,EAAQ,IAAIwnB,EAAkB,mBAAmB,YAAY,GAAG,SAAW,EAEhH+iB,EAAQ,IAAI2nE,EAAkB,SAC9B3nE,EAAM,KAAO,IAAM,KAClB,CAAE,SAAAmsB,CAAQ,EAAK,MAAM,KAAK,UAAU,2BAA2B,QAAQ,CAAE,QAAA12D,EAAS,KAAM,YAAY,CAAE,MAGvG,IAAI,CACA,MAAM2kM,EAAuB,MAAM,KAAK,UAAU,uBAC7C,QAAQ,CAAE,QAAA3kM,EAAS,IAAAkoB,EAAK,EAC7BA,EAAMy8K,EAAqB,IAE3B,MAAM+a,EAAoB,MAAM,KAAK,UAAU,iBAAiB,QAAQ,CAAE,QAAA1/M,EAAS,IAAAkoB,EAAK,MAAOy8K,EAAqB,KAAM,QAASA,EAAqB,UAAU,QAAS,EAC3K+a,EAAkB,KAAK,GAAG,QAAS,IAAM,CAKzD,CAAiB,EACDhpJ,GAAY,MAAM,KAAK,UAAU,wBAAwB,QAAQ,CAC7D,QAAA12D,EACA,IAAAkoB,EAEA,SAAUw3L,EAAkB,SAC5B,QAAS/a,EAAqB,QAC9B,YAAaA,EAAqB,WACrC,CAAA,GAAG,SACJp6J,EAAQm1K,EAAkB,KAEtB17H,EAAK,YACLz5C,EAAQ,MAAMy5C,EAAK,UAAUz5C,CAAK,EAEtD,OACmBtuC,EAAO,CAGVsuC,EAAQ,IAAI2nE,EAAkB,SAC9B3nE,EAAM,KAAO,KACT,WAAW,IAAMA,EAAM,KAAK,QAAStuC,CAAK,CAAC,EACpC,MAEV,CAAE,SAAAy6D,CAAQ,EAAK,MAAM,KAAK,UAAU,2BAA2B,QAAQ,CAAE,QAAA12D,EAAS,KAAM,YAAY,CAAE,EAGvG,KAAK,WAAW,2BAA2BkoB,CAAG,YAAYjsB,EAAM,OAAO,EAAE,CACzF,CAGQygN,GAAiB,gBAAgBhmJ,EAAU,EAAK,EAChDgmJ,GAAiB,iBAAiB,IAAI14H,EAAK,GAAG,EAC9C04H,GAAiB,OAAOnyK,CAAK,EAE7B,KAAM,CAAE,OAAAlzC,EAAQ,QAAAwvE,CAAS,EAAG,MAAM,KAAK,UAAU,sCAAsC,QAAQ,CAC3F,QAAA7mE,EACA,gBAAiBgkF,EAAK,MAAQ,KAAK,SAAW,KAAK,gBAAkB,OACrE,gBAAAi4H,EACA,SAAAvlJ,EACA,MAAAnsB,EACA,IAAAriB,CACZ,CAAS,EACD,OAAI2+C,IAIAo1I,EAAgBp1I,CAAO,EAAI,IAExB,CAAE,KAAAmd,EAAM,OAAA3sF,EAAQ,SAAUq/D,EAAU,gBAAAulJ,CAAiB,CACpE,CASI,gBAAgBj4H,EAAMi4H,EAAiBj8M,EAAS08M,EAAiB,CAC7D,IAAIrlN,EAAS,KAAK,aAAa,IAAI2sF,EAAK,GAAG,EAC3C,OAAI3sF,IAGJA,EAAS,KAAK,UAAU2sF,EAAMi4H,EAAiBj8M,EAAS08M,CAAe,GACnE14H,EAAK,MAAQ,KAAK,UAAY04H,IAAoB,SAClD,KAAK,aAAa,IAAI14H,EAAK,IAAK3sF,CAAM,EAEnCA,EACf,CACI,kBAAkB2I,EAAS,CACvB,IAAI08M,EACJ,GAAI,KAAK,eAAgB,CACrB,MAAMiD,EAAmB3/M,EACpB,IAAIwnB,EAAkB,wBAAwB,iCAAiC,EACpF,GAAIm4L,EACA,OAAAjD,EAAkBiD,EAAiB,IAAI,KAAK,QAAQ,EAC/CjD,IACDA,EAAkB,IAAIqC,EAAyB,uBAAuB,OAAW,MAAO9kB,EAAqBC,KAAuB,MAAM,KAAK,UAAU,2BAA2B,QAAQ,CACxL,KAAM,SACN,oBAAAD,EACA,kBAAAC,EACA,QAAAl6L,CACH,CAAA,GAAG,QAAQ,EACZ2/M,EAAiB,IAAI,KAAK,SAAUjD,CAAe,GAEhDA,CAEvB,CACA,CACI,UAAW,CACP,MAAO,yBAAyB,KAAK,QAAQ,GACrD,CACA,EACA2C,6BAAA,sBAAgCO,0QCjMhC,OAAO,eAAena,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAMiC,EAA4ExmL,aAAA,EAC5EsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtEi6L,EAA4Dh6L,6BAAA,EAIlE,IAAAw6L,EAAA,cAAiDnY,EAA4B,wBAAyB,CAClG,YAAYhwM,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAI,OAAOA,EAAO,wBAAwB,OAAU,YACrC6D,EAAO,UAAU,GAAG,KAAK,IAAI,gFAAgF,KAEjHA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EACtF,MAAO,CACH,YAAa,CACT,OAAQ,IAAI63L,EAAwB,sBAAsB,KAAK,UAAWx9L,EAAO,wBAAwB,MAAOA,EAAO,wBAAwB,KAAM,KAAK,aAAc,KAAK,yBACzK,EAAQA,EAAO,wBAAwB,SAAS,IAAI2F,EAAkB,wBAAwB,QAAQ,EAAI,CAC1G,iBAAkB,KAAK,iBACvB,wBAAyB,KAAK,wBAC9B,2BAA4B,KAAK,2BACjC,uBAAwB,KAAK,uBAC7B,sCAAuC,KAAK,sCAC5C,kCAAmC,KAAK,kCACxC,uCAAwC,KAAK,sCACjE,EAAmBs4L,GAAkB,KAAK,QAAQj+L,EAAO,QAASi+L,CAAc,EAAG5zL,EAAa,MAAM+wJ,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bp7J,EAAO,QAASqK,CAAW,CAAC,EACrM,QAASrK,EAAO,wBAAwB,SAAW,IAAI6D,EAAO,aACjE,CACJ,CACT,CACA,EACA+/K,0CAAA,mCAA6CC,2ICvC7C,IAAI9gL,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0CAA+C,EAAE+D,CAAO,EACrED,EAAaE,6BAAkC,EAAED,CAAO,sMChBxD,OAAO,eAAe86L,iBAAS,aAAc,CAAE,MAAO,GAAM,EACpCA,iBAAA,iBAAG,OAC3B,MAAMrnC,EAAkDx3J,cAAA,EAClDsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtE8xC,EAAsD7xC,cAAA,EACtD29C,EAA0C19C,qBAAA,EAIhD,IAAA06L,EAAA,cAA+BtnC,EAAe,YAAa,CACvD,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,OACd,aAAc,CAC1B,CAAS,CACT,CACI,MAAM,KAAKmqB,EAAQ,CAEf,OAAIA,EAAO,QAAQ,OAAS,KACb6D,EAAO,UAAU,SAAS,KAAK,IAAI,6BAA6B,EAExE,MAAM,KAAK,oBAAoB7D,EAAQ,MAAS,CAC/D,CACI,MAAM,UAAUA,EAAQ,CACpB,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFshD,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bp7J,EAAO,QAASqK,CAAW,EAC5I,MAAO,CACH,OAAQ,CACJ,eAAgB,IAAI82C,EAAgB,cAAc,CAAC8F,EAAgB,SAAQ,CAAE,EAAG,CAAE,UAAW,GAAO,EACpG,SAAU,IAAM,QAAQ,QAAQ,CAC5B,MAAO,IAAI5R,EAAiB,wBAC5B,YAAa,CAAE,KAAM,QAAS,MAAO,CAAG,EACxC,UAAW,CAAE,CACjC,CAAiB,EACD,KAAM,UACT,CACJ,CACT,CACI,MAAM,oBAAoBr1C,EAAQ8B,EAAU,CACxC,SAAW+B,EAAO,sBAAsB,CACpC,WAAY,EACZ,eAAgB,EAChB,cAAe,EACf,YAAa,CAChB,EAAE/B,CAAQ,CACnB,CACA,EACAo8L,wBAAA,iBAA2BE,yHClD3B,IAAIr7L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wBAA6B,EAAE+D,CAAO,yQCfnD,OAAO,eAAei7L,sBAAS,aAAc,CAAE,MAAO,GAAM,EAC/BA,sBAAA,sBAAG,OAChC,MAAMxnC,EAAkDx3J,cAAA,EAClDsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtEokD,EAAoEnkD,cAAA,EACpE29C,EAA0C19C,qBAAA,EAC1C8mC,EAAoB7mC,uBAA0B,EAIpD,IAAA46L,EAAA,MAAMC,WAA8B1nC,EAAe,YAAa,CAC5D,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,OACd,gBAAiB,GACjB,OAAQ,EACpB,CAAS,CACT,CAYI,OAAO,iBAAiB2oN,EAAWC,EAAY//K,EAAYggL,EAAiB9oN,EAAUqrE,EAAgBgG,EAAiB,CAEnH,MAAM03I,EAAuBH,IAAc,cAErCI,EAAUj8K,GAAa,CAGzB,MAAM83J,EAAgB/7J,EAAW,IAAIjI,MAAiBkxC,EAAwB,sBAAsBlxC,EAAWkM,EAAUs+B,EAAgBgG,EAAiB,CAAE,WAAY,EAAM,CAAA,CAAC,EACzK43I,EAAkBC,GAAgBA,EAAY,MAAMn8K,CAAQ,EAClE,OAAO,IAAIw+B,EAAgB,kBAAkB,UAAa,MAAMu9I,EAAgBjkB,EAAe93J,CAAQ,GAClG,UAAU,CAAE,IAAKk8K,EAAgB,EAAG,CAAE,cAAe,IAAK,UAAWF,EAAsB,CACnG,EAED,OAAQH,EAAS,CACb,IAAK,cACD,OAAO,IAAIr9I,EAAgB,uBAAuBs9I,EAAY,CAAE,UAAW,GAAO,eAAgBG,EAAQ,SAAAhpN,EAAU,EACxH,IAAK,gBACD,OAAO,IAAIurE,EAAgB,cAAcs9I,EAAW,UAAU,CAC1D,IAAKG,EACL,SAAAhpN,CACpB,CAAiB,EAAG,CAAE,UAAW,GAAO,EAC5B,QAEI,MAAM,IAAI,MAAM,4CAA4C4oN,CAAS,EAAE,CACvF,CACA,CACI,MAAM,UAAUx+L,EAAQ8B,EAAU,CAC9B,MAAMuI,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1D48C,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bp7J,EAAO,QAASqK,CAAW,EACtIpf,EAAU6W,EAAS,cACzB,KAAK,SAAS9B,EAAO,QAAS,8BAA+B,KAAO,CAChE,MAAO/U,EAAQ,CAAC,EAAE,UAClB,YAAaA,EAAQ,CAAC,EAAE,SAAS,YACjC,MAAOA,EAAQ,CAAC,EAAE,SAAS,MAC3B,gBAAiBA,EAAQ,CAAC,EAAE,SAAS,eACjD,EAAU,EAEF,SAAW,CAACpyB,EAAGopB,CAAO,IAAKgJ,EAAQ,QAAO,EAClCpyB,IAAM,GACNopB,EAAQ,OAAO,eAAe,MAAO,EAI7C,MAAM88M,EAAiB9zM,EAAQ,CAAC,EAAE,OAC5B+oK,EAAmB,CAAC,GAAG/oK,CAAO,EACpC+oK,EAAiB,OAAO,EAAG,CAAC,EAE5B,MAAMv+G,EAAaz1C,EAAO,QACrB,IAAI2F,EAAkB,mBAAmB,iBAAkB1a,EAAQ,CAAC,EAAE,QAAQ,EAC9E,IAAI0a,EAAkB,mBAAmB,mBAAoBquJ,EAAiB,IAAItrK,GAASA,EAAM,QAAQ,CAAC,EAU/G,MAAO,CACH,OAAQ,CACJ,KAAM,WACN,eAZe61M,GAAsB,iBAAiB,KAAK,UAAWQ,EAAe,eAAgB/qC,EAAiB,IAAItrK,GAASA,EAAM,SAAS,EAAG,MAAOg2B,EAAYsgL,IAAsB,CAElM,MAAMvoL,EAAYiI,EAAW,SAAW,EACpCA,EAAW,CAAC,EAEZuiC,EAAe,WAAWviC,EAAYA,EAAW,MAAM2I,GAAM,CAACA,EAAG,QAAQ,CAAC,EAE9E,SADmBsgC,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAAlxC,EAAW,QAASg/B,GAAY,IAAI9vC,EAAkB,mBAAmB,aAAcq5L,CAAiB,CAAC,CAAE,CAAC,EACtM,cAC1B,EAAW,GAAO/9I,EAAgBgG,CAAe,EAKjC,SAAU,IAAM,KAAK,wBAAwBh8D,EAASA,EAAQ,IAAIvC,GAASA,EAAM,QAAQ,EAAGsX,EAAO,OAAO,CAC7G,EACD,qBAAsB,CAClB,UAAW8B,EAAS,gBAAgB,QAAQ7W,EAAQ,CAAC,CAAC,EACtD,cAAeA,EAAQ,CAAC,EAAE,UAC1B,yBAA0BA,EAAQ,CAAC,EAAE,SAAS,YAC9C,UAAW,KAAK,SACnB,CACJ,CACT,CACI,qBAAqBwrB,EAAW,CAC5B,IAAI8jC,EAAQ,GACZ,OAAAhQ,EAAkB,KAAK,iBAAiB9zB,EAAW,CAC/C,CAAC8zB,EAAkB,QAAQ,MAAM,MAAM,GAAI,CACvC,OAAAgQ,EAAQ,GACD,EACV,EACD,CAAChQ,EAAkB,QAAQ,MAAM,KAAK,GAAI,CACtC,OAAAgQ,EAAQ,GACD,EACV,CACb,CAAS,EACMA,CACf,CACI,MAAM,oBAAoBv6C,EAAQ8B,EAAU,CACxC,GAAI,CAAE,UAAA8zJ,CAAS,EAAK9zJ,EAEpB,MAAMm9L,EAAkBj/L,EAAO,QAC1B,IAAI,CAACtX,EAAO7vB,KAAO,CAAE,GAAG6vB,EAAO,SAAUktK,EAAU/8L,CAAC,CAAC,EAAG,EACvDqmO,EAAc,MAAMroC,EAAe,aACpC,gBAAgB,KAAK,wBAAyBooC,EAAiBj/L,EAAO,OAAO,EAClF,GAAIk/L,EAAY,WACZ,OAAOA,EAEX,MAAM3lC,EAAgB2lC,EAAY,IAAK,EACvCtpC,EAAY2D,EAAc,IAAI7wK,GAASA,EAAM,QAAQ,EACrD,MAAM8wK,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAE5E5B,EAAmB,CAAC,GAAGuF,CAAa,EACpC4lC,EAA+B,CAAC,GAAG3lC,CAAmB,EACtD4lC,EAA4B,CAAC,GAAG3lC,CAAgB,EAKtD,GAJAzF,EAAiB,OAAO,EAAG,CAAC,EAC5BmrC,EAA6B,OAAO,EAAG,CAAC,EACxCC,EAA0B,OAAO,EAAG,CAAC,EAEjCprC,EACC,KAAKtrK,GAAS,CAAC,KAAK,qBAAqBA,EAAM,SAAS,CAAC,EAC1D,SAAWmb,EAAO,UAAU,SAAS,KAAK,IAAI,8CAA8C,EAGhG,GAAImwJ,EAAiB,KAAKtrK,GAASA,EAAM,iBAAiB,EACtD,SAAWmb,EAAO,UAAU,SAAS,KAAK,IAAI,kEAAkE,EAKpH,MAAMw7L,EAAiB5lC,EAAiB,KAAK77H,GAAQA,EAAO,CAAC,EAC7D,GAAIg4H,EAAU,CAAC,EAAE,YAAY,MAAQ,KAAK,wBAA0BypC,EAAiB,EAAI,GACrF,KAAK,IAAI,GAAGzpC,EAAU,IAAI/gH,GAAYA,EAAS,YAAY,KAAK,CAAC,EACjE,SAAWhxC,EAAO,UAAU,SAAS,KAAK,IAAI,0EAA0E,EAG5H,MAAMy7L,EAAgB,MAAM,QAAQ,IAAItrC,EACnC,IAAI,MAAOtrK,IAAW,MAAM,KAAK,wBAAwB,QAAQ,CAClE,QAAS,CAAC6wK,EAAc,CAAC,EAAG7wK,CAAK,EACjC,QAASsX,EAAO,OACnB,CAAA,GAAG,YAAc,KAAK,mBAAmB,CAAC,EAErCu/L,EAAuBvrC,EACxB,IAAI,CAACtrK,EAAO7vB,IAAM6vB,EAAM,SAAS,YAAY,MAAQ42M,EAAczmO,CAAC,CAAC,EACrE,OAAO,CAACg0B,EAAK5K,IAAY4K,EAAM5K,EAAS,CAAC,EACxCu9M,EAA8BL,EAC/B,OAAO,CAACtyM,EAAK5K,IAAY4K,EAAM5K,EAAS,CAAC,EACxCw9M,EAA2BL,EAC5B,OAAO,CAACvyM,EAAK5K,IAAY4K,EAAM5K,EAAS,CAAC,EAC9C,SAAW4hB,EAAO,sBAAsB,CACpC,WAAY+xJ,EAAU,CAAC,EAAE,YAAY,MAAQ2pC,EAC7C,eAAgB,EAChB,cAAe,EACf,YAAa/lC,EAAoB,CAAC,EAC9B5D,EAAU,CAAC,EAAE,YAAY,OAAS6D,EAAiB,CAAC,EAChD+lC,EACAD,EAAuBE,EAClC,EAAE,CAAE,GAAG39L,EAAU,gBAAAm9L,EAAiB,cAAA1lC,CAAa,CAAE,CAC1D,CACA,EACA8kC,6BAAA,sBAAgCE,8HCvLhC,IAAIx7L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,6BAAkC,EAAE+D,CAAO,iNCfxD,OAAO,eAAes8L,yBAAS,aAAc,CAAE,MAAO,GAAM,EAC5BA,yBAAA,yBAAG,OACnC,MAAMC,EAAwFtgM,aAAA,EACxFw3J,EAAkDxzJ,cAAA,EAClDsC,EAAwDrC,cAAA,EACxDO,EAAkCN,cAAA,EAClC63J,EAAsE53J,cAAA,EACtEmkD,EAAoElkD,cAAA,EACpE8mC,EAAoB7mC,uBAA0B,EAIpD,IAAAk8L,EAAA,cAAuC/oC,EAAe,YAAa,CAC/D,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,WACb,aAAc,OACd,aAAc,EACd,gBAAiB,GACjB,OAAQ,GACR,wBAAyB,EACrC,CAAS,CACT,CACI,MAAM,UAAUmqB,EAAQ,CACpB,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1D48C,EAAkB,MAAMm0G,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bp7J,EAAO,QAASqK,CAAW,EAE5IrK,EAAO,QAAQ,CAAC,EAAE,OAAO,eAAe,MAAO,EAE/C,MAAMy1C,EAAaz1C,EAAO,QACrB,IAAI2F,EAAkB,mBAAmB,iBAAkB,MAAM3F,EAAO,QAAQ,CAAC,EAAE,OAAO,SAAU,CAAA,EACpG,IAAI2F,EAAkB,mBAAmB,mBAAoB,CAAC,MAAM3F,EAAO,QAAQ,CAAC,EAAE,OAAO,SAAU,CAAA,CAAC,EAQ7G,MAAO,CACH,OAAQ,CACJ,KAAM,WACN,eAVe2/L,EAAkC,sBAAsB,iBAAiB,KAAK,UAAW3/L,EAAO,QAAQ,CAAC,EAAE,OAAO,eAAgB,CAACA,EAAO,QAAQ,CAAC,EAAE,SAAS,EAAG,MAAO0e,EAAYsgL,IAAsB,CAG7N,MAAMvoL,EAAYiI,EAAW,CAAC,EAE9B,SADmBipC,EAAwB,iBAAiB,MAAM,KAAK,uBAAuB,QAAQ,CAAE,UAAAlxC,EAAW,QAASg/B,GAAY,IAAI9vC,EAAkB,mBAAmB,aAAcq5L,CAAiB,CAAC,CAAE,CAAC,EACtM,cAC1B,EAAW,GAAM/9I,EAAgBgG,CAAe,EAKhC,SAAU,SAAY,MAAM,KAAK,wBAAwBjnD,EAAO,QAAS,MAAM62J,EAAe,aAAa,aAAa72J,EAAO,OAAO,EAAGA,EAAO,QAAS,CAAE,EAAE,EAAI,CACpK,CACJ,CACT,CACI,MAAM,oBAAoBA,EAAQ8B,EAAU,CACxC,KAAM,CAAE,UAAA8zJ,CAAS,EAAK9zJ,EAChB03J,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAElF,GAAI51J,EAAO,QAAQ,CAAC,EAAE,UAAU,OAASuqC,EAAkB,QAAQ,MAAM,QACrEvqC,EAAO,QAAQ,CAAC,EAAE,UAAU,OAASuqC,EAAkB,QAAQ,MAAM,MACrE,SAAW1mC,EAAO,UAAU,SAAS,KAAK,IAAI,8CAA8C,EAGhG,MAAMywJ,GAAe,MAAM,KAAK,wBAAwB,QAAQ,CAC5D,QAASt0J,EAAO,QAChB,QAASA,EAAO,OAC5B,CAAS,GAAG,YAAc,KAAK,oBACvB,SAAW6D,EAAO,sBAAsB,CACpC,WAAY+xJ,EAAU,CAAC,EAAE,YAAY,MAAQA,EAAU,CAAC,EAAE,YAAY,MAAQtB,EAC9E,eAAgB,EAChB,cAAe,EACf,YAAakF,EAAoB,CAAC,EAC9B5D,EAAU,CAAC,EAAE,YAAY,OAAS6D,EAAiB,CAAC,EAChDD,EAAoB,CAAC,EACrBlF,EAAcsB,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EAC5E,EAAE33J,CAAQ,CACnB,CACA,EACA49L,gCAAA,yBAAmCG,iICzEnC,IAAI98L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gCAAqC,EAAE+D,CAAO,4TCf3D,OAAO,eAAe08L,2BAAS,aAAc,CAAE,MAAO,GAAM,EAC1BA,2BAAA,2BAAG,OACrC,MAAMj8L,EAAkCxE,cAAA,EAYxC,IAAA0gM,EAAA,cAAyCl8L,EAAO,KAAM,CAMlD,YAAYhuB,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,uBAAyBA,EAAK,uBACnC,KAAK,wBAA0BA,EAAK,wBACpC,KAAK,6BAA+BA,EAAK,4BACjD,CACA,EACAiqN,kCAAA,2BAAqCE,mIC3BrC,IAAIj9L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,kCAAuC,EAAE+D,CAAO,mSCf7D,OAAO,eAAe68L,kCAAS,aAAc,CAAE,MAAO,GAAM,EACnBA,kCAAA,kCAAG,OAC5C,IAAAC,EAAA,KAAwC,CACpC,YAAYC,EAAmBp/B,EAAkBwB,EAAkB,CAC/D,KAAK,kBAAoB49B,EACzB,KAAK,iBAAmBp/B,EACxB,KAAK,iBAAmBwB,EAExB,KAAK,wBAA0B,CAC3B,SAAU,EACV,UAAW,EACX,UAAW,EACX,QAAS,EACT,KAAM,EACN,aAAc,CACjB,CACT,CAGI,WAAW98I,EAAOC,EAAO,CAErB,GAAID,IAAUC,EACV,MAAO,GAGX,GAAID,IAAU,OACV,MAAO,GAEX,GAAIC,IAAU,OACV,MAAO,GAGX,GAAID,EAAM,WAAaC,EAAM,SACzB,OAAO,KAAK,wBAAwBD,EAAM,QAAQ,EAAI,KAAK,wBAAwBC,EAAM,QAAQ,EAAI,GAAK,EAG9G,GAAID,EAAM,OAAOC,CAAK,EAClB,MAAO,GAGX,GAAID,EAAM,WAAa,QAAUC,EAAM,WAAa,OAAQ,CACxD,MAAM06K,EAAe,KAAK,WAAW36K,EAAM,QAASC,EAAM,OAAO,EACjE,GAAI06K,IAAiB,EACjB,OAAOA,EAEX,MAAMC,EAAiB,KAAK,WAAW56K,EAAM,UAAWC,EAAM,SAAS,EACvE,GAAI26K,IAAmB,EACnB,OAAOA,EAEX,MAAMC,EAAc,KAAK,WAAW76K,EAAM,OAAQC,EAAM,MAAM,EAC9D,OAAI46K,IAAgB,EACTA,EAEJ,KAAK,WAAW76K,EAAM,MAAOC,EAAM,KAAK,CAC3D,CAEQ,OAAID,EAAM,WAAa,UACZ,KAAK,kBAAkBA,EAAOC,CAAK,EAEvC,KAAK,kBAAkBD,EAAM,MAAOC,EAAM,KAAK,CAC9D,CACI,kBAAkB66K,EAAMC,EAAM,CAC1B,MAAMC,EAAS,KAAK,kBAAkB,YAAY,iBAAiBF,CAAI,EACjEG,EAAS,KAAK,kBAAkB,YAAY,iBAAiBF,CAAI,EACvE,GAAI,CACA,OAAI,KAAK,iBAAiB,aAAa,CAACC,EAAQC,CAAM,EAAG,KAAK,iBAAiB,EAC1E,WACM,EAEP,KAAK,iBAAiB,aAAa,CAACD,EAAQC,CAAM,EAAG,KAAK,iBAAiB,EAC1E,WACM,GAEJ,CACnB,MACc,CAEF,MAAMC,EAAc,KAAK,kBAAkBF,EAAO,SAAUC,EAAO,QAAQ,EAC3E,OAAIC,IAAgB,EACTA,EAEJ,KAAK,kBAAkBF,EAAO,IAAG,EAAIC,EAAO,KAAK,CACpE,CACA,CACI,kBAAkB72M,EAAQC,EAAQ,CAC9B,OAAOD,IAAWC,EAAS,EAAKD,EAASC,EAAS,GAAK,CAC/D,CACA,EACAm2M,yCAAA,kCAA4CW,6UCxF5C,OAAO,eAAeC,8CAAS,aAAc,CAAE,MAAO,GAAM,EACPA,8CAAA,8CAAG,OACxD,MAAMlM,EAA2Gt1L,yBAAA,EAC3GyhM,EAAgFz9L,aAAA,EAChFsC,EAAwDrC,cAAA,EACxDO,EAAkCN,cAAA,EAClC63J,EAAsE53J,cAAA,EACtEq6J,EAAsDp6J,cAAA,EACtDw8L,EAAoFv8L,yCAAA,EAI1F,IAAAq9L,EAAA,cAA4DD,EAA8B,0BAA2B,CACjH,MAAM,KAAK38L,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CAMI,MAAM,IAAI,CAAE,QAAA1lB,GAAW,CACnB,OAAAA,EAAU0/K,EAAK,8BAA8B1/K,CAAO,EAC7C,IAAI8hN,EAAoC,kCAAkC,IAAItL,EAAoB,kBAAkBx2M,EAAS,KAAK,wBAAyB,KAAK,uBAAwB,MAAMi9K,EAAyB,gBAAgB,OAAO,KAAK,6BAA8Bj9K,EAASA,EAAQ,QAAQwnB,EAAkB,cAAc,WAAW,CAAC,CAAC,EAAG,MAAM,KAAK,wBACvW,QAAQ,CAAE,aAAck4J,EAAK,eAAe,MAAO,QAAA1/K,EAAS,sBAAuB,GAAM,EAAG,MAAM,KAAK,wBACvG,QAAQ,CAAE,aAAc0/K,EAAK,eAAe,GAAI,QAAA1/K,EAAS,sBAAuB,EAAI,CAAE,CAAC,CACpG,CACA,EACA0iN,qDAAA,8CAAwDG,sJC5BxD,IAAIj+L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,qDAA0D,EAAE+D,CAAO,gVCfhF,OAAO,eAAe69L,wCAAS,aAAc,CAAE,MAAO,GAAM,EACbA,wCAAA,wCAAG,OAClD,MAAMpqC,EAAkDx3J,cAAA,EAClDsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClC83J,EAAsE73J,cAAA,EACtEkyJ,EAAsDjyJ,cAAA,EACtDmkD,EAAoElkD,cAAA,EACpE09C,EAA0Cz9C,qBAAA,EAC1C6mC,EAAoB5mC,uBAA0B,EAIpD,IAAAu9L,EAAA,cAAsDrqC,EAAe,YAAa,CAC9E,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,iCACd,aAAc,EACd,gBAAiB,GACjB,OAAQ,EACpB,CAAS,CACT,CAOI,MAAM,gBAAgBoV,EAAS9M,EAAS,CACpC,GAAI,CAAE,QAASo7K,CAAa,EAAK,MAAM,KAAK,wBAAwB,QAAQ,CAAE,QAAAtuK,EAAS,QAAA9M,EAAS,EAEhGo7K,EAAgBA,EAAc,KAAK,CAACv9D,EAAWC,IACvCD,EAAU,mBAAqB,CAACC,EAAW,kBACpC,GAEJ,CACV,EACD,MAAMvhG,EAAQ6+J,EAAc,OAAO,EAAG,CAAC,EAAE,CAAC,EAI1C,IAAIh7H,EACA4iK,EAAc,GACdC,EAAwB,EAC5B,SAAW,CAACvoO,EAAG6vB,CAAK,IAAK6wK,EAAc,QAAO,EAAI,CAC9C,MAAM8nC,EAAkB3mM,EAAM,SAAS,UAClC,OAAO4mM,GAAiB54M,EAAM,SAAS,UACvC,KAAK64M,GAAkBD,EAAc,SAAS,OAAOC,EAAe,QAAQ,CAAC,CAAC,EAAE,QACjF,CAAChjK,GAAW8iK,EAAkBD,GAC7BC,IAAoBD,IAChB14M,EAAM,SAAS,UAAU,OAAS61C,EAAO,SAAS,UAAU,QACxD71C,EAAM,SAAS,UAAU,SAAW61C,EAAO,SAAS,UAAU,QAC3D71C,EAAM,SAAS,YAAY,MAAQ61C,EAAO,SAAS,YAAY,UAC3EA,EAAS71C,EACTy4M,EAActoO,EACduoO,EAAwBC,EAExC,CACQ,GAAID,IAA0B,EAC1B,SAAWv9L,EAAO,UAAU,SAAS,KAAK,IAAI,sCAAsC,EAExF,MAAM2oD,EAAY+sG,EAClB,OAAA/sG,EAAU,OAAO20I,EAAa,CAAC,KACpBt9L,EAAO,UAAU,CAAE,MAAAnJ,EAAO,OAAQ6jC,EAAQ,UAAAiuB,EAAW,CACxE,CACI,MAAM,UAAUxsD,EAAQ,CACpB,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAE1D40L,EAAkB,MAAMpoC,EAAe,aAAa,wBAAwB,CAAC,GAAG72J,EAAO,OAAO,CAAC,EAC/F,CAAE,MAAAtF,EAAO,OAAQ8mM,EAAU,UAAWC,CAAa,GAAI,MAAM,KAAK,gBAAgBxC,EAAiBj/L,EAAO,OAAO,GAAG,WAAY,EAEhI0hM,EAAkBhnM,EAAM,OAAO,eACrCA,EAAM,OAAO,eAAiBgnM,EAAgB,MAAO,EAGrD,MAAMlmC,EAAkB9gK,EAAM,SAAS,UAClC,OAAO4mM,GAAiBE,EAAS,SAAS,UAC1C,KAAKD,GAAkBD,EAAc,SAAS,OAAOC,EAAe,QAAQ,CAAC,CAAC,EAC7EzrK,EAAS,CAAE,EACX6rK,EAA2BD,EAAgB,MAAK,EACjD,IAAIjpL,GAAWA,EAAQ,OAAO,CAAC3kC,EAAOK,IAAQqnL,EAAgB,KAAKomC,GAAkBA,EAAe,SAAS,OAAOztN,CAAG,CAAC,CAAC,CAAC,EAC1H,OAAQskC,GAAY,CACrB,MAAMxuB,KAAWmxK,EAAyB,kBAAkB3iJ,CAAO,EACnE,MAAO,EAAExuB,KAAQ6rC,KAAYA,EAAO7rC,CAAI,EAAI,GACxD,CAAS,EAEK43M,EAAiB,IAAIpsC,EAAiB,gBAAgBksC,EAA0B,KAAK,UAAW,CAAE,UAAW,GAAO,EAEpHhgJ,KAAoBgG,EAAwB,oBAAoB65I,EAAS,SAAS,EAElFjjK,EAAS,CACX,OAAQ,CACJ,KAAM,WACN,eAJa,IAAI4iB,EAAgB,cAAc0gJ,EAAe,IAAIziH,GAASz9B,EAAc,OAAO,cAAc6/I,EAAS,UAAW7/I,EAAc,QAAU3hD,EAAO,QAAQ,MAAM2hD,EAAc,OAAO,EAAI3hD,EAAO,QAAS,CAAE,eAAgB,CAAE,SAAUo/E,EAAO,SAAU1kF,EAAM,QAAU,CAAA,CAAE,CAAC,CAAC,EAK3R,SAAU8mM,EAAS,OAAO,QAC7B,EACD,UAAWA,EAAS,UACpB,kBAAmB,EACtB,EAEDA,EAAS,OAAO,eAAe,QAAS,EAExC,MAAMM,EAAc,CAChB,UAAYn6I,EAAwB,iBAAiB,MAAM,KAAK,aAC3D,QAAQ,CACT,KAAM3nD,EAAO,KACb,QAAS,CAACtF,EAAO6jC,CAAM,EACvB,QAASv+B,EAAO,QAAQ,IAAI2F,EAAkB,YAAY,iBAAkB,KAAK,YAAY,CAC7G,CAAa,CAAC,EACF,UAAWs7C,EAAe,WAAW,CAACvmD,EAAM,UAAW6jC,EAAO,SAAS,EAAG,EAAK,EAC/E,kBAAmB,EACtB,EAEKiuB,EAAYi1I,EAClB,OAAAj1I,EAAU,QAAQs1I,CAAW,EACtB,CACH,OAAQ,MAAM,KAAK,aAAa,QAAQ,CACpC,KAAM9hM,EAAO,KACb,QAASwsD,EACT,QAASxsD,EAAO,OAChC,CAAa,EACD,qBAAsB,CAClB,WAAYi/L,EAAgB,QAAQvkM,CAAK,EACzC,YAAaukM,EAAgB,QAAQuC,CAAQ,CAChD,CACJ,CACT,CACI,MAAM,oBAAoBxhM,EAAQ8B,EAAU,CACxC,GAAI,CAAE,UAAA8zJ,CAAS,EAAK9zJ,EAEpB,GAAI9B,EAAO,QAAQ,IAAI2F,EAAkB,YAAY,gBAAgB,IAAM,KAAK,aAC5E,SAAW9B,EAAO,UAAU,SAAS,KAAK,IAAI,gCAAgC,EAElF+xJ,EAAY,CAAC,GAAGA,CAAS,EAEzB,MAAMmsC,EAAe,MAAM,KAAK,gBAAgB/hM,EAAO,QAClD,IAAI,CAACtX,EAAO7vB,KAAO,CAAE,GAAG6vB,EAAO,SAAUktK,EAAU/8L,CAAC,CAAG,EAAC,EAAGmnC,EAAO,OAAO,EAC9E,GAAI+hM,EAAa,WACb,OAAOA,EAEX,KAAM,CAAE,MAAArnM,EAAO,OAAA6jC,EAAQ,UAAAiuB,CAAS,EAAKu1I,EAAa,IAAK,EAEjDpgJ,KAAoBgG,EAAwB,oBAAoBppB,EAAO,SAAS,EACtF,GAAI,CAACojB,EACD,SAAW99C,EAAO,UAAU,SAAS,KAAK,IAAI,8CAA8C,EAEhG,MAAMm+L,EAAmBzjK,EAAO,UAC1B0jK,EAAgB,MAAMtgJ,EAAc,OAAO,iBAAiB3hD,EAAO,OAAO,EAChF,GAAI,IAAK2nD,EAAwB,0BAA0Bs6I,EAAeD,EAAkB,CAAE,eAAgB,EAAI,CAAE,EAChH,SAAWn+L,EAAO,UAAU,SAAS,KAAK,IAAI,uDAAuD,EAGzG+xJ,EAAY,CAACl7J,EAAM,SAAU6jC,EAAO,SAAU,GAAGiuB,EAAU,IAAI/b,GAAUA,EAAO,QAAQ,CAAC,EACzF,MAAM+oH,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAC5E,CAAE,YAAAtB,CAAa,EAAG,MAAM,KAAK,wBAAwB,QAAQ,CAC/D,QAAS,CAAC55J,EAAO6jC,CAAM,EACvB,QAASv+B,EAAO,OAC5B,CAAS,EACKu/L,EAAuB/yI,EACxB,OAAO,CAAC4jB,EAAK3/B,IAAW2/B,EAAM3/B,EAAO,SAAS,YAAY,MAAQ,KAAK,oBAAqB,CAAC,EAClG,SAAW5sC,EAAO,sBAAsB,CACpC,WAAYywJ,EAAc,KAAK,oBAC3B/1H,EAAO,SAAS,YAAY,MAAQghK,EACxC,eAAgB7kM,EAAM,SAAS,YAAY,MAC3C,cAAeA,EAAM,SAAS,YAAY,MAC1C,YAAa8+J,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EACrFD,EAAoB,CAAC,EAAI+lC,EAAuB9lC,EAAiB,CAAC,CACzE,EAAE33J,CAAQ,CACnB,CACA,EACAm/L,+CAAA,wCAAkDiB,gJC7KlD,IAAIn/L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,+CAAoD,EAAE+D,CAAO,gSCf1E,OAAO,eAAe++L,gCAAS,aAAc,CAAE,MAAO,GAAM,EACrBA,gCAAA,gCAAG,OAC1C,MAAMrJ,EAA4Dz5L,aAAA,EAC5DsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAIxC,IAAA8+L,EAAA,cAA8CtJ,EAAoB,iBAAkB,CAChF,YAAYjjN,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAKA,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,OAAO,GAC3D3F,EAAO,QAAQ,IAAI,IAAI6D,EAAO,iBAAiB,SAAS,CAAC,KAAO,aACrDA,EAAO,UAAU,GAAG,KAAK,IAAI,sCAAsC,KAEvEA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CAEd,GAAI,CAAE,UAAAyW,EAAW,QAAAt4B,CAAS,EAAG,MAAM,KAAK,eAAe,MAAM6hB,EAAO,MAAOA,EAAO,OAAO,EACzF,MAAC,CAAE,UAAAyW,EAAW,QAAAt4B,GAAY,MAAM,KAAK,eAAe,SAASs4B,EAAWt4B,CAAO,EACxE,CACH,OAAQ,CACJ,QAAS,GACT,KAAM,UACN,KAAMs4B,CACT,CACJ,CACT,CACA,EACA0rL,uCAAA,gCAA0CE,wIChC1C,IAAIt/L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,uCAA4C,EAAE+D,CAAO,0RCflE,OAAO,eAAek/L,+BAAS,aAAc,CAAE,MAAO,GAAM,EACtBA,+BAAA,+BAAG,OACzC,MAAMxJ,EAA4Dz5L,aAAA,EAC5DsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAIxC,IAAAi/L,EAAA,cAA6CzJ,EAAoB,iBAAkB,CAC/E,YAAYjjN,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAKA,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,OAAO,GAC3D3F,EAAO,QAAQ,IAAI,IAAI6D,EAAO,iBAAiB,SAAS,CAAC,KAAO,YACrDA,EAAO,UAAU,GAAG,KAAK,IAAI,qCAAqC,KAEtEA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CAEd,KAAM,CAAE,UAAAyW,GAAc,MAAM,KAAK,eAAe,MAAMzW,EAAO,MAAOA,EAAO,OAAO,EAClF,MAAO,CACH,OAAQ,CACJ,QAAS,GACT,KAAM,SACN,KAAMyW,CACT,CACJ,CACT,CACA,EACA6rL,sCAAA,+BAAyCE,uIC/BzC,IAAIz/L,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sCAA2C,EAAE+D,CAAO,wTCfjE,OAAO,eAAeq/L,8BAAS,aAAc,CAAE,MAAO,GAAM,EAC5DA,8BAAA,eAAyBA,8BAAA,8BAAwC,OACjE,MAAMzgL,EAAe3iB,mBAAqB,EAI1C,IAAAqjM,EAAA,KAAoC,CAChC,aAAc,CACV,KAAK,UAAY,IAAI,GAC7B,CACI,aAAaC,EAAiBC,EAAkBtuN,EAAMuuN,EAAY/iM,EAAO+0C,EAAU,CAC/E,MAAMiuJ,EAAW,CACb,MAAAhjM,EACA,gBAAA6iM,EACA,iBAAAC,EACA,QAAStuN,EACT,SAAU,CAAE,EACZ,SAAAugE,CACH,EAED,GADA,KAAK,UAAU,IAAIvgE,EAAMwuN,CAAQ,EAC7B,KAAK,SAAU,CACf,GAAI,CAACD,EACD,MAAM,IAAI,MAAM,yCAAyC,EAE7D,MAAME,EAAiB,KAAK,UAAU,IAAIF,CAAU,EACpD,GAAI,CAACE,EACD,MAAM,IAAI,MAAM,4BAA4B,EAEhDA,EAAe,SAAS,KAAKD,CAAQ,CACjD,KACa,CACD,GAAID,EACA,MAAM,IAAI,MAAM,mEAAmE,EAEvF,KAAK,SAAWC,CAC5B,CACA,CACI,cAAcxuN,EAAMwkB,EAAQ,CACxB,MAAMgqM,EAAW,KAAK,UAAU,IAAIxuN,CAAI,EACxC,GAAI,CAACwuN,EACD,MAAM,IAAI,MAAM,0BAA0B,EAE9CA,EAAS,SAAWhqM,EAASgqM,EAAS,SAAS,OAAOhqM,CAAM,EAAI,CAAE,CAC1E,CACI,aAAaxkB,EAAMuuN,EAAY,CAC3B,MAAMC,EAAW,KAAK,UAAU,IAAIxuN,CAAI,EACxC,GAAIwuN,EAAU,CACV,MAAMC,EAAiB,KAAK,UAAU,IAAIF,CAAU,EACpD,GAAI,CAACE,EACD,MAAM,IAAI,MAAM,iCAAiC,EAErDA,EAAe,SAAS,KAAKD,CAAQ,CACjD,CACA,CACI,eAAexuN,EAAMugE,EAAU,CAC3B,MAAMiuJ,EAAW,KAAK,UAAU,IAAIxuN,CAAI,EACpCwuN,IACAA,EAAS,SAAW,CAChB,GAAGA,EAAS,SACZ,GAAGjuJ,CACN,EAEb,CACI,QAAS,CACL,OAAO,KAAK,SAAW,KAAK,eAAe,KAAK,QAAQ,EAAI,CAAE,CACtE,CACI,eAAevgE,EAAM,CACjB,MAAM2K,EAAO,CACT,QAAS3K,EAAK,gBACd,SAAUA,EAAK,iBACf,GAAG,KAAK,mBAAmBA,EAAK,OAAO,EACvC,GAAG,KAAK,gBAAgBA,EAAK,QAAQ,CACxC,EAKD,GAJIA,EAAK,SAAS,OAAS,IACvB2K,EAAK,SAAW3K,EAAK,SAAS,IAAIc,GAAS,KAAK,eAAeA,CAAK,CAAC,GAGrE6J,EAAK,WAAa,QAAUA,EAAK,SAAU,CAE3C,MAAM+jN,EAAkB,CAAE,EAC1B,UAAW5tN,KAAS6J,EAAK,SAAU,CAC/B,MAAMgkN,EAAe7tN,EAAM,UAAU,GAAG,EAAE,GAAKA,EACzCjB,EAAM,KAAK,YAAY8uN,CAAY,EAAE,KAAK,GAAG,EAC9CD,EAAgB7uN,CAAG,IACpB6uN,EAAgB7uN,CAAG,EAAI,CAAE,GAE7B6uN,EAAgB7uN,CAAG,EAAE,KAAKiB,CAAK,CAC/C,CAEY,MAAM8tN,EAAkB,CAAE,EAC1B,UAAW//K,KAAY,OAAO,OAAO6/K,CAAe,EAChDE,EAAgB,KAAK,CACjB,YAAa//K,EAAS,OACtB,gBAAiBA,EAAS,CAAC,CAC/C,CAAiB,EAGLlkC,EAAK,gBAAkBikN,EACvB,OAAOjkN,EAAK,QACxB,CACQ,OAAOA,CACf,CACI,YAAY3K,EAAM,CACd,IAAI2W,EAAU,CAAC,GAAG3W,EAAK,OAAO,IAAIA,EAAK,QAAQ,EAAE,EACjD,OAAIA,EAAK,SACL2W,EAAU,CACN,GAAGA,EACH,GAAG3W,EAAK,SAAS,QAAQc,GAAS,KAAK,YAAYA,CAAK,CAAC,CAC5D,EAEId,EAAK,kBACV2W,EAAU,CACN,GAAGA,EACH,GAAG3W,EAAK,gBAAgB,QAAQc,GAAS,KAAK,YAAYA,EAAM,eAAe,CAAC,CACnF,GAEE6V,CACf,CACI,gBAAgB4pD,EAAU,CACtB,OAAO,OAAO,YAAY,OAAO,QAAQA,CAAQ,EAC5C,IAAI,CAAC,CAAC1gE,EAAKL,CAAK,IAAM,CAACK,EAAK,KAAK,qBAAqBL,CAAK,CAAC,CAAC,CAAC,CAC3E,CACI,qBAAqBA,EAAO,CACxB,OAAOA,GAAS,OAAOA,GAAU,UAAY,aAAcA,EAAQ,KAAK,mBAAmBA,CAAK,EAAIA,CAC5G,CACI,mBAAmBqvN,EAAS,CACxB,MAAMlkN,EAAO,CAAE,EACf,GAAI,SAAUkkN,EAAS,CACnB,MAAM1sL,EAAY0sL,EAKlB,OAJI1sL,EAAU,UAAU,eACpBx3B,EAAK,OAASw3B,EAAU,SAAS,aAAa,OAAO,SAAU,GAG3DA,EAAU,KAAI,CAClB,IAAK,UACDx3B,EAAK,QAAU,KAAK,aAAaw3B,CAAS,EAC1C,MACJ,IAAK,UACDx3B,EAAK,UAAYw3B,EAAU,UAAU,IAAIjQ,GAAYA,EAAS,KAAK,EACnE,KACpB,CACA,CACQ,OAAOvnB,CACf,CACI,aAAaukC,EAAM,CACf,MAAO,MAAOxB,EAAa,cAAcwB,EAAK,OAAO,CAAC,OAAQxB,EAAa,cAAcwB,EAAK,SAAS,CAAC,OAAQxB,EAAa,cAAcwB,EAAK,MAAM,CAAC,GAAGA,EAAK,MAAM,WAAa,eAAiB,GAAK,OAAQxB,EAAa,cAAcwB,EAAK,KAAK,CAAC,EAAE,EAChQ,CACI,iBAAkB,CACd,MAAMlvC,EAAO,KAAK,OAAQ,EACpB0R,EAAQ,CAAE,EACVyJ,EAAU,IAAI,IAOpB,GANI,YAAanb,EACb,KAAK,oBAAoB0R,EAAOyJ,EAAS,GAAInb,CAAI,EAGjD0R,EAAM,KAAK,OAAO,EAElByJ,EAAQ,KAAO,EAAG,CAClBzJ,EAAM,KAAK,EAAE,EACbA,EAAM,KAAK,UAAU,EACrB,SAAW,CAAC7R,EAAKq5E,CAAE,IAAK/9D,EAAQ,QAAO,EACnCzJ,EAAM,KAAK,KAAKwnE,CAAE,KAAKr5E,CAAG,EAAE,CAE5C,CACQ,OAAO6R,EAAM,KAAK;AAAA,CAAI,CAC9B,CACI,oBAAoBA,EAAOyJ,EAASgoE,EAAQnjF,EAAMugE,EAAU,CACxD,IAAIsL,EACA7rE,EAAK,SACL6rE,EAAW1wD,EAAQ,IAAInb,EAAK,MAAM,EAC9B6rE,IAAa,SACbA,EAAW1wD,EAAQ,KACnBA,EAAQ,IAAInb,EAAK,OAAQ6rE,CAAQ,IAGzCn6D,EAAM,KAAK,GAAGyxE,CAAM,GAAGnjF,EAAK,OAAO,GAAGA,EAAK,SAAW,IAAIA,EAAK,QAAQ,IAAM,EAAE,GAAGA,EAAK,QAAU,KAAKA,EAAK,OAAO,IAAM,EAAE,GAAGA,EAAK,UAAY,KAAKA,EAAK,UAAU,KAAK,GAAG,CAAC,IAAM,EAAE,GAAGA,EAAK,cAAgB,mBAAmBA,EAAK,cAAc,OAAO,iBAAiBA,EAAK,yBAAyB,OAAS,WAAa,IAAM,EAAE,GAAG8uN,EAAe9uN,EAAK,yBAAyB,KAAK,CAAC,GAAK,EAAE,GAAGA,EAAK,YAAc,YAAYA,EAAK,YAAY,OAAS,WAAa,IAAM,EAAE,GAAG8uN,EAAe9uN,EAAK,YAAY,KAAK,CAAC,GAAK,EAAE,GAAGA,EAAK,OAAS,QAAQ6rE,CAAQ,GAAK,EAAE,GAAG7rE,EAAK,gBAAkB,aAAaA,EAAK,eAAe,GAAK,EAAE,GAAGA,EAAK,SAAW,aAAa8uN,EAAe9uN,EAAK,QAAQ,CAAC,KAAO,EAAE,GAAGA,EAAK,SAAW,aAAa8uN,EAAe9uN,EAAK,QAAQ,CAAC,KAAO,EAAE,GAAGugE,EAAW,IAAIA,CAAQ,GAAK,EAAE,EAAE,EAC5xB,UAAWz/D,KAASd,EAAK,UAAY,CAAA,EACjC,KAAK,oBAAoB0R,EAAOyJ,EAAS,GAAGgoE,CAAM,KAAMriF,CAAK,EAEjE,UAAWA,KAASd,EAAK,iBAAmB,CAAA,EACxC,KAAK,oBAAoB0R,EAAOyJ,EAAS,GAAGgoE,CAAM,KAAMriF,EAAM,gBAAiB,yBAAyBA,EAAM,WAAW,EAAE,CAEvI,CACA,EACAqtN,8BAAA,8BAAwCY,EACxC,SAASD,EAAetvN,EAAO,CAC3B,OAAOA,EAAM,eAAe,QAAS,CAAE,sBAAuB,EAAG,sBAAuB,EAAG,CAC/F,CACA2uN,qCAAA,eAAyBW,wQC5LzB,OAAO,eAAeE,iCAAS,aAAc,CAAE,MAAO,GAAM,EACpBA,iCAAA,iCAAG,OAC3C,MAAMxK,EAA4Dz5L,aAAA,EAC5DsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCm/L,EAA4El/L,qCAAA,EAIlF,IAAAggM,EAAA,cAA+CzK,EAAoB,iBAAkB,CACjF,YAAYjjN,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,MAAMpsB,EAAQosB,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,OAAO,GAAK3F,EAAO,QAAQ,IAAI,IAAI6D,EAAO,iBAAiB,SAAS,CAAC,EACtI,OAAIjwB,IAAS,YAAcA,IAAS,mBACrBiwB,EAAO,UAAU,GAAG,KAAK,IAAI,0DAA0D,KAE3FA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CAEd,GAAI,CAAE,UAAAyW,EAAW,QAAAt4B,CAAS,EAAG,MAAM,KAAK,eAAe,MAAM6hB,EAAO,MAAOA,EAAO,OAAO,GACxF,CAAE,UAAAyW,EAAW,QAAAt4B,GAAY,MAAM,KAAK,eAAe,SAASs4B,EAAWt4B,CAAO,GAE/E,MAAMq3D,EAA0B,IAAIitJ,EAAgC,8BACpEtkN,EAAUA,EAAQ,IAAIwnB,EAAkB,cAAc,wBAAyB6vC,CAAuB,EACtG,MAAMv1C,EAAS,MAAM,KAAK,eAAe,SAASwW,EAAWt4B,CAAO,EAEpE,OAAQ8hB,EAAO,KAAI,CACf,IAAK,WACD,MAAMA,EAAO,eAAe,QAAS,EACrC,MACJ,IAAK,QACD,MAAMA,EAAO,WAAW,QAAS,EACjC,MACJ,IAAK,UACD,MAAMA,EAAO,QAAS,EACtB,MACJ,IAAK,OACD,MAAMA,EAAO,QAAS,EACtB,KAChB,CACQ,MAAMrsB,EAAQosB,EAAO,QAAQ,IAAI2F,EAAkB,cAAc,OAAO,GACpE3F,EAAO,QAAQ,QAAQ,IAAI6D,EAAO,iBAAiB,SAAS,CAAC,EACjE,MAAO,CACH,OAAQ,CACJ,QAAS,GACT,KAAMjwB,EACN,KAAMA,IAAS,WAAa4hE,EAAwB,gBAAiB,EAAGA,EAAwB,OAAQ,CAC3G,CACJ,CACT,CACA,EACA8tJ,wCAAA,iCAA2CE,yICtD3C,IAAIzgM,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,wCAA6C,EAAE+D,CAAO,EACnED,EAAaE,qCAA0C,EAAED,CAAO,oaChBhE,OAAO,eAAeqgM,sDAAS,aAAc,CAAE,MAAO,GAAM,EACCA,sDAAA,sDAAG,OAChE,MAAMr/I,EAAkF/kD,cAAA,EAClFsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCqkD,EAAoEpkD,cAAA,EACpEgnC,EAAoB/mC,uBAA0B,EAIpD,IAAAkgM,EAAA,MAAMC,WAA8Dv/I,EAA+B,2BAA4B,CAC3H,YAAYvuE,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,SAAQ2nD,EAAwB,oBAAoB3nD,EAAO,SAAS,KACrD6D,EAAO,UAAU,SAAS,KAAK,IAAI,kDAAkD,KAEzFA,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAChE,IAAIoM,EAAYzW,EAAO,UAGvB,MAAM4jM,EAAsB,CAAE,EAExBxpL,EAAO,KACbmwB,EAAkB,KAAK,iBAAiB9zB,EAAW,CAC/C,CAAC8zB,EAAkB,QAAQ,MAAM,KAAK,EAAEmsI,EAAc,CAClD,OAAAt8J,EAAK,4BAA4Bs8J,EAAa,MAAOktB,EAAqBr5J,EAAkB,QAAQ,MAAM,OAAO,EAC1G,EACV,EACD,CAACA,EAAkB,QAAQ,MAAM,GAAG,EAAEmsI,EAAc,CAChD,OAAAt8J,EAAK,4BAA4Bs8J,EAAa,MAAOktB,EAAqBr5J,EAAkB,QAAQ,MAAM,IAAI,EACvG,EACV,EACD,CAACA,EAAkB,QAAQ,MAAM,OAAO,GAAI,CACxC,MAAO,EACV,CACb,CAAS,EAED,MAAMs5J,EAAkB,IAAI,IAC5B,aAAM,QAAQ,IAAID,EAAoB,IAAI,MAAOE,GAAuB,CACpE,MAAMC,EAAiBD,EAAmB,OAAS,OAC/C7iJ,EAAe,cAAc52C,EAAY,SAAS,GAAG,EAAGy5L,EAAmB,IAAKz5L,EAAY,SAAS,GAAG,CAAC,EACzGy5L,EACC,MAAM,KAAK,iBAAiB7iJ,KAAoB0G,EAAwB,oBAAoBm8I,CAAkB,EAAGC,EAAgB/jM,EAAO,OAAO,GAChJ6jM,EAAgB,IAAIC,CAAkB,CAEtD,CAAS,CAAC,EAEED,EAAgB,KAAO,IACvB,KAAK,SAAS7jM,EAAO,QAAS,WAAW6jM,EAAgB,IAAI,6BAA6B,EAE1FptL,EAAY8zB,EAAkB,KAAK,aAAa9zB,EAAW,CACvD,CAAC8zB,EAAkB,QAAQ,MAAM,KAAK,EAAEmsI,EAAcp1J,EAAS,CAC3D,OAAOlH,EAAK,kBAAkBs8J,EAAcmtB,EAAiB1gL,GAAY7B,EAAQ,YAAY6B,CAAQ,CAAC,CACzG,EACD,CAAConB,EAAkB,QAAQ,MAAM,GAAG,EAAEmsI,EAAcp1J,EAAS,CACzD,OAAOlH,EAAK,kBAAkBs8J,EAAcmtB,EAAiB1gL,GAAY7B,EAAQ,UAAU6B,CAAQ,CAAC,CACvG,CACJ,EAAE89B,CAAc,EAEjBxqC,EAAY8zB,EAAkB,KAAK,aAAa9zB,EAAW,CACvD,CAAC8zB,EAAkB,QAAQ,MAAM,OAAO,EAAEmsI,EAAcp1J,EAAS,CAE7D,OAAIqiL,GAAsD,kBAAkBjtB,CAAY,EAC7E,CACH,QAAS,GACT,OAAQp1J,EAAQ,YAAY,EAAE,CACjC,EAEE,CACH,QAAS,GACT,OAAQo1J,CACX,CACJ,EACD,CAACnsI,EAAkB,QAAQ,MAAM,SAAS,EAAEmsI,EAAc,CAEtD,OAAIitB,GAAsD,kBAAkBjtB,EAAa,MAAM,CAAC,CAAC,EACtF,CACH,QAAS,GACT,OAAQA,EAAa,MAAM,CAAC,CAC/B,EAEE,CACH,QAAS,GACT,OAAQA,CACX,CACJ,CACJ,EAAEz1H,CAAc,GAEd,CAAE,UAAAxqC,EAAW,QAASzW,EAAO,OAAS,CACrD,CACI,OAAO,kBAAkByW,EAAW,CAIhC,IAAIutL,EAAiB,GACrB,OAAAz5J,EAAkB,KAAK,iBAAiB9zB,EAAW,CAC/C,CAAC8zB,EAAkB,QAAQ,MAAM,KAAK,EAAEmsI,EAAc,CAClD,OAAIA,EAAa,MAAM,MAAMutB,GAAmBN,GAC3C,kBAAkBM,CAAe,CAAC,IACnCD,EAAiB,IAEd,EACV,EACD,CAACz5J,EAAkB,QAAQ,MAAM,GAAG,EAAEmsI,EAAc,CAChD,OAAIA,EAAa,MAAM,SAAW,IAC9BstB,EAAiB,IAEd,EACV,EACD,CAACz5J,EAAkB,QAAQ,MAAM,SAAS,EAAEmsI,EAAc,CAEtD,OAAIitB,GAAsD,kBAAkBjtB,EAAa,MAAM,CAAC,CAAC,IAC7FstB,EAAiB,IAEd,EACV,CACb,CAAS,EACMA,CACf,CACI,4BAA4Bl8I,EAAQ87I,EAAqBM,EAAW,CAChE,UAAW/pL,KAAS2tC,KACRH,EAAwB,oBAAoBxtC,CAAK,GAAKA,EAAM,OAAS+pL,GACzEN,EAAoB,KAAKzpL,CAAK,CAG9C,CACI,kBAAkB1D,EAAWotL,EAAiBM,EAAuB,CAEjE,MAAMC,EAAiB3tL,EAAU,MAAM,OAAO0D,GAAS,CAAC0pL,EAAgB,IAAI1pL,CAAK,CAAC,EAElF,OAAIiqL,EAAe,SAAW3tL,EAAU,MAAM,OACnC,CAAE,OAAQA,EAAW,QAAS,EAAM,EAE3C2tL,EAAe,SAAW,EACnB,CAAE,OAAQD,EAAsB,CAAE,CAAA,EAAG,QAAS,EAAO,EAE5DC,EAAe,SAAW,EACnB,CAAE,OAAQA,EAAe,CAAC,EAAG,QAAS,EAAM,EAEhD,CAAE,OAAQD,EAAsBC,CAAc,EAAG,QAAS,EAAM,CAC/E,CAQI,MAAM,iBAAiBnjJ,EAAgBzrE,EAAQ2kC,EAAOh8B,EAAS,CAE3D,GAAI3I,EAAO,SAAS,IAAImwB,EAAkB,wBAAwB,QAAQ,GAAKxnB,EAAQ,IAAIwnB,EAAkB,wBAAwB,QAAQ,EACzI,MAAO,GAGX,GAAI,KAAK,kBAAmB,CACxB,MAAM0+L,EAAepjJ,EAAe,UAAU9mC,CAAK,EACnD,MAAQwtC,EAAwB,0BAA0B,MAAMnyE,EAAO,OAAO,iBAAiB2I,CAAO,EAAGkmN,CAAY,EACjH,OAAO7uN,EAAO,OAAO,aAAa6uN,EAAclmN,CAAO,CAEvE,CAEQ,MAAMm7G,EAAiB9jH,EAAO,OAAO,cAAc2kC,EAAOh8B,CAAO,EACjE,OAAO,IAAI,QAAQ,CAACw2D,EAASC,IAAW,CACpC0kD,EAAe,GAAG,QAAS1kD,CAAM,EACjC0kD,EAAe,YAAY,WAAazkD,GAAa,CACjDykD,EAAe,QAAS,EACxB3kD,EAAQE,EAAS,YAAY,MAAQ,CAAC,CACtD,CAAa,CACb,CAAS,CACT,CACA,EACA4uJ,6DAAA,sDAAgEE,8JCjLhE,IAAI5gM,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,6DAAkE,EAAE+D,CAAO,0LCfxF,OAAO,eAAekhM,eAAS,aAAc,CAAE,MAAO,GAAM,EACtCA,eAAA,eAAG,OACzB,MAAMhzC,EAA0CjyJ,cAAA,EAC1CsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EACxC,IAAAihM,EAAA,MAAMC,WAAuBlzC,EAAW,SAAU,CAC9C,YAAYz7K,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,aAAe,CAAE,EACtB,KAAK,gBAAkBA,EAAK,gBAC5B,KAAK,gBAAgB,sBAAsBmqB,GAAU,KAAK,0BAA0BA,CAAM,CAAC,EAC3F,KAAK,aAAenqB,EAAK,YACjC,CACI,MAAM,KAAKmqB,EAAQ,CACf,GAAIA,EAAO,QAAQ,IAAIwkM,GAAe,UAAU,EAC5C,SAAW3gM,EAAO,UAAU,GAAG,KAAK,IAAI,+BAA+B,EAE3E,MAAM4gM,EAAazkM,EAAO,QAAQ,IAAI2F,EAAkB,SAAS,cAAc,EAC/E,MAAI,CAAC8+L,GAAcA,EAAa,KACjB5gM,EAAO,UAAU,GAAG,KAAK,IAAI,uDAAuD,KAExFA,EAAO,UAAU,CAAE,KAAM,CAAC,CAAE,CAC/C,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqG,EAAMirJ,EAAW,UAAU,YAAYtxJ,EAAO,KAAK,EAEnD0kM,EAAe1kM,EAAO,QAAQ,QAAQ2F,EAAkB,SAAS,cAAc,EAAI,EACnFg/L,EAAqB3kM,EAAO,QAAQ,IAAI2F,EAAkB,SAAS,sBAAsB,GAAK,EAC9Fi/L,EAAkB5kM,EAAO,QAAQ,IAAI2F,EAAkB,SAAS,mBAAmB,EACnFk/L,EAAmB7kM,EAAO,QAAQ,IAAI2F,EAAkB,SAAS,oBAAoB,EAC3F,QAASm/L,EAAU,EAAGA,GAAWJ,EAAcI,IAAW,CACtD,MAAMC,EAAa1+L,EAAI,QAAQ,KAAK,aAChC,KAAK,aAAaA,EAAI,IAAI,EAAE,KAAK,QAAO,EAAK,KAAK,IAAK,EACvDs+L,EACJ,GAAIC,GAAmBG,EAAaH,EAAiB,CACjD,KAAK,QAAQ5kM,EAAO,QAAS,oCAAqC,KAAO,CACrE,IAAKqG,EAAI,KACT,MAAO0+L,EACP,UAAW,KAAK,aAAa1+L,EAAI,IAAI,EAAE,KAAK,YAAa,EACzD,WAAYu+L,EACZ,eAAgB,GAAGE,CAAO,MAAMJ,CAAY,EAChE,EAAkB,EACF,KAChB,MACqBK,EAAa,GAAKD,EAAU,IACjC,KAAK,SAAS9kM,EAAO,QAAS,mBAAoB,KAAO,CACrD,IAAKqG,EAAI,KACT,MAAO0+L,EACP,eAAgB,GAAGD,CAAO,MAAMJ,CAAY,EAChE,EAAkB,EACF,MAAMF,GAAe,MAAMO,CAAU,GAEzC,MAAMpsN,EAAW,MAAM,KAAK,aAAa,QAAQ,CAC7C,GAAGqnB,EACH,QAASA,EAAO,QAAQ,IAAIwkM,GAAe,WAAY,EAAI,CAC3E,CAAa,EACD,GAAI7rN,EAAS,GACT,OAAOA,EAEX,GAAIksN,GAAoBA,EAAiB,SAASlsN,EAAS,MAAM,EAAG,CAChE,KAAK,SAASqnB,EAAO,QAAS,iDAAkD,KAAO,CACnF,IAAKqG,EAAI,KACT,OAAQ1tB,EAAS,OACjB,WAAYA,EAAS,WACrB,eAAgB,GAAGmsN,CAAO,MAAMJ,CAAY,EAChE,EAAkB,EACF,QAChB,CACY,GAAI/rN,EAAS,SAAW,IAAK,CAGzB,KAAK,SAASqnB,EAAO,QAAS,yBAA0B,KAAO,CAC3D,IAAKqG,EAAI,KACT,OAAQ1tB,EAAS,OACjB,WAAYA,EAAS,WACrB,eAAgB,GAAGmsN,CAAO,MAAMJ,CAAY,EAChE,EAAkB,EACF,QAChB,CACY,GAEA/rN,EAAS,SAAW,KAAOA,EAAS,SAAW,KAE1CA,EAAS,SAAW,KAAOA,EAAS,QAAQ,IAAI,aAAa,EAAI,CAClE,MAAMqsN,EAAmBrsN,EAAS,QAAQ,IAAI,aAAa,EAC3D,GAAIqsN,EAAkB,CAClB,MAAMC,EAAaT,GAAe,sBAAsBQ,CAAgB,EACpEC,GAEI5+L,EAAI,QAAQ,KAAK,cACjB,aAAa,KAAK,aAAaA,EAAI,IAAI,EAAE,OAAO,EAGpD,KAAK,aAAaA,EAAI,IAAI,EAAI,CAC1B,KAAM4+L,EACN,QAAS,WAAW,IAAM,OAAO,KAAK,aAAa5+L,EAAI,IAAI,EAAG4+L,EAAW,QAAO,EAAK,KAAK,IAAG,CAAE,CAClG,GAGD,KAAK,SAASjlM,EAAO,QAAS,+CAAgD,KAAO,CACjF,IAAKqG,EAAI,KACT,OAAQ1tB,EAAS,OACjB,WAAYA,EAAS,WACrB,iBAAAqsN,EACA,eAAgB,GAAGF,CAAO,MAAMJ,CAAY,EACxE,EAA0B,CAE1B,CACgB,KAAK,SAAS1kM,EAAO,QAAS,iCAAkC,KAAO,CACnE,IAAKqG,EAAI,KACT,OAAQ1tB,EAAS,OACjB,WAAYA,EAAS,WACrB,eAAgB,GAAGmsN,CAAO,MAAMJ,CAAY,EAChE,EAAkB,EACF,QAChB,CACY,GAAI/rN,EAAS,QAAU,KAAOA,EAAS,OAAS,IAAK,CAIjD,KAAK,SAASqnB,EAAO,QAAS,oCAAqC,KAAO,CACtE,IAAKqG,EAAI,KACT,OAAQ1tB,EAAS,OACjB,WAAYA,EAAS,WACrB,eAAgB,GAAGmsN,CAAO,MAAMJ,CAAY,EAChE,EAAkB,EACF,KAChB,CACY,GAAI/rN,EAAS,QAAU,KAAOA,EAAS,OAAS,IAAK,CAIjD,KAAK,SAASqnB,EAAO,QAAS,6CAA8C,KAAO,CAC/E,IAAKqG,EAAI,KACT,OAAQ1tB,EAAS,OACjB,WAAYA,EAAS,WACrB,eAAgB,GAAGmsN,CAAO,MAAMJ,CAAY,EAChE,EAAkB,EACF,KAChB,CAEY,KAAK,SAAS1kM,EAAO,QAAS,iBAAkB,KAAO,CACnD,IAAKqG,EAAI,KACT,OAAQ1tB,EAAS,OACjB,WAAYA,EAAS,WACrB,eAAgB,GAAGmsN,CAAO,MAAMJ,CAAY,EAC5D,EAAc,CACd,CACQ,MAAM,IAAI,MAAM,mBAAmBr+L,EAAI,IAAI,EAAE,CACrD,CAKI,aAAa,MAAM6+L,EAAI,CACfA,EAAK,GACL,MAAM,IAAI,QAAQvwJ,GAAW,WAAWA,EAASuwJ,CAAE,CAAC,CAEhE,CAOI,OAAO,sBAAsBD,EAAY,CACrC,GAAIT,GAAe,YAAY,KAAKS,CAAU,EAC1C,OAAO,IAAI,KAAK,KAAK,IAAK,EAAG,OAAO,SAASA,EAAY,EAAE,EAAI,GAAK,EAExE,GAAIT,GAAe,UAAU,KAAKS,CAAU,EACxC,OAAO,IAAI,KAAKA,CAAU,CAEtC,CAKI,0BAA0BjlM,EAAQ,CAC9B,MAAMmlM,EAAkBnlM,EAAO,IAAM,IAAI,IAAIA,EAAO,GAAG,EAAE,KAAO,OAChE,UAAWolM,KAAQ,OAAO,KAAK,KAAK,YAAY,GACxC,CAACD,GAAmBC,IAASD,KAC7B,aAAa,KAAK,aAAaC,CAAI,EAAE,OAAO,EAC5C,OAAO,KAAK,aAAaA,CAAI,EAG7C,CACA,EACAd,sBAAA,eAAyBE,EAGzBA,EAAe,UAAY,uIAE3BA,EAAe,YAAc,YAE7BA,EAAe,WAAa,IAAI3gM,EAAO,iBAAiB,uCAAuC,uHClM/F,IAAId,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,sBAA2B,EAAE+D,CAAO,kNCfjD,OAAO,eAAeiiM,mBAAS,aAAc,CAAE,MAAO,GAAM,EAClCA,mBAAA,mBAAG,OAC7B,MAAM/zC,EAA0CjyJ,cAAA,EAC1CwE,EAAkCR,cAAA,EACxC,IAAAiiM,EAAA,MAAMC,WAA2Bj0C,EAAW,SAAU,CAClD,YAAYz7K,EAAM,CACd,MAAMA,CAAI,EACV,KAAK,aAAeA,EAAK,aACzB,KAAK,gBAAkBA,EAAK,gBAC5B,KAAK,gBAAgB,sBAAsBmqB,GAAU,KAAK,0BAA0BA,CAAM,CAAC,EAC3F,KAAK,qBAAuBnqB,EAAK,qBACjC,KAAK,kBAAoBA,EAAK,kBAC9B,KAAK,eAAiBA,EAAK,eAC3B,KAAK,aAAeA,EAAK,aACzB,KAAK,SAAW,IAAI,GAC5B,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,QAAQ,IAAIulM,GAAmB,UAAU,KACrC1hM,EAAO,UAAU,GAAG,KAAK,IAAI,+BAA+B,KAEhEA,EAAO,UAAU,CAAE,KAAM,CAAC,CAAE,CAC/C,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMwlM,EAAal0C,EAAW,UAAU,YAAYtxJ,EAAO,KAAK,EAChE,IAAIylM,EAAkB,KAAK,SAAS,IAAID,EAAW,IAAI,EAClDC,IACDA,EAAkB,CACd,uBAAwB,EACxB,YAAa,KAAK,eAClB,gBAAiB,OAAO,iBAC3B,EACD,KAAK,SAAS,IAAID,EAAW,KAAMC,CAAe,GAEtD,MAAMC,EAAmB,KAAK,IAAK,EACnC,IAAIC,EAAsB,EACtBF,EAAgB,cAChBE,EAAsB,KAAK,IAAI,EAAGF,EAAgB,uBAAyBA,EAAgB,gBAAkBC,CAAgB,GAMjID,EAAgB,uBAAyBC,GAAoB,KAAK,aAAe,EAAI,GAAKC,EACtFA,EAAsB,IACtB,KAAK,SAAS3lM,EAAO,QAAS,mBAAoB,KAAO,CACrD,IAAKwlM,EAAW,KAChB,gBAAiBC,EAAgB,gBACjC,aAAcE,CAC9B,EAAc,EACF,MAAM,IAAI,QAAQhxJ,GAAW,WAAWA,EAASgxJ,CAAmB,CAAC,GAEzE,MAAMC,EAA4BC,GAAY,CAC1C,MAAMC,GAAmBD,EAAU,EAAI,KAAK,oBACvC,KAAK,IAAG,EAAKH,EAAmBC,GACjCF,EAAgB,gBAAkB,EAClCA,EAAgB,gBAAkB,KAAK,MAAMK,EAAkB,KAAK,oBAAoB,EAGxFL,EAAgB,iBAAmB,KAAK,MAAM,KAAK,sBAAwBK,EAAkBL,EAAgB,gBAAgB,EAE7H,CAACI,GAAW,CAACJ,EAAgB,cAC7B,KAAK,SAASzlM,EAAO,QAAS,+BAAgC,KAAO,CACjE,KAAMwlM,EAAW,IACrC,EAAkB,EACFC,EAAgB,YAAc,GAErC,EACD,GAAI,CACA,MAAM9sN,EAAW,MAAM,KAAK,aAAa,QAAQ,CAC7C,GAAGqnB,EACH,QAASA,EAAO,QAAQ,IAAIulM,GAAmB,WAAY,EAAI,CAC/E,CAAa,EACD,OAAAK,EAAyBjtN,EAAS,EAAE,EAC7BA,CACnB,OACeyB,EAAO,CACV,MAAAwrN,EAAyB,EAAK,EACxBxrN,CAClB,CACA,CAKI,0BAA0B4lB,EAAQ,CAC9B,GAAIA,EAAO,IAAK,CACZ,MAAMmlM,EAAkB,IAAI,IAAInlM,EAAO,GAAG,EAAE,KAC5C,KAAK,SAAS,OAAOmlM,CAAe,CAChD,MAEY,KAAK,SAAS,MAAO,CAEjC,CACA,EACAE,0BAAA,mBAA6BE,EAE7BA,EAAmB,WAAa,IAAI1hM,EAAO,iBAAiB,4CAA4C,2HChGxG,IAAId,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0BAA+B,EAAE+D,CAAO,kTCfrD,OAAO,eAAe2iM,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAMlgB,EAA4ExmL,aAAA,EAC5EwE,EAAkCR,cAAA,EAClCywL,EAAqBxwL,sBAA2B,EAChD+sF,EAAoB9sF,eAA0B,EAIpD,IAAAyiM,EAAA,cAAiDngB,EAA4B,wBAAyB,CAClG,YAAYhwM,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAK,KAAK,eAAeA,EAAO,uBAAuB,KAG5C6D,EAAO,cAAe,KAFlBA,EAAO,UAAU,GAAG,KAAK,IAAI,oFAAoF,CAGxI,CACI,MAAM,IAAI7D,EAAQ,CAEd,OAAO,MAAM,KAAK,4BAA4B,QAAQ,CAClD,wBAAyB,CACrB,KAAM,QACN,MAAO,MAAM,KAAK,aAAaA,EAAO,QAASA,EAAO,uBAAuB,EAC7E,QAASA,EAAO,wBAAwB,OAC3C,EACD,QAASA,EAAO,OAC5B,CAAS,CACT,CAOI,MAAM,aAAa7hB,EAAS3I,EAAQ,CAChC,MAAMunL,EAAa,IAAI1sE,EAAkB,SAAS,CAAE,WAAY,GAAM,EAEtE0sE,EAAW,MAAQ,IAAM,CAExB,EACDA,EAAW,KAAKvnL,EAAO,KAAK,EAC5BunL,EAAW,KAAK,IAAI,EACpB,MAAME,EAAc,CAChB,QAAA9+K,EACA,OAAQ,CACJ,SAAU,CAAE,QAAS3I,EAAO,OAAS,EACrC,KAAMunL,EACN,QAAA5+K,CACH,EACD,gBAAiB3I,EAAO,SAC3B,EACKywN,EAAc,MAAM,KAAK,iBAAiB,QAAQhpC,CAAW,EACnE,OAAO,QAAU62B,EAAmB,aAAamS,EAAY,OAAO,IAAI,CAChF,CACI,eAAezwN,EAAQ,CACnB,MAAM,SAAUA,EAMTA,EAAO,OAAS,aALb,OAAOA,EAAO,OAAU,SACnB,GAEJ,cAAeA,CAGlC,CACA,EACAuwN,0CAAA,mCAA6CG,2IClE7C,IAAInjM,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0CAA+C,EAAE+D,CAAO,wQCfrE,OAAO,eAAe+iM,4BAAS,aAAc,CAAE,MAAO,GAAM,EACzBA,4BAAA,4BAAG,OACtC,MAAMtvC,EAAkDx3J,cAAA,EAClDsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCmyJ,EAAsDlyJ,cAAA,EACtDokD,EAAoEnkD,cAAA,EACpE29C,EAA0C19C,qBAAA,EAC1C8mC,EAAoB7mC,uBAA0B,EAIpD,IAAA0iM,EAAA,cAA0CvvC,EAAe,YAAa,CAClE,YAAYhhL,EAAM,CACd,MAAMA,EAAM,CACR,YAAa,QACb,aAAc,cACd,gBAAiB,EAC7B,CAAS,CACT,CACI,MAAM,UAAUmqB,EAAQ8B,EAAU,CAC9B,MAAMuI,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAE1Dpf,EAAU6W,EAAS,cACzB,KAAK,SAAS9B,EAAO,QAAS,qCAAsC,KAAO,CACvE,MAAO/U,EAAQ,CAAC,EAAE,UAClB,YAAaA,EAAQ,CAAC,EAAE,SAAS,YACjC,MAAOA,EAAQ,CAAC,EAAE,SAAS,MAC3B,gBAAiBA,EAAQ,CAAC,EAAE,SAAS,eACjD,EAAU,EAEF,SAAW,CAACpyB,EAAGopB,CAAO,IAAKgJ,EAAQ,QAAO,EAClCpyB,IAAM,GACNopB,EAAQ,OAAO,eAAe,MAAO,EAI7C,MAAM88M,EAAiB9zM,EAAQ,CAAC,EAAE,OAC5Bo7M,EAAmBp7M,EAAQ,CAAC,EAAE,SAC9B+oK,EAAmB,CAAC,GAAG/oK,CAAO,EACpC+oK,EAAiB,OAAO,EAAG,CAAC,EAE5B,MAAMryG,KAAoBgG,EAAwB,oBAAoBqsG,EAAiB,CAAC,EAAE,SAAS,EAE7Fv9I,EAAY,KAAK,2BAA2BwqC,EAAgB+yG,CAAgB,EAE5E6tC,EAAiB,IAAIpsC,EAAiB,gBAAgBspC,EAAe,eAAgB,KAAK,UAAW,CAAE,UAAW,EAAK,CAAE,EAG/H,MAAO,CACH,OAAQ,CACJ,KAAM,WACN,eAJe,IAAI59I,EAAgB,cAAc0gJ,EAAe,IAAIziH,GAASz9B,EAAc,OAAO,cAAclrC,EAAWkrC,EAAc,QAAU3hD,EAAO,QAAQ,MAAM2hD,EAAc,OAAO,EAAI3hD,EAAO,QAAS,CAAE,aAAc,CAAE,SAAUo/E,EAAO,SAAUinH,CAAkB,CAAA,CAAE,CAAC,CAAC,EAKpR,SAAU,IAAM,KAAK,wBAAwBp7M,EAASA,EAAQ,IAAIvC,GAASA,EAAM,QAAQ,EAAGsX,EAAO,OAAO,CAC7G,EACD,qBAAsB,CAClB,UAAW8B,EAAS,gBAAgB,QAAQ7W,EAAQ,CAAC,CAAC,CACzD,CACJ,CACT,CACI,MAAM,gBAAgBA,EAAS9M,EAAS,CACpC,MAAM+gN,EAAc,MAAMroC,EAAe,aAAa,gBAAgB,KAAK,wBAAyB5rK,EAAS9M,CAAO,EACpH,OAAI+gN,EAAY,WACLA,GAEXj0M,EAAUi0M,EAAY,IAAK,EAE3Bj0M,EAAUA,EAAQ,KAAK,CAAC+wG,EAAWC,IAC3BD,EAAU,mBAAqB,CAACC,EAAW,kBACpC,GAEJ,CACV,KACUp4F,EAAO,UAAU5Y,CAAO,EAC3C,CACI,MAAM,oBAAoB+U,EAAQ8B,EAAU,CACxC,GAAI,CAAE,UAAA8zJ,CAAS,EAAK9zJ,EACpB,MAAMuI,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAE1D40L,EAAkBj/L,EAAO,QAAQ,IAAI,CAACtX,EAAO7vB,KAAO,CAAE,GAAG6vB,EAAO,SAAUktK,EAAU/8L,CAAC,CAAG,EAAC,EACzFqmO,EAAc,MAAM,KAAK,gBAAgBD,EAAiBj/L,EAAO,OAAO,EAC9E,GAAIk/L,EAAY,WACZ,OAAOA,EAEX,MAAM3lC,EAAgB2lC,EAAY,IAAK,EACvCtpC,EAAY2D,EAAc,IAAI7wK,GAASA,EAAM,QAAQ,EACrD,MAAM8wK,EAAsB3C,EAAe,aAAa,uBAAuBjB,CAAS,EAClF6D,EAAmB5C,EAAe,aAAa,oBAAoBjB,CAAS,EAE5E5B,EAAmB,CAAC,GAAGuF,CAAa,EACL,CAAC,GAAGC,CAAmB,EAC1B,CAAC,GAAGC,CAAgB,EACtDzF,EAAiB,OAAO,EAAG,CAAC,EAI5B,MAAMvkK,EAAUukK,EAAiB,IAAItrK,MAAai/D,EAAwB,oBAAoBj/D,EAAM,SAAS,CAAC,EAC9G,GAAI+G,EAAQ,KAAKja,GAAU,CAACA,CAAM,EAC9B,SAAWquB,EAAO,UAAU,SAAS,KAAK,IAAI,iEAAiE,EAGnH,GAAIpU,EAAQ,KAAKja,GAAUA,IAAWia,EAAQ,CAAC,CAAC,EAC5C,SAAWoU,EAAO,UAAU,SAAS,KAAK,IAAI,wEAAwE,EAG1H,MAAM89C,EAAgBlyD,EAAQ,CAAC,EACzBuyM,EAAmB,KAAK,2BAA2B/gJ,EAAgB+yG,CAAgB,EACnFiuC,EAAgB,MAAMtgJ,EAAc,OAAO,iBAAiB3hD,EAAO,OAAO,EAChF,GAAI,IAAK2nD,EAAwB,0BAA0Bs6I,EAAeD,EAAkB,CAAE,aAAc,EAAI,CAAE,EAC9G,SAAWn+L,EAAO,UAAU,SAAS,KAAK,IAAI,mEAAmE,EAGrH,MAAMy7L,EAAgB,MAAM,QAAQ,IAAItrC,EACnC,IAAI,MAAOtrK,IAAW,MAAM,KAAK,wBAAwB,QAAQ,CAClE,QAAS,CAAC6wK,EAAc,CAAC,EAAG7wK,CAAK,EACjC,QAASsX,EAAO,OACnB,CAAA,GAAG,YAAc,KAAK,mBAAmB,CAAC,EAErCu/L,EAAuBvrC,EACxB,IAAI,CAACtrK,EAAO7vB,IAAM6vB,EAAM,SAAS,YAAY,MAAQ42M,EAAczmO,CAAC,CAAC,EACrE,OAAO,CAACg0B,EAAK5K,IAAY4K,EAAM5K,EAAS,CAAC,EAC9C,SAAW4hB,EAAO,sBAAsB,CACpC,WAAY,EACZ,eAAgB+xJ,EAAU,CAAC,EAAE,YAAY,MACzC,cAAeA,EAAU,CAAC,EAAE,YAAY,MACxC,YAAa4D,EAAoB,CAAC,EAAI5D,EAAU,CAAC,EAAE,YAAY,MAAQ6D,EAAiB,CAAC,EACrFD,EAAoB,CAAC,EAAI+lC,EAAuB9lC,EAAiB,CAAC,CACzE,EAAE,CAAE,GAAG33J,EAAU,gBAAAm9L,EAAiB,cAAA1lC,CAAa,CAAE,CAC1D,CACI,2BAA2Bt4G,EAAgB+yG,EAAkB,CACzD,OAAIA,EAAiB,SAAW,EACrBA,EAAiB,CAAC,EAAE,UAExB/yG,EAAe,WAAW+yG,EAAiB,IAAItrK,GAASA,EAAM,SAAS,EAAG,EAAI,CAC7F,CACA,EACAy9M,mCAAA,4BAAsCG,oIC1ItC,IAAIvjM,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mCAAwC,EAAE+D,CAAO,sVCf9D,OAAO,eAAemjM,yCAAS,aAAc,CAAE,MAAO,GAAM,EACZA,yCAAA,yCAAG,OACnD,MAAMniJ,EAAkF/kD,cAAA,EAClFsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCinC,EAAoBhnC,uBAA0B,EAIpD,IAAAijM,EAAA,MAAMC,WAAiDriJ,EAA+B,2BAA4B,CAC9G,MAAM,KAAKjgD,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAShE,MAAO,CAAE,UARSkgC,EAAkB,KAAK,aAAavqC,EAAO,UAAW,CACpE,KAAKqnB,EAAI/F,EAAS,CACd,MAAO,CACH,QAAS,GACT,OAAQmlL,GAAyC,QAAQp/K,EAAI/F,CAAO,CACvE,CACJ,CACJ,EAAE2/B,CAAc,EACG,QAASjhD,EAAO,OAAS,CACrD,CAMI,OAAO,QAAQqnB,EAAI/F,EAAS,CAExB,MAAMolL,EAAkBr/K,EAAG,MAAM,IAAIqD,IAAU,CAC3C,iBAAkB,OAAO,YAAY6f,EAAkB,KAAK,iBAAiB7f,CAAK,EAAE,IAAIlkB,GAAY,CAACA,EAAS,MAAO,EAAI,CAAC,CAAC,EAC3H,QAAS,CAACkkB,CAAK,CAC3B,EAAU,EAEF,IAAIi8K,EACAC,EAAcF,EAClB,GACIC,EAAcC,EACdA,EAAcH,GAAyC,iBAAiBE,CAAW,QAC9EA,EAAY,SAAWC,EAAY,QAE5C,MAAMC,EAAWD,EACZ,IAAIv+I,GAAWA,EAAQ,QAAQ,SAAW,EAAIA,EAAQ,QAAQ,CAAC,EAAI/mC,EAAQ,WAAW+mC,EAAQ,OAAO,CAAC,EAC3G,OAAOw+I,EAAS,SAAW,EAAIA,EAAS,CAAC,EAAIvlL,EAAQ,WAAWulL,EAAU,EAAK,CACvF,CAMI,OAAO,iBAAiBC,EAAY,CAChC,MAAMF,EAAc,CAAE,EACtB,UAAWl+M,KAASo+M,EAAY,CAE5B,IAAI1tM,EAAS,GACb,UAAW2tM,KAAYH,EACnB,GAAIH,GACC,yBAAyB/9M,EAAM,iBAAkBq+M,EAAS,gBAAgB,EAAG,CAC9EA,EAAS,QAAU,CAAC,GAAGA,EAAS,QAAS,GAAGr+M,EAAM,OAAO,EACzDq+M,EAAS,iBAAmB,CAAE,GAAGA,EAAS,iBAAkB,GAAGr+M,EAAM,gBAAkB,EACvF0Q,EAAS,GACT,KACpB,CAGiBA,GACDwtM,EAAY,KAAK,CACb,iBAAkBl+M,EAAM,iBACxB,QAASA,EAAM,OACnC,CAAiB,CAEjB,CACQ,OAAOk+M,CACf,CAMI,OAAO,yBAAyB1uB,EAAY8uB,EAAY,CACpD,UAAWC,KAAa,OAAO,KAAK/uB,CAAU,EAC1C,GAAI8uB,EAAWC,CAAS,EACpB,MAAO,GAGf,MAAO,EACf,CACA,EACAV,gDAAA,yCAAmDE,iJC5FnD,IAAI1jM,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,gDAAqD,EAAE+D,CAAO,8TCf3E,OAAO,eAAe8jM,qCAAS,aAAc,CAAE,MAAO,GAAM,EAChBA,qCAAA,qCAAG,OAC/C,MAAM9iJ,EAAkF/kD,cAAA,EAClFsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCinC,EAAoBhnC,uBAA0B,EAIpD,IAAA4jM,EAAA,cAAmD/iJ,EAA+B,2BAA4B,CAC1G,MAAM,KAAKjgD,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAShE,MAAO,CAAE,UARSkgC,EAAkB,KAAK,aAAavqC,EAAO,UAAW,CACpE,IAAIqnB,EAAI/F,EAAS,CACb,MAAO,CACH,QAAS,GACT,OAAQA,EAAQ,WAAW+F,EAAG,QAAQ,CACzC,CACJ,CACJ,EAAE45B,CAAc,EACG,QAASjhD,EAAO,OAAS,CACrD,CACA,EACAknM,4CAAA,qCAA+CE,6IC3B/C,IAAIrkM,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,4CAAiD,EAAE+D,CAAO,kTCfvE,OAAO,eAAeikM,mCAAS,aAAc,CAAE,MAAO,GAAM,EAClBA,mCAAA,mCAAG,OAC7C,MAAMjjJ,EAAkF/kD,cAAA,EAClFsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCinC,EAAoBhnC,uBAA0B,EAIpD,IAAA+jM,EAAA,cAAiDljJ,EAA+B,2BAA4B,CACxG,MAAM,KAAKjgD,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAehE,MAAO,CAAE,UAdSkgC,EAAkB,KAAK,aAAavqC,EAAO,UAAW,CACpE,KAAKqnB,EAAI/F,EAAS,CACd,OAAI+F,EAAG,MAAM,MAAM0gC,GAAYA,EAAS,OAAS,KAAK,EAC3C,CACH,QAAS,GACT,OAAQzmC,EAAQ,UAAU+F,EAAG,MAAM,QAAQ0gC,GAAYA,EAAS,QAAQ,CAAC,CAC5E,EAEE,CACH,QAAS,GACT,OAAQ1gC,CACX,CACJ,CACJ,EAAE45B,CAAc,EACG,QAASjhD,EAAO,OAAS,CACrD,CACA,EACAqnM,0CAAA,mCAA6CE,2ICjC7C,IAAIxkM,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0CAA+C,EAAE+D,CAAO,kZCfrE,OAAO,eAAeokM,mDAAS,aAAc,CAAE,MAAO,GAAM,EACFA,mDAAA,mDAAG,OAC7D,MAAMpjJ,EAAkF/kD,cAAA,EAClF2jI,EAAkE3/H,cAAA,EAClEsC,EAAwDrC,cAAA,EACxDO,EAAkCN,cAAA,EAClCokD,EAAoEnkD,cAAA,EACpE+mC,EAAoB9mC,uBAA0B,EAIpD,IAAAgkM,EAAA,cAAiErjJ,EAA+B,2BAA4B,CACxH,YAAYvuE,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKsuB,EAAS,CAChB,SAAWN,EAAO,cAAe,CACzC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1D5a,EAAUuQ,EAAO,QAAQ,IAAI2F,EAAkB,mBAAmB,YAAY,GAAK,CAAE,EAC3F,GAAIlW,EAAQ,SAAW,EACnB,MAAO,CAAE,UAAWuQ,EAAO,UAAW,QAASA,EAAO,OAAS,EAEnE,GAAIvQ,EAAQ,SAAW,EAAG,CACtB,MAAMkyD,EAAgBlyD,EAAQ,CAAC,EACzByzB,EAAcljB,EAAO,QAAQ,IAAI2F,EAAkB,mBAAmB,WAAW,EACvF,GAAI,CAACud,GAAey+B,EAAc,OAAO,oBAAuBqhF,EAAuB,yBAAyB9/G,CAAW,EACvH,GAAI,CACA,MAAM8iC,EAAQ,MAAMrE,EAAc,OAAO,iBAAiB3hD,EAAO,OAAO,EACxE,MAAQ2nD,EAAwB,0BAA0B3B,EAAOhmD,EAAO,SAAS,EAC7E,MAAO,CACH,aAAe2nD,EAAwB,uBAAuB3nD,EAAO,UAAW2hD,CAAa,EAC7F,QAAS3hD,EAAO,OACnB,CAEzB,MACsB,CAGtB,CAEA,CACQ,MAAO,CACH,UAAW,KAAK,iBAAiBihD,EAAgBjhD,EAAO,UAAWvQ,CAAO,EAG1E,QAASuQ,EAAO,QACX,OAAO2F,EAAkB,cAAc,WAAW,CAC1D,CACT,CASI,iBAAiBs7C,EAAgBxqC,EAAWhnB,EAAS,CAEjD,MAAM2qB,EAAO,KACb,OAAOmwB,EAAkB,KAAK,aAAa9zB,EAAW,CAClD,CAAC8zB,EAAkB,QAAQ,MAAM,OAAO,EAAEmsI,EAAcp1J,EAAS,CAC7D,OAAI7xB,EAAQ,SAAW,EACZ,CACH,UAAYk4D,EAAwB,uBAAuB+uH,EAAcjnL,EAAQ,CAAC,CAAC,EACnF,QAAS,EACZ,EAEE,CACH,OAAQ6xB,EAAQ,YAAY7xB,EACvB,IAAIja,MAAcmyE,EAAwB,uBAAuB+uH,EAAclhM,CAAM,CAAC,CAAC,EAC5F,QAAS,EACZ,CACJ,EACD,CAAC+0D,EAAkB,QAAQ,MAAM,IAAI,EAAEmsI,EAAcp1J,EAAS,CAC1D,OAAI7xB,EAAQ,SAAW,EACZ,CACH,UAAYk4D,EAAwB,uBAAuB+uH,EAAcjnL,EAAQ,CAAC,CAAC,EACnF,QAAS,EACZ,EAEE,CACH,OAAQ6xB,EAAQ,UAAU7xB,EACrB,IAAIja,MAAcmyE,EAAwB,uBAAuB+uH,EAAclhM,CAAM,CAAC,CAAC,EAC5F,QAAS,EACZ,CACJ,EACD,CAAC+0D,EAAkB,QAAQ,MAAM,GAAG,EAAEmsI,EAAcp1J,EAAS,CACzD,OAAI7xB,EAAQ,SAAW,EACZ,CACH,UAAYk4D,EAAwB,uBAAuB+uH,EAAcjnL,EAAQ,CAAC,CAAC,EACnF,QAAS,EACZ,EAEE,CACH,OAAQ6xB,EAAQ,UAAU7xB,EACrB,IAAIja,MAAcmyE,EAAwB,uBAAuB+uH,EAAclhM,CAAM,CAAC,CAAC,EAC5F,QAAS,EACZ,CACJ,EACD,CAAC+0D,EAAkB,QAAQ,MAAM,OAAO,EAAEmsI,EAAc,CACpD,MAAO,CACH,OAAQA,EACR,QAAS,EACZ,CACJ,EACD,CAACnsI,EAAkB,QAAQ,MAAM,SAAS,EAAEmsI,EAAcp1J,EAAS,CAC/D,MAAO,CACH,OAAQA,EAAQ,gBAAgBlH,EAAK,iBAAiB6mC,EAAgBy1H,EAAa,MAAOjnL,CAAO,EAAGinL,EAAa,QAAQ,EACzH,QAAS,EACZ,CACJ,EACD,CAACnsI,EAAkB,QAAQ,MAAM,aAAa,EAAEmsI,EAAcp1J,EAAS,CACnE,MAAO,CACH,OAAQA,EAAQ,mBAAmBo1J,EAAa,OAAQA,EAAa,OAAQA,EAAa,MAAQt8J,EAAK,iBAAiB6mC,EAAgBy1H,EAAa,MAAOjnL,CAAO,EAAI,MAAS,EAChL,QAAS,EACZ,CACJ,CACJ,EAAEwxD,CAAc,CACzB,CACA,EACAumJ,0DAAA,mDAA6DE,2JC5H7D,IAAI3kM,EAAmBC,OAAQA,MAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,OAAQA,MAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,0DAA+D,EAAE+D,CAAO,waCfrF,OAAO,eAAeukM,uDAAS,aAAc,CAAE,MAAO,GAAM,EACEA,uDAAA,uDAAG,OACjE,MAAMvjJ,EAAkF/kD,cAAA,EAClFsG,EAAwDtC,cAAA,EACxDQ,EAAkCP,cAAA,EAClCinC,EAAoBhnC,uBAA0B,EAIpD,IAAAqkM,EAAA,cAAqExjJ,EAA+B,2BAA4B,CAC5H,YAAYvuE,EAAM,CACd,MAAMA,CAAI,CAClB,CACI,MAAM,KAAKmqB,EAAQ,CACf,OAAIA,EAAO,UAAU,OAASuqC,EAAkB,QAAQ,MAAM,YAC/C1mC,EAAO,UAAU,SAAS,KAAK,IAAI,+CAA+C7D,EAAO,UAAU,IAAI,EAAE,KAE7G6D,EAAO,UAAU,EAAI,CACxC,CACI,MAAM,IAAI7D,EAAQ,CACd,MAAMqK,EAAcrK,EAAO,QAAQ,QAAQ2F,EAAkB,cAAc,WAAW,EAChFs7C,EAAiB,IAAI1W,EAAkB,QAAQlgC,CAAW,EAC1Di6C,EAAoBtkD,EAAO,UAE3B0e,EAAa4lC,EAAkB,MAChC,OAAOtoE,GAAQA,EAAK,WAAa,UAAU,EAC3C,IAAKA,GAAS,CAEf,MAAMqmC,EAAW,CACbhY,EAAY,KAAKruB,EAAMquB,EAAY,SAAS,aAAa,EAAGA,EAAY,SAAS,UAAU,CAAC,CAC/F,EAED,OAAAgY,EAAS,QAASwlL,GAAoBA,EAAgB,KAAO,SAAS,EAM/D,CACH,MANsB,CACtB,KAAMt9J,EAAkB,QAAQ,MAAM,IACtC,SAAUloB,CACb,EAIG,SAAUA,EACV,KAAM,WACT,CACb,CAAS,EAGD,GAAI3D,EAAW,SAAW4lC,EAAkB,MAAM,OAAQ,CACtD,IAAIwjJ,EAAmB,CAAE,EACzBxjJ,EAAkB,MACb,OAAOtoE,GAAQA,EAAK,WAAa,UAAU,EAE3C,QAAQ,CAACA,EAAMnjB,IAAM,CAEtB,MAAMwpD,EAAW,CACbhY,EAAY,KAAKruB,EAAMquB,EAAY,SAAS,cAAcxxC,CAAC,EAAE,EAAGwxC,EAAY,SAAS,WAAWxxC,CAAC,EAAE,CAAC,CACvG,EAEDwpD,EAAS,QAASwlL,GAAoBA,EAAgB,KAAO,SAAS,EACtEC,EAAmB,CAAC,GAAGA,EAAkB,GAAGzlL,CAAQ,CACpE,CAAa,EAGD3D,EAAW,KAAK,CACZ,MAAO,CACH,KAAM6rB,EAAkB,QAAQ,MAAM,KACtC,MAAO,CACH+Z,EAAkB,MAClB,CAAE,KAAM/Z,EAAkB,QAAQ,MAAM,IAAK,SAAUu9J,CAAkB,CAC5E,CACJ,EACD,SAAUA,EACV,KAAMv9J,EAAkB,QAAQ,MAAM,SACtD,CAAa,CACb,CAGQ,MAAO,CAAE,UADS0W,EAAe,YAAYviC,EAAY,EAAK,EAC1C,QAAS1e,EAAO,OAAS,CACrD,CACA,EACA2nM,8DAAA,uDAAiEI,uJC/EjE,IAAIhlM,EAAmBC,KAAQA,IAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,KAAQA,IAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,8DAAmE,EAAE+D,CAAO,qJChB3E,cAAG,SAAS8a,EAAW,CAOrC,MAAM8pL,EAAW,IAAqC3oM,cAAA,GAAC,WACjD4oM,EAAiI,IAA8B5kM,cAAA,GAAC,IAAK,CACzK,KAAQ,gIACV,CAAC,EACK6kM,EAAyK,IAA8B7kM,cAAA,GAAC,IAAK,CACjN,KAAQ,wKACV,CAAC,EACK8kM,EAA0J,IAA8B9kM,cAAA,GAAC,IAAK,CAClM,KAAQ,yJACV,CAAC,EACK+kM,EAAiJ,IAA8B/kM,cAAA,GAAC,IAAK,CACzL,KAAQ,gJACV,CAAC,EACKglM,EAAyL,IAA8BhlM,cAAA,GAAC,IAAK,CACjO,KAAQ,wLACV,CAAC,EACKilM,EAAoJ,IAA8BjlM,cAAA,GAAC,IAAK,CAC5L,KAAQ,mJACV,CAAC,EACKklM,EAAmL,IAA8BllM,cAAA,GAAC,IAAK,CAC3N,KAAQ,kLACV,CAAC,EACKmlM,EAA+M,IAA8BnlM,cAAA,GAAC,IAAK,CACvP,KAAQ,8MACV,CAAC,EACKolM,EAAsJ,IAA8BplM,cAAA,GAAC,IAAK,CAC9L,KAAQ,qJACV,CAAC,EACKqlM,EAAgK,IAA8BrlM,cAAA,GAAC,IAAK,CACxM,KAAQ,+JACV,CAAC,EACKslM,EAA8K,IAA8BtlM,cAAA,GAAC,IAAK,CACtN,KAAQ,6KACV,CAAC,EACKulM,EAA6K,IAA8BvlM,cAAA,GAAC,IAAK,CACrN,KAAQ,4KACV,CAAC,EACKwlM,EAAuJ,IAA8BxlM,cAAA,GAAC,IAAK,CAC/L,KAAQ,sJACV,CAAC,EACKylM,EAAsL,IAA8BzlM,cAAA,GAAC,IAAK,CAC9N,KAAQ,qLACV,CAAC,EACK0lM,EAA6K,IAA8B1lM,cAAA,GAAC,IAAK,CACrN,KAAQ,4KACV,CAAC,EACK2lM,EAA8I,IAA8B3lM,cAAA,GAAC,IAAK,CACtL,KAAQ,6IACV,CAAC,EACK4lM,EAA2J,IAA8B5lM,cAAA,GAAC,IAAK,CACnM,KAAQ,0JACV,CAAC,EACK6lM,EAAmM,IAA8B7lM,cAAA,GAAC,IAAK,CAC3O,KAAQ,kMACV,CAAC,EACK8lM,EAAmN,IAA8B9lM,cAAA,GAAC,IAAK,CAC3P,KAAQ,kNACV,CAAC,EACK+lM,EAA0J,IAA8B/lM,cAAA,GAAC,IAAK,CAClM,KAAQ,yJACV,CAAC,EACKgmM,EAAgL,IAA8BhmM,cAAA,GAAC,IAAK,CACxN,KAAQ,+KACV,CAAC,EACKimM,EAAiK,IAA8BjmM,cAAA,GAAC,IAAK,CACzM,KAAQ,gKACV,CAAC,EACKkmM,EAAkM,IAA8BlmM,cAAA,GAAC,IAAK,CAC1O,KAAQ,iMACV,CAAC,EACKmmM,EAAqM,IAA8BnmM,cAAA,GAAC,IAAK,CAC7O,KAAQ,oMACV,CAAC,EACKomM,EAAmK,IAA8CnmM,cAAA,GAAC,mBAAoB,CAC1O,KAAQ,kKACV,CAAC,EACKomM,EAAiI,IAA8BrmM,cAAA,GAAC,IAAK,CACzK,KAAQ,gIACV,CAAC,EACKsmM,EAAkI,IAA8BtmM,cAAA,GAAC,IAAK,CAC1K,KAAQ,iIACV,CAAC,EACKumM,EAAgK,IAA6CrmM,cAAA,GAAC,kBAAmB,CACrO,KAAQ,+JACV,CAAC,EACKsmM,EAA0J,IAA8BxmM,cAAA,GAAC,IAAK,CAClM,KAAQ,yJACV,CAAC,EACKymM,EAAgL,IAA8BzmM,cAAA,GAAC,IAAK,CACxN,KAAQ,+KACV,CAAC,EACK0mM,EAA2I,IAA8B1mM,cAAA,GAAC,IAAK,CACnL,KAAQ,0IACV,CAAC,EACK2mM,GAAsL,IAA8B3mM,cAAA,GAAC,IAAK,CAC9N,KAAQ,qLACV,CAAC,EACK4mM,GAAgK,IAA8B5mM,cAAA,GAAC,IAAK,CACxM,KAAQ,+JACV,CAAC,EACK6mM,GAAmL,IAA8B7mM,cAAA,GAAC,IAAK,CAC3N,KAAQ,kLACV,CAAC,EACwE,IAAoEG,cAAA,GAAC,uCAAwC,CACpL,oBAAuB,CAAC,QAAU,qCAAqC,YAAc,yCAAyC,SAAW,wCAAwC,YAAc,6CAA6C,kBAAoB,+CAA+C,QAAU,qCAAqC,yBAA2B,sDAAsD,mBAAqB,gDAAgD,MAAQ,2BAA2B,uBAAyB,oDAAoD,SAAW,0BAA0B,gBAAkB,uCAAuC,uBAAyB,yCAAyC,iBAAmB,8CAA8C,eAAiB,sCAAsC,uBAAyB,+CAA+C,oBAAsB,4CAA4C,YAAc,kCAAkC,gBAAkB,6CAA6C,gBAAkB,6CAA6C,QAAU,qCAAqC,IAAM,qBAAqB,YAAc,yCAAyC,eAAiB,4CAA4C,6BAA+B,0DAA0D,SAAW,yCAAyC,mBAAqB,kDAAkD,QAAU,sDAAsD,SAAW,+CAA+C,kBAAoB,iDAAiD,EACrwD,KAAQ,mEACR,IAAO0kM,EACP,eAAkB,8BACnB,CAAA,EACmE,IAA+DzkM,cAAA,GAAC,kCAAmC,CACrK,OAAUukM,EACV,KAAQ,8DACR,IAAOE,EACP,eAAkB,8BACnB,CAAA,EAC4E,IAAwExkM,cAAA,GAAC,0CAA2C,CAC/L,KAAQ,uEACR,IAAOwkM,EACP,eAAkB,8BACnB,CAAA,EACD,MAAMiC,GAAwE,IAAyExmM,cAAA,GAAC,2CAA4C,CAClM,KAAQ,wEACR,IAAOukM,EACP,eAAkB,8BACpB,CAAC,EACKkC,GAAyD,IAAmDpjM,cAAA,GAAC,wBAAyB,CAC1I,KAAQ,yDACR,IAAOkhM,CACT,CAAC,EACwD,IAAoDjhM,cAAA,GAAC,wBAAyB,CACrI,KAAQ,mDACR,IAAOkhM,EACP,eAAkB,iDACnB,CAAA,EACD,MAAMkC,GAAoD,IAAuCnjM,cAAA,GAAC,aAAc,CAC9G,KAAQ,oDACR,IAAOihM,CACT,CAAC,EACqD,IAAiDhhM,cAAA,GAAC,qBAAsB,CAC5H,KAAQ,gDACR,IAAOihM,EACP,eAAkB,8CACnB,CAAA,EACyE,IAAqEhhM,cAAA,GAAC,uCAAwC,CACtL,KAAQ,oEACR,IAAOihM,EACP,eAAkB,gFACnB,CAAA,EACyE,IAAqEhhM,cAAA,GAAC,uCAAwC,CACtL,KAAQ,oEACR,IAAOghM,EACP,eAAkB,gFACnB,CAAA,EACwE,IAAoE/gM,cAAA,GAAC,sCAAuC,CACnL,KAAQ,mEACR,IAAO+gM,EACP,eAAkB,gFACnB,CAAA,EACD,MAAMiC,GAAqE,IAAsE/iM,cAAA,GAAC,wCAAyC,CACzL,KAAQ,qEACR,IAAO8gM,EACP,eAAkB,gFACpB,CAAC,EAC+E,IAA2E7gM,cAAA,GAAC,6CAA8C,CACxM,KAAQ,0EACR,IAAO6gM,EACP,eAAkB,gFACnB,CAAA,EACD,MAAMkC,GAA+D,IAAmDvjM,cAAA,GAAC,wBAAyB,CAChJ,eAAkB,GAClB,KAAQ,+DACR,IAAOqhM,CACT,CAAC,EACsD,IAAkD5gM,cAAA,GAAC,sBAAuB,CAC/H,SAAY,CAAC,QAAU,+BAA+B,cAAc,+BAA+B,QAAU,+BAA+B,GAAK,4BAA4B,KAAO,mCAAmC,QAAU,4BAA4B,KAAO,6BAA6B,IAAM,2CAA2C,IAAM,iCAAiC,IAAM,8CAA8C,KAAO,wCAAwC,OAAS,qBAAqB,KAAO,kCAAkC,IAAM,mCAAmC,EAC5kB,KAAQ,iDACR,IAAO6gM,EACP,eAAkB,+FACnB,CAAA,EACuD,IAAmD5gM,cAAA,GAAC,uBAAwB,CAClI,KAAQ,kDACR,IAAO4gM,EACP,eAAkB,+FACnB,CAAA,EACD,MAAMkC,GAAkD,IAAuCtjM,cAAA,GAAC,aAAc,CAC5G,KAAQ,kDACR,IAAOohM,CACT,CAAC,EAC+D,IAA2D3gM,cAAA,GAAC,8BAA+B,CACzJ,oBAAuB,CAAC,mBAAmB,CAAC,EAC5C,iBAAoB,CAAC,mBAAmB,wDAAwD,EAChG,KAAQ,0DACR,IAAO4gM,EACP,eAAkB,wHACnB,CAAA,EACiE,IAA6D3gM,cAAA,GAAC,gCAAiC,CAC/J,oBAAuB,CAAC,OAAS,EAAG,EACpC,iBAAoB,CAAC,OAAS,0DAA0D,EACxF,KAAQ,4DACR,IAAO2gM,EACP,eAAkB,wHACnB,CAAA,EAC8D,IAAiEkC,cAAA,GAAC,mCAAoC,CACnK,oBAAuB,CAAC,WAAW,GAAI,EACvC,iBAAoB,CAAC,WAAW,iDAAiD,EACjF,KAAQ,yDACR,IAAOlC,EACP,eAAkB,wHACnB,CAAA,EACqE,IAAiEmC,cAAA,GAAC,mCAAoC,CAC1K,oBAAuB,CAAC,4BAA4B,GAAI,EACxD,iBAAoB,CAAC,4BAA4B,iDAAiD,EAClG,KAAQ,gEACR,IAAOnC,EACP,eAAkB,wHACnB,CAAA,EACqE,IAAiEoC,cAAA,GAAC,mCAAoC,CAC1K,oBAAuB,CAAC,iCAAiC,EAAG,EAC5D,iBAAoB,CAAC,iCAAiC,iDAAiD,EACvG,KAAQ,gEACR,IAAOpC,EACP,eAAkB,wHACnB,CAAA,EACgE,IAA4DqC,cAAA,GAAC,+BAAgC,CAC5J,YAAe,GACf,oBAAuB,CAAC,MAAQ,EAAG,EACnC,iBAAoB,CAAC,MAAQ,yDAAyD,EACtF,KAAQ,2DACR,IAAOrC,EACP,eAAkB,wHACnB,CAAA,EAC+D,IAA2DsC,cAAA,GAAC,8BAA+B,CACzJ,oBAAuB,CAAC,KAAO,EAAG,EAClC,iBAAoB,CAAC,KAAO,wDAAwD,EACpF,KAAQ,0DACR,IAAOtC,EACP,eAAkB,wHACnB,CAAA,EACD,MAAMuC,GAAkE,IAAuC5jM,cAAA,GAAC,aAAc,CAC5H,KAAQ,kEACR,IAAOqhM,CACT,CAAC,EACKwC,GAAkE,IAAgDC,cAAA,GAAC,qBAAsB,CAC7I,MAAS,aACT,KAAQ,kEACR,IAAOzC,CACT,CAAC,EACK0C,GAAwE,IAAgDD,cAAA,GAAC,qBAAsB,CACnJ,MAAS,mBACT,KAAQ,wEACR,IAAOzC,CACT,CAAC,EACK2C,GAAuE,IAAyCC,cAAA,GAAC,eAAgB,CACrI,MAAS,eACT,KAAQ,MACR,eAAkB,GAClB,KAAQ,uEACR,IAAO3C,CACT,CAAC,EACK4C,GAAmD,IAAoDC,cAAA,GAAC,yBAA0B,CACtI,KAAQ,mDACR,IAAO5C,EACP,eAAkB,uFACpB,CAAC,EACK6C,GAAkD,IAAuCpkM,cAAA,GAAC,aAAc,CAC5G,KAAQ,kDACR,IAAOuhM,CACT,CAAC,EACK8C,GAAsD,IAAuCrkM,cAAA,GAAC,aAAc,CAChH,KAAQ,sDACR,IAAOwhM,CACT,CAAC,EACqE,IAAiE8C,cAAA,GAAC,mCAAoC,CAC1K,KAAQ,gEACR,IAAO7C,EACP,eAAkB,8EACnB,CAAA,EACD,MAAM8C,EAA4D,IAAyCN,cAAA,GAAC,eAAgB,CAC1H,MAAS,WACT,KAAQ,MACR,eAAkB,GAClB,KAAQ,4DACR,IAAOxC,CACT,CAAC,EAC0E,IAAsE+C,cAAA,GAAC,wCAAyC,CACzL,KAAQ,qEACR,IAAO9C,EACP,eAAkB,yGACnB,CAAA,EACD,MAAM+C,EAA2D,IAAyCR,cAAA,GAAC,eAAgB,CACzH,MAAS,WACT,KAAQ,MACR,eAAkB,GAClB,KAAQ,2DACR,IAAOvC,CACT,CAAC,EAC8D,IAA0DgD,cAAA,GAAC,6BAA8B,CACtJ,eAAkB,GAClB,qCAAwC,GACxC,KAAQ,yDACR,IAAO/C,EACP,eAAkB,yGACnB,CAAA,EACoD,IAAgDgD,cAAA,GAAC,oBAAqB,CACzH,KAAQ,+CACR,IAAOhD,EACP,eAAkB,yGACnB,CAAA,EACD,MAAMiD,GAAmD,IAAuC5kM,cAAA,GAAC,aAAc,CAC7G,KAAQ,mDACR,IAAO2hM,CACT,CAAC,EACuE,IAAmEkD,cAAA,GAAC,sCAAuC,CACjL,KAAQ,kEACR,IAAOjD,EACP,eAAkB,qHACnB,CAAA,EACoE,IAAgEkD,cAAA,GAAC,mCAAoC,CACxK,KAAQ,+DACR,IAAOlD,EACP,eAAkB,qHACnB,CAAA,EACuE,IAAmEmD,cAAA,GAAC,sCAAuC,CACjL,KAAQ,kEACR,IAAOnD,EACP,eAAkB,qHACnB,CAAA,EACD,MAAMoD,EAA8D,IAAgDlB,cAAA,GAAC,qBAAsB,CACzI,MAAS,WACT,KAAQ,8DACR,IAAOlC,CACT,CAAC,EACuE,IAAmEqD,cAAA,GAAC,qCAAsC,CAChL,KAAQ,kEACR,IAAOpD,EACP,eAAkB,4GACnB,CAAA,EACoE,IAAgEqD,cAAA,GAAC,kCAAmC,CACvK,WAAc,CACd,6CACA,iCACD,EACC,KAAQ,+DACR,IAAOrD,EACP,eAAkB,4GACnB,CAAA,EACuE,IAAmEsD,cAAA,GAAC,qCAAsC,CAChL,WAAc,CACd,8CACD,EACC,KAAQ,kEACR,IAAOtD,EACP,eAAkB,4GACnB,CAAA,EACqE,IAAiEuD,cAAA,GAAC,mCAAoC,CAC1K,KAAQ,gEACR,IAAOvD,EACP,eAAkB,4GACnB,CAAA,EAC2E,IAAuEwD,cAAA,GAAC,wCAAyC,CAC3L,KAAQ,sEACR,IAAOxD,EACP,eAAkB,4GACnB,CAAA,EACqE,IAAiEyD,cAAA,GAAC,mCAAoC,CAC1K,KAAQ,gEACR,IAAOzD,EACP,eAAkB,4GACnB,CAAA,EAC4E,IAAwE0D,cAAA,GAAC,yCAA0C,CAC9L,KAAQ,uEACR,IAAO1D,EACP,eAAkB,4GACnB,CAAA,EACuE,IAAmE2D,cAAA,GAAC,qCAAsC,CAChL,mBAAsB,GACtB,KAAQ,kEACR,IAAO3D,EACP,eAAkB,4GACnB,CAAA,EAC6D,IAAyD4D,cAAA,GAAC,4BAA6B,CACnJ,KAAQ,wDACR,IAAO5D,EACP,eAAkB,4GACnB,CAAA,EACD,MAAM6D,EAA2D,IAAgD5B,cAAA,GAAC,qBAAsB,CACtI,eAAkB,GAClB,MAAS,WACT,KAAQ,2DACR,IAAOjC,CACT,CAAC,EACgD,IAA4C8D,cAAA,GAAC,gBAAiB,CAC7G,oBAAuB,CAAC,sBAAsB,EAAE,wBAAwB,GAAI,mBAAmB,IAAK,UAAU,IAAK,cAAc,EAAG,EACpI,iBAAoB,CAAC,sBAAsB,uCAAuC,wBAAwB,yCAAyC,mBAAmB,oCAAoC,UAAU,kCAAkC,cAAc,qCAAqC,EACzS,cAAiB,EACjB,KAAQ,2CACR,IAAO7D,EACP,eAAkB,2IACnB,CAAA,EACoD,IAAgD8D,cAAA,GAAC,oBAAqB,CACzH,oBAAuB,CAAC,sBAAsB,CAAC,EAC/C,iBAAoB,CAAC,sBAAsB,sCAAsC,EACjF,cAAiB,GACjB,KAAQ,+CACR,IAAO9D,EACP,eAAkB,2IACnB,CAAA,EACqD,IAAkD+D,cAAA,GAAC,qBAAsB,CAC7H,oBAAuB,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAC1E,iBAAoB,CAAC,kBAAkB,oCAAoC,gBAAgB,oCAAoC,WAAW,mCAAmC,EAC7K,cAAiB,GACjB,KAAQ,gDACR,IAAO/D,EACP,eAAkB,2IACnB,CAAA,EACoD,IAAgDgE,cAAA,GAAC,oBAAqB,CACzH,oBAAuB,CAAC,cAAc,EAAE,kBAAkB,EAAG,EAC7D,iBAAoB,CAAC,cAAc,sCAAsC,kBAAkB,6CAA6C,EACxI,cAAiB,GACjB,KAAQ,+CACR,IAAOhE,EACP,eAAkB,2IACnB,CAAA,EACD,MAAMiE,GAAiD,IAAuC/lM,cAAA,GAAC,aAAc,CAC3G,KAAQ,iDACR,IAAO8hM,CACT,CAAC,EACKkE,GAAqD,IAAgDlC,cAAA,GAAC,qBAAsB,CAChI,MAAS,aACT,KAAQ,qDACR,IAAOhC,CACT,CAAC,EACkD,IAA8CmE,cAAA,GAAC,kBAAmB,CACnH,gBAAmBlE,EACnB,oBAAuB,CAAC,wBAAwB,GAAI,YAAY,CAAC,EACjE,iBAAoB,CAAC,wBAAwB,oCAAoC,YAAY,mCAAmC,EAChI,cAAiB,GACjB,KAAQ,6CACR,IAAOD,EACP,eAAkB,2IACnB,CAAA,EAC4D,IAAwDoE,cAAA,GAAC,2BAA4B,CAChJ,KAAQ,uDACR,IAAOnE,EACP,eAAkB,wFACnB,CAAA,EACuD,IAAmDoE,cAAA,GAAC,sBAAuB,CACjI,KAAQ,kDACR,IAAOpE,EACP,eAAkB,wFACnB,CAAA,EACqE,IAAiEqE,cAAA,GAAC,mCAAoC,CAC1K,KAAQ,gEACR,IAAOpE,EACP,eAAkB,2GACnB,CAAA,EACD,MAAMqE,GAAmE,IAAuCrmM,cAAA,GAAC,aAAc,CAC7H,KAAQ,mEACR,IAAOgiM,CACT,CAAC,EAC2E,IAAuEsE,cAAA,GAAC,wCAAyC,CAC3L,KAAQ,sEACR,IAAOrE,EACP,eAAkB,6HACnB,CAAA,EACD,MAAMsE,GAAyE,IAAuCvmM,cAAA,GAAC,aAAc,CACnI,KAAQ,yEACR,IAAOiiM,CACT,CAAC,EACoD,IAAgDuE,cAAA,GAAC,oBAAqB,CACzH,oBAAuB,CAAC,sBAAsB,EAAE,wBAAwB,GAAI,mBAAmB,IAAK,UAAU,IAAK,cAAc,EAAG,EACpI,iBAAoB,CAAC,sBAAsB,uCAAuC,wBAAwB,yCAAyC,mBAAmB,oCAAoC,UAAU,kCAAkC,cAAc,qCAAqC,EACzS,KAAQ,+CACR,IAAOtE,EACP,eAAkB,uHACnB,CAAA,EACwD,IAAoDuE,cAAA,GAAC,wBAAyB,CACrI,0BAA6B,EAC7B,oBAAuB,CAAC,sBAAsB,CAAC,EAC/C,iBAAoB,CAAC,sBAAsB,sCAAsC,EACjF,cAAiB,GACjB,KAAQ,mDACR,IAAOvE,EACP,eAAkB,uHACnB,CAAA,EACwD,IAAoDwE,cAAA,GAAC,wBAAyB,CACrI,oBAAuB,CAAC,cAAc,EAAE,kBAAkB,EAAG,EAC7D,iBAAoB,CAAC,cAAc,sCAAsC,kBAAkB,6CAA6C,EACxI,cAAiB,GACjB,KAAQ,mDACR,IAAOxE,EACP,eAAkB,uHACnB,CAAA,EACD,MAAMyE,GAAyD,IAAuC3mM,cAAA,GAAC,aAAc,CACnH,KAAQ,yDACR,IAAOkiM,CACT,CAAC,EACK0E,GAAyD,IAAgD9C,cAAA,GAAC,qBAAsB,CACpI,MAAS,aACT,KAAQ,yDACR,IAAO5B,CACT,CAAC,EACK2E,GAA+D,IAAgD/C,cAAA,GAAC,qBAAsB,CAC1I,MAAS,mBACT,KAAQ,+DACR,IAAO5B,CACT,CAAC,EACK4E,GAA4D,IAAuC9mM,cAAA,GAAC,aAAc,CACtH,KAAQ,4DACR,IAAOmiM,CACT,CAAC,EACgE,IAA4D4E,cAAA,GAAC,8BAA+B,CAC3J,KAAQ,2DACR,IAAO3E,EACP,eAAkB,kFACnB,CAAA,EACD,MAAM4E,GAAuD,IAAuChnM,cAAA,GAAC,aAAc,CACjH,KAAQ,uDACR,IAAOoiM,CACT,CAAC,EACK6E,GAAkE,IAAuCjnM,cAAA,GAAC,aAAc,CAC5H,KAAQ,kEACR,IAAOqiM,CACT,CAAC,EACK6E,GAAmE,IAAuClnM,cAAA,GAAC,aAAc,CAC7H,KAAQ,mEACR,IAAOsiM,CACT,CAAC,EAC8E,IAAiE6E,cAAA,GAAC,oCAAqC,CACpL,KAAQ,yEACR,IAAO5E,EACP,eAAkB,iHACnB,CAAA,EAC8E,IAAiE6E,cAAA,GAAC,oCAAqC,CACpL,KAAQ,yEACR,IAAO7E,EACP,eAAkB,iHACnB,CAAA,EACiF,IAAoE8E,cAAA,GAAC,uCAAwC,CAC7L,KAAQ,4EACR,IAAO9E,EACP,eAAkB,iHACnB,CAAA,EAC+E,IAAkE+E,cAAA,GAAC,qCAAsC,CACvL,KAAQ,0EACR,IAAO/E,EACP,eAAkB,iHACnB,CAAA,EACmF,IAAsEgF,cAAA,GAAC,yCAA0C,CACnM,KAAQ,8EACR,IAAOhF,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8DiF,cAAA,GAAC,iCAAkC,CAC3K,KAAQ,sEACR,IAAOjF,EACP,eAAkB,iHACnB,CAAA,EACoF,IAAuEkF,cAAA,GAAC,yCAA0C,CACrM,KAAQ,+EACR,IAAOlF,EACP,eAAkB,iHACnB,CAAA,EACmF,IAAsEmF,cAAA,GAAC,wCAAyC,CAClM,KAAQ,8EACR,IAAOnF,EACP,eAAkB,iHACnB,CAAA,EACkF,IAAqEoF,cAAA,GAAC,uCAAwC,CAC/L,KAAQ,6EACR,IAAOpF,EACP,eAAkB,iHACnB,CAAA,EACsE,IAAyDqF,cAAA,GAAC,4BAA6B,CAC5J,KAAQ,iEACR,IAAOrF,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8DsF,cAAA,GAAC,iCAAkC,CAC3K,KAAQ,sEACR,IAAOtF,EACP,eAAkB,iHACnB,CAAA,EACuE,IAA0DuF,cAAA,GAAC,6BAA8B,CAC/J,KAAQ,kEACR,IAAOvF,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8DwF,cAAA,GAAC,iCAAkC,CAC3K,KAAQ,sEACR,IAAOxF,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8DyF,cAAA,GAAC,iCAAkC,CAC3K,KAAQ,sEACR,IAAOzF,EACP,eAAkB,iHACnB,CAAA,EACsE,IAAyD0F,cAAA,GAAC,4BAA6B,CAC5J,KAAQ,iEACR,IAAO1F,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8D2F,cAAA,GAAC,iCAAkC,CAC3K,KAAQ,sEACR,IAAO3F,EACP,eAAkB,iHACnB,CAAA,EACiF,IAAoE4F,cAAA,GAAC,qCAAsC,CAC3L,KAAQ,4EACR,IAAO5F,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8D6F,cAAA,GAAC,iCAAkC,CAC3K,KAAQ,sEACR,IAAO7F,EACP,eAAkB,iHACnB,CAAA,EACwE,IAA2D8F,cAAA,GAAC,8BAA+B,CAClK,KAAQ,mEACR,IAAO9F,EACP,eAAkB,iHACnB,CAAA,EACwE,IAA2D+F,cAAA,GAAC,8BAA+B,CAClK,KAAQ,mEACR,IAAO/F,EACP,eAAkB,iHACnB,CAAA,EACsE,IAAyDgG,cAAA,GAAC,4BAA6B,CAC5J,KAAQ,iEACR,IAAOhG,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8DiG,cAAA,GAAC,gCAAiC,CAC1K,KAAQ,sEACR,IAAOjG,EACP,eAAkB,iHACnB,CAAA,EACyE,IAA4DkG,cAAA,GAAC,8BAA+B,CACpK,KAAQ,oEACR,IAAOlG,EACP,eAAkB,iHACnB,CAAA,EAC6E,IAAgEmG,cAAA,GAAC,kCAAmC,CAChL,KAAQ,wEACR,IAAOnG,EACP,eAAkB,iHACnB,CAAA,EAC6E,IAAgEoG,cAAA,GAAC,kCAAmC,CAChL,KAAQ,wEACR,IAAOpG,EACP,eAAkB,iHACnB,CAAA,EAC4E,IAA+DqG,cAAA,GAAC,iCAAkC,CAC7K,KAAQ,uEACR,IAAOrG,EACP,eAAkB,iHACnB,CAAA,EACuE,IAA0DsG,cAAA,GAAC,6BAA8B,CAC/J,KAAQ,kEACR,IAAOtG,EACP,eAAkB,iHACnB,CAAA,EAC8E,IAAiEuG,cAAA,GAAC,oCAAqC,CACpL,KAAQ,yEACR,IAAOvG,EACP,eAAkB,iHACnB,CAAA,EACwE,IAA2DwG,cAAA,GAAC,8BAA+B,CAClK,KAAQ,mEACR,IAAOxG,EACP,eAAkB,iHACnB,CAAA,EACsE,IAAyDyG,cAAA,GAAC,4BAA6B,CAC5J,KAAQ,iEACR,IAAOzG,EACP,eAAkB,iHACnB,CAAA,EAC0E,IAA6D0G,cAAA,GAAC,gCAAiC,CACxK,KAAQ,qEACR,IAAO1G,EACP,eAAkB,iHACnB,CAAA,EACwE,IAA2D2G,cAAA,GAAC,8BAA+B,CAClK,KAAQ,mEACR,IAAO3G,EACP,eAAkB,iHACnB,CAAA,EACiF,IAAoE4G,cAAA,GAAC,uCAAwC,CAC7L,KAAQ,4EACR,IAAO5G,EACP,eAAkB,iHACnB,CAAA,EACsE,IAAyD6G,cAAA,GAAC,4BAA6B,CAC5J,KAAQ,iEACR,IAAO7G,EACP,eAAkB,iHACnB,CAAA,EACsE,IAAyD8G,cAAA,GAAC,4BAA6B,CAC5J,KAAQ,iEACR,IAAO9G,EACP,eAAkB,iHACnB,CAAA,EACyE,IAA4D+G,cAAA,GAAC,+BAAgC,CACrK,KAAQ,oEACR,IAAO/G,EACP,eAAkB,iHACnB,CAAA,EAC4E,IAA+DgH,cAAA,GAAC,kCAAmC,CAC9K,KAAQ,uEACR,IAAOhH,EACP,eAAkB,iHACnB,CAAA,EACuE,IAA0DiH,cAAA,GAAC,6BAA8B,CAC/J,KAAQ,kEACR,IAAOjH,EACP,eAAkB,iHACnB,CAAA,EACwE,IAA2DkH,cAAA,GAAC,8BAA+B,CAClK,KAAQ,mEACR,IAAOlH,EACP,eAAkB,iHACnB,CAAA,EAC0E,IAA6DmH,cAAA,GAAC,gCAAiC,CACxK,KAAQ,qEACR,IAAOnH,EACP,eAAkB,iHACnB,CAAA,EACwE,IAA2DoH,cAAA,GAAC,8BAA+B,CAClK,KAAQ,mEACR,IAAOpH,EACP,eAAkB,iHACnB,CAAA,EAC0E,IAA6DqH,cAAA,GAAC,gCAAiC,CACxK,KAAQ,qEACR,IAAOrH,EACP,eAAkB,iHACnB,CAAA,EACuE,IAA0DsH,cAAA,GAAC,6BAA8B,CAC/J,KAAQ,kEACR,IAAOtH,EACP,eAAkB,iHACnB,CAAA,EACyE,IAA4DuH,cAAA,GAAC,+BAAgC,CACrK,KAAQ,oEACR,IAAOvH,EACP,eAAkB,iHACnB,CAAA,EACyE,IAA4DwH,cAAA,GAAC,+BAAgC,CACrK,KAAQ,oEACR,IAAOxH,EACP,eAAkB,iHACnB,CAAA,EACyE,IAA4DyH,cAAA,GAAC,+BAAgC,CACrK,KAAQ,oEACR,IAAOzH,EACP,eAAkB,iHACnB,CAAA,EAC4E,IAA+D0H,cAAA,GAAC,iCAAkC,CAC7K,KAAQ,uEACR,IAAO1H,EACP,eAAkB,iHACnB,CAAA,EAC6E,IAAgE2H,cAAA,GAAC,kCAAmC,CAChL,KAAQ,wEACR,IAAO3H,EACP,eAAkB,iHACnB,CAAA,EACyE,IAA4D4H,cAAA,GAAC,8BAA+B,CACpK,KAAQ,oEACR,IAAO5H,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8D6H,cAAA,GAAC,gCAAiC,CAC1K,KAAQ,sEACR,IAAO7H,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8D8H,cAAA,GAAC,gCAAiC,CAC1K,KAAQ,sEACR,IAAO9H,EACP,eAAkB,iHACnB,CAAA,EAC0E,IAA6D+H,cAAA,GAAC,+BAAgC,CACvK,KAAQ,qEACR,IAAO/H,EACP,eAAkB,iHACnB,CAAA,EAC6E,IAAgEgI,cAAA,GAAC,kCAAmC,CAChL,KAAQ,wEACR,IAAOhI,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8DiI,cAAA,GAAC,gCAAiC,CAC1K,KAAQ,sEACR,IAAOjI,EACP,eAAkB,iHACnB,CAAA,EACsE,IAAyDkI,cAAA,GAAC,4BAA6B,CAC5J,KAAQ,iEACR,IAAOlI,EACP,eAAkB,iHACnB,CAAA,EAC0E,IAA6DmI,cAAA,GAAC,+BAAgC,CACvK,KAAQ,qEACR,IAAOnI,EACP,eAAkB,iHACnB,CAAA,EAC0E,IAA6DoI,cAAA,GAAC,gCAAiC,CACxK,KAAQ,qEACR,IAAOpI,EACP,eAAkB,iHACnB,CAAA,EAC8E,IAAiEqI,cAAA,GAAC,oCAAqC,CACpL,KAAQ,yEACR,IAAOrI,EACP,eAAkB,iHACnB,CAAA,EAC2E,IAA8DsI,cAAA,GAAC,iCAAkC,CAC3K,KAAQ,sEACR,IAAOtI,EACP,eAAkB,iHACnB,CAAA,EACyE,IAA4DuI,cAAA,GAAC,+BAAgC,CACrK,KAAQ,oEACR,IAAOvI,EACP,eAAkB,iHACnB,CAAA,EACqE,IAAwDwI,cAAA,GAAC,2BAA4B,CACzJ,KAAQ,gEACR,IAAOxI,EACP,eAAkB,iHACnB,CAAA,EACwE,IAA2DyI,cAAA,GAAC,8BAA+B,CAClK,KAAQ,mEACR,IAAOzI,EACP,eAAkB,iHACnB,CAAA,EAC8E,IAAiE0I,cAAA,GAAC,mCAAoC,CACnL,KAAQ,yEACR,IAAO1I,EACP,eAAkB,iHACnB,CAAA,EAC6E,IAAgE2I,cAAA,GAAC,kCAAmC,CAChL,KAAQ,wEACR,IAAO3I,EACP,eAAkB,iHACnB,CAAA,EACuE,IAA0D4I,cAAA,GAAC,6BAA8B,CAC/J,KAAQ,kEACR,IAAO5I,EACP,eAAkB,iHACnB,CAAA,EACiF,IAAoE6I,cAAA,GAAC,qCAAsC,CAC3L,KAAQ,4EACR,IAAO7I,EACP,eAAkB,iHACnB,CAAA,EAC8E,IAAiE8I,cAAA,GAAC,kCAAmC,CAClL,KAAQ,yEACR,IAAO9I,EACP,eAAkB,iHACnB,CAAA,EACkF,IAAqE+I,cAAA,GAAC,sCAAuC,CAC9L,KAAQ,6EACR,IAAO/I,EACP,eAAkB,iHACnB,CAAA,EAC2F,IAA8EgJ,cAAA,GAAC,6CAA8C,CACvN,KAAQ,sFACR,IAAOhJ,EACP,eAAkB,iHACnB,CAAA,EACiF,IAAoEiJ,cAAA,GAAC,qCAAsC,CAC3L,KAAQ,4EACR,IAAOjJ,EACP,eAAkB,iHACnB,CAAA,EACgF,IAAmEkJ,cAAA,GAAC,oCAAqC,CACxL,KAAQ,2EACR,IAAOlJ,EACP,eAAkB,iHACnB,CAAA,EACkF,IAAqEmJ,cAAA,GAAC,sCAAuC,CAC9L,KAAQ,6EACR,IAAOnJ,EACP,eAAkB,iHACnB,CAAA,EAC+E,IAAkEoJ,cAAA,GAAC,mCAAoC,CACrL,KAAQ,0EACR,IAAOpJ,EACP,eAAkB,iHACnB,CAAA,EACiF,IAAoEqJ,cAAA,GAAC,qCAAsC,CAC3L,KAAQ,4EACR,IAAOrJ,EACP,eAAkB,iHACnB,CAAA,EACgF,IAAmEsJ,cAAA,GAAC,oCAAqC,CACxL,KAAQ,2EACR,IAAOtJ,EACP,eAAkB,iHACnB,CAAA,EAC8E,IAAiEuJ,cAAA,GAAC,kCAAmC,CAClL,KAAQ,yEACR,IAAOvJ,EACP,eAAkB,iHACnB,CAAA,EAC6F,IAAgFwJ,cAAA,GAAC,+CAAgD,CAC7N,KAAQ,wFACR,IAAOxJ,EACP,eAAkB,iHACnB,CAAA,EACuE,IAA0DyJ,cAAA,GAAC,6BAA8B,CAC/J,KAAQ,kEACR,IAAOzJ,EACP,eAAkB,iHACnB,CAAA,EACD,MAAM0J,GAAuD,IAAuCjsM,cAAA,GAAC,aAAc,CACjH,KAAQ,uDACR,IAAOuiM,CACT,CAAC,EACK2J,GAAyC,IAA0CC,cAAA,GAAC,eAAgB,CACxG,aAAgB,CAAC,UAAY,GAAK,WAAa,CAAC,EAChD,KAAQ,yCACR,IAAO3J,EACP,eAAkB,wFACpB,CAAC,EACK4J,GAAkD,IAAyCnI,cAAA,GAAC,eAAgB,CAChH,MAAS,OACT,KAAQ,MACR,eAAkB,GAClB,KAAQ,kDACR,IAAOzB,CACT,CAAC,EACK6J,GAA2C,IAAyCpI,cAAA,GAAC,eAAgB,CACzG,MAAS,OACT,KAAQ,MACR,eAAkB,GAClB,KAAQ,2CACR,IAAOxB,CACT,CAAC,EAC0D,IAAsD6J,cAAA,GAAC,0BAA2B,CAC3I,KAAQ,qDACR,IAAO5J,EACP,eAAkB,kIACnB,CAAA,EACD,MAAM6J,GAAsD,IAAyCtI,cAAA,GAAC,eAAgB,CACpH,MAAS,eACT,KAAQ,MACR,eAAkB,GAClB,KAAQ,sDACR,IAAOvB,CACT,CAAC,EACK8J,GAAoD,IAAuCxsM,cAAA,GAAC,aAAc,CAC9G,KAAQ,oDACR,IAAO2iM,CACT,CAAC,EACK8J,GAA4D,IAAuCzsM,cAAA,GAAC,aAAc,CACtH,KAAQ,4DACR,IAAO4iM,CACT,CAAC,EACK8J,GAA+C,IAA0DC,cAAA,GAAC,8BAA+B,CAC7I,UAAa,GACb,aAAgB,EAChB,WAAc,EACd,SAAY,GACZ,KAAQ,+CACR,IAAO9J,CACT,CAAC,EACK+J,GAA8D,IAAuC5sM,cAAA,GAAC,aAAc,CACxH,KAAQ,8DACR,IAAO8iM,EACT,CAAC,EACK+J,GAAoP,IAA6CC,cAAA,GAAC,8BAA+B,CACrU,KAAQ,oPACR,IAAO/J,GACP,eAAkB,+FACpB,CAAC,EACKgK,GAAsD,IAAsCC,cAAA,GAAC,YAAa,CAC9G,KAAQ,sDACR,IAAOjK,EACT,CAAC,EACKkK,GAA+M,IAA6CH,cAAA,GAAC,8BAA+B,CAChS,KAAQ,+MACR,IAAO/J,GACP,eAAkB,+FACpB,CAAC,EACKmK,GAAgK,IAA6CJ,cAAA,GAAC,8BAA+B,CACjP,KAAQ,gKACR,IAAO/J,GACP,eAAkB,+FACpB,CAAC,EACKoK,GAA6K,IAA6CL,cAAA,GAAC,8BAA+B,CAC9P,KAAQ,6KACR,IAAO/J,GACP,eAAkB,+FACpB,CAAC,EACKqK,GAAgM,IAA6CN,cAAA,GAAC,8BAA+B,CACjR,KAAQ,gMACR,IAAO/J,GACP,eAAkB,+FACpB,CAAC,EACKsK,GAA0L,IAA6CP,cAAA,GAAC,8BAA+B,CAC3Q,KAAQ,0LACR,IAAO/J,GACP,eAAkB,+FACpB,CAAC,EACKuK,GAA6D,IAAgDxJ,cAAA,GAAC,qBAAsB,CACxI,MAAS,gBACT,KAAQ,6DACR,IAAOd,EACT,CAAC,EACqE,IAAiEuK,cAAA,GAAC,mCAAoC,CAC1K,wBAA2B9I,EAC3B,KAAQ,gEACR,IAAOhD,EACP,eAAkB,8EACnB,CAAA,EACyD,IAAqD+L,cAAA,GAAC,mBAAoB,CAClI,wBAA2B/I,EAC3B,KAAQ,oDACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EAC8D,IAA0D4K,cAAA,GAAC,uBAAwB,CAChJ,wBAA2BhJ,EAC3B,KAAQ,yDACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EACD,MAAM6K,GAAsD,IAAmDC,cAAA,GAAC,iBAAkB,CAChI,qBAAwBxK,GACxB,gBAAmB,GACnB,wBAA2BsB,EAC3B,KAAQ,sDACR,IAAO5B,EACP,eAAkB,oGACpB,CAAC,EACK+K,GAAwD,IAAmDD,cAAA,GAAC,iBAAkB,CAClI,qBAAwBxK,GACxB,gBAAmB,GACnB,wBAA2BsB,EAC3B,KAAQ,wDACR,IAAO5B,EACP,eAAkB,oGACpB,CAAC,EACKgL,GAA4D,IAA4DC,cAAA,GAAC,0BAA2B,CACxJ,qBAAwB3K,GACxB,wBAA2BsB,EAC3B,KAAQ,4DACR,IAAO5B,EACP,eAAkB,oGACpB,CAAC,EACKkL,GAAyD,IAAyDC,cAAA,GAAC,uBAAwB,CAC/I,wBAA2BvJ,EAC3B,KAAQ,yDACR,IAAO5B,EACP,eAAkB,oGACpB,CAAC,EAC0E,IAAsDoL,cAAA,GAAC,yBAA0B,CAC1J,gBAAmB,GACnB,SAAY,GACZ,wBAA2BxJ,EAC3B,KAAQ,qEACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EACuE,IAAsDoL,cAAA,GAAC,yBAA0B,CACvJ,gBAAmB,GACnB,SAAY,GACZ,wBAA2BxJ,EAC3B,KAAQ,kEACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EAC4E,IAAsDoL,cAAA,GAAC,yBAA0B,CAC5J,gBAAmB,GACnB,SAAY,GACZ,wBAA2BxJ,EAC3B,KAAQ,uEACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EACyE,IAAsDoL,cAAA,GAAC,yBAA0B,CACzJ,gBAAmB,GACnB,SAAY,GACZ,wBAA2BxJ,EAC3B,KAAQ,oEACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EACiE,IAA4DqL,cAAA,GAAC,+BAAgC,CAC7J,wBAA2BzJ,EAC3B,KAAQ,4DACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EAC2D,IAAmDsL,cAAA,GAAC,sBAAuB,CACrI,gBAAmB,GACnB,wBAA2B1J,EAC3B,KAAQ,sDACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EAC6D,IAAmDsL,cAAA,GAAC,sBAAuB,CACvI,gBAAmB,GACnB,wBAA2B1J,EAC3B,KAAQ,wDACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EACyD,IAAqDuL,cAAA,GAAC,yBAA0B,CACxI,oBAAuBhK,GACvB,cAAiB2B,GACjB,wBAA2BC,GAC3B,cAAiB,CAAC,IAAM,YAAY,KAAO,YAAY,KAAO,mBAAmB,OAAS,sBAAsB,GAAK,UAAU,GAAK,sBAAsB,OAAS,sBAAsB,GAAK,wBAAwB,SAAW,wBAAwB,IAAM,sBAAsB,IAAM,sBAAsB,OAAS,sBAAsB,OAAS,cAAc,QAAU,kBAAkB,IAAM,cAAc,KAAO,kBAAkB,IAAM,gBAAgB,KAAO,gBAAgB,KAAO,mBAAmB,IAAM,cAAc,OAAS,cAAc,IAAM,wBAAwB,MAAQ,wBAAwB,IAAM,iBAAiB,EACvnB,KAAQ,oDACR,IAAOxE,EACP,eAAkB,iJACnB,CAAA,EACyD,IAAqD6M,cAAA,GAAC,wBAAyB,CACvI,2BAA8BrI,GAC9B,uBAA0BD,GAC1B,KAAQ,oDACR,IAAOhE,EACP,eAAkB,wFACnB,CAAA,EAC8D,IAA0DuM,cAAA,GAAC,6BAA8B,CACtJ,qBAAwB3H,GACxB,0BAA6BC,GAC7B,gCAAmCC,GACnC,KAAQ,yDACR,IAAOxF,EACP,eAAkB,wHACnB,CAAA,EAC4E,IAAwEkN,cAAA,GAAC,0CAA2C,CAC/L,mCAAsCrH,GACtC,KAAQ,uEACR,IAAO7E,EACP,eAAkB,4GACnB,CAAA,EACqE,IAAiEmM,cAAA,GAAC,oCAAqC,CAC3K,mCAAsCtH,GACtC,KAAQ,gEACR,IAAO7E,EACP,eAAkB,4GACnB,CAAA,EACsE,IAAkEoM,cAAA,GAAC,qCAAsC,CAC9K,mCAAsCvH,GACtC,KAAQ,iEACR,IAAO7E,EACP,eAAkB,4GACnB,CAAA,EAC8E,IAA0EqM,cAAA,GAAC,4CAA6C,CACrM,mCAAsCxH,GACtC,KAAQ,yEACR,IAAO7E,EACP,eAAkB,4GACnB,CAAA,EACuE,IAAmEsM,cAAA,GAAC,sCAAuC,CACjL,wBAA2B1C,GAC3B,mCAAsC/E,GACtC,KAAQ,kEACR,IAAO7E,EACP,eAAkB,4GACnB,CAAA,EACmE,IAA+DuM,cAAA,GAAC,kCAAmC,CACrK,wBAA2B3C,GAC3B,mCAAsC/E,GACtC,KAAQ,8DACR,IAAO7E,EACP,eAAkB,4GACnB,CAAA,EAC2E,IAA8DwM,cAAA,GAAC,iCAAkC,CAC3K,wBAA2B5C,GAC3B,KAAQ,sEACR,IAAO1J,EACP,eAAkB,iHACnB,CAAA,EAC+E,IAAkEuM,cAAA,GAAC,oCAAqC,CACtL,wBAA2B7C,GAC3B,KAAQ,0EACR,IAAO1J,EACP,eAAkB,iHACnB,CAAA,EACqF,IAAwEwM,cAAA,GAAC,yCAA0C,CACvM,wBAA2B9C,GAC3B,KAAQ,gFACR,IAAO1J,EACP,eAAkB,iHACnB,CAAA,EAC+E,IAAkEyM,cAAA,GAAC,oCAAqC,CACtL,wBAA2B/C,GAC3B,KAAQ,0EACR,IAAO1J,EACP,eAAkB,iHACnB,CAAA,EAC6E,IAAgE0M,cAAA,GAAC,mCAAoC,CACjL,wBAA2BhD,GAC3B,KAAQ,wEACR,IAAO1J,EACP,eAAkB,iHACnB,CAAA,EACoF,IAAuE2M,cAAA,GAAC,wCAAyC,CACpM,wBAA2BjD,GAC3B,KAAQ,+EACR,IAAO1J,EACP,eAAkB,iHACnB,CAAA,EAC8E,IAAiE4M,cAAA,GAAC,mCAAoC,CACnL,wBAA2BlD,GAC3B,KAAQ,yEACR,IAAO1J,EACP,eAAkB,iHACnB,CAAA,EACgD,IAA4C6M,cAAA,GAAC,iBAAkB,CAC9G,aAAgBhD,GAChB,KAAQ,2CACR,IAAO3J,EACP,eAAkB,wFACnB,CAAA,EACoD,IAAgD4M,cAAA,GAAC,oBAAqB,CACzH,aAAgBhD,GAChB,oBAAuB,CAAC,mBAAmB,IAAK,sBAAsB,CAAC,EACvE,iBAAoB,CAAC,mBAAmB,uCAAuC,sBAAsB,sCAAsC,EAC3I,cAAiB,GACjB,KAAQ,+CACR,IAAOvK,EACP,eAAkB,2IACnB,CAAA,EAC6E,IAAyEwN,cAAA,GAAC,0CAA2C,CACjM,aAAgBjD,GAChB,KAAQ,wEACR,IAAOlK,EACP,eAAkB,+GACnB,CAAA,EACiE,IAA6DoN,cAAA,GAAC,+BAAgC,CAC9J,aAAgBlD,GAChB,+BAAkCzF,GAClC,qBAAwBD,GACxB,KAAQ,4DACR,IAAOxE,EACP,eAAkB,+GACnB,CAAA,EACgE,IAA4DqN,cAAA,GAAC,+BAAgC,CAC5J,aAAgBnD,GAChB,qBAAwB,GACxB,qBAAwB,GACxB,KAAQ,2DACR,IAAOlK,EACP,eAAkB,+GACnB,CAAA,EACuD,IAAmDsN,cAAA,GAAC,uBAAwB,CAClI,uBAA0BlD,GAC1B,KAAQ,kDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACuD,IAAwDgN,cAAA,GAAC,2BAA4B,CAC3I,uBAA0BnD,GAC1B,KAAQ,kDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC6D,IAAyDiN,cAAA,GAAC,6BAA8B,CACpJ,uBAA0BpD,GAC1B,KAAQ,wDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC4D,IAAiEkN,cAAA,GAAC,oCAAqC,CAClK,uBAA0BrD,GAC1B,KAAQ,uDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC0D,IAAsDmN,cAAA,GAAC,0BAA2B,CAC3I,mCAAsC3I,GACtC,uBAA0BqF,GAC1B,KAAQ,qDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC0D,IAAsDoN,cAAA,GAAC,0BAA2B,CAC3I,mCAAsC5I,GACtC,uBAA0BqF,GAC1B,KAAQ,qDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACwD,IAAyDqN,cAAA,GAAC,4BAA6B,CAC9I,uBAA0BxD,GAC1B,KAAQ,mDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC2D,IAAuDsN,cAAA,GAAC,2BAA4B,CAC9I,uBAA0BzD,GAC1B,KAAQ,sDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC2D,IAA4DuN,cAAA,GAAC,+BAAgC,CACvJ,qBAAwB9M,GACxB,UAAa,IACb,uBAA0BoJ,GAC1B,KAAQ,sDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACyD,IAAqDwN,cAAA,GAAC,yBAA0B,CACxI,uBAA0B3D,GAC1B,KAAQ,oDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACyD,IAAqDyN,aAAA,GAAC,yBAA0B,CACxI,8BAAiCnL,EACjC,uBAA0BuH,GAC1B,KAAQ,oDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC4D,IAAwD0N,aAAA,GAAC,2BAA4B,CAChJ,8BAAiCpL,EACjC,uBAA0BuH,GAC1B,KAAQ,uDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC4D,IAAwD2N,aAAA,GAAC,2BAA4B,CAChJ,uBAA0B9D,GAC1B,KAAQ,uDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC6D,IAAyD4N,aAAA,GAAC,4BAA6B,CACnJ,uBAA0B/D,GAC1B,KAAQ,wDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC4D,IAAwD6N,aAAA,GAAC,2BAA4B,CAChJ,uBAA0BhE,GAC1B,KAAQ,uDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACgE,IAA4D8N,aAAA,GAAC,yBAA0B,CACtJ,oBAAuBxJ,GACvB,uBAA0BuF,GAC1B,KAAQ,2DACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACoE,IAAsE+N,aAAA,GAAC,yCAA0C,CACpL,uBAA0BlE,GAC1B,KAAQ,+DACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACiE,IAA6DgO,aAAA,GAAC,0BAA2B,CACzJ,oBAAuB1J,GACvB,uBAA0BuF,GAC1B,KAAQ,4DACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC+D,IAA2DiO,aAAA,GAAC,wBAAyB,CACnJ,oBAAuB3J,GACvB,uBAA0BuF,GAC1B,KAAQ,0DACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC+D,IAA2DkO,aAAA,GAAC,wBAAyB,CACnJ,oBAAuB5J,GACvB,4BAA+ByF,GAC/B,uBAA0BF,GAC1B,KAAQ,0DACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACwD,IAAoDmO,aAAA,GAAC,wBAAyB,CACrI,aAAgBnE,GAChB,uBAA0BH,GAC1B,KAAQ,mDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC4D,IAAwDoO,aAAA,GAAC,4BAA6B,CACjJ,aAAgBpE,GAChB,mCAAsCxF,GACtC,uBAA0BqF,GAC1B,KAAQ,uDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACyD,IAAqDqO,aAAA,GAAC,yBAA0B,CACxI,aAAgBrE,GAChB,uBAA0BH,GAC1B,KAAQ,oDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC4D,IAAwDsO,aAAA,GAAC,2BAA4B,CAChJ,aAAgBtE,GAChB,uBAA0BH,GAC1B,KAAQ,uDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACD,MAAMuO,GAA4D,IAA6DC,aAAA,GAAC,0BAA2B,CACzJ,wBAA2B3M,EAC3B,aAAgBmI,GAChB,wBAA2BjI,EAC3B,KAAQ,4DACR,IAAO5B,EACP,eAAkB,oGACpB,CAAC,EACmE,IAA+DsO,aAAA,GAAC,kCAAmC,CACrK,8BAAiCvE,GACjC,mCAAsC1F,GACtC,KAAQ,8DACR,IAAO7E,EACP,eAAkB,4GACnB,CAAA,EACmE,IAA+D+O,aAAA,GAAC,kCAAmC,CACrK,8BAAiCxE,GACjC,mCAAsC1F,GACtC,KAAQ,8DACR,IAAO7E,EACP,eAAkB,4GACnB,CAAA,EAC2D,IAAuDgP,aAAA,GAAC,2BAA4B,CAC9I,mCAAsCnK,GACtC,8BAAiC0F,GACjC,uBAA0BL,GAC1B,KAAQ,sDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACD,MAAM4O,GAAuE,IAAwEC,aAAA,GAAC,0CAA2C,CAC/L,mBAAsB,GACtB,cAAiB,GACjB,iBAAoB,GACpB,iBAAoB,GACpB,kBAAqB,GACrB,yBAA4B,GAC5B,KAAQ,uEACR,IAAOpQ,EACP,eAAkB,iFAClB,aAAgB,CAChBiC,EACF,CACA,CAAC,EACoD,IAAgDoO,aAAA,GAAC,qBAAsB,CAC1H,aAAgBnF,GAChB,sBAAyB,KACzB,6BAAgC,IAChC,KAAQ,+CACR,IAAO9K,EACP,eAAkB,wFAClB,aAAgB,CAChB2C,EACF,CACC,CAAA,EACD,MAAMuN,GAAyC,IAA0CC,aAAA,GAAC,eAAgB,CACxG,aAAgBrF,GAChB,KAAQ,yCACR,IAAO7J,EACP,eAAkB,yFAClB,aAAgB,CAChB0J,EACF,CACA,CAAC,EAC4E,IAAwEyF,aAAA,GAAC,0CAA2C,CAC/L,UAAa,IACb,gBAAmB9E,GACnB,4BAA+BJ,GAC/B,0BAA6BvJ,GAC7B,KAAQ,uEACR,IAAOlC,EACP,eAAkB,+BAClB,aAAgB,CAChBiC,EACF,CACC,CAAA,EACD,MAAM2O,GAAyC,IAA0CC,sBAAA,GAAC,eAAgB,CACxG,qBAAwBrF,GACxB,6BAAgC5I,GAChC,8CAAiDC,GACjD,oDAAuDE,GACvD,uBAA0BgJ,GAC1B,wBAA2B,SAC3B,eAAkB,GAClB,KAAQ,yCACR,IAAOhM,EACP,eAAkB,yEACpB,CAAC,EAC+D,IAA2D+Q,aAAA,GAAC,8BAA+B,CACzJ,UAAa,IACb,gBAAmB7E,GACnB,uBAA0B5I,GAC1B,iBAAoBO,GACpB,wBAA2Bc,EAC3B,4BAA+BoB,GAC/B,KAAQ,0DACR,IAAO1E,EACP,eAAkB,kFACnB,CAAA,EACD,MAAM2P,GAA0N,IAAkEC,aAAA,GAAC,mBAAoB,CACrT,gBAAmB5E,GACnB,eAAkB,CAClB,wCACD,EACC,KAAQ,0NACR,IAAO5K,CACT,CAAC,EACKyP,GAA0M,IAA4DC,aAAA,GAAC,mBAAoB,CAC/R,gBAAmB7E,GACnB,eAAkB,CAClB,wCACD,EACC,KAAQ,0MACR,IAAO7K,CACT,CAAC,EACwE,IAAoE2P,aAAA,GAAC,sCAAuC,CACnL,iBAAoBvN,GACpB,wBAA2Bc,EAC3B,uBAA0BrB,GAC1B,6BAAgCiJ,GAChC,WAAc,qDACd,aAAgB,uDAChB,UAAa,oDACb,SAAY,wDACZ,KAAQ,mEACR,IAAOhM,EACP,eAAkB,kHACnB,CAAA,EAC2E,IAAuE8Q,aAAA,GAAC,yCAA0C,CAC5L,aAAgB/F,GAChB,6BAAgCiB,GAChC,eAAkB,GAClB,aAAgB,GAChB,UAAa,KACb,gBAAmB,GACnB,WAAc,SACd,aAAgB,IAChB,wBAA2B,GAC3B,gCAAmC,GACnC,KAAQ,sEACR,IAAOhM,EACP,eAAkB,kHACnB,CAAA,EACyE,IAAqE+Q,aAAA,GAAC,uCAAwC,CACtL,6BAAgC/E,GAChC,KAAQ,oEACR,IAAOhM,EACP,eAAkB,kHACnB,CAAA,EACwE,IAAoEgR,aAAA,GAAC,uCAAwC,CACpL,uBAA0B/F,GAC1B,wBAA2BN,GAC3B,6BAAgCqB,GAChC,KAAQ,mEACR,IAAOhL,EACP,eAAkB,yCACnB,CAAA,EACyD,IAAqDiQ,aAAA,GAAC,yBAA0B,CACxI,6BAAgCjF,GAChC,kCAAqCrG,GACrC,uBAA0BsF,GAC1B,KAAQ,oDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACuD,IAAmD8P,aAAA,GAAC,uBAAwB,CAClI,6BAAgClF,GAChC,uBAA0Bf,GAC1B,KAAQ,kDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC2D,IAAuD+P,aAAA,GAAC,2BAA4B,CAC9I,oBAAuB,GACvB,6BAAgCnF,GAChC,4BAA+Bb,GAC/B,uBAA0BF,GAC1B,KAAQ,sDACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EAC0D,IAAsDgQ,aAAA,GAAC,0BAA2B,CAC3I,6BAAgCpF,GAChC,KAAQ,qDACR,IAAO5K,EACP,eAAkB,kIACnB,CAAA,EACoE,IAAgEiQ,aAAA,GAAC,iCAAkC,CACtK,6BAAgCrF,GAChC,uBAA0Bf,GAC1B,KAAQ,+DACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACqE,IAAiEkQ,aAAA,GAAC,kCAAmC,CACzK,6BAAgCtF,GAChC,uBAA0Bf,GAC1B,KAAQ,gEACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACoE,IAAgEmQ,aAAA,GAAC,iCAAkC,CACtK,6BAAgCvF,GAChC,uBAA0Bf,GAC1B,KAAQ,+DACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACwE,IAAmEoQ,aAAA,GAAC,sCAAuC,CAClL,oBAAuB9L,GACvB,6BAAgCsG,GAChC,uBAA0Bf,GAC1B,KAAQ,mEACR,IAAO7J,EACP,eAAkB,kIACnB,CAAA,EACD,MAAMqQ,GAAuD,IAAwDC,aAAA,GAAC,4BAA6B,CACjJ,0BAA6B9P,GAC7B,mBAAsBI,GACtB,+BAAkCD,GAClC,uBAA0BkJ,GAC1B,6BAAgCe,GAChC,KAAQ,uDACR,IAAO3K,EACP,eAAkB,mGACpB,CAAC,EACKsQ,GAA+D,IAAgEC,aAAA,GAAC,mCAAoC,CACxK,UAAa,IACb,aAAgB,GAChB,wBAA2B,GAC3B,uBAA0B7O,GAC1B,iBAAoBO,GACpB,wBAA2Bc,EAC3B,2BAA8BV,EAC9B,sCAAyChB,GACzC,kCAAqCqC,GACrC,uCAA0CE,GAC1C,6BAAgC+G,GAChC,KAAQ,+DACR,IAAO1K,EACP,eAAkB,iIACpB,CAAC,EACuD,IAAmDuQ,aAAA,GAAC,iBAAkB,CAC5H,6BAAgC7F,GAChC,wBAA2B7I,EAC3B,KAAQ,kDACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EAC0D,IAAsDuQ,aAAA,GAAC,yBAA0B,CAC1I,UAAa,cACb,oBAAuB,KACvB,uBAA0B7G,GAC1B,6BAAgCe,GAChC,wBAA2B7I,EAC3B,KAAQ,qDACR,IAAO5B,EACP,eAAkB,oGACnB,CAAA,EACgF,IAA4EwQ,aAAA,GAAC,8CAA+C,CAC3M,uBAA0B9G,GAC1B,wBAA2BN,GAC3B,6BAAgCqB,GAChC,KAAQ,2EACR,IAAOxK,GACP,eAAkB,oCACnB,CAAA,EACD,MAAMwQ,GAAwD,IAAyDC,aAAA,GAAC,sBAAuB,CAC7I,UAAa,cACb,oBAAuB,KACvB,uBAA0B,GAC1B,wBAA2BhP,EAC3B,uBAA0BgI,GAC1B,6BAAgCe,GAChC,wBAA2B7I,EAC3B,KAAQ,wDACR,IAAO5B,EACP,eAAkB,qGAClB,aAAgB,CAChBoO,GACAvD,GACAE,GACAC,GACAE,EACF,CACA,CAAC,EACiF,IAA6EyF,aAAA,GAAC,wCAAyC,CACvM,oBAAuB,KACvB,UAAa,GACb,wBAA2BjP,EAC3B,aAAgBmI,GAChB,wBAA2BjI,EAC3B,KAAQ,4EACR,IAAO5B,EACP,eAAkB,qGAClB,aAAgB,CAChBoO,GACAvD,GACAE,GACAC,GACAE,EACF,CACC,CAAA,EACsE,IAAkEiE,aAAA,GAAC,oCAAqC,CAC7K,aAAgB,GAChB,aAAgBD,GAChB,oBAAuB,CAAC,kCAAkC,EAAG,EAC7D,iBAAoB,CAAC,kCAAkC,kDAAkD,EACzG,KAAQ,iEACR,IAAO1Q,EACP,eAAkB,wHACnB,CAAA,EACgE,IAA4D6Q,aAAA,GAAC,+BAAgC,CAC5J,aAAgBD,GAChB,oBAAuB,CAAC,MAAQ,EAAG,EACnC,iBAAoB,CAAC,MAAQ,yDAAyD,EACtF,KAAQ,2DACR,IAAO5Q,EACP,eAAkB,wHACnB,CAAA,EACiE,IAA6DoS,aAAA,GAAC,gCAAiC,CAC/J,eAAkBV,GAClB,KAAQ,4DACR,IAAOpQ,EACP,eAAkB,mGACnB,CAAA,EACgE,IAA4D+Q,aAAA,GAAC,+BAAgC,CAC5J,eAAkBX,GAClB,KAAQ,2DACR,IAAOpQ,EACP,eAAkB,mGACnB,CAAA,EACkE,IAA8DgR,aAAA,GAAC,iCAAkC,CAClK,eAAkBZ,GAClB,KAAQ,6DACR,IAAOpQ,EACP,eAAkB,mGACnB,CAAA,EACD,MAAMiR,GAAqF,IAAsFC,aAAA,GAAC,sDAAuD,CACvO,kBAAqB,GACrB,KAAQ,qFACR,IAAO1S,EACP,eAAkB,iFAClB,aAAgB,CAChBmQ,EACF,CACA,CAAC,EAC8C,IAA0CwC,aAAA,GAAC,eAAgB,CACxG,aAAgBzH,GAChB,gBAAmBa,GACnB,KAAQ,yCACR,IAAO1K,EACP,eAAkB,yFAClB,aAAgB,CAChBiP,EACF,CACC,CAAA,EACmD,IAA+CsC,aAAA,GAAC,mBAAoB,CACtH,aAAgB1H,GAChB,gBAAmBc,GACnB,qBAAwB,GACxB,kBAAqB,GACrB,eAAkB,GAClB,aAAgB,GAChB,KAAQ,8CACR,IAAO3K,EACP,eAAkB,yFAClB,aAAgB,CAChBiP,EACF,CACC,CAAA,EAC+D,IAA2DuC,aAAA,GAAC,8BAA+B,CACzJ,6BAAgC1G,GAChC,KAAQ,0DACR,IAAO1K,EACP,eAAkB,kIAClB,aAAgB,CAChBqQ,EACF,CACC,CAAA,EACoE,IAAgEgB,aAAA,GAAC,mCAAoC,CACxK,iBAAoBlO,GACpB,4BAA+B0G,GAC/B,KAAQ,+DACR,IAAO7J,EACP,eAAkB,kIAClB,aAAgB,CAChBqQ,EACF,CACC,CAAA,EACoE,IAAgEiB,aAAA,GAAC,4BAA6B,CACjK,oBAAuB,KACvB,UAAa,GACb,wBAA2B3P,EAC3B,wBAA2BE,EAC3B,KAAQ,+DACR,IAAO5B,EACP,eAAkB,qGAClB,aAAgB,CAChBoO,GACAqC,GACA5F,GACAE,GACAC,GACAE,EACF,CACC,CAAA,EACD,MAAMoG,GAAsE,IAAuEC,aAAA,GAAC,yCAA0C,CAC5L,KAAQ,sEACR,IAAOjT,EACP,eAAkB,iFAClB,aAAgB,CAChByS,EACF,CACA,CAAC,EACKS,GAAmE,IAAoEC,aAAA,GAAC,qCAAsC,CAClL,KAAQ,mEACR,IAAOnT,EACP,eAAkB,iFAClB,aAAgB,CAChBgT,EACF,CACA,CAAC,EACKI,GAAgE,IAAiEC,aAAA,GAAC,mCAAoC,CAC1K,KAAQ,gEACR,IAAOrT,EACP,eAAkB,iFAClB,aAAgB,CAChBkT,EACF,CACA,CAAC,EACKI,GAAiF,IAAkFC,aAAA,GAAC,mDAAoD,CAC5N,KAAQ,iFACR,IAAOvT,EACP,eAAkB,iFAClB,aAAgB,CAChBoT,EACF,CACA,CAAC,EAC2F,WAAuFI,WAAA,GAAC,uDAAwD,CAC1O,KAAQ,sFACR,IAAOxT,EACP,eAAkB,iFAClB,aAAgB,CAChBsT,EACF,CACC,CAAA,EA6OM7C,EACP,gJCvjEA,OAAO,eAAegD,YAAS,aAAc,CAAE,MAAO,GAAM,EACzCA,YAAA,YAAG,OACtB,MAAMC,EAA0D18M,sBAAA,EAE1D28M,EAA+C34M,qBAAA,EAIrD,IAAA44M,EAAA,cAA0BF,EAAmB,eAAgB,CACzD,YAAYG,EAASF,IAAiB,CAClC,MAAME,CAAM,CACpB,CACA,EACAJ,mBAAA,YAAsBK,gJCbtB,IAAIp5M,EAAmBC,gBAAQA,eAAK,kBAAqB,OAAO,OAAU,SAASlqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACxFA,IAAO,SAAWA,EAAKroC,GAC3B,IAAIsoC,EAAO,OAAO,yBAAyBzpC,EAAGmB,CAAC,GAC3C,CAACsoC,IAAS,QAASA,EAAO,CAACzpC,EAAE,WAAaypC,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOzpC,EAAEmB,CAAC,EAAM,GAE/D,OAAO,eAAe9B,EAAGmqC,EAAIC,CAAI,CACpC,EAAK,SAASpqC,EAAGW,EAAGmB,EAAGqoC,EAAI,CACpBA,IAAO,SAAWA,EAAKroC,GAC3B9B,EAAEmqC,CAAE,EAAIxpC,EAAEmB,CAAC,CACf,GACIuoC,EAAgBH,gBAAQA,eAAK,cAAiB,SAASvpC,EAAG2pC,EAAS,CACnE,QAAShqC,KAAKK,EAAOL,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKgqC,EAAShqC,CAAC,GAAG2pC,EAAgBK,EAAS3pC,EAAGL,CAAC,CAC3H,EACD,OAAO,eAAcgqC,EAAU,aAAc,CAAE,MAAO,GAAM,EAC5DD,EAAa9D,mBAAwB,EAAE+D,CAAO,iFCuCxB,eAAA,cAAc7d,EAAe2tL,EAAgB,CAUjE,OADa,MAPI,MAAM,MAAM,GAAGA,CAAQ,eAAe,mBAAmB3tL,CAAK,CAAC,GAAI,CAClF,OAAQ,YAAY,QAAQ,GAAI,EAChC,QAAS,CACP,OAAQ,iCAAA,CACT,CACF,GAE2B,QAChB,QAAQ,QACtB,CAEA,MAAM,aAAe,IAAI42N,oBAAAA,YAOH,eAAA,kBAAkB52N,EAAe2tL,EAAgB,CACjE,GAAA,CACF,IAAIkpC,EAAe,MAAM,cAAc72N,EAAO2tL,CAAQ,EACtD,GAAIkpC,EAAa,OAAS,EAAU,OAAAA,EASpCA,EAAe,GAGT,MAAAnqD,EAAkB,IAAI,gBACtB5sJ,EAAU,WAAW,IAAK,CAC9B4sJ,EAAgB,MAAM,sCAAsC,GAC3D,GAAI,EAEH,GAAA,CAEEihB,EAAS,WAAW,6BAA6B,IAEjDA,EAAA,gHAEJ,MAAMh/L,EAAS,MAAM,aAAa,MAAMqR,EAAO,CAC7C,QAAS,CAEP,CAAC,KAAM,OAAQ,MAAO2tL,CAAS,CAChC,EACD,OAAQjhB,EAAgB,MAAA,CACzB,EAGG,GAAA/9K,EAAO,aAAe,WAAY,CACpC,MAAMgqC,GAAa,MAAMhqC,EAAO,SAAY,GAAA,UAC5C,gBAAiByuC,KAAY,MAAMzuC,EAAO,QAAA,EAAW,CACnD,MAAMra,EAAS,CAAA,EACf,UAAW2sC,KAAY0X,EACjByE,EAAS,IAAInc,EAAS,KAAK,IAAG3sC,EAAE2sC,EAAS,KAAK,EAAImc,EAAS,IAAInc,EAAS,KAAK,GAEnF41M,EAAa,KAAKviP,CAAC,CAAA,CACrB,QAEKugB,EAAY,CACnB,QAAQ,IAAI,0CAA0C84L,CAAQ,GAAI94L,EAAM,SAAWA,CAAK,CAAA,SAExF,aAAairB,CAAO,CAAA,CAEf,OAAA+2M,QACAhiO,EAAY,CACnB,QAAQ,IAAI,kCAAkC84L,CAAQ,IAAK94L,EAAM,SAAWA,CAAK,CAAA,CAEnF,MAAO,EACT,CAEA,eAAsB,YAAY84L,EAAgB,CAEhD,MAAM9tL,EAAoC,CAAA,EACtC,GAAA,EACmB,MAAM,kBACzB;AAAA;AAAA;AAAA,wBAIA8tL,CAAQ,GAEG,QAAYr5M,GAAA,CACvBurB,EAASvrB,EAAE,OAAO,KAAK,EAAIA,EAAE,UAAU,KAAA,CACxC,QACMugB,EAAY,CACnB,QAAQ,IAAI,kCAAkC84L,CAAQ,IAAK94L,EAAM,SAAWA,CAAK,CAAA,CAE5E,OAAAgL,CACT,CAyBO,MAAM,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uEAyCzB,eAAsB,mBACpB8tL,EAAgB,CAEV,MAAAmpC,MAAa,IACbC,MAAc,IACdC,EAA4B,CAAA,EAC9B,GAAA,CACF,MAAMH,EAAe,MAAM,kBAAkB,UAAWlpC,CAAQ,EAChE,OAAAkpC,EAAa,QAAYviP,GAAA,CAChBwiP,EAAA,IAAIxiP,EAAE,aAAa,KAAK,EACvByiP,EAAA,IAAIziP,EAAE,KAAK,KAAK,EAClBA,EAAE,aAAa,SAAS0iP,IAAkBA,EAAgB1iP,EAAE,aAAa,KAAK,EAAI,CAAA,GAClFA,EAAE,KAAK,SAAS0iP,EAAgB1iP,EAAE,aAAa,KAAK,IACxC0iP,EAAA1iP,EAAE,aAAa,KAAK,EAAEA,EAAE,KAAK,KAAK,EAAI,IACpD,gBAAiBA,IACH0iP,EAAA1iP,EAAE,aAAa,KAAK,EAAEA,EAAE,KAAK,KAAK,EAAE,KAAKA,EAAE,YAAY,KAAK,EACrEwiP,EAAA,IAAIxiP,EAAE,YAAY,KAAK,GAE5B,mBAAoBA,GAAmB0iP,EAAA1iP,EAAE,aAAa,KAAK,EAAEA,EAAE,KAAK,KAAK,EAAE,KAAKA,EAAE,eAAe,KAAK,CAAA,CAC3G,EACM,CAAC0iP,EAAiBH,EAAc,MAAM,KAAKC,CAAM,EAAE,KAAM,EAAE,MAAM,KAAKC,CAAO,EAAE,MAAM,QACrFliO,EAAY,CACnB,QAAQ,IAAI,0CAA0C84L,CAAQ,qBAAsB94L,EAAM,SAAWA,CAAK,CAAA,CAE5G,MAAO,CAACmiO,EAAiB,CAAA,EAAI,MAAM,KAAKF,CAAM,EAAE,KAAA,EAAQ,MAAM,KAAKC,CAAO,EAAE,MAAM,CACpF,CAEA,MAAM,kBAAoB,6CAE1B,eAAsB,mBAAmBppC,EAAgB,CACnD,GAAA,CAEF,OADqB,MAAM,cAAc,6CAA8CA,CAAQ,GAC3E,OAAYr5M,GAAA,CAACA,EAAE,IAAI,MAAM,WAAW,iBAAiB,CAAC,EAAE,IAASA,GAAAA,EAAE,IAAI,KAAK,QACzFugB,EAAY,CACnB,QAAQ,IAAI,iCAAiC84L,CAAQ,qBAAsB94L,EAAM,SAAWA,CAAK,CAAA,CAEnG,MAAO,EACT,CAGA,eAAsB,sBAAsB84L,EAAgB,CACtD,GAAA,CAGF,OAFqB,MAAM,cAAc,gDAAiDA,CAAQ,GAE9E,OAAYr5M,GAAA,CAACA,EAAE,KAAK,MAAM,WAAW,iBAAiB,CAAC,EAAE,IAASA,GAAAA,EAAE,KAAK,KAAK,QAC3FugB,EAAY,CACnB,QAAQ,IAAI,oCAAoC84L,CAAQ,qBAAsB94L,EAAM,SAAWA,CAAK,CAAA,CAE/F,MAAA,CAAC,kDAAmD,4CAA4C,CACzG,CAEA,MAAM,2BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAUb,eAAA,kBACpB84L,EACAspC,EAA6B,2BAA0B,CAEvD,MAAMC,EAAiC,CAAA,EACnC,GAAA,EACmB,MAAM,kBAAkBD,EAAoBtpC,CAAQ,GAC5D,QAAQ,CAACr5M,EAAG8hB,IAAS,CAChC8gO,EAAe,KAAK,CAAC,QAAS5iP,EAAE,QAAQ,MAAO,MAAOA,EAAE,MAAM,MAAO,MAAO8hB,EAAQ,EAAG,IAAK9hB,EAAE,GAAG,MAAM,CAAA,CACxG,QACMugB,EAAY,CACnB,QAAQ,IAAI,qDAAqD84L,CAAQ,IAAK94L,EAAM,SAAWA,CAAK,CAAA,CAE/F,OAAAqiO,CACT,CAGO,MAAM,gBAAkB,CAC7B,IAAK,8CACL,KAAM,wCACN,IAAK,oCACL,IAAK,iCACL,KAAM,uCACN,KAAM,6BACN,GAAI,gCACJ,SAAU,oCACV,UAAW,mCACX,MAAO,oCACP,GAAI,kCACJ,KAAM,iCACN,GAAI,mCACJ,IAAK,4BACL,IAAK,kCACL,MAAO,0CACP,IAAK,uCACL,GAAI,oDCxTN,IAAI,GAAK,OAAO,eAAgB,GAAK,OAAO,iBACxC,GAAK,OAAO,0BACZ,GAAK,OAAO,sBACZ,GAAK,OAAO,UAAU,eAAgB,GAAK,OAAO,UAAU,qBAC5D,GAAK,CAAC9jP,EAAGE,EAAGH,IAAMG,KAAKF,EAAI,GAAGA,EAAGE,EAAG,CAAE,WAAY,GAAI,aAAc,GAAI,SAAU,GAAI,MAAOH,CAAG,CAAA,EAAIC,EAAEE,CAAC,EAAIH,EAAG,GAAK,CAACC,EAAGE,IAAM,CAC/H,QAASH,KAAKG,IAAMA,EAAI,CAAA,GACtB,GAAG,KAAKA,EAAGH,CAAC,GAAK,GAAGC,EAAGD,EAAGG,EAAEH,CAAC,CAAC,EAChC,GAAI,GACF,QAASA,KAAK,GAAGG,CAAC,EAChB,GAAG,KAAKA,EAAGH,CAAC,GAAK,GAAGC,EAAGD,EAAGG,EAAEH,CAAC,CAAC,EAClC,OAAOC,CACT,EAAG,GAAK,CAACA,EAAGE,IAAM,GAAGF,EAAG,GAAGE,CAAC,CAAC,EACzB,GAAK,CAACF,EAAGE,EAAGH,IAAM,IAAI,QAAQ,CAACD,EAAGG,IAAM,CAC1C,IAAIG,EAAKG,GAAM,CACb,GAAI,CACFF,EAAEN,EAAE,KAAKQ,CAAC,CAAC,CACZ,OAAQK,EAAG,CACVX,EAAEW,CAAC,CACT,CACA,EAAKT,EAAKI,GAAM,CACZ,GAAI,CACFF,EAAEN,EAAE,MAAMQ,CAAC,CAAC,CACb,OAAQK,EAAG,CACVX,EAAEW,CAAC,CACT,CACA,EAAKP,EAAKE,GAAMA,EAAE,KAAOT,EAAES,EAAE,KAAK,EAAI,QAAQ,QAAQA,EAAE,KAAK,EAAE,KAAKH,EAAGD,CAAC,EACtEE,GAAGN,EAAIA,EAAE,MAAMC,EAAGE,CAAC,GAAG,MAAM,CAC9B,CAAC,EACD,SAAS,GAAGF,EAAG,CACb,OAAOA,GAAKA,EAAE,YAAc,OAAO,UAAU,eAAe,KAAKA,EAAG,SAAS,EAAIA,EAAE,QAAUA,CAC/F,CACA,IAAI,GAAK,CAAE,QAAS,CAAE,CAAA,EAAI,GAC1B,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GAAG,QAClB,GAAK,EACL,IAAIA,EAAI,OAAO,SAAW,SAAW,QAAU,KAAME,EAAIF,GAAK,OAAOA,EAAE,OAAS,WAAaA,EAAE,MAAQ,SAASa,EAAGgB,EAAGR,EAAG,CACvH,OAAO,SAAS,UAAU,MAAM,KAAKR,EAAGgB,EAAGR,CAAC,CAChD,EAAKtB,EACHC,GAAK,OAAOA,EAAE,SAAW,WAAaD,EAAIC,EAAE,QAAU,OAAO,sBAAwBD,EAAI,SAASc,EAAG,CACnG,OAAO,OAAO,oBAAoBA,CAAC,EAAE,OAAO,OAAO,sBAAsBA,CAAC,CAAC,CAC/E,EAAMd,EAAI,SAASc,EAAG,CAClB,OAAO,OAAO,oBAAoBA,CAAC,CACpC,EACD,SAASf,EAAEa,EAAG,CACZ,SAAW,QAAQ,MAAQ,QAAQ,KAAKA,CAAC,CAC7C,CACE,IAAIV,EAAI,OAAO,OAAS,SAASY,EAAG,CAClC,OAAOA,IAAMA,CACd,EACD,SAAST,GAAI,CACXA,EAAE,KAAK,KAAK,IAAI,CACpB,CACE,GAAG,QAAUA,EAAG,GAAG,QAAQ,KAAOqB,EAAGrB,EAAE,aAAeA,EAAGA,EAAE,UAAU,QAAU,OAAQA,EAAE,UAAU,aAAe,EAAGA,EAAE,UAAU,cAAgB,OACjJ,IAAID,EAAI,GACR,SAASE,EAAEM,EAAG,CACZ,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,UAAU,mEAAqE,OAAOA,CAAC,CACvG,CACE,OAAO,eAAeP,EAAG,sBAAuB,CAC9C,WAAY,GACZ,IAAK,UAAW,CACd,OAAOD,CACR,EACD,IAAK,SAASQ,EAAG,CACf,GAAI,OAAOA,GAAK,UAAYA,EAAI,GAAKV,EAAEU,CAAC,EACtC,MAAM,IAAI,WAAW,kGAAoGA,EAAI,GAAG,EAClIR,EAAIQ,CACV,CACA,CAAG,EAAGP,EAAE,KAAO,UAAW,EACrB,KAAK,UAAY,QAAU,KAAK,UAAY,OAAO,eAAe,IAAI,EAAE,WAAa,KAAK,QAA0B,OAAO,OAAO,IAAI,EAAG,KAAK,aAAe,GAAI,KAAK,cAAgB,KAAK,eAAiB,MAC9M,EAAEA,EAAE,UAAU,gBAAkB,SAASS,EAAG,CAC3C,GAAI,OAAOA,GAAK,UAAYA,EAAI,GAAKZ,EAAEY,CAAC,EACtC,MAAM,IAAI,WAAW,gFAAkFA,EAAI,GAAG,EAChH,OAAO,KAAK,cAAgBA,EAAG,IAChC,EACD,SAASN,EAAEI,EAAG,CACZ,OAAOA,EAAE,gBAAkB,OAASP,EAAE,oBAAsBO,EAAE,aAClE,CACEP,EAAE,UAAU,gBAAkB,UAAW,CACvC,OAAOG,EAAE,IAAI,CACd,EAAEH,EAAE,UAAU,KAAO,SAASS,EAAG,CAChC,QAASgB,EAAI,CAAA,EAAIR,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAKQ,EAAE,KAAK,UAAUR,CAAC,CAAC,EACtE,IAAID,EAAIP,IAAM,QAASU,EAAI,KAAK,QAChC,GAAIA,IAAM,OACRH,EAAIA,GAAKG,EAAE,QAAU,eACd,CAACH,EACR,MAAO,GACT,GAAIA,EAAG,CACL,IAAIe,EACJ,GAAIN,EAAE,OAAS,IAAMM,EAAIN,EAAE,CAAC,GAAIM,aAAa,MAC3C,MAAMA,EACR,IAAIX,EAAI,IAAI,MAAM,oBAAsBW,EAAI,KAAOA,EAAE,QAAU,IAAM,GAAG,EACxE,MAAMX,EAAE,QAAUW,EAAGX,CAC3B,CACI,IAAIM,EAAIP,EAAEV,CAAC,EACX,GAAIiB,IAAM,OACR,MAAO,GACT,GAAI,OAAOA,GAAK,WACd5B,EAAE4B,EAAG,KAAMD,CAAC,MAEZ,SAASf,EAAIgB,EAAE,OAAQQ,EAAInB,EAAEW,EAAGhB,CAAC,EAAGO,EAAI,EAAGA,EAAIP,EAAG,EAAEO,EAClDnB,EAAEoC,EAAEjB,CAAC,EAAG,KAAMQ,CAAC,EACnB,MAAO,EACR,EACD,SAASjB,EAAED,EAAGE,EAAGgB,EAAGR,EAAG,CACrB,IAAID,EAAGG,EAAGY,EACV,GAAI9B,EAAEwB,CAAC,EAAGN,EAAIZ,EAAE,QAASY,IAAM,QAAUA,EAAIZ,EAAE,QAA0B,OAAO,OAAO,IAAI,EAAGA,EAAE,aAAe,IAAMY,EAAE,cAAgB,SAAWZ,EAAE,KAClJ,cACAE,EACAgB,EAAE,SAAWA,EAAE,SAAWA,CAChC,EAAON,EAAIZ,EAAE,SAAUwB,EAAIZ,EAAEV,CAAC,GAAIsB,IAAM,OAClCA,EAAIZ,EAAEV,CAAC,EAAIgB,EAAG,EAAElB,EAAE,qBACX,OAAOwB,GAAK,WAAaA,EAAIZ,EAAEV,CAAC,EAAIQ,EAAI,CAACQ,EAAGM,CAAC,EAAI,CAACA,EAAGN,CAAC,EAAIR,EAAIc,EAAE,QAAQN,CAAC,EAAIM,EAAE,KAAKN,CAAC,EAAGT,EAAIb,EAAEI,CAAC,EAAGS,EAAI,GAAKe,EAAE,OAASf,GAAK,CAACe,EAAE,OAAQ,CAC7IA,EAAE,OAAS,GACX,IAAIX,EAAI,IAAI,MAAM,+CAAiDW,EAAE,OAAS,IAAM,OAAOtB,CAAC,EAAI,mEAAmE,EACnKW,EAAE,KAAO,8BAA+BA,EAAE,QAAUb,EAAGa,EAAE,KAAOX,EAAGW,EAAE,MAAQW,EAAE,OAAQrC,EAAE0B,CAAC,CAChG,CACI,OAAOb,CACX,CACEP,EAAE,UAAU,YAAc,SAASS,EAAGgB,EAAG,CACvC,OAAOjB,EAAE,KAAMC,EAAGgB,EAAG,EAAE,CACxB,EAAEzB,EAAE,UAAU,GAAKA,EAAE,UAAU,YAAaA,EAAE,UAAU,gBAAkB,SAASS,EAAGgB,EAAG,CACxF,OAAOjB,EAAE,KAAMC,EAAGgB,EAAG,EAAE,CACxB,EACD,SAAS,GAAI,CACX,GAAI,CAAC,KAAK,MACR,OAAO,KAAK,OAAO,eAAe,KAAK,KAAM,KAAK,MAAM,EAAG,KAAK,MAAQ,GAAI,UAAU,SAAW,EAAI,KAAK,SAAS,KAAK,KAAK,MAAM,EAAI,KAAK,SAAS,MAAM,KAAK,OAAQ,SAAS,CACvL,CACE,SAASnB,EAAEC,EAAGE,EAAGgB,EAAG,CAClB,IAAIR,EAAI,CAAE,MAAO,GAAI,OAAQ,OAAQ,OAAQV,EAAG,KAAME,EAAG,SAAUgB,CAAG,EAAET,EAAI,EAAE,KAAKC,CAAC,EACpF,OAAOD,EAAE,SAAWS,EAAGR,EAAE,OAASD,EAAGA,CACzC,CACEhB,EAAE,UAAU,KAAO,SAASS,EAAGgB,EAAG,CAChC,OAAOxB,EAAEwB,CAAC,EAAG,KAAK,GAAGhB,EAAGH,EAAE,KAAMG,EAAGgB,CAAC,CAAC,EAAG,IACzC,EAAEzB,EAAE,UAAU,oBAAsB,SAASS,EAAGgB,EAAG,CAClD,OAAOxB,EAAEwB,CAAC,EAAG,KAAK,gBAAgBhB,EAAGH,EAAE,KAAMG,EAAGgB,CAAC,CAAC,EAAG,IACtD,EAAEzB,EAAE,UAAU,eAAiB,SAASS,EAAGgB,EAAG,CAC7C,IAAIR,EAAGD,EAAGG,EAAGY,EAAGX,EAChB,GAAInB,EAAEwB,CAAC,EAAGT,EAAI,KAAK,QAASA,IAAM,OAChC,OAAO,KACT,GAAIC,EAAID,EAAEP,CAAC,EAAGQ,IAAM,OAClB,OAAO,KACT,GAAIA,IAAMQ,GAAKR,EAAE,WAAaQ,EAC5B,EAAE,KAAK,eAAiB,EAAI,KAAK,QAA0B,OAAO,OAAO,IAAI,GAAK,OAAOT,EAAEP,CAAC,EAAGO,EAAE,gBAAkB,KAAK,KAAK,iBAAkBP,EAAGQ,EAAE,UAAYQ,CAAC,WAC1J,OAAOR,GAAK,WAAY,CAC/B,IAAKE,EAAI,GAAIY,EAAId,EAAE,OAAS,EAAGc,GAAK,EAAGA,IACrC,GAAId,EAAEc,CAAC,IAAMN,GAAKR,EAAEc,CAAC,EAAE,WAAaN,EAAG,CACrCL,EAAIH,EAAEc,CAAC,EAAE,SAAUZ,EAAIY,EACvB,KACV,CACM,GAAIZ,EAAI,EACN,OAAO,KACTA,IAAM,EAAIF,EAAE,MAAO,EAAGZ,EAAEY,EAAGE,CAAC,EAAGF,EAAE,SAAW,IAAMD,EAAEP,CAAC,EAAIQ,EAAE,CAAC,GAAID,EAAE,iBAAmB,QAAU,KAAK,KAAK,iBAAkBP,EAAGW,GAAKK,CAAC,CAC1I,CACI,OAAO,IACR,EAAEzB,EAAE,UAAU,IAAMA,EAAE,UAAU,eAAgBA,EAAE,UAAU,mBAAqB,SAASS,EAAG,CAC5F,IAAIgB,EAAGR,EAAGD,EACV,GAAIC,EAAI,KAAK,QAASA,IAAM,OAC1B,OAAO,KACT,GAAIA,EAAE,iBAAmB,OACvB,OAAO,UAAU,SAAW,GAAK,KAAK,QAA0B,OAAO,OAAO,IAAI,EAAG,KAAK,aAAe,GAAKA,EAAER,CAAC,IAAM,SAAW,EAAE,KAAK,eAAiB,EAAI,KAAK,QAA0B,OAAO,OAAO,IAAI,EAAI,OAAOQ,EAAER,CAAC,GAAI,KACnO,GAAI,UAAU,SAAW,EAAG,CAC1B,IAAIU,EAAI,OAAO,KAAKF,CAAC,EAAGc,EACxB,IAAKf,EAAI,EAAGA,EAAIG,EAAE,OAAQ,EAAEH,EAC1Be,EAAIZ,EAAEH,CAAC,EAAGe,IAAM,kBAAoB,KAAK,mBAAmBA,CAAC,EAC/D,OAAO,KAAK,mBAAmB,gBAAgB,EAAG,KAAK,QAA0B,OAAO,OAAO,IAAI,EAAG,KAAK,aAAe,EAAG,IACnI,CACI,GAAIN,EAAIR,EAAER,CAAC,EAAG,OAAOgB,GAAK,WACxB,KAAK,eAAehB,EAAGgB,CAAC,UACjBA,IAAM,OACb,IAAKT,EAAIS,EAAE,OAAS,EAAGT,GAAK,EAAGA,IAC7B,KAAK,eAAeP,EAAGgB,EAAET,CAAC,CAAC,EAC/B,OAAO,IACR,EACD,SAASZ,EAAEG,EAAGE,EAAGgB,EAAG,CAClB,IAAIR,EAAIV,EAAE,QACV,GAAIU,IAAM,OACR,MAAO,CAAE,EACX,IAAID,EAAIC,EAAER,CAAC,EACX,OAAOO,IAAM,OAAS,CAAA,EAAK,OAAOA,GAAK,WAAaS,EAAI,CAACT,EAAE,UAAYA,CAAC,EAAI,CAACA,CAAC,EAAIS,EAAIP,EAAEF,CAAC,EAAID,EAAEC,EAAGA,EAAE,MAAM,CAC9G,CACEhB,EAAE,UAAU,UAAY,SAASS,EAAG,CAClC,OAAOL,EAAE,KAAMK,EAAG,EAAE,CACrB,EAAET,EAAE,UAAU,aAAe,SAASS,EAAG,CACxC,OAAOL,EAAE,KAAMK,EAAG,EAAE,CACrB,EAAET,EAAE,cAAgB,SAASO,EAAGE,EAAG,CAClC,OAAO,OAAOF,EAAE,eAAiB,WAAaA,EAAE,cAAcE,CAAC,EAAII,EAAE,KAAKN,EAAGE,CAAC,CAClF,EAAKT,EAAE,UAAU,cAAgBa,EAC/B,SAASA,EAAEN,EAAG,CACZ,IAAIE,EAAI,KAAK,QACb,GAAIA,IAAM,OAAQ,CAChB,IAAIgB,EAAIhB,EAAEF,CAAC,EACX,GAAI,OAAOkB,GAAK,WACd,MAAO,GACT,GAAIA,IAAM,OACR,OAAOA,EAAE,MACjB,CACI,MAAO,EACX,CACEzB,EAAE,UAAU,WAAa,UAAW,CAClC,OAAO,KAAK,aAAe,EAAIL,EAAE,KAAK,OAAO,EAAI,CAAE,CACpD,EACD,SAASoB,EAAER,EAAGE,EAAG,CACf,QAASgB,EAAI,IAAI,MAAMhB,CAAC,EAAGQ,EAAI,EAAGA,EAAIR,EAAG,EAAEQ,EACzCQ,EAAER,CAAC,EAAIV,EAAEU,CAAC,EACZ,OAAOQ,CACX,CACE,SAASpB,EAAEE,EAAGE,EAAG,CACf,KAAOA,EAAI,EAAIF,EAAE,OAAQE,IACvBF,EAAEE,CAAC,EAAIF,EAAEE,EAAI,CAAC,EAChBF,EAAE,IAAK,CACX,CACE,SAASW,EAAEX,EAAG,CACZ,QAASE,EAAI,IAAI,MAAMF,EAAE,MAAM,EAAGkB,EAAI,EAAGA,EAAIhB,EAAE,OAAQ,EAAEgB,EACvDhB,EAAEgB,CAAC,EAAIlB,EAAEkB,CAAC,EAAE,UAAYlB,EAAEkB,CAAC,EAC7B,OAAOhB,CACX,CACE,SAASY,EAAEd,EAAGE,EAAG,CACf,OAAO,IAAI,QAAQ,SAASgB,EAAGR,EAAG,CAChC,SAASD,EAAEe,EAAG,CACZxB,EAAE,eAAeE,EAAGU,CAAC,EAAGF,EAAEc,CAAC,CACnC,CACM,SAASZ,GAAI,CACX,OAAOZ,EAAE,gBAAkB,YAAcA,EAAE,eAAe,QAASS,CAAC,EAAGS,EAAE,CAAE,EAAC,MAAM,KAAK,SAAS,CAAC,CACzG,CACMI,EAAEtB,EAAGE,EAAGU,EAAG,CAAE,KAAM,GAAI,EAAGV,IAAM,SAAWc,EAAEhB,EAAGS,EAAG,CAAE,KAAM,GAAI,CACrE,CAAK,CACL,CACE,SAASO,EAAEhB,EAAGE,EAAGgB,EAAG,CAClB,OAAOlB,EAAE,IAAM,YAAcsB,EAAEtB,EAAG,QAASE,EAAGgB,CAAC,CACnD,CACE,SAASI,EAAEtB,EAAGE,EAAGgB,EAAGR,EAAG,CACrB,GAAI,OAAOV,EAAE,IAAM,WACjBU,EAAE,KAAOV,EAAE,KAAKE,EAAGgB,CAAC,EAAIlB,EAAE,GAAGE,EAAGgB,CAAC,UAC1B,OAAOlB,EAAE,kBAAoB,WACpCA,EAAE,iBAAiBE,EAAG,SAASO,EAAEG,EAAG,CAClCF,EAAE,MAAQV,EAAE,oBAAoBE,EAAGO,CAAC,EAAGS,EAAEN,CAAC,CAClD,CAAO,MAED,OAAM,IAAI,UAAU,sEAAwE,OAAOZ,CAAC,CAC1G,CACE,OAAO,GAAG,OACZ,CACA,IAAI,GAAK,GAAI,EACb,SAAS,IAAK,CACZ,MAAMX,EAAI,UAAU,CAAC,EACrB,QAASE,EAAI,EAAGH,EAAI,UAAU,OAAQG,EAAIH,EAAGG,IAC3C,GAAI,UAAUA,CAAC,EACb,UAAWJ,KAAK,UAAUI,CAAC,EAAGF,EAAEF,CAAC,EAAI,UAAUI,CAAC,EAAEJ,CAAC,EACvD,OAAOE,CACT,CACA,IAAI,GAAK,GACT,OAAO,OAAO,QAAU,aAAe,GAAK,OAAO,QACnD,SAAS,GAAGA,EAAGE,EAAGH,EAAGD,EAAG,CACtB,MAAMG,EAAID,EAAE,OAAO,IAAIE,CAAC,EACxB,IAAIE,EAAI,KACR,OAAOH,IAAMH,IAAM,QAAUM,EAAIH,EAAE,KAAOA,EAAE,IAAIF,CAAC,GAAKE,EAAE,YAAcA,EAAE,WAAWF,CAAC,EAAID,IAAM,WAAaM,EAAIH,EAAE,KAAOA,EAAE,IAAIF,CAAC,EAAIK,EAAIH,EAAE,YAAcA,EAAE,WAAWF,CAAC,GAAIK,CAC3K,CACA,SAAS,GAAGJ,EAAG,CACb,OAAO,OAAOA,GAAK,UAAYA,IAAM,IACvC,CACA,SAAS,GAAGA,EAAG,CACb,IAAIE,EACJ,IAAKA,KAAKF,EAAG,MAAO,GACpB,MAAO,EACT,CACA,SAAS,GAAGA,EAAGE,EAAGH,EAAG,CACnB,OAAO,eAAeC,EAAGE,EAAG,CAC1B,WAAY,GACZ,aAAc,GACd,SAAU,GACV,MAAOH,CACX,CAAG,CACH,CACA,SAAS,GAAGC,EAAGE,EAAGH,EAAG,CACnB,MAAMD,EAAI,CACR,WAAY,GACZ,aAAc,EACf,EACD,OAAOC,GAAK,WAAaD,EAAE,IAAMC,GAAKD,EAAE,MAAQC,EAAGD,EAAE,SAAW,IAAK,OAAO,eAAeE,EAAGE,EAAGJ,CAAC,CACpG,CACA,SAAS,GAAGE,EAAG,CACb,MAAO,EAAE,CAAC,GAAGA,CAAC,GAAKA,EAAE,YAAc,CAAC,MAAM,QAAQA,EAAE,UAAU,EAChE,CACA,SAAS,IAAK,CACZ,IAAIA,EAAI,KAAK,MAAM,KAAK,OAAQ,EAAG,GAAG,EAAI,IAC1C,MAAO,IAAMA,GACf,CACA,SAAS,IAAK,CACZ,MAAMA,EAAI,UACV,IAAIE,EAAI,KAAMH,EAAI,GAClB,MAAO,CACL,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,IACR,EACD,MAAO,CACL,IAAID,EAAI,KACR,EAAG,CACD,GAAII,IAAM,KAAM,CACd,GAAIH,IAAKA,GAAKC,EAAE,OAAQ,MAAO,CAAE,KAAM,EAAI,EAC3CE,EAAIF,EAAED,CAAC,EAAE,OAAO,QAAQ,EAAG,CACrC,CACQ,GAAID,EAAII,EAAE,KAAI,EAAIJ,EAAE,KAAM,CACxBI,EAAI,KACJ,QACV,CACQ,KACR,OAAe,IACT,OAAOJ,CACb,CACG,CACH,CACA,SAAS,IAAK,CACZ,MAAO,CACL,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,IACR,EACD,MAAO,CACL,MAAO,CAAE,KAAM,EAAI,CACzB,CACG,CACH,CACA,MAAM,WAAW,KAAM,CACrB,YAAYI,EAAG,CACb,MAAK,EAAI,KAAK,KAAO,aAAc,KAAK,QAAUA,CACtD,CACA,CACA,MAAM,UAAU,EAAG,CACjB,YAAYA,EAAG,CACb,MAAMA,CAAC,EAAG,KAAK,KAAO,6BAA8B,OAAO,MAAM,mBAAqB,YAAc,MAAM,kBACxG,KACA,EAAE,UAAU,WACb,CACL,CACA,CACA,MAAM,UAAU,EAAG,CACjB,YAAYA,EAAG,CACb,MAAMA,CAAC,EAAG,KAAK,KAAO,qBAAsB,OAAO,MAAM,mBAAqB,YAAc,MAAM,kBAAkB,KAAM,EAAE,UAAU,WAAW,CACrJ,CACA,CACA,MAAM,UAAU,EAAG,CACjB,YAAYA,EAAG,CACb,MAAMA,CAAC,EAAG,KAAK,KAAO,kBAAmB,OAAO,MAAM,mBAAqB,YAAc,MAAM,kBAAkB,KAAM,EAAE,UAAU,WAAW,CAClJ,CACA,CACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,KAAK,IAAMF,EAAG,KAAK,WAAaE,EAAG,KAAK,MAAO,CACjD,CACA,GAAG,UAAU,MAAQ,UAAW,CAC9B,KAAK,SAAW,EAAG,KAAK,UAAY,EAAG,KAAK,iBAAmB,EAAG,KAAK,gBAAkB,EAAG,KAAK,cAAgB,EAAG,KAAK,GAAK,CAAA,EAAI,KAAK,IAAM,CAAA,EAAI,KAAK,WAAa,CAAE,CACvK,EACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,KAAK,IAAMF,EAAG,KAAK,WAAaE,EAAG,KAAK,MAAO,CACjD,CACA,GAAG,UAAU,MAAQ,UAAW,CAC9B,KAAK,SAAW,EAAG,KAAK,UAAY,EAAG,KAAK,cAAgB,EAAG,KAAK,GAAK,CAAE,EAAE,KAAK,IAAM,CAAE,CAC5F,EACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,KAAK,IAAMF,EAAG,KAAK,WAAaE,EAAG,KAAK,MAAO,CACjD,CACA,GAAG,UAAU,MAAQ,UAAW,CAC9B,KAAK,iBAAmB,EAAG,KAAK,gBAAkB,EAAG,KAAK,WAAa,CAAE,CAC3E,EACA,SAAS,GAAGF,EAAGE,EAAGH,EAAGD,EAAGG,EAAG,CACzB,KAAK,IAAMC,EAAG,KAAK,WAAaD,EAAG,KAAK,WAAaD,EAAG,KAAK,OAASD,EAAG,KAAK,OAASD,CACzF,CACA,GAAG,UAAU,OAAS,UAAW,CAC/B,IAAIE,EAAI,MAAOE,EAAI,KACnB,KAAK,aAAeF,EAAIE,EAAI,cAC5B,MAAMH,EAAI,KAAK,OAAO,IAAKD,EAAI,KAAK,OAAO,IAC3C,KAAK,OAAOE,CAAC,EAAEF,CAAC,EAAI,KAAM,EAAE,KAAK,YAAcC,IAAMD,KAAO,KAAK,OAAOI,CAAC,EAAEH,CAAC,EAAI,KAClF,EACA,GAAG,UAAU,YAAc,UAAW,CACpC,IAAIC,EAAI,MAAOE,EAAI,KACnB,MAAMH,EAAI,KAAK,OAAO,IAAKD,EAAI,KAAK,OAAO,IAC3C,KAAK,aAAeE,EAAIE,EAAI,cAC5B,MAAMD,EAAI,KAAK,OAAOD,CAAC,EAAGI,EAAIH,EAAEH,CAAC,EACjC,GAAI,OAAOM,EAAK,IAAa,CAC3BH,EAAEH,CAAC,EAAI,KAAM,KAAK,YAAcC,IAAMD,IAAM,KAAK,OAAOI,CAAC,EAAEH,CAAC,EAAI,MAChE,MACJ,CACEK,EAAE,SAAW,KAAM,KAAK,KAAOA,EAAGH,EAAEH,CAAC,EAAI,KAAM,KAAK,OAAOI,CAAC,EAAEH,CAAC,EAAI,IACrE,EACA,GAAG,UAAU,OAAS,UAAW,CAC/B,MAAMC,EAAI,KAAK,OAAO,IAAKE,EAAI,KAAK,OAAO,IAC3C,IAAIH,EAAI,MAAOD,EAAI,KACnB,KAAK,aAAeC,EAAID,EAAI,cAAe,OAAO,KAAK,OAAOC,CAAC,EAAEG,CAAC,EAAG,OAAO,KAAK,OAAOJ,CAAC,EAAEE,CAAC,CAC9F,EACA,GAAG,UAAU,YAAc,UAAW,CACpC,MAAMA,EAAI,KAAK,OAAO,IAAKE,EAAI,KAAK,OAAO,IAC3C,IAAIH,EAAI,MAAOD,EAAI,KACnB,KAAK,aAAeC,EAAID,EAAI,cAAe,KAAK,WAAa,OAAS,KAAK,OAAS,QAAU,OAAO,KAAK,OAAOC,CAAC,EAAEG,CAAC,EAAG,OAAO,KAAK,OAAOJ,CAAC,EAAEE,CAAC,IAAM,KAAK,KAAK,SAAW,OAAQ,KAAK,OAAOD,CAAC,EAAEG,CAAC,EAAI,KAAK,KAAM,KAAK,OAAOJ,CAAC,EAAEE,CAAC,EAAI,KAAK,OAAS,KAAK,SAAS,KAAO,KAAK,KAAM,KAAK,OAAS,SAAW,KAAK,KAAK,SAAW,KAAK,UACxU,EACA,MAAM,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EACnC,SAAS,GAAGA,EAAGE,EAAGH,EAAGD,EAAGG,EAAGG,EAAGD,EAAG,CAC/B,IAAIE,EAAGE,EAAGK,EAAG,EACb,GAAId,EAAI,GAAKA,EAAGC,IAAM,GAAI,CACxB,GAAIM,EAAIL,EAAE,OAAO,IAAIF,CAAC,EAAG,CAACO,EACxB,MAAM,IAAI,EACR,SAASH,CAAC,yBAAyBJ,CAAC,sBACrC,EACHc,EAAIX,EAAG,EAAIG,CACf,SAAaL,IAAM,GAAI,CACnB,GAAIE,EAAI,GAAKA,EAAGM,EAAIP,EAAE,OAAO,IAAIC,CAAC,EAAG,CAACM,EACpC,MAAM,IAAI,EACR,SAASL,CAAC,yBAAyBD,CAAC,sBACrC,EACH,MAAMS,EAAIH,EAAE,OAAO,IAAKC,EAAID,EAAE,OAAO,IACrC,GAAIT,IAAMY,EACRL,EAAIE,EAAE,eACCT,IAAMU,EACbH,EAAIE,EAAE,WAEN,OAAM,IAAI,EACR,SAASL,CAAC,UAAUJ,CAAC,kCAAkCG,CAAC,WAAWS,CAAC,KAAKF,CAAC,IAC3E,EACHI,EAAIR,EAAG,EAAID,CACf,KAAS,CACL,GAAII,EAAIP,EAAE,OAAO,IAAIF,CAAC,EAAG,CAACS,EACxB,MAAM,IAAI,EACR,SAASL,CAAC,yBAAyBJ,CAAC,sBACrC,EACHC,IAAM,GAAKM,EAAIE,EAAE,OAASF,EAAIE,EAAE,OAAQK,EAAIX,EAAG,EAAIG,CACvD,CACE,MAAO,CAACC,EAAGO,EAAG,CAAC,CACjB,CACA,SAAS,GAAGZ,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAGG,EAAG,CACjC,KAAM,CAACD,EAAGE,CAAC,EAAI,GACb,KACAH,EACAH,EACAD,EACAG,EACAG,CACD,EACD,OAAOD,EAAE,WAAWE,CAAC,CACtB,CACH,CACA,SAAS,GAAGL,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAG,CAC9B,KAAM,CAACG,CAAC,EAAI,GACV,KACAF,EACAH,EACAD,EACAG,CACD,EACD,OAAOG,EAAE,UACV,CACH,CACA,SAAS,GAAGJ,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAGG,EAAG,CACjC,KAAM,CAACD,EAAGE,CAAC,EAAI,GACb,KACAH,EACAH,EACAD,EACAG,EACAG,CACD,EACD,OAAOD,EAAE,WAAW,eAAeE,CAAC,CACrC,CACH,CACA,SAAS,GAAGL,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAGG,EAAGD,EAAG,CACpC,KAAM,CAACE,EAAGE,EAAGK,CAAC,EAAI,GAChB,KACAV,EACAH,EACAD,EACAG,EACAG,EACAD,CACD,EACD,OAAOE,EAAE,WAAWE,CAAC,EAAIK,EAAG,KAAK,KAAK,wBAAyB,CAC7D,IAAKP,EAAE,IACP,KAAM,MACN,WAAYA,EAAE,WACd,KAAME,CACP,CAAA,EAAG,IACL,CACH,CACA,SAAS,GAAGP,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAGG,EAAGD,EAAG,CACpC,KAAM,CAACE,EAAGE,EAAGK,CAAC,EAAI,GAChB,KACAV,EACAH,EACAD,EACAG,EACAG,EACAD,CACD,EACD,GAAI,OAAOS,GAAK,WACd,MAAM,IAAI,EACR,SAASV,CAAC,iCACX,EACH,MAAM,EAAIG,EAAE,WAAYK,EAAIE,EAAE,EAAEL,CAAC,CAAC,EAClC,OAAO,EAAEA,CAAC,EAAIG,EAAG,KAAK,KAAK,wBAAyB,CAClD,IAAKL,EAAE,IACP,KAAM,MACN,WAAYA,EAAE,WACd,KAAME,CACP,CAAA,EAAG,IACL,CACH,CACA,SAAS,GAAGP,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAGG,EAAG,CACjC,KAAM,CAACD,EAAGE,CAAC,EAAI,GACb,KACAH,EACAH,EACAD,EACAG,EACAG,CACD,EACD,OAAO,OAAOD,EAAE,WAAWE,CAAC,EAAG,KAAK,KAAK,wBAAyB,CAChE,IAAKF,EAAE,IACP,KAAM,SACN,WAAYA,EAAE,WACd,KAAME,CACP,CAAA,EAAG,IACL,CACH,CACA,SAAS,GAAGL,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAGG,EAAG,CACjC,KAAM,CAACD,EAAGE,CAAC,EAAI,GACb,KACAH,EACAH,EACAD,EACAG,EACAG,CACD,EACD,GAAI,CAAC,GAAGC,CAAC,EACP,MAAM,IAAI,EACR,SAASH,CAAC,+CACX,EACH,OAAOC,EAAE,WAAaE,EAAG,KAAK,KAAK,wBAAyB,CAC1D,IAAKF,EAAE,IACP,KAAM,UACN,WAAYA,EAAE,UACf,CAAA,EAAG,IACL,CACH,CACA,SAAS,GAAGH,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAGG,EAAG,CACjC,KAAM,CAACD,EAAGE,CAAC,EAAI,GACb,KACAH,EACAH,EACAD,EACAG,EACAG,CACD,EACD,GAAI,CAAC,GAAGC,CAAC,EACP,MAAM,IAAI,EACR,SAASH,CAAC,+CACX,EACH,OAAO,GAAGC,EAAE,WAAYE,CAAC,EAAG,KAAK,KAAK,wBAAyB,CAC7D,IAAKF,EAAE,IACP,KAAM,QACN,WAAYA,EAAE,WACd,KAAME,CACP,CAAA,EAAG,IACL,CACH,CACA,SAAS,GAAGL,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAGG,EAAG,CACjC,KAAM,CAACD,EAAGE,CAAC,EAAI,GACb,KACAH,EACAH,EACAD,EACAG,EACAG,CACD,EACD,GAAI,OAAOC,GAAK,WACd,MAAM,IAAI,EACR,SAASH,CAAC,uCACX,EACH,OAAOC,EAAE,WAAaE,EAAEF,EAAE,UAAU,EAAG,KAAK,KAAK,wBAAyB,CACxE,IAAKA,EAAE,IACP,KAAM,SACN,WAAYA,EAAE,UACf,CAAA,EAAG,IACL,CACH,CACA,MAAM,GAAK,CACT,CACE,KAAOH,GAAM,MAAMA,CAAC,YACpB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,MAAMA,CAAC,aACpB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,MAAMA,CAAC,YACpB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,MAAMA,CAAC,YACpB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,SAASA,CAAC,YACvB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,SAASA,CAAC,YACvB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,UAAUA,CAAC,aACxB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,QAAQA,CAAC,aACtB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,SAASA,CAAC,aACvB,SAAU,EACd,CACA,EACA,SAAS,GAAGA,EAAG,CACb,GAAG,QAAQ,SAAS,CAAE,KAAME,EAAG,SAAUH,GAAK,CAC5CA,EAAEC,EAAGE,EAAE,MAAM,EAAG,EAAE,EAAGH,EAAEC,EAAGE,EAAE,QAAQ,EAAG,EAAE,EAAGH,EAAEC,EAAGE,EAAE,QAAQ,EAAG,EAAE,EAAGH,EAAEC,EAAGE,EAAE,UAAU,EAAG,EAAE,CAC7F,CAAG,CACH,CACA,SAAS,GAAGF,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAG,CAC9B,IAAIG,EACJ,GAAI,KAAK,OAAS,SAAWL,IAAM,SAAWA,IAAM,KAAK,KACvD,MAAM,IAAI,EACR,SAASG,CAAC,4CAA4C,KAAK,IAAI,SAChE,EACH,GAAI,UAAU,OAAS,EAAG,CACxB,GAAI,KAAK,MACP,MAAM,IAAI,EACR,SAASA,CAAC,uJACX,EACH,MAAMC,EAAI,GAAKL,EAAGO,EAAI,GAAKJ,EAC3B,GAAIA,EAAI,UAAU,CAAC,EAAGG,EAAI,GAAG,KAAMD,EAAGE,EAAGN,CAAC,EAAG,CAACK,EAC5C,MAAM,IAAI,EACR,SAASF,CAAC,iDAAiDC,CAAC,QAAQE,CAAC,KACtE,CACT,KAAW,CACL,GAAIN,IAAM,QACR,MAAM,IAAI,EACR,SAASG,CAAC,4IACX,EACH,GAAIJ,EAAI,GAAKA,EAAGM,EAAI,KAAK,OAAO,IAAIN,CAAC,EAAG,CAACM,EACvC,MAAM,IAAI,EACR,SAASF,CAAC,yBAAyBJ,CAAC,sBACrC,CACT,CACI,OAAOM,EAAE,WAAWH,CAAC,CACtB,CACH,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAG,CAC3B,IAAIG,EACJ,GAAI,KAAK,OAAS,SAAWF,IAAM,SAAWA,IAAM,KAAK,KACvD,MAAM,IAAI,EACR,SAASG,CAAC,4CAA4C,KAAK,IAAI,SAChE,EACH,GAAI,UAAU,OAAS,EAAG,CACxB,GAAI,KAAK,MACP,MAAM,IAAI,EACR,SAASA,CAAC,uJACX,EACH,MAAME,EAAI,GAAKN,EAAGK,EAAI,GAAK,UAAU,CAAC,EACtC,GAAIF,EAAI,GAAG,KAAMG,EAAGD,EAAGJ,CAAC,EAAG,CAACE,EAC1B,MAAM,IAAI,EACR,SAASC,CAAC,iDAAiDE,CAAC,QAAQD,CAAC,KACtE,CACT,KAAW,CACL,GAAIJ,IAAM,QACR,MAAM,IAAI,EACR,SAASG,CAAC,4IACX,EACH,GAAIJ,EAAI,GAAKA,EAAGG,EAAI,KAAK,OAAO,IAAIH,CAAC,EAAG,CAACG,EACvC,MAAM,IAAI,EACR,SAASC,CAAC,yBAAyBJ,CAAC,sBACrC,CACT,CACI,OAAOG,EAAE,UACV,CACH,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAG,CAC9B,IAAIG,EACJ,GAAI,KAAK,OAAS,SAAWL,IAAM,SAAWA,IAAM,KAAK,KACvD,MAAM,IAAI,EACR,SAASG,CAAC,4CAA4C,KAAK,IAAI,SAChE,EACH,GAAI,UAAU,OAAS,EAAG,CACxB,GAAI,KAAK,MACP,MAAM,IAAI,EACR,SAASA,CAAC,uJACX,EACH,MAAMC,EAAI,GAAKL,EAAGO,EAAI,GAAKJ,EAC3B,GAAIA,EAAI,UAAU,CAAC,EAAGG,EAAI,GAAG,KAAMD,EAAGE,EAAGN,CAAC,EAAG,CAACK,EAC5C,MAAM,IAAI,EACR,SAASF,CAAC,iDAAiDC,CAAC,QAAQE,CAAC,KACtE,CACT,KAAW,CACL,GAAIN,IAAM,QACR,MAAM,IAAI,EACR,SAASG,CAAC,4IACX,EACH,GAAIJ,EAAI,GAAKA,EAAGM,EAAI,KAAK,OAAO,IAAIN,CAAC,EAAG,CAACM,EACvC,MAAM,IAAI,EACR,SAASF,CAAC,yBAAyBJ,CAAC,sBACrC,CACT,CACI,OAAOM,EAAE,WAAW,eAAeH,CAAC,CACrC,CACH,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAGG,EAAG,CACjC,IAAID,EACJ,GAAI,KAAK,OAAS,SAAWJ,IAAM,SAAWA,IAAM,KAAK,KACvD,MAAM,IAAI,EACR,SAASG,CAAC,4CAA4C,KAAK,IAAI,SAChE,EACH,GAAI,UAAU,OAAS,EAAG,CACxB,GAAI,KAAK,MACP,MAAM,IAAI,EACR,SAASA,CAAC,uJACX,EACH,MAAMG,EAAI,GAAKP,EAAGS,EAAI,GAAKN,EAC3B,GAAIA,EAAI,UAAU,CAAC,EAAGG,EAAI,UAAU,CAAC,EAAGD,EAAI,GAAG,KAAME,EAAGE,EAAGR,CAAC,EAAG,CAACI,EAC9D,MAAM,IAAI,EACR,SAASD,CAAC,iDAAiDG,CAAC,QAAQE,CAAC,KACtE,CACT,KAAW,CACL,GAAIR,IAAM,QACR,MAAM,IAAI,EACR,SAASG,CAAC,4IACX,EACH,GAAIJ,EAAI,GAAKA,EAAGK,EAAI,KAAK,OAAO,IAAIL,CAAC,EAAG,CAACK,EACvC,MAAM,IAAI,EACR,SAASD,CAAC,yBAAyBJ,CAAC,sBACrC,CACT,CACI,OAAOK,EAAE,WAAWF,CAAC,EAAIG,EAAG,KAAK,KAAK,wBAAyB,CAC7D,IAAKD,EAAE,IACP,KAAM,MACN,WAAYA,EAAE,WACd,KAAMF,CACP,CAAA,EAAG,IACL,CACH,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAGG,EAAG,CACjC,IAAID,EACJ,GAAI,KAAK,OAAS,SAAWJ,IAAM,SAAWA,IAAM,KAAK,KACvD,MAAM,IAAI,EACR,SAASG,CAAC,4CAA4C,KAAK,IAAI,SAChE,EACH,GAAI,UAAU,OAAS,EAAG,CACxB,GAAI,KAAK,MACP,MAAM,IAAI,EACR,SAASA,CAAC,uJACX,EACH,MAAMG,EAAI,GAAKP,EAAGS,EAAI,GAAKN,EAC3B,GAAIA,EAAI,UAAU,CAAC,EAAGG,EAAI,UAAU,CAAC,EAAGD,EAAI,GAAG,KAAME,EAAGE,EAAGR,CAAC,EAAG,CAACI,EAC9D,MAAM,IAAI,EACR,SAASD,CAAC,iDAAiDG,CAAC,QAAQE,CAAC,KACtE,CACT,KAAW,CACL,GAAIR,IAAM,QACR,MAAM,IAAI,EACR,SAASG,CAAC,4IACX,EACH,GAAIJ,EAAI,GAAKA,EAAGK,EAAI,KAAK,OAAO,IAAIL,CAAC,EAAG,CAACK,EACvC,MAAM,IAAI,EACR,SAASD,CAAC,yBAAyBJ,CAAC,sBACrC,CACT,CACI,GAAI,OAAOM,GAAK,WACd,MAAM,IAAI,EACR,SAASF,CAAC,iCACX,EACH,OAAOC,EAAE,WAAWF,CAAC,EAAIG,EAAED,EAAE,WAAWF,CAAC,CAAC,EAAG,KAAK,KAAK,wBAAyB,CAC9E,IAAKE,EAAE,IACP,KAAM,MACN,WAAYA,EAAE,WACd,KAAMF,CACP,CAAA,EAAG,IACL,CACH,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAG,CAC9B,IAAIG,EACJ,GAAI,KAAK,OAAS,SAAWL,IAAM,SAAWA,IAAM,KAAK,KACvD,MAAM,IAAI,EACR,SAASG,CAAC,4CAA4C,KAAK,IAAI,SAChE,EACH,GAAI,UAAU,OAAS,EAAG,CACxB,GAAI,KAAK,MACP,MAAM,IAAI,EACR,SAASA,CAAC,uJACX,EACH,MAAMC,EAAI,GAAKL,EAAGO,EAAI,GAAKJ,EAC3B,GAAIA,EAAI,UAAU,CAAC,EAAGG,EAAI,GAAG,KAAMD,EAAGE,EAAGN,CAAC,EAAG,CAACK,EAC5C,MAAM,IAAI,EACR,SAASF,CAAC,iDAAiDC,CAAC,QAAQE,CAAC,KACtE,CACT,KAAW,CACL,GAAIN,IAAM,QACR,MAAM,IAAI,EACR,SAASG,CAAC,4IACX,EACH,GAAIJ,EAAI,GAAKA,EAAGM,EAAI,KAAK,OAAO,IAAIN,CAAC,EAAG,CAACM,EACvC,MAAM,IAAI,EACR,SAASF,CAAC,yBAAyBJ,CAAC,sBACrC,CACT,CACI,OAAO,OAAOM,EAAE,WAAWH,CAAC,EAAG,KAAK,KAAK,wBAAyB,CAChE,IAAKG,EAAE,IACP,KAAM,SACN,WAAYA,EAAE,WACd,KAAMH,CACP,CAAA,EAAG,IACL,CACH,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAG,CAC9B,IAAIG,EACJ,GAAI,KAAK,OAAS,SAAWL,IAAM,SAAWA,IAAM,KAAK,KACvD,MAAM,IAAI,EACR,SAASG,CAAC,4CAA4C,KAAK,IAAI,SAChE,EACH,GAAI,UAAU,OAAS,EAAG,CACxB,GAAI,KAAK,MACP,MAAM,IAAI,EACR,SAASA,CAAC,uJACX,EACH,MAAMC,EAAI,GAAKL,EAAGO,EAAI,GAAKJ,EAC3B,GAAIA,EAAI,UAAU,CAAC,EAAGG,EAAI,GAAG,KAAMD,EAAGE,EAAGN,CAAC,EAAG,CAACK,EAC5C,MAAM,IAAI,EACR,SAASF,CAAC,iDAAiDC,CAAC,QAAQE,CAAC,KACtE,CACT,KAAW,CACL,GAAIN,IAAM,QACR,MAAM,IAAI,EACR,SAASG,CAAC,4IACX,EACH,GAAIJ,EAAI,GAAKA,EAAGM,EAAI,KAAK,OAAO,IAAIN,CAAC,EAAG,CAACM,EACvC,MAAM,IAAI,EACR,SAASF,CAAC,yBAAyBJ,CAAC,sBACrC,CACT,CACI,GAAI,CAAC,GAAGG,CAAC,EACP,MAAM,IAAI,EACR,SAASC,CAAC,+CACX,EACH,OAAOE,EAAE,WAAaH,EAAG,KAAK,KAAK,wBAAyB,CAC1D,IAAKG,EAAE,IACP,KAAM,UACN,WAAYA,EAAE,UACf,CAAA,EAAG,IACL,CACH,CACA,SAAS,GAAGJ,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAG,CAC9B,IAAIG,EACJ,GAAI,KAAK,OAAS,SAAWL,IAAM,SAAWA,IAAM,KAAK,KACvD,MAAM,IAAI,EACR,SAASG,CAAC,4CAA4C,KAAK,IAAI,SAChE,EACH,GAAI,UAAU,OAAS,EAAG,CACxB,GAAI,KAAK,MACP,MAAM,IAAI,EACR,SAASA,CAAC,uJACX,EACH,MAAMC,EAAI,GAAKL,EAAGO,EAAI,GAAKJ,EAC3B,GAAIA,EAAI,UAAU,CAAC,EAAGG,EAAI,GAAG,KAAMD,EAAGE,EAAGN,CAAC,EAAG,CAACK,EAC5C,MAAM,IAAI,EACR,SAASF,CAAC,iDAAiDC,CAAC,QAAQE,CAAC,KACtE,CACT,KAAW,CACL,GAAIN,IAAM,QACR,MAAM,IAAI,EACR,SAASG,CAAC,4IACX,EACH,GAAIJ,EAAI,GAAKA,EAAGM,EAAI,KAAK,OAAO,IAAIN,CAAC,EAAG,CAACM,EACvC,MAAM,IAAI,EACR,SAASF,CAAC,yBAAyBJ,CAAC,sBACrC,CACT,CACI,GAAI,CAAC,GAAGG,CAAC,EACP,MAAM,IAAI,EACR,SAASC,CAAC,+CACX,EACH,OAAO,GAAGE,EAAE,WAAYH,CAAC,EAAG,KAAK,KAAK,wBAAyB,CAC7D,IAAKG,EAAE,IACP,KAAM,QACN,WAAYA,EAAE,WACd,KAAMH,CACP,CAAA,EAAG,IACL,CACH,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAG,CACnBC,EAAE,UAAUE,CAAC,EAAI,SAASJ,EAAGG,EAAG,CAC9B,IAAIG,EACJ,GAAI,KAAK,OAAS,SAAWL,IAAM,SAAWA,IAAM,KAAK,KACvD,MAAM,IAAI,EACR,SAASG,CAAC,4CAA4C,KAAK,IAAI,SAChE,EACH,GAAI,UAAU,OAAS,EAAG,CACxB,GAAI,KAAK,MACP,MAAM,IAAI,EACR,SAASA,CAAC,uJACX,EACH,MAAMC,EAAI,GAAKL,EAAGO,EAAI,GAAKJ,EAC3B,GAAIA,EAAI,UAAU,CAAC,EAAGG,EAAI,GAAG,KAAMD,EAAGE,EAAGN,CAAC,EAAG,CAACK,EAC5C,MAAM,IAAI,EACR,SAASF,CAAC,iDAAiDC,CAAC,QAAQE,CAAC,KACtE,CACT,KAAW,CACL,GAAIN,IAAM,QACR,MAAM,IAAI,EACR,SAASG,CAAC,4IACX,EACH,GAAIJ,EAAI,GAAKA,EAAGM,EAAI,KAAK,OAAO,IAAIN,CAAC,EAAG,CAACM,EACvC,MAAM,IAAI,EACR,SAASF,CAAC,yBAAyBJ,CAAC,sBACrC,CACT,CACI,GAAI,OAAOG,GAAK,WACd,MAAM,IAAI,EACR,SAASC,CAAC,uCACX,EACH,OAAOE,EAAE,WAAaH,EAAEG,EAAE,UAAU,EAAG,KAAK,KAAK,wBAAyB,CACxE,IAAKA,EAAE,IACP,KAAM,SACN,WAAYA,EAAE,UACf,CAAA,EAAG,IACL,CACH,CACA,MAAM,GAAK,CACT,CACE,KAAOJ,GAAM,MAAMA,CAAC,YACpB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,MAAMA,CAAC,aACpB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,MAAMA,CAAC,YACpB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,MAAMA,CAAC,YACpB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,SAASA,CAAC,YACvB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,SAASA,CAAC,YACvB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,UAAUA,CAAC,aACxB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,QAAQA,CAAC,aACtB,SAAU,EACX,EACD,CACE,KAAOA,GAAM,SAASA,CAAC,aACvB,SAAU,EACd,CACA,EACA,SAAS,GAAGA,EAAG,CACb,GAAG,QAAQ,SAAS,CAAE,KAAME,EAAG,SAAUH,GAAK,CAC5CA,EAAEC,EAAGE,EAAE,MAAM,EAAG,OAAO,EAAGH,EAAEC,EAAGE,EAAE,cAAc,EAAG,UAAU,EAAGH,EAAEC,EAAGE,EAAE,gBAAgB,EAAG,YAAY,CACzG,CAAG,CACH,CACA,MAAM,GAAK,CACT,CACE,KAAM,QACN,KAAM,OACP,EACD,CACE,KAAM,UACN,KAAM,WACN,UAAW,IACZ,EACD,CACE,KAAM,WACN,KAAM,WACN,UAAW,KACZ,EACD,CACE,KAAM,eACN,KAAM,QACN,UAAW,IACZ,EACD,CACE,KAAM,gBACN,KAAM,QACN,UAAW,KACZ,EACD,CACE,KAAM,gBACN,KAAM,UACP,EACD,CACE,KAAM,kBACN,KAAM,YACV,CACA,EACA,SAAS,GAAGF,EAAGE,EAAGH,EAAGD,EAAG,CACtB,IAAIG,EAAI,GACR,UAAWG,KAAKF,EAAG,CACjB,GAAIE,IAAMN,EAAG,SACb,MAAMK,EAAID,EAAEE,CAAC,EACb,GAAIH,EAAIF,EACNI,EAAE,IACFA,EAAE,WACFA,EAAE,OAAO,IACTA,EAAE,OAAO,IACTA,EAAE,OAAO,WACTA,EAAE,OAAO,WACTA,EAAE,UACH,EAAEH,GAAKC,EAAG,OAAOE,EAAE,GACxB,CACA,CACA,SAAS,GAAGH,EAAGE,EAAGH,EAAGD,EAAG,CACtB,IAAIG,EAAGG,EAAGD,EAAGE,EAAI,GACjB,UAAWE,KAAKL,EACd,GAAIK,IAAMT,EAAG,CACXG,EAAIC,EAAEK,CAAC,EACP,EAAG,CACD,GAAIH,EAAIH,EAAE,OAAQE,EAAIF,EAAE,OAAQI,EAAIN,EAClCE,EAAE,IACFA,EAAE,WACFG,EAAE,IACFD,EAAE,IACFC,EAAE,WACFD,EAAE,WACFF,EAAE,UACH,EAAED,GAAKK,EAAG,OAAOJ,EAAE,IACpBA,EAAIA,EAAE,IACP,OAAQA,IAAM,OACrB,CACA,CACA,SAAS,GAAGD,EAAGE,EAAG,CAChB,MAAMH,EAAI,OAAO,KAAKC,CAAC,EAAGF,EAAIC,EAAE,OAChC,IAAIE,EAAGG,EAAI,EACX,MAAO,CACL,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,IACR,EACD,MAAO,CACL,EACE,IAAIH,EACFA,EAAIA,EAAE,SACH,CACH,GAAIG,GAAKN,EAAG,MAAO,CAAE,KAAM,EAAI,EAC/B,MAAMK,EAAIJ,EAAEK,GAAG,EACf,GAAID,IAAMD,EAAG,CACXD,EAAI,OACJ,QACZ,CACUA,EAAID,EAAEG,CAAC,CACjB,OACa,CAACF,GACR,MAAO,CACL,KAAM,GACN,MAAO,CACL,KAAMA,EAAE,IACR,WAAYA,EAAE,WACd,OAAQA,EAAE,OAAO,IACjB,OAAQA,EAAE,OAAO,IACjB,iBAAkBA,EAAE,OAAO,WAC3B,iBAAkBA,EAAE,OAAO,WAC3B,WAAYA,EAAE,UACxB,CACO,CACP,CACG,CACH,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAGD,EAAG,CACtB,MAAMG,EAAIC,EAAEH,CAAC,EACb,GAAI,CAACE,EAAG,OACR,MAAMG,EAAIH,EAAE,OAAQE,EAAIF,EAAE,OAC1B,GAAIH,EACFG,EAAE,IACFA,EAAE,WACFG,EAAE,IACFD,EAAE,IACFC,EAAE,WACFD,EAAE,WACFF,EAAE,UACN,GAAOD,EACH,OAAOC,EAAE,GACb,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAGD,EAAG,CACtB,IAAIG,EAAIC,EAAEH,CAAC,EACX,GAAI,CAACE,EAAG,OACR,IAAIG,EAAI,GACR,EAAG,CACD,GAAIA,EAAIN,EACNG,EAAE,IACFA,EAAE,WACFA,EAAE,OAAO,IACTA,EAAE,OAAO,IACTA,EAAE,OAAO,WACTA,EAAE,OAAO,WACTA,EAAE,UACH,EAAED,GAAKI,EAAG,OAAOH,EAAE,IACpBA,EAAIA,EAAE,IACP,OAAQA,IAAM,OACjB,CACA,SAAS,GAAGD,EAAGE,EAAG,CAChB,IAAIH,EAAIC,EAAEE,CAAC,EACX,GAAIH,EAAE,OAAS,OACb,MAAO,CACL,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,IACR,EACD,MAAO,CACL,GAAI,CAACA,EAAG,MAAO,CAAE,KAAM,EAAI,EAC3B,MAAME,EAAI,CACR,KAAMF,EAAE,IACR,WAAYA,EAAE,WACd,OAAQA,EAAE,OAAO,IACjB,OAAQA,EAAE,OAAO,IACjB,iBAAkBA,EAAE,OAAO,WAC3B,iBAAkBA,EAAE,OAAO,WAC3B,WAAYA,EAAE,UACf,EACD,OAAOA,EAAIA,EAAE,KAAM,CACjB,KAAM,GACN,MAAOE,CACR,CACT,CACK,EACH,IAAIH,EAAI,GACR,MAAO,CACL,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,IACR,EACD,MAAO,CACL,OAAOA,IAAM,GAAK,CAAE,KAAM,EAAI,GAAIA,EAAI,GAAI,CACxC,KAAM,GACN,MAAO,CACL,KAAMC,EAAE,IACR,WAAYA,EAAE,WACd,OAAQA,EAAE,OAAO,IACjB,OAAQA,EAAE,OAAO,IACjB,iBAAkBA,EAAE,OAAO,WAC3B,iBAAkBA,EAAE,OAAO,WAC3B,WAAYA,EAAE,UACxB,CACA,EACA,CACG,CACH,CACA,SAAS,GAAGC,EAAGE,EAAG,CAChB,GAAIF,EAAE,OAAS,EAAG,MAAO,CAAE,EAC3B,GAAIE,IAAM,SAAWA,IAAMF,EAAE,KAC3B,OAAO,MAAM,KAAKA,EAAE,OAAO,KAAI,CAAE,EACnC,MAAMD,EAAIG,IAAM,aAAeF,EAAE,eAAiBA,EAAE,aAAcF,EAAI,IAAI,MAAMC,CAAC,EAAGE,EAAIC,IAAM,aAAcE,EAAIJ,EAAE,OAAO,OAAQ,EACjI,IAAIG,EAAI,EAAGE,EAAGE,EACd,KAAOF,EAAID,EAAE,KAAM,EAAEC,EAAE,OAAS,IAC9BE,EAAIF,EAAE,MAAOE,EAAE,aAAeN,IAAMH,EAAEK,GAAG,EAAII,EAAE,KACjD,OAAOT,CACT,CACA,SAAS,GAAGE,EAAGE,EAAGH,EAAGD,EAAG,CACtB,GAAII,EAAE,OAAS,EAAG,OAClB,MAAMD,EAAIF,IAAM,SAAWA,IAAMG,EAAE,KAAME,EAAIL,IAAM,aACnD,IAAII,EAAGE,EAAGE,EAAI,GACd,MAAMK,EAAIV,EAAE,OAAO,OAAQ,EAC3B,KAAOC,EAAIS,EAAE,KAAM,EAAET,EAAE,OAAS,IAAM,CACpC,GAAIE,EAAIF,EAAE,MAAOF,GAAKI,EAAE,aAAeD,EAAG,SAC1C,KAAM,CAAE,IAAK,EAAG,WAAYM,EAAG,OAAQF,EAAG,OAAQS,CAAC,EAAKZ,EACxD,GAAIE,EAAIT,EACN,EACAY,EACAF,EAAE,IACFS,EAAE,IACFT,EAAE,WACFS,EAAE,WACFZ,EAAE,UACR,EAAOL,GAAKO,EAAG,OAAO,CACtB,CACA,CACA,SAAS,GAAGP,EAAGE,EAAG,CAChB,GAAIF,EAAE,OAAS,EAAG,OAAO,GAAI,EAC7B,MAAMD,EAAIG,IAAM,SAAWA,IAAMF,EAAE,KAAMF,EAAII,IAAM,aAAcD,EAAID,EAAE,OAAO,OAAQ,EACtF,MAAO,CACL,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,IACR,EACD,MAAO,CACL,IAAII,EAAGD,EACP,OAAW,CACT,GAAIC,EAAIH,EAAE,KAAM,EAAEG,EAAE,KAAM,OAAOA,EACjC,GAAID,EAAIC,EAAE,MAAO,EAAEL,GAAKI,EAAE,aAAeL,GACvC,KACV,CACM,MAAO,CAAE,MAAO,CACd,KAAMK,EAAE,IACR,WAAYA,EAAE,WACd,OAAQA,EAAE,OAAO,IACjB,OAAQA,EAAE,OAAO,IACjB,iBAAkBA,EAAE,OAAO,WAC3B,iBAAkBA,EAAE,OAAO,WAC3B,WAAYA,EAAE,UACtB,EAAS,KAAM,EAAI,CACnB,CACG,CACH,CACA,SAAS,GAAGH,EAAGE,EAAGH,EAAGD,EAAGG,EAAGG,EAAG,CAC5B,MAAMD,EAAID,EAAI,GAAK,GACnB,IAAIG,EACJ,GAAIN,IAAM,eAAiBD,IAAM,QAAUO,EAAIF,EAAEH,EAAGC,EAAE,GAAIG,CAAC,EAAGJ,GAAKK,IAAMP,IAAM,OAASO,EAAIF,EAC1FH,EACAC,EAAE,IACFG,EACAN,EAAI,OAASG,EAAE,GAChB,EAAED,GAAKK,KAAON,IAAM,aAAeM,EAAIF,EAAEH,EAAGC,EAAE,WAAYG,CAAC,EAAGJ,GAAKK,GAClE,OAAOA,CACX,CACA,SAAS,GAAGL,EAAGE,EAAGH,EAAGD,EAAG,CACtB,MAAMG,EAAI,CAAE,EACZ,OAAO,GAAG,GAAID,EAAGE,EAAGH,EAAGD,EAAG,SAASM,EAAG,CACpCH,EAAE,KAAKG,CAAC,CACT,CAAA,EAAGH,CACN,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAG,CACnB,IAAID,EAAI,GAAI,EACZ,OAAOE,IAAM,eAAiBE,IAAM,OAAS,OAAOH,EAAE,GAAM,MAAgBD,EAAI,GAAGA,EAAG,GAAGC,EAAE,EAAE,CAAC,GAAIG,IAAM,MAAQ,OAAOH,EAAE,IAAO,MAAgBD,EAAI,GAClJA,EACA,GAAGC,EAAE,IAAKG,EAAI,OAASH,EAAE,GAAG,CAChC,IAAOC,IAAM,YAAc,OAAOD,EAAE,WAAc,MAAgBD,EAAI,GAAGA,EAAG,GAAGC,EAAE,UAAU,CAAC,GAAID,CAChG,CACA,SAAS,GAAGE,EAAGE,EAAGH,EAAGD,EAAGG,EAAGG,EAAGD,EAAG,CAC/B,MAAME,EAAIN,EAAI,GAAK,GACnB,IAAIQ,EACJ,GAAIL,IAAM,eAAiB,OAAOD,EAAE,GAAM,KAAeH,IAAM,QAAUS,EAAIF,EAAEL,EAAGC,EAAE,GAAIG,EAAGD,CAAC,EAAGH,GAAKO,IAAM,OAAON,EAAE,IAAO,KAAeH,IAAM,OAASA,GAAKG,EAAE,MAAQG,KAAOG,EAAIF,EAAEL,EAAGC,EAAE,IAAKG,EAAGD,CAAC,EAAGH,GAAKO,KAAOL,IAAM,YAAc,OAAOD,EAAE,WAAc,MAAgBM,EAAIF,EAAEL,EAAGC,EAAE,WAAYG,EAAGD,CAAC,EAAGH,GAAKO,GAC7S,OAAOA,CACX,CACA,SAAS,GAAGP,EAAGE,EAAGH,EAAGD,EAAGG,EAAG,CACzB,MAAMG,EAAI,CAAE,EACZ,OAAO,GACL,GACAJ,EACAE,EACAH,EACAD,EACAG,EACA,SAASE,EAAG,CACVC,EAAE,KAAKD,CAAC,CACd,CACA,EAAKC,CACL,CACA,SAAS,GAAGJ,EAAGE,EAAGH,EAAGD,EAAG,CACtB,IAAIG,EAAI,GAAI,EACZ,OAAOD,IAAM,eAAiB,OAAOD,EAAE,GAAM,KAAeG,IAAM,OAASJ,KAAKC,EAAE,KAAOE,EAAI,GAAGA,EAAG,GAAGF,EAAE,GAAID,CAAC,CAAC,GAAI,OAAOC,EAAE,IAAO,KAAeG,IAAM,MAAQJ,KAAKC,EAAE,MAAQG,GAAKH,EAAE,MAAQD,KAAOG,EAAI,GAAGA,EAAG,GAAGF,EAAE,IAAKD,CAAC,CAAC,IAAKE,IAAM,YAAc,OAAOD,EAAE,WAAc,KAAeD,KAAKC,EAAE,aAAeE,EAAI,GACjTA,EACA,GAAGF,EAAE,WAAYD,CAAC,CACnB,GAAGG,CACN,CACA,SAAS,GAAGD,EAAGE,EAAG,CAChB,KAAM,CAAE,KAAMH,EAAG,KAAMD,EAAG,UAAWG,CAAC,EAAKC,EAC3CF,EAAE,UAAUD,CAAC,EAAI,SAASK,EAAGD,EAAG,CAC9B,GAAIL,IAAM,SAAW,KAAK,OAAS,SAAWA,IAAM,KAAK,KACvD,MAAO,CAAE,EACX,GAAI,CAAC,UAAU,OAAQ,OAAO,GAAG,KAAMA,CAAC,EACxC,GAAI,UAAU,SAAW,EAAG,CAC1BM,EAAI,GAAKA,EACT,MAAMC,EAAI,KAAK,OAAO,IAAID,CAAC,EAC3B,GAAI,OAAOC,EAAK,IACd,MAAM,IAAI,EACR,SAASN,CAAC,yBAAyBK,CAAC,sBACrC,EACH,OAAO,GACL,KAAK,MACLN,IAAM,QAAU,KAAK,KAAOA,EAC5BG,EACAI,CACD,CACP,CACI,GAAI,UAAU,SAAW,EAAG,CAC1BD,EAAI,GAAKA,EAAGD,EAAI,GAAKA,EACrB,MAAME,EAAI,KAAK,OAAO,IAAID,CAAC,EAC3B,GAAI,CAACC,EACH,MAAM,IAAI,EACR,SAASN,CAAC,0BAA0BK,CAAC,6BACtC,EACH,GAAI,CAAC,KAAK,OAAO,IAAID,CAAC,EACpB,MAAM,IAAI,EACR,SAASJ,CAAC,0BAA0BI,CAAC,6BACtC,EACH,OAAO,GACLL,EACA,KAAK,MACLG,EACAI,EACAF,CACD,CACP,CACI,MAAM,IAAI,EACR,SAASJ,CAAC,qDAAqD,UAAU,MAAM,IAChF,CACF,CACH,CACA,SAAS,GAAGC,EAAGE,EAAG,CAChB,KAAM,CAAE,KAAMH,EAAG,KAAMD,EAAG,UAAWG,CAAG,EAAGC,EAAGE,EAAI,UAAYL,EAAE,CAAC,EAAE,YAAW,EAAKA,EAAE,MAAM,EAAG,EAAE,EAChGC,EAAE,UAAUI,CAAC,EAAI,SAASQ,EAAG,EAAGF,EAAG,CACjC,GAAI,EAAEZ,IAAM,SAAW,KAAK,OAAS,SAAWA,IAAM,KAAK,MAAO,CAChE,GAAI,UAAU,SAAW,EACvB,OAAOY,EAAIE,EAAG,GAAG,GAAI,KAAMd,EAAGY,CAAC,EACjC,GAAI,UAAU,SAAW,EAAG,CAC1BE,EAAI,GAAKA,EAAGF,EAAI,EAChB,MAAMF,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,OAAOJ,EAAK,IACd,MAAM,IAAI,EACR,SAASJ,CAAC,yBAAyBQ,CAAC,sBACrC,EACH,OAAO,GACL,GACA,KAAK,MACLd,IAAM,QAAU,KAAK,KAAOA,EAC5BG,EACAO,EACAE,CACD,CACT,CACM,GAAI,UAAU,SAAW,EAAG,CAC1BE,EAAI,GAAKA,EAAG,EAAI,GAAK,EACrB,MAAMJ,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,SAASJ,CAAC,0BAA0BQ,CAAC,6BACtC,EACH,GAAI,CAAC,KAAK,OAAO,IAAI,CAAC,EACpB,MAAM,IAAI,EACR,SAASR,CAAC,0BAA0B,CAAC,6BACtC,EACH,OAAO,GACL,GACAN,EACA,KAAK,MACLG,EACAO,EACA,EACAE,CACD,CACT,CACM,MAAM,IAAI,EACR,SAASN,CAAC,qDAAqD,UAAU,MAAM,IAChF,CACP,CACG,EACD,MAAMD,EAAI,MAAQJ,EAAE,CAAC,EAAE,cAAgBA,EAAE,MAAM,CAAC,EAChDC,EAAE,UAAUG,CAAC,EAAI,UAAW,CAC1B,MAAMS,EAAI,MAAM,UAAU,MAAM,KAAK,SAAS,EAAG,EAAIA,EAAE,IAAK,EAC5D,IAAIF,EACJ,GAAIE,EAAE,SAAW,EAAG,CAClB,IAAIJ,EAAI,EACRV,IAAM,aAAeU,GAAK,KAAK,gBAAiBV,IAAM,eAAiBU,GAAK,KAAK,cAAeE,EAAI,IAAI,MAAMF,CAAC,EAC/G,IAAIS,EAAI,EACRL,EAAE,KAAK,CAACO,EAAGV,EAAGa,EAAGG,EAAGE,EAAGM,EAAGtB,IAAM,CAC9BD,EAAEO,GAAG,EAAI,EAAEE,EAAGV,EAAGa,EAAGG,EAAGE,EAAGM,EAAGtB,CAAC,CACtC,CAAO,CACF,MACCD,EAAI,CAAE,EAAEE,EAAE,KAAK,CAACJ,EAAGS,EAAGE,EAAGV,EAAGa,EAAGG,EAAGE,IAAM,CACtCjB,EAAE,KAAK,EAAEF,EAAGS,EAAGE,EAAGV,EAAGa,EAAGG,EAAGE,CAAC,CAAC,CACrC,CAAO,EACH,OAAO,KAAKvB,CAAC,EAAE,MAAM,KAAMQ,CAAC,EAAGF,CAChC,EACD,MAAML,EAAI,SAAWN,EAAE,CAAC,EAAE,cAAgBA,EAAE,MAAM,CAAC,EACnDC,EAAE,UAAUK,CAAC,EAAI,UAAW,CAC1B,MAAMO,EAAI,MAAM,UAAU,MAAM,KAAK,SAAS,EAAG,EAAIA,EAAE,IAAK,EAAEF,EAAI,CAAE,EACpE,OAAOE,EAAE,KAAK,CAACJ,EAAGS,EAAGE,EAAGV,EAAGa,EAAGG,EAAGE,IAAM,CACrC,EAAEnB,EAAGS,EAAGE,EAAGV,EAAGa,EAAGG,EAAGE,CAAC,GAAKjB,EAAE,KAAKF,CAAC,CACxC,CAAK,EAAG,KAAKJ,CAAC,EAAE,MAAM,KAAMQ,CAAC,EAAGF,CAC7B,EACD,MAAMH,EAAI,SAAWR,EAAE,CAAC,EAAE,cAAgBA,EAAE,MAAM,CAAC,EACnDC,EAAE,UAAUO,CAAC,EAAI,UAAW,CAC1B,IAAIK,EAAI,MAAM,UAAU,MAAM,KAAK,SAAS,EAC5C,GAAIA,EAAE,OAAS,GAAKA,EAAE,OAAS,EAC7B,MAAM,IAAI,EACR,SAASL,CAAC,8DAA8DK,EAAE,MAAM,IACjF,EACH,GAAI,OAAOA,EAAEA,EAAE,OAAS,CAAC,GAAK,YAAc,OAAOA,EAAEA,EAAE,OAAS,CAAC,GAAK,WACpE,MAAM,IAAI,EACR,SAASL,CAAC,kMACX,EACH,IAAI,EAAGG,EACPE,EAAE,SAAW,GAAK,EAAIA,EAAE,CAAC,EAAGF,EAAIE,EAAE,CAAC,EAAGA,EAAI,IAAMA,EAAE,SAAW,GAAK,EAAIA,EAAE,CAAC,EAAGF,EAAIE,EAAE,CAAC,EAAGA,EAAI,CAACA,EAAE,CAAC,CAAC,GAAKA,EAAE,SAAW,IAAM,EAAIA,EAAE,CAAC,EAAGF,EAAIE,EAAE,CAAC,EAAGA,EAAI,CAACA,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,GAC1J,IAAIJ,EAAIE,EACR,OAAOE,EAAE,KAAK,CAACK,EAAGE,EAAGV,EAAGa,EAAGG,EAAGE,EAAGM,IAAM,CACrCzB,EAAI,EAAEA,EAAGS,EAAGE,EAAGV,EAAGa,EAAGG,EAAGE,EAAGM,CAAC,CAClC,CAAK,EAAG,KAAK7B,CAAC,EAAE,MAAM,KAAMQ,CAAC,EAAGJ,CAC7B,CACH,CACA,SAAS,GAAGR,EAAGE,EAAG,CAChB,KAAM,CAAE,KAAMH,EAAG,KAAMD,EAAG,UAAWG,CAAG,EAAGC,EAAGE,EAAI,OAASL,EAAE,CAAC,EAAE,YAAW,EAAKA,EAAE,MAAM,EAAG,EAAE,EAC7FC,EAAE,UAAUI,CAAC,EAAI,SAASG,EAAGK,EAAG,EAAG,CACjC,GAAId,IAAM,SAAW,KAAK,OAAS,SAAWA,IAAM,KAAK,KACvD,MAAO,GACT,GAAI,UAAU,SAAW,EACvB,OAAO,EAAIS,EAAG,GAAG,GAAI,KAAMT,EAAG,CAAC,EACjC,GAAI,UAAU,SAAW,EAAG,CAC1BS,EAAI,GAAKA,EAAG,EAAIK,EAChB,MAAMF,EAAI,KAAK,OAAO,IAAIH,CAAC,EAC3B,GAAI,OAAOG,EAAK,IACd,MAAM,IAAI,EACR,SAASN,CAAC,yBAAyBG,CAAC,sBACrC,EACH,OAAO,GACL,GACA,KAAK,MACLT,IAAM,QAAU,KAAK,KAAOA,EAC5BG,EACAS,EACA,CACD,CACP,CACI,GAAI,UAAU,SAAW,EAAG,CAC1BH,EAAI,GAAKA,EAAGK,EAAI,GAAKA,EACrB,MAAMF,EAAI,KAAK,OAAO,IAAIH,CAAC,EAC3B,GAAI,CAACG,EACH,MAAM,IAAI,EACR,SAASN,CAAC,0BAA0BG,CAAC,6BACtC,EACH,GAAI,CAAC,KAAK,OAAO,IAAIK,CAAC,EACpB,MAAM,IAAI,EACR,SAASR,CAAC,0BAA0BQ,CAAC,6BACtC,EACH,OAAO,GACL,GACAd,EACA,KAAK,MACLG,EACAS,EACAE,EACA,CACD,CACP,CACI,MAAM,IAAI,EACR,SAASR,CAAC,qDAAqD,UAAU,MAAM,IAChF,CACF,EACD,MAAMD,EAAI,OAASJ,EAAE,CAAC,EAAE,YAAa,EAAGA,EAAE,MAAM,EAAG,EAAE,EACrDC,EAAE,UAAUG,CAAC,EAAI,UAAW,CAC1B,MAAMI,EAAI,MAAM,UAAU,MAAM,KAAK,SAAS,EAAGK,EAAIL,EAAE,IAAK,EAC5D,OAAOA,EAAE,KAAK,CAACG,EAAGF,EAAGS,EAAGE,EAAGV,EAAGa,EAAGG,IAAMb,EAAEF,EAAGF,EAAGS,EAAGE,EAAGV,EAAGa,EAAGG,CAAC,CAAC,EAAG,CAAC,CAAC,KAAKrB,CAAC,EAAE,MAAM,KAAMG,CAAC,CACxF,EACD,MAAMF,EAAI,QAAUN,EAAE,CAAC,EAAE,YAAa,EAAGA,EAAE,MAAM,EAAG,EAAE,EACtDC,EAAE,UAAUK,CAAC,EAAI,UAAW,CAC1B,MAAME,EAAI,MAAM,UAAU,MAAM,KAAK,SAAS,EAAGK,EAAIL,EAAE,IAAK,EAC5D,OAAOA,EAAE,KAAK,CAACG,EAAGF,EAAGS,EAAGE,EAAGV,EAAGa,EAAGG,IAAM,CAACb,EAAEF,EAAGF,EAAGS,EAAGE,EAAGV,EAAGa,EAAGG,CAAC,CAAC,EAAG,CAAC,KAAKrB,CAAC,EAAE,MAAM,KAAMG,CAAC,CACxF,CACH,CACA,SAAS,GAAGP,EAAGE,EAAG,CAChB,KAAM,CAAE,KAAMH,EAAG,KAAMD,EAAG,UAAWG,CAAC,EAAKC,EAAGE,EAAIL,EAAE,MAAM,EAAG,EAAE,EAAI,UACnEC,EAAE,UAAUI,CAAC,EAAI,SAASD,EAAGE,EAAG,CAC9B,GAAIP,IAAM,SAAW,KAAK,OAAS,SAAWA,IAAM,KAAK,KACvD,OAAO,GAAI,EACb,GAAI,CAAC,UAAU,OAAQ,OAAO,GAAG,KAAMA,CAAC,EACxC,GAAI,UAAU,SAAW,EAAG,CAC1BK,EAAI,GAAKA,EACT,MAAMI,EAAI,KAAK,OAAO,IAAIJ,CAAC,EAC3B,GAAI,CAACI,EACH,MAAM,IAAI,EACR,SAASH,CAAC,yBAAyBD,CAAC,sBACrC,EACH,OAAO,GAAGL,EAAGG,EAAGM,CAAC,CACvB,CACI,GAAI,UAAU,SAAW,EAAG,CAC1BJ,EAAI,GAAKA,EAAGE,EAAI,GAAKA,EACrB,MAAME,EAAI,KAAK,OAAO,IAAIJ,CAAC,EAC3B,GAAI,CAACI,EACH,MAAM,IAAI,EACR,SAASH,CAAC,0BAA0BD,CAAC,6BACtC,EACH,GAAI,CAAC,KAAK,OAAO,IAAIE,CAAC,EACpB,MAAM,IAAI,EACR,SAASD,CAAC,0BAA0BC,CAAC,6BACtC,EACH,OAAO,GAAGP,EAAGG,EAAGM,EAAGF,CAAC,CAC1B,CACI,MAAM,IAAI,EACR,SAASD,CAAC,qDAAqD,UAAU,MAAM,IAChF,CACF,CACH,CACA,SAAS,GAAGJ,EAAG,CACb,GAAG,QAASE,GAAM,CAChB,GAAGF,EAAGE,CAAC,EAAG,GAAGF,EAAGE,CAAC,EAAG,GAAGF,EAAGE,CAAC,EAAG,GAAGF,EAAGE,CAAC,CACzC,CAAG,CACH,CACA,MAAM,GAAK,CACT,CACE,KAAM,YACN,KAAM,OACP,EACD,CACE,KAAM,cACN,KAAM,WACN,UAAW,IACZ,EACD,CACE,KAAM,eACN,KAAM,WACN,UAAW,KACZ,EACD,CACE,KAAM,mBACN,KAAM,QACN,UAAW,IACZ,EACD,CACE,KAAM,oBACN,KAAM,QACN,UAAW,KACZ,EACD,CACE,KAAM,oBACN,KAAM,UACP,EACD,CACE,KAAM,sBACN,KAAM,YACV,CACA,EACA,SAAS,IAAK,CACZ,KAAK,EAAI,KAAM,KAAK,EAAI,IAC1B,CACA,GAAG,UAAU,KAAO,SAASF,EAAG,CAC9B,KAAK,IAAM,KAAO,KAAK,EAAIA,EAAI,KAAK,IAAM,OAAS,KAAK,EAAIA,EAC9D,EACA,GAAG,UAAU,IAAM,SAASA,EAAG,CAC7B,OAAO,KAAK,IAAM,MAAQA,KAAK,KAAK,GAAK,KAAK,IAAM,MAAQA,KAAK,KAAK,CACxE,EACA,SAAS,GAAGA,EAAGE,EAAGH,EAAGD,EAAGG,EAAG,CACzB,UAAWG,KAAKN,EAAG,CACjB,MAAMK,EAAIL,EAAEM,CAAC,EAAGC,EAAIF,EAAE,OAAQI,EAAIJ,EAAE,OAAQS,EAAIP,IAAMN,EAAIQ,EAAIF,EAC9D,GAAIH,GAAKA,EAAE,IAAIU,EAAE,GAAG,EAAG,SACvB,MAAM,EAAIX,EAAEW,EAAE,IAAKA,EAAE,UAAU,EAC/B,GAAIZ,GAAK,EAAG,OAAOY,EAAE,GACzB,CACA,CACA,SAAS,GAAGZ,EAAGE,EAAGH,EAAGD,EAAGG,EAAG,CACzB,GAAIC,IAAM,QAAS,CACjB,GAAIA,IAAM,aACR,OAAO,GACLF,EACA,KACAF,EACAA,EAAE,WACFG,CACD,EACH,GAAI,OAAOF,GAAK,SACd,OAAO,GACLC,EACA,KACAF,EACAA,EAAEC,CAAC,EACHE,CACD,CACP,CACE,MAAMG,EAAI,IAAI,GACd,IAAID,EACJ,GAAID,IAAM,aAAc,CACtB,GAAIH,IAAM,MAAO,CACf,GAAII,EAAI,GACNH,EACA,KACAF,EACAA,EAAE,GACFG,CACR,EAASD,GAAKG,EAAG,OAAOA,EAClBC,EAAE,KAAKN,EAAE,EAAE,CACjB,CACI,GAAIC,IAAM,KAAM,CACd,GAAII,EAAI,GACNH,EACAI,EACAN,EACAA,EAAE,IACFG,CACR,EAASD,GAAKG,EAAG,OAAOA,EAClBC,EAAE,KAAKN,EAAE,GAAG,CAClB,CACA,CACE,GAAII,IAAM,aAAeC,EAAI,GAC3BH,EACAI,EACAN,EACAA,EAAE,WACFG,CACJ,EAAKD,GAAKG,GACN,OAAOA,CACX,CACA,SAAS,GAAGH,EAAGE,EAAGH,EAAG,CACnB,GAAIC,IAAM,QAAS,CACjB,GAAIA,IAAM,aAAc,OAAO,OAAO,KAAKD,EAAE,UAAU,EACvD,GAAI,OAAOG,GAAK,SAAU,OAAO,OAAO,KAAKH,EAAEG,CAAC,CAAC,CACrD,CACE,MAAMJ,EAAI,CAAE,EACZ,OAAO,GAAG,GAAIE,EAAGE,EAAGH,EAAG,SAASE,EAAG,CACjCH,EAAE,KAAKG,CAAC,CACT,CAAA,EAAGH,CACN,CACA,SAAS,GAAGE,EAAGE,EAAGH,EAAG,CACnB,MAAMD,EAAI,OAAO,KAAKC,CAAC,EAAGE,EAAIH,EAAE,OAChC,IAAIM,EAAI,EACR,MAAO,CACL,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,IACR,EACD,MAAO,CACL,IAAID,EAAI,KACR,EAAG,CACD,GAAIC,GAAKH,EACP,OAAOD,GAAKA,EAAE,KAAKD,CAAC,EAAG,CAAE,KAAM,EAAI,EACrC,MAAMM,EAAIN,EAAED,EAAEM,GAAG,CAAC,EAAGG,EAAIF,EAAE,OAAQO,EAAIP,EAAE,OACzC,GAAIF,EAAII,IAAML,EAAIU,EAAIL,EAAGP,GAAKA,EAAE,IAAIG,EAAE,GAAG,EAAG,CAC1CA,EAAI,KACJ,QACV,CACO,OAAQA,IAAM,MACf,MAAO,CACL,KAAM,GACN,MAAO,CAAE,SAAUA,EAAE,IAAK,WAAYA,EAAE,UAAU,CACnD,CACP,CACG,CACH,CACA,SAAS,GAAGH,EAAGE,EAAGH,EAAG,CACnB,GAAIC,IAAM,QAAS,CACjB,GAAIA,IAAM,aACR,OAAO,GAAG,KAAMD,EAAGA,EAAE,UAAU,EACjC,GAAI,OAAOG,GAAK,SACd,OAAO,GAAG,KAAMH,EAAGA,EAAEG,CAAC,CAAC,CAC7B,CACE,IAAIJ,EAAI,GAAI,EACZ,MAAMG,EAAI,IAAI,GACd,OAAOD,IAAM,eAAiBE,IAAM,QAAUJ,EAAI,GAChDA,EACA,GAAGG,EAAGF,EAAGA,EAAE,EAAE,CACd,GAAGG,IAAM,OAASJ,EAAI,GACrBA,EACA,GAAGG,EAAGF,EAAGA,EAAE,GAAG,CACf,IAAIC,IAAM,aAAeF,EAAI,GAC5BA,EACA,GAAGG,EAAGF,EAAGA,EAAE,UAAU,CACtB,GAAGD,CACN,CACA,SAAS,GAAGE,EAAGE,EAAG,CAChB,KAAM,CAAE,KAAMH,EAAG,KAAMD,EAAG,UAAWG,CAAC,EAAKC,EAC3CF,EAAE,UAAUD,CAAC,EAAI,SAASK,EAAG,CAC3B,GAAIN,IAAM,SAAW,KAAK,OAAS,SAAWA,IAAM,KAAK,KACvD,MAAO,CAAE,EACXM,EAAI,GAAKA,EACT,MAAMD,EAAI,KAAK,OAAO,IAAIC,CAAC,EAC3B,GAAI,OAAOD,EAAK,IACd,MAAM,IAAI,EACR,SAASJ,CAAC,yBAAyBK,CAAC,sBACrC,EACH,OAAO,GACLN,IAAM,QAAU,KAAK,KAAOA,EAC5BG,EACAE,CACD,CACF,CACH,CACA,SAAS,GAAGH,EAAGE,EAAG,CAChB,KAAM,CAAE,KAAMH,EAAG,KAAMD,EAAG,UAAWG,CAAG,EAAGC,EAAGE,EAAI,UAAYL,EAAE,CAAC,EAAE,YAAW,EAAKA,EAAE,MAAM,EAAG,EAAE,EAChGC,EAAE,UAAUI,CAAC,EAAI,SAASQ,EAAG,EAAG,CAC9B,GAAId,IAAM,SAAW,KAAK,OAAS,SAAWA,IAAM,KAAK,KAAM,OAC/Dc,EAAI,GAAKA,EACT,MAAMF,EAAI,KAAK,OAAO,IAAIE,CAAC,EAC3B,GAAI,OAAOF,EAAK,IACd,MAAM,IAAI,EACR,SAASN,CAAC,yBAAyBQ,CAAC,sBACrC,EACH,GACE,GACAd,IAAM,QAAU,KAAK,KAAOA,EAC5BG,EACAS,EACA,CACD,CACF,EACD,MAAMP,EAAI,MAAQJ,EAAE,CAAC,EAAE,cAAgBA,EAAE,MAAM,CAAC,EAChDC,EAAE,UAAUG,CAAC,EAAI,SAASS,EAAG,EAAG,CAC9B,MAAMF,EAAI,CAAE,EACZ,OAAO,KAAKN,CAAC,EAAEQ,EAAG,CAACJ,EAAGS,IAAM,CAC1BP,EAAE,KAAK,EAAEF,EAAGS,CAAC,CAAC,CACf,CAAA,EAAGP,CACL,EACD,MAAML,EAAI,SAAWN,EAAE,CAAC,EAAE,cAAgBA,EAAE,MAAM,CAAC,EACnDC,EAAE,UAAUK,CAAC,EAAI,SAASO,EAAG,EAAG,CAC9B,MAAMF,EAAI,CAAE,EACZ,OAAO,KAAKN,CAAC,EAAEQ,EAAG,CAACJ,EAAGS,IAAM,CAC1B,EAAET,EAAGS,CAAC,GAAKP,EAAE,KAAKF,CAAC,CACpB,CAAA,EAAGE,CACL,EACD,MAAMH,EAAI,SAAWR,EAAE,CAAC,EAAE,cAAgBA,EAAE,MAAM,CAAC,EACnDC,EAAE,UAAUO,CAAC,EAAI,SAASK,EAAG,EAAGF,EAAG,CACjC,GAAI,UAAU,OAAS,EACrB,MAAM,IAAI,EACR,SAASH,CAAC,kMACX,EACH,IAAIC,EAAIE,EACR,OAAO,KAAKN,CAAC,EAAEQ,EAAG,CAACK,EAAGE,IAAM,CAC1BX,EAAI,EAAEA,EAAGS,EAAGE,CAAC,CACd,CAAA,EAAGX,CACL,CACH,CACA,SAAS,GAAGR,EAAGE,EAAG,CAChB,KAAM,CAAE,KAAMH,EAAG,KAAMD,EAAG,UAAWG,CAAC,EAAKC,EAAGE,EAAIL,EAAE,CAAC,EAAE,cAAgBA,EAAE,MAAM,EAAG,EAAE,EAAGI,EAAI,OAASC,EACpGJ,EAAE,UAAUG,CAAC,EAAI,SAASS,EAAG,EAAG,CAC9B,GAAId,IAAM,SAAW,KAAK,OAAS,SAAWA,IAAM,KAAK,KAAM,OAC/Dc,EAAI,GAAKA,EACT,MAAMF,EAAI,KAAK,OAAO,IAAIE,CAAC,EAC3B,GAAI,OAAOF,EAAK,IACd,MAAM,IAAI,EACR,SAASP,CAAC,yBAAyBS,CAAC,sBACrC,EACH,OAAO,GACL,GACAd,IAAM,QAAU,KAAK,KAAOA,EAC5BG,EACAS,EACA,CACD,CACF,EACD,MAAML,EAAI,OAASD,EACnBJ,EAAE,UAAUK,CAAC,EAAI,SAASO,EAAG,EAAG,CAC9B,MAAO,CAAC,CAAC,KAAKT,CAAC,EAAES,EAAG,CAAC,CACtB,EACD,MAAML,EAAI,QAAUH,EACpBJ,EAAE,UAAUO,CAAC,EAAI,SAASK,EAAG,EAAG,CAC9B,MAAO,CAAC,KAAKT,CAAC,EAAES,EAAG,CAACJ,EAAGS,IAAM,CAAC,EAAET,EAAGS,CAAC,CAAC,CACtC,CACH,CACA,SAAS,GAAGjB,EAAGE,EAAG,CAChB,KAAM,CAAE,KAAMH,EAAG,KAAMD,EAAG,UAAWG,CAAC,EAAKC,EAAGE,EAAIL,EAAE,MAAM,EAAG,EAAE,EAAI,UACnEC,EAAE,UAAUI,CAAC,EAAI,SAASD,EAAG,CAC3B,GAAIL,IAAM,SAAW,KAAK,OAAS,SAAWA,IAAM,KAAK,KACvD,OAAO,GAAI,EACbK,EAAI,GAAKA,EACT,MAAME,EAAI,KAAK,OAAO,IAAIF,CAAC,EAC3B,GAAI,OAAOE,EAAK,IACd,MAAM,IAAI,EACR,SAASD,CAAC,yBAAyBD,CAAC,sBACrC,EACH,OAAO,GACLL,IAAM,QAAU,KAAK,KAAOA,EAC5BG,EACAI,CACD,CACF,CACH,CACA,SAAS,GAAGL,EAAG,CACb,GAAG,QAASE,GAAM,CAChB,GAAGF,EAAGE,CAAC,EAAG,GAAGF,EAAGE,CAAC,EAAG,GAAGF,EAAGE,CAAC,EAAG,GAAGF,EAAGE,CAAC,CACzC,CAAG,CACH,CACA,SAAS,GAAGF,EAAGE,EAAGH,EAAGD,EAAGG,EAAG,CACzB,MAAMG,EAAIN,EAAE,OAAO,OAAM,EAAIK,EAAIL,EAAE,KACnC,IAAIO,EAAGE,EAAGK,EAAG,EAAGF,EAAGF,EACnB,KAAOH,EAAID,EAAE,KAAM,EAAEC,EAAE,OAAS,IAAM,CACpC,IAAIY,EAAI,GACR,GAAIV,EAAIF,EAAE,MAAOF,IAAM,aAAc,CACnC,EAAII,EAAE,IACN,IAAKK,KAAK,EAAG,CACXF,EAAI,EAAEE,CAAC,EACP,GACEJ,EAAIE,EAAE,OAAQO,EAAI,GAAIhB,EACpBM,EAAE,IACFC,EAAE,IACFD,EAAE,WACFC,EAAE,WACFE,EAAE,IACFA,EAAE,WACFA,EAAE,UACd,EAAaA,EAAIA,EAAE,WACJA,EACf,CACA,CACI,GAAIP,IAAM,WAAY,CACpB,EAAII,EAAE,WACN,IAAKK,KAAK,EACR,GAAI,EAAEV,GAAKK,EAAE,IAAMK,GAAI,CACrBF,EAAI,EAAEE,CAAC,EACP,GACEJ,EAAIE,EAAE,OAAQF,EAAE,MAAQI,IAAMJ,EAAIE,EAAE,QAASO,EAAI,GAAIhB,EACnDM,EAAE,IACFC,EAAE,IACFD,EAAE,WACFC,EAAE,WACFE,EAAE,IACFA,EAAE,WACFA,EAAE,UAChB,EAAeA,EAAIA,EAAE,WACJA,EACjB,CACA,CACIX,GAAK,CAACkB,GAAKhB,EACTM,EAAE,IACF,KACAA,EAAE,WACF,KACA,KACA,KACA,IACD,CACL,CACA,CACA,SAAS,GAAGP,EAAGE,EAAG,CAChB,MAAMH,EAAI,CAAE,IAAKC,CAAG,EACpB,OAAO,GAAGE,EAAE,UAAU,IAAMH,EAAE,WAAa,GAAG,GAAIG,EAAE,UAAU,GAAIH,CACpE,CACA,SAAS,GAAGC,EAAGE,EAAGH,EAAG,CACnB,MAAMD,EAAI,CACR,IAAKI,EACL,OAAQH,EAAE,OAAO,IACjB,OAAQA,EAAE,OAAO,GAClB,EACD,OAAO,GAAGA,EAAE,UAAU,IAAMD,EAAE,WAAa,GAAG,CAAA,EAAIC,EAAE,UAAU,GAAIC,IAAM,SAAWD,EAAE,aAAeD,EAAE,WAAa,IAAKA,CAC1H,CACA,SAAS,GAAGE,EAAG,CACb,GAAI,CAAC,GAAGA,CAAC,EACP,MAAM,IAAI,EACR,mHACD,EACH,GAAI,EAAE,QAASA,GACb,MAAM,IAAI,EACR,mDACD,EACH,GAAI,eAAgBA,IAAM,CAAC,GAAGA,EAAE,UAAU,GAAKA,EAAE,aAAe,MAC9D,MAAM,IAAI,EACR,yFACD,CACL,CACA,SAAS,GAAGA,EAAG,CACb,GAAI,CAAC,GAAGA,CAAC,EACP,MAAM,IAAI,EACR,iIACD,EACH,GAAI,EAAE,WAAYA,GAChB,MAAM,IAAI,EACR,sDACD,EACH,GAAI,EAAE,WAAYA,GAChB,MAAM,IAAI,EACR,sDACD,EACH,GAAI,eAAgBA,IAAM,CAAC,GAAGA,EAAE,UAAU,GAAKA,EAAE,aAAe,MAC9D,MAAM,IAAI,EACR,yFACD,EACH,GAAI,eAAgBA,GAAK,OAAOA,EAAE,YAAc,UAC9C,MAAM,IAAI,EACR,4FACD,CACL,CACA,MAAM,GAAK,GAAE,EAAI,GAAqB,IAAI,IAAI,CAAC,WAAY,aAAc,OAAO,CAAC,EAAG,GAAqB,IAAI,IAAI,CAC/G,SACA,UACA,eACA,eACF,CAAC,EAAG,GAAK,CACP,CACE,KAAOA,GAAM,GAAGA,CAAC,OACjB,YAAa,EACd,EACD,CACE,KAAOA,GAAM,GAAGA,CAAC,eACjB,YAAa,GACb,KAAM,UACP,EACD,CACE,KAAOA,GAAM,GAAGA,CAAC,iBACjB,YAAa,GACb,KAAM,YACP,EACD,CACE,KAAOA,GAAM,GAAGA,CAAC,aAClB,EACD,CACE,KAAOA,GAAM,GAAGA,CAAC,sBACjB,KAAM,UACP,EACD,CACE,KAAOA,GAAM,GAAGA,CAAC,wBACjB,KAAM,YACV,CACA,EAAG,GAAK,CACN,eAAgB,GAChB,MAAO,GACP,KAAM,OACR,EACA,SAAS,GAAGA,EAAGE,EAAGH,EAAG,CACnB,GAAIA,GAAK,CAAC,GAAGA,CAAC,EACZ,MAAM,IAAI,EACR,mEAAmEA,CAAC,GACrE,EACH,GAAIG,EAAI,GAAKA,EAAGH,EAAIA,GAAK,CAAE,EAAEC,EAAE,OAAO,IAAIE,CAAC,EACzC,MAAM,IAAI,EACR,uBAAuBA,CAAC,oCACzB,EACH,MAAMJ,EAAI,IAAIE,EAAE,cAAcE,EAAGH,CAAC,EAClC,OAAOC,EAAE,OAAO,IAAIE,EAAGJ,CAAC,EAAGE,EAAE,KAAK,YAAa,CAC7C,IAAKE,EACL,WAAYH,CACb,CAAA,EAAGD,CACN,CACA,SAAS,GAAGE,EAAGE,EAAGH,EAAG,CACnB,MAAMD,EAAI,IAAIE,EAAE,cAAcE,EAAGH,CAAC,EAClC,OAAOC,EAAE,OAAO,IAAIE,EAAGJ,CAAC,EAAGE,EAAE,KAAK,YAAa,CAC7C,IAAKE,EACL,WAAYH,CACb,CAAA,EAAGD,CACN,CACA,SAAS,GAAGE,EAAGE,EAAGH,EAAGD,EAAGG,EAAGG,EAAGD,EAAGE,EAAG,CAClC,GAAI,CAACP,GAAKE,EAAE,OAAS,aACnB,MAAM,IAAI,EACR,SAASE,CAAC,4GACX,EACH,GAAIJ,GAAKE,EAAE,OAAS,WAClB,MAAM,IAAI,EACR,SAASE,CAAC,0GACX,EACH,GAAIG,GAAK,CAAC,GAAGA,CAAC,EACZ,MAAM,IAAI,EACR,SAASH,CAAC,sDAAsDG,CAAC,GAClE,EACH,GAAID,EAAI,GAAKA,EAAGD,EAAI,GAAKA,EAAGE,EAAIA,GAAK,CAAA,EAAI,CAACL,EAAE,gBAAkBI,IAAMD,EAClE,MAAM,IAAI,EACR,SAASD,CAAC,oCAAoCE,CAAC,mGAChD,EACH,MAAMG,EAAIP,EAAE,OAAO,IAAII,CAAC,EAAGQ,EAAIZ,EAAE,OAAO,IAAIG,CAAC,EAC7C,GAAI,CAACI,EACH,MAAM,IAAI,EACR,SAASL,CAAC,kBAAkBE,CAAC,cAC9B,EACH,GAAI,CAACQ,EACH,MAAM,IAAI,EACR,SAASV,CAAC,kBAAkBC,CAAC,cAC9B,EACH,MAAM,EAAI,CACR,IAAK,KACL,WAAYL,EACZ,OAAQM,EACR,OAAQD,EACR,WAAYE,CACb,EACD,GAAIN,EACFE,EAAID,EAAE,kBAAmB,UAClBC,EAAI,GAAKA,EAAGD,EAAE,OAAO,IAAIC,CAAC,EACjC,MAAM,IAAI,EACR,SAASC,CAAC,UAAUD,CAAC,qCACtB,EACH,GAAI,CAACD,EAAE,QAAUF,EAAI,OAAOS,EAAE,WAAWJ,CAAC,EAAK,IAAc,OAAOI,EAAE,IAAIJ,CAAC,EAAK,KAC9E,MAAM,IAAI,EACR,SAASD,CAAC,sBAAsBE,CAAC,SAASD,CAAC,8IAC5C,EACH,MAAMO,EAAI,IAAI,GACZZ,EACAG,EACAM,EACAK,EACAP,CACD,EACDL,EAAE,OAAO,IAAIC,EAAGS,CAAC,EACjB,MAAMF,EAAIJ,IAAMD,EAChB,OAAOL,GAAKS,EAAE,mBAAoBK,EAAE,mBAAoBJ,IAAMD,EAAE,kBAAmBP,EAAE,8BAAgCO,EAAE,YAAaK,EAAE,WAAYJ,IAAMD,EAAE,gBAAiBP,EAAE,2BAA4BA,EAAE,MAAQU,EAAE,cAAgBA,EAAE,OAAM,EAAIZ,EAAIE,EAAE,kBAAoBA,EAAE,gBAAiB,EAAE,IAAMC,EAAGD,EAAE,KAAK,YAAa,CAAC,EAAGC,CACnU,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAGD,EAAGG,EAAGG,EAAGD,EAAGE,EAAGE,EAAG,CACrC,GAAI,CAACT,GAAKE,EAAE,OAAS,aACnB,MAAM,IAAI,EACR,SAASE,CAAC,oIACX,EACH,GAAIJ,GAAKE,EAAE,OAAS,WAClB,MAAM,IAAI,EACR,SAASE,CAAC,kIACX,EACH,GAAIG,GACF,GAAIE,GACF,GAAI,OAAOF,GAAK,WACd,MAAM,IAAI,EACR,SAASH,CAAC,6DAA6DG,CAAC,GACzE,UACM,CAAC,GAAGA,CAAC,EACd,MAAM,IAAI,EACR,SAASH,CAAC,sDAAsDG,CAAC,GAClE,EAELD,EAAI,GAAKA,EAAGD,EAAI,GAAKA,EACrB,IAAIS,EACJ,GAAIL,IAAMK,EAAIP,EAAGA,EAAI,QAAS,CAACL,EAAE,gBAAkBI,IAAMD,EACvD,MAAM,IAAI,EACR,SAASD,CAAC,oCAAoCE,CAAC,mGAChD,EACH,IAAI,EAAIJ,EAAE,OAAO,IAAII,CAAC,EAAGM,EAAIV,EAAE,OAAO,IAAIG,CAAC,EAAGK,EAAGS,EACjD,GAAI,CAAClB,IAAMS,EAAIR,EAAE,OAAO,IAAIC,CAAC,EAAGO,GAAI,CAClC,IAAKA,EAAE,OAAO,MAAQJ,GAAKI,EAAE,OAAO,MAAQL,KAAO,CAACL,GAAKU,EAAE,OAAO,MAAQL,GAAKK,EAAE,OAAO,MAAQJ,GAC9F,MAAM,IAAI,EACR,SAASF,CAAC,0DAA0DD,CAAC,gBAAgBG,CAAC,eAAeD,CAAC,kBAAkBK,EAAE,OAAO,GAAG,OAAOA,EAAE,OAAO,GAAG,KACxJ,EACHS,EAAIT,CACR,CACE,GAAI,CAACS,GAAK,CAACjB,EAAE,OAAS,IAAMiB,EAAInB,EAAI,EAAE,WAAWK,CAAC,EAAI,EAAE,IAAIA,CAAC,GAAIc,EAAG,CAClE,MAAMU,EAAI,CAACV,EAAE,IAAK,GAAI,GAAI,EAAE,EAC5B,GAAIV,EAAI,CAACK,EAAI,CAACP,EAAG,OAAOsB,EACxB,GAAIpB,EAAG,CACL,MAAM0B,EAAIhB,EAAE,WACZA,EAAE,WAAaL,EAAEqB,CAAC,EAAGjC,EAAE,KAAK,wBAAyB,CACnD,KAAM,UACN,IAAKiB,EAAE,IACP,WAAYA,EAAE,UACtB,CAAO,CACF,MACC,GAAGA,EAAE,WAAYZ,CAAC,EAAGL,EAAE,KAAK,wBAAyB,CACnD,KAAM,QACN,IAAKiB,EAAE,IACP,WAAYA,EAAE,WACd,KAAMZ,CACd,CAAO,EACH,OAAOsB,CACX,CACEtB,EAAIA,GAAK,CAAA,EAAIE,GAAKK,IAAMP,EAAIO,EAAEP,CAAC,GAC/B,MAAMc,EAAI,CACR,IAAK,KACL,WAAYrB,EACZ,OAAQM,EACR,OAAQD,EACR,WAAYE,CACb,EACD,GAAIN,EACFE,EAAID,EAAE,kBAAmB,UAClBC,EAAI,GAAKA,EAAGD,EAAE,OAAO,IAAIC,CAAC,EACjC,MAAM,IAAI,EACR,SAASC,CAAC,UAAUD,CAAC,qCACtB,EACH,IAAIQ,EAAI,GAAIa,EAAI,GAChB,IAAM,EAAI,GAAGtB,EAAGI,EAAG,CAAE,CAAA,EAAGK,EAAI,GAAIL,IAAMD,IAAMO,EAAI,EAAGY,EAAI,KAAMZ,IAAMA,EAAI,GAAGV,EAAGG,EAAG,CAAE,CAAA,EAAGmB,EAAI,IAAKd,EAAI,IAAI,GAAGV,EAAGG,EAAG,EAAGS,EAAGL,CAAC,EAAGL,EAAE,OAAO,IAAIC,EAAGO,CAAC,EAC1I,MAAMiB,EAAIrB,IAAMD,EAChB,OAAOL,GAAK,EAAE,mBAAoBY,EAAE,mBAAoBe,IAAM,EAAE,kBAAmBzB,EAAE,8BAAgC,EAAE,YAAaU,EAAE,WAAYe,IAAM,EAAE,gBAAiBzB,EAAE,2BAA4BA,EAAE,MAAQQ,EAAE,YAAW,EAAKA,EAAE,SAAUV,EAAIE,EAAE,kBAAoBA,EAAE,gBAAiBmB,EAAE,IAAMlB,EAAGD,EAAE,KAAK,YAAamB,CAAC,EAAG,CAAClB,EAAG,GAAIQ,EAAGa,CAAC,CAC/U,CACA,SAAS,GAAGtB,EAAGE,EAAG,CAChBF,EAAE,OAAO,OAAOE,EAAE,GAAG,EACrB,KAAM,CAAE,OAAQH,EAAG,OAAQD,EAAG,WAAYG,CAAG,EAAGC,EAAGE,EAAIF,EAAE,WAAYC,EAAIJ,IAAMD,EAC/EM,GAAKL,EAAE,mBAAoBD,EAAE,mBAAoBK,IAAMJ,EAAE,kBAAmBC,EAAE,8BAAgCD,EAAE,YAAaD,EAAE,WAAYK,IAAMJ,EAAE,gBAAiBC,EAAE,2BAA4BA,EAAE,MAAQE,EAAE,YAAa,EAAGA,EAAE,OAAQ,EAAEE,EAAIJ,EAAE,kBAAoBA,EAAE,gBAAiBA,EAAE,KAAK,cAAe,CAC3S,IAAKE,EAAE,IACP,WAAYD,EACZ,OAAQF,EAAE,IACV,OAAQD,EAAE,IACV,WAAYM,CAChB,CAAG,CACH,CACA,MAAM,WAAW,GAAG,YAAa,CAC/B,YAAYF,EAAG,CACb,GAAI,MAAO,EAAEA,EAAI,GAAG,CAAE,EAAE,GAAIA,CAAC,EAAG,OAAOA,EAAE,OAAS,UAChD,MAAM,IAAI,EACR,2EAA2EA,EAAE,KAAK,IACnF,EACH,GAAI,CAAC,GAAG,IAAIA,EAAE,IAAI,EAChB,MAAM,IAAI,EACR,2GAA2GA,EAAE,IAAI,IAClH,EACH,GAAI,OAAOA,EAAE,gBAAkB,UAC7B,MAAM,IAAI,EACR,oFAAoFA,EAAE,cAAc,IACrG,EACH,MAAMH,EAAIG,EAAE,OAAS,QAAU,GAAKA,EAAE,OAAS,WAAa,GAAK,GACjE,GAAG,KAAM,gBAAiBH,CAAC,EAC3B,MAAMD,EAAI,QAAU,GAAE,EAAK,IAC3B,IAAIG,EAAI,EACR,MAAMG,EAAI,IAAM,CACd,IAAID,EACJ,GACEA,EAAIL,EAAIG,UACH,KAAK,OAAO,IAAIE,CAAC,GACxB,OAAOA,CACR,EACD,GAAG,KAAM,cAAe,CAAE,CAAA,EAAG,GAAG,KAAM,SAA0B,IAAI,GAAK,EAAG,GAAG,KAAM,SAA0B,IAAI,GAAK,EAAG,GAAG,KAAM,gBAAiB,CAAC,EAAG,GAAG,KAAM,kBAAmB,CAAC,EAAG,GAAG,KAAM,yBAA0B,CAAC,EAAG,GAAG,KAAM,2BAA4B,CAAC,EAAG,GAAG,KAAM,oBAAqBC,CAAC,EAAG,GAAG,KAAM,WAAYF,CAAC,EAAG,GAAG,QAASC,GAAM,GAAG,KAAMA,EAAG,KAAKA,CAAC,CAAC,CAAC,EAAG,GAAG,KAAM,QAAS,IAAM,KAAK,OAAO,IAAI,EAAG,GAAG,KAAM,OAAQ,IAAM,KAAK,OAAO,IAAI,EAAG,GAAG,KAAM,eAAgB,IAAM,KAAK,aAAa,EAAG,GAAG,KAAM,iBAAkB,IAAM,KAAK,eAAe,EAAG,GAC5iB,KACA,gBACA,IAAM,KAAK,uBAAyB,KAAK,wBAC/C,EAAO,GACD,KACA,wBACA,IAAM,KAAK,sBACjB,EAAO,GACD,KACA,0BACA,IAAM,KAAK,wBACZ,EAAE,GAAG,KAAM,QAAS,KAAK,SAAS,KAAK,EAAG,GAAG,KAAM,OAAQ,KAAK,SAAS,IAAI,EAAG,GAAG,KAAM,iBAAkB,KAAK,SAAS,cAAc,EAAG,GAAG,KAAM,iBAAkB,IAAM,YAAY,CAC5L,CACE,wBAAyB,CACvB,KAAK,cAAgB,EAAG,KAAK,gBAAkB,EAAG,KAAK,uBAAyB,EAAG,KAAK,yBAA2B,CACvH,CAWE,QAAQD,EAAG,CACT,OAAO,KAAK,OAAO,IAAI,GAAKA,CAAC,CACjC,CAeE,gBAAgBA,EAAGH,EAAG,CACpB,GAAI,KAAK,OAAS,aAAc,MAAO,GACvC,GAAI,UAAU,SAAW,EAAG,CAC1B,MAAMD,EAAI,GAAKI,EAAGD,EAAI,KAAK,OAAO,IAAIH,CAAC,EACvC,MAAO,CAAC,CAACG,GAAK,CAACA,EAAE,UACvB,SAAe,UAAU,SAAW,EAAG,CACjCC,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,OAAOJ,EAAIA,EAAE,IAAI,eAAeC,CAAC,EAAI,EAC3C,CACI,MAAM,IAAI,EACR,yCAAyC,UAAU,MAAM,sHAC1D,CACL,CAeE,kBAAkBG,EAAGH,EAAG,CACtB,GAAI,KAAK,OAAS,WAAY,MAAO,GACrC,GAAI,UAAU,SAAW,EAAG,CAC1B,MAAMD,EAAI,GAAKI,EAAGD,EAAI,KAAK,OAAO,IAAIH,CAAC,EACvC,MAAO,CAAC,CAACG,GAAKA,EAAE,UACtB,SAAe,UAAU,SAAW,EAAG,CACjCC,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,OAAOJ,EAAIA,EAAE,WAAW,eAAeC,CAAC,EAAI,EAClD,CACI,MAAM,IAAI,EACR,yCAAyC,UAAU,MAAM,sHAC1D,CACL,CAeE,QAAQG,EAAGH,EAAG,CACZ,GAAI,UAAU,SAAW,EAAG,CAC1B,MAAMD,EAAI,GAAKI,EACf,OAAO,KAAK,OAAO,IAAIJ,CAAC,CAC9B,SAAe,UAAU,SAAW,EAAG,CACjCI,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,OAAOJ,EAAI,OAAOA,EAAE,IAAO,KAAeA,EAAE,IAAI,eAAeC,CAAC,GAAK,OAAOD,EAAE,WAAc,KAAeA,EAAE,WAAW,eAAeC,CAAC,EAAI,EAClJ,CACI,MAAM,IAAI,EACR,iCAAiC,UAAU,MAAM,sHAClD,CACL,CAYE,aAAaG,EAAGH,EAAG,CACjB,GAAI,KAAK,OAAS,aAAc,OAChC,GAAIG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EAAG,KAAK,MAC/B,MAAM,IAAI,EACR,0JACD,EACH,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,2CAA2CI,CAAC,6BAC7C,EACH,GAAI,CAAC,KAAK,OAAO,IAAIH,CAAC,EACpB,MAAM,IAAI,EACR,2CAA2CA,CAAC,6BAC7C,EACH,MAAME,EAAIH,EAAE,KAAOA,EAAE,IAAIC,CAAC,GAAK,OAC/B,GAAIE,EAAG,OAAOA,EAAE,GACpB,CAYE,eAAeC,EAAGH,EAAG,CACnB,GAAI,KAAK,OAAS,WAAY,OAC9B,GAAIG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EAAG,KAAK,MAC/B,MAAM,IAAI,EACR,8JACD,EACH,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,6CAA6CI,CAAC,6BAC/C,EACH,GAAI,CAAC,KAAK,OAAO,IAAIH,CAAC,EACpB,MAAM,IAAI,EACR,6CAA6CA,CAAC,6BAC/C,EACH,MAAME,EAAIH,EAAE,YAAcA,EAAE,WAAWC,CAAC,GAAK,OAC7C,GAAIE,EAAG,OAAOA,EAAE,GACpB,CAYE,KAAKC,EAAGH,EAAG,CACT,GAAI,KAAK,MACP,MAAM,IAAI,EACR,0IACD,EACHG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,mCAAmCI,CAAC,6BACrC,EACH,GAAI,CAAC,KAAK,OAAO,IAAIH,CAAC,EACpB,MAAM,IAAI,EACR,mCAAmCA,CAAC,6BACrC,EACH,MAAME,EAAIH,EAAE,KAAOA,EAAE,IAAIC,CAAC,GAAKD,EAAE,YAAcA,EAAE,WAAWC,CAAC,GAAK,OAClE,GAAIE,EAAG,OAAOA,EAAE,GACpB,CAUE,qBAAqBC,EAAGH,EAAG,CACzBG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,mDAAmDI,CAAC,sBACrD,EACH,OAAO,KAAK,OAAS,aAAe,GAAKH,KAAKD,EAAE,IAAMC,KAAKD,EAAE,GACjE,CAUE,gBAAgBI,EAAGH,EAAG,CACpBG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,8CAA8CI,CAAC,sBAChD,EACH,OAAO,KAAK,OAAS,aAAe,GAAKH,KAAKD,EAAE,GACpD,CAUE,eAAeI,EAAGH,EAAG,CACnBG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,6CAA6CI,CAAC,sBAC/C,EACH,OAAO,KAAK,OAAS,aAAe,GAAKH,KAAKD,EAAE,EACpD,CAUE,uBAAuBI,EAAGH,EAAG,CAC3BG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,qDAAqDI,CAAC,sBACvD,EACH,OAAO,KAAK,OAAS,WAAa,GAAKH,KAAKD,EAAE,UAClD,CAUE,aAAaI,EAAGH,EAAG,CACjBG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,2CAA2CI,CAAC,sBAC7C,EACH,OAAO,KAAK,OAAS,eAAiBH,KAAKD,EAAE,IAAMC,KAAKD,EAAE,MAAQ,KAAK,OAAS,YAAcC,KAAKD,EAAE,UACzG,CAUE,oBAAoBI,EAAGH,EAAG,CACxBG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,kDAAkDI,CAAC,sBACpD,EACH,OAAO,KAAK,OAAS,cAAgBH,KAAKD,EAAE,IAAM,KAAK,OAAS,YAAcC,KAAKD,EAAE,UACzF,CAUE,qBAAqBI,EAAGH,EAAG,CACzBG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,mDAAmDI,CAAC,sBACrD,EACH,OAAO,KAAK,OAAS,cAAgBH,KAAKD,EAAE,KAAO,KAAK,OAAS,YAAcC,KAAKD,EAAE,UAC1F,CASE,SAASI,EAAG,CACVA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,uCAAuCG,CAAC,sBACzC,EACH,OAAO,KAAK,OAAS,aAAe,EAAIH,EAAE,QAC9C,CASE,UAAUG,EAAG,CACXA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,wCAAwCG,CAAC,sBAC1C,EACH,OAAO,KAAK,OAAS,aAAe,EAAIH,EAAE,SAC9C,CASE,eAAeG,EAAG,CAChBA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,6CAA6CG,CAAC,sBAC/C,EACH,OAAO,KAAK,OAAS,aAAe,EAAIH,EAAE,SAAWA,EAAE,SAC3D,CASE,iBAAiBG,EAAG,CAClBA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,+CAA+CG,CAAC,sBACjD,EACH,OAAO,KAAK,OAAS,WAAa,EAAIH,EAAE,gBAC5C,CASE,cAAcG,EAAG,CACfA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,4CAA4CG,CAAC,sBAC9C,EACH,IAAIJ,EAAI,EACR,OAAO,KAAK,OAAS,aAAeA,GAAKC,EAAE,kBAAmB,KAAK,OAAS,eAAiBD,GAAKC,EAAE,UAAWD,CACnH,CASE,eAAeI,EAAG,CAChBA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,6CAA6CG,CAAC,sBAC/C,EACH,IAAIJ,EAAI,EACR,OAAO,KAAK,OAAS,aAAeA,GAAKC,EAAE,kBAAmB,KAAK,OAAS,eAAiBD,GAAKC,EAAE,WAAYD,CACpH,CASE,OAAOI,EAAG,CACRA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,qCAAqCG,CAAC,sBACvC,EACH,IAAIJ,EAAI,EACR,OAAO,KAAK,OAAS,aAAeA,GAAKC,EAAE,kBAAmB,KAAK,OAAS,eAAiBD,GAAKC,EAAE,SAAWA,EAAE,WAAYD,CACjI,CASE,yBAAyBI,EAAG,CAC1BA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,uDAAuDG,CAAC,sBACzD,EACH,OAAO,KAAK,OAAS,aAAe,EAAIH,EAAE,SAAWA,EAAE,aAC3D,CASE,0BAA0BG,EAAG,CAC3BA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,wDAAwDG,CAAC,sBAC1D,EACH,OAAO,KAAK,OAAS,aAAe,EAAIH,EAAE,UAAYA,EAAE,aAC5D,CASE,+BAA+BG,EAAG,CAChCA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,6DAA6DG,CAAC,sBAC/D,EACH,OAAO,KAAK,OAAS,aAAe,EAAIH,EAAE,SAAWA,EAAE,UAAYA,EAAE,cAAgB,CACzF,CASE,iCAAiCG,EAAG,CAClCA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,+DAA+DG,CAAC,sBACjE,EACH,OAAO,KAAK,OAAS,WAAa,EAAIH,EAAE,iBAAmBA,EAAE,gBAAkB,CACnF,CASE,8BAA8BG,EAAG,CAC/BA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,4DAA4DG,CAAC,sBAC9D,EACH,IAAIJ,EAAI,EAAGG,EAAI,EACf,OAAO,KAAK,OAAS,aAAeH,GAAKC,EAAE,iBAAkBE,GAAKF,EAAE,gBAAkB,GAAI,KAAK,OAAS,eAAiBD,GAAKC,EAAE,SAAUE,GAAKF,EAAE,eAAgBD,EAAIG,CACzK,CASE,+BAA+BC,EAAG,CAChCA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,6DAA6DG,CAAC,sBAC/D,EACH,IAAIJ,EAAI,EAAGG,EAAI,EACf,OAAO,KAAK,OAAS,aAAeH,GAAKC,EAAE,iBAAkBE,GAAKF,EAAE,gBAAkB,GAAI,KAAK,OAAS,eAAiBD,GAAKC,EAAE,UAAWE,GAAKF,EAAE,eAAgBD,EAAIG,CAC1K,CASE,uBAAuBC,EAAG,CACxBA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,qDAAqDG,CAAC,sBACvD,EACH,IAAIJ,EAAI,EAAGG,EAAI,EACf,OAAO,KAAK,OAAS,aAAeH,GAAKC,EAAE,iBAAkBE,GAAKF,EAAE,gBAAkB,GAAI,KAAK,OAAS,eAAiBD,GAAKC,EAAE,SAAWA,EAAE,UAAWE,GAAKF,EAAE,cAAgB,GAAID,EAAIG,CAC3L,CASE,OAAOC,EAAG,CACRA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,qCAAqCG,CAAC,sBACvC,EACH,OAAOH,EAAE,OAAO,GACpB,CASE,OAAOG,EAAG,CACRA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,qCAAqCG,CAAC,sBACvC,EACH,OAAOH,EAAE,OAAO,GACpB,CASE,YAAYG,EAAG,CACbA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,0CAA0CG,CAAC,sBAC5C,EACH,MAAO,CAACH,EAAE,OAAO,IAAKA,EAAE,OAAO,GAAG,CACtC,CAWE,SAASG,EAAGH,EAAG,CACbG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAIC,CAAC,EAC3B,GAAI,CAACD,EACH,MAAM,IAAI,EACR,uCAAuCC,CAAC,sBACzC,EACH,MAAME,EAAIH,EAAE,OAAO,IAAKM,EAAIN,EAAE,OAAO,IACrC,GAAII,IAAMD,EAAG,OAAOG,EACpB,GAAIF,IAAME,EAAG,OAAOH,EACpB,MAAM,IAAI,EACR,wBAAwBC,CAAC,kCAAkCH,CAAC,WAAWE,CAAC,KAAKG,CAAC,IAC/E,CACL,CAUE,aAAaF,EAAGH,EAAG,CACjBG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,KAAK,OAAO,IAAII,CAAC,EAC3B,GAAI,CAACJ,EACH,MAAM,IAAI,EACR,2CAA2CI,CAAC,sBAC7C,EACH,OAAOJ,EAAE,OAAO,MAAQC,GAAKD,EAAE,OAAO,MAAQC,CAClD,CASE,aAAaG,EAAG,CACdA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,2CAA2CG,CAAC,sBAC7C,EACH,OAAOH,EAAE,UACb,CASE,WAAWG,EAAG,CACZA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,yCAAyCG,CAAC,sBAC3C,EACH,MAAO,CAACH,EAAE,UACd,CASE,WAAWG,EAAG,CACZA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,yCAAyCG,CAAC,sBAC3C,EACH,OAAOH,EAAE,SAAWA,EAAE,MAC1B,CAeE,QAAQG,EAAGH,EAAG,CACZ,OAAO,GAAG,KAAMG,EAAGH,CAAC,EAAE,GAC1B,CAQE,UAAUG,EAAGH,EAAG,CACd,GAAIA,GAAK,CAAC,GAAGA,CAAC,EACZ,MAAM,IAAI,EACR,qEAAqEA,CAAC,GACvE,EACHG,EAAI,GAAKA,EAAGH,EAAIA,GAAK,CAAE,EACvB,IAAID,EAAI,KAAK,OAAO,IAAII,CAAC,EACzB,OAAOJ,GAAKC,IAAM,GAAGD,EAAE,WAAYC,CAAC,EAAG,KAAK,KAAK,wBAAyB,CACxE,KAAM,QACN,IAAKG,EACL,WAAYJ,EAAE,WACd,KAAMC,CACZ,CAAK,GAAI,CAACG,EAAG,EAAE,IAAMJ,EAAI,IAAI,KAAK,cAAcI,EAAGH,CAAC,EAAG,KAAK,OAAO,IAAIG,EAAGJ,CAAC,EAAG,KAAK,KAAK,YAAa,CAC/F,IAAKI,EACL,WAAYH,CAClB,CAAK,EAAG,CAACG,EAAG,EAAE,EACd,CASE,WAAWA,EAAGH,EAAG,CACf,GAAIA,GAAK,OAAOA,GAAK,WACnB,MAAM,IAAI,EACR,6EAA6EA,CAAC,GAC/E,EACHG,EAAI,GAAKA,EACT,IAAIJ,EAAI,KAAK,OAAO,IAAII,CAAC,EACzB,GAAIJ,EAAG,CACL,GAAIC,EAAG,CACL,MAAMK,EAAIN,EAAE,WACZA,EAAE,WAAaC,EAAEK,CAAC,EAAG,KAAK,KAAK,wBAAyB,CACtD,KAAM,UACN,IAAKF,EACL,WAAYJ,EAAE,UACxB,CAAS,CACT,CACM,MAAO,CAACI,EAAG,EAAE,CACnB,CACI,MAAMD,EAAIF,EAAIA,EAAE,CAAA,CAAE,EAAI,CAAE,EACxB,OAAOD,EAAI,IAAI,KAAK,cAAcI,EAAGD,CAAC,EAAG,KAAK,OAAO,IAAIC,EAAGJ,CAAC,EAAG,KAAK,KAAK,YAAa,CACrF,IAAKI,EACL,WAAYD,CAClB,CAAK,EAAG,CAACC,EAAG,EAAE,CACd,CASE,SAASA,EAAG,CACVA,EAAI,GAAKA,EACT,MAAMH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAC3B,GAAI,CAACH,EACH,MAAM,IAAI,EACR,uCAAuCG,CAAC,sBACzC,EACH,IAAIJ,EACJ,GAAI,KAAK,OAAS,aAAc,CAC9B,UAAWG,KAAKF,EAAE,IAAK,CACrBD,EAAIC,EAAE,IAAIE,CAAC,EACX,GACE,GAAG,KAAMH,CAAC,EAAGA,EAAIA,EAAE,WACdA,EACf,CACM,UAAWG,KAAKF,EAAE,GAAI,CACpBD,EAAIC,EAAE,GAAGE,CAAC,EACV,GACE,GAAG,KAAMH,CAAC,EAAGA,EAAIA,EAAE,WACdA,EACf,CACA,CACI,GAAI,KAAK,OAAS,WAChB,UAAWG,KAAKF,EAAE,WAAY,CAC5BD,EAAIC,EAAE,WAAWE,CAAC,EAClB,GACE,GAAG,KAAMH,CAAC,EAAGA,EAAIA,EAAE,WACdA,EACf,CACI,KAAK,OAAO,OAAOI,CAAC,EAAG,KAAK,KAAK,cAAe,CAC9C,IAAKA,EACL,WAAYH,EAAE,UACpB,CAAK,CACL,CAeE,SAASG,EAAG,CACV,IAAIH,EACJ,GAAI,UAAU,OAAS,EAAG,CACxB,MAAMD,EAAI,GAAK,UAAU,CAAC,EAAGG,EAAI,GAAK,UAAU,CAAC,EACjD,GAAIF,EAAI,GAAG,KAAMD,EAAGG,EAAG,KAAK,IAAI,EAAG,CAACF,EAClC,MAAM,IAAI,EACR,uCAAuCD,CAAC,SAASG,CAAC,sBACnD,CACJ,SAAUC,EAAI,GAAKA,EAAGH,EAAI,KAAK,OAAO,IAAIG,CAAC,EAAG,CAACH,EAC9C,MAAM,IAAI,EACR,uCAAuCG,CAAC,sBACzC,EACH,OAAO,GAAG,KAAMH,CAAC,EAAG,IACxB,CAWE,iBAAiBG,EAAGH,EAAG,CACrB,GAAI,UAAU,OAAS,EACrB,MAAM,IAAI,EACR,+KACD,EACH,GAAI,KAAK,MACP,MAAM,IAAI,EACR,oLACD,EACHG,EAAI,GAAKA,EAAGH,EAAI,GAAKA,EACrB,MAAMD,EAAI,GAAG,KAAMI,EAAGH,EAAG,UAAU,EACnC,GAAI,CAACD,EACH,MAAM,IAAI,EACR,6CAA6CI,CAAC,SAASH,CAAC,sBACzD,EACH,OAAO,GAAG,KAAMD,CAAC,EAAG,IACxB,CAWE,mBAAmBI,EAAGH,EAAG,CACvB,GAAI,UAAU,OAAS,EACrB,MAAM,IAAI,EACR,yKACD,EACH,GAAI,KAAK,MACP,MAAM,IAAI,EACR,sLACD,EACH,MAAMD,EAAI,GAAG,KAAMI,EAAGH,EAAG,YAAY,EACrC,GAAI,CAACD,EACH,MAAM,IAAI,EACR,+CAA+CI,CAAC,SAASH,CAAC,sBAC3D,EACH,OAAO,GAAG,KAAMD,CAAC,EAAG,IACxB,CAME,OAAQ,CACN,KAAK,OAAO,QAAS,KAAK,OAAO,QAAS,KAAK,uBAAwB,EAAE,KAAK,KAAK,SAAS,CAChG,CAME,YAAa,CACX,MAAMI,EAAI,KAAK,OAAO,OAAQ,EAC9B,IAAIH,EACJ,KAAOA,EAAIG,EAAE,KAAM,EAAEH,EAAE,OAAS,IAC9BA,EAAE,MAAM,MAAO,EACjB,KAAK,OAAO,QAAS,KAAK,yBAA0B,KAAK,KAAK,cAAc,CAChF,CAWE,aAAaG,EAAG,CACd,OAAO,KAAK,YAAYA,CAAC,CAC7B,CAME,eAAgB,CACd,OAAO,KAAK,WAChB,CAOE,aAAaA,EAAG,CACd,OAAO,KAAK,YAAY,eAAeA,CAAC,CAC5C,CAQE,aAAaA,EAAGH,EAAG,CACjB,OAAO,KAAK,YAAYG,CAAC,EAAIH,EAAG,KAAK,KAAK,oBAAqB,CAC7D,KAAM,MACN,WAAY,KAAK,YACjB,KAAMG,CACP,CAAA,EAAG,IACR,CAQE,gBAAgBA,EAAGH,EAAG,CACpB,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,sDACD,EACH,MAAMD,EAAI,KAAK,YAAYI,CAAC,EAC5B,OAAO,KAAK,YAAYA,CAAC,EAAIH,EAAED,CAAC,EAAG,KAAK,KAAK,oBAAqB,CAChE,KAAM,MACN,WAAY,KAAK,YACjB,KAAMI,CACP,CAAA,EAAG,IACR,CAOE,gBAAgBA,EAAG,CACjB,OAAO,OAAO,KAAK,YAAYA,CAAC,EAAG,KAAK,KAAK,oBAAqB,CAChE,KAAM,SACN,WAAY,KAAK,YACjB,KAAMA,CACP,CAAA,EAAG,IACR,CASE,kBAAkBA,EAAG,CACnB,GAAI,CAAC,GAAGA,CAAC,EACP,MAAM,IAAI,EACR,sEACD,EACH,OAAO,KAAK,YAAcA,EAAG,KAAK,KAAK,oBAAqB,CAC1D,KAAM,UACN,WAAY,KAAK,WAClB,CAAA,EAAG,IACR,CASE,gBAAgBA,EAAG,CACjB,GAAI,CAAC,GAAGA,CAAC,EACP,MAAM,IAAI,EACR,oEACD,EACH,OAAO,GAAG,KAAK,YAAaA,CAAC,EAAG,KAAK,KAAK,oBAAqB,CAC7D,KAAM,QACN,WAAY,KAAK,YACjB,KAAMA,CACP,CAAA,EAAG,IACR,CASE,iBAAiBA,EAAG,CAClB,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,6DACD,EACH,OAAO,KAAK,YAAcA,EAAE,KAAK,WAAW,EAAG,KAAK,KAAK,oBAAqB,CAC5E,KAAM,SACN,WAAY,KAAK,WAClB,CAAA,EAAG,IACR,CAOE,yBAAyBA,EAAGH,EAAG,CAC7B,GAAI,OAAOG,GAAK,WACd,MAAM,IAAI,EACR,gEACD,EACH,GAAIH,GAAK,CAAC,GAAGA,CAAC,EACZ,MAAM,IAAI,EACR,wHACD,EACH,MAAMD,EAAI,KAAK,OAAO,OAAQ,EAC9B,IAAIG,EAAGG,EACP,KAAOH,EAAIH,EAAE,KAAM,EAAEG,EAAE,OAAS,IAC9BG,EAAIH,EAAE,MAAOG,EAAE,WAAaF,EAAEE,EAAE,IAAKA,EAAE,UAAU,EACnD,KAAK,KAAK,4BAA6B,CACrC,MAAOL,GAAK,IAClB,CAAK,CACL,CAOE,yBAAyBG,EAAGH,EAAG,CAC7B,GAAI,OAAOG,GAAK,WACd,MAAM,IAAI,EACR,gEACD,EACH,GAAIH,GAAK,CAAC,GAAGA,CAAC,EACZ,MAAM,IAAI,EACR,wHACD,EACH,MAAMD,EAAI,KAAK,OAAO,OAAQ,EAC9B,IAAIG,EAAGG,EAAGD,EAAGE,EACb,KAAOJ,EAAIH,EAAE,KAAM,EAAEG,EAAE,OAAS,IAC9BG,EAAIH,EAAE,MAAOE,EAAIC,EAAE,OAAQC,EAAID,EAAE,OAAQA,EAAE,WAAaF,EACtDE,EAAE,IACFA,EAAE,WACFD,EAAE,IACFE,EAAE,IACFF,EAAE,WACFE,EAAE,WACFD,EAAE,UACH,EACH,KAAK,KAAK,4BAA6B,CACrC,MAAOL,GAAK,IAClB,CAAK,CACL,CAUE,sBAAsBG,EAAG,CACvB,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,oDACD,EACH,GAAG,GAAI,GAAI,GAAI,KAAMA,CAAC,CAC1B,CACE,iCAAiCA,EAAG,CAClC,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,+DACD,EACH,GAAG,GAAI,GAAI,GAAI,KAAMA,CAAC,CAC1B,CAME,gCAAgCA,EAAG,CACjC,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,8DACD,EACH,GAAG,GAAI,GAAI,GAAI,KAAMA,CAAC,CAC1B,CACE,2CAA2CA,EAAG,CAC5C,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,yEACD,EACH,GAAG,GAAI,GAAI,GAAI,KAAMA,CAAC,CAC1B,CAME,OAAQ,CACN,OAAO,MAAM,KAAK,KAAK,OAAO,KAAI,CAAE,CACxC,CAME,YAAYA,EAAG,CACb,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,0CACD,EACH,MAAMH,EAAI,KAAK,OAAO,OAAQ,EAC9B,IAAID,EAAGG,EACP,KAAOH,EAAIC,EAAE,KAAM,EAAED,EAAE,OAAS,IAC9BG,EAAIH,EAAE,MAAOI,EAAED,EAAE,IAAKA,EAAE,UAAU,CACxC,CAOE,SAASC,EAAG,CACV,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,uCACD,EACH,MAAMH,EAAI,KAAK,OAAO,OAAQ,EAC9B,IAAID,EAAGG,EACP,KAAOH,EAAIC,EAAE,KAAM,EAAED,EAAE,OAAS,IAC9B,GAAIG,EAAIH,EAAE,MAAOI,EAAED,EAAE,IAAKA,EAAE,UAAU,EAAG,OAAOA,EAAE,GACxD,CAME,SAASC,EAAG,CACV,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,sCACD,EACH,MAAMH,EAAI,KAAK,OAAO,OAAQ,EAC9B,IAAID,EAAGG,EACP,MAAMG,EAAI,IAAI,MAAM,KAAK,KAAK,EAC9B,IAAID,EAAI,EACR,KAAOL,EAAIC,EAAE,KAAM,EAAED,EAAE,OAAS,IAC9BG,EAAIH,EAAE,MAAOM,EAAED,GAAG,EAAID,EAAED,EAAE,IAAKA,EAAE,UAAU,EAC7C,OAAOG,CACX,CAME,SAASF,EAAG,CACV,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,uCACD,EACH,MAAMH,EAAI,KAAK,OAAO,OAAQ,EAC9B,IAAID,EAAGG,EACP,KAAOH,EAAIC,EAAE,KAAM,EAAED,EAAE,OAAS,IAC9B,GAAIG,EAAIH,EAAE,MAAOI,EAAED,EAAE,IAAKA,EAAE,UAAU,EAAG,MAAO,GAClD,MAAO,EACX,CAME,UAAUC,EAAG,CACX,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,wCACD,EACH,MAAMH,EAAI,KAAK,OAAO,OAAQ,EAC9B,IAAID,EAAGG,EACP,KAAOH,EAAIC,EAAE,KAAM,EAAED,EAAE,OAAS,IAC9B,GAAIG,EAAIH,EAAE,MAAO,CAACI,EAAED,EAAE,IAAKA,EAAE,UAAU,EAAG,MAAO,GACnD,MAAO,EACX,CAME,YAAYC,EAAG,CACb,GAAI,OAAOA,GAAK,WACd,MAAM,IAAI,EACR,0CACD,EACH,MAAMH,EAAI,KAAK,OAAO,OAAQ,EAC9B,IAAID,EAAGG,EACP,MAAMG,EAAI,CAAE,EACZ,KAAON,EAAIC,EAAE,KAAM,EAAED,EAAE,OAAS,IAC9BG,EAAIH,EAAE,MAAOI,EAAED,EAAE,IAAKA,EAAE,UAAU,GAAKG,EAAE,KAAKH,EAAE,GAAG,EACrD,OAAOG,CACX,CAME,YAAYF,EAAGH,EAAG,CAChB,GAAI,OAAOG,GAAK,WACd,MAAM,IAAI,EACR,0CACD,EACH,GAAI,UAAU,OAAS,EACrB,MAAM,IAAI,EACR,mNACD,EACH,IAAIJ,EAAIC,EACR,MAAME,EAAI,KAAK,OAAO,OAAQ,EAC9B,IAAIG,EAAGD,EACP,KAAOC,EAAIH,EAAE,KAAM,EAAEG,EAAE,OAAS,IAC9BD,EAAIC,EAAE,MAAON,EAAII,EAAEJ,EAAGK,EAAE,IAAKA,EAAE,UAAU,EAC3C,OAAOL,CACX,CAME,aAAc,CACZ,MAAMI,EAAI,KAAK,OAAO,OAAQ,EAC9B,MAAO,CACL,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,IACR,EACD,MAAO,CACL,MAAMH,EAAIG,EAAE,KAAM,EAClB,GAAIH,EAAE,KAAM,OAAOA,EACnB,MAAMD,EAAIC,EAAE,MACZ,MAAO,CACL,MAAO,CAAE,KAAMD,EAAE,IAAK,WAAYA,EAAE,UAAY,EAChD,KAAM,EACP,CACT,CACK,CACL,CAUE,QAAS,CACP,MAAMI,EAAI,IAAI,MAAM,KAAK,OAAO,IAAI,EACpC,IAAIH,EAAI,EACR,KAAK,OAAO,QAAQ,CAACE,EAAGG,IAAM,CAC5BF,EAAEH,GAAG,EAAI,GAAGK,EAAGH,CAAC,CACtB,CAAK,EACD,MAAMH,EAAI,IAAI,MAAM,KAAK,OAAO,IAAI,EACpC,OAAOC,EAAI,EAAG,KAAK,OAAO,QAAQ,CAACE,EAAGG,IAAM,CAC1CN,EAAEC,GAAG,EAAI,GAAG,KAAK,KAAMK,EAAGH,CAAC,CACjC,CAAK,EAAG,CACF,QAAS,CACP,KAAM,KAAK,KACX,MAAO,KAAK,MACZ,eAAgB,KAAK,cACtB,EACD,WAAY,KAAK,cAAe,EAChC,MAAOC,EACP,MAAOJ,CACR,CACL,CAQE,OAAOI,EAAGH,EAAI,GAAI,CAChB,GAAIG,aAAa,GACf,OAAOA,EAAE,YAAY,CAACK,EAAGK,IAAM,CAC7Bb,EAAI,KAAK,UAAUQ,EAAGK,CAAC,EAAI,KAAK,QAAQL,EAAGK,CAAC,CAC7C,CAAA,EAAGV,EAAE,YAAY,CAACK,EAAGK,EAAG,EAAGF,EAAGF,EAAGS,EAAGE,IAAM,CACzCpB,EAAIoB,EAAI,KAAK,2BAA2BZ,EAAG,EAAGG,EAAGE,CAAC,EAAI,KAAK,yBAAyBL,EAAG,EAAGG,EAAGE,CAAC,EAAIO,EAAI,KAAK,yBAAyBZ,EAAG,EAAGG,EAAGE,CAAC,EAAI,KAAK,uBAAuBL,EAAG,EAAGG,EAAGE,CAAC,CACzL,CAAA,EAAG,KACN,GAAI,CAAC,GAAGV,CAAC,EACP,MAAM,IAAI,EACR,mGACD,EACH,GAAIA,EAAE,WAAY,CAChB,GAAI,CAAC,GAAGA,EAAE,UAAU,EAClB,MAAM,IAAI,EACR,6DACD,EACHH,EAAI,KAAK,gBAAgBG,EAAE,UAAU,EAAI,KAAK,kBAAkBA,EAAE,UAAU,CAClF,CACI,IAAIJ,EAAGG,EAAGG,EAAGD,EAAGE,EAChB,GAAIH,EAAE,MAAO,CACX,GAAIE,EAAIF,EAAE,MAAO,CAAC,MAAM,QAAQE,CAAC,EAC/B,MAAM,IAAI,EACR,kDACD,EACH,IAAKN,EAAI,EAAGG,EAAIG,EAAE,OAAQN,EAAIG,EAAGH,IAAK,CACpCK,EAAIC,EAAEN,CAAC,EAAG,GAAGK,CAAC,EACd,KAAM,CAAE,IAAKI,EAAG,WAAYK,CAAG,EAAGT,EAClCJ,EAAI,KAAK,UAAUQ,EAAGK,CAAC,EAAI,KAAK,QAAQL,EAAGK,CAAC,CACpD,CACA,CACI,GAAIV,EAAE,MAAO,CACX,IAAIK,EAAI,GACR,GAAI,KAAK,OAAS,eAAiBA,EAAI,IAAKH,EAAIF,EAAE,MAAO,CAAC,MAAM,QAAQE,CAAC,EACvE,MAAM,IAAI,EACR,kDACD,EACH,IAAKN,EAAI,EAAGG,EAAIG,EAAE,OAAQN,EAAIG,EAAGH,IAAK,CACpCO,EAAID,EAAEN,CAAC,EAAG,GAAGO,CAAC,EACd,KAAM,CACJ,OAAQO,EACR,OAAQ,EACR,WAAYF,EACZ,WAAYF,EAAID,CAC1B,EAAYF,EACJ,IAAIY,EACJ,QAASZ,GAAKY,EAAIlB,EAAIS,EAAI,KAAK,2BAA6B,KAAK,yBAA2BA,EAAI,KAAK,yBAA2B,KAAK,uBAAwBS,EAAE,KAAK,KAAMZ,EAAE,IAAKO,EAAG,EAAGF,CAAC,IAAMO,EAAIlB,EAAIS,EAAI,KAAK,oBAAsB,KAAK,kBAAoBA,EAAI,KAAK,kBAAoB,KAAK,gBAAiBS,EAAE,KAAK,KAAML,EAAG,EAAGF,CAAC,EAC7U,CACA,CACI,OAAO,IACX,CAYE,SAASR,EAAG,CACV,MAAMH,EAAI,IAAI,GAAG,GAAG,CAAE,EAAE,KAAK,SAAUG,CAAC,CAAC,EACzC,OAAOH,EAAE,kBAAkB,GAAG,CAAA,EAAI,KAAK,cAAa,CAAE,CAAC,EAAGA,CAC9D,CAQE,UAAUG,EAAG,CACX,MAAMH,EAAI,KAAK,SAASG,CAAC,EACzB,OAAO,KAAK,OAAO,QAAQ,CAACJ,EAAGG,IAAM,CACnC,MAAMG,EAAI,GAAG,GAAIN,EAAE,UAAU,EAC7BA,EAAI,IAAIC,EAAE,cAAcE,EAAGG,CAAC,EAAGL,EAAE,OAAO,IAAIE,EAAGH,CAAC,CACjD,CAAA,EAAGC,CACR,CAOE,KAAKG,EAAG,CACN,GAAIA,EAAIA,GAAK,CAAE,EAAE,OAAOA,EAAE,MAAQ,UAAYA,EAAE,OAAS,KAAK,MAAQA,EAAE,OAAS,QAC/E,MAAM,IAAI,EACR,wDAAwD,KAAK,IAAI,cAAcA,EAAE,IAAI,uEACtF,EACH,GAAI,OAAOA,EAAE,OAAS,WAAaA,EAAE,QAAU,KAAK,OAASA,EAAE,QAAU,GACvE,MAAM,IAAI,EACR,iKACD,EACH,GAAI,OAAOA,EAAE,gBAAkB,WAAaA,EAAE,iBAAmB,KAAK,gBAAkBA,EAAE,iBAAmB,GAC3G,MAAM,IAAI,EACR,0KACD,EACH,MAAMH,EAAI,KAAK,UAAUG,CAAC,EAAGJ,EAAI,KAAK,OAAO,OAAQ,EACrD,IAAIG,EAAGG,EACP,KAAOH,EAAIH,EAAE,KAAM,EAAEG,EAAE,OAAS,IAC9BG,EAAIH,EAAE,MAAO,GACXF,EACA,OACA,GACAK,EAAE,WACFA,EAAE,IACFA,EAAE,OAAO,IACTA,EAAE,OAAO,IACT,GAAG,CAAA,EAAIA,EAAE,UAAU,CACpB,EACH,OAAOL,CACX,CAUE,QAAS,CACP,OAAO,KAAK,OAAQ,CACxB,CAIE,UAAW,CACT,MAAO,gBACX,CAME,SAAU,CACR,MAAMG,EAAI,CAAE,EACZ,KAAK,OAAO,QAAQ,CAACE,EAAGD,IAAM,CAC5BD,EAAEC,CAAC,EAAIC,EAAE,UACf,CAAK,EACD,MAAML,EAAI,GAAID,EAAI,CAAE,EACpB,KAAK,OAAO,QAAQ,CAACM,EAAGD,IAAM,CAC5B,MAAME,EAAID,EAAE,WAAa,KAAO,KAChC,IAAIG,EAAI,GAAIK,EAAIR,EAAE,OAAO,IAAK,EAAIA,EAAE,OAAO,IAAKM,EAChDN,EAAE,YAAcQ,EAAI,IAAMF,EAAIE,EAAGA,EAAI,EAAG,EAAIF,GAC5C,MAAMF,EAAI,IAAII,CAAC,IAAIP,CAAC,IAAI,CAAC,IACzBF,EAAE,WAAW,OAAO,EAAI,KAAK,QAAU,OAAOL,EAAEU,CAAC,EAAK,IAAcV,EAAEU,CAAC,EAAI,EAAIV,EAAEU,CAAC,IAAKD,GAAK,GAAGT,EAAEU,CAAC,CAAC,MAAQD,GAAK,IAAIJ,CAAC,MAAOI,GAAKC,EAAGT,EAAEQ,CAAC,EAAIH,EAAE,UACnJ,CAAK,EACD,MAAMH,EAAI,CAAE,EACZ,UAAWG,KAAK,KACd,KAAK,eAAeA,CAAC,GAAK,CAAC,GAAG,IAAIA,CAAC,GAAK,OAAO,KAAKA,CAAC,GAAK,YAAc,OAAOA,GAAK,WAAaH,EAAEG,CAAC,EAAI,KAAKA,CAAC,GAChH,OAAOH,EAAE,WAAa,KAAK,YAAaA,EAAE,MAAQC,EAAGD,EAAE,MAAQF,EAAG,GAAGE,EAAG,cAAe,KAAK,WAAW,EAAGA,CAC9G,CACA,CACA,OAAO,OAAU,MAAgB,GAAG,UAAU,OAAO,IAAI,4BAA4B,CAAC,EAAI,GAAG,UAAU,SACvG,GAAG,QAASD,GAAM,CAChB,CAAC,MAAO,QAAS,QAAQ,EAAE,QAASE,GAAM,CACxC,MAAMH,EAAIC,EAAE,KAAKE,CAAC,EAAGJ,EAAII,IAAM,MAAQ,GAAK,GAC5CF,EAAE,YAAc,GAAG,UAAUD,CAAC,EAAI,SAASE,EAAGG,EAAGD,EAAG,CAClD,OAAOL,EACL,KACAC,EACA,IACCC,EAAE,MAAQ,KAAK,QAAU,aAC1B,KACAC,EACAG,EACAD,EACAD,IAAM,QACP,CACP,EAAQ,GAAG,UAAUH,CAAC,EAAI,SAASE,EAAGG,EAAGD,EAAGE,EAAG,CACzC,OAAOP,EACL,KACAC,EACA,IACCC,EAAE,MAAQ,KAAK,QAAU,aAC1BC,EACAG,EACAD,EACAE,EACAH,IAAM,QACP,CACF,CACL,CAAG,CACH,CAAC,EACD,GAAG,EAAE,EACL,GAAG,EAAE,EACL,GAAG,EAAE,EACL,GAAG,EAAE,EACL,MAAM,WAAW,EAAG,CAClB,YAAYA,EAAG,CACb,MAAMH,EAAI,GAAG,CAAE,KAAM,UAAU,EAAIG,CAAC,EACpC,GAAI,UAAWH,GAAKA,EAAE,QAAU,GAC9B,MAAM,IAAI,EACR,8FACD,EACH,GAAIA,EAAE,OAAS,WACb,MAAM,IAAI,EACR,qCAAuCA,EAAE,KAAO,0BACjD,EACH,MAAMA,CAAC,CACX,CACA,CACA,MAAM,WAAW,EAAG,CAClB,YAAYG,EAAG,CACb,MAAMH,EAAI,GAAG,CAAE,KAAM,YAAY,EAAIG,CAAC,EACtC,GAAI,UAAWH,GAAKA,EAAE,QAAU,GAC9B,MAAM,IAAI,EACR,gGACD,EACH,GAAIA,EAAE,OAAS,aACb,MAAM,IAAI,EACR,uCAAyCA,EAAE,KAAO,0BACnD,EACH,MAAMA,CAAC,CACX,CACA,CACA,MAAM,WAAW,EAAG,CAClB,YAAYG,EAAG,CACb,MAAMH,EAAI,GAAG,CAAE,MAAO,EAAE,EAAIG,CAAC,EAC7B,GAAI,UAAWH,GAAKA,EAAE,QAAU,GAC9B,MAAM,IAAI,EACR,4FACD,EACH,MAAMA,CAAC,CACX,CACA,CACA,MAAM,WAAW,EAAG,CAClB,YAAYG,EAAG,CACb,MAAMH,EAAI,GAAG,CAAE,KAAM,WAAY,MAAO,EAAI,EAAEG,CAAC,EAC/C,GAAI,UAAWH,GAAKA,EAAE,QAAU,GAC9B,MAAM,IAAI,EACR,oGACD,EACH,GAAIA,EAAE,OAAS,WACb,MAAM,IAAI,EACR,0CAA4CA,EAAE,KAAO,0BACtD,EACH,MAAMA,CAAC,CACX,CACA,CACA,MAAM,WAAW,EAAG,CAClB,YAAYG,EAAG,CACb,MAAMH,EAAI,GAAG,CAAE,KAAM,aAAc,MAAO,EAAI,EAAEG,CAAC,EACjD,GAAI,UAAWH,GAAKA,EAAE,QAAU,GAC9B,MAAM,IAAI,EACR,sGACD,EACH,GAAIA,EAAE,OAAS,aACb,MAAM,IAAI,EACR,4CAA8CA,EAAE,KAAO,0BACxD,EACH,MAAMA,CAAC,CACX,CACA,CACA,SAAS,GAAGC,EAAG,CACbA,EAAE,KAAO,SAASE,EAAGH,EAAG,CACtB,MAAMD,EAAI,GAAG,CAAE,EAAEI,EAAE,QAASH,CAAC,EAAGE,EAAI,IAAID,EAAEF,CAAC,EAC3C,OAAOG,EAAE,OAAOC,CAAC,EAAGD,CACrB,CACH,CACA,GAAG,EAAE,EACL,GAAG,EAAE,EACL,GAAG,EAAE,EACL,GAAG,EAAE,EACL,GAAG,EAAE,EACL,GAAG,EAAE,EACL,GAAG,MAAQ,GACX,GAAG,cAAgB,GACnB,GAAG,gBAAkB,GACrB,GAAG,WAAa,GAChB,GAAG,mBAAqB,GACxB,GAAG,qBAAuB,GAC1B,GAAG,2BAA6B,EAChC,GAAG,mBAAqB,EACxB,GAAG,gBAAkB,EACrB,SAAS,GAAGD,EAAGE,EAAG,CAChB,GAAI,OAAOF,GAAK,UAAY,CAACA,EAAG,OAAOA,EACvC,IAAID,EAAIC,EAAE,OAAO,WAAW,EAC5B,GAAID,IAAM,OAAQ,CAChB,IAAID,EAAIC,EAAE,KAAKC,EAAGE,CAAC,EACnB,GAAI,OAAOJ,GAAK,SAAU,OAAOA,EACjC,MAAM,IAAI,UAAU,8CAA8C,CACtE,CACE,OAAQI,IAAM,SAAW,OAAS,QAAQF,CAAC,CAC7C,CACA,SAAS,GAAGA,EAAG,CACb,IAAIE,EAAI,GAAGF,EAAG,QAAQ,EACtB,OAAO,OAAOE,GAAK,SAAWA,EAAIA,EAAI,EACxC,CACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,GAAI,EAAEF,aAAaE,GAAI,MAAM,IAAI,UAAU,mCAAmC,CAChF,CACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,QAASH,EAAI,EAAGA,EAAIG,EAAE,OAAQH,IAAK,CACjC,IAAID,EAAII,EAAEH,CAAC,EACXD,EAAE,WAAaA,EAAE,YAAc,GAAIA,EAAE,aAAe,GAAI,UAAWA,IAAMA,EAAE,SAAW,IAAK,OAAO,eAAeE,EAAG,GAAGF,EAAE,GAAG,EAAGA,CAAC,CACpI,CACA,CACA,SAAS,GAAGE,EAAGE,EAAGH,EAAG,CACnB,OAAOG,GAAK,GAAGF,EAAE,UAAWE,CAAC,EAAGH,GAAK,GAAGC,EAAGD,CAAC,EAAG,OAAO,eAAeC,EAAG,YAAa,CACnF,SAAU,EACX,CAAA,EAAGA,CACN,CACA,SAAS,GAAGA,EAAG,CACb,OAAO,GAAK,OAAO,eAAiB,OAAO,eAAe,KAAI,EAAK,SAASE,EAAG,CAC7E,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CACjD,EAAK,GAAGF,CAAC,CACT,CACA,SAAS,IAAK,CACZ,GAAI,CACF,IAAIA,EAAI,CAAC,QAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,CAAA,EAAI,UAAW,CACtF,CAAK,CAAC,CACH,MAAW,CACd,CACE,OAAQ,GAAK,UAAW,CACtB,MAAO,CAAC,CAACA,CACb,GAAM,CACN,CACA,SAAS,GAAGA,EAAG,CACb,GAAIA,IAAM,OAAQ,MAAM,IAAI,eAAe,2DAA2D,EACtG,OAAOA,CACT,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,GAAIA,IAAM,OAAOA,GAAK,UAAY,OAAOA,GAAK,YAAa,OAAOA,EAClE,GAAIA,IAAM,OAAQ,MAAM,IAAI,UAAU,0DAA0D,EAChG,OAAO,GAAGF,CAAC,CACb,CACA,SAAS,GAAGA,EAAGE,EAAGH,EAAG,CACnB,OAAOG,EAAI,GAAGA,CAAC,EAAG,GAAGF,EAAG,GAAE,EAAK,QAAQ,UAAUE,EAAGH,GAAK,CAAE,EAAE,GAAGC,CAAC,EAAE,WAAW,EAAIE,EAAE,MAAMF,EAAGD,CAAC,CAAC,CACjG,CACA,SAAS,GAAGC,EAAGE,EAAG,CAChB,OAAO,GAAK,OAAO,eAAiB,OAAO,eAAe,KAAM,EAAG,SAASH,EAAGD,EAAG,CAChF,OAAOC,EAAE,UAAYD,EAAGC,CAC5B,EAAK,GAAGC,EAAGE,CAAC,CACZ,CACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,GAAI,OAAOA,GAAK,YAAcA,IAAM,KAAM,MAAM,IAAI,UAAU,oDAAoD,EAClHF,EAAE,UAAY,OAAO,OAAOE,GAAKA,EAAE,UAAW,CAC5C,YAAa,CACX,MAAOF,EACP,SAAU,GACV,aAAc,EACpB,CACG,CAAA,EAAG,OAAO,eAAeA,EAAG,YAAa,CACxC,SAAU,EACX,CAAA,EAAGE,GAAK,GAAGF,EAAGE,CAAC,CAClB,CACA,SAAS,GAAGF,EAAG,CACb,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOA,CAC/B,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,IAAIH,EAAIC,GAAK,KAAO,KAAO,OAAO,OAAU,KAAeA,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC/F,GAAID,GAAK,KAAM,CACb,IAAID,EAAGG,EAAGG,EAAGD,EAAGE,EAAI,CAAA,EAAIE,EAAI,GAAIK,EAAI,GACpC,GAAI,CACF,GAAIR,GAAKL,EAAIA,EAAE,KAAKC,CAAC,GAAG,KAAME,IAAM,EAAG,CACrC,GAAI,OAAOH,CAAC,IAAMA,EAAG,OACrBQ,EAAI,EACZ,KAAa,MAAO,EAAEA,GAAKT,EAAIM,EAAE,KAAKL,CAAC,GAAG,QAAUM,EAAE,KAAKP,EAAE,KAAK,EAAGO,EAAE,SAAWH,GAAIK,EAAI,GAAI,CACzF,OAAQ,EAAG,CACVK,EAAI,GAAIX,EAAI,CAClB,QAAc,CACR,GAAI,CACF,GAAI,CAACM,GAAKR,EAAE,QAAU,OAASI,EAAIJ,EAAE,OAAQ,EAAE,OAAOI,CAAC,IAAMA,GAAI,MACzE,QAAgB,CACR,GAAIS,EAAG,MAAMX,CACrB,CACA,CACI,OAAOI,CACX,CACA,CACA,SAAS,GAAGL,EAAGE,EAAG,EACfA,GAAK,MAAQA,EAAIF,EAAE,UAAYE,EAAIF,EAAE,QACtC,QAASD,EAAI,EAAGD,EAAI,MAAMI,CAAC,EAAGH,EAAIG,EAAGH,IAAKD,EAAEC,CAAC,EAAIC,EAAED,CAAC,EACpD,OAAOD,CACT,CACA,SAAS,GAAGE,EAAGE,EAAG,CAChB,GAAIF,EAAG,CACL,GAAI,OAAOA,GAAK,SAAU,OAAO,GAAGA,EAAGE,CAAC,EACxC,IAAIH,EAAI,CAAE,EAAC,SAAS,KAAKC,CAAC,EAAE,MAAM,EAAG,EAAE,EACvC,OAAOD,IAAM,UAAYC,EAAE,cAAgBD,EAAIC,EAAE,YAAY,MAAOD,IAAM,OAASA,IAAM,MAAQ,MAAM,KAAKC,CAAC,EAAID,IAAM,aAAe,2CAA2C,KAAKA,CAAC,EAAI,GAAGC,EAAGE,CAAC,EAAI,MAC1M,CACA,CACA,SAAS,IAAK,CACZ,MAAM,IAAI,UAAU;AAAA,mFAC6D,CACnF,CACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,OAAO,GAAGF,CAAC,GAAK,GAAGA,EAAGE,CAAC,GAAK,GAAGF,EAAGE,CAAC,GAAK,GAAI,CAC9C,CACA,IAAI,GAAK,CACP,MAAO,UACP,OAAQ,UACR,KAAM,UACN,KAAM,UACN,MAAO,UACP,OAAQ,UACR,IAAK,UACL,OAAQ,UACR,QAAS,UACT,MAAO,UACP,KAAM,UACN,MAAO,UACP,OAAQ,UACR,KAAM,UACN,KAAM,UACN,KAAM,UACN,KAAM,UACN,SAAU,UACV,WAAY,UACZ,UAAW,UACX,SAAU,UACV,YAAa,UACb,cAAe,UACf,kBAAmB,UACnB,YAAa,UACb,KAAM,UACN,aAAc,UACd,WAAY,UACZ,cAAe,UACf,YAAa,UACb,SAAU,UACV,cAAe,UACf,cAAe,UACf,UAAW,UACX,eAAgB,UAChB,UAAW,UACX,UAAW,UACX,UAAW,UACX,cAAe,UACf,gBAAiB,UACjB,OAAQ,UACR,eAAgB,UAChB,UAAW,UACX,eAAgB,UAChB,cAAe,UACf,iBAAkB,UAClB,QAAS,UACT,QAAS,UACT,UAAW,UACX,UAAW,UACX,UAAW,UACX,UAAW,UACX,eAAgB,UAChB,eAAgB,UAChB,gBAAiB,UACjB,UAAW,UACX,WAAY,UACZ,WAAY,UACZ,QAAS,UACT,aAAc,UACd,WAAY,UACZ,QAAS,UACT,YAAa,UACb,YAAa,UACb,aAAc,UACd,WAAY,UACZ,aAAc,UACd,WAAY,UACZ,UAAW,UACX,WAAY,UACZ,YAAa,UACb,OAAQ,UACR,MAAO,UACP,SAAU,UACV,SAAU,UACV,UAAW,UACX,YAAa,UACb,cAAe,UACf,eAAgB,UAChB,WAAY,UACZ,UAAW,UACX,cAAe,UACf,aAAc,UACd,UAAW,UACX,UAAW,UACX,gBAAiB,UACjB,UAAW,UACX,KAAM,UACN,UAAW,UACX,IAAK,UACL,UAAW,UACX,UAAW,UACX,QAAS,UACT,OAAQ,UACR,UAAW,UACX,cAAe,UACf,QAAS,UACT,UAAW,UACX,KAAM,UACN,UAAW,UACX,UAAW,UACX,SAAU,UACV,WAAY,UACZ,OAAQ,UACR,cAAe,UACf,WAAY,UACZ,MAAO,UACP,UAAW,UACX,SAAU,UACV,MAAO,UACP,WAAY,UACZ,MAAO,UACP,MAAO,UACP,WAAY,UACZ,UAAW,UACX,WAAY,UACZ,OAAQ,UACR,aAAc,UACd,MAAO,UACP,qBAAsB,UACtB,QAAS,UACT,QAAS,UACT,SAAU,UACV,UAAW,UACX,OAAQ,UACR,QAAS,UACT,MAAO,UACP,WAAY,UACZ,YAAa,UACb,OAAQ,UACR,UAAW,UACX,KAAM,UACN,KAAM,UACN,UAAW,UACX,YAAa,UACb,SAAU,UACV,OAAQ,UACR,UAAW,UACX,eAAgB,UAChB,WAAY,UACZ,cAAe,UACf,SAAU,UACV,SAAU,UACV,aAAc,UACd,YAAa,UACb,KAAM,UACN,YAAa,UACb,MAAO,SACT,EAAG,GAAK,IAAI,UAAU,CAAC,EAAG,GAAK,IAAI,WAAW,GAAG,OAAQ,EAAG,CAAC,EAAG,GAAK,IAAI,aAAa,GAAG,OAAQ,EAAG,CAAC,EAAG,GAAK,iBAAkB,GAAK,iFACpI,SAAS,GAAGF,EAAG,CACb,IAAIE,EAAI,EAAGH,EAAI,EAAGD,EAAI,EAAGG,EAAI,EAC7B,GAAID,EAAE,CAAC,IAAM,IACXA,EAAE,SAAW,GAAKE,EAAI,SAASF,EAAE,OAAO,CAAC,EAAIA,EAAE,OAAO,CAAC,EAAG,EAAE,EAAGD,EAAI,SAASC,EAAE,OAAO,CAAC,EAAIA,EAAE,OAAO,CAAC,EAAG,EAAE,EAAGF,EAAI,SAASE,EAAE,OAAO,CAAC,EAAIA,EAAE,OAAO,CAAC,EAAG,EAAE,IAAME,EAAI,SAASF,EAAE,OAAO,CAAC,EAAIA,EAAE,OAAO,CAAC,EAAG,EAAE,EAAGD,EAAI,SAASC,EAAE,OAAO,CAAC,EAAIA,EAAE,OAAO,CAAC,EAAG,EAAE,EAAGF,EAAI,SAASE,EAAE,OAAO,CAAC,EAAIA,EAAE,OAAO,CAAC,EAAG,EAAE,GAAIA,EAAE,SAAW,IAAMC,EAAI,SAASD,EAAE,OAAO,CAAC,EAAIA,EAAE,OAAO,CAAC,EAAG,EAAE,EAAI,aAC9V,GAAG,KAAKA,CAAC,EAAG,CACnB,IAAII,EAAIJ,EAAE,MAAM,EAAE,EAClBI,IAAMF,EAAI,CAACE,EAAE,CAAC,EAAGL,EAAI,CAACK,EAAE,CAAC,EAAGN,EAAI,CAACM,EAAE,CAAC,EAAGA,EAAE,CAAC,IAAMH,EAAI,CAACG,EAAE,CAAC,GAC5D,CACE,MAAO,CACLF,EACA,EAAGH,EACH,EAAGD,EACH,EAAGG,CACJ,CACH,CACA,IAAI,GAAK,CAAE,EACX,QAAS,MAAM,GACb,GAAG,EAAE,EAAI,GAAG,GAAG,EAAE,CAAC,EAAG,GAAG,GAAG,EAAE,CAAC,EAAI,GAAG,EAAE,EACzC,SAAS,GAAGD,EAAGE,EAAGH,EAAGD,EAAGG,EAAG,CACzB,OAAO,GAAG,CAAC,EAAIH,GAAK,GAAKC,GAAK,GAAKG,GAAK,EAAIF,EAAG,GAAG,CAAC,EAAI,GAAG,CAAC,EAAI,WAAY,GAAG,CAAC,CACjF,CACA,SAAS,GAAGA,EAAG,CACb,GAAIA,EAAIA,EAAE,YAAW,EAAI,OAAO,GAAGA,CAAC,EAAK,IAAa,OAAO,GAAGA,CAAC,EACjE,IAAIE,EAAI,GAAGF,CAAC,EAAGD,EAAIG,EAAE,EAAGJ,EAAII,EAAE,EAAGD,EAAIC,EAAE,EAAGE,EAAIF,EAAE,EAChDE,EAAIA,EAAI,IAAM,EACd,IAAID,EAAI,GAAGJ,EAAGD,EAAGG,EAAGG,CAAC,EACrB,OAAO,GAAGJ,CAAC,EAAIG,EAAGA,CACpB,CACA,IAAI,GAAK,CAAE,EACX,SAAS,GAAGH,EAAG,CACb,GAAI,OAAO,GAAGA,CAAC,EAAK,IAAa,OAAO,GAAGA,CAAC,EAC5C,IAAIE,GAAKF,EAAI,YAAc,GAAID,GAAKC,EAAI,SAAW,EAAGF,EAAIE,EAAI,IAAKC,EAAI,IAAKG,EAAI,GAAGF,EAAGH,EAAGD,EAAGG,CAAC,EAC7F,OAAO,GAAGD,CAAC,EAAII,EAAGA,CACpB,CACA,SAAS,GAAGJ,EAAGE,EAAGH,EAAGD,EAAG,CACtB,OAAOC,GAAKG,GAAK,IAAMF,GAAK,GAC9B,CACA,SAAS,GAAGA,EAAGE,EAAGH,EAAGD,EAAGG,EAAGG,EAAG,CAC5B,IAAID,EAAI,KAAK,MAAMJ,EAAIK,EAAIH,CAAC,EAAGI,EAAI,KAAK,MAAML,EAAE,oBAAsBI,EAAIN,EAAIM,EAAIH,CAAC,EAAGM,EAAI,IAAI,WAAW,CAAC,EAC1GP,EAAE,gBAAgBA,EAAE,YAAaE,CAAC,EAAGF,EAAE,WAAWG,EAAGE,EAAG,EAAG,EAAGL,EAAE,KAAMA,EAAE,cAAeO,CAAC,EACxF,IAAIK,EAAI,GAAGL,EAAG,CAAC,EAAG,EAAIK,EAAE,CAAC,EAAGF,EAAIE,EAAE,CAAC,EAAGJ,EAAII,EAAE,CAAC,EAAGK,EAAIL,EAAE,CAAC,EACvD,MAAO,CAAC,EAAGF,EAAGF,EAAGS,CAAC,CACpB,CACA,SAAS,EAAEjB,EAAGE,EAAGH,EAAG,CAClB,OAAQG,EAAI,GAAGA,CAAC,KAAMF,EAAI,OAAO,eAAeA,EAAGE,EAAG,CACpD,MAAOH,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACX,CAAA,EAAIC,EAAEE,CAAC,EAAIH,EAAGC,CACjB,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,IAAIH,EAAI,OAAO,KAAKC,CAAC,EACrB,GAAI,OAAO,sBAAuB,CAChC,IAAIF,EAAI,OAAO,sBAAsBE,CAAC,EACtCE,IAAMJ,EAAIA,EAAE,OAAO,SAASG,EAAG,CAC7B,OAAO,OAAO,yBAAyBD,EAAGC,CAAC,EAAE,UACnD,CAAK,GAAIF,EAAE,KAAK,MAAMA,EAAGD,CAAC,CAC1B,CACE,OAAOC,CACT,CACA,SAAS,EAAEC,EAAG,CACZ,QAASE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIH,EAAI,UAAUG,CAAC,GAAK,KAAO,UAAUA,CAAC,EAAI,CAAE,EAChDA,EAAI,EAAI,GAAG,OAAOH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAASD,EAAG,CAC5C,EAAEE,EAAGF,EAAGC,EAAED,CAAC,CAAC,CAClB,CAAK,EAAI,OAAO,0BAA4B,OAAO,iBAAiBE,EAAG,OAAO,0BAA0BD,CAAC,CAAC,EAAI,GAAG,OAAOA,CAAC,CAAC,EAAE,QAAQ,SAASD,EAAG,CAC1I,OAAO,eAAeE,EAAGF,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CACvE,CAAK,CACL,CACE,OAAOE,CACT,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,KAAO,CAAC,CAAE,EAAC,eAAe,KAAKF,EAAGE,CAAC,IAAMF,EAAI,GAAGA,CAAC,KAAO,MAAQ,CAChE,OAAOA,CACT,CACA,SAAS,IAAK,CACZ,OAAO,GAAK,OAAO,QAAW,KAAe,QAAQ,IAAM,QAAQ,IAAI,KAAM,EAAG,SAASA,EAAGE,EAAGH,EAAG,CAChG,IAAID,EAAI,GAAGE,EAAGE,CAAC,EACf,GAAIJ,EAAG,CACL,IAAIG,EAAI,OAAO,yBAAyBH,EAAGI,CAAC,EAC5C,OAAOD,EAAE,IAAMA,EAAE,IAAI,KAAK,UAAU,OAAS,EAAID,EAAID,CAAC,EAAIE,EAAE,KAClE,CACG,EAAE,GAAG,MAAM,KAAM,SAAS,CAC7B,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAGD,EAAG,CACtB,IAAIG,EAAI,GAAG,GAAGD,EAAE,SAAS,EAAGE,EAAGH,CAAC,EAChC,OAAO,OAAOE,GAAK,WAAa,SAASG,EAAG,CAC1C,OAAOH,EAAE,MAAMF,EAAGK,CAAC,CACvB,EAAMH,CACN,CACA,SAAS,GAAGD,EAAG,CACb,OAAOA,EAAE,WAAa,EAAIA,EAAE,IAC9B,CACA,SAAS,GAAGA,EAAG,CACb,IAAIE,EAAI,EACR,OAAOF,EAAE,QAAQ,SAASD,EAAG,CAC3B,OAAOG,GAAK,GAAGH,CAAC,CACjB,CAAA,EAAGG,CACN,CACA,SAAS,GAAGF,EAAGE,EAAGH,EAAG,CACnB,IAAID,EAAIE,IAAM,SAAWE,EAAE,cAAgBA,EAAE,gBAAiBD,EAAIC,EAAE,aAAaJ,CAAC,EAClF,GAAIG,IAAM,KACR,MAAM,IAAI,MAAM,6CAA6C,EAC/DC,EAAE,aAAaD,EAAGF,CAAC,EAAGG,EAAE,cAAcD,CAAC,EACvC,IAAIG,EAAIF,EAAE,mBAAmBD,EAAGC,EAAE,cAAc,EAChD,GAAI,CAACE,EAAG,CACN,IAAID,EAAID,EAAE,iBAAiBD,CAAC,EAC5B,MAAMC,EAAE,aAAaD,CAAC,EAAG,IAAI,MAAM;AAAA,EACrC,OAAOE,EAAG;AAAA,CACX,EAAE,OAAOJ,CAAC,CAAC,CACZ,CACE,OAAOE,CACT,CACA,SAAS,GAAGD,EAAGE,EAAG,CAChB,OAAO,GAAG,SAAUF,EAAGE,CAAC,CAC1B,CACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,OAAO,GAAG,WAAYF,EAAGE,CAAC,CAC5B,CACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,IAAIH,EAAIC,EAAE,cAAe,EACzB,GAAID,IAAM,KACR,MAAM,IAAI,MAAM,gDAAgD,EAClE,IAAID,EAAGG,EACP,IAAKH,EAAI,EAAGG,EAAIC,EAAE,OAAQJ,EAAIG,EAAGH,IAAKE,EAAE,aAAaD,EAAGG,EAAEJ,CAAC,CAAC,EAC5DE,EAAE,YAAYD,CAAC,EACf,IAAIK,EAAIJ,EAAE,oBAAoBD,EAAGC,EAAE,WAAW,EAC9C,GAAI,CAACI,EACH,MAAMJ,EAAE,cAAcD,CAAC,EAAG,IAAI,MAAM,+CAA+C,EACrF,OAAOA,CACT,CACA,SAAS,GAAGC,EAAG,CACb,IAAIE,EAAIF,EAAE,GAAID,EAAIC,EAAE,OAAQF,EAAIE,EAAE,QAASC,EAAID,EAAE,aAAcI,EAAIJ,EAAE,eACrEE,EAAE,aAAaD,CAAC,EAAGC,EAAE,aAAaE,CAAC,EAAGF,EAAE,cAAcJ,CAAC,EAAGI,EAAE,aAAaH,CAAC,CAC5E,CACA,IAAI,GAAK;AAAA,EACN,GAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA,EAAI,uBAAuB,KAAM,CAAC,EAAG,uBAAuB,KAAM,CAAC,EAAG,uBAAuB,cAAe,CAAC,EAAG,uBAAuB,MAAO,CAAC,EAAG,uBAAuB,eAAgB,CAAC,EAAG,uBAAuB,IAAK,CAAC,EAAG,uBAAuB,aAAc,CAAC,EAAG,uBAAuB,MAAO,CAAC,EAAG,GAAqB,UAAW,CAC9V,SAASC,EAAEE,EAAGH,EAAGD,EAAG,CAClB,GAAG,KAAME,CAAC,EAAG,EAAE,KAAM,QAAS,IAAI,YAAc,EAAG,EAAE,KAAM,gBAAiB,IAAI,YAAc,EAAG,EAAE,KAAM,WAAY,CAAC,EAAG,EAAE,KAAM,gBAAiB,CAAC,EACnJ,IAAIC,EAAI,KAAK,cAAe,EAC5B,GAAI,KAAK,SAAWA,EAAE,SAAU,KAAK,qBAAuBA,EAAE,qBAAsB,KAAK,uBAAyBA,EAAE,uBAAwB,KAAK,SAAWA,EAAE,SAAU,KAAK,WAAaA,EAAE,WAAY,KAAK,OAASA,EAAE,OAAQ,KAAK,oBAAsB,wBAAyBA,EAAIA,EAAE,oBAAsB,CAAE,EAAE,KAAK,cAAgB,kBAAmBA,EAAIA,EAAE,cAAgB,CAAA,EAAI,KAAK,YAAc,wBAAyBA,EAAG,KAAK,uBAAyB,GAAG,KAAK,UAAU,EAAG,KAAK,OAAS,KAAK,SAAW,KAAK,uBAAwB,KAAK,SAAWH,EAAG,KAAK,cAAgB,KAAK,eAAe,SAAUI,EAAGD,EAAE,qBAAsBA,EAAE,uBAAwB,IAAI,EAAG,KAAK,YAAcF,EAAI,KAAK,eAAe,OAAQG,EAAG,GAAKD,EAAE,qBAAsB,GAAKA,EAAE,uBAAwBF,CAAC,EAAI,KAAM,KAAK,YAAa,CAClyB,IAAIK,EAAI,GAAG,KAAK,mBAAmB,EACnC,GAAI,KAAK,cAAc,SAAW,KAAK,SAAU,MAAM,IAAI,MAAM,wDAAwD,OAAO,KAAK,SAAU,mBAAmB,EAAE,OAAO,KAAK,cAAc,OAAQ,WAAW,CAAC,EAClN,KAAK,cAAgB,IAAI,aAAa,KAAK,cAAc,OAASA,CAAC,EACnE,QAASD,EAAI,EAAGA,EAAI,KAAK,cAAc,OAAQA,IAAK,CAClD,IAAIE,EAAI,KAAK,cAAcF,CAAC,EAC5B,GAAIE,EAAE,SAAWD,EAAG,MAAM,IAAI,MAAM,8DAA8D,OAAOC,EAAE,OAAQ,oBAAoB,EAAE,OAAOD,EAAG,GAAG,CAAC,EACvJ,QAASG,EAAI,EAAGA,EAAIF,EAAE,OAAQE,IAAK,KAAK,cAAcJ,EAAIC,EAAIG,CAAC,EAAIF,EAAEE,CAAC,CAC9E,CACM,KAAK,OAAS,KAAK,sBACzB,CACA,CACE,OAAO,GAAGP,EAAG,CAAC,CACZ,IAAK,OACL,MAAO,UAAW,CAChB,GAAG,KAAK,aAAa,EAAG,KAAK,cAAgB,GAAG,KAAK,WAAW,EAAG,KAAK,YAAc,KAC5F,CACA,EAAK,CACD,IAAK,iBACL,MAAO,SAASD,EAAGD,EAAGG,EAAGG,EAAGD,EAAG,CAC7B,IAAIE,EAAI,KAAK,cAAe,EAAEE,EAAIT,EAAE,aAAc,EAClD,GAAIS,IAAM,KAAM,MAAM,IAAI,MAAM,iDAAiD,EACjF,IAAIK,EAAI,GAAGd,EAAGG,CAAC,EAAGK,EAAI,GAAGR,EAAGM,CAAC,EAAGM,EAAI,GAAGZ,EAAG,CAACc,EAAGN,CAAC,CAAC,EAAGE,EAAI,CAAE,EACzDH,EAAE,SAAS,QAAQ,SAASI,EAAG,CAC7B,IAAIa,EAAIxB,EAAE,mBAAmBY,EAAGD,CAAC,EACjCa,IAAMd,EAAEC,CAAC,EAAIa,EACrB,CAAO,EACD,IAAIL,EAAI,CAAE,EACVZ,EAAE,WAAW,QAAQ,SAASI,EAAG,CAC/BQ,EAAER,EAAE,IAAI,EAAIX,EAAE,kBAAkBY,EAAGD,EAAE,IAAI,CACjD,CAAO,EACD,IAAIU,EACJ,GAAI,wBAAyBd,IAAMA,EAAE,oBAAoB,QAAQ,SAASI,EAAG,CAC3EQ,EAAER,EAAE,IAAI,EAAIX,EAAE,kBAAkBY,EAAGD,EAAE,IAAI,CACjD,CAAO,EAAGU,EAAIrB,EAAE,aAAY,EAAIqB,IAAM,MAC9B,MAAM,IAAI,MAAM,0DAA0D,EAC5E,MAAO,CACL,KAAMpB,EACN,QAASW,EACT,GAAIZ,EACJ,YAAaK,EACb,OAAQI,EACR,eAAgBY,GAAK,CAAE,EACvB,iBAAkBX,EAClB,mBAAoBS,EACpB,UAAWlB,IAAM,OACjB,aAAca,EACd,eAAgBN,CACjB,CACP,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAASP,EAAG,CACjB,IAAID,EAAI,KAAMG,EAAI,EAAGG,EAAIL,EAAE,GAAII,EAAIJ,EAAE,OACrC,KAAK,aAAeK,EAAE,WAAWA,EAAE,aAAcL,EAAE,cAAc,EAAGE,EAAI,EAAG,KAAK,oBAAoB,QAAQ,SAASI,EAAG,CACtH,OAAOJ,GAAKH,EAAE,cAAcO,EAAGN,EAAGE,EAAG,EAAE,CACxC,CAAA,EAAGG,EAAE,WAAWA,EAAE,aAAc,KAAK,cAAeA,EAAE,WAAW,EAAGA,EAAE,WAAWA,EAAE,aAAcL,EAAE,MAAM,EAAGE,EAAI,EAAG,KAAK,WAAW,QAAQ,SAASI,EAAG,CACtJ,OAAOJ,GAAKH,EAAE,cAAcO,EAAGN,EAAGE,EAAG,EAAE,CAC/C,CAAO,EAAGG,EAAE,WAAWA,EAAE,aAAc,KAAK,MAAOA,EAAE,YAAY,IAAMA,EAAE,WAAWA,EAAE,aAAcD,CAAC,EAAGF,EAAI,EAAG,KAAK,WAAW,QAAQ,SAASI,EAAG,CAC3I,OAAOJ,GAAKH,EAAE,cAAcO,EAAGN,EAAGE,CAAC,CAC3C,CAAO,EAAGG,EAAE,WAAWA,EAAE,aAAc,KAAK,MAAOA,EAAE,YAAY,GAAIA,EAAE,WAAWA,EAAE,aAAc,IAAI,CACtG,CACA,EAAK,CACD,IAAK,gBACL,MAAO,SAASL,EAAG,CACjB,IAAID,EAAI,KACR,KAAK,aAAe,KAAK,oBAAoB,QAAQ,SAASG,EAAG,CAC/D,OAAOH,EAAE,gBAAgBG,EAAGF,EAAG,EAAE,CAClC,CAAA,EAAG,KAAK,WAAW,QAAQ,SAASE,EAAG,CACtC,OAAOH,EAAE,gBAAgBG,EAAGF,EAAG,EAAE,CAClC,CAAA,GAAK,KAAK,WAAW,QAAQ,SAASE,EAAG,CACxC,OAAOH,EAAE,gBAAgBG,EAAGF,CAAC,CACrC,CAAO,CACP,CACA,EAAK,CACD,IAAK,gBACL,MAAO,SAASA,EAAGD,EAAGG,EAAGG,EAAG,CAC1B,IAAID,EAAI,GAAGJ,EAAE,IAAI,EACjB,GAAI,OAAOI,GAAK,SAAU,MAAM,IAAI,MAAM,iDAAiD,OAAOJ,EAAE,KAAM,GAAG,CAAC,EAC9G,IAAIM,EAAIP,EAAE,mBAAmBC,EAAE,IAAI,EAAGQ,EAAIT,EAAE,GAC5C,GAAIO,IAAM,GAAI,CACZE,EAAE,wBAAwBF,CAAC,EAC3B,IAAIO,EAAI,KAAK,aAAeR,EAAI,KAAK,uBAAyB,GAAG,KAAK,mBAAmB,GAAK,aAAa,kBAAoB,KAAK,uBAAyB,aAAa,kBAC1K,GAAIG,EAAE,oBAAoBF,EAAGN,EAAE,KAAMA,EAAE,KAAMA,EAAE,YAAc,GAAIa,EAAGX,CAAC,EAAG,KAAK,aAAeG,EAC1F,GAAIG,aAAa,uBACfA,EAAE,oBAAoBF,EAAG,CAAC,MACvB,CACH,IAAIC,EAAIC,EAAE,aAAa,wBAAwB,EAC/CD,GAAKA,EAAE,yBAAyBD,EAAG,CAAC,CAChD,CACA,CACM,OAAON,EAAE,KAAOI,CACtB,CACA,EAAK,CACD,IAAK,kBACL,MAAO,SAASJ,EAAGD,EAAGG,EAAG,CACvB,IAAIG,EAAIN,EAAE,mBAAmBC,EAAE,IAAI,EAAGI,EAAIL,EAAE,GAC5C,GAAIM,IAAM,KAAOD,EAAE,yBAAyBC,CAAC,EAAG,KAAK,aAAeH,GAClE,GAAIE,aAAa,uBACfA,EAAE,oBAAoBC,EAAG,CAAC,MACvB,CACH,IAAIC,EAAIF,EAAE,aAAa,wBAAwB,EAC/CE,GAAKA,EAAE,yBAAyBD,EAAG,CAAC,CAC9C,CACA,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAASL,EAAG,CACjBA,IAAM,KAAK,WAAa,KAAK,SAAWA,EAAG,KAAK,cAAgB,KAAK,SAAWA,EAAG,KAAK,MAAQ,IAAI,aAAa,KAAK,YAAc,KAAK,SAAW,KAAK,uBAAyB,KAAK,cAAgB,KAAK,sBAAsB,EACxO,CACA,EAAK,CACD,IAAK,qBACL,MAAO,UAAW,CAChB,OAAO,KAAK,gBAAkB,CACpC,CACA,EAAK,CACD,IAAK,gBACL,MAAO,SAASA,EAAGD,EAAG,CACpB,IAAIG,EAAIH,EAAE,GAAIM,EAAIN,EAAE,QACpBG,EAAE,OAAOA,EAAE,KAAK,EAAGA,EAAE,WAAWG,CAAC,EAAG,KAAK,YAAYL,EAAGD,CAAC,EAAG,KAAK,UAAU,KAAK,OAAQA,CAAC,CAC/F,CACA,EAAK,CACD,IAAK,SACL,MAAO,SAASC,EAAG,CACjB,KAAK,mBAAkB,IAAO,KAAK,cAAgB,KAAK,YAAY,GAAG,SAAS,EAAG,EAAGA,EAAE,MAAQA,EAAE,WAAaA,EAAE,gBAAiBA,EAAE,OAASA,EAAE,WAAaA,EAAE,eAAe,EAAG,KAAK,YAAY,KAAK,WAAW,EAAG,KAAK,cAAc,EAAE,EAAE,GAAIA,CAAC,EAAG,GAAI,CACrP,WAAYA,EAAE,WAAaA,EAAE,eACrC,CAAO,EAAG,KAAK,WAAW,EAAG,KAAK,cAAc,KAAK,WAAW,GAAI,KAAK,cAAc,GAAG,SAAS,EAAG,EAAGA,EAAE,MAAQA,EAAE,WAAYA,EAAE,OAASA,EAAE,UAAU,EAAG,KAAK,YAAY,KAAK,aAAa,EAAG,KAAK,cAAcA,EAAG,KAAK,aAAa,EAAG,KAAK,cAAc,KAAK,aAAa,EACjR,CACA,EAAK,CACD,IAAK,YACL,MAAO,SAASA,EAAGD,EAAG,CACpB,IAAIG,EAAIH,EAAE,GAAIM,EAAIN,EAAE,YACpB,GAAIG,EAAE,gBAAgBA,EAAE,YAAaG,CAAC,EAAG,CAAC,KAAK,YAC7CH,EAAE,WAAWF,EAAG,EAAG,KAAK,aAAa,UAC9BE,aAAa,uBACpBA,EAAE,oBAAoBF,EAAG,EAAG,KAAK,SAAU,KAAK,QAAQ,MACrD,CACH,IAAII,EAAIF,EAAE,aAAa,wBAAwB,EAC/CE,GAAKA,EAAE,yBAAyBJ,EAAG,EAAG,KAAK,SAAU,KAAK,QAAQ,CAC1E,CACA,CACA,CAAG,CAAC,CACJ,IAAK,GAAqB,SAASC,EAAG,CACpC,SAASE,GAAI,CACX,OAAO,GAAG,KAAMA,CAAC,EAAG,GAAG,KAAMA,EAAG,SAAS,CAC7C,CACE,OAAO,GAAGA,EAAGF,CAAC,EAAG,GAAGE,EAAG,CAAC,CACtB,IAAK,OACL,MAAO,UAAW,CAChB,GAAGA,EAAG,OAAQ,IAAI,EAAE,CAAA,CAAE,CAC5B,CACA,EAAK,CACD,IAAK,UACL,MAAO,SAASJ,EAAGG,EAAGG,EAAG,CACvB,IAAID,EAAIF,EAAI,KAAK,OACjB,GAAIG,EAAE,OAAQ,CACZ,QAASC,EAAIF,EAAI,KAAK,OAAQA,EAAIE,EAAGF,IACnC,KAAK,MAAMA,CAAC,EAAI,EAClB,MACR,CACM,OAAO,KAAK,mBAAmB,GAAGL,CAAC,EAAGK,EAAGC,CAAC,CAChD,CACA,CAAG,CAAC,CACJ,EAAE,EAAE,EAAG,GAAqB,SAASJ,EAAG,CACtC,SAASE,GAAI,CACX,IAAIH,EACJ,GAAG,KAAMG,CAAC,EACV,QAASJ,EAAI,UAAU,OAAQG,EAAI,IAAI,MAAMH,CAAC,EAAGM,EAAI,EAAGA,EAAIN,EAAGM,IAC7DH,EAAEG,CAAC,EAAI,UAAUA,CAAC,EACpB,OAAOL,EAAI,GAAG,KAAMG,EAAG,CAAE,EAAC,OAAOD,CAAC,CAAC,EAAG,EAAEF,EAAG,YAAa,MAAM,EAAGA,CACrE,CACE,OAAO,GAAGG,EAAGF,CAAC,EAAG,GAAGE,EAAG,CAAC,CACtB,IAAK,OACL,MAAO,UAAW,CAChB,GAAGA,EAAG,OAAQ,IAAI,EAAE,CAAA,CAAE,CAC5B,CACA,EAAK,CACD,IAAK,UACL,MAAO,SAASJ,EAAGG,EAAGG,EAAGD,EAAGE,EAAG,CAC7B,IAAIE,EAAIN,EAAI,KAAK,OACjB,GAAII,EAAE,QAAUD,EAAE,QAAUD,EAAE,OAAQ,CACpC,QAASS,EAAIL,EAAI,KAAK,OAAQA,EAAIK,EAAGL,IACnC,KAAK,MAAMA,CAAC,EAAI,EAClB,MACR,CACM,OAAO,KAAK,mBAAmB,GAAGT,CAAC,EAAGS,EAAGH,EAAGD,EAAGE,CAAC,CACtD,CACA,CAAG,CAAC,CACJ,EAAE,EAAE,EACJ,SAAS,GAAGL,EAAGE,EAAG,CAChB,OAAuB,UAAW,CAChC,SAASH,EAAED,EAAGG,EAAGG,EAAG,CAClB,GAAG,KAAML,CAAC,EAAG,EAAE,KAAM,YAAaG,CAAC,EAAG,KAAK,SAAWF,EAAE,IAAI,SAASG,EAAG,CACtE,OAAO,IAAIA,EAAEL,EAAGG,EAAGG,CAAC,CAC5B,CAAO,CACP,CACI,OAAO,GAAGL,EAAG,CAAC,CACZ,IAAK,aACL,MAAO,SAASE,EAAG,CACjB,KAAK,SAAS,QAAQ,SAASG,EAAG,CAChC,OAAOA,EAAE,WAAWH,CAAC,CAC/B,CAAS,CACT,CACA,EAAO,CACD,IAAK,UACL,MAAO,SAASA,EAAGG,EAAGD,EAAGE,EAAGE,EAAG,CAC7B,KAAK,SAAS,QAAQ,SAASK,EAAG,CAChC,OAAOA,EAAE,QAAQX,EAAGG,EAAGD,EAAGE,EAAGE,CAAC,CACxC,CAAS,CACT,CACA,EAAO,CACD,IAAK,SACL,MAAO,SAASN,EAAG,CACjB,KAAK,SAAS,QAAQ,SAASG,EAAG,CAChC,OAAOA,EAAE,OAAOH,CAAC,CAC3B,CAAS,CACT,CACA,EAAO,CACD,IAAK,OACL,MAAO,UAAW,CAChB,KAAK,SAAS,QAAQ,SAASA,EAAG,CAChC,OAAOA,EAAE,KAAM,CACzB,CAAS,CACT,CACA,CAAK,CAAC,CACN,EAAK,CACL,CACA,SAAS,GAAGD,EAAGE,EAAGH,EAAGD,EAAGG,EAAG,CACzB,IAAIG,EAAIH,EAAE,cAAeE,EAAIF,EAAE,cAAeI,EAAIJ,EAAE,gBAAiBM,EAAIN,EAAE,eAAe,UAAYC,EAAED,EAAE,eAAe,SAAS,GAAKA,EAAE,eAAe,OAAS,OAASA,EAAE,eAAe,MAAOW,EAAIV,EAAE,MACxM,GAAIU,EAAG,CACLZ,EAAE,UAAYO,EAAGP,EAAE,KAAO,GAAG,OAAOK,EAAG,GAAG,EAAE,OAAOD,EAAG,KAAK,EAAE,OAAOD,CAAC,EACrE,IAAI,EAAIJ,EAAE,KAAMW,EAAIZ,EAAE,KAAMU,EAAIT,EAAE,EAAGkB,EAAIlB,EAAE,EAAGoB,EAAIrB,EAAE,EAAGW,EAAIX,EAAE,EAAGwB,GAAKd,EAAIW,GAAK,EAAGM,GAAKR,EAAIR,GAAK,EAAGkB,EAAIR,EAAIX,EAAGyB,EAAIxB,EAAIQ,EAAGN,EAAI,KAAK,KAAKgB,EAAIA,EAAIM,EAAIA,CAAC,EACnJ,GAAI,EAAEtB,EAAI,EAAID,GAAI,CAChBF,GAAKmB,EAAI,EAAIhB,EAAGM,GAAKgB,EAAI,EAAItB,EAAGQ,GAAKQ,EAAIjB,EAAIC,EAAGF,GAAKwB,EAAIvB,EAAIC,EAAGW,GAAKd,EAAIW,GAAK,EAAGM,GAAKR,EAAIR,GAAK,EAAGkB,EAAIR,EAAIX,EAAGyB,EAAIxB,EAAIQ,EAAGN,EAAI,KAAK,KAAKgB,EAAIA,EAAIM,EAAIA,CAAC,EACnJ,IAAIpB,EAAIb,EAAE,YAAYY,CAAC,EAAE,MACzB,GAAIC,EAAIF,EAAG,CACT,IAAIkB,EAAI,IACR,IAAKjB,EAAIA,EAAIiB,EAAGhB,EAAIb,EAAE,YAAYY,CAAC,EAAE,MAAOC,EAAIF,GAAKC,EAAE,OAAS,GAC9DA,EAAIA,EAAE,MAAM,EAAG,EAAE,EAAIiB,EAAGhB,EAAIb,EAAE,YAAYY,CAAC,EAAE,MAC/C,GAAIA,EAAE,OAAS,EAAG,MAC1B,CACM,IAAIS,EACJM,EAAI,EAAIM,EAAI,EAAIZ,EAAI,KAAK,KAAKM,EAAIhB,CAAC,EAAIU,EAAI,KAAK,KAAKY,EAAItB,CAAC,EAAIsB,EAAI,EAAIZ,EAAI,KAAK,KAAKM,EAAIhB,CAAC,EAAI,KAAK,GAAKU,EAAI,KAAK,KAAKM,EAAIhB,CAAC,EAAI,KAAK,GAAK,EAAGX,EAAE,OAAQA,EAAE,UAAUsB,EAAGG,CAAC,EAAGzB,EAAE,OAAOqB,CAAC,EAAGrB,EAAE,SAASY,EAAG,CAACC,EAAI,EAAGX,EAAE,KAAO,EAAIE,CAAC,EAAGJ,EAAE,QAAS,CAC7O,CACA,CACA,CACA,SAAS,GAAGA,EAAGE,EAAGH,EAAG,CACnB,GAAIG,EAAE,MAAO,CACX,IAAIJ,EAAIC,EAAE,UAAWE,EAAIF,EAAE,UAAWK,EAAIL,EAAE,YAAaI,EAAIJ,EAAE,WAAW,UAAYG,EAAEH,EAAE,WAAW,SAAS,GAAKA,EAAE,WAAW,OAAS,OAASA,EAAE,WAAW,MAC/JC,EAAE,UAAYG,EAAGH,EAAE,KAAO,GAAG,OAAOI,EAAG,GAAG,EAAE,OAAON,EAAG,KAAK,EAAE,OAAOG,CAAC,EAAGD,EAAE,SAASE,EAAE,MAAOA,EAAE,EAAIA,EAAE,KAAO,EAAGA,EAAE,EAAIJ,EAAI,CAAC,CAC7H,CACA,CACA,SAAS,GAAGE,EAAGE,EAAGH,EAAG,CACnB,IAAID,EAAIC,EAAE,UAAWE,EAAIF,EAAE,UAAWK,EAAIL,EAAE,YAC5CC,EAAE,KAAO,GAAG,OAAOI,EAAG,GAAG,EAAE,OAAON,EAAG,KAAK,EAAE,OAAOG,CAAC,EAAGD,EAAE,UAAY,OAAQA,EAAE,cAAgB,EAAGA,EAAE,cAAgB,EAAGA,EAAE,WAAa,EAAGA,EAAE,YAAc,OACzJ,IAAIG,EAAI,EACR,GAAI,OAAOD,EAAE,OAAS,SAAU,CAC9B,IAAIG,EAAIL,EAAE,YAAYE,EAAE,KAAK,EAAE,MAAOK,EAAI,KAAK,MAAMF,EAAI,CAAC,EAAGO,EAAI,KAAK,MAAMd,EAAI,EAAIK,CAAC,EAAG,EAAI,KAAK,IAAID,EAAE,KAAMJ,EAAI,CAAC,EAAIK,EAAGO,EAAI,KAAK,KAAKE,EAAI,EAAI,CAAC,EAAGJ,EAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,EAAG,CAAC,EAAI,KAAK,IAAII,EAAI,EAAG,CAAC,CAAC,CAAC,EAC9MZ,EAAE,UAAW,EAAEA,EAAE,OAAOE,EAAE,EAAIM,EAAGN,EAAE,EAAIU,EAAI,CAAC,EAAGZ,EAAE,OAAOE,EAAE,EAAI,EAAIK,EAAGL,EAAE,EAAIU,EAAI,CAAC,EAAGZ,EAAE,OAAOE,EAAE,EAAI,EAAIK,EAAGL,EAAE,EAAIU,EAAI,CAAC,EAAGZ,EAAE,OAAOE,EAAE,EAAIM,EAAGN,EAAE,EAAIU,EAAI,CAAC,EAAGZ,EAAE,IAAIE,EAAE,EAAGA,EAAE,EAAG,EAAGQ,EAAG,CAACA,CAAC,EAAGV,EAAE,UAAS,EAAIA,EAAE,KAAM,CAC1M,MACCA,EAAE,YAAaA,EAAE,IAAIE,EAAE,EAAGA,EAAE,EAAGA,EAAE,KAAOC,EAAG,EAAG,KAAK,GAAK,CAAC,EAAGH,EAAE,UAAS,EAAIA,EAAE,KAAM,EACrFA,EAAE,cAAgB,EAAGA,EAAE,cAAgB,EAAGA,EAAE,WAAa,EAAG,GAAGA,EAAGE,EAAGH,CAAC,CACxE,CACA,IAAI,GAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiCC,GAAK,GAAI,GAEV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA0CC,GAAK,GAAI,GAAK,sBAAuB,GAAK,GAAG,cAAe,GAAK,GAAG,MAAO,GAAK,CAAC,cAAe,oBAAqB,UAAU,EAAG,GAAqB,SAASC,EAAG,CACpK,SAASE,GAAI,CACX,OAAO,GAAG,KAAMA,CAAC,EAAG,GAAG,KAAMA,EAAG,SAAS,CAC7C,CACE,OAAO,GAAGA,EAAGF,CAAC,EAAG,GAAGE,EAAG,CAAC,CACtB,IAAK,gBACL,MAAO,UAAW,CAChB,MAAO,CACL,SAAU,EACV,qBAAsB,GACtB,uBAAwB,GACxB,OAAQ,sBAAsB,UAC9B,SAAU,GACV,WAAY,CAAC,CACX,KAAM,aACN,KAAM,EACN,KAAM,EAChB,EAAW,CACD,KAAM,SACN,KAAM,EACN,KAAM,EAChB,EAAW,CACD,KAAM,UACN,KAAM,EACN,KAAM,GACN,WAAY,EACtB,EAAW,CACD,KAAM,OACN,KAAM,EACN,KAAM,GACN,WAAY,EACtB,CAAS,EACD,oBAAqB,CAAC,CACpB,KAAM,UACN,KAAM,EACN,KAAM,EAChB,CAAS,EACD,cAAe,CAAC,CAACA,EAAE,OAAO,EAAG,CAACA,EAAE,OAAO,EAAG,CAACA,EAAE,OAAO,CAAC,CACtD,CACP,CACA,EAAK,CACD,IAAK,qBACL,MAAO,SAASJ,EAAGG,EAAGG,EAAG,CACvB,IAAID,EAAI,KAAK,MAAOE,EAAI,GAAGD,EAAE,KAAK,EAClCD,EAAEF,GAAG,EAAIG,EAAE,EAAGD,EAAEF,GAAG,EAAIG,EAAE,EAAGD,EAAEF,GAAG,EAAIG,EAAE,KAAMD,EAAEF,GAAG,EAAII,EAAGF,EAAEF,GAAG,EAAIH,CACxE,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAASA,EAAGG,EAAG,CACpB,IAAIG,EAAIH,EAAE,GAAIE,EAAIF,EAAE,iBAAkBI,EAAIF,EAAE,YAAaI,EAAIJ,EAAE,kBAAmBS,EAAIT,EAAE,SACxFC,EAAE,UAAUG,EAAGT,EAAE,eAAe,EAAGM,EAAE,UAAUC,EAAGP,EAAE,SAAS,EAAGM,EAAE,iBAAiBQ,EAAG,GAAId,EAAE,MAAM,CACxG,CACA,CAAG,CAAC,CACJ,EAAE,EAAE,EACJ,EAAE,GAAI,UAAW,CAAC,EAClB,EAAE,GAAI,UAAW,EAAI,KAAK,GAAK,CAAC,EAChC,EAAE,GAAI,UAAW,EAAI,KAAK,GAAK,CAAC,EAChC,IAAI,GAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASC,GAAK,GAAI,GAEV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmEC,GAAK,GAAI,GAAK,sBAAuB,GAAK,GAAG,cAAe,GAAK,GAAG,MAAO,GAAK,CAAC,WAAY,cAAe,oBAAqB,qBAAsB,2BAA4B,4BAA4B,EAAG,GAAK,CACxN,UAAW,SACX,uBAAwB,IACxB,yBAA0B,CAC5B,EACA,SAAS,GAAGE,EAAG,CACb,IAAIE,EAAI,EAAE,EAAE,CAAA,EAAI,EAAE,EAAG,EAAE,EACvB,OAAuB,SAASH,EAAG,CACjC,SAASD,GAAI,CACX,OAAO,GAAG,KAAMA,CAAC,EAAG,GAAG,KAAMA,EAAG,SAAS,CAC/C,CACI,OAAO,GAAGA,EAAGC,CAAC,EAAG,GAAGD,EAAG,CAAC,CACtB,IAAK,gBACL,MAAO,UAAW,CAChB,MAAO,CACL,SAAU,EACV,qBAAsB,GACtB,uBAAwB,GACxB,OAAQ,sBAAsB,UAC9B,SAAU,GACV,WAAY,CAAC,CACX,KAAM,aACN,KAAM,EACN,KAAM,EAClB,EAAa,CACD,KAAM,WACN,KAAM,EACN,KAAM,EAClB,EAAa,CACD,KAAM,WACN,KAAM,EACN,KAAM,EAClB,EAAa,CACD,KAAM,UACN,KAAM,EACN,KAAM,GACN,WAAY,EACxB,EAAa,CACD,KAAM,OACN,KAAM,EACN,KAAM,GACN,WAAY,EACxB,CAAW,EACD,oBAAqB,CAAC,CACpB,KAAM,gBACN,KAAM,EACN,KAAM,EAClB,CAAW,EACD,cAAe,CAAC,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,CAAC,CAChD,CACT,CACA,EAAO,CACD,IAAK,qBACL,MAAO,SAASM,EAAGD,EAAGE,EAAGE,EAAGK,EAAG,CAC7B,GAAIV,EAAE,YAAc,SAAU,CAC5B,IAAII,EAAI,CAACC,EAAGF,CAAC,EACbA,EAAIC,EAAE,CAAC,EAAGC,EAAID,EAAE,CAAC,CAC3B,CACQ,IAAII,EAAIE,EAAE,MAAQ,EAAGJ,EAAID,EAAE,MAAQ,EAAGU,EAAIZ,EAAE,EAAGc,EAAId,EAAE,EAAGI,EAAIF,EAAE,EAAGe,EAAIf,EAAE,EAAGkB,EAAI,GAAGb,EAAE,KAAK,EAAGe,EAAIlB,EAAIQ,EAAGgB,EAAIX,EAAIH,EAAGR,EAAIgB,EAAIA,EAAIM,EAAIA,EAAGpB,EAAI,EAAGgB,EAAI,EAC/IlB,IAAMA,EAAI,EAAI,KAAK,KAAKA,CAAC,EAAGE,EAAI,CAACoB,EAAItB,EAAID,EAAGmB,EAAIF,EAAIhB,EAAID,GACxD,IAAIW,EAAI,KAAK,MACbA,EAAElB,GAAG,EAAIM,EAAGY,EAAElB,GAAG,EAAImB,EAAGD,EAAElB,GAAG,EAAI,CAACU,EAAGQ,EAAElB,GAAG,EAAI,CAAC0B,EAAGR,EAAElB,GAAG,EAAIK,EAAGa,EAAElB,GAAG,EAAIsB,EAAGJ,EAAElB,GAAG,EAAIC,CAC3F,CACA,EAAO,CACD,IAAK,cACL,MAAO,SAASA,EAAGD,EAAG,CACpB,IAAIE,EAAIF,EAAE,GAAII,EAAIJ,EAAE,iBAAkBS,EAAIL,EAAE,SAAUD,EAAIC,EAAE,YAAaG,EAAIH,EAAE,kBAAmBC,EAAID,EAAE,mBAAoBU,EAAIV,EAAE,yBAA0BY,EAAIZ,EAAE,2BAClKF,EAAE,iBAAiBO,EAAG,GAAIR,EAAE,MAAM,EAAGC,EAAE,UAAUC,EAAGF,EAAE,SAAS,EAAGC,EAAE,UAAUK,EAAGN,EAAE,eAAe,EAAGC,EAAE,UAAUG,EAAGJ,EAAE,gBAAgB,EAAGC,EAAE,UAAUY,EAAGf,EAAE,sBAAsB,EAAGG,EAAE,UAAUc,EAAGjB,EAAE,wBAAwB,CACpO,CACA,CAAK,CAAC,CACH,EAAC,EAAE,CACN,CACA,GAAI,EACJ,IAAI,GAEF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA2BC,GAAK,GAAI,GAEV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqEC,GAAK,GAAI,GAAK,sBAAuB,GAAK,GAAG,cAAe,GAAK,GAAG,MAAO,GAAK,CAAC,WAAY,cAAe,cAAe,oBAAqB,eAAgB,YAAa,qBAAsB,0BAA0B,EAAG,GAAK,CACtO,uBAAwB,GAAG,sBAC7B,EACA,SAAS,GAAGF,EAAG,CACb,IAAIE,EAAI,EAAE,EAAE,CAAA,EAAI,EAAE,EAAG,EAAE,EACvB,OAAuB,SAASH,EAAG,CACjC,SAASD,GAAI,CACX,OAAO,GAAG,KAAMA,CAAC,EAAG,GAAG,KAAMA,EAAG,SAAS,CAC/C,CACI,OAAO,GAAGA,EAAGC,CAAC,EAAG,GAAGD,EAAG,CAAC,CACtB,IAAK,gBACL,MAAO,UAAW,CAChB,MAAO,CACL,SAAU,EACV,qBAAsB,GACtB,uBAAwB,GACxB,OAAQ,sBAAsB,UAC9B,SAAU,GACV,WAAY,CAAC,CACX,KAAM,kBACN,KAAM,EACN,KAAM,EAClB,EAAa,CACD,KAAM,gBACN,KAAM,EACN,KAAM,EAClB,EAAa,CACD,KAAM,WACN,KAAM,EACN,KAAM,EAClB,EAAa,CACD,KAAM,UACN,KAAM,EACN,KAAM,GACN,WAAY,EACxB,EAAa,CACD,KAAM,OACN,KAAM,EACN,KAAM,GACN,WAAY,EACxB,EAAa,CACD,KAAM,WACN,KAAM,EACN,KAAM,EAClB,CAAW,EACD,oBAAqB,CAGnB,CACE,KAAM,iBACN,KAAM,EACN,KAAM,EACP,EACD,CACE,KAAM,eACN,KAAM,EACN,KAAM,EACP,EACD,CACE,KAAM,eACN,KAAM,EACN,KAAM,EACpB,CACW,EACD,cAAe,CAAC,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,EAAG,CAAC,EAAG,CAAC,EAAG,GAAI,CAAC,EAAG,CAAC,EAAG,GAAI,EAAE,CAAC,CACrF,CACT,CACA,EAAO,CACD,IAAK,qBACL,MAAO,SAASM,EAAGD,EAAGE,EAAGE,EAAGK,EAAG,CAC7B,IAAIN,EAAIM,EAAE,MAAQ,EAAGF,EAAIL,EAAE,EAAGG,EAAIH,EAAE,EAAGY,EAAIV,EAAE,EAAGY,EAAIZ,EAAE,EAAGE,EAAI,GAAGG,EAAE,KAAK,EAAGU,EAAIL,EAAIP,EAAGe,EAAIN,EAAIX,EAAGmB,EAAIpB,EAAE,MAAQ,EAAG0B,EAAIX,EAAIA,EAAIG,EAAIA,EAAGd,EAAI,EAAGE,EAAI,EAC/IoB,IAAMA,EAAI,EAAI,KAAK,KAAKA,CAAC,EAAGtB,EAAI,CAACc,EAAIQ,EAAI3B,EAAGO,EAAIS,EAAIW,EAAI3B,GACxD,IAAIuB,EAAI,KAAK,MACbA,EAAE1B,GAAG,EAAIO,EAAGmB,EAAE1B,GAAG,EAAIK,EAAGqB,EAAE1B,GAAG,EAAIc,EAAGY,EAAE1B,GAAG,EAAIgB,EAAGU,EAAE1B,GAAG,EAAIQ,EAAGkB,EAAE1B,GAAG,EAAIU,EAAGgB,EAAE1B,GAAG,EAAIM,EAAGoB,EAAE1B,GAAG,EAAIC,EAAGyB,EAAE1B,GAAG,EAAIwB,CACjH,CACA,EAAO,CACD,IAAK,cACL,MAAO,SAASvB,EAAGD,EAAG,CACpB,IAAIE,EAAIF,EAAE,GAAII,EAAIJ,EAAE,iBAAkBS,EAAIL,EAAE,SAAUD,EAAIC,EAAE,YAAaG,EAAIH,EAAE,UAAWC,EAAID,EAAE,aAAcU,EAAIV,EAAE,kBAAmBY,EAAIZ,EAAE,YAAaE,EAAIF,EAAE,mBAAoBe,EAAIf,EAAE,yBAC1LF,EAAE,iBAAiBO,EAAG,GAAIR,EAAE,MAAM,EAAGC,EAAE,UAAUC,EAAGF,EAAE,SAAS,EAAGC,EAAE,UAAUc,EAAGf,EAAE,SAAS,EAAGC,EAAE,UAAUY,EAAGb,EAAE,eAAe,EAAGC,EAAE,UAAUG,EAAGJ,EAAE,UAAU,EAAGC,EAAE,UAAUK,EAAGN,EAAE,mBAAmB,EAAGC,EAAE,UAAUI,EAAGL,EAAE,gBAAgB,EAAGC,EAAE,UAAUiB,EAAGpB,EAAE,sBAAsB,CAC1R,CACA,CAAK,CAAC,CACH,EAAC,EAAE,CACN,CACA,GAAI,EACJ,SAAS,GAAGF,EAAG,CACb,OAAO,GAAG,CAAC,KAAM,GAAI,CAAA,CAAC,CACxB,CACA,IAAI,GAAK,GAAE,EAAI,GAAK,GAAI,GAEtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkEC,GAAK,GAAI,GAAK,sBAAuB,GAAK,GAAG,cAAe,GAAK,GAAG,MAAO,GAAK,CAAC,WAAY,cAAe,cAAe,oBAAqB,eAAgB,YAAa,oBAAoB,EAAG,GAAqB,SAASA,EAAG,CACtO,SAASE,GAAI,CACX,OAAO,GAAG,KAAMA,CAAC,EAAG,GAAG,KAAMA,EAAG,SAAS,CAC7C,CACE,OAAO,GAAGA,EAAGF,CAAC,EAAG,GAAGE,EAAG,CAAC,CACtB,IAAK,gBACL,MAAO,UAAW,CAChB,MAAO,CACL,SAAU,EACV,qBAAsB,GACtB,uBAAwB,GACxB,OAAQ,sBAAsB,UAC9B,SAAU,GACV,WAAY,CAAC,CACX,KAAM,kBACN,KAAM,EACN,KAAM,EAChB,EAAW,CACD,KAAM,gBACN,KAAM,EACN,KAAM,EAChB,EAAW,CACD,KAAM,WACN,KAAM,EACN,KAAM,EAChB,EAAW,CACD,KAAM,UACN,KAAM,EACN,KAAM,GACN,WAAY,EACtB,EAAW,CACD,KAAM,OACN,KAAM,EACN,KAAM,GACN,WAAY,EACtB,CAAS,EACD,oBAAqB,CAGnB,CACE,KAAM,iBACN,KAAM,EACN,KAAM,EACP,EACD,CACE,KAAM,eACN,KAAM,EACN,KAAM,EAClB,CACS,EACD,cAAe,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,EAAE,CAAC,CAClE,CACP,CACA,EAAK,CACD,IAAK,qBACL,MAAO,SAASJ,EAAGG,EAAGG,EAAGD,EAAGE,EAAG,CAC7B,IAAIE,EAAIF,EAAE,MAAQ,EAAGO,EAAIR,EAAE,EAAGE,EAAIF,EAAE,EAAGM,EAAIP,EAAE,EAAGK,EAAIL,EAAE,EAAGc,EAAI,GAAGZ,EAAE,KAAK,EAAGc,EAAIT,EAAIE,EAAGH,EAAID,EAAIF,EAAGgB,EAAIH,EAAIA,EAAIV,EAAIA,EAAGgB,EAAI,EAAGE,EAAI,EAC9HL,IAAMA,EAAI,EAAI,KAAK,KAAKA,CAAC,EAAGG,EAAI,CAAChB,EAAIa,EAAIf,EAAGoB,EAAIR,EAAIG,EAAIf,GACxD,IAAI0B,EAAI,KAAK,MACbA,EAAEhC,GAAG,EAAIW,EAAGqB,EAAEhC,GAAG,EAAIK,EAAG2B,EAAEhC,GAAG,EAAIS,EAAGuB,EAAEhC,GAAG,EAAIO,EAAGyB,EAAEhC,GAAG,EAAIwB,EAAGQ,EAAEhC,GAAG,EAAI0B,EAAGM,EAAEhC,GAAG,EAAIgB,EAAGgB,EAAEhC,GAAG,EAAIH,CACnG,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAASA,EAAGG,EAAG,CACpB,IAAIG,EAAIH,EAAE,GAAIE,EAAIF,EAAE,iBAAkBI,EAAIF,EAAE,SAAUI,EAAIJ,EAAE,YAAaS,EAAIT,EAAE,UAAWG,EAAIH,EAAE,aAAcO,EAAIP,EAAE,kBAAmBK,EAAIL,EAAE,YAAac,EAAId,EAAE,mBAChKC,EAAE,iBAAiBC,EAAG,GAAIP,EAAE,MAAM,EAAGM,EAAE,UAAUG,EAAGT,EAAE,SAAS,EAAGM,EAAE,UAAUI,EAAGV,EAAE,SAAS,EAAGM,EAAE,UAAUM,EAAGZ,EAAE,eAAe,EAAGM,EAAE,UAAUE,EAAGR,EAAE,UAAU,EAAGM,EAAE,UAAUQ,EAAGd,EAAE,mBAAmB,EAAGM,EAAE,UAAUa,EAAGnB,EAAE,gBAAgB,CAC9O,CACA,CAAG,CAAC,CACJ,EAAE,EAAE,EAAG,GAAqB,SAASE,EAAG,CACtC,SAASE,GAAI,CACX,IAAIH,EACJ,OAAO,GAAG,KAAMG,CAAC,EAAGH,EAAI,GAAG,KAAMG,CAAC,EAAGH,EAAE,WAAaA,EAAGA,CAC3D,CACE,OAAO,GAAGG,EAAGF,CAAC,EAAG,GAAGE,CAAC,CACvB,EAAE,GAAG,YAAY,EAAG,GAAI,GACxB,SAAS,IAAK,CACZ,OAAO,KAAO,GAAK,EAAG,GAAK,SAASA,EAAG,CACrC,OAAOA,IAAM,MAAQ,OAAOA,GAAK,UAAY,OAAOA,EAAE,0BAA4B,YAAc,OAAOA,EAAE,UAAY,YAAc,OAAOA,EAAE,OAAS,SACtJ,GAAG,EACN,CACA,IAAI,GAAK,GAAI,EACb,MAAM,GAAqB,GAAG,EAAE,EAChC,IAAI,GAAK,SAASA,EAAG,CACnB,OAAOA,CACT,EAAG,GAAK,SAASA,EAAG,CAClB,OAAOA,EAAIA,CACb,EAAG,GAAK,SAASA,EAAG,CAClB,OAAOA,GAAK,EAAIA,EAClB,EAAG,GAAK,SAASA,EAAG,CAClB,OAAQA,GAAK,GAAK,EAAI,GAAMA,EAAIA,EAAI,KAAQ,EAAEA,GAAKA,EAAI,GAAK,EAC9D,EAAG,GAAK,SAASA,EAAG,CAClB,OAAOA,EAAIA,EAAIA,CACjB,EAAG,GAAK,SAASA,EAAG,CAClB,MAAO,EAAEA,EAAIA,EAAIA,EAAI,CACvB,EAAG,GAAK,SAASA,EAAG,CAClB,OAAQA,GAAK,GAAK,EAAI,GAAMA,EAAIA,EAAIA,EAAI,KAAQA,GAAK,GAAKA,EAAIA,EAAI,EACpE,EAAG,GAAK,CACN,OAAQ,GACR,YAAa,GACb,aAAc,GACd,eAAgB,GAChB,QAAS,GACT,SAAU,GACV,WAAY,EACd,EAAG,GAAK,CACN,OAAQ,iBACR,SAAU,GACZ,EACA,SAAS,IAAK,CACZ,OAAO,aAAa,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,CAClD,CACA,SAAS,GAAGF,EAAGE,EAAGH,EAAG,CACnB,OAAOC,EAAE,CAAC,EAAIE,EAAGF,EAAE,CAAC,EAAI,OAAOD,GAAK,SAAWA,EAAIG,EAAGF,CACxD,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,IAAIH,EAAI,KAAK,IAAIG,CAAC,EAAGJ,EAAI,KAAK,IAAII,CAAC,EACnC,OAAOF,EAAE,CAAC,EAAIF,EAAGE,EAAE,CAAC,EAAID,EAAGC,EAAE,CAAC,EAAI,CAACD,EAAGC,EAAE,CAAC,EAAIF,EAAGE,CAClD,CACA,SAAS,GAAGA,EAAGE,EAAGH,EAAG,CACnB,OAAOC,EAAE,CAAC,EAAIE,EAAGF,EAAE,CAAC,EAAID,EAAGC,CAC7B,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,IAAIH,EAAIC,EAAE,CAAC,EAAGF,EAAIE,EAAE,CAAC,EAAGC,EAAID,EAAE,CAAC,EAAGI,EAAIJ,EAAE,CAAC,EAAGG,EAAIH,EAAE,CAAC,EAAGK,EAAIL,EAAE,CAAC,EAAGO,EAAIP,EAAE,CAAC,EAAGY,EAAIZ,EAAE,CAAC,EAAG,EAAIA,EAAE,CAAC,EAAGU,EAAIR,EAAE,CAAC,EAAGM,EAAIN,EAAE,CAAC,EAAGe,EAAIf,EAAE,CAAC,EAAGiB,EAAIjB,EAAE,CAAC,EAAGO,EAAIP,EAAE,CAAC,EAAGoB,EAAIpB,EAAE,CAAC,EAAGuB,EAAIvB,EAAE,CAAC,EAAGyB,EAAIzB,EAAE,CAAC,EAAG+B,EAAI/B,EAAE,CAAC,EACrL,OAAOF,EAAE,CAAC,EAAIU,EAAIX,EAAIS,EAAIJ,EAAIa,EAAIV,EAAGP,EAAE,CAAC,EAAIU,EAAIZ,EAAIU,EAAIL,EAAIc,EAAIL,EAAGZ,EAAE,CAAC,EAAIU,EAAIT,EAAIO,EAAIH,EAAIY,EAAI,EAAGjB,EAAE,CAAC,EAAImB,EAAIpB,EAAIU,EAAIL,EAAIkB,EAAIf,EAAGP,EAAE,CAAC,EAAImB,EAAIrB,EAAIW,EAAIN,EAAImB,EAAIV,EAAGZ,EAAE,CAAC,EAAImB,EAAIlB,EAAIQ,EAAIJ,EAAIiB,EAAI,EAAGtB,EAAE,CAAC,EAAIyB,EAAI1B,EAAI4B,EAAIvB,EAAI6B,EAAI1B,EAAGP,EAAE,CAAC,EAAIyB,EAAI3B,EAAI6B,EAAIxB,EAAI8B,EAAIrB,EAAGZ,EAAE,CAAC,EAAIyB,EAAIxB,EAAI0B,EAAItB,EAAI4B,EAAI,EAAGjC,CACvR,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,IAAIH,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,EAAGD,EAAIE,EAAE,CAAC,EAAGC,EAAID,EAAE,CAAC,EAAGI,EAAIJ,EAAE,CAAC,EAAGG,EAAIH,EAAE,CAAC,EAAGK,EAAIL,EAAE,CAAC,EAAGO,EAAIP,EAAE,CAAC,EAAGY,EAAIV,EAAE,EAAG,EAAIA,EAAE,EACvJ,MAAO,CACL,EAAGU,EAAId,EAAI,EAAIM,EAAIC,EAAIN,EACvB,EAAGa,EAAIX,EAAI,EAAIE,EAAII,EAAIR,CACxB,CACH,CACA,SAAS,GAAGC,EAAGE,EAAG,CAChB,IAAIH,EAAIC,EAAE,OAASA,EAAE,MAAOF,EAAII,EAAE,OAASA,EAAE,MAC7C,OAAOH,EAAI,GAAKD,EAAI,GAAKC,EAAI,GAAKD,EAAI,EAAI,EAAI,KAAK,IAAI,KAAK,IAAIA,EAAG,EAAIA,CAAC,EAAG,KAAK,IAAI,EAAIC,EAAGA,CAAC,CAAC,CAC/F,CACA,SAAS,GAAGC,EAAGE,EAAGH,EAAGD,EAAGG,EAAG,CACzB,IAAIG,EAAIJ,EAAE,MAAOG,EAAIH,EAAE,MAAOK,EAAIL,EAAE,EAAGO,EAAIP,EAAE,EAAGY,EAAIV,EAAE,MAAO,EAAIA,EAAE,OAAQQ,EAAI,GAAI,EAAEF,EAAI,KAAK,IAAII,EAAG,CAAC,EAAI,EAAId,EAAGmB,EAAI,GAAGf,EAAGH,CAAC,EAC5H,OAAOE,GAAK,GAAGS,EAAG,GAAG,GAAE,EAAIL,EAAGE,CAAC,CAAC,EAAG,GAAGG,EAAG,GAAG,GAAI,EAAEP,CAAC,CAAC,EAAG,GAAGO,EAAG,GAAG,GAAE,EAAIN,CAAC,CAAC,EAAG,GAAGM,EAAG,GAAG,KAAME,EAAIJ,EAAI,EAAIS,EAAG,EAAIT,EAAI,EAAIS,CAAC,CAAC,IAAM,GAAGP,EAAG,GAAG,GAAE,EAAI,GAAKF,EAAII,GAAKK,EAAG,GAAKT,EAAI,GAAKS,CAAC,CAAC,EAAG,GAAGP,EAAG,GAAG,GAAE,EAAI,CAACN,CAAC,CAAC,EAAG,GAAGM,EAAG,GAAG,GAAE,EAAI,EAAIP,CAAC,CAAC,EAAG,GAAGO,EAAG,GAAG,KAAM,CAACL,EAAG,CAACE,CAAC,CAAC,GAAIG,CACzP,CACA,SAAS,GAAGV,EAAGE,EAAGH,EAAG,CACnB,IAAID,EAAI,GAAGE,EAAG,CACZ,EAAG,KAAK,IAAIE,EAAE,KAAK,EACnB,EAAG,KAAK,IAAIA,EAAE,KAAK,CACvB,EAAK,CAAC,EAAGD,EAAIH,EAAE,EAAGM,EAAIN,EAAE,EACtB,MAAO,GAAI,KAAK,KAAK,KAAK,IAAIG,EAAG,CAAC,EAAI,KAAK,IAAIG,EAAG,CAAC,CAAC,EAAIL,EAAE,KAC5D,CACA,SAAS,GAAGC,EAAG,CACb,GAAI,CAACA,EAAE,MAAO,MAAO,CACnB,EAAG,CAAC,EAAG,CAAC,EACR,EAAG,CAAC,EAAG,CAAC,CACT,EACD,IAAIE,EAAI,IAAOH,EAAI,KAAQD,EAAI,IAAOG,EAAI,KAC1C,OAAOD,EAAE,YAAY,SAASI,EAAGD,EAAG,CAClC,IAAIE,EAAIF,EAAE,EAAGI,EAAIJ,EAAE,EACnBE,EAAIH,IAAMA,EAAIG,GAAIA,EAAIN,IAAMA,EAAIM,GAAIE,EAAIT,IAAMA,EAAIS,GAAIA,EAAIN,IAAMA,EAAIM,EACxE,CAAG,EAAG,CACF,EAAG,CAACL,EAAGH,CAAC,EACR,EAAG,CAACD,EAAGG,CAAC,CACT,CACH,CACA,SAAS,GAAGD,EAAG,CACb,GAAI,CAAC,GAAGA,CAAC,EAAG,MAAM,IAAI,MAAM,gCAAgC,EAC5DA,EAAE,YAAY,SAASE,EAAGH,EAAG,CAC3B,GAAI,CAAC,OAAO,SAASA,EAAE,CAAC,GAAK,CAAC,OAAO,SAASA,EAAE,CAAC,EAC/C,MAAM,IAAI,MAAM,8BAA8B,OAAOG,EAAG,iEAAiE,CAAC,CAChI,CAAG,CACH,CACA,SAAS,GAAGF,EAAGE,EAAGH,EAAG,CACnB,IAAID,EAAI,SAAS,cAAcE,CAAC,EAChC,GAAIE,EACF,QAASD,KAAKC,EACZJ,EAAE,MAAMG,CAAC,EAAIC,EAAED,CAAC,EACpB,GAAIF,EACF,QAASK,KAAKL,EACZD,EAAE,aAAaM,EAAGL,EAAEK,CAAC,CAAC,EAC1B,OAAON,CACT,CACA,SAAS,IAAK,CACZ,OAAO,OAAO,OAAO,iBAAoB,IAAc,OAAO,iBAAmB,CACnF,CACA,SAAS,GAAGE,EAAGE,EAAGH,EAAG,CACnB,OAAOA,EAAE,KAAK,SAASD,EAAGG,EAAG,CAC3B,IAAIG,EAAIF,EAAEJ,CAAC,GAAK,EAAGK,EAAID,EAAED,CAAC,GAAK,EAC/B,OAAOG,EAAID,EAAI,GAAKC,EAAID,EAAI,EAAI,CACpC,CAAG,CACH,CACA,SAAS,GAAGH,EAAG,CACb,IAAIE,EAAI,GAAGF,EAAE,EAAG,CAAC,EAAGD,EAAIG,EAAE,CAAC,EAAGJ,EAAII,EAAE,CAAC,EAAGD,EAAI,GAAGD,EAAE,EAAG,CAAC,EAAGI,EAAIH,EAAE,CAAC,EAAGE,EAAIF,EAAE,CAAC,EAAGI,EAAI,KAAK,IAAIP,EAAIC,EAAGI,EAAIC,CAAC,EAAGG,GAAKT,EAAIC,GAAK,EAAGa,GAAKT,EAAIC,GAAK,GACtIC,IAAM,GAAK,KAAK,IAAIA,CAAC,IAAM,KAAS,MAAMA,CAAC,KAAOA,EAAI,GAAI,MAAME,CAAC,IAAMA,EAAI,GAAI,MAAMK,CAAC,IAAMA,EAAI,GACjG,IAAI,EAAI,SAASJ,EAAG,CAClB,MAAO,CACL,EAAG,IAAOA,EAAE,EAAID,GAAKF,EACrB,EAAG,IAAOG,EAAE,EAAII,GAAKP,CACtB,CACF,EACD,OAAO,EAAE,QAAU,SAASK,EAAG,CAC7BA,EAAE,EAAI,IAAOA,EAAE,EAAIH,GAAKF,EAAGK,EAAE,EAAI,IAAOA,EAAE,EAAIE,GAAKP,CACvD,EAAK,EAAE,QAAU,SAASK,EAAG,CACzB,MAAO,CACL,EAAGH,EAAIF,GAAKK,EAAE,EAAI,IAClB,EAAGE,EAAIP,GAAKK,EAAE,EAAI,GACnB,CACL,EAAK,EAAE,MAAQL,EAAG,CAClB,CACA,SAAS,GAAGL,EAAG,CACb,0BACA,OAAO,GAAK,OAAO,QAAU,YAAc,OAAO,OAAO,UAAY,SAAW,SAASE,EAAG,CAC1F,OAAO,OAAOA,CACf,EAAG,SAASA,EAAG,CACd,OAAOA,GAAK,OAAO,QAAU,YAAcA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CACtH,EAAK,GAAGF,CAAC,CACT,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,IAAIH,EAAIG,EAAE,KACV,GAAIH,IAAM,EAAG,CACX,IAAID,EAAIE,EAAE,OACVA,EAAE,QAAUD,EACZ,IAAIE,EAAI,EACRC,EAAE,QAAQ,SAASE,EAAG,CACpBJ,EAAEF,EAAIG,CAAC,EAAIG,EAAGH,GACpB,CAAK,CACL,CACA,CACA,SAAS,GAAGD,EAAG,CACbA,EAAIA,GAAK,CAAE,EACX,QAASE,EAAI,EAAGH,EAAI,UAAU,QAAU,EAAI,EAAI,UAAU,OAAS,EAAGG,EAAIH,EAAGG,IAAK,CAChF,IAAIJ,EAAII,EAAI,EAAI,GAAK,UAAU,QAAUA,EAAI,EAAI,OAAS,UAAUA,EAAI,CAAC,EACzEJ,GAAK,OAAO,OAAOE,EAAGF,CAAC,CAC3B,CACE,OAAOE,CACT,CACA,IAAI,GAAK,CAEP,gBAAiB,GACjB,iBAAkB,GAClB,aAAc,GACd,iBAAkB,GAClB,iBAAkB,GAElB,iBAAkB,OAClB,gBAAiB,SACjB,iBAAkB,OAClB,gBAAiB,OACjB,UAAW,QACX,UAAW,GACX,YAAa,SACb,WAAY,CACV,MAAO,MACR,EACD,cAAe,QACf,cAAe,GACf,gBAAiB,SACjB,eAAgB,CACd,UAAW,OACZ,EACD,aAAc,GACd,qBAAsB,GACtB,qBAAsB,GACtB,qBAAsB,GACtB,iBAAkB,IAClB,oBAAqB,EAErB,YAAa,IACb,uBAAwB,EACxB,gBAAiB,IACjB,aAAc,EACd,aAAc,IACd,aAAc,IACd,mBAAoB,IACpB,wBAAyB,IACzB,2BAA4B,IAC5B,iBAAkB,GAElB,wBAAyB,KAAK,KAC9B,mBAAoB,SACpB,YAAa,GACb,WAAY,GAEZ,aAAc,EACd,kBAAmB,IACnB,2BAA4B,EAE5B,YAAa,KACb,YAAa,KAEb,OAAQ,GACR,eAAgB,KAChB,eAAgB,KAChB,oBAAqB,GACrB,oBAAqB,GACrB,qBAAsB,GACtB,oBAAqB,KAErB,sBAAuB,GAEvB,mBAAoB,CAAE,EACtB,wBAAyB,CAAE,EAC3B,mBAAoB,CAAA,CACtB,EAAG,GAAK,CACN,OAAQ,EACV,EAAG,GAAK,CACN,MAAO,GACP,KAAM,EACR,EACA,SAAS,GAAGA,EAAG,CACb,GAAI,OAAOA,EAAE,cAAgB,UAAYA,EAAE,aAAe,EACxD,MAAM,IAAI,MAAM,gEAAgE,EAClF,IAAIE,EAAIF,EAAE,eAAgBD,EAAIC,EAAE,eAChC,GAAI,OAAOE,GAAK,UAAY,OAAOH,GAAK,UAAYA,EAAIG,EACtD,MAAM,IAAI,MAAM,4GAA4G,CAChI,CACA,SAAS,GAAGF,EAAG,CACb,IAAIE,EAAI,GAAG,GAAI,GAAIF,CAAC,EACpB,OAAOE,EAAE,mBAAqB,GAAG,CAAA,EAAI,GAAIA,EAAE,kBAAkB,EAAGA,EAAE,mBAAqB,GAAG,CAAE,EAAE,GAAIA,EAAE,kBAAkB,EAAGA,CAC3H,CACA,IAAI,GAAK,IAAK,GAAqB,SAASF,EAAG,CAC7C,SAASE,GAAI,CACX,IAAIH,EACJ,OAAO,GAAG,KAAMG,CAAC,EAAGH,EAAI,GAAG,KAAMG,CAAC,EAAG,EAAEH,EAAG,IAAK,EAAG,EAAG,EAAEA,EAAG,IAAK,EAAG,EAAG,EAAEA,EAAG,QAAS,CAAC,EAAG,EAAEA,EAAG,QAAS,CAAC,EAAG,EAAEA,EAAG,WAAY,IAAI,EAAG,EAAEA,EAAG,WAAY,IAAI,EAAG,EAAEA,EAAG,iBAAkB,EAAE,EAAG,EAAEA,EAAG,iBAAkB,EAAE,EAAG,EAAEA,EAAG,kBAAmB,EAAE,EAAG,EAAEA,EAAG,QAAS,IAAI,EAAG,EAAEA,EAAG,YAAa,IAAI,EAAG,EAAEA,EAAG,gBAAiB,IAAI,EAAG,EAAEA,EAAG,UAAW,EAAE,EAAGA,EAAE,cAAgBA,EAAE,SAAQ,EAAIA,CAClX,CACE,OAAO,GAAGG,EAAGF,CAAC,EAAG,GAAGE,EAAG,CAAC,CACtB,IAAK,SACL,MAIE,UAAW,CACT,OAAO,KAAK,QAAU,GAAI,IAClC,CAKA,EAAK,CACD,IAAK,UACL,MAAO,UAAW,CAChB,OAAO,KAAK,QAAU,GAAI,IAChC,CAIA,EAAK,CACD,IAAK,WACL,MAAO,UAAW,CAChB,MAAO,CACL,EAAG,KAAK,EACR,EAAG,KAAK,EACR,MAAO,KAAK,MACZ,MAAO,KAAK,KACb,CACP,CAIA,EAAK,CACD,IAAK,WACL,MAAO,SAASJ,EAAG,CACjB,OAAO,KAAK,IAAMA,EAAE,GAAK,KAAK,IAAMA,EAAE,GAAK,KAAK,QAAUA,EAAE,OAAS,KAAK,QAAUA,EAAE,KAC5F,CAIA,EAAK,CACD,IAAK,mBACL,MAAO,UAAW,CAChB,IAAIA,EAAI,KAAK,cACb,OAAOA,EAAI,CACT,EAAGA,EAAE,EACL,EAAGA,EAAE,EACL,MAAOA,EAAE,MACT,MAAOA,EAAE,KACjB,EAAU,IACV,CAIA,EAAK,CACD,IAAK,kBACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAIH,EACR,OAAO,OAAO,KAAK,UAAY,WAAaG,EAAI,KAAK,IAAIA,EAAG,KAAK,QAAQ,GAAI,OAAO,KAAK,UAAY,WAAaA,EAAI,KAAK,IAAIA,EAAG,KAAK,QAAQ,GAAIA,CACzJ,CAIA,EAAK,CACD,IAAK,gBACL,MAAO,SAASH,EAAG,CACjB,IAAIG,EAAI,CAAE,EACV,OAAO,KAAK,gBAAkB,OAAOH,EAAE,GAAK,WAAaG,EAAE,EAAIH,EAAE,GAAI,KAAK,gBAAkB,OAAOA,EAAE,GAAK,WAAaG,EAAE,EAAIH,EAAE,GAAI,KAAK,gBAAkB,OAAOA,EAAE,OAAS,WAAaG,EAAE,MAAQ,KAAK,gBAAgBH,EAAE,KAAK,GAAI,KAAK,iBAAmB,OAAOA,EAAE,OAAS,WAAaG,EAAE,MAAQH,EAAE,OAAQ,KAAK,MAAQ,KAAK,MAAM,EAAE,EAAE,CAAE,EAAE,KAAK,SAAQ,CAAE,EAAGG,CAAC,CAAC,EAAIA,CAC5W,CAIA,EAAK,CACD,IAAK,aACL,MAAO,UAAW,CAChB,MAAO,CAAC,CAAC,KAAK,SACpB,CAIA,EAAK,CACD,IAAK,WACL,MAAO,SAASH,EAAG,CACjB,GAAI,CAAC,KAAK,QAAS,OAAO,KAC1B,KAAK,cAAgB,KAAK,SAAU,EACpC,IAAIG,EAAI,KAAK,cAAcH,CAAC,EAC5B,OAAO,OAAOG,EAAE,GAAK,WAAa,KAAK,EAAIA,EAAE,GAAI,OAAOA,EAAE,GAAK,WAAa,KAAK,EAAIA,EAAE,GAAI,OAAOA,EAAE,OAAS,WAAa,KAAK,MAAQA,EAAE,OAAQ,OAAOA,EAAE,OAAS,WAAa,KAAK,MAAQA,EAAE,OAAQ,KAAK,SAAS,KAAK,aAAa,GAAK,KAAK,KAAK,UAAW,KAAK,SAAU,CAAA,EAAG,IACzR,CAIA,EAAK,CACD,IAAK,cACL,MAAO,SAASH,EAAG,CACjB,OAAO,KAAK,SAASA,EAAE,KAAK,SAAQ,CAAE,CAAC,EAAG,IAChD,CAIA,EAAK,CACD,IAAK,UACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAI,KAAMG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,GAAID,EAAI,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OACjI,GAAI,CAACA,EAAG,OAAO,IAAI,QAAQ,SAASc,EAAG,CACrC,OAAOhB,EAAE,QAAQH,EAAGM,EAAGa,CAAC,CAChC,CAAO,EACD,GAAI,KAAK,QAAS,CAChB,IAAIZ,EAAI,EAAE,EAAE,CAAA,EAAI,EAAE,EAAGD,CAAC,EAAGG,EAAI,KAAK,cAAcT,CAAC,EAAGc,EAAI,OAAOP,EAAE,QAAU,WAAaA,EAAE,OAAS,GAAGA,EAAE,MAAM,EAAGC,EAAI,KAAK,IAAG,EAAII,EAAI,KAAK,SAAU,EAAEF,EAAI,UAAW,CACnK,IAAIW,GAAK,KAAK,IAAG,EAAKb,GAAKD,EAAE,SAC7B,GAAIc,GAAK,EAAG,CACVlB,EAAE,UAAY,KAAMA,EAAE,SAASM,CAAC,EAAGN,EAAE,oBAAsBA,EAAE,kBAAkB,KAAK,IAAI,EAAGA,EAAE,kBAAoB,QACjH,MACZ,CACU,IAAIQ,EAAIG,EAAEO,CAAC,EAAGG,EAAI,CAAE,EACpB,OAAOf,EAAE,GAAK,WAAae,EAAE,EAAIZ,EAAE,GAAKH,EAAE,EAAIG,EAAE,GAAKD,GAAI,OAAOF,EAAE,GAAK,WAAae,EAAE,EAAIZ,EAAE,GAAKH,EAAE,EAAIG,EAAE,GAAKD,GAAIR,EAAE,iBAAmB,OAAOM,EAAE,OAAS,WAAae,EAAE,MAAQZ,EAAE,OAASH,EAAE,MAAQG,EAAE,OAASD,GAAI,OAAOF,EAAE,OAAS,WAAae,EAAE,MAAQZ,EAAE,OAASH,EAAE,MAAQG,EAAE,OAASD,GAAIR,EAAE,SAASqB,CAAC,EAAGrB,EAAE,UAAY,sBAAsBO,CAAC,CACtV,EACD,KAAK,WAAa,qBAAqB,KAAK,SAAS,EAAG,KAAK,mBAAqB,KAAK,kBAAkB,KAAK,IAAI,EAAG,KAAK,UAAY,sBAAsBA,CAAC,GAAKA,EAAG,EAAE,KAAK,kBAAoBL,CACxM,CACA,CAIA,EAAK,CACD,IAAK,eACL,MAAO,SAASL,EAAG,CACjB,OAAOA,EAAI,OAAOA,GAAK,SAAW,KAAK,QAAQ,CAC7C,MAAO,KAAK,MAAQA,CAC5B,CAAO,EAAI,KAAK,QAAQ,CAChB,MAAO,KAAK,OAASA,EAAE,QAAU,GACzC,EAASA,CAAC,EAAI,KAAK,QAAQ,CACnB,MAAO,KAAK,MAAQ,EAC5B,CAAO,CACP,CAIA,EAAK,CACD,IAAK,iBACL,MAAO,SAASA,EAAG,CACjB,OAAOA,EAAI,OAAOA,GAAK,SAAW,KAAK,QAAQ,CAC7C,MAAO,KAAK,MAAQA,CAC5B,CAAO,EAAI,KAAK,QAAQ,CAChB,MAAO,KAAK,OAASA,EAAE,QAAU,GACzC,EAASA,CAAC,EAAI,KAAK,QAAQ,CACnB,MAAO,KAAK,MAAQ,EAC5B,CAAO,CACP,CAIA,EAAK,CACD,IAAK,gBACL,MAAO,SAASA,EAAG,CACjB,OAAO,KAAK,QAAQ,CAClB,EAAG,GACH,EAAG,GACH,MAAO,EACP,MAAO,CACR,EAAEA,CAAC,CACV,CAIA,EAAK,CACD,IAAK,OACL,MAAO,UAAW,CAChB,OAAOI,EAAE,KAAK,KAAK,SAAQ,CAAE,CACnC,CACG,CAAA,EAAG,CAAC,CACH,IAAK,OACL,MAAO,SAASJ,EAAG,CACjB,IAAIG,EAAI,IAAIC,EACZ,OAAOD,EAAE,SAASH,CAAC,CACzB,CACA,CAAG,CAAC,CACJ,EAAE,EAAE,EACJ,SAAS,GAAGE,EAAGE,EAAG,CAChB,IAAIH,EAAIG,EAAE,sBAAuB,EACjC,MAAO,CACL,EAAGF,EAAE,QAAUD,EAAE,KACjB,EAAGC,EAAE,QAAUD,EAAE,GAClB,CACH,CACA,SAAS,GAAGC,EAAGE,EAAG,CAChB,IAAIH,EAAI,EAAE,EAAE,CAAE,EAAE,GAAGC,EAAGE,CAAC,CAAC,EAAG,GAAI,CAC7B,sBAAuB,GACvB,oBAAqB,UAAW,CAC9BH,EAAE,sBAAwB,EAC3B,EACD,SAAUC,CACd,CAAG,EACD,OAAOD,CACT,CACA,SAAS,GAAGC,EAAG,CACb,IAAIE,EAAI,MAAOF,EAAIA,EAAI,EAAE,EAAE,CAAE,EAAEA,EAAE,QAAQ,CAAC,GAAKA,EAAE,gBAAgB,CAAC,CAAC,EAAG,GAAI,CACxE,SAAUA,EAAE,SACZ,sBAAuBA,EAAE,sBACzB,oBAAqB,UAAW,CAC9BA,EAAE,sBAAwB,GAAIE,EAAE,sBAAwB,EAC9D,CACA,CAAG,EACD,OAAOA,CACT,CACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,OAAO,EAAE,EAAE,GAAI,GAAGF,EAAGE,CAAC,CAAC,EAAG,GAAI,CAC5B,MAAO,GAAGF,CAAC,CACf,CAAG,CACH,CACA,IAAI,GAAK,EACT,SAAS,GAAGA,EAAG,CACb,QAASE,EAAI,CAAA,EAAIH,EAAI,EAAGD,EAAI,KAAK,IAAIE,EAAE,OAAQ,EAAE,EAAGD,EAAID,EAAGC,IAAKG,EAAE,KAAKF,EAAED,CAAC,CAAC,EAC3E,OAAOG,CACT,CACA,SAAS,GAAGF,EAAGE,EAAGH,EAAG,CACnB,IAAID,EAAI,CACN,QAAS,GAAGE,EAAE,OAAO,EAAE,IAAI,SAASC,EAAG,CACrC,OAAO,GAAGA,EAAGF,CAAC,CACpB,CAAK,EACD,gBAAiBG,EAAE,IAAI,SAASD,EAAG,CACjC,OAAO,GAAGA,EAAGF,CAAC,CACpB,CAAK,EACD,sBAAuB,GACvB,oBAAqB,UAAW,CAC9BD,EAAE,sBAAwB,EAC3B,EACD,SAAUE,CACX,EACD,OAAOF,CACT,CACA,SAAS,GAAGE,EAAG,CACb,GAAI,OAAOA,EAAE,OAAU,IAAa,OAAOA,EAAE,OAAS,GAAK,IAC3D,GAAI,OAAOA,EAAE,OAAU,IAAa,OAAOA,EAAE,OAAS,GACtD,MAAM,IAAI,MAAM,6CAA6C,CAC/D,CACA,IAAI,GAAqB,SAASA,EAAG,CACnC,SAASE,EAAEH,EAAGD,EAAG,CACf,IAAIG,EACJ,OAAO,GAAG,KAAMC,CAAC,EAAGD,EAAI,GAAG,KAAMC,CAAC,EAAGD,EAAE,UAAYF,EAAGE,EAAE,SAAWH,EAAGG,CAC1E,CACE,OAAO,GAAGC,EAAGF,CAAC,EAAG,GAAGE,CAAC,CACvB,EAAE,EAAE,EAAG,GAAK,CAAC,qBAAsB,6BAA8B,0BAA2B,cAAe,yBAA0B,kBAAmB,eAAgB,eAAgB,cAAc,EAAG,GAAK,GAAG,OAAO,SAASF,EAAGE,EAAG,CACrO,OAAO,EAAE,EAAE,CAAE,EAAEF,CAAC,EAAG,CAAA,EAAI,EAAE,CAAE,EAAEE,EAAG,GAAGA,CAAC,CAAC,CAAC,CACxC,EAAG,EAAE,EAAG,GAAqB,SAASF,EAAG,CACvC,SAASE,EAAEH,EAAGD,EAAG,CACf,IAAIG,EACJ,OAAO,GAAG,KAAMC,CAAC,EAAGD,EAAI,GAAG,KAAMC,EAAG,CAACH,EAAGD,CAAC,CAAC,EAAG,EAAEG,EAAG,UAAW,EAAE,EAAG,EAAEA,EAAG,gBAAiB,CAAC,EAAG,EAAEA,EAAG,gBAAiB,IAAI,EAAG,EAAEA,EAAG,aAAc,IAAI,EAAG,EAAEA,EAAG,aAAc,IAAI,EAAG,EAAEA,EAAG,cAAe,EAAE,EAAG,EAAEA,EAAG,WAAY,EAAE,EAAG,EAAEA,EAAG,gBAAiB,IAAI,EAAG,EAAEA,EAAG,mBAAoB,IAAI,EAAG,EAAEA,EAAG,SAAU,CAAC,EAAG,EAAEA,EAAG,qBAAsB,IAAI,EAAG,EAAEA,EAAG,wBAAyB,CAAC,EAAG,EAAEA,EAAG,WAAY,EAAE,EAAGA,EAAE,YAAcA,EAAE,YAAY,KAAKA,CAAC,EAAGA,EAAE,iBAAmBA,EAAE,iBAAiB,KAAKA,CAAC,EAAGA,EAAE,WAAaA,EAAE,WAAW,KAAKA,CAAC,EAAGA,EAAE,SAAWA,EAAE,SAAS,KAAKA,CAAC,EAAGA,EAAE,WAAaA,EAAE,WAAW,KAAKA,CAAC,EAAGA,EAAE,YAAcA,EAAE,YAAY,KAAKA,CAAC,EAAGA,EAAE,YAAcA,EAAE,YAAY,KAAKA,CAAC,EAAGA,EAAE,YAAcA,EAAE,YAAY,KAAKA,CAAC,EAAGF,EAAE,iBAAiB,QAASE,EAAE,YAAa,CACvuB,QAAS,EACV,CAAA,EAAGF,EAAE,iBAAiB,cAAeE,EAAE,iBAAkB,CACxD,QAAS,EACV,CAAA,EAAGF,EAAE,iBAAiB,YAAaE,EAAE,WAAY,CAChD,QAAS,EACV,CAAA,EAAGF,EAAE,iBAAiB,QAASE,EAAE,YAAa,CAC7C,QAAS,EACV,CAAA,EAAGF,EAAE,iBAAiB,aAAcE,EAAE,YAAa,CAClD,QAAS,EACV,CAAA,EAAGF,EAAE,iBAAiB,aAAcE,EAAE,YAAa,CAClD,QAAS,EACV,CAAA,EAAG,SAAS,iBAAiB,YAAaA,EAAE,WAAY,CACvD,QAAS,EACV,CAAA,EAAG,SAAS,iBAAiB,UAAWA,EAAE,SAAU,CACnD,QAAS,EACV,CAAA,EAAGA,CACR,CACE,OAAO,GAAGC,EAAGF,CAAC,EAAG,GAAGE,EAAG,CAAC,CACtB,IAAK,OACL,MAAO,UAAW,CAChB,IAAIJ,EAAI,KAAK,UACbA,EAAE,oBAAoB,QAAS,KAAK,WAAW,EAAGA,EAAE,oBAAoB,cAAe,KAAK,gBAAgB,EAAGA,EAAE,oBAAoB,YAAa,KAAK,UAAU,EAAGA,EAAE,oBAAoB,QAAS,KAAK,WAAW,EAAGA,EAAE,oBAAoB,aAAc,KAAK,WAAW,EAAGA,EAAE,oBAAoB,aAAc,KAAK,WAAW,EAAG,SAAS,oBAAoB,YAAa,KAAK,UAAU,EAAG,SAAS,oBAAoB,UAAW,KAAK,QAAQ,CAC3b,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAI,KACR,GAAI,KAAK,QAAS,CAChB,GAAI,KAAK,SAAU,KAAK,SAAW,EACjC,OAAO,KAAK,OAAS,EAAG,OAAO,KAAK,oBAAsB,WAAa,aAAa,KAAK,kBAAkB,EAAG,KAAK,mBAAqB,MAAO,KAAK,kBAAkBH,CAAC,EACzK,WAAW,UAAW,CACpBG,EAAE,OAAS,EAAGA,EAAE,mBAAqB,IAC/C,EAAW,KAAK,SAAS,kBAAkB,EAAG,KAAK,cAAgB,KAAK,SAAS,wBAA0B,KAAK,KAAK,QAAS,GAAGH,EAAG,KAAK,SAAS,CAAC,CACnJ,CACA,CACA,EAAK,CACD,IAAK,mBACL,MAAO,SAASA,EAAG,CACjB,KAAK,SAAW,KAAK,KAAK,aAAc,GAAGA,EAAG,KAAK,SAAS,CAAC,CACnE,CACA,EAAK,CACD,IAAK,oBACL,MAAO,SAASA,EAAG,CACjB,GAAI,KAAK,QAAS,CAChBA,EAAE,eAAc,EAAIA,EAAE,gBAAiB,EACvC,IAAIG,EAAI,GAAGH,EAAG,KAAK,SAAS,EAC5B,GAAI,KAAK,KAAK,cAAeG,CAAC,EAAG,CAACA,EAAE,sBAAuB,CACzD,IAAIG,EAAI,KAAK,SAAS,UAAW,EAAED,EAAIC,EAAE,gBAAgBA,EAAE,SAAQ,EAAG,MAAQ,KAAK,SAAS,uBAAuB,EACnHA,EAAE,QAAQ,KAAK,SAAS,uBAAuB,GAAGN,EAAG,KAAK,SAAS,EAAGK,CAAC,EAAG,CACxE,OAAQ,iBACR,SAAU,KAAK,SAAS,0BACpC,CAAW,CACX,CACA,CACA,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAASL,EAAG,CACjB,GAAI,KAAK,QAAS,CAChB,GAAIA,EAAE,SAAW,EAAG,CAClB,KAAK,iBAAmB,KAAK,SAAS,UAAS,EAAG,SAAU,EAC5D,IAAIG,EAAI,GAAGH,EAAG,KAAK,SAAS,EAAGM,EAAIH,EAAE,EAAGE,EAAIF,EAAE,EAC9C,KAAK,WAAaG,EAAG,KAAK,WAAaD,EAAG,KAAK,cAAgB,EAAG,KAAK,cAAgB,KAAK,IAAG,EAAI,KAAK,YAAc,EAChI,CACQ,KAAK,KAAK,YAAa,GAAGL,EAAG,KAAK,SAAS,CAAC,CACpD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAI,KACR,GAAI,EAAE,CAAC,KAAK,SAAW,CAAC,KAAK,aAAc,CACzC,IAAIG,EAAI,KAAK,SAAS,UAAW,EACjC,KAAK,YAAc,GAAI,OAAO,KAAK,eAAiB,WAAa,aAAa,KAAK,aAAa,EAAG,KAAK,cAAgB,MACxH,IAAID,EAAI,GAAGL,EAAG,KAAK,SAAS,EAAGO,EAAIF,EAAE,EAAGI,EAAIJ,EAAE,EAAGS,EAAIR,EAAE,SAAQ,EAAIE,EAAIF,EAAE,oBAAsB,CAC7F,EAAG,EACH,EAAG,CACJ,EACD,KAAK,SAAWA,EAAE,QAAQ,CACxB,EAAGQ,EAAE,EAAI,KAAK,SAAS,cAAgBA,EAAE,EAAIN,EAAE,GAC/C,EAAGM,EAAE,EAAI,KAAK,SAAS,cAAgBA,EAAE,EAAIN,EAAE,EACzD,EAAW,CACD,SAAU,KAAK,SAAS,gBACxB,OAAQ,cAClB,CAAS,GAAK,KAAK,aAAeD,GAAK,KAAK,aAAeE,IAAMH,EAAE,SAAS,CAClE,EAAGQ,EAAE,EACL,EAAGA,EAAE,CACN,CAAA,EAAG,KAAK,SAAW,GAAI,WAAW,UAAW,CAC5C,IAAIF,EAAIT,EAAE,cAAgB,EAC1BA,EAAE,cAAgB,EAAGS,GAAKT,EAAE,SAAS,WAAW,iBAAiB,GAAKA,EAAE,SAAS,QAAS,CACpG,EAAW,CAAC,EAAG,KAAK,KAAK,UAAW,GAAGH,EAAG,KAAK,SAAS,CAAC,CACzD,CACA,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAI,KACR,GAAI,KAAK,QAAS,CAChB,IAAIG,EAAI,GAAGN,EAAG,KAAK,SAAS,EAC5B,GAAI,KAAK,KAAK,gBAAiBM,CAAC,GAAIN,EAAE,SAAW,KAAK,WAAaA,EAAE,aAAc,EAAC,CAAC,IAAM,KAAK,YAAc,KAAK,KAAK,YAAaM,CAAC,EAAG,CAACA,EAAE,uBAAyB,KAAK,YAAa,CACrL,KAAK,SAAW,GAAI,KAAK,gBAAiB,OAAO,KAAK,eAAiB,UAAY,aAAa,KAAK,aAAa,EAAG,KAAK,cAAgB,OAAO,WAAW,UAAW,CACrKH,EAAE,cAAgB,KAAMA,EAAE,SAAW,EACjD,EAAa,KAAK,SAAS,WAAW,EAC5B,IAAIE,EAAI,KAAK,SAAS,UAAS,EAAIE,EAAI,GAAGP,EAAG,KAAK,SAAS,EAAGS,EAAIF,EAAE,EAAGO,EAAIP,EAAE,EAAGC,EAAI,KAAK,SAAS,sBAAsB,CACtH,EAAG,KAAK,WACR,EAAG,KAAK,UACT,CAAA,EAAGI,EAAI,KAAK,SAAS,sBAAsB,CAC1C,EAAGH,EACH,EAAGK,CACf,CAAW,EAAGJ,EAAIF,EAAE,EAAII,EAAE,EAAGO,EAAIX,EAAE,EAAII,EAAE,EAAGS,EAAIhB,EAAE,WAAYM,EAAIU,EAAE,EAAIX,EAAGc,EAAIH,EAAE,EAAIF,EAC3Ed,EAAE,SAAS,CACT,EAAGM,EACH,EAAGa,CACJ,CAAA,EAAG,KAAK,WAAaf,EAAG,KAAK,WAAaK,EAAGd,EAAE,iBAAkBA,EAAE,gBAAiB,CAC/F,CACA,CACA,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAASA,EAAG,CACjB,KAAK,KAAK,aAAc,GAAGA,EAAG,KAAK,SAAS,CAAC,CACnD,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAASA,EAAG,CACjB,KAAK,KAAK,aAAc,GAAGA,EAAG,KAAK,SAAS,CAAC,CACnD,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAI,KAAMG,EAAI,KAAK,SAAS,UAAW,EAC3C,GAAI,EAAE,CAAC,KAAK,SAAW,CAACA,EAAE,gBAAiB,CACzC,IAAID,EAAI,GAAGL,CAAC,EACZ,GAAIK,EAAG,CACL,IAAIE,EAAI,GAAGP,EAAG,KAAK,SAAS,EAC5B,GAAI,KAAK,KAAK,QAASO,CAAC,EAAGA,EAAE,sBAAuB,CAClDP,EAAE,eAAc,EAAIA,EAAE,gBAAiB,EACvC,MACZ,CACU,IAAIS,EAAIH,EAAE,SAAQ,EAAG,MAAOQ,EAAIT,EAAI,EAAI,EAAI,KAAK,SAAS,aAAe,KAAK,SAAS,aAAcG,EAAIF,EAAE,gBAAgBG,EAAIK,CAAC,EAAGF,EAAIP,EAAI,EAAI,EAAI,GAAIK,EAAI,KAAK,IAAK,EACrKD,IAAMD,IAAMR,EAAE,eAAc,EAAIA,EAAE,gBAAiB,EAAE,EAAE,KAAK,wBAA0BY,GAAK,KAAK,sBAAwBF,EAAI,KAAK,qBAAuB,KAAK,SAAS,aAAe,KAAOJ,EAAE,QAAQ,KAAK,SAAS,uBAAuB,GAAGN,EAAG,KAAK,SAAS,EAAGQ,CAAC,EAAG,CACpQ,OAAQ,eACR,SAAU,KAAK,SAAS,YACpC,EAAa,UAAW,CACZL,EAAE,sBAAwB,CACtC,CAAW,EAAG,KAAK,sBAAwBS,EAAG,KAAK,qBAAuBF,GAC1E,CACA,CACA,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAASV,EAAG,CACjB,KAAK,SAAWA,CACtB,CACA,CAAG,CAAC,CACJ,EAAE,EAAE,EAAG,GAAK,CAAC,cAAe,kBAAmB,eAAgB,qBAAsB,0BAA2B,6BAA8B,kBAAkB,EAAG,GAAK,GAAG,OAAO,SAASE,EAAGE,EAAG,CAC/L,OAAO,EAAE,EAAE,CAAE,EAAEF,CAAC,EAAG,CAAA,EAAI,EAAE,CAAE,EAAEE,EAAG,GAAGA,CAAC,CAAC,CAAC,CACxC,EAAG,EAAE,EAAG,GAAqB,SAASF,EAAG,CACvC,SAASE,EAAEH,EAAGD,EAAG,CACf,IAAIG,EACJ,OAAO,GAAG,KAAMC,CAAC,EAAGD,EAAI,GAAG,KAAMC,EAAG,CAACH,EAAGD,CAAC,CAAC,EAAG,EAAEG,EAAG,UAAW,EAAE,EAAG,EAAEA,EAAG,WAAY,EAAE,EAAG,EAAEA,EAAG,WAAY,EAAE,EAAG,EAAEA,EAAG,YAAa,CAAC,EAAG,EAAEA,EAAG,wBAAyB,CAAA,CAAE,EAAG,EAAEA,EAAG,cAAe,CAAA,CAAE,EAAG,EAAEA,EAAG,UAAW,IAAI,EAAG,EAAEA,EAAG,WAAY,EAAE,EAAGA,EAAE,YAAcA,EAAE,YAAY,KAAKA,CAAC,EAAGA,EAAE,YAAcA,EAAE,YAAY,KAAKA,CAAC,EAAGA,EAAE,WAAaA,EAAE,WAAW,KAAKA,CAAC,EAAGF,EAAE,iBAAiB,aAAcE,EAAE,YAAa,CAC9Y,QAAS,EACV,CAAA,EAAGF,EAAE,iBAAiB,cAAeE,EAAE,YAAa,CACnD,QAAS,EACV,CAAA,EAAG,SAAS,iBAAiB,WAAYA,EAAE,YAAa,CACvD,QAAS,GACT,QAAS,EACV,CAAA,EAAG,SAAS,iBAAiB,YAAaA,EAAE,WAAY,CACvD,QAAS,GACT,QAAS,EACV,CAAA,EAAGA,CACR,CACE,OAAO,GAAGC,EAAGF,CAAC,EAAG,GAAGE,EAAG,CAAC,CACtB,IAAK,OACL,MAAO,UAAW,CAChB,IAAIJ,EAAI,KAAK,UACbA,EAAE,oBAAoB,aAAc,KAAK,WAAW,EAAGA,EAAE,oBAAoB,cAAe,KAAK,WAAW,EAAG,SAAS,oBAAoB,WAAY,KAAK,WAAW,EAAG,SAAS,oBAAoB,YAAa,KAAK,UAAU,CAC1O,CACA,EAAK,CACD,IAAK,gBACL,MAAO,UAAW,CAChB,MAAO,CACL,MAAO,KAAK,UAAU,YACtB,OAAQ,KAAK,UAAU,YACxB,CACP,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAI,KACR,GAAI,KAAK,QAAS,CAChBH,EAAE,eAAgB,EAClB,IAAIM,EAAI,GAAGN,EAAE,OAAO,EACpB,GAAI,KAAK,UAAYM,EAAE,OAAQ,KAAK,iBAAmB,KAAK,SAAS,UAAW,EAAC,SAAQ,EAAI,KAAK,sBAAwBA,EAAE,IAAI,SAASa,EAAG,CAC1I,OAAO,GAAGA,EAAGhB,EAAE,SAAS,CAClC,CAAS,EAAG,KAAK,YAAc,EAAG,CACxB,IAAIE,EAAI,GAAG,KAAK,sBAAuB,CAAC,EAAGE,EAAIF,EAAE,CAAC,EAAGI,EAAIF,EAAE,EAAGO,EAAIP,EAAE,EAAGC,EAAIH,EAAE,CAAC,EAAGO,EAAIJ,EAAE,EAAGE,EAAIF,EAAE,EAChG,KAAK,kBAAoB,KAAK,MAAME,EAAII,EAAGF,EAAIH,CAAC,EAAG,KAAK,qBAAuB,KAAK,KAAK,KAAK,IAAIG,EAAIH,EAAG,CAAC,EAAI,KAAK,IAAIC,EAAII,EAAG,CAAC,CAAC,CAC1I,CACQ,KAAK,KAAK,YAAa,GAAGd,EAAG,KAAK,YAAa,KAAK,SAAS,CAAC,EAAG,KAAK,YAAcM,EAAG,KAAK,qBAAuB,KAAK,qBAChI,CACA,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAASN,EAAG,CACjB,GAAI,EAAE,CAAC,KAAK,SAAW,CAAC,KAAK,sBAAsB,QAAS,CAC1D,OAAQA,EAAE,YAAcA,EAAE,eAAgB,EAAE,KAAK,gBAAkB,KAAK,SAAW,GAAI,aAAa,KAAK,aAAa,GAAI,KAAK,UAAS,CAGtI,IAAK,GACH,GAAIA,EAAE,QAAQ,SAAW,EAAG,CAC1B,KAAK,YAAYA,CAAC,EAAGA,EAAE,eAAgB,EACvC,KACd,CAEU,IAAK,GACH,GAAI,KAAK,SAAU,CACjB,IAAIG,EAAI,KAAK,SAAS,UAAS,EAAIG,EAAIH,EAAE,SAAQ,EAAIE,EAAIF,EAAE,iBAAgB,GAAM,CAC/E,EAAG,EACH,EAAG,CACJ,EACDA,EAAE,QAAQ,CACR,EAAGG,EAAE,EAAI,KAAK,SAAS,cAAgBA,EAAE,EAAID,EAAE,GAC/C,EAAGC,EAAE,EAAI,KAAK,SAAS,cAAgBA,EAAE,EAAID,EAAE,EAC/D,EAAiB,CACD,SAAU,KAAK,SAAS,gBACxB,OAAQ,cACxB,CAAe,CACf,CACY,KAAK,SAAW,GAAI,KAAK,SAAW,GAAI,KAAK,UAAY,EACzD,KACZ,CACQ,GAAI,KAAK,KAAK,UAAW,GAAGL,EAAG,KAAK,YAAa,KAAK,SAAS,CAAC,EAAG,CAACA,EAAE,QAAQ,OAAQ,CACpF,IAAIO,EAAI,GAAG,KAAK,YAAY,CAAC,EAAG,KAAK,SAAS,EAAGE,EAAI,KAAK,sBAAsB,CAAC,EAAGK,EAAI,KAAK,IAAIP,EAAE,EAAIE,EAAE,EAAG,CAAC,EAAI,KAAK,IAAIF,EAAE,EAAIE,EAAE,EAAG,CAAC,EACtI,GAAI,CAACT,EAAE,QAAQ,QAAUc,EAAI,KAAK,IAAI,KAAK,SAAS,iBAAkB,CAAC,EACrE,GAAI,KAAK,SAAW,KAAK,IAAK,EAAG,KAAK,QAAQ,KAAO,KAAK,SAAS,mBAAoB,CACrF,IAAIN,EAAI,GAAGR,EAAG,KAAK,YAAa,KAAK,SAAS,EAC9C,GAAI,KAAK,KAAK,YAAaQ,CAAC,EAAG,KAAK,QAAU,KAAM,CAACA,EAAE,sBAAuB,CAC5E,IAAII,EAAI,KAAK,SAAS,UAAW,EAAEF,EAAIE,EAAE,gBAAgBA,EAAE,SAAQ,EAAG,MAAQ,KAAK,SAAS,uBAAuB,EACnHA,EAAE,QAAQ,KAAK,SAAS,uBAAuBL,EAAGG,CAAC,EAAG,CACpD,OAAQ,iBACR,SAAU,KAAK,SAAS,0BAC1C,CAAiB,CACjB,CACA,KAAmB,CACL,IAAIS,EAAI,GAAGnB,EAAG,KAAK,YAAa,KAAK,SAAS,EAC9C,KAAK,KAAK,MAAOmB,CAAC,EAAG,KAAK,QAAU,CAClC,KAAM,KAAK,IAAK,EAChB,SAAUA,EAAE,QAAQ,CAAC,GAAKA,EAAE,gBAAgB,CAAC,CAC9C,CACf,CACA,CACQ,KAAK,YAAc,GAAGnB,EAAE,OAAO,EAAG,KAAK,sBAAwB,CAAE,CACzE,CACA,CACA,EAAK,CACD,IAAK,aACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAI,KACR,GAAI,EAAE,CAAC,KAAK,SAAW,CAAC,KAAK,sBAAsB,QAAS,CAC1DH,EAAE,eAAgB,EAClB,IAAIM,EAAI,GAAGN,EAAE,OAAO,EAAGK,EAAIC,EAAE,IAAI,SAAS4B,GAAG,CAC3C,OAAO,GAAGA,GAAG/B,EAAE,SAAS,CAClC,CAAS,EAAGI,EAAI,KAAK,YACb,KAAK,YAAcD,EAAG,KAAK,qBAAuBD,EAClD,IAAII,EAAI,GAAGT,EAAGO,EAAG,KAAK,SAAS,EAC/B,GAAI,KAAK,KAAK,YAAaE,CAAC,EAAG,CAACA,EAAE,wBAA0B,KAAK,WAAa,KAAK,SAAWJ,EAAE,KAAK,SAAS6B,GAAGhB,GAAG,CAClH,IAAI4B,GAAI3C,EAAE,sBAAsBe,EAAC,EACjC,OAAO4B,KAAMZ,GAAE,IAAMY,GAAE,GAAKZ,GAAE,IAAMY,GAAE,EACvC,CAAA,GAAI,CAAC,CAAC,KAAK,UAAW,CACrB,KAAK,SAAW,GAAI,KAAK,eAAiB,aAAa,KAAK,aAAa,EAAG,KAAK,cAAgB,OAAO,WAAW,UAAW,CAC5H3C,EAAE,SAAW,EACzB,EAAa,KAAK,SAAS,WAAW,EAC5B,IAAIW,EAAI,KAAK,SAAS,UAAW,EAAEN,EAAI,KAAK,iBAAkBI,EAAI,KAAK,SAAS,WAAW,cAAc,EACzG,OAAQ,KAAK,UAAS,CACpB,IAAK,GAAG,CACN,IAAIF,EAAI,KAAK,SAAS,uBAAuB,KAAK,uBAAyB,CAAE,GAAE,CAAC,CAAC,EAAGS,EAAIT,EAAE,EAAGW,EAAIX,EAAE,EAAGC,EAAI,KAAK,SAAS,sBAAsBN,EAAE,CAAC,CAAC,EAAGmB,EAAIb,EAAE,EAAGgB,EAAIhB,EAAE,EACpKG,EAAE,SAAS,CACT,EAAGN,EAAE,EAAIW,EAAIK,EACb,EAAGhB,EAAE,EAAIa,EAAIM,CAC7B,CAAe,EACD,KACd,CACY,IAAK,GAAG,CACN,IAAIE,EAAI,CACN,EAAG,GACH,EAAG,GACH,MAAO,EACP,MAAO,CACvB,EAAiBM,EAAI9B,EAAE,CAAC,EAAGQ,EAAIsB,EAAE,EAAGpB,EAAIoB,EAAE,EAAGJ,EAAI1B,EAAE,CAAC,EAAGkB,EAAIQ,EAAE,EAAGT,EAAIS,EAAE,EAAGN,EAAI,KAAK,MAAMH,EAAIP,EAAGQ,EAAIV,CAAC,EAAI,KAAK,kBAAmBwB,EAAI,KAAK,MAAMf,EAAIP,EAAGQ,EAAIV,CAAC,EAAI,KAAK,qBAAsBa,EAAIZ,EAAE,gBAAgBN,EAAE,MAAQ6B,CAAC,EAC7MR,EAAE,MAAQH,EAAGG,EAAE,MAAQrB,EAAE,MAAQiB,EACjC,IAAIO,EAAI,KAAK,cAAe,EAAEhB,EAAI,KAAK,SAAS,uBAAuB,KAAK,uBAAyB,CAAE,GAAE,CAAC,EAAG,CAC3G,YAAaR,CACd,CAAA,EAAGgC,EAAI,KAAK,IAAIR,EAAE,MAAOA,EAAE,MAAM,EAAI,EAAIpB,EAAG6C,EAAKjB,EAAIR,EAAE,MAAOO,EAAIC,EAAIR,EAAE,OAAQZ,EAAIM,EAAIc,EAAGvB,GAAIJ,EAAI2B,EAAI,EAAIiB,EAAIrB,GAAIrB,EAAIyB,EAAI,EAAID,EAAGY,GAAI,CAAClC,GAAI,KAAK,IAAI,CAACY,EAAE,KAAK,EAAIO,GAAI,KAAK,IAAI,CAACP,EAAE,KAAK,EAAGO,GAAI,KAAK,IAAI,CAACP,EAAE,KAAK,EAAIZ,GAAI,KAAK,IAAI,CAACY,EAAE,KAAK,CAAC,EACxOZ,GAAIkC,GAAE,CAAC,EAAGf,GAAIe,GAAE,CAAC,EAAGtB,EAAE,EAAIb,EAAE,EAAIC,GAAIG,EAAGS,EAAE,EAAIb,EAAE,EAAIoB,GAAIhB,EAAGN,EAAE,SAASe,CAAC,EACtE,KACd,CACA,CACA,CACA,CACA,CACA,EAAK,CACD,IAAK,cACL,MAAO,SAAS7B,EAAG,CACjB,KAAK,SAAWA,CACtB,CACA,CAAG,CAAC,CACJ,EAAE,EAAE,EACJ,SAAS,GAAGE,EAAG,CACb,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAO,GAAGA,CAAC,CACnC,CACA,SAAS,GAAGA,EAAG,CACb,GAAI,OAAO,OAAU,KAAeA,EAAE,OAAO,QAAQ,GAAK,MAAQA,EAAE,YAAY,GAAK,KAAM,OAAO,MAAM,KAAKA,CAAC,CAChH,CACA,SAAS,IAAK,CACZ,MAAM,IAAI,UAAU;AAAA,mFAC6D,CACnF,CACA,SAAS,GAAGA,EAAG,CACb,OAAO,GAAGA,CAAC,GAAK,GAAGA,CAAC,GAAK,GAAGA,CAAC,GAAK,GAAI,CACxC,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,GAAIF,GAAK,KAAM,MAAO,CAAE,EACxB,IAAID,EAAI,CAAE,EACV,QAASD,KAAKE,EAAG,GAAI,CAAA,EAAG,eAAe,KAAKA,EAAGF,CAAC,EAAG,CACjD,GAAII,EAAE,QAAQJ,CAAC,IAAM,GAAI,SACzBC,EAAED,CAAC,EAAIE,EAAEF,CAAC,CACd,CACE,OAAOC,CACT,CACA,SAAS,GAAGC,EAAGE,EAAG,CAChB,GAAIF,GAAK,KAAM,MAAO,CAAE,EACxB,IAAID,EAAGD,EAAGG,EAAI,GAAGD,EAAGE,CAAC,EACrB,GAAI,OAAO,sBAAuB,CAChC,IAAIE,EAAI,OAAO,sBAAsBJ,CAAC,EACtC,IAAKF,EAAI,EAAGA,EAAIM,EAAE,OAAQN,IAAKC,EAAIK,EAAEN,CAAC,EAAGI,EAAE,QAAQH,CAAC,IAAM,IAAM,CAAA,EAAG,qBAAqB,KAAKC,EAAGD,CAAC,IAAME,EAAEF,CAAC,EAAIC,EAAED,CAAC,EACrH,CACE,OAAOE,CACT,CACA,IAAI,GAAqB,UAAW,CAClC,SAASD,EAAEE,EAAGH,EAAG,CACf,GAAG,KAAMC,CAAC,EAAG,KAAK,IAAME,EAAG,KAAK,KAAOH,CAC3C,CACE,OAAO,GAAGC,EAAG,KAAM,CAAC,CAClB,IAAK,UACL,MAAO,SAASD,EAAGD,EAAG,CACpB,OAAOC,EAAE,KAAOD,EAAE,KAAO,GAAKC,EAAE,KAAOD,EAAE,MAAQC,EAAE,IAAMD,EAAE,IAAM,EAAI,EAC3E,CACA,CAAG,CAAC,CACJ,EAAG,EAAE,GAAqB,UAAW,CACnC,SAASE,GAAI,CACX,GAAG,KAAMA,CAAC,EAAG,EAAE,KAAM,QAAS,CAAC,EAAG,EAAE,KAAM,SAAU,CAAC,EAAG,EAAE,KAAM,WAAY,CAAC,EAAG,EAAE,KAAM,UAAW,CAAC,EAAG,EAAE,KAAM,OAAQ,CAAC,EAAG,EAAE,KAAM,QAAS,CAAA,CAAE,CAClJ,CACE,OAAO,GAAGA,EAAG,CAAC,CACZ,IAAK,iBACL,MAAO,SAASD,EAAGD,EAAG,CACpB,KAAK,MAAQC,EAAE,MAAO,KAAK,OAASA,EAAE,OAAQ,KAAK,SAAWD,EAAG,KAAK,QAAU,KAAK,KAAKC,EAAE,MAAQD,CAAC,EAAG,KAAK,KAAO,KAAK,KAAKC,EAAE,OAASD,CAAC,EAAG,KAAK,MAAQ,CAAE,CAClK,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAASC,EAAG,CACjB,IAAID,EAAI,KAAK,MAAMC,EAAE,EAAI,KAAK,QAAQ,EAAGE,EAAI,KAAK,MAAMF,EAAE,EAAI,KAAK,QAAQ,EAC3E,OAAOE,EAAI,KAAK,QAAUH,CAChC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAASC,EAAGD,EAAGG,EAAG,CACvB,IAAIG,EAAI,IAAI,GAAGL,EAAGD,CAAC,EAAGK,EAAI,KAAK,SAASF,CAAC,EAAGI,EAAI,KAAK,MAAMF,CAAC,EAC5DE,IAAMA,EAAI,GAAI,KAAK,MAAMF,CAAC,EAAIE,GAAIA,EAAE,KAAKD,CAAC,CAChD,CACA,EAAK,CACD,IAAK,WACL,MAAO,UAAW,CAChB,QAASL,KAAK,KAAK,MAAO,CACxB,IAAID,EAAI,KAAK,MAAMC,CAAC,EACpBD,EAAE,KAAK,GAAG,OAAO,CACzB,CACA,CACA,EAAK,CACD,IAAK,qBACL,MAAO,SAASC,EAAGD,EAAG,CACpB,IAAIG,EAAI,KAAK,SAAW,KAAK,SAAUG,EAAIH,EAAIF,EAAIA,EAAGI,EAAIC,EAAIN,EAAIG,EAAGI,EAAI,KAAK,KAAKF,CAAC,EAAGI,EAAI,CAAE,EAC7F,QAASK,KAAK,KAAK,MACjB,QAASN,EAAI,KAAK,MAAMM,CAAC,EAAGF,EAAI,EAAGA,EAAI,KAAK,IAAIL,EAAGC,EAAE,MAAM,EAAGI,IAC5DH,EAAE,KAAKD,EAAEI,CAAC,EAAE,GAAG,EACnB,OAAOH,CACb,CACA,CAAG,CAAC,CACJ,EAAG,EACH,SAAS,GAAGP,EAAG,CACb,IAAIE,EAAIF,EAAE,MAAOD,EAAIC,EAAE,YAAaF,EAAIE,EAAE,iBAAkBC,EAAID,EAAE,oBAAqBI,EAAI,CAAE,EAC7F,OAAOF,EAAE,YAAY,SAASC,EAAGE,EAAGE,EAAGK,EAAG,EACvCL,IAAMR,GAAKa,IAAMb,GAAKD,EAAE,IAAIS,CAAC,GAAKT,EAAE,IAAIc,CAAC,GAAKX,EAAE,IAAIM,CAAC,GAAKN,EAAE,IAAIW,CAAC,IAAMR,EAAE,KAAKD,CAAC,CACjF,CAAA,EAAGC,CACN,CACA,IAAI,GAAK,IAAK,GAAK,GAAI,GAAK,OAAO,UAAU,eAC7C,SAAS,GAAGJ,EAAGE,EAAGH,EAAG,CACnB,GAAI,CAAC,GAAG,KAAKA,EAAG,GAAG,GAAK,CAAC,GAAG,KAAKA,EAAG,GAAG,EAAG,MAAM,IAAI,MAAM,2DAA2D,OAAOG,EAAG,gJAAgJ,CAAC,EAChR,OAAOH,EAAE,QAAUA,EAAE,MAAQC,EAAE,kBAAmB,CAACD,EAAE,OAASA,EAAE,QAAU,KAAOA,EAAE,MAAQ,MAAOA,EAAE,QAAU,QAAUA,EAAE,QAAU,KAAOA,EAAE,MAAQ,GAAKA,EAAE,MAAQA,EAAE,MAAQ,KAAMA,EAAE,OAASA,EAAE,KAAO,GAAI,GAAG,KAAKA,EAAG,QAAQ,IAAMA,EAAE,OAAS,IAAK,GAAG,KAAKA,EAAG,aAAa,IAAMA,EAAE,YAAc,IAAK,GAAG,KAAKA,EAAG,YAAY,IAAMA,EAAE,WAAa,KAAM,CAACA,EAAE,MAAQA,EAAE,OAAS,MAAQA,EAAE,KAAOC,EAAE,iBAAkBD,EAAE,SAAWA,EAAE,OAAS,GAAIA,CACnb,CACA,SAAS,GAAGC,EAAGE,EAAGH,EAAG,CACnB,OAAOA,EAAE,QAAUA,EAAE,MAAQC,EAAE,kBAAmBD,EAAE,QAAUA,EAAE,MAAQ,IAAKA,EAAE,OAASA,EAAE,KAAO,IAAM,GAAG,KAAKA,EAAG,QAAQ,IAAMA,EAAE,OAAS,IAAK,GAAG,KAAKA,EAAG,YAAY,IAAMA,EAAE,WAAa,KAAM,CAACA,EAAE,MAAQA,EAAE,OAAS,MAAQA,EAAE,KAAOC,EAAE,iBAAkBD,EAAE,SAAWA,EAAE,OAAS,GAAIA,CAC3R,CACA,IAAI,GAAqB,SAASC,EAAG,CACnC,SAASE,EAAEH,EAAGD,EAAG,CACf,IAAIG,EAAGG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,CAAE,EAC9E,GAAI,GAAG,KAAMF,CAAC,EAAGD,EAAI,GAAG,KAAMC,CAAC,EAAG,EAAED,EAAG,WAAY,CAAE,CAAA,EAAG,EAAEA,EAAG,iBAAkB,CAAA,CAAE,EAAG,EAAEA,EAAG,gBAAiB,CAAE,CAAA,EAAG,EAAEA,EAAG,gBAAiC,IAAI,GAAK,EAAG,EAAEA,EAAG,WAAY,CAAE,CAAA,EAAG,EAAEA,EAAG,eAAgB,EAAE,EAAG,EAAEA,EAAG,kBAAmB,CAAA,CAAE,EAAG,EAAEA,EAAG,YAAa,IAAI,EAAI,EAAG,EAAEA,EAAG,gBAAiB,CAAA,CAAE,EAAG,EAAEA,EAAG,gBAAiB,CAAE,CAAA,EAAG,EAAEA,EAAG,mBAAoB,CAAA,CAAE,EAAG,EAAEA,EAAG,mBAAoB,CAAE,CAAA,EAAG,EAAEA,EAAG,wBAAyC,IAAI,GAAK,EAAG,EAAEA,EAAG,wBAAyC,IAAI,GAAK,EAAG,EAAEA,EAAG,aAAc,CAClgB,EAAG,CAAC,EAAG,CAAC,EACR,EAAG,CAAC,EAAG,CAAC,CACd,CAAK,EAAG,EAAEA,EAAG,cAAe,CAAC,IAAO,IAAM,CAAC,EAAG,EAAEA,EAAG,cAAe,CAAC,IAAO,IAAM,CAAC,EAAG,EAAEA,EAAG,SAAU,GAAI,CAAA,EAAG,EAAEA,EAAG,YAAa,GAAI,CAAA,EAAG,EAAEA,EAAG,kBAAmB,CAAC,EAAG,EAAEA,EAAG,aAAc,IAAI,EAAG,EAAEA,EAAG,wBAAyB,GAAG,CACpN,EAAG,CAAC,EAAG,CAAC,EACR,EAAG,CAAC,EAAG,CAAC,CACT,CAAA,CAAC,EAAG,EAAEA,EAAG,uBAAwB,CAAC,EAAG,EAAEA,EAAG,eAAgB,CAAA,CAAE,EAAG,EAAEA,EAAG,cAAe,CAAE,CAAA,EAAG,EAAEA,EAAG,cAAe,CAAE,CAAA,EAAG,EAAEA,EAAG,QAAS,CAAC,EAAG,EAAEA,EAAG,SAAU,CAAC,EAAG,EAAEA,EAAG,aAAc,GAAE,CAAE,EAAG,EAAEA,EAAG,yBAA0B,EAAIA,EAAE,UAAU,EAAG,EAAEA,EAAG,sBAAuC,IAAI,GAAK,EAAG,EAAEA,EAAG,sBAAuC,IAAI,GAAK,EAAG,EAAEA,EAAG,mBAAoC,IAAI,GAAK,EAAG,EAAEA,EAAG,cAAe,IAAI,EAAG,EAAEA,EAAG,cAAe,IAAI,EAAG,EAAEA,EAAG,cAAe,IAAI,EAAG,EAAEA,EAAG,8BAA+B,IAAI,EAAG,EAAEA,EAAG,gBAAiB,EAAE,EAAG,EAAEA,EAAG,wBAAyB,IAAI,EAAG,EAAEA,EAAG,eAAgB,CAAE,CAAA,EAAG,EAAEA,EAAG,oBAAqB,CAAE,CAAA,EAAG,EAAEA,EAAG,eAAgB,CAAE,CAAA,EAAGA,EAAE,SAAW,GAAGG,CAAC,EAAG,GAAGH,EAAE,QAAQ,EAAG,GAAGF,CAAC,EAAG,EAAED,aAAa,aAAc,MAAM,IAAI,MAAM,6CAA6C,EAC5xBG,EAAE,MAAQF,EAAGE,EAAE,UAAYH,EAAGG,EAAE,mBAAmB,QAAS,CAC1D,QAASG,EAAE,gBACjB,CAAK,EAAGH,EAAE,oBAAoB,YAAY,EAAGA,EAAE,mBAAmB,QAAS,CACrE,QAAS,EACf,CAAK,EAAGA,EAAE,oBAAoB,QAAQ,EAAGA,EAAE,oBAAoB,QAAQ,EAAGA,EAAE,mBAAmB,YAAY,EAAGA,EAAE,oBAAoB,QAAS,CACvI,MAAO,CACL,YAAa,OACb,WAAY,MACpB,CACA,CAAK,EAAGA,EAAE,OAAQ,EACd,QAASE,KAAKF,EAAE,SAAS,mBACvBA,EAAE,oBAAoBE,EAAGF,EAAE,SAAS,mBAAmBE,CAAC,EAAGF,EAAE,SAAS,wBAAwBE,CAAC,CAAC,EAClG,QAASE,KAAKJ,EAAE,SAAS,mBACvBA,EAAE,oBAAoBI,EAAGJ,EAAE,SAAS,mBAAmBI,CAAC,CAAC,EAC3D,OAAOJ,EAAE,OAAS,IAAI,GAAMA,EAAE,qBAAsBA,EAAE,YAAc,IAAI,GAAGA,EAAE,SAAS,MAAOA,CAAC,EAAGA,EAAE,YAAY,YAAYA,EAAE,QAAQ,EAAGA,EAAE,YAAc,IAAI,GAAGA,EAAE,SAAS,MAAOA,CAAC,EAAGA,EAAE,YAAY,YAAYA,EAAE,QAAQ,EAAGA,EAAE,kBAAiB,EAAIA,EAAE,kBAAmB,EAAEA,EAAE,uBAAwBA,EAAE,QAAO,EAAIA,CACrT,CACE,OAAO,GAAGC,EAAGF,CAAC,EAAG,GAAGE,EAAG,CAAC,CACtB,IAAK,sBACL,MAAO,SAASJ,EAAGG,EAAGG,EAAG,CACvB,OAAO,KAAK,aAAaN,CAAC,GAAK,KAAK,aAAaA,CAAC,EAAE,OAAQ,KAAK,kBAAkBA,CAAC,GAAK,KAAK,kBAAkBA,CAAC,EAAE,KAAM,EAAE,KAAK,aAAaA,CAAC,EAAI,IAAIG,EAAE,KAAK,cAAc,MAAO,KAAK,aAAa,MAAO,IAAI,EAAG,KAAK,kBAAkBH,CAAC,EAAI,IAAKM,GAAKH,GAAG,KAAK,cAAc,WAAY,KAAM,IAAI,EAAG,IAC7S,CAQA,EAAK,CACD,IAAK,sBACL,MAAO,SAASH,EAAGG,EAAG,CACpB,OAAO,KAAK,aAAaH,CAAC,GAAK,KAAK,aAAaA,CAAC,EAAE,KAAM,EAAE,KAAK,aAAaA,CAAC,EAAI,IAAIG,EAAE,KAAK,cAAc,MAAO,KAAK,aAAa,MAAO,IAAI,EAAG,IACzJ,CAOA,EAAK,CACD,IAAK,wBACL,MAAO,SAASH,EAAG,CACjB,GAAI,KAAK,aAAaA,CAAC,EAAG,CACxB,IAAIG,EAAI,KAAK,aAAcG,EAAIH,EAAEH,CAAC,EAAGK,EAAI,GAAGF,EAAG,CAACH,CAAC,EAAE,IAAI,EAAE,CAAC,EAC1DM,EAAE,KAAI,EAAI,KAAK,aAAeD,CACtC,CACM,GAAI,KAAK,kBAAkBL,CAAC,EAAG,CAC7B,IAAIO,EAAI,KAAK,kBAAmBE,EAAIF,EAAEP,CAAC,EAAGc,EAAI,GAAGP,EAAG,CAACP,CAAC,EAAE,IAAI,EAAE,CAAC,EAC/DS,EAAE,KAAI,EAAI,KAAK,aAAeK,CACtC,CACM,OAAO,IACb,CAOA,EAAK,CACD,IAAK,wBACL,MAAO,SAASd,EAAG,CACjB,GAAI,KAAK,aAAaA,CAAC,EAAG,CACxB,IAAIG,EAAI,KAAK,aAAcG,EAAIH,EAAEH,CAAC,EAAGK,EAAI,GAAGF,EAAG,CAACH,CAAC,EAAE,IAAI,EAAE,CAAC,EAC1DM,EAAE,KAAI,EAAI,KAAK,aAAeD,CACtC,CACM,OAAO,IACb,CAMA,EAAK,CACD,IAAK,oBACL,MAAO,SAASL,EAAG,CACjB,IAAIG,EAAI,KAAK,cAAcH,CAAC,EAAGM,EAAI,KAAK,aAAaN,CAAC,EAAGK,EAAI,KAAK,SAASL,CAAC,EAC5EK,GAAKF,EAAE,cAAcE,CAAC,EACtB,IAAIE,EAAIJ,EAAE,cAAe,EACzB,OAAOA,EAAE,gBAAgBA,EAAE,YAAaG,CAAC,EAAGH,EAAE,YAAYA,EAAE,WAAYI,CAAC,EAAGJ,EAAE,WAAWA,EAAE,WAAY,EAAGA,EAAE,KAAM,KAAK,MAAO,KAAK,OAAQ,EAAGA,EAAE,KAAMA,EAAE,cAAe,IAAI,EAAGA,EAAE,qBAAqBA,EAAE,YAAaA,EAAE,kBAAmBA,EAAE,WAAYI,EAAG,CAAC,EAAG,KAAK,SAASP,CAAC,EAAIO,EAAG,IAC1R,CAMA,EAAK,CACD,IAAK,qBACL,MAAO,UAAW,CAChB,IAAIP,EAAI,KACR,OAAO,KAAK,gBAAgB,OAAS,UAAW,CAC9CA,EAAE,eAAgB,CAC1B,EAAS,KAAK,OAAO,GAAG,UAAW,KAAK,gBAAgB,MAAM,EAAG,IACjE,CAMA,EAAK,CACD,IAAK,uBACL,MAAO,UAAW,CAChB,OAAO,KAAK,OAAO,eAAe,UAAW,KAAK,gBAAgB,MAAM,EAAG,IACjF,CAIA,EAAK,CACD,IAAK,oBACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAIH,EAAE,EAAGM,EAAIN,EAAE,EAAGK,EAAI,GAAG,KAAK,cAAc,MAAO,KAAK,aAAa,MAAOF,EAAGG,EAAG,KAAK,WAAY,KAAK,sBAAsB,EAAGC,EAAI,GAAG,MAAM,OAAQ,GAAGF,CAAC,CAAC,EAAGI,EAAI,KAAK,aAAaF,CAAC,EACzL,OAAOE,GAAKA,EAAE,OAAS,OAASA,EAAE,GAAK,IAC7C,CAMA,EAAK,CACD,IAAK,oBACL,MAAO,UAAW,CAChB,IAAIT,EAAI,KACR,KAAK,gBAAgB,aAAe,UAAW,CAC7CA,EAAE,gBAAiB,CACpB,EAAE,OAAO,iBAAiB,SAAU,KAAK,gBAAgB,YAAY,EAAG,KAAK,gBAAgB,WAAa,SAASM,EAAG,CACrH,IAAID,EAAI,GAAGC,CAAC,EAAGC,EAAI,CACjB,MAAOF,EACP,oBAAqB,UAAW,CAC9BA,EAAE,oBAAqB,CACnC,CACS,EAAEI,EAAIT,EAAE,kBAAkBK,CAAC,EAC5B,GAAII,GAAKT,EAAE,cAAgBS,GAAK,CAACT,EAAE,cAAcS,CAAC,EAAE,OAAQ,CAC1DT,EAAE,aAAeA,EAAE,KAAK,YAAa,EAAE,EAAE,CAAE,EAAEO,CAAC,EAAG,GAAI,CACnD,KAAMP,EAAE,WACT,CAAA,CAAC,EAAGA,EAAE,YAAcS,EAAGT,EAAE,KAAK,YAAa,EAAE,EAAE,CAAE,EAAEO,CAAC,EAAG,CAAA,EAAI,CAC1D,KAAME,CAClB,CAAW,CAAC,EAAGT,EAAE,+BAAgC,EACvC,MACV,CACQ,GAAIA,EAAE,aAAeA,EAAE,kBAAkBK,CAAC,IAAML,EAAE,YAAa,CAC7D,IAAIc,EAAId,EAAE,YACVA,EAAE,YAAc,KAAMA,EAAE,KAAK,YAAa,EAAE,EAAE,CAAA,EAAIO,CAAC,EAAG,CAAA,EAAI,CACxD,KAAMO,CAClB,CAAW,CAAC,EAAGd,EAAE,+BAAgC,EACvC,MACV,CACQ,GAAIA,EAAE,SAAS,iBAAkB,CAC/B,IAAIQ,EAAIR,EAAE,YAAc,KAAOA,EAAE,eAAeO,EAAE,MAAM,EAAGA,EAAE,MAAM,CAAC,EACpEC,IAAMR,EAAE,cAAgBA,EAAE,aAAeA,EAAE,KAAK,YAAa,EAAE,EAAE,CAAE,EAAEO,CAAC,EAAG,CAAA,EAAI,CAC3E,KAAMP,EAAE,WACT,CAAA,CAAC,EAAGQ,GAAKR,EAAE,KAAK,YAAa,EAAE,EAAE,CAAA,EAAIO,CAAC,EAAG,CAAA,EAAI,CAC5C,KAAMC,CACP,CAAA,CAAC,EAAGR,EAAE,YAAcQ,EAC/B,CACO,EAAE,KAAK,gBAAgB,eAAiB,SAASF,EAAG,CACnD,IAAID,EAAI,GAAGC,CAAC,EACZN,EAAE,KAAK,WAAY,CACjB,MAAOK,EACP,oBAAqB,UAAW,CAC9BA,EAAE,oBAAqB,CACnC,CACA,CAAS,CACF,EAAE,KAAK,gBAAgB,YAAc,SAASC,EAAG,CAChD,IAAID,EAAI,GAAGC,CAAC,EAAGC,EAAI,CACjB,MAAOF,EACP,oBAAqB,UAAW,CAC9BA,EAAE,oBAAqB,CACnC,CACS,EACDL,EAAE,cAAgBA,EAAE,KAAK,YAAa,EAAE,EAAE,CAAE,EAAEO,CAAC,EAAG,GAAI,CACpD,KAAMP,EAAE,WAClB,CAAS,CAAC,EAAGA,EAAE,+BAA8B,GAAKA,EAAE,SAAS,kBAAoBA,EAAE,cAAgBA,EAAE,KAAK,YAAa,EAAE,EAAE,GAAIO,CAAC,EAAG,GAAI,CAC7H,KAAMP,EAAE,WACT,CAAA,CAAC,EAAGA,EAAE,+BAA8B,GAAKA,EAAE,KAAK,aAAc,EAAE,CAAE,EAAEO,CAAC,CAAC,CACxE,EAAE,KAAK,gBAAgB,YAAc,SAASD,EAAG,CAChD,IAAID,EAAI,GAAGC,CAAC,EAAGC,EAAI,CACjB,MAAOF,EACP,oBAAqB,UAAW,CAC9BA,EAAE,oBAAqB,CACnC,CACS,EACDL,EAAE,KAAK,aAAc,EAAE,CAAE,EAAEO,CAAC,CAAC,CAC9B,EACD,IAAIJ,EAAI,SAASE,EAAG,CAClB,OAAO,SAASE,EAAG,CACjB,IAAIE,EAAI,GAAGF,CAAC,EAAGO,EAAI,CACjB,MAAOL,EACP,oBAAqB,UAAW,CAC9BA,EAAE,oBAAqB,CACrC,CACW,EAAED,EAAIR,EAAE,kBAAkBS,CAAC,EAC5B,GAAID,EAAG,OAAOR,EAAE,KAAK,GAAG,OAAOK,EAAG,MAAM,EAAG,EAAE,EAAE,CAAE,EAAES,CAAC,EAAG,CAAA,EAAI,CACzD,KAAMN,CAClB,CAAW,CAAC,EACF,GAAIR,EAAE,SAAS,iBAAkB,CAC/B,IAAIY,EAAIZ,EAAE,eAAeS,EAAE,EAAGA,EAAE,CAAC,EACjC,GAAIG,EAAG,OAAOZ,EAAE,KAAK,GAAG,OAAOK,EAAG,MAAM,EAAG,EAAE,EAAE,CAAE,EAAES,CAAC,EAAG,CAAA,EAAI,CACzD,KAAMF,CACpB,CAAa,CAAC,CACd,CACU,OAAOZ,EAAE,KAAK,GAAG,OAAOK,EAAG,OAAO,EAAGS,CAAC,CACvC,CACF,EACD,OAAO,KAAK,gBAAgB,YAAcX,EAAE,OAAO,EAAG,KAAK,gBAAgB,iBAAmBA,EAAE,YAAY,EAAG,KAAK,gBAAgB,kBAAoBA,EAAE,aAAa,EAAG,KAAK,gBAAgB,YAAcA,EAAE,OAAO,EAAG,KAAK,gBAAgB,WAAaA,EAAE,MAAM,EAAG,KAAK,gBAAgB,SAAWA,EAAE,IAAI,EAAG,KAAK,YAAY,GAAG,YAAa,KAAK,gBAAgB,UAAU,EAAG,KAAK,YAAY,GAAG,gBAAiB,KAAK,gBAAgB,cAAc,EAAG,KAAK,YAAY,GAAG,QAAS,KAAK,gBAAgB,WAAW,EAAG,KAAK,YAAY,GAAG,aAAc,KAAK,gBAAgB,gBAAgB,EAAG,KAAK,YAAY,GAAG,cAAe,KAAK,gBAAgB,iBAAiB,EAAG,KAAK,YAAY,GAAG,QAAS,KAAK,gBAAgB,WAAW,EAAG,KAAK,YAAY,GAAG,YAAa,KAAK,gBAAgB,UAAU,EAAG,KAAK,YAAY,GAAG,UAAW,KAAK,gBAAgB,QAAQ,EAAG,KAAK,YAAY,GAAG,aAAc,KAAK,gBAAgB,WAAW,EAAG,KAAK,YAAY,GAAG,aAAc,KAAK,gBAAgB,WAAW,EAAG,KAAK,YAAY,GAAG,YAAa,KAAK,gBAAgB,UAAU,EAAG,KAAK,YAAY,GAAG,YAAa,KAAK,gBAAgB,UAAU,EAAG,KAAK,YAAY,GAAG,UAAW,KAAK,gBAAgB,QAAQ,EAAG,KAAK,YAAY,GAAG,YAAa,KAAK,gBAAgB,UAAU,EAAG,KAAK,YAAY,GAAG,MAAO,KAAK,gBAAgB,WAAW,EAAG,KAAK,YAAY,GAAG,YAAa,KAAK,gBAAgB,iBAAiB,EAAG,KAAK,YAAY,GAAG,YAAa,KAAK,gBAAgB,cAAc,EAAG,IAC57C,CAMA,EAAK,CACD,IAAK,oBACL,MAAO,UAAW,CAChB,IAAIH,EAAI,KAAMG,EAAI,KAAK,MAAOG,EAAoB,IAAI,IAAI,CAAC,IAAK,IAAK,SAAU,MAAM,CAAC,EACtF,OAAO,KAAK,gBAAgB,qCAAuC,SAASD,EAAG,CAC7E,IAAIE,EAAGE,GAAKF,EAAIF,EAAE,SAAW,MAAQE,IAAM,OAAS,OAASA,EAAE,WAC/DP,EAAE,MAAM,YAAY,SAASQ,EAAG,CAC9B,OAAOR,EAAE,WAAWQ,CAAC,CAC/B,CAAS,EACD,IAAIM,EAAI,CAACL,GAAKA,EAAE,KAAK,SAASD,EAAG,CAC/B,OAAOF,EAAE,IAAIE,CAAC,CACxB,CAAS,EACDR,EAAE,QAAQ,CACR,aAAc,CACZ,MAAOG,EAAE,MAAK,CACf,EACD,eAAgB,CAACW,EACjB,SAAU,EACpB,CAAS,CACF,EAAE,KAAK,gBAAgB,qCAAuC,SAAST,EAAG,CACzE,IAAIE,EAAGE,GAAKF,EAAIF,EAAE,SAAW,MAAQE,IAAM,OAAS,OAASA,EAAE,WAC/DP,EAAE,MAAM,YAAY,SAASQ,EAAG,CAC9B,OAAOR,EAAE,WAAWQ,CAAC,CAC/B,CAAS,EACD,IAAIM,EAAIL,GAAK,CAAC,SAAU,MAAM,EAAE,KAAK,SAASD,EAAG,CAC/C,OAA4BC,GAAE,SAASD,CAAC,CAClD,CAAS,EACDR,EAAE,QAAQ,CACR,aAAc,CACZ,MAAOG,EAAE,MAAK,CACf,EACD,eAAgB,CAACW,EACjB,SAAU,EACpB,CAAS,CACF,EAAE,KAAK,gBAAgB,mBAAqB,SAAST,EAAG,CACvD,IAAIE,EAAIF,EAAE,IACVL,EAAE,QAAQO,CAAC,EAAGP,EAAE,QAAQ,CACtB,aAAc,CACZ,MAAO,CAACO,CAAC,CACV,EACD,eAAgB,GAChB,SAAU,EACpB,CAAS,CACF,EAAE,KAAK,gBAAgB,sBAAwB,SAASF,EAAG,CAC1D,IAAIE,EAAIF,EAAE,IACVL,EAAE,QAAQ,CACR,aAAc,CACZ,MAAO,CAACO,CAAC,CACV,EACD,eAAgB,GAChB,SAAU,EACpB,CAAS,CACF,EAAE,KAAK,gBAAgB,oBAAsB,SAASF,EAAG,CACxD,IAAIE,EAAIF,EAAE,IACVL,EAAE,WAAWO,CAAC,EAAGP,EAAE,QAAQ,CACzB,SAAU,EACpB,CAAS,CACF,EAAE,KAAK,gBAAgB,mBAAqB,SAASK,EAAG,CACvD,IAAIE,EAAIF,EAAE,IACVL,EAAE,QAAQO,CAAC,EAAGP,EAAE,QAAQ,CACtB,aAAc,CACZ,MAAO,CAACO,CAAC,CACV,EACD,SAAU,EACpB,CAAS,CACF,EAAE,KAAK,gBAAgB,sBAAwB,SAASF,EAAG,CAC1D,IAAIE,EAAIF,EAAE,IACVL,EAAE,QAAQ,CACR,aAAc,CACZ,MAAO,CAACO,CAAC,CACV,EACD,eAAgB,GAChB,SAAU,EACpB,CAAS,CACF,EAAE,KAAK,gBAAgB,oBAAsB,SAASF,EAAG,CACxD,IAAIE,EAAIF,EAAE,IACVL,EAAE,WAAWO,CAAC,EAAGP,EAAE,QAAQ,CACzB,SAAU,EACpB,CAAS,CACT,EAAS,KAAK,gBAAgB,sBAAwB,UAAW,CACzDA,EAAE,eAAc,EAAIA,EAAE,iBAAkB,EAAEA,EAAE,QAAQ,CAClD,SAAU,EACpB,CAAS,CACT,EAAS,KAAK,gBAAgB,iBAAmB,UAAW,CACpDA,EAAE,eAAc,EAAIA,EAAE,eAAc,EAAIA,EAAE,iBAAgB,EAAIA,EAAE,mBAAoBA,EAAE,QAAQ,CAC5F,SAAU,EACpB,CAAS,CACT,EAASG,EAAE,GAAG,YAAa,KAAK,gBAAgB,kBAAkB,EAAGA,EAAE,GAAG,cAAe,KAAK,gBAAgB,mBAAmB,EAAGA,EAAE,GAAG,wBAAyB,KAAK,gBAAgB,qBAAqB,EAAGA,EAAE,GAAG,4BAA6B,KAAK,gBAAgB,oCAAoC,EAAGA,EAAE,GAAG,YAAa,KAAK,gBAAgB,kBAAkB,EAAGA,EAAE,GAAG,cAAe,KAAK,gBAAgB,mBAAmB,EAAGA,EAAE,GAAG,wBAAyB,KAAK,gBAAgB,qBAAqB,EAAGA,EAAE,GAAG,4BAA6B,KAAK,gBAAgB,oCAAoC,EAAGA,EAAE,GAAG,eAAgB,KAAK,gBAAgB,qBAAqB,EAAGA,EAAE,GAAG,UAAW,KAAK,gBAAgB,gBAAgB,EAAG,IAC3sB,CAMA,EAAK,CACD,IAAK,sBACL,MAAO,UAAW,CAChB,IAAIH,EAAI,KAAK,MACbA,EAAE,eAAe,YAAa,KAAK,gBAAgB,kBAAkB,EAAGA,EAAE,eAAe,cAAe,KAAK,gBAAgB,mBAAmB,EAAGA,EAAE,eAAe,wBAAyB,KAAK,gBAAgB,qBAAqB,EAAGA,EAAE,eAAe,4BAA6B,KAAK,gBAAgB,oCAAoC,EAAGA,EAAE,eAAe,YAAa,KAAK,gBAAgB,kBAAkB,EAAGA,EAAE,eAAe,cAAe,KAAK,gBAAgB,mBAAmB,EAAGA,EAAE,eAAe,wBAAyB,KAAK,gBAAgB,qBAAqB,EAAGA,EAAE,eAAe,4BAA6B,KAAK,gBAAgB,oCAAoC,EAAGA,EAAE,eAAe,eAAgB,KAAK,gBAAgB,qBAAqB,EAAGA,EAAE,eAAe,UAAW,KAAK,gBAAgB,gBAAgB,CAC7zB,CAKA,EAAK,CACD,IAAK,iBACL,MAAO,SAASA,EAAGG,EAAG,CACpB,IAAIG,EAAI,GAAG,KAAK,cAAc,MAAO,KAAK,aAAa,MAAON,EAAGG,EAAG,KAAK,WAAY,KAAK,sBAAsB,EAAGE,EAAI,GAAG,MAAM,OAAQ,GAAGC,CAAC,CAAC,EAAGC,EAAI,KAAK,aAAaF,CAAC,EACvK,OAAOE,GAAKA,EAAE,OAAS,OAASA,EAAE,GAAK,IAC7C,CAUA,EAAK,CACD,IAAK,UACL,MAAO,UAAW,CAChB,IAAIP,EAAI,KACR,KAAK,KAAK,eAAe,EACzB,IAAIG,EAAI,KAAK,MAAOG,EAAI,KAAK,SAAUD,EAAI,KAAK,cAAe,EAC/D,GAAI,KAAK,WAAa,GAAG,KAAK,KAAK,EAAG,CAAC,KAAK,SAAS,YAAa,CAChE,IAAIE,EAAIF,EAAE,MAAOI,EAAIJ,EAAE,OAAQS,EAAI,KAAK,WAAYN,EAAIM,EAAE,EAAGF,EAAIE,EAAE,EACnE,KAAK,WAAa,CAChB,EAAG,EAAEN,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAK,EAAID,EAAI,GAAIC,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAK,EAAID,EAAI,CAAC,EACxD,EAAG,EAAEK,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAK,EAAIH,EAAI,GAAIG,EAAE,CAAC,EAAIA,EAAE,CAAC,GAAK,EAAIH,EAAI,CAAC,CACzD,CACT,CACM,KAAK,sBAAwB,GAAG,KAAK,YAAc,KAAK,UAAU,EAClE,IAAIC,EAAI,IAAI,GAAMS,EAAI,GAAGT,EAAE,SAAQ,EAAIL,EAAG,KAAK,mBAAoB,EAAE,KAAK,gBAAe,CAAE,EAC3F,KAAK,UAAU,eAAeA,EAAGC,EAAE,iBAAiB,EACpD,QAASe,EAAI,GAAIV,EAAI,CAAE,EAAEa,EAAI,CAAA,EAAIG,EAAI,GAAIE,EAAI,EAAGM,EAAIhC,EAAE,MAAK,EAAIU,EAAI,EAAGE,EAAIoB,EAAE,OAAQtB,EAAIE,EAAGF,IAAK,CAC9F,IAAIkB,EAAII,EAAEtB,CAAC,EAAGU,EAAI,KAAK,cAAcQ,CAAC,EAAGT,EAAInB,EAAE,kBAAkB4B,CAAC,EAClER,EAAE,EAAID,EAAE,EAAGC,EAAE,EAAID,EAAE,EAAG,KAAK,sBAAsB,QAAQC,CAAC,EAAG,OAAOA,EAAE,OAAS,UAAY,CAACA,EAAE,QAAU,KAAK,UAAU,IAAIQ,EAAGR,EAAE,KAAM,KAAK,sBAAsBA,EAAG,CAClK,OAAQJ,CACT,CAAA,CAAC,EAAGE,EAAEE,EAAE,IAAI,GAAKF,EAAEE,EAAE,IAAI,GAAK,GAAK,CAC5C,CACM,KAAK,UAAU,SAAU,EACzB,QAASE,KAAK,KAAK,aAAc,CAC/B,GAAI,CAAC,GAAG,KAAK,KAAK,aAAcA,CAAC,EAC/B,MAAM,IAAI,MAAM,2DAA2D,OAAOA,EAAG,IAAI,CAAC,EAC5F,KAAK,aAAaA,CAAC,EAAE,WAAWJ,EAAEI,CAAC,GAAK,CAAC,EAAGJ,EAAEI,CAAC,EAAI,CAC3D,CACM,KAAK,SAAS,QAAU,KAAK,YAAY,CAAC,IAAM,KAAK,YAAY,CAAC,IAAMU,EAAI,GAAG,KAAK,YAAa,SAASY,GAAG,CAC3G,OAAO/C,EAAE,cAAc+C,EAAC,EAAE,MAC3B,EAAEZ,CAAC,GACJ,QAASE,EAAI,EAAGX,EAAIS,EAAE,OAAQE,EAAIX,EAAGW,IAAK,CACxC,IAAIL,EAAIG,EAAEE,CAAC,EACX1B,EAAEqB,CAAC,EAAIH,EAAGF,EAAEhB,EAAEqB,CAAC,CAAC,EAAI,CAClB,KAAM,OACN,GAAIA,CACL,EAAEH,IACH,IAAIb,EAAI,KAAK,cAAcgB,CAAC,EAC5B,KAAK,iBAAiBA,EAAGrB,EAAEqB,CAAC,EAAGX,EAAEL,EAAE,IAAI,GAAG,CAClD,CACM,QAASwB,EAAI,CAAE,EAAEiB,EAAKtD,EAAE,MAAK,EAAIoC,EAAI,EAAGnB,EAAIqC,EAAG,OAAQlB,EAAInB,EAAGmB,IAAK,CACjE,IAAItB,GAAIwC,EAAGlB,CAAC,EAAGH,GAAI,KAAK,cAAcnB,EAAC,EACvCuB,EAAEJ,GAAE,IAAI,GAAKI,EAAEJ,GAAE,IAAI,GAAK,GAAK,CACvC,CACM,KAAK,SAAS,QAAU,KAAK,YAAY,CAAC,IAAM,KAAK,YAAY,CAAC,IAAMqB,EAAK,GAAG,KAAK,YAAa,SAASV,GAAG,CAC5G,OAAO/C,EAAE,cAAc+C,EAAC,EAAE,MAC3B,EAAEU,CAAE,GACL,QAASN,MAAK,KAAK,aAAc,CAC/B,GAAI,CAAC,GAAG,KAAK,KAAK,aAAcA,EAAC,EAC/B,MAAM,IAAI,MAAM,2DAA2D,OAAOA,GAAG,IAAI,CAAC,EAC5F,KAAK,aAAaA,EAAC,EAAE,WAAWX,EAAEW,EAAC,GAAK,CAAC,EAAGX,EAAEW,EAAC,EAAI,CAC3D,CACM,QAASjB,GAAI,EAAGhB,GAAIuC,EAAG,OAAQvB,GAAIhB,GAAGgB,KAAK,CACzC,IAAIY,GAAIW,EAAGvB,EAAC,EACZV,EAAEsB,EAAC,EAAIjB,EAAGF,EAAEH,EAAEsB,EAAC,CAAC,EAAI,CAClB,KAAM,OACN,GAAIA,EACL,EAAEjB,IACH,IAAIuB,GAAI,KAAK,cAAcN,EAAC,EAC5B,KAAK,iBAAiBA,GAAGtB,EAAEsB,EAAC,EAAGN,EAAEY,GAAE,IAAI,GAAG,CAClD,CACM,OAAO,KAAK,aAAezB,EAAG,KAAK,YAAchB,EAAG,KAAK,YAAca,EAAG,KAAK,KAAK,cAAc,EAAG,IAC3G,CAKA,EAAK,CACD,IAAK,uBACL,MAAO,SAASxB,EAAG,CACjB,IAAIG,EAAI,KAAMG,EAAI,KAAK,SACvB,GAAI,KAAK,OAAO,SAAWA,EAAE,eAAgB,KAAK,OAAO,SAAWA,EAAE,eAAgB,KAAK,OAAO,eAAiBA,EAAE,oBAAqB,KAAK,OAAO,eAAiBA,EAAE,oBAAqB,KAAK,OAAO,gBAAkBA,EAAE,qBAAsBA,EAAE,oBAAsB,KAAK,OAAO,MAAQ,SAASE,EAAG,CAC1S,OAAOL,EAAE,iBAAiBK,EAAGF,EAAE,qBAAuB,GAAGA,EAAE,mBAAmB,IAAM,SAAWA,EAAE,oBAAsB,CAAA,CAAE,CACjI,EAAU,KAAK,OAAO,MAAQ,KAAM,KAAK,OAAO,SAAS,KAAK,OAAO,cAAc,KAAK,OAAO,SAAU,CAAA,CAAC,EAAGN,EAAG,CACxG,GAAIA,EAAE,qBAAuBM,EAAE,mBAAoB,CACjD,QAASD,KAAKC,EAAE,mBACdA,EAAE,mBAAmBD,CAAC,IAAML,EAAE,mBAAmBK,CAAC,GAAK,KAAK,oBAAoBA,EAAGC,EAAE,mBAAmBD,CAAC,CAAC,EAC5G,QAASE,KAAKP,EAAE,mBACdM,EAAE,mBAAmBC,CAAC,GAAK,KAAK,sBAAsBA,CAAC,CACnE,CACQ,GAAIP,EAAE,qBAAuBM,EAAE,oBAAsBN,EAAE,0BAA4BM,EAAE,wBAAyB,CAC5G,QAASG,KAAKH,EAAE,oBACbA,EAAE,mBAAmBG,CAAC,IAAMT,EAAE,mBAAmBS,CAAC,GAAKH,EAAE,wBAAwBG,CAAC,IAAMT,EAAE,wBAAwBS,CAAC,IAAM,KAAK,oBAAoBA,EAAGH,EAAE,mBAAmBG,CAAC,EAAGH,EAAE,wBAAwBG,CAAC,CAAC,EAC7M,QAASK,KAAKd,EAAE,mBACdM,EAAE,mBAAmBQ,CAAC,GAAK,KAAK,sBAAsBA,CAAC,CACnE,CACA,CACM,OAAO,KAAK,YAAY,YAAY,KAAK,QAAQ,EAAG,KAAK,YAAY,YAAY,KAAK,QAAQ,EAAG,IACvG,CACA,EAAK,CACD,IAAK,mBACL,MAAO,SAASd,EAAG,CACjB,IAAIG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,CAAA,EAAIG,EAAIH,EAAE,UAAWE,EAAIC,IAAM,OAAS,EAAIA,EAAGC,EAAIJ,EAAE,WAAYM,EAAI,EAAE,CAAE,EAAET,CAAC,EAAGc,EAAIP,GAAK,KAAK,WAAYC,EAAI,GAAGM,EAAE,EAAG,CAAC,EAAGF,EAAIJ,EAAE,CAAC,EAAGE,EAAIF,EAAE,CAAC,EAAGW,EAAI,GAAGL,EAAE,EAAG,CAAC,EAAGO,EAAIF,EAAE,CAAC,EAAGR,EAAIQ,EAAE,CAAC,EAAGK,EAAI,CAAC,KAAK,gBAAgB,CAClR,EAAGZ,EACH,EAAGS,CACX,EAAS,CACD,YAAarB,CACrB,CAAO,EAAG,KAAK,gBAAgB,CACvB,EAAGU,EACH,EAAGW,CACX,EAAS,CACD,YAAarB,CACrB,CAAO,EAAG,KAAK,gBAAgB,CACvB,EAAGY,EACH,EAAGD,CACX,EAAS,CACD,YAAaX,CACrB,CAAO,EAAG,KAAK,gBAAgB,CACvB,EAAGU,EACH,EAAGC,CACX,EAAS,CACD,YAAaX,CACd,CAAA,CAAC,EAAG2B,EAAI,IAAOE,EAAI,KAAQM,EAAI,IAAOtB,EAAI,KAC3CW,EAAE,QAAQ,SAASgB,EAAG,CACpB,IAAIiB,EAAKjB,EAAE,EAAGD,EAAIC,EAAE,EACpBb,EAAI,KAAK,IAAIA,EAAG8B,CAAE,EAAG5B,EAAI,KAAK,IAAIA,EAAG4B,CAAE,EAAGtB,EAAI,KAAK,IAAIA,EAAGI,CAAC,EAAG1B,EAAI,KAAK,IAAIA,EAAG0B,CAAC,CACvF,CAAO,EACD,IAAIxB,EAAIc,EAAIF,EAAGI,EAAIlB,EAAIsB,EAAGZ,EAAI,KAAK,cAAa,EAAID,EAAIC,EAAE,MAAOE,EAAIF,EAAE,OAAQc,EAAI,EAAGX,EAAI,EAC1F,GAAIX,GAAKO,EAAIO,EAAIP,EAAIjB,EAAIgC,EAAIR,GAAKP,EAAIjB,GAAKsB,EAAItB,IAAMgC,EAAIV,EAAItB,GAAKwB,EAAIP,EAAIjB,EAAIgC,EAAIR,GAAKP,EAAIjB,GAAKsB,EAAI,CAACtB,IAAMgC,EAAIV,EAAItB,GAAI0B,GAAKN,EAAIZ,EAAIY,EAAIpB,EAAIqB,EAAIb,GAAKY,EAAIpB,GAAK8B,EAAI9B,IAAMqB,EAAIS,EAAI9B,GAAKQ,EAAIY,EAAIpB,EAAIqB,EAAIb,GAAKY,EAAIpB,GAAK8B,EAAI,CAAC9B,IAAMqB,EAAIS,EAAI9B,GAAIgC,GAAKX,EAAG,CAChP,IAAIM,EAAI,KAAK,sBAAsB,CACjC,EAAG,EACH,EAAG,CACb,EAAW,CACD,YAAahC,CACvB,CAAS,EAAGgB,EAAI,KAAK,sBAAsB,CACjC,EAAGqB,EACH,EAAGX,CACb,EAAW,CACD,YAAa1B,CACvB,CAAS,EACDqC,EAAIrB,EAAE,EAAIgB,EAAE,EAAGN,EAAIV,EAAE,EAAIgB,EAAE,EAAGvB,EAAE,GAAK4B,EAAG5B,EAAE,GAAKiB,CACvD,CACM,OAAOjB,CACb,CAMA,EAAK,CACD,IAAK,eACL,MAAO,UAAW,CAChB,GAAI,CAAC,KAAK,SAAS,aAAc,OAAO,KACxC,IAAIT,EAAI,KAAK,OAAO,SAAQ,EAAIG,EAAI,KAAK,UAAU,mBAAmBH,EAAE,MAAO,KAAK,SAAS,YAAY,EACzG,GAAGG,EAAG,KAAK,qBAAqB,EAAG,KAAK,oBAAsC,IAAI,IAClF,QAASG,EAAI,KAAK,eAAe,OAAQD,EAAI,EAAGE,EAAIJ,EAAE,OAAQE,EAAIE,EAAGF,IAAK,CACxE,IAAII,EAAIN,EAAEE,CAAC,EAAGS,EAAI,KAAK,cAAcL,CAAC,EACtC,GAAI,CAAC,KAAK,oBAAoB,IAAIA,CAAC,GAAK,CAACK,EAAE,OAAQ,CACjD,IAAIN,EAAI,KAAK,sBAAsBM,CAAC,EAAGF,EAAIJ,EAAE,EAAGE,EAAIF,EAAE,EAAGW,EAAI,KAAK,UAAUL,EAAE,IAAI,EAClF,GAAI,EAAE,CAACA,EAAE,YAAcK,EAAI,KAAK,SAAS,6BAA+B,EAAEP,EAAI,MAAQA,EAAI,KAAK,MAAQ,IAAMF,EAAI,KAAOA,EAAI,KAAK,OAAS,IAAK,CAC7I,KAAK,oBAAoB,IAAID,CAAC,EAC9B,IAAIY,EAAI,KAAK,SAAS,qBAAsBV,EAAI,KAAK,aAAaG,EAAE,IAAI,EAAGU,EAA0Bb,GAAE,WAAcU,EACrHG,EAAElB,EAAG,EAAE,EAAE,CACP,IAAKG,CACnB,EAAeK,CAAC,EAAG,GAAI,CACT,KAAMK,EACN,EAAGP,EACH,EAAGF,CACjB,CAAa,EAAG,KAAK,QAAQ,CAC7B,CACA,CACA,CACM,OAAO,IACb,CAOA,EAAK,CACD,IAAK,mBACL,MAAO,UAAW,CAChB,GAAI,CAAC,KAAK,SAAS,iBAAkB,OAAO,KAC5C,IAAIV,EAAI,KAAK,eAAe,WAC5BA,EAAE,UAAU,EAAG,EAAG,KAAK,MAAO,KAAK,MAAM,EACzC,IAAIG,EAAI,GAAG,CACT,MAAO,KAAK,MACZ,YAAa,KAAK,YAClB,oBAAqB,KAAK,oBAC1B,iBAAkB,KAAK,gBAC/B,CAAO,EACD,GAAGA,EAAG,KAAK,qBAAqB,EAChC,QAASG,EAAoB,IAAI,IAAOD,EAAI,EAAGE,EAAIJ,EAAE,OAAQE,EAAIE,EAAGF,IAAK,CACvE,IAAII,EAAIN,EAAEE,CAAC,EAAGS,EAAI,KAAK,MAAM,YAAYL,CAAC,EAAGD,EAAI,KAAK,cAAcM,EAAE,CAAC,CAAC,EAAGF,EAAI,KAAK,cAAcE,EAAE,CAAC,CAAC,EAAGJ,EAAI,KAAK,cAAcD,CAAC,EACjI,GAAI,CAACH,EAAE,IAAIG,CAAC,GAAK,EAAEC,EAAE,QAAUF,EAAE,QAAUI,EAAE,QAAS,CACpD,IAAIO,EAAI,KAAK,SAAS,qBAAsBE,EAAI,KAAK,aAAaX,EAAE,IAAI,EAAGC,EAA0BU,GAAE,WAAcF,EACrHR,EAAEX,EAAG,EAAE,EAAE,CACP,IAAKS,CACjB,EAAaC,CAAC,EAAG,GAAI,CACT,KAAM,KAAK,UAAUA,EAAE,IAAI,CACvC,CAAW,EAAG,EAAE,EAAE,EAAE,CACR,IAAKI,EAAE,CAAC,CACpB,EAAaN,CAAC,EAAG,KAAK,sBAAsBA,CAAC,CAAC,EAAG,GAAI,CACzC,KAAM,KAAK,UAAUA,EAAE,IAAI,CACvC,CAAW,EAAG,EAAE,EAAE,EAAE,CACR,IAAKM,EAAE,CAAC,CACpB,EAAaF,CAAC,EAAG,KAAK,sBAAsBA,CAAC,CAAC,EAAG,GAAI,CACzC,KAAM,KAAK,UAAUA,EAAE,IAAI,CACvC,CAAW,EAAG,KAAK,QAAQ,EAAGN,EAAE,IAAIG,CAAC,CACrC,CACA,CACM,OAAO,KAAK,oBAAsBH,EAAG,IAC3C,CAMA,EAAK,CACD,IAAK,yBACL,MAAO,UAAW,CAChB,IAAIN,EAAI,KAAMG,EAAI,KAAK,eAAe,OACtCA,EAAE,UAAU,EAAG,EAAG,KAAK,MAAO,KAAK,MAAM,EACzC,IAAIG,EAAI,SAASa,EAAG,CAClB,IAAIE,EAAIrB,EAAE,cAAcmB,CAAC,EAAGR,EAAIX,EAAE,sBAAsBqB,CAAC,EAAGG,EAAIb,EAAE,EAAGgB,EAAIhB,EAAE,EAAGkB,EAAI7B,EAAE,UAAUqB,EAAE,IAAI,EAAGc,EAAInC,EAAE,SAAS,qBAAsBa,EAAIb,EAAE,aAAaqB,EAAE,IAAI,EAAGN,EAA0BF,GAAE,WAAcsB,EAClNpB,EAAEZ,EAAG,EAAE,EAAE,CACP,IAAKgB,CACf,EAAWE,CAAC,EAAG,GAAI,CACT,KAAMQ,EACN,EAAGL,EACH,EAAGG,CACb,CAAS,EAAG3B,EAAE,QAAQ,CACf,EAAEK,EAAI,CAAE,EACT,KAAK,aAAe,CAAC,KAAK,cAAc,KAAK,WAAW,EAAE,QAAUA,EAAE,KAAK,KAAK,WAAW,EAAG,KAAK,iBAAiB,QAAQ,SAASK,EAAG,CACtIA,IAAMV,EAAE,aAAeK,EAAE,KAAKK,CAAC,CAChC,CAAA,EAAGL,EAAE,QAAQ,SAASK,EAAG,CACxB,OAAOJ,EAAEI,CAAC,CAClB,CAAO,EACD,IAAIH,EAAI,CAAE,EACVF,EAAE,QAAQ,SAASK,EAAG,CACpB,IAAIS,EAAInB,EAAE,cAAcU,CAAC,EAAE,KAC3BH,EAAEY,CAAC,GAAKZ,EAAEY,CAAC,GAAK,GAAK,CAC7B,CAAO,EACD,QAASV,KAAK,KAAK,kBACjB,KAAK,kBAAkBA,CAAC,EAAE,WAAWF,EAAEE,CAAC,GAAK,CAAC,EAAGF,EAAEE,CAAC,EAAI,EAC1DJ,EAAE,QAAQ,SAASK,EAAG,CACpB,IAAIS,EAAInB,EAAE,cAAcU,CAAC,EACzBV,EAAE,kBAAkBmB,EAAE,IAAI,EAAE,QAAQ,EAAGZ,EAAEY,EAAE,IAAI,IAAKA,CAAC,CAC7D,CAAO,EAAG,KAAK,cAAc,WAAW,MAAM,KAAK,cAAc,WAAW,gBAAgB,EACtF,IAAIL,EAAI,KAAK,gBAAiB,EAC9B,QAASN,KAAK,KAAK,kBAAmB,CACpC,IAAII,EAAI,KAAK,kBAAkBJ,CAAC,EAChCI,EAAE,OAAOE,CAAC,CAClB,CACA,CAKA,EAAK,CACD,IAAK,iCACL,MAAO,UAAW,CAChB,IAAId,EAAI,KACR,KAAK,6BAA+B,KAAK,cAAgB,KAAK,4BAA8B,sBAAsB,UAAW,CAC3HA,EAAE,4BAA8B,KAAMA,EAAE,uBAAwB,EAAEA,EAAE,iBAAkB,CAC9F,CAAO,EACP,CAMA,EAAK,CACD,IAAK,SACL,MAAO,UAAW,CAChB,IAAIA,EAAI,KACR,KAAK,KAAK,cAAc,EACxB,IAAIG,EAAI,UAAW,CACjB,OAAOH,EAAE,KAAK,aAAa,EAAGA,CAC/B,EACD,GAAI,KAAK,cAAgB,qBAAqB,KAAK,WAAW,EAAG,KAAK,YAAc,MAAO,KAAK,OAAQ,EAAE,KAAK,eAAiB,KAAK,QAAS,EAAE,KAAK,cAAgB,GAAI,KAAK,MAAK,EAAI,KAAK,cAAc,QAAQ,SAASwB,EAAG,CAC5N,OAAOxB,EAAE,kBAAkBwB,CAAC,CAC7B,CAAA,EAAG,CAAC,KAAK,MAAM,MAAO,OAAOrB,EAAG,EACjC,IAAIG,EAAI,KAAK,YAAaD,EAAI,KAAK,OAAO,WAAY,GAAIC,EAAE,UAAYA,EAAE,eAAiBA,EAAE,sBAAuBC,EAAI,KAAK,OAAO,SAAU,EAAEE,EAAI,KAAK,cAAa,EAAIK,EAAI,KAAK,mBAAkB,EAAIN,EAAI,KAAK,gBAAiB,EACnO,KAAK,OAAS,GAAGD,EAAGE,EAAGK,EAAGN,CAAC,EAAG,KAAK,UAAY,GAAGD,EAAGE,EAAGK,EAAGN,EAAG,EAAE,EAAG,KAAK,gBAAkB,GAAG,KAAK,OAAQD,EAAGE,CAAC,EAAG,KAAK,qBAAuB,KAAK,wBAAyB,EAC3K,IAAIG,EAAI,KAAK,gBAAiB,EAC9B,QAASF,KAAK,KAAK,aAAc,CAC/B,IAAIS,EAAI,KAAK,aAAaT,CAAC,EAC3BS,EAAE,OAAOP,CAAC,CAClB,CACM,GAAI,CAAC,KAAK,SAAS,iBAAmB,CAACP,EACrC,QAASgB,KAAK,KAAK,aAAc,CAC/B,IAAIV,EAAI,KAAK,aAAaU,CAAC,EAC3BV,EAAE,OAAOC,CAAC,CACpB,CACM,OAAO,KAAK,SAAS,kBAAoBP,IAAM,KAAK,aAAY,EAAI,KAAK,iBAAgB,EAAI,KAAK,uBAAwB,GAAGF,EAAG,CACtI,CAMA,EAAK,CACD,IAAK,UACL,MAAO,SAASH,EAAG,CACjB,IAAIG,EAAI,OAAO,OAAO,CAAA,EAAI,KAAK,MAAM,kBAAkBH,CAAC,CAAC,EACzD,KAAK,SAAS,cAAgBG,EAAI,KAAK,SAAS,YAAYH,EAAGG,CAAC,GAChE,IAAIG,EAAI,GAAG,KAAK,SAAUN,EAAGG,CAAC,EAC9B,KAAK,cAAcH,CAAC,EAAIM,EAAG,KAAK,sBAAsB,OAAON,CAAC,EAAGM,EAAE,YAAc,CAACA,EAAE,QAAU,KAAK,sBAAsB,IAAIN,CAAC,EAAG,KAAK,iBAAiB,OAAOA,CAAC,EAAGM,EAAE,aAAe,CAACA,EAAE,QAAU,KAAK,iBAAiB,IAAIN,CAAC,EAAG,KAAK,SAAS,SAAWM,EAAE,OAAS,KAAK,YAAY,CAAC,IAAM,KAAK,YAAY,CAAC,EAAIA,EAAE,QAASA,EAAE,OAAS,KAAK,YAAY,CAAC,IAAM,KAAK,YAAY,CAAC,EAAIA,EAAE,QAC5X,CAMA,EAAK,CACD,IAAK,aACL,MAAO,SAASN,EAAG,CACjB,KAAK,QAAQA,CAAC,EACd,IAAIG,EAAI,KAAK,cAAcH,CAAC,EAC5B,KAAK,sBAAsB,QAAQG,CAAC,CAC1C,CAMA,EAAK,CACD,IAAK,aACL,MAAO,SAASH,EAAG,CACjB,OAAO,KAAK,cAAcA,CAAC,EAAG,OAAO,KAAK,iBAAiBA,CAAC,EAAG,KAAK,iBAAiB,OAAOA,CAAC,EAAG,KAAK,cAAgBA,IAAM,KAAK,YAAc,MAAO,KAAK,sBAAsB,OAAOA,CAAC,CAC9L,CAMA,EAAK,CACD,IAAK,UACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAI,OAAO,OAAO,CAAA,EAAI,KAAK,MAAM,kBAAkBH,CAAC,CAAC,EACzD,KAAK,SAAS,cAAgBG,EAAI,KAAK,SAAS,YAAYH,EAAGG,CAAC,GAChE,IAAIG,EAAI,GAAG,KAAK,SAAUN,EAAGG,CAAC,EAC9B,KAAK,cAAcH,CAAC,EAAIM,EAAG,KAAK,sBAAsB,OAAON,CAAC,EAAGM,EAAE,YAAc,CAACA,EAAE,QAAU,KAAK,sBAAsB,IAAIN,CAAC,EAAG,KAAK,SAAS,SAAWM,EAAE,OAAS,KAAK,YAAY,CAAC,IAAM,KAAK,YAAY,CAAC,EAAIA,EAAE,QAASA,EAAE,OAAS,KAAK,YAAY,CAAC,IAAM,KAAK,YAAY,CAAC,EAAIA,EAAE,QAC/R,CAMA,EAAK,CACD,IAAK,aACL,MAAO,SAASN,EAAG,CACjB,KAAK,QAAQA,CAAC,CACpB,CAMA,EAAK,CACD,IAAK,aACL,MAAO,SAASA,EAAG,CACjB,OAAO,KAAK,cAAcA,CAAC,EAAG,OAAO,KAAK,iBAAiBA,CAAC,EAAG,KAAK,cAAgBA,IAAM,KAAK,YAAc,MAAO,KAAK,sBAAsB,OAAOA,CAAC,CAC7J,CAKA,EAAK,CACD,IAAK,mBACL,MAAO,UAAW,CAChB,KAAK,UAAY,IAAI,GAAM,KAAK,WAAa,CAC3C,EAAG,CAAC,EAAG,CAAC,EACR,EAAG,CAAC,EAAG,CAAC,CAChB,EAAS,KAAK,cAAgB,CAAA,EAAI,KAAK,iBAAmB,GAAI,KAAK,sBAAwC,IAAI,IAAO,KAAK,YAAc,CAAC,IAAO,IAAM,EAAG,KAAK,iBAAmC,IAAI,GACtM,CAKA,EAAK,CACD,IAAK,mBACL,MAAO,UAAW,CAChB,KAAK,cAAgB,GAAI,KAAK,iBAAmB,CAAA,EAAI,KAAK,sBAAwC,IAAI,IAAO,KAAK,YAAc,CAAC,IAAO,IAAM,CACpJ,CAKA,EAAK,CACD,IAAK,eACL,MAAO,UAAW,CAChB,KAAK,iBAAgB,EAAI,KAAK,iBAAkB,CACtD,CAKA,EAAK,CACD,IAAK,iBACL,MAAO,UAAW,CAChB,KAAK,oBAAsC,IAAI,IAAO,KAAK,iBAAmC,IAAI,IAAO,KAAK,YAAc,IAClI,CAKA,EAAK,CACD,IAAK,iBACL,MAAO,UAAW,CAChB,KAAK,oBAAsC,IAAI,IAAO,KAAK,iBAAmC,IAAI,IAAO,KAAK,YAAc,IAClI,CAKA,EAAK,CACD,IAAK,aACL,MAAO,UAAW,CAChB,KAAK,eAAc,EAAI,KAAK,eAAgB,CAClD,CAQA,EAAK,CACD,IAAK,mBACL,MAAO,SAASA,EAAGG,EAAGG,EAAG,CACvB,IAAID,EAAI,KAAK,cAAcL,CAAC,EAAGO,EAAI,KAAK,aAAaF,EAAE,IAAI,EAC3D,GAAI,CAACE,EAAG,MAAM,IAAI,MAAM,2DAA2D,OAAOF,EAAE,KAAM,IAAI,CAAC,EACvGE,EAAE,QAAQJ,EAAGG,EAAGD,CAAC,EAAG,KAAK,iBAAiBL,CAAC,EAAIM,CACrD,CAQA,EAAK,CACD,IAAK,mBACL,MAAO,SAASN,EAAGG,EAAGG,EAAG,CACvB,IAAID,EAAI,KAAK,cAAcL,CAAC,EAAGO,EAAI,KAAK,aAAaF,EAAE,IAAI,EAC3D,GAAI,CAACE,EAAG,MAAM,IAAI,MAAM,2DAA2D,OAAOF,EAAE,KAAM,IAAI,CAAC,EACvG,IAAII,EAAI,KAAK,MAAM,YAAYT,CAAC,EAAGc,EAAI,KAAK,cAAcL,EAAE,CAAC,CAAC,EAAGD,EAAI,KAAK,cAAcC,EAAE,CAAC,CAAC,EAC5FF,EAAE,QAAQJ,EAAGG,EAAGQ,EAAGN,EAAGH,CAAC,EAAG,KAAK,iBAAiBL,CAAC,EAAIM,CAC3D,CAUA,EAAK,CACD,IAAK,kBACL,MAAO,UAAW,CAChB,MAAO,CACL,OAAQ,KAAK,OACb,UAAW,KAAK,UAChB,MAAO,KAAK,MACZ,OAAQ,KAAK,OACb,WAAY,KAAK,WACjB,UAAW,KAAK,OAAO,MACvB,YAAa,KAAK,OAAO,MACzB,UAAW,EAAI,KAAK,UAAW,EAC/B,gBAAiB,KAAK,gBACtB,gBAAiB,KAAK,uBACtB,iBAAkB,KAAK,SAAS,iBAChC,oBAAqB,KAAK,SAAS,mBACpC,CACP,CAMA,EAAK,CACD,IAAK,kBACL,MAAO,UAAW,CAChB,IAAIN,EAAI,KAAK,SAAUG,EAAIH,EAAE,aAAcM,EAAIN,EAAE,YACjD,OAAOM,GAAKH,GAAK,CACvB,CASA,EAAK,CACD,IAAK,cACL,MAAO,SAASH,EAAGG,EAAG,CACpB,IAAIG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,CAAE,EAC3E,GAAI,KAAK,SAASN,CAAC,EAAG,MAAM,IAAI,MAAM,yBAAyB,OAAOA,EAAG,kBAAkB,CAAC,EAC5F,IAAIK,EAAI,GAAGF,EAAG,CACZ,SAAU,UAClB,EAAS,CACD,MAAO,SAAS,OAAOH,CAAC,CAChC,CAAO,EACD,OAAOM,EAAE,OAAS,OAAO,OAAOD,EAAE,MAAOC,EAAE,KAAK,EAAG,KAAK,SAASN,CAAC,EAAIK,EAAG,gBAAiBC,GAAKA,EAAE,YAAc,KAAK,SAASA,EAAE,WAAW,EAAE,OAAOD,CAAC,EAAI,eAAgBC,GAAKA,EAAE,WAAa,KAAK,SAASA,EAAE,UAAU,EAAE,MAAMD,CAAC,EAAI,KAAK,UAAU,YAAYA,CAAC,EAAGA,CACxQ,CAQA,EAAK,CACD,IAAK,eACL,MAAO,SAASL,EAAG,CACjB,IAAIG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,CAAE,EAC3E,OAAO,KAAK,YAAYH,EAAG,SAAUG,CAAC,CAC5C,CAQA,EAAK,CACD,IAAK,sBACL,MAAO,SAASH,EAAG,CACjB,IAAIG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,CAAA,EAAIG,EAAI,KAAK,aAAaN,EAAGG,CAAC,EAAGE,EAAI,CAC5G,sBAAuB,GACvB,UAAW,EACZ,EACD,OAAO,KAAK,eAAeL,CAAC,EAAIM,EAAE,WAAW,KAAMD,CAAC,EAAG,IAC7D,CASA,EAAK,CACD,IAAK,qBACL,MAAO,SAASL,EAAG,CACjB,IAAIG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,GAAIG,EAA0BH,GAAE,QAAW,KAAK,aAAaH,EAAGG,CAAC,EAC1IA,EAAE,QAAUG,EAAE,OAAQ,EACtB,IAAID,EAAI,EAAE,CACR,sBAAuB,GACvB,UAAW,EACnB,EAASF,CAAC,EAAGI,EACPA,EAAID,EAAE,WAAW,SAAUD,CAAC,EAAGE,IAAMA,EAAID,EAAE,WAAW,QAASD,CAAC,GAAIE,IAAMA,EAAID,EAAE,WAAW,qBAAsBD,CAAC,GAClH,IAAII,EAAIF,EACR,GAAI,KAAK,cAAcP,CAAC,EAAIS,EAAGA,EAAE,UAAUA,EAAE,IAAKA,EAAE,mBAAmB,EAAGN,EAAE,QAAS,CACnF,KAAK,cAAc,IAAIH,CAAC,EACxB,IAAIc,EAAIL,EAAE,kBAAmB,EAC7B,GAAI,CAACK,EAAG,MAAM,IAAI,MAAM,qDAAqD,OAAOd,CAAC,CAAC,EACtF,KAAK,aAAaA,CAAC,EAAIc,CAC/B,CACM,OAAOL,CACb,CAOA,EAAK,CACD,IAAK,YACL,MAAO,SAAST,EAAG,CACjB,IAAIG,EAAI,KAAK,SAASH,CAAC,EACvB,GAAI,CAACG,EAAG,MAAM,IAAI,MAAM,4BAA4B,OAAOH,EAAG,wBAAwB,CAAC,EACvF,GAAI,KAAK,cAAcA,CAAC,EAAG,CACzB,IAAIM,EAAGD,EAAI,KAAK,cAAcL,CAAC,GAC9BM,EAAID,EAAE,aAAa,oBAAoB,KAAO,MAAQC,IAAM,QAAUA,EAAE,YAAa,EAAE,OAAO,KAAK,cAAcN,CAAC,CAC3H,MAAa,KAAK,eAAeA,CAAC,GAAK,OAAO,KAAK,eAAeA,CAAC,EAC7D,OAAOG,EAAE,SAAU,OAAO,KAAK,SAASH,CAAC,EAAG,IAClD,CAMA,EAAK,CACD,IAAK,YACL,MAAO,UAAW,CAChB,OAAO,KAAK,MAClB,CAOA,EAAK,CACD,IAAK,YACL,MAAO,SAASA,EAAG,CACjB,KAAK,qBAAoB,EAAI,KAAK,OAASA,EAAG,KAAK,mBAAoB,CAC7E,CAMA,EAAK,CACD,IAAK,eACL,MAAO,UAAW,CAChB,OAAO,KAAK,SAClB,CAMA,EAAK,CACD,IAAK,WACL,MAAO,UAAW,CAChB,OAAO,KAAK,KAClB,CAMA,EAAK,CACD,IAAK,WACL,MAAO,SAASA,EAAG,CACjBA,IAAM,KAAK,QAAU,KAAK,aAAe,CAACA,EAAE,QAAQ,KAAK,WAAW,IAAM,KAAK,YAAc,MAAO,KAAK,aAAe,CAACA,EAAE,QAAQ,KAAK,WAAW,IAAM,KAAK,YAAc,MAAO,KAAK,oBAAmB,EAAI,KAAK,wBAA0B,OAAS,qBAAqB,KAAK,qBAAqB,EAAG,KAAK,sBAAwB,MAAO,KAAK,MAAQA,EAAG,KAAK,kBAAmB,EAAE,KAAK,UAClY,CAMA,EAAK,CACD,IAAK,iBACL,MAAO,UAAW,CAChB,OAAO,KAAK,WAClB,CAMA,EAAK,CACD,IAAK,iBACL,MAAO,UAAW,CAChB,OAAO,KAAK,WAClB,CAMA,EAAK,CACD,IAAK,gBACL,MAAO,UAAW,CAChB,MAAO,CACL,MAAO,KAAK,MACZ,OAAQ,KAAK,MACd,CACP,CAMA,EAAK,CACD,IAAK,qBACL,MAAO,UAAW,CAChB,IAAIA,EAAI,KAAK,YAAc,KAAK,WAChC,MAAO,CACL,MAAOA,EAAE,EAAE,CAAC,EAAIA,EAAE,EAAE,CAAC,GAAK,EAC1B,OAAQA,EAAE,EAAE,CAAC,EAAIA,EAAE,EAAE,CAAC,GAAK,CAC5B,CACP,CASA,EAAK,CACD,IAAK,qBACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAI,KAAK,cAAcH,CAAC,EAC5B,OAAOG,EAAI,OAAO,OAAO,CAAA,EAAIA,CAAC,EAAI,MACxC,CAQA,EAAK,CACD,IAAK,qBACL,MAAO,SAASH,EAAG,CACjB,IAAIG,EAAI,KAAK,cAAcH,CAAC,EAC5B,OAAOG,EAAI,OAAO,OAAO,CAAA,EAAIA,CAAC,EAAI,MACxC,CAMA,EAAK,CACD,IAAK,yBACL,MAAO,UAAW,CAChB,OAAO,IAAI,IAAI,KAAK,mBAAmB,CAC7C,CAMA,EAAK,CACD,IAAK,yBACL,MAAO,UAAW,CAChB,OAAO,IAAI,IAAI,KAAK,mBAAmB,CAC7C,CAMA,EAAK,CACD,IAAK,cACL,MAAO,UAAW,CAChB,OAAO,EAAE,CAAA,EAAI,KAAK,QAAQ,CAChC,CAOA,EAAK,CACD,IAAK,aACL,MAAO,SAASH,EAAG,CACjB,OAAO,KAAK,SAASA,CAAC,CAC5B,CASA,EAAK,CACD,IAAK,aACL,MAAO,SAASA,EAAGG,EAAG,CACpB,IAAIG,EAAI,EAAE,GAAI,KAAK,QAAQ,EAC3B,OAAO,KAAK,SAASN,CAAC,EAAIG,EAAG,GAAG,KAAK,QAAQ,EAAG,KAAK,qBAAqBG,CAAC,EAAG,KAAK,gBAAe,EAAI,IAC5G,CASA,EAAK,CACD,IAAK,gBACL,MAAO,SAASN,EAAGG,EAAG,CACpB,OAAO,KAAK,WAAWH,EAAGG,EAAE,KAAK,SAASH,CAAC,CAAC,CAAC,EAAG,IACtD,CAOA,EAAK,CACD,IAAK,cACL,MAAO,SAASA,EAAG,CACjB,IAAIG,EAAI,EAAE,GAAI,KAAK,QAAQ,EAC3B,OAAO,KAAK,SAAW,EAAE,EAAE,CAAA,EAAI,KAAK,QAAQ,EAAGH,CAAC,EAAG,GAAG,KAAK,QAAQ,EAAG,KAAK,qBAAqBG,CAAC,EAAG,KAAK,gBAAe,EAAI,IAClI,CAOA,EAAK,CACD,IAAK,SACL,MAAO,SAASH,EAAG,CACjB,IAAIG,EAAI,KAAK,MAAOG,EAAI,KAAK,OAC7B,GAAI,KAAK,MAAQ,KAAK,UAAU,YAAa,KAAK,OAAS,KAAK,UAAU,aAAc,KAAK,WAAa,GAAE,EAAI,KAAK,QAAU,EAC7H,GAAI,KAAK,SAAS,sBAAuB,KAAK,MAAQ,MACjD,OAAM,IAAI,MAAM,iHAAiH,EACxI,GAAI,KAAK,SAAW,EAClB,GAAI,KAAK,SAAS,sBAAuB,KAAK,OAAS,MAClD,OAAM,IAAI,MAAM,kHAAkH,EACzI,GAAI,CAACN,GAAKG,IAAM,KAAK,OAASG,IAAM,KAAK,OAAQ,OAAO,KACxD,QAASD,KAAK,KAAK,SAAU,CAC3B,IAAIE,EAAI,KAAK,SAASF,CAAC,EACvBE,EAAE,MAAM,MAAQ,KAAK,MAAQ,KAAMA,EAAE,MAAM,OAAS,KAAK,OAAS,IAC1E,CACM,QAASE,KAAK,KAAK,eACjB,KAAK,SAASA,CAAC,EAAE,aAAa,QAAS,KAAK,MAAQ,KAAK,WAAa,IAAI,EAAG,KAAK,SAASA,CAAC,EAAE,aAAa,SAAU,KAAK,OAAS,KAAK,WAAa,IAAI,EAAG,KAAK,aAAe,GAAK,KAAK,eAAeA,CAAC,EAAE,MAAM,KAAK,WAAY,KAAK,UAAU,EACpP,QAASK,KAAK,KAAK,cAAe,CAChC,KAAK,SAASA,CAAC,EAAE,aAAa,QAAS,KAAK,MAAQ,KAAK,WAAa,IAAI,EAAG,KAAK,SAASA,CAAC,EAAE,aAAa,SAAU,KAAK,OAAS,KAAK,WAAa,IAAI,EACzJ,IAAIN,EAAI,KAAK,cAAcM,CAAC,EAC5B,GAAIN,EAAE,SAAS,EAAG,EAAG,KAAK,MAAQ,KAAK,WAAY,KAAK,OAAS,KAAK,UAAU,EAAG,KAAK,cAAc,IAAIM,CAAC,EAAG,CAC5G,IAAIF,EAAI,KAAK,SAASE,CAAC,EACvBF,GAAKJ,EAAE,cAAcI,CAAC,CAChC,CACA,CACM,OAAO,KAAK,KAAK,QAAQ,EAAG,IAClC,CAMA,EAAK,CACD,IAAK,QACL,MAAO,UAAW,CAChB,OAAO,KAAK,KAAK,aAAa,EAAG,KAAK,cAAc,MAAM,gBAAgB,sBAAsB,YAAa,IAAI,EAAG,KAAK,cAAc,MAAM,MAAM,sBAAsB,gBAAgB,EAAG,KAAK,cAAc,MAAM,gBAAgB,sBAAsB,YAAa,IAAI,EAAG,KAAK,cAAc,MAAM,MAAM,sBAAsB,gBAAgB,EAAG,KAAK,cAAc,WAAW,MAAM,sBAAsB,gBAAgB,EAAG,KAAK,eAAe,OAAO,UAAU,EAAG,EAAG,KAAK,MAAO,KAAK,MAAM,EAAG,KAAK,eAAe,OAAO,UAAU,EAAG,EAAG,KAAK,MAAO,KAAK,MAAM,EAAG,KAAK,eAAe,WAAW,UAAU,EAAG,EAAG,KAAK,MAAO,KAAK,MAAM,EAAG,KAAK,KAAK,YAAY,EAAG,IACtpB,CAUA,EAAK,CACD,IAAK,UACL,MAAO,SAASZ,EAAG,CACjB,IAAIG,EAAI,KAAMG,EAA0BN,GAAE,iBAAoB,OAA8BA,GAAE,eAAiB,GAAIK,EAA0BL,GAAE,WAAc,OAASA,EAAE,SAAW,GAAIO,EAAI,CAACP,GAAK,CAACA,EAAE,aACpM,GAAIO,EACF,KAAK,mBAAoB,KAAK,iBAAgB,EAAI,KAAK,MAAM,YAAY,SAASM,EAAG,CACnF,OAAOV,EAAE,QAAQU,CAAC,CACnB,CAAA,EAAG,KAAK,MAAM,YAAY,SAASA,EAAG,CACrC,OAAOV,EAAE,QAAQU,CAAC,CAC5B,CAAS,MACE,CACH,QAASJ,EAAGK,EAAGN,IAAMC,EAAIT,EAAE,gBAAkB,MAAQS,IAAM,OAAS,OAASA,EAAE,QAAU,CAAE,EAAEG,EAAI,EAAGF,EAA0BF,GAAE,QAAW,EAAGI,EAAIF,EAAGE,IAAK,CACxJ,IAAIO,EAAIX,EAAEI,CAAC,EACX,GAAI,KAAK,WAAWO,CAAC,EAAGb,EAAG,CACzB,IAAIe,EAAI,KAAK,iBAAiBF,CAAC,EAC/B,GAAIE,IAAM,OAAQ,MAAM,IAAI,MAAM,gBAAgB,OAAOF,EAAG,oBAAoB,CAAC,EACjF,KAAK,iBAAiBA,EAAG,KAAK,YAAYA,CAAC,EAAGE,CAAC,CAC3D,CACA,CACQ,QAASV,GAAKX,GAAK,OAASc,EAAId,EAAE,gBAAkB,MAAQc,IAAM,OAAS,OAASA,EAAE,QAAU,CAAA,EAAIU,EAAI,EAAGG,EAAIhB,EAAE,OAAQa,EAAIG,EAAGH,IAAK,CACnI,IAAIK,EAAIlB,EAAEa,CAAC,EACX,GAAI,KAAK,WAAWK,CAAC,EAAGvB,EAAG,CACzB,IAAI6B,EAAI,KAAK,iBAAiBN,CAAC,EAC/B,GAAIM,IAAM,OAAQ,MAAM,IAAI,MAAM,gBAAgB,OAAON,EAAG,oBAAoB,CAAC,EACjF,KAAK,iBAAiBA,EAAG,KAAK,YAAYA,CAAC,EAAGM,CAAC,CAC3D,CACA,CACA,CACM,OAAQ5B,GAAK,CAACD,KAAO,KAAK,cAAgB,IAAKD,EAAI,KAAK,eAAc,EAAK,KAAK,OAAQ,EAAE,IAChG,CAQA,EAAK,CACD,IAAK,iBACL,MAAO,UAAW,CAChB,IAAIL,EAAI,KACR,OAAO,KAAK,cAAgB,KAAK,YAAc,sBAAsB,UAAW,CAC9EA,EAAE,OAAQ,CACX,CAAA,GAAI,IACX,CASA,EAAK,CACD,IAAK,kBACL,MAAO,SAASA,EAAG,CACjB,OAAO,KAAK,QAAQ,EAAE,EAAE,GAAIA,CAAC,EAAG,GAAI,CAClC,SAAU,EAClB,CAAO,CAAC,CACR,CASA,EAAK,CACD,IAAK,yBACL,MAAO,SAASA,EAAGG,EAAG,CACpB,IAAIG,EAAI,KAAK,OAAO,SAAQ,EAAID,EAAIC,EAAE,MAAOC,EAAID,EAAE,MAAOG,EAAIH,EAAE,EAAGQ,EAAIR,EAAE,EAAGE,EAAI,KAAK,SAAUI,EAAIJ,EAAE,eAAgBE,EAAIF,EAAE,eAC3H,OAAOE,GAAK,WAAaP,EAAI,KAAK,IAAIA,EAAGO,CAAC,GAAI,OAAOE,GAAK,WAAaT,EAAI,KAAK,IAAIA,EAAGS,CAAC,GACxF,IAAIO,EAAIhB,EAAIE,EAAGgB,EAAI,CACjB,EAAG,KAAK,MAAQ,EAChB,EAAG,KAAK,OAAS,CACzB,EAASV,EAAI,KAAK,sBAAsBX,CAAC,EAAGwB,EAAI,KAAK,sBAAsBH,CAAC,EACtE,MAAO,CACL,MAAOd,EACP,GAAII,EAAE,EAAIa,EAAE,IAAM,EAAIL,GAAKV,EAC3B,GAAIE,EAAE,EAAIa,EAAE,IAAM,EAAIL,GAAKL,EAC3B,MAAOX,CACR,CACP,CAOA,EAAK,CACD,IAAK,gBACL,MAAO,UAAW,CAChB,IAAIH,EAAI,KAAK,sBAAsB,CACjC,EAAG,EACH,EAAG,CACX,CAAO,EAAGG,EAAI,KAAK,sBAAsB,CACjC,EAAG,KAAK,MACR,EAAG,CACX,CAAO,EAAGG,EAAI,KAAK,sBAAsB,CACjC,EAAG,EACH,EAAG,KAAK,MAChB,CAAO,EACD,MAAO,CACL,GAAIN,EAAE,EACN,GAAIA,EAAE,EACN,GAAIG,EAAE,EACN,GAAIA,EAAE,EACN,OAAQA,EAAE,EAAIG,EAAE,CACjB,CACP,CAQA,EAAK,CACD,IAAK,wBACL,MAAO,SAASN,EAAG,CACjB,IAAIG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,CAAE,EAAEG,EAAI,CAAC,CAACH,EAAE,aAAe,CAAC,CAACA,EAAE,oBAAsB,CAAC,CAACA,EAAE,gBAAiBE,EAAIF,EAAE,OAASA,EAAE,OAASG,EAAI,GAAGH,EAAE,aAAe,KAAK,OAAO,SAAQ,EAAIA,EAAE,oBAAsB,KAAK,cAAe,EAAEA,EAAE,iBAAmB,KAAK,mBAAoB,EAAEA,EAAE,SAAW,KAAK,gBAAiB,CAAA,EAAI,KAAK,OAAQI,EAAI,GAAGF,EAAGL,CAAC,EAC1X,MAAO,CACL,GAAI,EAAIO,EAAE,GAAK,KAAK,MAAQ,EAC5B,GAAI,EAAIA,EAAE,GAAK,KAAK,OAAS,CAC9B,CACP,CAQA,EAAK,CACD,IAAK,wBACL,MAAO,SAASP,EAAG,CACjB,IAAIG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,CAAE,EAAEG,EAAI,CAAC,CAACH,EAAE,aAAe,CAAC,CAACA,EAAE,oBAAsB,CAACA,EAAE,gBAAiBE,EAAIF,EAAE,OAASA,EAAE,OAASG,EAAI,GAAGH,EAAE,aAAe,KAAK,OAAO,SAAQ,EAAIA,EAAE,oBAAsB,KAAK,cAAe,EAAEA,EAAE,iBAAmB,KAAK,mBAAoB,EAAEA,EAAE,SAAW,KAAK,gBAAiB,EAAE,EAAE,EAAI,KAAK,UAAWI,EAAI,GAAGF,EAAG,CAC7X,EAAGL,EAAE,EAAI,KAAK,MAAQ,EAAI,EAC1B,EAAG,EAAIA,EAAE,EAAI,KAAK,OAAS,CACnC,CAAO,EACD,OAAO,MAAMO,EAAE,CAAC,IAAMA,EAAE,EAAI,GAAI,MAAMA,EAAE,CAAC,IAAMA,EAAE,EAAI,GAAIA,CAC/D,CAWA,EAAK,CACD,IAAK,kBACL,MAAO,SAASP,EAAG,CACjB,IAAIG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,CAAE,EAC3E,OAAO,KAAK,sBAAsB,QAAQ,KAAK,sBAAsBH,EAAGG,CAAC,CAAC,CAChF,CAWA,EAAK,CACD,IAAK,kBACL,MAAO,SAASH,EAAG,CACjB,IAAIG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,CAAE,EAC3E,OAAO,KAAK,sBAAsB,KAAK,sBAAsBH,CAAC,EAAGG,CAAC,CACxE,CAKA,EAAK,CACD,IAAK,0BACL,MAAO,UAAW,CAChB,IAAIH,EAAI,CACN,EAAG,EACH,EAAG,CACJ,EAAEG,EAAI,CACL,EAAG,EACH,EAAG,CACX,EAASG,EAAI,KAAK,KAAK,KAAK,IAAIN,EAAE,EAAIG,EAAE,EAAG,CAAC,EAAI,KAAK,IAAIH,EAAE,EAAIG,EAAE,EAAG,CAAC,CAAC,EAAGE,EAAI,KAAK,gBAAgBL,CAAC,EAAGO,EAAI,KAAK,gBAAgBJ,CAAC,EAAGM,EAAI,KAAK,KAAK,KAAK,IAAIJ,EAAE,EAAIE,EAAE,EAAG,CAAC,EAAI,KAAK,IAAIF,EAAE,EAAIE,EAAE,EAAG,CAAC,CAAC,EAC1L,OAAOE,EAAIH,CACjB,CAMA,EAAK,CACD,IAAK,UACL,MAAO,UAAW,CAChB,OAAO,KAAK,UAClB,CAMA,EAAK,CACD,IAAK,gBACL,MAAO,UAAW,CAChB,OAAO,KAAK,UAClB,CAMA,EAAK,CACD,IAAK,gBACL,MAAO,SAASN,EAAG,CACjB,OAAO,KAAK,WAAaA,EAAG,KAAK,eAAgB,EAAE,IACzD,CAMA,EAAK,CACD,IAAK,OACL,MAAO,UAAW,CAChB,KAAK,KAAK,MAAM,EAAG,KAAK,mBAAoB,EAAE,KAAK,qBAAsB,EAAE,OAAO,oBAAoB,SAAU,KAAK,gBAAgB,YAAY,EAAG,KAAK,YAAY,KAAM,EAAE,KAAK,YAAY,KAAM,EAAE,KAAK,oBAAmB,EAAI,KAAK,aAAc,EAAE,KAAK,WAAY,EAAE,KAAK,cAAgB,GAAI,KAAK,cAAgB,CAAA,EAAI,KAAK,iBAAiB,MAAK,EAAI,KAAK,cAAgB,qBAAqB,KAAK,WAAW,EAAG,KAAK,YAAc,MAAO,KAAK,8BAAgC,qBAAqB,KAAK,2BAA2B,EAAG,KAAK,4BAA8B,MACljB,QAASA,EAAI,KAAK,UAAWA,EAAE,YAAcA,EAAE,YAAYA,EAAE,UAAU,EACvE,QAASG,KAAK,KAAK,aACjB,KAAK,aAAaA,CAAC,EAAE,KAAM,EAC7B,QAASG,KAAK,KAAK,kBACjB,KAAK,kBAAkBA,CAAC,EAAE,KAAM,EAClC,QAASD,KAAK,KAAK,aACjB,KAAK,aAAaA,CAAC,EAAE,KAAM,EAC7B,KAAK,aAAe,CAAA,EAAI,KAAK,kBAAoB,GAAI,KAAK,aAAe,CAAE,EAC3E,QAASE,KAAK,KAAK,SACjB,KAAK,UAAUA,CAAC,EAClB,KAAK,eAAiB,CAAA,EAAI,KAAK,cAAgB,GAAI,KAAK,SAAW,CAAE,CAC3E,CASA,EAAK,CACD,IAAK,YACL,MAAO,UAAW,CAChB,IAAIP,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,EAAGG,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAS,UAAU,CAAC,EAAI,KAAK,OAAO,MAC7J,OAAOH,EAAI,KAAK,SAAS,wBAAwBG,CAAC,GAAK,KAAK,WAAW,oBAAoB,IAAM,YAAcA,EAAI,KAAK,qBAAuB,EACrJ,CAeA,EAAK,CACD,IAAK,cACL,MAAO,UAAW,CAChB,IAAIH,EAAI,CAAE,EACV,QAASG,KAAK,KAAK,SAAU,KAAK,SAASA,CAAC,YAAa,oBAAsBH,EAAEG,CAAC,EAAI,KAAK,SAASA,CAAC,GACrG,OAAOH,CACb,CACA,CAAG,CAAC,CACJ,EAAE,EAAE,EAAG,GAAK,GAAI,GAAK,CAAE,EAAE,GACzB,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GACf,GAAK,EACL,SAASE,EAAEF,EAAG,CACZ,OAAO,OAAOA,GAAK,UAAY,MAAMA,CAAC,EAAI,EAAIA,CAClD,CACE,SAASI,EAAEJ,EAAGG,EAAG,CACf,IAAIG,EAAI,CAAA,EAAID,EAAI,SAASS,EAAG,CAC1B,OAAO,OAAOA,EAAK,IAAcX,EAAIW,CACtC,EACD,OAAOX,GAAK,aAAeE,EAAIF,GAC/B,IAAII,EAAI,SAASO,EAAG,CAClB,OAAOT,EAAES,EAAEd,CAAC,CAAC,CACd,EAAES,EAAI,UAAW,CAChB,OAAOJ,EAAE,MAAM,CAChB,EACD,OAAO,OAAOL,GAAK,UAAYM,EAAE,eAAiBC,EAAGD,EAAE,UAAY,SAASQ,EAAG,EAAG,CAChF,OAAOP,EAAEO,EAAE,kBAAkB,CAAC,CAAC,CAChC,EAAER,EAAE,UAAY,SAASQ,EAAG,EAAG,CAC9B,OAAOP,EAAE,CAAC,CACX,GAAI,OAAOP,GAAK,YAAcM,EAAE,eAAiB,UAAW,CAC3D,MAAM,IAAI,MACR,mEACD,CACF,EAAEA,EAAE,UAAY,SAASQ,EAAG,EAAG,CAC9B,OAAOT,EACLL,EAAE,EAAGc,EAAE,kBAAkB,CAAC,CAAC,CAC5B,CACF,EAAER,EAAE,UAAY,SAASQ,EAAG,EAAG,CAC9B,OAAOT,EAAEL,EAAEc,EAAG,CAAC,CAAC,CACjB,IAAKR,EAAE,eAAiBG,EAAGH,EAAE,UAAYG,EAAGH,EAAE,UAAYG,GAAIH,CACnE,CACE,SAASL,EAAED,EAAGG,EAAG,CACf,IAAIG,EAAI,CAAA,EAAID,EAAI,SAASS,EAAG,CAC1B,OAAO,OAAOA,EAAK,IAAcX,EAAIW,CACtC,EACD,OAAOX,GAAK,aAAeE,EAAIF,GAC/B,IAAII,EAAI,SAASO,EAAG,CAClB,OAAOT,EAAES,EAAEd,CAAC,CAAC,CACd,EAAES,EAAI,UAAW,CAChB,OAAOJ,EAAE,MAAM,CAChB,EACD,OAAO,OAAOL,GAAK,UAAYM,EAAE,eAAiBC,EAAGD,EAAE,UAAY,SAASQ,EAAG,EAAG,CAChF,OAAOP,EAAEO,EAAE,kBAAkB,CAAC,CAAC,CAChC,EAAER,EAAE,UAAY,SAASQ,EAAG,EAAG,CAC9B,OAAOP,EAAE,CAAC,CACX,EAAED,EAAE,iBAAmBA,EAAE,UAAWA,EAAE,iBAAmBA,EAAE,WAAa,OAAON,GAAK,YAAcM,EAAE,eAAiB,UAAW,CAC/H,MAAM,IAAI,MACR,mEACD,CACF,EAAEA,EAAE,UAAY,SAASQ,EAAG,EAAG,CAC9B,IAAIF,EAAIE,EAAE,YAAY,CAAC,EACvB,OAAOT,EACLL,EACE,EACAc,EAAE,kBAAkB,CAAC,EACrBF,EAAE,CAAC,EACHA,EAAE,CAAC,EACHE,EAAE,kBAAkBF,EAAE,CAAC,CAAC,EACxBE,EAAE,kBAAkBF,EAAE,CAAC,CAAC,EACxBE,EAAE,aAAa,CAAC,CAC1B,CACO,CACP,EAAOR,EAAE,UAAY,SAASQ,EAAG,EAAGF,EAAGF,EAAGS,EAAGE,EAAGV,EAAG,CAC7C,OAAON,EAAEL,EAAEc,EAAG,EAAGF,EAAGF,EAAGS,EAAGE,EAAGV,CAAC,CAAC,CACrC,EAAOL,EAAE,iBAAmB,SAASQ,EAAG,EAAGF,EAAGF,EAAG,CAC3C,OAAOL,EAAEL,EAAEc,EAAG,EAAGF,EAAGF,CAAC,CAAC,CACvB,EAAEJ,EAAE,iBAAmB,SAASQ,EAAG,EAAG,CACrC,OAAOT,EAAEL,EAAEc,EAAG,CAAC,CAAC,CACjB,IAAKR,EAAE,eAAiBG,EAAGH,EAAE,UAAYG,EAAGH,EAAE,UAAYG,EAAGH,EAAE,iBAAmBG,GAAIH,CAC3F,CACE,OAAO,GAAG,sBAAwBF,EAAG,GAAG,sBAAwBH,EAAG,GAAG,uBAAyB,SAASD,EAAG,CACzG,OAAOC,EAAED,EAAGE,CAAC,CACjB,EAAK,EACL,CACA,IAAI,GAAI,GACR,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GACf,GAAK,EACL,IAAIA,EAAI,EAAGE,EAAI,EAAGH,EAAI,EAAGD,EAAI,EAAGG,EAAI,EAAGG,EAAI,EAAGD,EAAI,EAAGE,EAAI,EAAGE,EAAI,EAAGK,EAAI,EAAG,EAAI,EAAGF,EAAI,EAAGF,EAAI,EAAGS,EAAI,EAAGE,EAAI,EAAGV,EAAI,EAAGa,EAAI,EAAGG,EAAI,EAAGE,EAAI,EAAGM,EAAI,EAAGtB,EAAI,EAAGE,EAAI,EAAGgB,EAAI,EAAGR,EAAI,GAAID,EAAI,EAAGG,EAAI,EAAGY,EAAI,GAC/L,OAAO,GAAK,SAASL,EAAGhB,EAAGwB,EAAG,CAC5B,IAAIiB,EAAIlB,EAAGnB,EAAGH,GAAGmB,GAAGe,GAAGjB,GAAGhB,GAAG4B,GAAGM,GAAGL,GAAI/B,EAAE,OAAQ6C,GAAKrB,EAAE,OAAQgB,GAAKxB,EAAE,YAAaU,GAAIV,EAAE,eAAiBA,EAAE,eAAgB4B,GAAIZ,GAAGO,GAAID,GAAIe,GAAInB,EAAGT,EAAGX,GAAI,CAAE,EAC5J,IAAKV,EAAI,EAAGA,EAAI2B,GAAG3B,GAAKG,EACtBP,EAAEI,EAAIjB,CAAC,EAAIa,EAAEI,EAAInB,CAAC,EAAGe,EAAEI,EAAId,CAAC,EAAIU,EAAEI,EAAIpB,CAAC,EAAGgB,EAAEI,EAAInB,CAAC,EAAI,EAAGe,EAAEI,EAAIpB,CAAC,EAAI,EACrE,GAAIgC,EAAE,+BAAgC,CACpC,IAAK4B,GAAK,EAAGxC,EAAI,EAAGA,EAAI2B,GAAG3B,GAAKG,EAC9BqC,IAAM5C,EAAEI,EAAIf,CAAC,EACfuD,IAAMb,GAAIxB,CAChB,CACI,GAAIS,EAAE,kBAAmB,CACvB,IAAI0B,EAAK,IAAOI,EAAK,KAAQlB,GAAI,IAAOD,GAAI,KAAQV,GAAGgC,GAAIgB,GAC3D,IAAK7D,EAAI,EAAGA,EAAI2B,GAAG3B,GAAKG,EACtBmC,EAAK,KAAK,IAAIA,EAAI1C,EAAEI,EAAIlB,CAAC,CAAC,EAAG4D,EAAK,KAAK,IAAIA,EAAI9C,EAAEI,EAAIlB,CAAC,CAAC,EAAG0C,GAAI,KAAK,IAAIA,GAAG5B,EAAEI,EAAIhB,CAAC,CAAC,EAAGuC,GAAI,KAAK,IAAIA,GAAG3B,EAAEI,EAAIhB,CAAC,CAAC,EAC/G,IAAImE,GAAKT,EAAKJ,EAAImB,GAAKlC,GAAIC,GAC3B,IAAK2B,GAAKM,IAAMjC,KAAM2B,GAAKM,IAAM,EAAGlC,GAAIC,GAAI2B,KAAOb,IAAOmB,GAAKN,IAAM,EAAGT,EAAKJ,EAAKmB,IAAK/C,GAAE,EAAIX,CAAC,EAAI,GAAIW,GAAE,EAAIT,CAAC,GAAKqC,EAAKI,GAAM,EAAGhC,GAAE,EAAInB,CAAC,GAAKiC,GAAID,IAAK,EAAGb,GAAE,EAAIN,CAAC,EAAI,KAAK,IAAIsC,EAAKJ,EAAIf,GAAIC,EAAC,EAAGd,GAAE,EAAIH,CAAC,EAAI,GAAIG,GAAE,EAAID,CAAC,EAAI,GAAIC,GAAE,EAAIK,CAAC,EAAI,EAAGL,GAAE,EAAIjB,CAAC,EAAI,EAAGiB,GAAE,EAAIf,CAAC,EAAI,EAAG0C,EAAK,EAAGrC,EAAI,EAAGA,EAAI2B,GAAG3B,GAAKG,EAC9R,IAAKgB,EAAI,EAAG0C,GAAKlD,IACf,GAAID,GAAES,EAAIV,CAAC,GAAK,EAAG,CACjBb,EAAEI,EAAIlB,CAAC,EAAI4B,GAAES,EAAIlB,CAAC,EAAIL,EAAEI,EAAIhB,CAAC,EAAI0B,GAAES,EAAI5B,CAAC,EAAIsB,GAAIH,GAAES,EAAIV,CAAC,EAAII,GAAIH,GAAES,EAAIV,CAAC,EAAIJ,EAAIT,EAAEI,EAAIhB,CAAC,EAAI0B,GAAES,EAAI5B,CAAC,EAAIsB,GAAIH,GAAES,EAAIV,CAAC,EAAIJ,EAAI,EAAIQ,GAAIH,GAAES,EAAIV,CAAC,EAAIJ,EAAI,EAAGK,GAAES,EAAI1B,CAAC,GAAKiB,GAAES,EAAI1B,CAAC,EAAIiB,GAAES,EAAIJ,CAAC,EAAInB,EAAEI,EAAIlB,CAAC,EAAIc,EAAEI,EAAIf,CAAC,IAAMyB,GAAES,EAAIJ,CAAC,EAAInB,EAAEI,EAAIf,CAAC,GAAIyB,GAAES,EAAIxB,CAAC,GAAKe,GAAES,EAAIxB,CAAC,EAAIe,GAAES,EAAIJ,CAAC,EAAInB,EAAEI,EAAIhB,CAAC,EAAIY,EAAEI,EAAIf,CAAC,IAAMyB,GAAES,EAAIJ,CAAC,EAAInB,EAAEI,EAAIf,CAAC,GAAIyB,GAAES,EAAIJ,CAAC,GAAKnB,EAAEI,EAAIf,CAAC,EAAGkC,EAAIN,GAC3U,QACD,SAAUH,GAAES,EAAIpB,CAAC,EAAI,EAAG,CACvBW,GAAES,EAAIpB,CAAC,EAAIC,EACX,KACZ,KAAiB,CACL,GAAIU,GAAES,EAAIV,CAAC,EAAI4B,EAAKhC,EAAGP,GAAIY,GAAES,EAAIf,CAAC,EAAI,EAAGsB,GAAIhB,GAAES,EAAIV,CAAC,EAAGC,GAAEgB,GAAI3B,CAAC,EAAI,GAAIW,GAAEgB,GAAIzB,CAAC,EAAIS,GAAES,EAAIlB,CAAC,EAAIH,GAAGY,GAAEgB,GAAInC,CAAC,EAAImB,GAAES,EAAI5B,CAAC,EAAIO,GAAGY,GAAEgB,GAAItB,CAAC,EAAIN,GAAGY,GAAEgB,GAAInB,CAAC,EAAImB,GAAIrB,EAAGK,GAAEgB,GAAIjB,CAAC,EAAI,GAAIC,GAAEgB,GAAIX,CAAC,EAAI,EAAGL,GAAEgB,GAAIjC,CAAC,EAAI,EAAGiB,GAAEgB,GAAI/B,CAAC,EAAI,EAAG+B,IAAKrB,EAAGK,GAAEgB,GAAI3B,CAAC,EAAI,GAAIW,GAAEgB,GAAIzB,CAAC,EAAIS,GAAES,EAAIlB,CAAC,EAAIH,GAAGY,GAAEgB,GAAInC,CAAC,EAAImB,GAAES,EAAI5B,CAAC,EAAIO,GAAGY,GAAEgB,GAAItB,CAAC,EAAIN,GAAGY,GAAEgB,GAAInB,CAAC,EAAImB,GAAIrB,EAAGK,GAAEgB,GAAIjB,CAAC,EAAI,GAAIC,GAAEgB,GAAIX,CAAC,EAAI,EAAGL,GAAEgB,GAAIjC,CAAC,EAAI,EAAGiB,GAAEgB,GAAI/B,CAAC,EAAI,EAAG+B,IAAKrB,EAAGK,GAAEgB,GAAI3B,CAAC,EAAI,GAAIW,GAAEgB,GAAIzB,CAAC,EAAIS,GAAES,EAAIlB,CAAC,EAAIH,GAAGY,GAAEgB,GAAInC,CAAC,EAAImB,GAAES,EAAI5B,CAAC,EAAIO,GAAGY,GAAEgB,GAAItB,CAAC,EAAIN,GAAGY,GAAEgB,GAAInB,CAAC,EAAImB,GAAIrB,EAAGK,GAAEgB,GAAIjB,CAAC,EAAI,GAAIC,GAAEgB,GAAIX,CAAC,EAAI,EAAGL,GAAEgB,GAAIjC,CAAC,EAAI,EAAGiB,GAAEgB,GAAI/B,CAAC,EAAI,EAAG+B,IAAKrB,EAAGK,GAAEgB,GAAI3B,CAAC,EAAI,GAAIW,GAAEgB,GAAIzB,CAAC,EAAIS,GAAES,EAAIlB,CAAC,EAAIH,GAAGY,GAAEgB,GAAInC,CAAC,EAAImB,GAAES,EAAI5B,CAAC,EAAIO,GAAGY,GAAEgB,GAAItB,CAAC,EAAIN,GAAGY,GAAEgB,GAAInB,CAAC,EAAIG,GAAES,EAAIZ,CAAC,EAAGG,GAAEgB,GAAIjB,CAAC,EAAI,GAAIC,GAAEgB,GAAIX,CAAC,EAAI,EAAGL,GAAEgB,GAAIjC,CAAC,EAAI,EAAGiB,GAAEgB,GAAI/B,CAAC,EAAI,EAAG0C,GAAM,EAAGzC,EAAEc,GAAES,EAAIpB,CAAC,EAAIjB,CAAC,EAAI4B,GAAES,EAAIlB,CAAC,EAAIL,EAAEc,GAAES,EAAIpB,CAAC,EAAIf,CAAC,EAAI0B,GAAES,EAAI5B,CAAC,EAAIsB,GAAIH,GAAES,EAAIV,CAAC,EAAII,GAAIH,GAAES,EAAIV,CAAC,EAAIJ,EAAIT,EAAEc,GAAES,EAAIpB,CAAC,EAAIf,CAAC,EAAI0B,GAAES,EAAI5B,CAAC,EAAIsB,GAAIH,GAAES,EAAIV,CAAC,EAAIJ,EAAI,EAAIQ,GAAIH,GAAES,EAAIV,CAAC,EAAIJ,EAAI,EAAGK,GAAES,EAAIJ,CAAC,EAAInB,EAAEc,GAAES,EAAIpB,CAAC,EAAId,CAAC,EAAGyB,GAAES,EAAI1B,CAAC,EAAIG,EAAEc,GAAES,EAAIpB,CAAC,EAAIjB,CAAC,EAAG4B,GAAES,EAAIxB,CAAC,EAAIC,EAAEc,GAAES,EAAIpB,CAAC,EAAIf,CAAC,EAAG0B,GAAEG,GAAId,CAAC,EAAIW,GAAES,EAAIpB,CAAC,EAAGW,GAAES,EAAIpB,CAAC,EAAI,GAAIH,EAAEI,EAAIlB,CAAC,EAAI4B,GAAES,EAAIlB,CAAC,EAAIL,EAAEI,EAAIhB,CAAC,EAAI0B,GAAES,EAAI5B,CAAC,EAAIsD,GAAKnC,GAAES,EAAIV,CAAC,EAAIoC,GAAKnC,GAAES,EAAIV,CAAC,EAAIJ,EAAIT,EAAEI,EAAIhB,CAAC,EAAI0B,GAAES,EAAI5B,CAAC,EAAIsD,GAAKnC,GAAES,EAAIV,CAAC,EAAIJ,EAAI,EAAIwC,GAAKnC,GAAES,EAAIV,CAAC,EAAIJ,EAAI,EAAGQ,KAAMgC,GAC1nC,GAAIgB,KAAM,CACR1C,EAAIN,GACJ,QAChB,KAAqB,CACLgD,GAAKlD,EACL,KAChB,CACYD,GAAEmC,GAAK9C,CAAC,EAAIC,EACZ,KACZ,CACA,CACI,GAAIY,EAAE,kBACJ,IAAKgB,GAAIhB,EAAE,aAAcZ,EAAI,EAAGA,EAAI2B,GAAG3B,GAAKG,EAC1C,IAAKgB,EAAI,IACP,GAAIT,GAAES,EAAIV,CAAC,GAAK,EACd,GAAIqB,EAAI,KAAK,IACXlC,EAAEI,EAAIlB,CAAC,EAAI4B,GAAES,EAAI1B,CAAC,EAClB,CACD,EAAG,KAAK,IACPG,EAAEI,EAAIhB,CAAC,EAAI0B,GAAES,EAAIxB,CAAC,EAClB,CACd,EAAeqC,GAAItB,GAAES,EAAIf,CAAC,EAAG,EAAI4B,GAAIA,GAAIF,EAAIR,GAAG,CAClC,GAAIa,GAAKvC,EAAEI,EAAIlB,CAAC,EAAI4B,GAAES,EAAI1B,CAAC,EAAGyC,GAAKtC,EAAEI,EAAIhB,CAAC,EAAI0B,GAAES,EAAIxB,CAAC,EAAGyC,KAAO,GAAKN,EAAI,GAAKT,EAAIO,GAAIhC,EAAEI,EAAIf,CAAC,EAAIyB,GAAES,EAAIJ,CAAC,EAAIe,EAAGlC,EAAEI,EAAInB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEI,EAAIpB,CAAC,GAAKsD,GAAKb,GAAKS,EAAI,IAAMT,EAAI,CAACO,GAAIhC,EAAEI,EAAIf,CAAC,EAAIyB,GAAES,EAAIJ,CAAC,EAAI,KAAK,KAAKe,CAAC,EAAGlC,EAAEI,EAAInB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEI,EAAIpB,CAAC,GAAKsD,GAAKb,GAAKS,EAAI,IAAMT,EAAIO,GAAIhC,EAAEI,EAAIf,CAAC,EAAIyB,GAAES,EAAIJ,CAAC,EAAIe,EAAGlC,EAAEI,EAAInB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEI,EAAIpB,CAAC,GAAKsD,GAAKb,GAAIF,EAAIT,GAAES,EAAIZ,CAAC,EAAGY,EAAI,EAAG,MAClW,QACd,KAAmB,CACLA,EAAIT,GAAES,EAAIV,CAAC,EACX,QACd,KACe,CACH,GAAIsB,GAAIrB,GAAES,EAAIpB,CAAC,EAAGgC,IAAK,GAAKA,KAAM/B,IAAMmC,GAAKvC,EAAEI,EAAIlB,CAAC,EAAIc,EAAEmC,GAAIjD,CAAC,EAAGoD,GAAKtC,EAAEI,EAAIhB,CAAC,EAAIY,EAAEmC,GAAI/C,CAAC,EAAG8C,EAAIK,GAAKA,GAAKD,GAAKA,GAAIE,KAAO,GAAKN,EAAI,GAAKT,EAAIO,GAAIhC,EAAEI,EAAIf,CAAC,EAAIW,EAAEmC,GAAI9C,CAAC,EAAI6C,EAAGlC,EAAEI,EAAInB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEI,EAAIpB,CAAC,GAAKsD,GAAKb,GAAKS,EAAI,IAAMT,EAAI,CAACO,GAAIhC,EAAEI,EAAIf,CAAC,EAAIW,EAAEmC,GAAI9C,CAAC,EAAI,KAAK,KAAK6C,CAAC,EAAGlC,EAAEI,EAAInB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEI,EAAIpB,CAAC,GAAKsD,GAAKb,GAAKS,EAAI,IAAMT,EAAIO,GAAIhC,EAAEI,EAAIf,CAAC,EAAIW,EAAEmC,GAAI9C,CAAC,EAAI6C,EAAGlC,EAAEI,EAAInB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEI,EAAIpB,CAAC,GAAKsD,GAAKb,IAAKF,EAAIT,GAAES,EAAIZ,CAAC,EAAGY,EAAI,EAAG,MAC9Z,QACZ,KAEM,KAAKS,GAAIhB,EAAE,aAAcf,GAAI,EAAGA,GAAI8B,GAAG9B,IAAKM,EAC1C,IAAKa,GAAI,EAAGA,GAAInB,GAAGmB,IAAKb,EACtBgC,GAAKvC,EAAEC,GAAIf,CAAC,EAAIc,EAAEoB,GAAIlC,CAAC,EAAGoD,GAAKtC,EAAEC,GAAIb,CAAC,EAAIY,EAAEoB,GAAIhC,CAAC,EAAGoD,KAAO,IAAMN,EAAI,KAAK,KAAKK,GAAKA,GAAKD,GAAKA,EAAE,EAAItC,EAAEC,GAAIR,CAAC,EAAIO,EAAEoB,GAAI3B,CAAC,EAAGyC,EAAI,GAAKT,EAAIO,GAAIhC,EAAEC,GAAIZ,CAAC,EAAIW,EAAEoB,GAAI/B,CAAC,EAAI6C,EAAIA,EAAGlC,EAAEC,GAAIhB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEC,GAAIjB,CAAC,GAAKsD,GAAKb,EAAGzB,EAAEoB,GAAInC,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEoB,GAAIpC,CAAC,GAAKsD,GAAKb,GAAKS,EAAI,IAAMT,EAAI,IAAMO,GAAIhC,EAAEC,GAAIZ,CAAC,EAAIW,EAAEoB,GAAI/B,CAAC,EAAGW,EAAEC,GAAIhB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEC,GAAIjB,CAAC,GAAKsD,GAAKb,EAAGzB,EAAEoB,GAAInC,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEoB,GAAIpC,CAAC,GAAKsD,GAAKb,KAAOS,EAAI,KAAK,KAAKK,GAAKA,GAAKD,GAAKA,EAAE,EAAGJ,EAAI,IAAMT,EAAIO,GAAIhC,EAAEC,GAAIZ,CAAC,EAAIW,EAAEoB,GAAI/B,CAAC,EAAI6C,EAAIA,EAAGlC,EAAEC,GAAIhB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEC,GAAIjB,CAAC,GAAKsD,GAAKb,EAAGzB,EAAEoB,GAAInC,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEoB,GAAIpC,CAAC,GAAKsD,GAAKb,IAC9hB,IAAKK,GAAId,EAAE,QAAUA,EAAE,aAAcgB,GAAIhB,EAAE,aAAcZ,EAAI,EAAGA,EAAI2B,GAAG3B,GAAKG,EAC1EkB,EAAI,EAAGc,GAAKvC,EAAEI,EAAIlB,CAAC,EAAGoD,GAAKtC,EAAEI,EAAIhB,CAAC,EAAG8C,EAAI,KAAK,KAAK,KAAK,IAAIK,GAAI,CAAC,EAAI,KAAK,IAAID,GAAI,CAAC,CAAC,EAAGtB,EAAE,kBAAoBkB,EAAI,IAAMT,EAAIO,GAAIhC,EAAEI,EAAIf,CAAC,EAAIyC,IAAKI,EAAI,IAAMT,EAAIO,GAAIhC,EAAEI,EAAIf,CAAC,EAAIyC,GAAII,GAAIlC,EAAEI,EAAInB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEI,EAAIpB,CAAC,GAAKsD,GAAKb,EAC3N,IAAKO,GAAI,GAAKhB,EAAE,+BAAiC4B,GAAK,GAAI1B,GAAI,EAAGA,GAAI2B,GAAI3B,IAAKZ,EAC5EL,GAAIuB,EAAEN,GAAI,CAAC,EAAGE,GAAII,EAAEN,GAAItB,CAAC,EAAGM,GAAIsB,EAAEN,GAAIxB,CAAC,EAAG2D,GAAK,KAAK,IAAInD,GAAGc,EAAE,mBAAmB,EAAGuB,GAAKvC,EAAEC,GAAIf,CAAC,EAAIc,EAAEoB,GAAIlC,CAAC,EAAGoD,GAAKtC,EAAEC,GAAIb,CAAC,EAAIY,EAAEoB,GAAIhC,CAAC,EAAGoD,KAAO,IAAMN,EAAI,KAAK,KAAKK,GAAKA,GAAKD,GAAKA,EAAE,EAAItC,EAAEC,GAAIR,CAAC,EAAIO,EAAEoB,GAAI3B,CAAC,EAAGuB,EAAE,WAAaA,EAAE,+BAAiCkB,EAAI,IAAMT,EAAI,CAACO,GAAIqB,GAAK,KAAK,IAAI,EAAInB,CAAC,EAAIA,EAAIlC,EAAEC,GAAIZ,CAAC,GAAK6C,EAAI,IAAMT,EAAI,CAACO,GAAIqB,GAAK,KAAK,IAAI,EAAInB,CAAC,EAAIA,GAAKlB,EAAE,+BAAiCkB,EAAI,IAAMT,EAAI,CAACO,GAAIqB,GAAKrD,EAAEC,GAAIZ,CAAC,GAAK6C,EAAI,IAAMT,EAAI,CAACO,GAAIqB,MAAQnB,EAAI,KAAK,KAAK,KAAK,IAAIK,GAAI,CAAC,EAAI,KAAK,IAAID,GAAI,CAAC,CAAC,EAAGtB,EAAE,WAAaA,EAAE,+BAAiCkB,EAAI,IAAMT,EAAI,CAACO,GAAIqB,GAAK,KAAK,IAAI,EAAInB,CAAC,EAAIA,EAAIlC,EAAEC,GAAIZ,CAAC,GAAK6C,EAAI,IAAMT,EAAI,CAACO,GAAIqB,GAAK,KAAK,IAAI,EAAInB,CAAC,EAAIA,GAAKlB,EAAE,gCAAkCkB,EAAI,EAAGT,EAAI,CAACO,GAAIqB,GAAKrD,EAAEC,GAAIZ,CAAC,IAAM6C,EAAI,EAAGT,EAAI,CAACO,GAAIqB,KAAMnB,EAAI,IAAMlC,EAAEC,GAAIhB,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEC,GAAIjB,CAAC,GAAKsD,GAAKb,EAAGzB,EAAEoB,GAAInC,CAAC,GAAKsD,GAAKd,EAAGzB,EAAEoB,GAAIpC,CAAC,GAAKsD,GAAKb,GAC30B,IAAI2B,GAAIE,GAAIgB,GAAIb,GAAIW,GAAIJ,GACxB,GAAIxB,KAAO,GACT,IAAKpC,EAAI,EAAGA,EAAI2B,GAAG3B,GAAKG,EACtBP,EAAEI,EAAIN,CAAC,IAAM,IAAMsD,GAAK,KAAK,KAC3B,KAAK,IAAIpD,EAAEI,EAAInB,CAAC,EAAG,CAAC,EAAI,KAAK,IAAIe,EAAEI,EAAIpB,CAAC,EAAG,CAAC,CAC7C,EAAEoE,GAAK/B,IAAMrB,EAAEI,EAAInB,CAAC,EAAIe,EAAEI,EAAInB,CAAC,EAAIoC,EAAI+B,GAAIpD,EAAEI,EAAIpB,CAAC,EAAIgB,EAAEI,EAAIpB,CAAC,EAAIqC,EAAI+B,IAAKE,GAAKtD,EAAEI,EAAIf,CAAC,EAAI,KAAK,MAC7FW,EAAEI,EAAIjB,CAAC,EAAIa,EAAEI,EAAInB,CAAC,IAAMe,EAAEI,EAAIjB,CAAC,EAAIa,EAAEI,EAAInB,CAAC,IAAMe,EAAEI,EAAId,CAAC,EAAIU,EAAEI,EAAIpB,CAAC,IAAMgB,EAAEI,EAAId,CAAC,EAAIU,EAAEI,EAAIpB,CAAC,EACrG,EAAWsF,GAAK,KAAK,MACVtE,EAAEI,EAAIjB,CAAC,EAAIa,EAAEI,EAAInB,CAAC,IAAMe,EAAEI,EAAIjB,CAAC,EAAIa,EAAEI,EAAInB,CAAC,IAAMe,EAAEI,EAAId,CAAC,EAAIU,EAAEI,EAAIpB,CAAC,IAAMgB,EAAEI,EAAId,CAAC,EAAIU,EAAEI,EAAIpB,CAAC,EACrG,EAAY,EAAGyE,GAAK,GAAM,KAAK,IAAI,EAAIa,EAAE,GAAK,EAAI,KAAK,KAAKhB,EAAE,GAAIc,GAAKpE,EAAEI,EAAIlB,CAAC,EAAIc,EAAEI,EAAInB,CAAC,GAAKwE,GAAKzC,EAAE,UAAWhB,EAAEI,EAAIlB,CAAC,EAAIkF,GAAIJ,GAAKhE,EAAEI,EAAIhB,CAAC,EAAIY,EAAEI,EAAIpB,CAAC,GAAKyE,GAAKzC,EAAE,UAAWhB,EAAEI,EAAIhB,CAAC,EAAI4E,QAElL,KAAK5D,EAAI,EAAGA,EAAI2B,GAAG3B,GAAKG,EACtBP,EAAEI,EAAIN,CAAC,IAAM,IAAMwD,GAAKtD,EAAEI,EAAIf,CAAC,EAAI,KAAK,MACrCW,EAAEI,EAAIjB,CAAC,EAAIa,EAAEI,EAAInB,CAAC,IAAMe,EAAEI,EAAIjB,CAAC,EAAIa,EAAEI,EAAInB,CAAC,IAAMe,EAAEI,EAAId,CAAC,EAAIU,EAAEI,EAAIpB,CAAC,IAAMgB,EAAEI,EAAId,CAAC,EAAIU,EAAEI,EAAIpB,CAAC,EACrG,EAAWsF,GAAK,KAAK,MACVtE,EAAEI,EAAIjB,CAAC,EAAIa,EAAEI,EAAInB,CAAC,IAAMe,EAAEI,EAAIjB,CAAC,EAAIa,EAAEI,EAAInB,CAAC,IAAMe,EAAEI,EAAId,CAAC,EAAIU,EAAEI,EAAIpB,CAAC,IAAMgB,EAAEI,EAAId,CAAC,EAAIU,EAAEI,EAAIpB,CAAC,EACrG,EAAY,EAAGyE,GAAKzD,EAAEI,EAAIb,CAAC,EAAI,KAAK,IAAI,EAAI+E,EAAE,GAAK,EAAI,KAAK,KAAKhB,EAAE,GAAItD,EAAEI,EAAIb,CAAC,EAAI,KAAK,IAC7E,EACA,KAAK,KACHkE,IAAM,KAAK,IAAIzD,EAAEI,EAAInB,CAAC,EAAG,CAAC,EAAI,KAAK,IAAIe,EAAEI,EAAIpB,CAAC,EAAG,CAAC,IAAM,EAAI,KAAK,KAAKsE,EAAE,EACpF,CACA,EAAWc,GAAKpE,EAAEI,EAAIlB,CAAC,EAAIc,EAAEI,EAAInB,CAAC,GAAKwE,GAAKzC,EAAE,UAAWhB,EAAEI,EAAIlB,CAAC,EAAIkF,GAAIJ,GAAKhE,EAAEI,EAAIhB,CAAC,EAAIY,EAAEI,EAAIpB,CAAC,GAAKyE,GAAKzC,EAAE,UAAWhB,EAAEI,EAAIhB,CAAC,EAAI4E,IAC7H,MAAO,CAAE,CACb,EAAK,EACL,CACA,IAAI,GAAK,CAAE,EAAE,GACb,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GACf,GAAK,EACL,IAAI9E,EAAI,GAAIE,EAAI,EAChB,OAAO,GAAG,OAAS,SAASH,EAAG,CAC7BA,EAAIA,GAAK,CAAE,EACX,IAAID,EAAI,MAAM,UAAU,MAAM,KAAK,SAAS,EAAE,MAAM,CAAC,EAAGG,EAAGG,EAAGD,EAC9D,IAAKF,EAAI,EAAGE,EAAIL,EAAE,OAAQG,EAAIE,EAAGF,IAC/B,GAAIH,EAAEG,CAAC,EACL,IAAKG,KAAKN,EAAEG,CAAC,EAAGF,EAAEK,CAAC,EAAIN,EAAEG,CAAC,EAAEG,CAAC,EACjC,OAAOL,CACX,EAAK,GAAG,iBAAmB,SAASA,EAAG,CACnC,MAAO,eAAgBA,GAAK,OAAOA,EAAE,YAAc,UAAY,CAAE,QAAS,+CAAiD,EAAG,mCAAoCA,GAAK,OAAOA,EAAE,gCAAkC,UAAY,CAC5N,QAAS,mEACf,EAAQ,gBAAiBA,GAAK,OAAOA,EAAE,aAAe,UAAY,CAAE,QAAS,gDAAkD,EAAG,wBAAyBA,GAAK,OAAOA,EAAE,qBAAuB,SAAW,CACrM,QAAS,uDACf,EAAQ,iBAAkBA,GAAK,EAAE,OAAOA,EAAE,cAAgB,UAAYA,EAAE,cAAgB,GAAK,CAAE,QAAS,qDAAqD,EAAK,sBAAuBA,GAAK,OAAOA,EAAE,mBAAqB,UAAY,CAAE,QAAS,sDAAsD,EAAK,YAAaA,GAAK,EAAE,OAAOA,EAAE,SAAW,UAAYA,EAAE,SAAW,GAAK,CAAE,QAAS,gDAAgD,EAAK,aAAcA,GAAK,EAAE,OAAOA,EAAE,UAAY,UAAYA,EAAE,UAAY,GAAK,CAAE,QAAS,iDAAmD,EAAG,sBAAuBA,GAAK,OAAOA,EAAE,mBAAqB,UAAY,CAAE,QAAS,sDAAwD,EAAG,mBAAoBA,GAAK,EAAE,OAAOA,EAAE,gBAAkB,UAAYA,EAAE,gBAAkB,GAAK,CAAE,QAAS,uDAAuD,EAAK,IACz2B,EAAE,GAAG,kBAAoB,SAASA,EAAGD,EAAG,CACvC,IAAIG,EAAIF,EAAE,MAAOK,EAAIL,EAAE,KAAMI,EAAI,GAAIE,EAAGE,EAAI,IAAI,aAAaN,EAAID,CAAC,EAAGY,EAAI,IAAI,aAAaR,EAAIF,CAAC,EAC/F,OAAOG,EAAI,EAAGN,EAAE,YAAY,SAAS,EAAGW,EAAG,CACzCP,EAAE,CAAC,EAAIE,EAAGE,EAAEF,CAAC,EAAIK,EAAE,EAAGH,EAAEF,EAAI,CAAC,EAAIK,EAAE,EAAGH,EAAEF,EAAI,CAAC,EAAI,EAAGE,EAAEF,EAAI,CAAC,EAAI,EAAGE,EAAEF,EAAI,CAAC,EAAI,EAAGE,EAAEF,EAAI,CAAC,EAAI,EAAGE,EAAEF,EAAI,CAAC,EAAI,EAAGE,EAAEF,EAAI,CAAC,EAAI,EAAGE,EAAEF,EAAI,CAAC,EAAIK,EAAE,MAAQ,EAAGH,EAAEF,EAAI,CAAC,EAAIK,EAAE,MAAQ,EAAI,EAAGL,GAAKL,CACpL,CAAA,EAAGK,EAAI,EAAGN,EAAE,YAAY,SAAS,EAAGW,EAAGF,EAAGS,EAAGE,EAAGV,EAAGa,EAAG,CACrD,IAAIG,EAAItB,EAAEK,CAAC,EAAGmB,EAAIxB,EAAEc,CAAC,EAAGgB,EAAInC,EAAE,EAAGY,EAAGF,EAAGS,EAAGE,EAAGV,EAAGa,CAAC,EACjDf,EAAEkB,EAAI,CAAC,GAAKQ,EAAG1B,EAAEoB,EAAI,CAAC,GAAKM,EAAGrB,EAAEP,CAAC,EAAIoB,EAAGb,EAAEP,EAAI,CAAC,EAAIsB,EAAGf,EAAEP,EAAI,CAAC,EAAI4B,EAAG5B,GAAKH,CAC/E,CAAK,EAAG,CACF,MAAOK,EACP,MAAOK,CACR,CACF,EAAE,GAAG,oBAAsB,SAASb,EAAGD,EAAGG,EAAG,CAC5C,IAAIG,EAAI,EACRL,EAAE,yBAAyB,SAASI,EAAGE,EAAG,CACxC,OAAOA,EAAE,EAAIP,EAAEM,CAAC,EAAGC,EAAE,EAAIP,EAAEM,EAAI,CAAC,EAAGA,GAAKJ,EAAGC,EAAIA,EAAEE,EAAGE,CAAC,EAAIA,CAC/D,CAAK,CACF,EAAE,GAAG,mBAAqB,SAASN,EAAGD,EAAG,CACxC,IAAIG,EAAI,EACRF,EAAE,YAAY,SAASK,EAAGD,EAAG,CAC3BL,EAAEG,CAAC,EAAIE,EAAE,EAAGL,EAAEG,EAAI,CAAC,EAAIE,EAAE,EAAGF,GAAKD,CACvC,CAAK,CACF,EAAE,GAAG,qBAAuB,SAASD,EAAGD,EAAGG,EAAG,CAC7C,QAASG,EAAIL,EAAE,MAAO,EAAEI,EAAI,CAAA,EAAIE,EAAI,EAAGE,EAAI,EAAGK,EAAId,EAAE,OAAQO,EAAIO,EAAGP,GAAKL,EAAG,CACzE,GAAIC,EAAG,CACL,IAAI,EAAI,OAAO,OAAO,CAAE,EAAEF,EAAE,kBAAkBK,EAAEG,CAAC,CAAC,CAAC,EACnD,EAAE,EAAIT,EAAEO,CAAC,EAAG,EAAE,EAAIP,EAAEO,EAAI,CAAC,EAAG,EAAIJ,EAAEG,EAAEG,CAAC,EAAG,CAAC,EAAGJ,EAAEC,EAAEG,CAAC,CAAC,EAAI,CACpD,EAAG,EAAE,EACL,EAAG,EAAE,CACN,CACF,MACCJ,EAAEC,EAAEG,CAAC,CAAC,EAAI,CACR,EAAGT,EAAEO,CAAC,EACN,EAAGP,EAAEO,EAAI,CAAC,CACX,EACHE,GACN,CACI,OAAOJ,CACX,EAAK,GAAG,aAAe,SAASL,EAAG,CAC/B,IAAIG,EAAI,OAAO,KAAO,OAAO,UAAWG,EAAIN,EAAE,SAAQ,EAAIK,EAAIF,EAAE,gBAC9D,IAAI,KAAK,CAAC,IAAMG,EAAI,eAAe,EAAG,CAAE,KAAM,iBAAmB,CAAA,CACvE,EAAOC,EAAI,IAAI,OAAOF,CAAC,EACnB,OAAOF,EAAE,gBAAgBE,CAAC,EAAGE,CACjC,EAAK,EACL,CACA,IAAI,GAAI,GACR,SAAS,IAAK,CACZ,OAAO,KAAO,GAAK,EAAG,GAAK,CACzB,WAAY,GACZ,+BAAgC,GAChC,YAAa,GACb,oBAAqB,EACrB,aAAc,EACd,kBAAmB,GACnB,QAAS,EACT,SAAU,EACV,kBAAmB,GACnB,eAAgB,EACjB,GAAG,EACN,CACA,IAAI,GAAI,GACR,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GACf,GAAK,EACL,IAAIL,EAAI,GAAE,EAAIE,EAAI,GAAI,EAAC,uBAAwBH,EAAI,GAAI,EAAED,EAAI,GAAE,EAAIG,EAAI,GAAI,EAC3E,SAASG,EAAEG,EAAGK,EAAG,EAAG,CAClB,GAAI,CAACZ,EAAEY,CAAC,EACN,MAAM,IAAI,MACR,oFACD,EACH,OAAO,GAAK,WAAa,EAAI,CAAE,WAAY,CAAC,GAC5C,IAAIF,EAAI,EAAE,WACV,GAAI,OAAOA,GAAK,SACd,MAAM,IAAI,MACR,8DACD,EACH,GAAIA,GAAK,EACP,MAAM,IAAI,MACR,oFACD,EACH,IAAIF,EAAIN,EACN,kBAAmB,EAAI,EAAE,cAAgB,QAC/C,EAAM,UAAWe,EAAI,OAAO,EAAE,eAAiB,WAAa,EAAE,cAAgB,KAAME,EAAIrB,EAAE,OAAO,CAAA,EAAIG,EAAG,EAAE,QAAQ,EAAGQ,EAAIX,EAAE,iBAAiBqB,CAAC,EACzI,GAAIV,EACF,MAAM,IAAI,MACR,kCAAoCA,EAAE,OACvC,EACH,IAAIa,EAAIxB,EAAE,kBAAkBc,EAAGJ,CAAC,EAAGiB,EACnC,IAAKA,EAAI,EAAGA,EAAIf,EAAGe,IACjB1B,EAAEoB,EAAGG,EAAE,MAAOA,EAAE,KAAK,EACvB,GAAIf,EAAG,CACLT,EAAE,oBAAoBc,EAAGU,EAAE,MAAOL,CAAC,EACnC,MACN,CACI,OAAOnB,EAAE,qBAAqBc,EAAGU,EAAE,KAAK,CAC5C,CACE,SAASnB,EAAEI,EAAG,CACZ,IAAIK,EAAI,OAAOL,GAAK,SAAWA,EAAIA,EAAE,MACrC,MAAO,CACL,kBAAmBK,EAAI,IACvB,kBAAmB,GACnB,QAAS,IACT,aAAc,GACd,SAAU,EAAI,KAAK,IAAIA,CAAC,CACzB,CACL,CACE,IAAIP,EAAID,EAAE,KAAK,KAAM,EAAE,EACvB,OAAOC,EAAE,OAASD,EAAE,KAAK,KAAM,EAAE,EAAGC,EAAE,cAAgBF,EAAG,GAAKE,EAAG,EACnE,CACA,IAAI,GAAK,GAAI,EACb,MAAM,GAAqB,GAAG,EAAE,EAChC,IAAI,GAAI,GACR,SAAS,IAAK,CACZ,OAAO,KAAO,GAAK,EAAG,GAAK,UAAW,CACpC,IAAIH,EAAGH,EAAGD,EAAI,CAAE,GACf,UAAW,CACV,IAAIM,EAAI,EAAGD,EAAI,EAAGE,EAAI,EAAGE,EAAI,EAAGK,EAAI,EAAGN,EAAI,EAAGI,EAAI,EAAGF,EAAI,EAAGS,EAAI,EAAGE,EAAI,EAAGV,EAAI,EAAGa,EAAI,EAAGG,EAAI,EAAGE,EAAI,EAAGM,EAAI,EAAGtB,EAAI,EAAGE,EAAI,EAAGgB,EAAI,EAAGR,EAAI,EAAGD,EAAI,EAAGG,EAAI,EAAGY,EAAI,EAAGX,EAAI,EAAGM,EAAI,GAAIhB,EAAI,EAAGwB,EAAI,EAAGiB,EAAK,GAChMzD,EAAE,QAAU,SAASoB,EAAGH,EAAGmB,GAAG,CAC5B,IAAIe,GAAGjB,GAAGhB,GAAG4B,GAAGM,GAAGL,GAAGc,GAAIL,GAAId,GAAGkB,GAAIZ,GAAI/B,EAAE,OAAQsC,GAAKnB,GAAE,OAAQkB,GAAKlC,EAAE,YAAaiD,GAAKjD,EAAE,eAAiBA,EAAE,eAAgB8B,GAAGT,EAAGX,EAAG4B,GAAII,EAAIlB,EAAGD,GAAGV,GAAI,CAAE,EAC7J,IAAKf,GAAI,EAAGA,GAAI8B,GAAG9B,IAAKc,EACtBf,EAAEC,GAAIJ,CAAC,EAAIG,EAAEC,GAAIX,CAAC,EAAGU,EAAEC,GAAIV,CAAC,EAAIS,EAAEC,GAAIT,CAAC,EAAGQ,EAAEC,GAAIX,CAAC,EAAI,EAAGU,EAAEC,GAAIT,CAAC,EAAI,EACrE,GAAIW,EAAE,+BAAgC,CACpC,IAAK8B,GAAI,EAAGhC,GAAI,EAAGA,GAAI8B,GAAG9B,IAAKc,EAC7BkB,IAAKjC,EAAEC,GAAIN,CAAC,EACdsC,IAAKF,GAAIhB,CACnB,CACQ,GAAIZ,EAAE,kBAAmB,CACvB,IAAI6C,GAAK,IAAOgB,GAAK,KAAQV,GAAK,IAAOM,GAAK,KAAQT,GAAIE,GAAIgB,GAC9D,IAAKpE,GAAI,EAAGA,GAAI8B,GAAG9B,IAAKc,EACtBiC,GAAK,KAAK,IAAIA,GAAIhD,EAAEC,GAAIZ,CAAC,CAAC,EAAG2E,GAAK,KAAK,IAAIA,GAAIhE,EAAEC,GAAIZ,CAAC,CAAC,EAAGiE,GAAK,KAAK,IAAIA,GAAItD,EAAEC,GAAIb,CAAC,CAAC,EAAGwE,GAAK,KAAK,IAAIA,GAAI5D,EAAEC,GAAIb,CAAC,CAAC,EACnH,IAAIoE,GAAKQ,GAAKhB,GAAImB,GAAKP,GAAKN,GAC5B,IAAKE,GAAKW,IAAMb,KAAOE,GAAKW,IAAM,EAAGP,GAAKN,GAAKE,KAAOR,KAAOmB,GAAKX,IAAM,EAAGQ,GAAKhB,GAAKmB,IAAKnD,GAAE,EAAIJ,CAAC,EAAI,GAAII,GAAE,EAAIE,CAAC,GAAK8B,GAAKgB,IAAM,EAAGhD,GAAE,EAAIpB,CAAC,GAAK0D,GAAKM,IAAM,EAAG5C,GAAE,EAAIlB,CAAC,EAAI,KAAK,IAAIkE,GAAKhB,GAAIY,GAAKN,EAAE,EAAGtC,GAAE,EAAIF,CAAC,EAAI,GAAIE,GAAE,EAAIV,CAAC,EAAI,GAAIU,GAAE,EAAIX,CAAC,EAAI,EAAGW,GAAE,EAAIR,CAAC,EAAI,EAAGQ,GAAE,EAAII,CAAC,EAAI,EAAGc,GAAI,EAAGjC,GAAI,EAAGA,GAAI8B,GAAG9B,IAAKc,EACpS,IAAKE,GAAI,EAAGoD,GAAK5D,IACf,GAAIO,GAAEC,GAAIX,CAAC,GAAK,EAAG,CACjBN,EAAEC,GAAIZ,CAAC,EAAI2B,GAAEC,GAAIC,CAAC,EAAIlB,EAAEC,GAAIb,CAAC,EAAI4B,GAAEC,GAAIrB,CAAC,EAAIuD,GAAKnC,GAAEC,GAAIX,CAAC,EAAI6C,GAAKnC,GAAEC,GAAIX,CAAC,EAAIiB,EAAIvB,EAAEC,GAAIb,CAAC,EAAI4B,GAAEC,GAAIrB,CAAC,EAAIuD,GAAKnC,GAAEC,GAAIX,CAAC,EAAIiB,EAAI,EAAI4B,GAAKnC,GAAEC,GAAIX,CAAC,EAAIiB,EAAI,EAAGP,GAAEC,GAAIT,CAAC,GAAKQ,GAAEC,GAAIT,CAAC,EAAIQ,GAAEC,GAAIZ,CAAC,EAAIL,EAAEC,GAAIZ,CAAC,EAAIW,EAAEC,GAAIN,CAAC,IAAMqB,GAAEC,GAAIZ,CAAC,EAAIL,EAAEC,GAAIN,CAAC,GAAIqB,GAAEC,GAAIG,CAAC,GAAKJ,GAAEC,GAAIG,CAAC,EAAIJ,GAAEC,GAAIZ,CAAC,EAAIL,EAAEC,GAAIb,CAAC,EAAIY,EAAEC,GAAIN,CAAC,IAAMqB,GAAEC,GAAIZ,CAAC,EAAIL,EAAEC,GAAIN,CAAC,GAAIqB,GAAEC,GAAIZ,CAAC,GAAKL,EAAEC,GAAIN,CAAC,EAAGsB,GAAIkC,GAC/U,QACD,SAAUnC,GAAEC,GAAIL,CAAC,EAAI,EAAG,CACvBI,GAAEC,GAAIL,CAAC,EAAIX,GACX,KAChB,KAAqB,CACL,GAAIe,GAAEC,GAAIX,CAAC,EAAI4B,GAAIX,EAAGgB,GAAKvB,GAAEC,GAAInB,CAAC,EAAI,EAAG2B,GAAIT,GAAEC,GAAIX,CAAC,EAAGU,GAAES,GAAIb,CAAC,EAAI,GAAII,GAAES,GAAIP,CAAC,EAAIF,GAAEC,GAAIC,CAAC,EAAIqB,GAAIvB,GAAES,GAAI7B,CAAC,EAAIoB,GAAEC,GAAIrB,CAAC,EAAI2C,GAAIvB,GAAES,GAAI3B,CAAC,EAAIyC,GAAIvB,GAAES,GAAIX,CAAC,EAAIW,GAAIF,EAAGP,GAAES,GAAInB,CAAC,EAAI,GAAIU,GAAES,GAAIpB,CAAC,EAAI,EAAGW,GAAES,GAAIjB,CAAC,EAAI,EAAGQ,GAAES,GAAIL,CAAC,EAAI,EAAGK,IAAKF,EAAGP,GAAES,GAAIb,CAAC,EAAI,GAAII,GAAES,GAAIP,CAAC,EAAIF,GAAEC,GAAIC,CAAC,EAAIqB,GAAIvB,GAAES,GAAI7B,CAAC,EAAIoB,GAAEC,GAAIrB,CAAC,EAAI2C,GAAIvB,GAAES,GAAI3B,CAAC,EAAIyC,GAAIvB,GAAES,GAAIX,CAAC,EAAIW,GAAIF,EAAGP,GAAES,GAAInB,CAAC,EAAI,GAAIU,GAAES,GAAIpB,CAAC,EAAI,EAAGW,GAAES,GAAIjB,CAAC,EAAI,EAAGQ,GAAES,GAAIL,CAAC,EAAI,EAAGK,IAAKF,EAAGP,GAAES,GAAIb,CAAC,EAAI,GAAII,GAAES,GAAIP,CAAC,EAAIF,GAAEC,GAAIC,CAAC,EAAIqB,GAAIvB,GAAES,GAAI7B,CAAC,EAAIoB,GAAEC,GAAIrB,CAAC,EAAI2C,GAAIvB,GAAES,GAAI3B,CAAC,EAAIyC,GAAIvB,GAAES,GAAIX,CAAC,EAAIW,GAAIF,EAAGP,GAAES,GAAInB,CAAC,EAAI,GAAIU,GAAES,GAAIpB,CAAC,EAAI,EAAGW,GAAES,GAAIjB,CAAC,EAAI,EAAGQ,GAAES,GAAIL,CAAC,EAAI,EAAGK,IAAKF,EAAGP,GAAES,GAAIb,CAAC,EAAI,GAAII,GAAES,GAAIP,CAAC,EAAIF,GAAEC,GAAIC,CAAC,EAAIqB,GAAIvB,GAAES,GAAI7B,CAAC,EAAIoB,GAAEC,GAAIrB,CAAC,EAAI2C,GAAIvB,GAAES,GAAI3B,CAAC,EAAIyC,GAAIvB,GAAES,GAAIX,CAAC,EAAIE,GAAEC,GAAIH,CAAC,EAAGE,GAAES,GAAInB,CAAC,EAAI,GAAIU,GAAES,GAAIpB,CAAC,EAAI,EAAGW,GAAES,GAAIjB,CAAC,EAAI,EAAGQ,GAAES,GAAIL,CAAC,EAAI,EAAGc,IAAK,EAAGlC,EAAEgB,GAAEC,GAAIL,CAAC,EAAIvB,CAAC,EAAI2B,GAAEC,GAAIC,CAAC,EAAIlB,EAAEgB,GAAEC,GAAIL,CAAC,EAAIxB,CAAC,EAAI4B,GAAEC,GAAIrB,CAAC,EAAIuD,GAAKnC,GAAEC,GAAIX,CAAC,EAAI6C,GAAKnC,GAAEC,GAAIX,CAAC,EAAIiB,EAAIvB,EAAEgB,GAAEC,GAAIL,CAAC,EAAIxB,CAAC,EAAI4B,GAAEC,GAAIrB,CAAC,EAAIuD,GAAKnC,GAAEC,GAAIX,CAAC,EAAIiB,EAAI,EAAI4B,GAAKnC,GAAEC,GAAIX,CAAC,EAAIiB,EAAI,EAAGP,GAAEC,GAAIZ,CAAC,EAAIL,EAAEgB,GAAEC,GAAIL,CAAC,EAAIjB,CAAC,EAAGqB,GAAEC,GAAIT,CAAC,EAAIR,EAAEgB,GAAEC,GAAIL,CAAC,EAAIvB,CAAC,EAAG2B,GAAEC,GAAIG,CAAC,EAAIpB,EAAEgB,GAAEC,GAAIL,CAAC,EAAIxB,CAAC,EAAG4B,GAAEmC,GAAKvC,CAAC,EAAII,GAAEC,GAAIL,CAAC,EAAGI,GAAEC,GAAIL,CAAC,EAAI,GAAIZ,EAAEC,GAAIZ,CAAC,EAAI2B,GAAEC,GAAIC,CAAC,EAAIlB,EAAEC,GAAIb,CAAC,EAAI4B,GAAEC,GAAIrB,CAAC,EAAIyD,GAAKrC,GAAEC,GAAIX,CAAC,EAAI+C,GAAKrC,GAAEC,GAAIX,CAAC,EAAIiB,EAAIvB,EAAEC,GAAIb,CAAC,EAAI4B,GAAEC,GAAIrB,CAAC,EAAIyD,GAAKrC,GAAEC,GAAIX,CAAC,EAAIiB,EAAI,EAAI8B,GAAKrC,GAAEC,GAAIX,CAAC,EAAIiB,EAAI,EAAG4B,KAAOE,GAC3oC,GAAIgB,KAAM,CACRpD,GAAIkC,GACJ,QACpB,KAAyB,CACLkB,GAAK5D,EACL,KACpB,CACgBO,GAAEqC,GAAKzC,CAAC,EAAIX,GACZ,KAChB,CACA,CACQ,GAAIE,EAAE,kBACJ,IAAKqB,EAAIrB,EAAE,aAAcF,GAAI,EAAGA,GAAI8B,GAAG9B,IAAKc,EAC1C,IAAKE,GAAI,IACP,GAAID,GAAEC,GAAIX,CAAC,GAAK,EACd,GAAIqB,EAAI,KAAK,IACX3B,EAAEC,GAAIZ,CAAC,EAAI2B,GAAEC,GAAIT,CAAC,EAClB,CACD,EAAG,KAAK,IACPR,EAAEC,GAAIb,CAAC,EAAI4B,GAAEC,GAAIG,CAAC,EAClB,CAClB,EAAmBuB,GAAK3B,GAAEC,GAAInB,CAAC,EAAG,EAAI6C,GAAKA,GAAKhB,EAAIyB,GAAI,CACtC,GAAIvC,EAAIb,EAAEC,GAAIZ,CAAC,EAAI2B,GAAEC,GAAIT,CAAC,EAAGiC,GAAKzC,EAAEC,GAAIb,CAAC,EAAI4B,GAAEC,GAAIG,CAAC,EAAGiB,KAAO,GAAKV,EAAI,GAAKD,GAAIF,EAAIxB,EAAEC,GAAIN,CAAC,EAAIqB,GAAEC,GAAIZ,CAAC,EAAIsB,EAAG3B,EAAEC,GAAIX,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEC,GAAIT,CAAC,GAAKiD,GAAKf,IAAKC,EAAI,IAAMD,GAAI,CAACF,EAAIxB,EAAEC,GAAIN,CAAC,EAAIqB,GAAEC,GAAIZ,CAAC,EAAI,KAAK,KAAKsB,CAAC,EAAG3B,EAAEC,GAAIX,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEC,GAAIT,CAAC,GAAKiD,GAAKf,IAAKC,EAAI,IAAMD,GAAIF,EAAIxB,EAAEC,GAAIN,CAAC,EAAIqB,GAAEC,GAAIZ,CAAC,EAAIsB,EAAG3B,EAAEC,GAAIX,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEC,GAAIT,CAAC,GAAKiD,GAAKf,IAAIT,GAAID,GAAEC,GAAIH,CAAC,EAAGG,GAAI,EAAG,MAC9V,QAClB,KAAuB,CACLA,GAAID,GAAEC,GAAIX,CAAC,EACX,QAClB,KACmB,CACH,GAAIwB,GAAId,GAAEC,GAAIL,CAAC,EAAGkB,IAAK,GAAKA,KAAM7B,KAAMY,EAAIb,EAAEC,GAAIZ,CAAC,EAAIW,EAAE8B,GAAIzC,CAAC,EAAGoD,GAAKzC,EAAEC,GAAIb,CAAC,EAAIY,EAAE8B,GAAI1C,CAAC,EAAGuC,EAAId,EAAIA,EAAI4B,GAAKA,GAAIJ,KAAO,GAAKV,EAAI,GAAKD,GAAIF,EAAIxB,EAAEC,GAAIN,CAAC,EAAIK,EAAE8B,GAAInC,CAAC,EAAIgC,EAAG3B,EAAEC,GAAIX,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEC,GAAIT,CAAC,GAAKiD,GAAKf,IAAKC,EAAI,IAAMD,GAAI,CAACF,EAAIxB,EAAEC,GAAIN,CAAC,EAAIK,EAAE8B,GAAInC,CAAC,EAAI,KAAK,KAAKgC,CAAC,EAAG3B,EAAEC,GAAIX,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEC,GAAIT,CAAC,GAAKiD,GAAKf,IAAKC,EAAI,IAAMD,GAAIF,EAAIxB,EAAEC,GAAIN,CAAC,EAAIK,EAAE8B,GAAInC,CAAC,EAAIgC,EAAG3B,EAAEC,GAAIX,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEC,GAAIT,CAAC,GAAKiD,GAAKf,KAAKT,GAAID,GAAEC,GAAIH,CAAC,EAAGG,GAAI,EAAG,MACxZ,QAChB,KAEU,KAAKO,EAAIrB,EAAE,aAAc0B,GAAI,EAAGA,GAAIE,GAAGF,IAAKd,EAC1C,IAAKoB,GAAI,EAAGA,GAAIN,GAAGM,IAAKpB,EACtBF,EAAIb,EAAE6B,GAAIxC,CAAC,EAAIW,EAAEmC,GAAI9C,CAAC,EAAGoD,GAAKzC,EAAE6B,GAAIzC,CAAC,EAAIY,EAAEmC,GAAI/C,CAAC,EAAGiD,KAAO,IAAMV,EAAI,KAAK,KAAKd,EAAIA,EAAI4B,GAAKA,EAAE,EAAIzC,EAAE6B,GAAI3B,CAAC,EAAIF,EAAEmC,GAAIjC,CAAC,EAAGyB,EAAI,GAAKD,GAAIF,EAAIxB,EAAE6B,GAAIlC,CAAC,EAAIK,EAAEmC,GAAIxC,CAAC,EAAIgC,EAAIA,EAAG3B,EAAE6B,GAAIvC,CAAC,GAAKuB,EAAIa,GAAG1B,EAAE6B,GAAIrC,CAAC,GAAKiD,GAAKf,GAAG1B,EAAEmC,GAAI7C,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEmC,GAAI3C,CAAC,GAAKiD,GAAKf,IAAKC,EAAI,IAAMD,GAAI,IAAMF,EAAIxB,EAAE6B,GAAIlC,CAAC,EAAIK,EAAEmC,GAAIxC,CAAC,EAAGK,EAAE6B,GAAIvC,CAAC,GAAKuB,EAAIa,GAAG1B,EAAE6B,GAAIrC,CAAC,GAAKiD,GAAKf,GAAG1B,EAAEmC,GAAI7C,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEmC,GAAI3C,CAAC,GAAKiD,GAAKf,MAAOC,EAAI,KAAK,KAAKd,EAAIA,EAAI4B,GAAKA,EAAE,EAAGd,EAAI,IAAMD,GAAIF,EAAIxB,EAAE6B,GAAIlC,CAAC,EAAIK,EAAEmC,GAAIxC,CAAC,EAAIgC,EAAIA,EAAG3B,EAAE6B,GAAIvC,CAAC,GAAKuB,EAAIa,GAAG1B,EAAE6B,GAAIrC,CAAC,GAAKiD,GAAKf,GAAG1B,EAAEmC,GAAI7C,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEmC,GAAI3C,CAAC,GAAKiD,GAAKf,KACnhB,IAAKD,GAAItB,EAAE,QAAUA,EAAE,aAAcqB,EAAIrB,EAAE,aAAcF,GAAI,EAAGA,GAAI8B,GAAG9B,IAAKc,EAC1EW,GAAI,EAAGb,EAAIb,EAAEC,GAAIZ,CAAC,EAAGoD,GAAKzC,EAAEC,GAAIb,CAAC,EAAGuC,EAAI,KAAK,KAAK,KAAK,IAAId,EAAG,CAAC,EAAI,KAAK,IAAI4B,GAAI,CAAC,CAAC,EAAGtC,EAAE,kBAAoBwB,EAAI,IAAMD,GAAIF,EAAIxB,EAAEC,GAAIN,CAAC,EAAI8B,IAAKE,EAAI,IAAMD,GAAIF,EAAIxB,EAAEC,GAAIN,CAAC,EAAI8B,GAAIE,GAAI3B,EAAEC,GAAIX,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEC,GAAIT,CAAC,GAAKiD,GAAKf,GACxN,IAAKF,EAAI,GAAKrB,EAAE,+BAAiC8B,GAAI,GAAIW,GAAK,EAAGA,GAAKN,GAAIM,IAAM7C,EAC9E8B,GAAIV,GAAEyB,GAAKlD,CAAC,EAAGyC,GAAIhB,GAAEyB,GAAKrC,CAAC,EAAGgC,GAAKpB,GAAEyB,GAAKlC,CAAC,EAAGmC,EAAK,KAAK,IAAIN,GAAIpC,EAAE,mBAAmB,EAAGU,EAAIb,EAAE6B,GAAIxC,CAAC,EAAIW,EAAEmC,GAAI9C,CAAC,EAAGoD,GAAKzC,EAAE6B,GAAIzC,CAAC,EAAIY,EAAEmC,GAAI/C,CAAC,EAAGiD,KAAO,IAAMV,EAAI,KAAK,KAAKd,EAAIA,EAAI4B,GAAKA,EAAE,EAAIzC,EAAE6B,GAAI3B,CAAC,EAAIF,EAAEmC,GAAIjC,CAAC,EAAGC,EAAE,WAAaA,EAAE,+BAAiCwB,EAAI,IAAMD,GAAI,CAACF,EAAIqB,EAAK,KAAK,IAAI,EAAIlB,CAAC,EAAIA,EAAI3B,EAAE6B,GAAIlC,CAAC,GAAKgC,EAAI,IAAMD,GAAI,CAACF,EAAIqB,EAAK,KAAK,IAAI,EAAIlB,CAAC,EAAIA,GAAKxB,EAAE,+BAAiCwB,EAAI,IAAMD,GAAI,CAACF,EAAIqB,EAAK7C,EAAE6B,GAAIlC,CAAC,GAAKgC,EAAI,IAAMD,GAAI,CAACF,EAAIqB,KAAQlB,EAAI,KAAK,KAAK,KAAK,IAAId,EAAG,CAAC,EAAI,KAAK,IAAI4B,GAAI,CAAC,CAAC,EAAGtC,EAAE,WAAaA,EAAE,+BAAiCwB,EAAI,IAAMD,GAAI,CAACF,EAAIqB,EAAK,KAAK,IAAI,EAAIlB,CAAC,EAAIA,EAAI3B,EAAE6B,GAAIlC,CAAC,GAAKgC,EAAI,IAAMD,GAAI,CAACF,EAAIqB,EAAK,KAAK,IAAI,EAAIlB,CAAC,EAAIA,GAAKxB,EAAE,gCAAkCwB,EAAI,EAAGD,GAAI,CAACF,EAAIqB,EAAK7C,EAAE6B,GAAIlC,CAAC,IAAMgC,EAAI,EAAGD,GAAI,CAACF,EAAIqB,IAAMlB,EAAI,IAAM3B,EAAE6B,GAAIvC,CAAC,GAAKuB,EAAIa,GAAG1B,EAAE6B,GAAIrC,CAAC,GAAKiD,GAAKf,GAAG1B,EAAEmC,GAAI7C,CAAC,GAAKuB,EAAIa,GAAG1B,EAAEmC,GAAI3C,CAAC,GAAKiD,GAAKf,IAC10B,IAAIqC,GAAIsB,GAAIW,GAAIlB,GAAIoB,GAAIE,GACxB,GAAI/D,KAAO,GACT,IAAKpC,GAAI,EAAGA,GAAI8B,GAAG9B,IAAKc,EACtBf,EAAEC,GAAIG,CAAC,IAAM,IAAM2D,GAAK,KAAK,KAC3B,KAAK,IAAI/D,EAAEC,GAAIX,CAAC,EAAG,CAAC,EAAI,KAAK,IAAIU,EAAEC,GAAIT,CAAC,EAAG,CAAC,CAC7C,EAAEuE,GAAKvB,IAAOxC,EAAEC,GAAIX,CAAC,EAAIU,EAAEC,GAAIX,CAAC,EAAIkD,EAAKuB,GAAI/D,EAAEC,GAAIT,CAAC,EAAIQ,EAAEC,GAAIT,CAAC,EAAIgD,EAAKuB,IAAKsB,GAAKrF,EAAEC,GAAIN,CAAC,EAAI,KAAK,MAChGK,EAAEC,GAAIJ,CAAC,EAAIG,EAAEC,GAAIX,CAAC,IAAMU,EAAEC,GAAIJ,CAAC,EAAIG,EAAEC,GAAIX,CAAC,IAAMU,EAAEC,GAAIV,CAAC,EAAIS,EAAEC,GAAIT,CAAC,IAAMQ,EAAEC,GAAIV,CAAC,EAAIS,EAAEC,GAAIT,CAAC,EACzG,EAAewG,GAAK,KAAK,MACVhG,EAAEC,GAAIJ,CAAC,EAAIG,EAAEC,GAAIX,CAAC,IAAMU,EAAEC,GAAIJ,CAAC,EAAIG,EAAEC,GAAIX,CAAC,IAAMU,EAAEC,GAAIV,CAAC,EAAIS,EAAEC,GAAIT,CAAC,IAAMQ,EAAEC,GAAIV,CAAC,EAAIS,EAAEC,GAAIT,CAAC,EACzG,EAAgB,EAAGsF,GAAK,GAAM,KAAK,IAAI,EAAIkB,EAAE,GAAK,EAAI,KAAK,KAAKX,EAAE,GAAIa,GAAKlG,EAAEC,GAAIZ,CAAC,EAAIW,EAAEC,GAAIX,CAAC,GAAKwF,GAAK3E,EAAE,UAAWH,EAAEC,GAAIZ,CAAC,EAAI6G,GAAIE,GAAKpG,EAAEC,GAAIb,CAAC,EAAIY,EAAEC,GAAIT,CAAC,GAAKsF,GAAK3E,EAAE,UAAWH,EAAEC,GAAIb,CAAC,EAAIgH,QAElL,KAAKnG,GAAI,EAAGA,GAAI8B,GAAG9B,IAAKc,EACtBf,EAAEC,GAAIG,CAAC,IAAM,IAAMiF,GAAKrF,EAAEC,GAAIN,CAAC,EAAI,KAAK,MACrCK,EAAEC,GAAIJ,CAAC,EAAIG,EAAEC,GAAIX,CAAC,IAAMU,EAAEC,GAAIJ,CAAC,EAAIG,EAAEC,GAAIX,CAAC,IAAMU,EAAEC,GAAIV,CAAC,EAAIS,EAAEC,GAAIT,CAAC,IAAMQ,EAAEC,GAAIV,CAAC,EAAIS,EAAEC,GAAIT,CAAC,EACzG,EAAewG,GAAK,KAAK,MACVhG,EAAEC,GAAIJ,CAAC,EAAIG,EAAEC,GAAIX,CAAC,IAAMU,EAAEC,GAAIJ,CAAC,EAAIG,EAAEC,GAAIX,CAAC,IAAMU,EAAEC,GAAIV,CAAC,EAAIS,EAAEC,GAAIT,CAAC,IAAMQ,EAAEC,GAAIV,CAAC,EAAIS,EAAEC,GAAIT,CAAC,EACzG,EAAgB,EAAGsF,GAAK9E,EAAEC,GAAIR,CAAC,EAAI,KAAK,IAAI,EAAIuG,EAAE,GAAK,EAAI,KAAK,KAAKX,EAAE,GAAIrF,EAAEC,GAAIR,CAAC,EAAI,KAAK,IAC7E,EACA,KAAK,KACHqF,IAAM,KAAK,IAAI9E,EAAEC,GAAIX,CAAC,EAAG,CAAC,EAAI,KAAK,IAAIU,EAAEC,GAAIT,CAAC,EAAG,CAAC,IAAM,EAAI,KAAK,KAAK6F,EAAE,EACxF,CACA,EAAea,GAAKlG,EAAEC,GAAIZ,CAAC,EAAIW,EAAEC,GAAIX,CAAC,GAAKwF,GAAK3E,EAAE,UAAWH,EAAEC,GAAIZ,CAAC,EAAI6G,GAAIE,GAAKpG,EAAEC,GAAIb,CAAC,EAAIY,EAAEC,GAAIT,CAAC,GAAKsF,GAAK3E,EAAE,UAAWH,EAAEC,GAAIb,CAAC,EAAIgH,IAC7H,MAAO,CAAE,CACV,CACP,GAAQ,EACJ,IAAIlH,EAAIH,EAAE,QACV,KAAK,iBAAiB,UAAW,SAASM,EAAG,CAC3C,IAAID,EAAIC,EAAE,KACVF,EAAI,IAAI,aAAaC,EAAE,KAAK,EAAGA,EAAE,QAAUJ,EAAI,IAAI,aAAaI,EAAE,KAAK,GAAIF,EAAEE,EAAE,SAAUD,EAAGH,CAAC,EAAG,KAAK,YACnG,CACE,MAAOG,EAAE,MACV,EACD,CAACA,EAAE,MAAM,CACV,CACP,CAAK,CACF,GAAG,EACN,CACA,IAAI,GAAI,GACR,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GACf,GAAK,EACL,IAAIF,EAAI,GAAE,EAAIE,EAAI,GAAI,EAAEH,EAAI,GAAI,EAAC,uBAAwBD,EAAI,GAAE,EAAIG,EAAI,GAAI,EAC3E,SAASG,EAAED,EAAGE,EAAG,CACf,GAAIA,EAAIA,GAAK,CAAE,EAAE,CAACH,EAAEC,CAAC,EACnB,MAAM,IAAI,MACR,2FACD,EACH,IAAII,EAAIR,EACN,kBAAmBM,EAAIA,EAAE,cAAgB,QAC1C,EAAC,UAAWO,EAAId,EAAE,OAAO,CAAA,EAAIG,EAAGI,EAAE,QAAQ,EAAG,EAAIP,EAAE,iBAAiBc,CAAC,EACtE,GAAI,EACF,MAAM,IAAI,MACR,yCAA2C,EAAE,OAC9C,EACH,KAAK,OAAS,KAAM,KAAK,MAAQT,EAAG,KAAK,SAAWS,EAAG,KAAK,cAAgBL,EAAG,KAAK,SAAW,KAAM,KAAK,QAAU,GAAI,KAAK,OAAS,GAAI,KAAK,cAAgB,OAAOF,EAAE,eAAiB,WAAaA,EAAE,cAAgB,KAAM,KAAK,cAAgB,KAAK,cAAc,KAAK,IAAI,EAC/Q,IAAIK,EAAI,OAAQF,EAAI,KACpB,KAAK,kBAAoB,UAAW,CAClCA,EAAE,QAAUA,EAAE,OAAO,UAAW,EAAEE,GAAK,aAAaA,CAAC,EAAGA,EAAI,WAAW,UAAW,CAChFA,EAAI,OAAQF,EAAE,YAAa,CAC5B,EAAE,CAAC,CACL,EAAEL,EAAE,GAAG,YAAa,KAAK,iBAAiB,EAAGA,EAAE,GAAG,YAAa,KAAK,iBAAiB,EAAGA,EAAE,GAAG,cAAe,KAAK,iBAAiB,EAAGA,EAAE,GAAG,cAAe,KAAK,iBAAiB,EAAG,KAAK,YAAa,CACzM,CACE,OAAOC,EAAE,UAAU,UAAY,UAAW,CACxC,OAAO,KAAK,OAChB,EAAKA,EAAE,UAAU,YAAc,UAAW,CACtC,KAAK,QAAU,KAAK,OAAO,UAAW,EAAE,KAAK,OAASN,EAAE,aAAaE,CAAC,EAAG,KAAK,OAAO,iBAAiB,UAAW,KAAK,aAAa,EAAG,KAAK,UAAY,KAAK,QAAU,GAAI,KAAK,MAAK,EACrL,EAAEI,EAAE,UAAU,cAAgB,SAASD,EAAG,CACzC,GAAI,KAAK,QAAS,CAChB,IAAIE,EAAI,IAAI,aAAaF,EAAE,KAAK,KAAK,EACrCL,EAAE,oBAAoB,KAAK,MAAOO,EAAG,KAAK,aAAa,EAAG,KAAK,eAAiBP,EAAE,mBAAmB,KAAK,MAAOO,CAAC,EAAG,KAAK,SAAS,MAAQA,EAAG,KAAK,iBAAkB,CAC3K,CACG,EAAED,EAAE,UAAU,iBAAmB,SAASD,EAAG,CAC5C,IAAIE,EAAI,KAAK,SAAUE,EAAI,CACzB,SAAU,KAAK,SACf,MAAOF,EAAE,MAAM,MAChB,EAAEO,EAAI,CAACP,EAAE,MAAM,MAAM,EACtB,OAAOF,IAAMI,EAAE,MAAQF,EAAE,MAAM,OAAQO,EAAE,KAAKP,EAAE,MAAM,MAAM,GAAI,KAAK,OAAO,YAAYE,EAAGK,CAAC,EAAG,IACnG,EAAKR,EAAE,UAAU,MAAQ,UAAW,CAChC,GAAI,KAAK,OACP,MAAM,IAAI,MACR,gEACD,EACH,OAAO,KAAK,QAAU,MAAQ,KAAK,SAAWN,EAAE,kBAAkB,KAAK,MAAO,KAAK,aAAa,EAAG,KAAK,QAAU,GAAI,KAAK,iBAAiB,EAAE,EAAG,KACrJ,EAAKM,EAAE,UAAU,KAAO,UAAW,CAC/B,OAAO,KAAK,QAAU,GAAI,IAC9B,EAAKA,EAAE,UAAU,KAAO,UAAW,CAC/B,GAAI,KAAK,OAAQ,OAAO,KACxB,KAAK,QAAU,GAAI,KAAK,OAAS,GAAI,KAAK,SAAW,KAAM,KAAK,OAAO,UAAS,EAAI,KAAK,MAAM,eAAe,YAAa,KAAK,iBAAiB,EAAG,KAAK,MAAM,eAAe,YAAa,KAAK,iBAAiB,EAAG,KAAK,MAAM,eAAe,cAAe,KAAK,iBAAiB,EAAG,KAAK,MAAM,eAAe,cAAe,KAAK,iBAAiB,CACzV,EAAK,GAAKA,EAAG,EACb,CACA,IAAI,GAAK,GAAI,EACb,MAAM,GAAqB,GAAG,EAAE,EAChC,IAAI,GAAI,GACR,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GACf,GAAK,EACL,SAASJ,EAAED,EAAGD,EAAG,CACf,OAAOC,EAAI,KAAK,MAAM,KAAK,OAAM,GAAMD,EAAIC,EAAI,EAAE,CACrD,CACE,SAASG,EAAEH,EAAG,CACZA,IAAMA,EAAIC,EAAE,EAAG,KAAK,IAAI,EAAG,EAAE,EAAI,CAAC,GAAI,KAAK,KAAOD,EAAI,WAAY,KAAK,MAAQ,IAAM,KAAK,MAAQ,WACtG,CACE,OAAOG,EAAE,UAAU,KAAO,UAAW,CACnC,OAAO,KAAK,KAAO,KAAK,KAAO,MAAQ,WAAY,KAAK,IAC5D,EAAKA,EAAE,UAAU,UAAY,UAAW,CACpC,OAAQ,KAAK,KAAM,EAAG,GAAK,UAC/B,EAAK,GAAKA,EAAG,EACb,CACA,IAAI,GAAK,CAAE,EAAE,GACb,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GACf,GAAK,EACL,IAAIF,EAAI,CAEN,GAAI,OACJ,GAAI,EACJ,GAAI,QACJ,GAAI,WAEJ,GAAI,WAEJ,GAAI,UAEJ,GAAI,UAEL,EACD,SAASE,EAAEO,EAAG,CACZ,OAAO,KAAK,MACV,KAAOA,GAAK,OAAS,MAAQA,EAAI,MAAQ,KAAK,IAAIA,EAAG,EAAI,GAAG,EAAI,KACjE,CACL,CACE,SAASV,EAAEU,EAAG,CACZ,OAAQA,GAAK,MAAQ,OAAUA,EAAI,MAAQ,KAAK,KAAKA,EAAI,MAAS,MAAO,GAAG,CAChF,CACE,SAASX,EAAEW,EAAG,CACZ,OAAOA,EAAIT,EAAE,GAAK,KAAK,IAAIS,EAAG,EAAI,CAAC,EAAIA,EAAIT,EAAE,GAAKA,EAAE,EACxD,CACE,SAASC,EAAEQ,EAAG,CACZ,IAAIa,EAAIb,EAAE,CAAC,EAAGgB,EAAIhB,EAAE,CAAC,EAAGkB,EAAIlB,EAAE,CAAC,EAC/Ba,EAAIvB,EAAEuB,CAAC,EAAGG,EAAI1B,EAAE0B,CAAC,EAAGE,EAAI5B,EAAE4B,CAAC,EAC3B,IAAIM,EAAInC,GAAG,SAAYwB,EAAI,SAAYG,EAAI,SAAYE,GAAK3B,EAAE,EAAE,EAAGW,EAAIb,GAAG,SAAYwB,EAAI,SAAYG,EAAI,QAAWE,GAAK3B,EAAE,EAAE,EAAGa,EAAIf,GAAG,SAAYwB,EAAI,QAAWG,EAAI,SAAYE,GAAK3B,EAAE,EAAE,EAC5L,MAAO,CAACiC,EAAGtB,EAAGE,CAAC,CACnB,CACE,SAAST,EAAEK,EAAG,CACZ,OAAOA,EAAIT,EAAE,GAAKS,EAAIA,EAAIA,EAAIT,EAAE,IAAMS,EAAIT,EAAE,GAChD,CACE,SAASG,EAAEM,EAAG,CACZ,IAAIa,EAAIb,EAAE,CAAC,EAAGgB,EAAIhB,EAAE,CAAC,EAAGkB,EAAIlB,EAAE,CAAC,EAAGwB,GAAKX,EAAI,IAAM,IAAKX,EAAI,MAAMc,CAAC,EAAIQ,EAAIA,EAAIR,EAAI,IAAKZ,EAAI,MAAMc,CAAC,EAAIM,EAAIA,EAAIN,EAAI,IACjHM,EAAIjC,EAAE,GAAKI,EAAE6B,CAAC,EAAGtB,EAAIX,EAAE,GAAKI,EAAEO,CAAC,EAAGE,EAAIb,EAAE,GAAKI,EAAES,CAAC,EAChD,IAAIgB,EAAI3B,EAAE,UAAYS,EAAI,UAAYsB,EAAI,SAAYpB,CAAC,EAAGQ,EAAInB,EAAE,SAAYS,EAAI,UAAYsB,EAAI,QAAWpB,CAAC,EAC5G,OAAOc,EAAIzB,EAAE,SAAYS,EAAI,SAAYsB,EAAI,UAAYpB,CAAC,EAAG,CAACgB,EAAGR,EAAGM,CAAC,CACzE,CACE,SAAStB,EAAEI,EAAG,CACZ,IAAIa,EAAIrB,EAAEQ,CAAC,EAAGgB,EAAIH,EAAE,CAAC,EAAGK,EAAIL,EAAE,CAAC,EAAGW,EAAIX,EAAE,CAAC,EAAGX,EAAI,IAAMgB,EAAI,GAC1D,MAAO,CAAChB,EAAI,EAAI,EAAIA,EAAG,KAAOc,EAAIE,GAAI,KAAOA,EAAIM,EAAE,CACvD,CACE,SAAS1B,EAAEE,EAAG,CACZ,IAAIa,EAAIb,EAAE,CAAC,EAAGgB,EAAIhB,EAAE,CAAC,EAAGkB,EAAIlB,EAAE,CAAC,EAC/B,OAAOa,GAAK,GAAKA,GAAK,KAAOG,GAAK,GAAKA,GAAK,KAAOE,GAAK,GAAKA,GAAK,GACtE,CACE,SAASf,EAAEH,EAAG,CACZ,OAAQ,IAAMA,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAC1C,CACE,SAAS,EAAEA,EAAG,CACZ,IAAIa,EAAInB,EAAEM,CAAC,EACX,MAAO,IAAMG,EAAEU,EAAE,CAAC,CAAC,EAAIV,EAAEU,EAAE,CAAC,CAAC,EAAIV,EAAEU,EAAE,CAAC,CAAC,CAC3C,CACE,IAAIZ,EAAI,IAAM,KAAK,GACnB,SAASF,EAAEC,EAAG,CACZ,IAAIa,EAAIb,EAAE,CAAC,EAAGgB,EAAIhB,EAAE,CAAC,EAAGkB,EAAIlB,EAAE,CAAC,EAAGwB,EAAI,KAAK,KAAKR,EAAIA,EAAIE,EAAIA,CAAC,EAAGhB,GAAK,KAAK,MAAMgB,EAAGF,CAAC,EAAIf,EAAI,KAAO,IACnG,OAAO,KAAK,MAAMuB,EAAI,GAAG,IAAM,IAAMtB,EAAI,KAAM,CAACA,EAAGsB,EAAGX,CAAC,CAC3D,CACE,SAASL,EAAER,EAAGa,EAAG,CACfA,EAAIA,EAAE,MAAO,EACb,QAASG,EAAI,CAACH,EAAE,MAAO,CAAA,EAAGK,EAAGM,EAAGtB,EAAGE,EAAGgB,EAAGR,EAAGD,EAAGE,EAAE,OAAS,GAAK,CAC7D,IAAKK,EAAI,GAAIM,EAAI,KAAQtB,EAAI,EAAGA,EAAIW,EAAE,OAAQX,IAC5C,IAAKE,EAAIS,EAAEX,CAAC,EAAGS,EAAI,EAAGA,EAAIK,EAAE,OAAQL,IAClCS,EAAIJ,EAAEL,CAAC,EAAGC,EAAIZ,EAAEI,EAAGgB,CAAC,EAAGR,EAAIY,IAAMA,EAAIZ,EAAGM,EAAIhB,GAChDc,EAAE,KAAKH,EAAEK,CAAC,CAAC,EAAGL,EAAE,OAAOK,EAAG,CAAC,CACjC,CACI,OAAOF,CACX,CACE,SAASN,EAAEV,EAAGa,EAAG,CACf,IAAIG,EAAGE,EAAGM,EAAGtB,EAAI,IAAOE,EAAGgB,EAAI,EAAGR,EAAI,EACtC,IAAKI,EAAI,EAAGQ,EAAIX,EAAE,OAAQG,EAAIQ,EAAGR,IAC/B,IAAKE,EAAIF,EAAI,EAAGE,EAAIM,EAAGN,IACrBd,EAAIJ,EAAEa,EAAEG,CAAC,EAAGH,EAAEK,CAAC,CAAC,EAAGd,EAAIF,IAAMA,EAAIE,GAAIgB,GAAKhB,EAAGQ,IACjD,MAAO,CAAE,IAAKV,EAAG,KAAMkB,EAAIR,CAAG,CAClC,CACE,OAAO,GAAG,YAAcd,EAAG,GAAG,SAAWJ,EAAG,GAAG,YAAc,EAAG,GAAG,SAAWE,EAAG,GAAG,SAAWG,EAAG,GAAG,SAAWS,EAAG,GAAG,sBAAwBE,EAAG,EACnJ,CACA,IAAI,GAAI,GACR,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GACf,GAAK,EACL,IAAInB,EAAI,GAAI,EAAEE,EAAI,CAChB,UAAW,CACT,EAAG,MACH,EAAG,MACH,EAAG,SACH,KAAM,QACP,EACD,YAAa,CACX,EAAG,IACH,EAAG,IACH,EAAG,QACH,KAAM,OACP,EACD,UAAW,CACT,EAAG,MACH,EAAG,EACH,EAAG,QACH,KAAM,OACZ,CACG,EACD,SAASH,EAAEI,EAAGE,EAAG,CACf,OAAO,KAAK,KACV,KAAK,IAAIF,EAAE,CAAC,EAAIE,EAAE,CAAC,EAAG,CAAC,EAAI,KAAK,IAAIF,EAAE,CAAC,EAAIE,EAAE,CAAC,EAAG,CAAC,EAAI,KAAK,IAAIF,EAAE,CAAC,EAAIE,EAAE,CAAC,EAAG,CAAC,CAC9E,CACL,CACE,SAASP,EAAEK,EAAGE,EAAGE,EAAGK,EAAG,CACrB,QAAS,EAAIL,EAAE,CAAC,EAAGG,EAAIE,EAAE,CAAC,EAAGJ,EAAID,EAAE,CAAC,EAAGU,EAAIL,EAAE,CAAC,EAAGO,EAAIZ,EAAE,CAAC,EAAGE,EAAIG,EAAE,CAAC,EAAGU,EAAI,KAAK,KAAK,KAAK,IAAId,EAAG,CAAC,EAAI,KAAK,IAAIW,EAAG,CAAC,CAAC,EAAGM,EAAI,KAAK,KAAK,KAAK,IAAIR,EAAG,CAAC,EAAI,KAAK,IAAIR,EAAG,CAAC,CAAC,EAAGkB,EAAIL,EAAIG,EAAGQ,EAAI,EAAIvB,EAAGC,EAAIH,EAAIS,EAAGJ,EAAIM,EAAIV,EAAGoB,EAAI,KAAK,KACxN,KAAK,IAAIlB,EAAG,CAAC,EAAI,KAAK,IAAIE,EAAG,CAAC,EAAI,KAAK,IAAIc,EAAG,CAAC,CAChD,EAAEN,EAAI,KAAK,MAAMF,EAAGX,CAAC,GAAK,IAAM,KAAK,IAAKa,EAAI,GAC7CA,GAAK,IACP,IAAID,EAAI,KAAK,KAAK,KAAK,IAAIE,EAAG,CAAC,GAAK,KAAK,IAAIA,EAAG,CAAC,EAAI,KAAK,EAAGC,EAAIF,GAAK,KAAOA,GAAK,IAAM,IAAO,KAAK,IAAI,GAAM,KAAK,IAAIA,EAAI,GAAG,CAAC,EAAI,IAAO,KAAK,IAAI,GAAM,KAAK,IAAIA,EAAI,EAAE,CAAC,EAAGc,EAAI5B,EAAE,CAAC,EAAI,GAAK,KAAQ,QAAW,GAAK,EAAI,OAAU,GAAIiB,EAAI,MAASF,GAAK,EAAI,MAASA,GAAK,KAAOQ,EAAIN,GAAKJ,EAAIG,EAAI,EAAIH,GAAIN,EAAI,KAAK,KACjT,KAAK,IAAImB,GAAK9B,EAAIgC,GAAI,CAAC,EAAI,KAAK,IAAIR,GAAKtB,EAAImB,GAAI,CAAC,EAAI,KAAK,IAAIK,EAAIC,EAAG,CAAC,CACxE,EACD,OAAOhB,CACX,CACE,SAASb,GAAI,CACX,KAAK,MAAQ,CAAE,CACnB,CACEA,EAAE,UAAU,SAAW,SAASE,EAAGE,EAAGE,EAAG,CACvCA,EAAIA,GAAK,EACT,IAAIK,EAAIT,EAAE,KAAK,GAAG,EAAI,IAAME,EAAI,IAAME,EAAG,EAAI,KAAK,MAAMK,CAAC,EACzD,GAAI,EACF,OAAO,EACT,IAAIF,EAAIR,EAAEG,CAAC,EAAE,EAAGG,EAAIN,EAAEG,CAAC,EAAE,EAAGY,EAAIf,EAAEG,CAAC,EAAE,EAAGc,EAAIjB,EAAEG,CAAC,EAAE,KAAMI,EAAIT,EAAE,SAASG,CAAC,EAAGmB,EAAIb,EAAE,CAAC,EAAGgB,EAAIhB,EAAE,CAAC,EAAGkB,EAAIlB,EAAE,CAAC,EAAGwB,EAAIX,EAAGX,EAAIc,EAAGZ,EAAIc,EAAGE,EAAI,KAAK,IAAIP,EAAG,GAAG,EAAGD,EAAI,KAAK,IAAII,EAAG,GAAG,EAAGL,EAAI,KAAK,IAAIO,EAAG,GAAG,EAAGJ,EAAIM,EAAI,QAAWR,EAAI,QAAWD,EAAI,QAAUe,EAAIN,EAAI,QAAWR,EAAI,QAAWD,EAAI,SAAWI,EAAIK,EAAI,SAAYR,EAAI,QAAWD,EAAI,QAAUU,EAAIP,GAAKA,EAAIY,EAAIX,GAAIV,EAAIqB,GAAKZ,EAAIY,EAAIX,GAAIc,GAAKxB,EAAIN,IAAMsB,EAAIpB,GAAI6C,EAAKzC,EAAIgB,EAAIQ,EAAGD,GAAKlB,EAAIoC,IAAOjB,EAAIrB,GAAIC,GAAIoB,EAAID,EAAIkB,EACtchC,EAAIc,EAAIF,EAAIjB,GAAGM,GAAK,GAAKa,EAAInB,KAAMiB,EAAIjB,GACvC,IAAIH,GAAI,QAAWoB,EAAI,QAAUD,GAAI,QAAWC,EAAI,QAAUc,GAAIlC,GAAIQ,EAAGS,GAAIE,GAAIV,EAAGR,GAAIiC,GAAI,QAAUjB,GAAI,SAAWY,GAAIK,GAAI,SAAYjB,GAAI,SAAWkB,GAAID,GAAI,SAAYjB,GAAI,QAChLC,EAAIV,EAAI,QAAUY,EAAI,SAAWX,EAAI,SAAWb,EAAIY,EAAI,SAAYY,EAAI,QAAUX,EAAI,SAAWX,EAAIU,EAAI,SAAYY,EAAI,SAAYX,EAAI,QACzI,IAAIqB,KAAMZ,EAAI,EAAI,EAAI,GAAKA,GAAKjB,GAAG2C,KAAOhD,EAAI,EAAI,EAAI,GAAKA,GAAKiC,GAAGU,KAAOzC,EAAI,EAAI,EAAI,GAAKA,GAAKqC,GAAGV,GAAI,KAAK,IAE1GK,GAAI,GAAKA,GAAI,EAAI,EAAIA,GACrBc,GAAK,GAAKA,GAAK,EAAI,EAAIA,GACvBL,GAAK,GAAKA,GAAK,EAAI,EAAIA,EACxB,EACDrB,EAAIA,EAAIO,GAAIxB,GAAGL,EAAIA,EAAI6B,GAAII,GAAG/B,EAAIA,EAAI2B,GAAIU,GAAGjB,EAAI,KAAK,IAAIA,EAAG,EAAI,GAAG,EAAGtB,EAAI,KAAK,IAAIA,EAAG,EAAI,GAAG,EAAGE,EAAI,KAAK,IAAIA,EAAG,EAAI,GAAG,EAAGoB,EAAIX,GAAK,EAAIf,GAAK0B,EAAI1B,EAAGI,EAAIc,GAAK,EAAIlB,GAAKI,EAAIJ,EAAGM,EAAIc,GAAK,EAAIpB,GAAKM,EAAIN,EACnM,IAAImD,GAAK,CAACzB,EAAGtB,EAAGE,CAAC,EAAGiC,GAAI9C,EAAE,SAAS0D,EAAE,EACrC,OAAO,KAAK,MAAM9C,CAAC,EAAIkC,GAAGA,EAC9B,EAAK7C,EAAE,UAAU,UAAYF,EAAGE,EAAE,UAAU,IAAMH,EAAE,KAAK,KAAM,EAAG,CAAC,EAAGG,EAAE,UAAU,WAAa,SAASE,EAAGE,EAAGE,EAAG,CAC7G,OAAOF,EAAI,KAAK,SAASA,EAAGF,CAAC,EAAGI,EAAI,KAAK,SAASA,EAAGJ,CAAC,EAAG,KAAK,IAAIE,EAAGE,CAAC,CAC1E,EAAK,OAAO,KAAKL,CAAC,EAAE,QAAQ,SAASC,EAAG,CACpCF,EAAE,UAAUE,CAAC,EAAI,SAASE,EAAGE,EAAG,CAC9B,OAAO,KAAK,WAAWJ,EAAGE,EAAGE,CAAC,CAC/B,CACL,CAAG,EACD,IAAIH,EAAI,KACR,OAAOH,EAAE,UAAU,WAAa,SAASE,EAAGE,EAAG,CAC7C,IAAIE,EAAI,EAAGK,EAAI,KAAK,IAAIT,EAAGE,CAAC,EAC5B,OAAOE,GAAKK,EAAI,IAAKA,EAAI,KAAK,WAAW,YAAaT,EAAGE,CAAC,EAAG,MAAMO,CAAC,IAAML,GAAKK,EAAI,KAAMA,EAAI,KAAK,WAAW,cAAeT,EAAGE,CAAC,EAAG,MAAMO,CAAC,IAAML,GAAKK,EAAI,KAAMA,EAAI,KAAK,WAAW,YAAaT,EAAGE,CAAC,EAAG,MAAMO,CAAC,IAAML,GAAKK,EAAI,GAAIL,EAAIH,CACtO,EAAEH,EAAE,UAAU,IAAM,SAASE,EAAG,CAC/B,OAAOA,KAAKD,EAAI,KAAK,WAAW,KAAK,KAAMC,CAAC,EAAI,KAAKA,CAAC,EAAE,KAAK,IAAI,CACrE,EAAK,GAAKF,EAAG,EACb,CACA,IAAI,GAAI,GACR,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GACf,GAAK,EACL,IAAID,EAAI,CACN,IAAK,CAAC,EAAG,IAAK,EAAG,IAAK,EAAG,GAAG,EAC5B,QAAS,CAAC,EAAG,IAAK,GAAI,GAAI,GAAI,EAAE,EAChC,SAAU,CAAC,EAAG,IAAK,MAAO,MAAO,MAAO,KAAK,EAC7C,WAAY,CAAC,EAAG,IAAK,GAAI,GAAI,GAAI,EAAE,EACnC,cAAe,CAAC,EAAG,IAAK,GAAI,GAAI,GAAI,GAAG,EACvC,aAAc,CAAC,EAAG,IAAK,EAAG,GAAI,EAAG,EAAE,EACnC,OAAQ,CAAC,EAAG,IAAK,EAAG,GAAI,EAAG,GAAG,EAC9B,QAAS,CAAC,EAAG,IAAK,EAAG,GAAI,GAAI,EAAE,EAC/B,OAAQ,CAAC,EAAG,IAAK,EAAG,GAAI,GAAI,GAAG,EAC/B,KAAM,CAAC,EAAG,IAAK,GAAI,IAAK,GAAI,EAAE,EAC9B,QAAS,CAAC,EAAG,IAAK,GAAI,IAAK,GAAI,EAAE,EACjC,KAAM,CAAC,EAAG,IAAK,GAAI,IAAK,GAAI,GAAG,EAC/B,YAAa,CAAC,IAAK,GAAI,GAAI,IAAK,GAAI,GAAG,EACvC,aAAc,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAG,EACtC,cAAe,CAAC,GAAI,GAAI,GAAI,IAAK,GAAI,GAAG,EACxC,aAAc,CAAC,GAAI,IAAK,GAAI,IAAK,GAAI,GAAG,EACxC,WAAY,CAAC,IAAK,IAAK,EAAG,IAAK,GAAI,GAAG,EACtC,aAAc,CAAC,IAAK,IAAK,EAAG,GAAI,EAAG,EAAE,EACrC,eAAgB,CAAC,IAAK,IAAK,GAAI,IAAK,GAAI,GAAG,EAC3C,cAAe,CAAC,IAAK,IAAK,EAAG,IAAK,EAAG,EAAE,CACxC,EACD,OAAO,GAAKA,EAAG,EACjB,CACA,IAAI,GAAI,GACR,SAAS,IAAK,CACZ,GAAI,GAAI,OAAO,GACf,GAAK,EACL,IAAIA,EAAI,GAAE,EAAIE,EAAI,GAAE,EAAIH,EAAI,GAAE,EAAID,EAAI,KAAMG,EAAIF,EAAE,YAAaK,EAAIL,EAAE,SAAUI,EAAIJ,EAAE,YAAaM,EAAIN,EAAE,SAAUQ,EAAIR,EAAE,SAAUa,EAAI,CACpI,SAAU,EACV,YAAa,KACb,WAAY,UACZ,WAAY,UACZ,QAAS,GACT,eAAgB,GAChB,SAAU,YACV,KAAM,IACV,EAAK,EAAoB,IAAI,IAAI,CAAC,eAAgB,SAAS,CAAC,EAAGF,EAAoB,IAAI,IAAI,CACvF,YACA,MACA,aACA,YACA,cACA,WACJ,CAAG,EAAGF,EAAI,IAAI,IAAI,OAAO,KAAKV,CAAC,CAAC,EAC9B,SAASmB,EAAEN,EAAG,CACZ,QAASE,EAAI,EAAGgB,EAAI,EAAGR,EAAIV,EAAE,OAAQkB,EAAIR,EAAGQ,IAC1ChB,GAAKF,EAAE,WAAWkB,CAAC,EACrB,OAAOhB,CACX,CACE,SAASM,EAAER,EAAG,CACZ,IAAIE,EAAI,OAAO,OAAO,CAAA,EAAID,EAAGD,CAAC,EAC9B,GAAI,OAAOE,EAAE,UAAY,UAAYA,EAAE,UAAY,EACjD,MAAM,IAAI,MAAM,oEAAoE,EACtF,GAAIA,EAAE,aAAe,OAAOA,EAAE,aAAe,WAC3C,MAAM,IAAI,MAAM,gEAAgE,EAClF,GAAI,CAAC,EAAE,IAAIA,EAAE,UAAU,EACrB,MAAM,IAAI,MAAM,mCAAqCA,EAAE,WAAa,IAAI,EAC1E,GAAI,OAAOA,EAAE,SAAW,UAAY,MAAMA,EAAE,OAAO,GAAKA,EAAE,QAAU,EAClE,MAAM,IAAI,MAAM,sDAAsD,EACxE,GAAI,OAAOA,EAAE,gBAAkB,UAC7B,MAAM,IAAI,MAAM,0DAA0D,EAC5E,GAAI,CAACH,EAAE,IAAIG,EAAE,QAAQ,EACnB,MAAM,IAAI,MAAM,iCAAmCA,EAAE,SAAW,IAAI,EACtE,GAAI,OAAOA,EAAE,MAAQ,WAAaA,EAAE,KAAOI,EAAEJ,EAAE,IAAI,GAAIA,EAAE,OAAS,MAAQ,OAAOA,EAAE,MAAQ,SACzF,MAAM,IAAI,MAAM,6DAA6D,EAC/E,GAAI,CAACA,EAAE,aAAeA,EAAE,YAAcA,EAAE,aAAe,MAAO,CAC5D,IAAIgB,EACJ,GAAI,OAAOhB,EAAE,YAAc,SAAU,CACnC,GAAI,CAACL,EAAE,IAAIK,EAAE,UAAU,EACrB,MAAM,IAAI,MAAM,mCAAqCA,EAAE,WAAa,IAAI,EAC1EgB,EAAI/B,EAAEe,EAAE,UAAU,CACnB,SAAU,MAAM,QAAQA,EAAE,UAAU,EAAG,CACtC,GAAIA,EAAE,WAAW,SAAW,EAC1B,MAAM,IAAI,MAAM,8FAA8F,EAChHgB,EAAIhB,EAAE,UACP,MACCgB,EAAI,CACFhB,EAAE,WAAW,MAAQ,EACrBA,EAAE,WAAW,MAAQ,IACrBA,EAAE,WAAW,MAAQ,EACrBA,EAAE,WAAW,MAAQ,IACrBA,EAAE,WAAW,MAAQ,EACrBA,EAAE,WAAW,MAAQ,GACtB,EACHgB,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIhB,EAAE,YAAc,SAASQ,EAAGD,EAAG,CAC3C,IAAIG,EAAIlB,EAAEe,CAAC,EACX,OAAOG,EAAE,CAAC,GAAKM,EAAE,CAAC,GAAKN,EAAE,CAAC,GAAKM,EAAE,CAAC,GAAKN,EAAE,CAAC,GAAKM,EAAE,CAAC,GAAKN,EAAE,CAAC,GAAKM,EAAE,CAAC,GAAKN,EAAE,CAAC,GAAKM,EAAE,CAAC,GAAKN,EAAE,CAAC,GAAKM,EAAE,CAAC,CACnG,EAAGhB,EAAE,YAAc,SAASQ,EAAGD,EAAG,CACjC,IAAIG,EAAIlB,EAAEe,CAAC,EACX,OAAQG,EAAE,CAAC,GAAKM,EAAE,CAAC,GAAKN,EAAE,CAAC,GAAKM,EAAE,CAAC,IAAMN,EAAE,CAAC,GAAKM,EAAE,CAAC,GAAKN,EAAE,CAAC,GAAKM,EAAE,CAAC,GAAKN,EAAE,CAAC,GAAKM,EAAE,CAAC,GAAKN,EAAE,CAAC,GAAKM,EAAE,CAAC,CACrG,CACP,CACI,OAAOhB,CACX,CACE,SAASJ,EAAEE,EAAGE,EAAGgB,EAAG,CAClB,QAASR,EAAI,IAAI,MAAMR,CAAC,EAAGO,EAAGG,EAAGY,EAAI,EAAGA,EAAItB,EAAGsB,IAAK,CAClD,GACEf,EAAI,CACF,IAAMT,EAAG,EACT,KAAO,EAAIA,EAAG,EAAG,GACjB,KAAO,EAAIA,EAAC,EAAK,EAC3B,EAAWY,EAAInB,EAAEgB,CAAC,QACL,CAACS,EAAEN,EAAGH,CAAC,GACdC,EAAEc,CAAC,EAAIf,CACb,CACI,OAAOC,CACX,CACE,IAAIC,EAAI,IAAKG,EAAI,IACjB,SAASE,EAAEhB,EAAGE,EAAGgB,EAAGR,EAAGD,EAAG,CACxB,QAASG,EAAI,IAAI,MAAMF,EAAE,MAAM,EAAGc,EAAIf,EAAE,QAAU,GAAII,EAAGM,EAAGhB,EAAIO,EAAE,OAAQiB,EAAGiB,EAAIlB,EAAGnB,GAAGH,GAAGmB,GAAGe,GAAGjB,GAAGhB,GAAG4B,GAAGM,GAAGL,GAAGV,KAAM,GAAK,CACxH,IAAKX,EAAI,EAAGA,EAAIV,EAAGU,IACjBD,EAAEC,CAAC,EAAI,CAAE,GAAI,EAAG,GAAI,EAAG,GAAI,CAAG,EAChC,IAAKA,EAAI,EAAGA,EAAIV,EAAGU,IACjB,IAAKc,EAAIjB,EAAEG,CAAC,EAAGM,EAAI,EAAGA,EAAIN,EAAGM,IAC3ByB,EAAKlC,EAAES,CAAC,EAAGO,EAAIxB,EAAEyB,EAAGiB,CAAE,EAAGlB,EAAI,GAAKnB,GAAIoB,EAAE,CAAC,EAAIiB,EAAG,CAAC,EAAGxC,GAAIuB,EAAE,CAAC,EAAIiB,EAAG,CAAC,EAAGrB,GAAII,EAAE,CAAC,EAAIiB,EAAG,CAAC,EAAGN,GAAI3B,EAAI,KAAK,IAAIe,EAAG,CAAC,EAAGd,EAAEC,CAAC,EAAE,IAAMN,GAAI+B,GAAIZ,EAAGd,EAAEC,CAAC,EAAE,IAAMT,GAAIkC,GAAIZ,EAAGd,EAAEC,CAAC,EAAE,IAAMU,GAAIe,GAAIZ,EAAGd,EAAEO,CAAC,EAAE,IAAMZ,GAAI+B,GAAIZ,EAAGd,EAAEO,CAAC,EAAE,IAAMf,GAAIkC,GAAIZ,EAAGd,EAAEO,CAAC,EAAE,IAAMI,GAAIe,GAAIZ,IAAMd,EAAEO,CAAC,EAAE,IAAM,EAAI,EAAInB,EAAC,EAAIY,EAAEO,CAAC,EAAE,IAAM,EAAI,EAAInB,EAAG,EAAEY,EAAEO,CAAC,EAAE,IAAM,EAAI,EAAInB,KAC9T,IAAKa,EAAI,EAAGA,EAAIV,EAAGU,IACjBR,GAAIK,EAAEG,CAAC,EAAG0B,GAAIzB,EAAI,KAAK,KACrB,KAAK,IAAIF,EAAEC,CAAC,EAAE,GAAI,CAAC,EAAI,KAAK,IAAID,EAAEC,CAAC,EAAE,GAAI,CAAC,EAAI,KAAK,IAAID,EAAEC,CAAC,EAAE,GAAI,CAAC,CAClE,EAAE0B,GAAI,IAAMN,GAAInB,EAAI,KAAK,IAAI,GAAKyB,EAAC,EAAIA,GAAGlB,GAAI,CAC7ChB,GAAE,CAAC,EAAIO,EAAEC,CAAC,EAAE,GAAKoB,GACjB5B,GAAE,CAAC,EAAIO,EAAEC,CAAC,EAAE,GAAKoB,GACjB5B,GAAE,CAAC,EAAIO,EAAEC,CAAC,EAAE,GAAKoB,EAClB,EAAEC,GAAIzC,EAAE4B,EAAC,EAAGH,EAAEgB,GAAGb,EAAC,IAAMX,EAAEG,CAAC,EAAIQ,IACxC,CACA,CACE,SAASC,EAAEtB,EAAGE,EAAGgB,EAAGR,EAAG,CACrB,IAAID,EAAI,CAAA,EAAIG,EAAI,CAAA,EAAIY,EAAGX,EAAGM,EAAGhB,EAAGwB,EAAGiB,EAAK,EAAGlB,EAAI,GAAInB,GAAI,GACvD,IAAKG,EAAE,iBAAmBkC,EAAK,EAAGlB,EAAI,EAAGnB,GAAI,GAAIiB,EAAI,EAAGA,GAAK,IAAKA,GAAKoB,EACrE,IAAK/B,EAAI,KAAMA,GAAK,IAAKA,GAAKa,EAC5B,IAAKP,EAAI,KAAMA,GAAK,IAAKA,GAAKZ,GAC5BJ,EAAI,CAACqB,EAAGX,EAAGM,CAAC,EAAGQ,EAAIlC,EAAEU,CAAC,EAAGD,EAAEyB,EAAGxB,CAAC,IAAMM,EAAE,KAAKN,CAAC,EAAGS,EAAE,KAAK,IAAI,GACjE,QAASR,GAAIM,EAAE,QAASa,GAAGe,GAAGjB,GAAGhB,GAAG4B,GAAIxB,EAAE,OAAQ8B,GAAIrB,EAAE,OAAQgB,GAAGc,GAAIL,GAAId,GAAGkB,GAAIZ,GAAG/B,MAAM,GAAK,CAC9F,IAAKmB,GAAI,EAAGA,GAAIU,GAAGV,KACjB,IAAKlB,GAAII,EAAEc,EAAC,EAAGyB,GAAK,IAAOV,GAAI,EAAGA,GAAIC,GAAGD,KACvCjB,GAAIH,EAAEoB,EAAC,EAAGJ,GAAIlC,EAAEqB,GAAGhB,EAAC,EAAG6B,GAAIc,KAAOA,GAAKd,GAAGtB,EAAEW,EAAC,EAAIe,IACrD,IAAKK,GAAKlC,EAAE,QAAS6B,GAAI,EAAGA,GAAIC,GAAGD,KAAK,CACtC,IAAKT,GAAI,EAAGkB,GAAK,CAAC,EAAG,EAAG,CAAC,EAAGxB,GAAI,EAAGA,GAAIU,GAAGV,KACxCX,EAAEW,EAAC,IAAMe,KAAMT,KAAKkB,GAAG,CAAC,GAAKtC,EAAEc,EAAC,EAAE,CAAC,EAAGwB,GAAG,CAAC,GAAKtC,EAAEc,EAAC,EAAE,CAAC,EAAGwB,GAAG,CAAC,GAAKtC,EAAEc,EAAC,EAAE,CAAC,GACzE,GAAIM,KAAM,EACR,GAAIkB,GAAG,CAAC,GAAKlB,GAAGkB,GAAG,CAAC,GAAKlB,GAAGkB,GAAG,CAAC,GAAKlB,GAAGF,EAAIlC,EAAEsD,EAAE,EAAG7C,EAAEyB,EAAGoB,EAAE,EACxD7B,EAAEoB,EAAC,EAAIS,OACJ,CACH,GAAIJ,GAAG,OAAS,EAAG,CACjB,IAAKK,GAAK,IAAOb,GAAI,GAAIZ,GAAI,EAAGA,GAAIoB,GAAG,OAAQpB,KAC7CW,GAAIlC,EAAE2C,GAAGpB,EAAC,EAAGwB,EAAE,EAAGb,GAAIc,KAAOA,GAAKd,GAAGC,GAAIZ,IAC3CL,EAAEoB,EAAC,EAAI7B,EAAE0B,EAAC,CACxB,KAAmB,CACL,IAAKa,GAAK,IAAOb,GAAI,GAAIZ,GAAI,EAAGA,GAAId,EAAE,OAAQc,KAC5CW,GAAIlC,EAAES,EAAEc,EAAC,EAAGwB,EAAE,EAAGb,GAAIc,KAAOA,GAAKd,GAAGC,GAAIZ,IAC1CL,EAAEoB,EAAC,EAAI7B,EAAE0B,EAAC,CACxB,CACYQ,GAAKA,GAAG,OAAO,SAASD,GAAI,CAC1B,OAAOA,GAAG,CAAC,IAAMxB,EAAEoB,EAAC,EAAE,CAAC,GAAKI,GAAG,CAAC,IAAMxB,EAAEoB,EAAC,EAAE,CAAC,GAAKI,GAAG,CAAC,IAAMxB,EAAEoB,EAAC,EAAE,CAAC,CAC/E,CAAa,CACb,CACA,CACA,CACI,OAAOpB,CACX,CACE,OAAO,GAAK,SAAShB,EAAGgB,EAAG,CACzB,GAAI,OAAOhB,GAAK,UAAYA,EAAI,EAC9B,MAAM,IAAI,MAAM,wCAAwC,EAC1DgB,EAAIV,EAAEU,CAAC,EACP,IAAIR,EAAI,IAAIrB,EAAE6B,EAAE,IAAI,EAAGT,EAAI,UAAW,CACpC,OAAOC,EAAE,UAAW,CACrB,EAAEE,EAAI,IAAIrB,EAAKiC,EAAIZ,EAAE,IAAIM,EAAE,QAAQ,EAAGL,EAAI,SAASN,EAAGH,GAAG,CACxD,OAAOd,EAAEiB,CAAC,EAAIW,EAAE,YAAc,CAAC,CAACA,EAAE,YAAYX,EAAGH,EAAC,EAAI,GAAK,EACjE,EAAOe,EACH,GAAIjB,IAAM,EACR,OAAOiB,EAAIrB,EAAEW,EAAGP,EAAGW,CAAC,EAAG,CAACrB,EAAE2B,EAAE,CAAC,CAAC,CAAC,EACjC,QAAShB,EAAIe,EAAE,SAAUS,EAAGiB,EAAK,KAAQlB,EAAGvB,EAAI,GAC9CgB,EAAIrB,EAAEW,EAAGP,EAAGW,CAAC,EAAGK,EAAE,aAAe,eAAiBF,EAAEP,EAAGe,EAAGX,EAAGM,EAAGD,CAAC,EAAII,EAAEE,EAAGX,EAAGM,EAAGD,CAAC,EAAGS,EAAIvC,EAAE,sBAAsBoC,EAAGL,CAAC,EAAGQ,EAAE,IAAMiB,IAAOA,EAAKjB,EAAE,IAAKD,EAAIP,GAAIhB,IAC5J,OAAOgB,EAAIO,EAAGP,EAAIvB,EAAE4B,EAAGL,CAAC,EAAGA,EAAE,IAAI3B,CAAC,CACtC,EAAK,EACL,CACA,IAAI,GAAK,GAAI,EACb,MAAM,GAAqB,GAAG,EAAE,EAChC,SAAS,GAAGH,EAAGE,EAAG,CAChB,GAAI,OAAOF,GAAK,UAAY,CAACA,EAAG,OAAOA,EACvC,IAAID,EAAIC,EAAE,OAAO,WAAW,EAC5B,GAAID,IAAM,OAAQ,CAChB,IAAID,EAAIC,EAAE,KAAKC,EAAGE,CAAC,EACnB,GAAI,OAAOJ,GAAK,SAAU,OAAOA,EACjC,MAAM,IAAI,UAAU,8CAA8C,CACtE,CACE,OAAQI,IAAM,SAAW,OAAS,QAAQF,CAAC,CAC7C,CACA,SAAS,GAAGA,EAAG,CACb,IAAIE,EAAI,GAAGF,EAAG,QAAQ,EACtB,OAAO,OAAOE,GAAK,SAAWA,EAAIA,EAAI,EACxC,CACA,SAAS,GAAGF,EAAGE,EAAGH,EAAG,CACnB,OAAQG,EAAI,GAAGA,CAAC,KAAMF,EAAI,OAAO,eAAeA,EAAGE,EAAG,CACpD,MAAOH,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACX,CAAA,EAAIC,EAAEE,CAAC,EAAIH,EAAGC,CACjB,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,IAAIH,EAAI,OAAO,KAAKC,CAAC,EACrB,GAAI,OAAO,sBAAuB,CAChC,IAAIF,EAAI,OAAO,sBAAsBE,CAAC,EACtCE,IAAMJ,EAAIA,EAAE,OAAO,SAASG,EAAG,CAC7B,OAAO,OAAO,yBAAyBD,EAAGC,CAAC,EAAE,UACnD,CAAK,GAAIF,EAAE,KAAK,MAAMA,EAAGD,CAAC,CAC1B,CACE,OAAOC,CACT,CACA,SAAS,GAAGC,EAAG,CACb,QAASE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIH,EAAI,UAAUG,CAAC,GAAK,KAAO,UAAUA,CAAC,EAAI,CAAE,EAChDA,EAAI,EAAI,GAAG,OAAOH,CAAC,EAAG,EAAE,EAAE,QAAQ,SAASD,EAAG,CAC5C,GAAGE,EAAGF,EAAGC,EAAED,CAAC,CAAC,CACnB,CAAK,EAAI,OAAO,0BAA4B,OAAO,iBAAiBE,EAAG,OAAO,0BAA0BD,CAAC,CAAC,EAAI,GAAG,OAAOA,CAAC,CAAC,EAAE,QAAQ,SAASD,EAAG,CAC1I,OAAO,eAAeE,EAAGF,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CACvE,CAAK,CACL,CACE,OAAOE,CACT,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,GAAI,EAAEF,aAAaE,GAAI,MAAM,IAAI,UAAU,mCAAmC,CAChF,CACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,QAASH,EAAI,EAAGA,EAAIG,EAAE,OAAQH,IAAK,CACjC,IAAID,EAAII,EAAEH,CAAC,EACXD,EAAE,WAAaA,EAAE,YAAc,GAAIA,EAAE,aAAe,GAAI,UAAWA,IAAMA,EAAE,SAAW,IAAK,OAAO,eAAeE,EAAG,GAAGF,EAAE,GAAG,EAAGA,CAAC,CACpI,CACA,CACA,SAAS,GAAGE,EAAGE,EAAGH,EAAG,CACnB,OAAOG,GAAK,GAAGF,EAAE,UAAWE,CAAC,EAAG,OAAO,eAAeF,EAAG,YAAa,CACpE,SAAU,EACX,CAAA,EAAGA,CACN,CACA,SAAS,GAAGA,EAAG,CACb,OAAO,GAAK,OAAO,eAAiB,OAAO,eAAe,KAAI,EAAK,SAASE,EAAG,CAC7E,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CACjD,EAAK,GAAGF,CAAC,CACT,CACA,SAAS,IAAK,CACZ,GAAI,CACF,IAAIA,EAAI,CAAC,QAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,CAAA,EAAI,UAAW,CACtF,CAAK,CAAC,CACH,MAAW,CACd,CACE,OAAQ,GAAK,UAAW,CACtB,MAAO,CAAC,CAACA,CACb,GAAM,CACN,CACA,SAAS,GAAGA,EAAG,CACb,GAAIA,IAAM,OAAQ,MAAM,IAAI,eAAe,2DAA2D,EACtG,OAAOA,CACT,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,GAAIA,IAAM,OAAOA,GAAK,UAAY,OAAOA,GAAK,YAAa,OAAOA,EAClE,GAAIA,IAAM,OAAQ,MAAM,IAAI,UAAU,0DAA0D,EAChG,OAAO,GAAGF,CAAC,CACb,CACA,SAAS,GAAGA,EAAGE,EAAGH,EAAG,CACnB,OAAOG,EAAI,GAAGA,CAAC,EAAG,GAAGF,EAAG,GAAE,EAAK,QAAQ,UAAUE,EAAGH,GAAK,CAAE,EAAE,GAAGC,CAAC,EAAE,WAAW,EAAIE,EAAE,MAAMF,EAAGD,CAAC,CAAC,CACjG,CACA,SAAS,GAAGC,EAAGE,EAAG,CAChB,OAAO,GAAK,OAAO,eAAiB,OAAO,eAAe,KAAM,EAAG,SAASH,EAAGD,EAAG,CAChF,OAAOC,EAAE,UAAYD,EAAGC,CAC5B,EAAK,GAAGC,EAAGE,CAAC,CACZ,CACA,SAAS,GAAGF,EAAGE,EAAG,CAChB,GAAI,OAAOA,GAAK,YAAcA,IAAM,KAAM,MAAM,IAAI,UAAU,oDAAoD,EAClHF,EAAE,UAAY,OAAO,OAAOE,GAAKA,EAAE,UAAW,CAC5C,YAAa,CACX,MAAOF,EACP,SAAU,GACV,aAAc,EACpB,CACG,CAAA,EAAG,OAAO,eAAeA,EAAG,YAAa,CACxC,SAAU,EACX,CAAA,EAAGE,GAAK,GAAGF,EAAGE,CAAC,CAClB,CACA,SAAS,GAAGF,EAAGE,EAAG,EACfA,GAAK,MAAQA,EAAIF,EAAE,UAAYE,EAAIF,EAAE,QACtC,QAASD,EAAI,EAAGD,EAAI,MAAMI,CAAC,EAAGH,EAAIG,EAAGH,IAAKD,EAAEC,CAAC,EAAIC,EAAED,CAAC,EACpD,OAAOD,CACT,CACA,SAAS,GAAGE,EAAG,CACb,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAO,GAAGA,CAAC,CACnC,CACA,SAAS,GAAGA,EAAG,CACb,GAAI,OAAO,OAAU,KAAeA,EAAE,OAAO,QAAQ,GAAK,MAAQA,EAAE,YAAY,GAAK,KAAM,OAAO,MAAM,KAAKA,CAAC,CAChH,CACA,SAAS,GAAGA,EAAGE,EAAG,CAChB,GAAIF,EAAG,CACL,GAAI,OAAOA,GAAK,SAAU,OAAO,GAAGA,EAAGE,CAAC,EACxC,IAAIH,EAAI,CAAE,EAAC,SAAS,KAAKC,CAAC,EAAE,MAAM,EAAG,EAAE,EACvC,OAAOD,IAAM,UAAYC,EAAE,cAAgBD,EAAIC,EAAE,YAAY,MAAOD,IAAM,OAASA,IAAM,MAAQ,MAAM,KAAKC,CAAC,EAAID,IAAM,aAAe,2CAA2C,KAAKA,CAAC,EAAI,GAAGC,EAAGE,CAAC,EAAI,MAC1M,CACA,CACA,SAAS,IAAK,CACZ,MAAM,IAAI,UAAU;AAAA,mFAC6D,CACnF,CACA,SAAS,GAAGF,EAAG,CACb,OAAO,GAAGA,CAAC,GAAK,GAAGA,CAAC,GAAK,GAAGA,CAAC,GAAK,GAAI,CACxC,CACA,SAAS,GAAGA,EAAGE,EAAGH,EAAGD,EAAG,CACtB,IAAIG,EAAI,KAAK,IAAI,EAAID,EAAG,CAAC,EAAIE,EAAE,EAAI,GAAK,EAAIF,GAAKA,EAAID,EAAE,EAAI,KAAK,IAAIC,EAAG,CAAC,EAAIF,EAAE,EAAGM,EAAI,KAAK,IAAI,EAAIJ,EAAG,CAAC,EAAIE,EAAE,EAAI,GAAK,EAAIF,GAAKA,EAAID,EAAE,EAAI,KAAK,IAAIC,EAAG,CAAC,EAAIF,EAAE,EAC3J,MAAO,CACL,EAAGG,EACH,EAAGG,CACJ,CACH,CACA,SAAS,GAAGJ,EAAGE,EAAGH,EAAG,CACnB,QAASD,EAAI,GAAIG,EAAI,EAAGG,EAAIJ,EAAGG,EAAI,EAAGA,EAAIL,EAAGK,IAAK,CAChD,IAAIE,EAAI,IAAIF,EAAI,GAAKL,EAAGE,EAAGE,EAAGH,CAAC,EAC/BE,GAAK,KAAK,KAAK,KAAK,IAAIG,EAAE,EAAIC,EAAE,EAAG,CAAC,EAAI,KAAK,IAAID,EAAE,EAAIC,EAAE,EAAG,CAAC,CAAC,EAAGD,EAAIC,CACzE,CACE,OAAOJ,CACT,CACA,SAAS,GAAGD,EAAG,CACb,IAAIE,EAAIF,EAAE,mBAAoBD,EAAIC,EAAE,iBAAkBF,EAAIE,EAAE,iBAAkBC,EAAIH,IAAM,OAAS,GAAKA,EACtG,OAAO,SAASM,EAAGD,EAAGE,EAAGE,EAAGK,EAAG,CAC7B,IAAI,EAAIA,EAAE,cAAeF,EAAIP,EAAED,CAAC,GAAKH,EAAGS,EAAII,EAAE,cAAeK,EAAIL,EAAE,gBAAiBO,EAAIP,EAAE,eAAe,UAAYT,EAAES,EAAE,eAAe,SAAS,GAAKA,EAAE,eAAe,OAAS,OAASA,EAAE,eAAe,MAAOH,EAAIN,EAAE,MACvN,GAAIM,EAAG,CACLL,EAAE,UAAYe,EAAGf,EAAE,KAAO,GAAG,OAAOa,EAAG,GAAG,EAAE,OAAO,EAAG,KAAK,EAAE,OAAOT,CAAC,EACrE,IAAIc,EAAI,CAACrB,GAAKI,EAAE,EAAIE,EAAE,EAAGkB,EAAIH,EAAIjB,EAAE,EAAIE,EAAE,EAAGoB,EAAIL,EAAIjB,EAAE,EAAIE,EAAE,EAAG0B,EAAIX,EAAIf,EAAE,EAAIF,EAAE,EAAGM,EAAIW,EAAIf,EAAE,EAAIF,EAAE,EAAGQ,GAAKY,EAAIQ,GAAK,EAAGJ,GAAKF,EAAIhB,GAAK,EAAGU,EAAIY,EAAIR,EAAGL,EAAIT,EAAIgB,EAAGJ,EAAI,KAAK,KAAK,KAAK,IAAIF,EAAG,CAAC,EAAI,KAAK,IAAID,EAAG,CAAC,CAAC,EAAGe,EAAIb,EAAI,EAAI,GAAIE,EAAIX,EAAIO,EAAIV,EAAIyB,EAAGL,EAAID,EAAIR,EAAIX,EAAIyB,EAAGrB,EAAIX,EAAE,KAAO,GAAM,EAAGmC,EAAI,CAC3R,EAAGR,EAAIH,EACP,EAAG,EAAEH,EAAIC,EACjB,EAAS8B,EAAK,KAAK,KAAK,KAAK,IAAIjB,EAAE,EAAG,CAAC,EAAI,KAAK,IAAIA,EAAE,EAAG,CAAC,CAAC,EAAGD,EAAI,CAC1D,EAAG1B,EAAImB,EACP,EAAG,EAAEG,EAAIT,EACjB,EAASN,GAAI,KAAK,KAAK,KAAK,IAAImB,EAAE,EAAG,CAAC,EAAI,KAAK,IAAIA,EAAE,EAAG,CAAC,CAAC,EACpDZ,GAAKX,EAAIwB,EAAE,EAAIiB,EAAI5B,GAAKb,EAAIwB,EAAE,EAAIiB,EAAItB,GAAKnB,EAAIuB,EAAE,EAAInB,GAAGP,GAAKG,EAAIuB,EAAE,EAAInB,GAAGM,GAAKV,EAAIM,EAAIG,EAAGO,GAAKhB,EAAIO,EAAIE,EACvG,IAAIR,GAAI,CACN,EAAGS,EACH,EAAGM,CACJ,EAAEI,GAAI,CACL,EAAGT,EACH,EAAGE,CACJ,EAAEsB,GAAI,CACL,EAAGhB,EACH,EAAGtB,CACJ,EAAEqB,GAAI,GAAGE,GAAGnB,GAAGkC,EAAC,EACjB,GAAI,EAAEjB,GAAI3B,EAAE,KAAOE,EAAE,MAAO,CAC1B,IAAIS,GAAIZ,EAAE,YAAYK,CAAC,EAAE,MAAOmC,GAAIZ,GAAI3B,EAAE,KAAOE,EAAE,KACnD,GAAIS,GAAI4B,GAAG,CACT,IAAIM,GAAI,IACR,IAAKzC,EAAIA,EAAIyC,GAAGlC,GAAIZ,EAAE,YAAYK,CAAC,EAAE,MAAOO,GAAI4B,IAAKnC,EAAE,OAAS,GAC9DA,EAAIA,EAAE,MAAM,EAAG,EAAE,EAAIyC,GAAGlC,GAAIZ,EAAE,YAAYK,CAAC,EAAE,MAC/C,GAAIA,EAAE,OAAS,EAAG,MAC5B,CACQ,QAASoC,GAAI,GAAIc,GAAK,EAAGL,GAAK7C,EAAE,OAAQkD,GAAKL,GAAIK,KAAM,CACrD,IAAInB,GAAI/B,EAAEkD,EAAE,EACZd,GAAEL,EAAC,IAAMK,GAAEL,EAAC,EAAIpC,EAAE,YAAYoC,EAAC,EAAE,OAAS,EAAI9B,EAAI,KAC5D,CACQ,QAASgD,GAAK,GAAM1C,GAAIgB,GAAI,EAAGc,GAAI,EAAGO,GAAK5C,EAAE,OAAQqC,GAAIO,GAAIP,KAAK,CAChE,IAAIM,GAAK3C,EAAEqC,EAAC,EAAGqB,EAAK,GAAGT,GAAIxB,GAAGnB,GAAGkC,EAAC,EAAG,EAAI,GAAK,EAAIS,KAAOlC,EAAIC,GAAK,EAAIiC,IAAMzB,EAAIT,GAAIe,GAAI,GAAK,EAAImB,KAAO5B,EAAIH,GAAK,EAAI+B,IAAM/C,EAAImB,GAAIF,EAAI,KAAK,MAAMW,GAAG,CAAC,EACtJnC,EAAE,KAAI,EAAIA,EAAE,UAAU+D,EAAG,EAAGA,EAAG,CAAC,EAAG/D,EAAE,OAAOwB,CAAC,EAAGxB,EAAE,SAASgD,GAAI,EAAG,CAAC,EAAGhD,EAAE,QAAO,EAAIsD,IAAMb,GAAEO,EAAE,EAAIpB,EAC3G,CACA,CACA,CACG,CACH,CACA,SAAS,GAAGhC,EAAG,CACb,IAAIE,EAAIF,EAAE,UAAWD,EAA0BG,GAAE,YAAe,UAAkCA,GAAE,YAAe,OAAQJ,EAA0BI,GAAE,YAAe,UAAkCA,GAAE,YAAe,OAAQD,EAE/N;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASF,OAAOF,EAAI;AAAA;AAAA,6BAEkB,GAAI;AAAA,CAClC,EAAE,OAAOD,EAAI;AAAA;AAAA,6BAEiB,GAAI;AAAA,CAClC,EAAE,OAAOI,EAAI;AAAA;AAAA,2CAE+B,GAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CA4BhD,EAAE,OAAOH,EAAI;AAAA;AAAA;AAAA;AAAA;AAAA,KAKP,GAAI;AAAA,CACV,EAAE,OAAOD,EAAI;AAAA;AAAA;AAAA;AAAA;AAAA,KAKP,GAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAmBV,EAEC,OAAOG,CACT,CACA,SAAS,GAAGD,EAAG,CACb,IAAIE,EAAIF,EAAE,UAAWD,EAA0BG,GAAE,YAAe,UAAkCA,GAAE,YAAe,OAAQJ,EAA0BI,GAAE,YAAe,UAAkCA,GAAE,YAAe,OAAQD,EAE/N;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASF,OAAOF,EAAI;AAAA,EACT,GAAI;AAAA,CACP,EAAE,OAAOD,EAAI;AAAA,EACV,GAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAeP,EAAE,OAAOC,EAAI;AAAA;AAAA,6BAEiB,GAAI;AAAA,CAClC,EAAE,OAAOD,EAAI;AAAA;AAAA,6BAEiB,GAAI;AAAA,CAClC,EAAE,OAAOI,EAAI;AAAA,2CAC+B,GAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8EAkD6B,EAAE,OAAOA,EAAI,8CAAgD,iBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAO5J,EAAE,OAAOH,EAAI;AAAA;AAAA;AAAA,EAGV,GAAI;AAAA,CACP,EAAE,OAAOD,EAAI;AAAA;AAAA;AAAA,EAGV,GAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAYP,EAEC,OAAOG,CACT,CACA,IAAI,GAAK,IAAM,GAAK,CAClB,UAAW,KACX,mBAAoB,YACpB,iBAAkB,EACpB,EAAG,GAAK,CACN,mBAAoB,gBACpB,sBAAuB,mBACvB,sBAAuB,kBACzB,EACA,SAAS,GAAGD,EAAGE,EAAG,CAChB,IAAIH,EAAI,GAAG,GAAG,CAAA,EAAI,EAAE,EAAGG,GAAK,CAAA,CAAE,EAAGJ,EAAI,CAAE,EAAEG,EAAI,CAAA,EAAIG,EAAI,CAAA,EAAID,EAAI,EAC7DH,EAAE,YAAY,SAAS6B,EAAG,CACxB/B,EAAE+B,CAAC,EAAI,EAAE1B,EAAI,EACjB,CAAG,EAAGH,EAAE,YAAY,SAAS6B,EAAGR,EAAGD,EAAGG,EAAG,CACrC,IAAIY,EAAIrC,EAAEsB,CAAC,EAAGI,EAAI1B,EAAEyB,CAAC,EAAGO,EAAI,CAACK,EAAGX,CAAC,EAAE,KAAK,GAAG,EAC3CvB,EAAE4B,CAAC,EAAIC,EAAG1B,EAAE0B,CAAC,EAAI,CAACK,EAAGX,CAAC,EAAE,OAAO,KAAK,GAAG,CAC3C,CAAG,EACD,IAAInB,EAAI,GAAIE,EAAI,CAAE,EAClBP,EAAE,YAAY,SAAS6B,EAAG,CACxB,IAAIR,EAAIpB,EAAE4B,CAAC,EAAGT,EAAIhB,EAAEiB,CAAC,EACrBhB,EAAEgB,CAAC,EAAIhB,EAAEgB,CAAC,GAAK,CAAE,EAAEhB,EAAEgB,CAAC,EAAE,KAAKQ,CAAC,EAAGtB,EAAEa,CAAC,EAAIb,EAAEa,CAAC,GAAK,GAAIb,EAAEa,CAAC,EAAE,KAAKS,CAAC,CACnE,CAAG,EACD,QAASjB,KAAKP,EAAG,CACf,IAAI,EAAIA,EAAEO,CAAC,EAAGF,EAAI,EAAE,OAAQF,EAAID,EAAEH,EAAEQ,CAAC,CAAC,EAAE,OACxC,GAAIF,IAAM,GAAKF,IAAM,EAAG,CACtB,IAAIS,EAAI,EAAE,CAAC,EACXjB,EAAE,iBAAiBiB,EAAGlB,EAAE,mBAAoB,IAAI,EAAGC,EAAE,iBAAiBiB,EAAGlB,EAAE,sBAAuB,IAAI,CAC5G,SAAeW,IAAM,EAAG,CAClB,IAAIS,EAAI,EAAE,CAAC,EACXnB,EAAE,iBAAiBmB,EAAGpB,EAAE,mBAAoB,CAAC,EAAGC,EAAE,iBAAiBmB,EAAGpB,EAAE,sBAAuB,CAAC,CACtG,SAAeW,IAAMF,EACf,QAASC,GAAKC,EAAI,GAAK,EAAGY,EAAI,CAACb,EAAGgB,EAAI,EAAGA,EAAIf,EAAGe,IAAK,CACnD,IAAIE,EAAI,EAAEF,CAAC,EAAGQ,EAAI,EAAEvB,EAAI,GAAK,EAAIe,EACjCzB,EAAE,iBAAiB2B,EAAG5B,EAAE,mBAAoBkC,CAAC,EAAGjC,EAAE,iBAAiB2B,EAAG5B,EAAE,sBAAuBuB,CAAC,EAAGtB,EAAE,iBAAiB2B,EAAG5B,EAAE,sBAAuBU,CAAC,CAC3J,KAEM,SAASE,EAAI,EAAGA,EAAID,EAAGC,IAAK,CAC1B,IAAIE,EAAI,EAAEF,CAAC,EACXX,EAAE,iBAAiBa,EAAGd,EAAE,mBAAoBY,EAAI,CAAC,EAAGX,EAAE,iBAAiBa,EAAGd,EAAE,sBAAuBW,CAAC,CAC5G,CACA,CACA,CACA,IAAI,GAAK,sBAAuB,GAAK,GAAG,cAAe,GAAK,GAAG,MAC/D,SAAS,GAAGV,EAAG,CACb,IAAIE,EAAI,GAAG,GAAG,CAAA,EAAI,EAAE,EAAGF,GAAK,CAAE,CAAA,EAAGD,EAAIG,EAAGJ,EAAIC,EAAE,UAAWE,EAAIF,EAAE,mBAAoBK,EAAIL,EAAE,UAAWI,EAA0BL,GAAE,YAAe,UAAkCA,GAAE,YAAe,OAAQO,EAA0BP,GAAE,YAAe,UAAkCA,GAAE,YAAe,OAAQS,EAAI,CAAC,WAAY,cAAe,eAAgB,eAAgB,YAAa,oBAAoB,EAAE,OAAO,GAAGT,EAAI,CAAC,2BAA4B,4BAA4B,EAAI,CAAA,CAAE,CAAC,EACje,OAAuB,SAASc,EAAG,CACjC,GAAG,EAAGA,CAAC,EACP,SAAS,GAAI,CACX,IAAIF,EACJ,GAAG,KAAM,CAAC,EACV,QAASF,EAAI,UAAU,OAAQS,EAAI,IAAI,MAAMT,CAAC,EAAGW,EAAI,EAAGA,EAAIX,EAAGW,IAC7DF,EAAEE,CAAC,EAAI,UAAUA,CAAC,EACpB,OAAOT,EAAI,GAAG,KAAM,EAAG,GAAG,OAAOO,CAAC,CAAC,EAAG,GAAG,GAAGP,CAAC,EAAG,YAAaN,GAAK,GAAGF,CAAC,CAAC,EAAGQ,CAChF,CACI,OAAO,GAAG,EAAG,CAAC,CACZ,IAAK,gBACL,MAAO,UAAW,CAChB,MAAO,CACL,SAAU,EACV,qBAAsB,GAAGR,CAAC,EAC1B,uBAAwB,GAAGA,CAAC,EAC5B,OAAQ,sBAAsB,UAC9B,SAAUK,EACV,WAAY,CAAC,CACX,KAAM,WACN,KAAM,EACN,KAAM,EAClB,EAAa,CACD,KAAM,WACN,KAAM,EACN,KAAM,EACP,CAAA,EAAE,OAAO,GAAGJ,EAAI,CAAC,CAChB,KAAM,eACN,KAAM,EACN,KAAM,EACP,CAAA,EAAI,CAAE,CAAA,EAAG,GAAGE,EAAI,CAAC,CAChB,KAAM,eACN,KAAM,EACN,KAAM,EAClB,CAAW,EAAI,CAAE,CAAA,EAAG,CAAC,CACT,KAAM,cACN,KAAM,EACN,KAAM,EAClB,EAAa,CACD,KAAM,cACN,KAAM,EACN,KAAM,EAClB,EAAa,CACD,KAAM,UACN,KAAM,EACN,KAAM,GACN,WAAY,EACxB,EAAa,CACD,KAAM,OACN,KAAM,EACN,KAAM,GACN,WAAY,EACxB,CAAW,CAAC,EACF,oBAAqB,CACnB,CACE,KAAM,YACN,KAAM,EACN,KAAM,EACP,EAED,CACE,KAAM,cACN,KAAM,EACN,KAAM,EACpB,CAEW,EACD,cAAe,CAAC,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAE,EAAG,CAAC,EAAG,CAAC,EAAG,CAAC,EAAG,EAAE,CAAC,CAClE,CACT,CACA,EAAO,CACD,IAAK,qBACL,MAAO,SAASG,EAAGS,EAAGE,EAAGV,EAAGa,EAAG,CAC7B,IAAIG,EAAGE,EAAIL,EAAE,MAAQ,EAAGW,EAAId,EAAE,EAAGR,EAAIQ,EAAE,EAAGN,EAAIJ,EAAE,EAAGoB,EAAIpB,EAAE,EAAGY,EAAI,GAAGC,EAAE,KAAK,EAAGF,GAAKK,EAAIH,EAAErB,CAAC,KAAO,MAAQwB,IAAM,OAASA,EAAI,GAAIF,EAAI,KAAK,MACxIA,EAAEN,GAAG,EAAIgB,EAAGV,EAAEN,GAAG,EAAIN,EAAGY,EAAEN,GAAG,EAAIJ,EAAGU,EAAEN,GAAG,EAAIY,EAAG1B,IAAMoB,EAAEN,GAAG,EAAIR,EAAE,MAAOJ,IAAMkB,EAAEN,GAAG,EAAIE,EAAE,MAAOI,EAAEN,GAAG,EAAIU,EAAGJ,EAAEN,GAAG,EAAIG,EAAGG,EAAEN,GAAG,EAAII,EAAGE,EAAEN,GAAG,EAAIT,CACrJ,CACA,EAAO,CACD,IAAK,cACL,MAAO,SAASA,EAAGS,EAAG,CACpB,IAAIE,EAAIF,EAAE,GAAIR,EAAIQ,EAAE,iBAAkBK,EAAIb,EAAE,SAAUgB,EAAIhB,EAAE,aAAckB,EAAIlB,EAAE,UAAWwB,EAAIxB,EAAE,YAAaE,EAAIF,EAAE,aAAcI,EAAIJ,EAAE,mBACxI,GAAIU,EAAE,iBAAiBG,EAAG,GAAId,EAAE,MAAM,EAAGW,EAAE,UAAUM,EAAGjB,EAAE,UAAU,EAAGW,EAAE,UAAUc,EAAGzB,EAAE,SAAS,EAAGW,EAAE,UAAUQ,EAAGnB,EAAE,mBAAmB,EAAGW,EAAE,UAAUR,EAAGH,EAAE,MAAQA,EAAE,WAAYA,EAAE,OAASA,EAAE,UAAU,EAAGW,EAAE,UAAUN,EAAGL,EAAE,gBAAgB,EAAGV,EAAG,CACjP,IAAI+B,EAAIpB,EAAE,yBAA0BY,EAAIZ,EAAE,2BAC1CU,EAAE,UAAUU,EAAG/B,EAAE,sBAAsB,EAAGqB,EAAE,UAAUE,EAAGvB,EAAE,wBAAwB,CAC7F,CACA,CACK,CAAA,CAAC,EAAG,CACN,EAAC,EAAE,CACN,CACA,GAAI,EACJ,IAAI,GAAK,GAAG,CACV,UAAW,EACb,CAAC,EACD,GAAG,CACD,UAAW,GAAG,GAAG,CAAE,EAAE,EAAE,EAAG,CAAA,EAAI,CAC5B,UAAW,MACZ,CAAA,CACH,CAAC,EACD,SAAS,GAAGE,EAAGE,EAAG,CAChB,IAAIH,EAAI,GACR,UAAWD,KAAKE,EACdE,EAAE,WAAWF,EAAEF,CAAC,CAAC,GAAKA,EAAE,OAASC,EAAE,SAAWA,EAAID,GACpD,OAAOC,IAAM,GAAKG,EAAIA,EAAE,QAAQF,EAAED,CAAC,EAAGA,EAAI,GAAG,CAC/C,CACA,SAAS,GAAGC,EAAGE,EAAG,CAChB,GAAIA,GAAK,EACP,MAAM,IAAI,MAAM,kBAAkB,EACpC,GAAIF,EAAI,EACN,MAAO,CAAC,GAAG,CAACA,EAAGE,CAAC,EAClB,MAAMH,EAAI,IACV,OAAOA,GAAK,EAAI,KAAK,IAAI,CAACG,EAAIH,CAAC,GAAK,GAAKC,EAAIE,CAC/C,CACA,MAAM,GAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmFR,GAAK,oBAAqB,GAAK,UAClC,MAAM,EAAG,CAOP,YAAYA,EAAGH,EAAGD,EAAI,CAAA,EAAI,CACxB,GAAI,KAAK,WAAa,CAAE,EAAE,KAAK,MAAQ,IAAI,GAAG,CAAE,MAAO,EAAI,CAAA,EAAG,KAAK,SAAW,CAAE,EAAE,KAAK,WAAa,CAAE,EAAE,KAAK,eAAiC,IAAI,IAAO,KAAK,aAA+B,IAAI,IAAO,KAAK,cAAgC,IAAI,IAAO,KAAK,YAAc,GAAI,KAAK,aAAe,KAAM,KAAK,IAAMI,EAAG,KAAK,UAAYH,EAAG,KAAK,SAAWD,EAAG,KAAK,UAAS,EAAI,OAAO,KAAK,KAAK,SAAS,EAAE,SAAW,EACrZ,MAAM,IAAI,MAAM,yEAAyE,EAC3F,KAAK,IAAI,MAAM,OAAS,OACxB,MAAMG,EAAI,SAAS,cAAc,OAAO,EACxCA,EAAE,YAAc,GAChB,MAAMG,EAAI,SAAS,cAAc,KAAK,EACtCA,EAAE,GAAK,kBAAmBA,EAAE,MAAM,QAAU,OAAQA,EAAE,UAAY,YAAaA,EAAE,MAAM,OAAS,OAChG,IAAID,EAAI,GACR,UAAWM,KAAK,OAAO,KAAK,KAAK,SAAS,EACxCN,GAAK,eAAeM,CAAC,2BAA2BA,CAAC,kBACnDL,EAAE,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yEAUuD,OAAO,KAAK,KAAK,SAAS,EAAE,OAAS,EAAI,IAAM,EAAE;AAAA;AAAA,YAE9GD,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA8CN,KAAK,IAAI,YAAYF,CAAC,EAAG,KAAK,IAAI,YAAYG,CAAC,EAClD,MAAMC,EAAID,EAAE,cAAc,qBAAqB,EAAGG,EAAIH,EAAE,cAAc,uBAAuB,EAC7FC,EAAE,iBAAiB,QAAS,IAAM,GAAG,KAAM,KAAM,WAAa,CAC5DE,EAAE,UAAS,EAAI,KAAK,aAAeA,EAAG,QAAQ,UAAU,CAAE,WAAY,EAAE,EAAI,EAAE,CAC/E,CAAA,CAAC,EAAGH,EAAE,cAAc,sBAAsB,EAAE,iBAAiB,QAAS,IAAM,GAAG,KAAM,KAAM,WAAa,CACvGG,EAAE,MAAO,CACf,CAAK,CAAC,EAAGA,EAAE,iBAAiB,QAAS,IAAM,GAAG,KAAM,KAAM,WAAa,CACjE,KAAK,aAAe,IACrB,CAAA,CAAC,EAAGH,EAAE,cAAc,uBAAuB,EAAE,iBAAiB,QAAS,IAAM,GAAG,KAAM,KAAM,WAAa,CACxG,IAAIK,EACJ,aAAa,WAAW,0BAA0B,GAAIA,EAAI,KAAK,WAAa,MAAQA,EAAE,KAAM,EAAE,KAAK,WAAa,CAAE,EAAE,KAAK,MAAQ,IAAI,GAAG,CAAE,MAAO,GAAI,EAAG,KAAK,SAAW,CAAA,EAAI,KAAK,WAAa,CAAE,EAAE,KAAK,eAAe,MAAK,EAAI,KAAK,aAAa,MAAO,EAAE,KAAK,WAAW,qBAAqB,EAAG,KAAK,WAAU,EAAIF,EAAE,MAAO,CAC/T,CAAA,CAAC,EAAG,KAAK,IAAI,iBAAiB,SAAU,IAAM,CAC7C,IAAIE,GACHA,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,GAAI,CACrE,CAAK,EAAGL,EAAE,cAAc,sBAAsB,EAAE,iBAAiB,QAAS,IAAM,CAC1E,IAAIkB,EACJlB,EAAE,iBAAiB,kDAAkD,EAAE,QAASqB,GAAM,CACpFA,EAAE,QAAU,EACb,CAAA,EAAG,KAAK,eAAe,MAAO,GAAGH,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,EAAE,CAAE,CACtG,CAAK,EAAGlB,EAAE,cAAc,sBAAsB,EAAE,iBAAiB,QAAS,IAAM,CAC1E,IAAIkB,EACJlB,EAAE,iBAAiB,kDAAkD,EAAE,QAASqB,GAAM,CACpFA,EAAE,QAAU,EACpB,CAAO,EAAG,KAAK,eAAiB,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,GAAIH,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,GAAI,CACtI,CAAK,EAAGlB,EAAE,cAAc,yBAAyB,EAAE,iBAAiB,QAAS,IAAM,CAC7E,IAAIkB,EACJlB,EAAE,iBAAiB,gDAAgD,EAAE,QAASqB,GAAM,CAClFA,EAAE,QAAU,EACpB,CAAO,EAAG,KAAK,aAAa,MAAO,EAAE,KAAK,uBAAsB,GAAKH,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,GAAI,CACnI,CAAK,EAAGlB,EAAE,cAAc,yBAAyB,EAAE,iBAAiB,QAAS,IAAM,CAC7E,IAAIkB,EACJlB,EAAE,iBAAiB,gDAAgD,EAAE,QAASqB,GAAM,CAClFA,EAAE,QAAU,EACpB,CAAO,EAAG,KAAK,aAAe,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAG,KAAK,uBAAsB,GAAKH,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,GAAI,CACjK,CAAK,EAAG,KAAK,WAAY,EAAE,OAAO,iBAAiB,WAAab,GAAM,CAChE,KAAK,eAAiB,KAAK,aAAa,MAAK,EAAI,KAAK,aAAe,KAAMA,EAAE,eAAc,EACjG,CAAK,CACL,CACE,YAAa,CACX,OAAO,GAAG,KAAM,KAAM,WAAa,CACjC,KAAK,MAAM,QAAQ,OAAS,IAAM,MAAM,KAAK,UAAS,EAAI,KAAK,MAAM,MAAO,EAAC,OAAS,GAAK,KAAK,aAAc,MAAM,KAAK,YAAa,EACtI,MAAMP,EAAI,KAAK,IAAI,cAAc,cAAc,EAC/CA,EAAE,MAAM,OAAS,QAAUA,EAAE,MAAM,QAAU,OACnD,CAAK,CACL,CAEE,WAAY,CACV,OAAO,GAAG,KAAM,KAAM,WAAa,CACjC,IAAIH,EAAI,EACR,SAAW,CAACM,EAAGE,CAAC,IAAK,OAAO,QAAQ,KAAK,SAAS,EAChD,GAAIA,EACF,UAAWK,KAAKL,EAAG,CACjB,MAAMD,EAAIM,EAAE,QAAU,SAASA,EAAE,QAAQ,KAAK,EAAI,EAClDb,EAAIO,IAAMP,EAAIO,GACd,MAAMI,EAAIE,EAAE,aAAa,MAAOJ,EAAII,EAAE,WAAaA,EAAE,WAAW,MAAQA,EAAE,MAAQ,KAAK,SAASA,EAAE,MAAM,KAAK,EAAI,GAAIK,EAAI,KAAK,SAASP,CAAC,EACxI,GAAI,KAAK,MAAM,QAAQA,CAAC,IAAM,KAAK,MAAM,QAAQA,EAAG,CAClD,MAAOO,EACP,MAAOA,EAEP,KAAM,EACN,QAAST,EACT,UAAW,CAAE,EACb,UAAW,CAAA,CACzB,CAAa,EAAGI,EAAE,oBAAsB,KAAK,MAAM,oBAAoBF,EAAG,eAAgB,IAAME,EAAE,kBAAkB,KAAK,EAAG,KAAK,MAAM,oBAAoBF,EAAG,QAAS,IAAME,EAAE,kBAAkB,KAAK,GAAIA,EAAE,qBAAuB,KAAK,MAAM,oBAAoBF,EAAG,UAAW,IAAME,EAAE,oBAAoB,KAAK,GAAIJ,IAAM,IAAM,KAAK,MAAM,oBAAoBE,EAAG,UAAW,IAAMF,CAAC,EAAG,KAAK,MAAM,oBAAoBE,EAAG,QAAUS,GAAMA,EAAIb,CAAC,EAAG,KAAK,MAAM,oBAAoBI,EAAG,YAAcS,GAAMA,EAAE,SAASd,CAAC,EAAIc,EAAI,CAAC,GAAGA,EAAGd,CAAC,CAAC,EAAGO,EAAE,gBAAkB,KAAK,MAAM,oBAAoBF,EAAG,YAAcS,IAAOA,EAAE,KAAMG,GAAMA,EAAE,UAAYV,EAAE,KAAK,OAASU,EAAE,cAAgBV,EAAE,eAAe,KAAK,GAAKO,EAAE,KAAK,CACrqB,UAAW,KAAK,SAASP,EAAE,KAAK,KAAK,EACrC,QAASA,EAAE,KAAK,MAChB,cAAe,KAAK,SAASA,EAAE,eAAe,KAAK,EACnD,YAAaA,EAAE,eAAe,MAC9B,MAAO,SAASA,EAAE,QAAQ,KAAK,CAC7C,CAAa,EAAGO,EAAE,EAAGP,EAAE,aAAe,CAACA,EAAE,eAAgB,CAC3C,MAAMO,EAAIP,EAAE,YAAY,MACxB,GAAI,CAAC,KAAK,MAAM,QAAQO,CAAC,EAAG,CAC1B,MAAMM,EAAI,KAAK,SAASN,CAAC,EACzB,KAAK,MAAM,QAAQA,EAAG,CACpB,MAAOM,EACP,MAAOA,EAEP,KAAM,EACN,QAASjB,EACT,UAAW,CAAE,EACb,UAAW,CAAA,CAC7B,CAAiB,EAAGI,EAAE,mBAAqB,KAAK,MAAM,oBAAoBO,EAAG,eAAgB,IAAMP,EAAE,iBAAiB,KAAK,EAAG,KAAK,MAAM,oBAAoBO,EAAG,QAAS,IAAMP,EAAE,iBAAiB,KAAK,GAAIA,EAAE,oBAAsB,KAAK,MAAM,oBAAoBO,EAAG,UAAW,IAAMP,EAAE,mBAAmB,KAAK,CAChT,CACc,KAAK,MAAM,oBAAoBO,EAAG,YAAcM,GAAMA,EAAE,SAASpB,CAAC,EAAIoB,EAAI,CAAC,GAAGA,EAAGpB,CAAC,CAAC,EAAGG,IAAM,IAAM,KAAK,MAAM,oBAAoBW,EAAG,UAAW,IAAMX,CAAC,EACtJ,MAAMC,EAAI,KAAK,SAASG,EAAE,KAAK,KAAK,EACpC,IAAIU,EAAI,GACR,UAAWG,KAAK,KAAK,MAAM,MAAMf,EAAGS,CAAC,EACnC,GAAI,KAAK,MAAM,kBAAkBM,CAAC,EAAE,QAAUhB,EAAG,CAC/Ca,EAAI,GACJ,KAClB,CACc,GAAI,CAACA,EAAG,CACN,MAAMG,EAAI,CACR,MAAOhB,EACP,MAAOA,EACP,IAAKG,EAAE,KAAK,MACZ,MAAON,EACP,KAAM,OACP,EACDM,EAAE,UAAYa,EAAE,QAAU,SAASb,EAAE,QAAQ,KAAK,GAAIA,EAAE,YAAca,EAAE,MAAQA,EAAE,MAAOA,EAAE,MAAQb,EAAE,UAAU,MAAOa,EAAE,aAAeb,EAAE,UAAU,OAAQA,EAAE,cAAgBa,EAAE,QAAUb,EAAE,YAAY,OAAQ,KAAK,MAAM,QAAQF,EAAGS,EAAGM,CAAC,CACzP,CACA,CACA,CACM,GAAI,KAAK,MAAM,MAAK,EAAG,OAAS,EAAG,CACjC,KAAK,WAAW,0CAA0C,OAAO,KAAK,KAAK,SAAS,EAAE,KAAK,IAAI,CAAC,GAAI,EAAE,EACtG,MACR,CACM,KAAK,MAAM,YAAY,CAACpB,EAAGE,IAAM,CAC/B,KAAK,SAASA,EAAE,OAAO,EAAI,KAAK,SAASA,EAAE,OAAO,EAAE,OAAS,EAAI,KAAK,SAASA,EAAE,OAAO,EAAI,CAAE,MAAOA,EAAE,QAAS,UAAW,CAAA,EAAI,MAAO,EAAG,SAAU,CAAC,GAAGA,EAAE,SAAS,EAAE,CAAC,CAAG,CAChL,CAAO,EACD,UAAWF,KAAK,KAAK,SACnB,KAAK,SAASA,CAAC,EAAE,QAAU,GAAK,OAAO,KAAK,SAASA,CAAC,EACxD,MAAMP,EAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,EAAE,OAAQ,CAAE,KAAM,oBAAoB,CAAE,EAC9E,UAAWO,KAAK,KAAK,SACnB,KAAK,SAASA,CAAC,EAAE,MAAQP,EAAE,IAAK,EAClC,MAAMG,EAAI,CAAE,EACZ,IAAIG,EAAI,EACR,UAAWC,KAAK,KAAK,SAAU,CAC7B,MAAME,EAAIH,EAAI,EAAI,KAAK,GAAK,OAAO,KAAK,KAAK,QAAQ,EAAE,OACvDA,IACA,MAAMQ,EAAI,IACVX,EAAEI,CAAC,EAAI,CACL,EAAGO,EAAI,KAAK,IAAIL,CAAC,EACjB,EAAGK,EAAI,KAAK,IAAIL,CAAC,CAClB,CACT,CACM,MAAMJ,EAAI,EACV,KAAK,MAAM,YAAY,CAACE,EAAGE,IAAM,CAC/BA,EAAE,KAAOA,EAAE,MAAQJ,EAAIJ,EAAGQ,EAAE,KAAO,IAAMA,EAAE,KAAO,EAC1D,CAAO,EAAG,KAAK,MAAM,YAAY,CAACF,EAAGE,IAAM,CACnC,MAAMK,EAAIX,EAAEM,EAAE,OAAO,EAAGD,EAAI,GAAII,EAAI,KAAK,OAAQ,EAAG,EAAI,KAAK,GAAIF,EAAI,KAAK,OAAM,EAAKF,EACrFC,EAAE,EAAIK,EAAE,EAAIJ,EAAI,KAAK,IAAIE,CAAC,EAAGH,EAAE,EAAIK,EAAE,EAAIJ,EAAI,KAAK,IAAIE,CAAC,EAAGH,EAAE,MAAQ,KAAK,SAASA,EAAE,OAAO,EAAE,MAAO,KAAK,SAASA,EAAE,OAAO,EAAE,UAAU,KAAK,CAAE,EAAGA,EAAE,EAAG,EAAGA,EAAE,EAAG,CACtK,CAAO,EACD,UAAWF,KAAK,KAAK,SACnB,KAAK,SAASA,CAAC,EAAE,EAAI,KAAK,SAASA,CAAC,EAAE,UAAU,OAAO,CAACE,EAAGK,IAAML,EAAIK,EAAE,EAAG,CAAC,EAAI,KAAK,SAASP,CAAC,EAAE,UAAU,OAAQ,KAAK,SAASA,CAAC,EAAE,EAAI,KAAK,SAASA,CAAC,EAAE,UAAU,OAAO,CAACE,EAAGK,IAAML,EAAIK,EAAE,EAAG,CAAC,EAAI,KAAK,SAASP,CAAC,EAAE,UAAU,OAC9N,GAAG,KAAK,MAAO,CACb,mBAAoB,gBACpB,sBAAuB,mBACvB,sBAAuB,kBACxB,CAAA,EAAG,KAAK,MAAM,YAAY,CAACA,EAAG,CAAE,cAAeE,EAAG,iBAAkBK,EAAG,iBAAkBN,CAAC,IAAO,CAChG,OAAOM,GAAK,SAAW,KAAK,MAAM,oBAAoBP,EAAG,CACvD,KAAME,EAAI,SAAW,WACrB,UAAW,GAAGA,EAAGD,CAAC,CAC5B,CAAS,EAAI,OAAOC,GAAK,SAAW,KAAK,MAAM,oBAAoBF,EAAG,CAC5D,KAAM,SACN,UAAW,GAAGE,EAAGD,CAAC,CAC5B,CAAS,EAAI,KAAK,MAAM,iBAAiBD,EAAG,OAAQ,UAAU,CAC9D,CAAO,CACP,CAAK,CACL,CAEE,aAAc,CACZ,OAAO,GAAG,KAAM,KAAM,WAAa,CACjC,MAAMH,EAAI,KAAK,IAAI,cAAc,oBAAoB,EACrD,KAAK,SAAW,IAAI,GAAG,KAAK,MAAOA,EAAG,CACpC,iBAAkB,GAClB,iBAAkB,GAClB,sBAAuB,GACvB,gBAAiB,WACjB,mBAAoB,CAClB,SAAU,GACV,OAAQ,EAClB,CAEA,CAAO,EACD,MAAMH,EAAI,GAAG,cAAc,KAAK,KAAK,EAAGD,EAAI,IAAI,GAAG,KAAK,MAAO,CAC7D,SAAU,GAAG,GAAG,CAAE,EAAEC,CAAC,EAAG,CACtB,WAAY,EAOb,CAAA,CACT,CAAO,EACDD,EAAE,MAAO,EACT,MAAMG,EAAI,KAAK,IAAI,cAAc,eAAe,EAChDA,EAAE,iBAAiB,QAAS,IAAM,CAChC,KAAK,eAAeA,EAAE,OAAS,EAAE,CACzC,CAAO,EAAG,KAAK,SAAS,GAAG,YAAa,CAAC,CAAE,KAAME,KAAQ,CACjD,KAAK,eAAeA,CAAC,EAAG,KAAK,cAAgB,KAAK,gBAAgBA,CAAC,CACpE,CAAA,EAAG,KAAK,SAAS,GAAG,YAAa,IAAM,CACtC,KAAK,eAAe,MAAM,EAAG,KAAK,cAAgB,KAAK,gBAAgB,MAAM,CAC9E,CAAA,EAAG,KAAK,SAAS,GAAG,YAAa,CAAC,CAAE,KAAMA,EAAG,MAAOE,KAAQ,CAC3D,GAAIA,EAAE,SAAS,SACb,GAAI,KAAK,cAAc,IAAIF,CAAC,EAAG,CAC7B,KAAK,cAAc,OAAOA,CAAC,EAC3B,MACD,MACC,KAAK,cAAc,IAAIA,CAAC,OAE1B,KAAK,cAAgC,IAAI,IAAI,CAACA,CAAC,CAAC,EAClD,KAAK,aAAeA,EAAG,KAAK,gBAAgBA,CAAC,CAC9C,CAAA,EAAG,KAAK,SAAS,GAAG,aAAc,IAAM,CACvC,KAAK,cAAgC,IAAI,IAAO,KAAK,aAAe,OAAQ,KAAK,gBAAe,EAAI,KAAK,aAAe,OAAQ,KAAK,gBAAiB,CAC9J,CAAO,EAAG,KAAK,SAAS,GAAG,YAAa,CAAC,CAAE,KAAMA,KAAQ,CACjD,KAAK,eAAiBA,GAAK,KAAK,aAAeA,EAAG,KAAK,gBAAgBA,CAAC,IAAM,KAAK,aAAe,OAAQ,KAAK,kBACvH,CAAO,EAAG,KAAK,SAAS,GAAG,YAAa,CAAC,CAAE,KAAMA,KAAQ,CACjD,KAAK,cAAgB,KAAK,gBAAgBA,CAAC,CAC5C,CAAA,EAAG,KAAK,SAAS,GAAG,YAAa,IAAM,CACtC,KAAK,cAAgB,KAAK,gBAAiB,CACnD,CAAO,EAAG,KAAK,SAAS,WAAW,cAAe,CAACA,EAAGE,IAAM,CACpD,MAAME,EAAI,GAAG,CAAE,EAAEF,CAAC,EAClB,OAAO,KAAK,aAAa,KAAO,GAAK,KAAK,aAAa,IAAIA,EAAE,OAAO,IAAME,EAAE,OAAS,IAAK,KAAK,kBAAoB,CAAC,KAAK,iBAAiB,IAAIJ,CAAC,GAAK,KAAK,cAAgBA,IAAMI,EAAE,OAAS,IAAK,KAAK,cAAc,IAAIJ,CAAC,GAAKI,EAAE,YAAc,GAAIA,EAAE,OAAS,IAAM,KAAK,cAAgB,KAAK,YAAY,IAAIJ,CAAC,GAAKI,EAAE,WAAa,GAAIA,EAAE,OAAS,IAAMA,EAAE,OAAS,IAAK,KAAK,cAAgB,KAAK,MAAM,aAAa,KAAK,aAAcJ,CAAC,IAAMI,EAAE,YAAc,GAAIA,EAAE,OAAS,IAAKA,CACxd,CAAO,EAAG,KAAK,SAAS,WAAW,cAAe,CAACJ,EAAGE,IAAM,CACpD,MAAME,EAAI,GAAG,CAAE,EAAEF,CAAC,EAClB,OAAO,KAAK,cAAgB,CAAC,KAAK,MAAM,aAAaF,EAAG,KAAK,YAAY,IAAMI,EAAE,OAAS,IAAK,KAAK,aAAe,CAAC,KAAK,MAAM,aAAaJ,EAAG,KAAK,WAAW,IAAMI,EAAE,OAAS,IAAK,KAAK,eAAiB,KAAK,cAAc,KAAO,IAAM,KAAK,cAAc,IAAI,KAAK,MAAM,OAAOJ,CAAC,CAAC,GAAK,KAAK,cAAc,IAAI,KAAK,MAAM,OAAOA,CAAC,CAAC,EAAII,EAAE,OAAS,GAAKA,EAAE,OAAS,IAAK,KAAK,aAAe,KAAK,MAAM,aAAaJ,EAAG,KAAK,WAAW,IAAMI,EAAE,OAAS,IAAK,KAAK,cAAgB,KAAK,MAAM,aAAaJ,EAAG,KAAK,YAAY,IAAMI,EAAE,OAAS,IAAKA,EAAE,MAAQ,MAAOA,EAAE,OAAS,IAAKJ,GAAK,KAAK,eAAiBI,EAAE,MAAQ,OAAQA,EAAE,OAAS,IAAK,KAAK,cAAgB,CAAC,KAAK,YAAY,IAAI,KAAK,MAAM,OAAOJ,CAAC,CAAC,GAAK,CAAC,KAAK,YAAY,IAAI,KAAK,MAAM,OAAOA,CAAC,CAAC,KAAOI,EAAE,OAAS,IAAK,KAAK,eAAe,KAAO,GAAK,KAAK,eAAe,IAAIF,EAAE,KAAK,IAAME,EAAE,OAAS,IAAKA,CAC/0B,CAAA,EAAG,KAAK,yBAA0B,KAAK,qBAAsB,EAC9D,MAAMH,EAAI,KAAK,IAAI,cAAc,cAAc,EAC/CA,EAAE,UAAY,KAAK,MAAM,MAAK,EAAG,KAAI,EAAG,IAAKD,GAAM,kBAAkB,KAAK,MAAM,iBAAiBA,EAAG,OAAO,CAAC,aAAa,EAAE,KAAK;AAAA,CACrI,EAAG,WAAW,IAAM,CACb,IAAIA,EACJL,EAAE,KAAI,GAAKK,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,EAAE,CAAE,CAC1E,EAAE,GAAG,CACZ,CAAK,CACL,CACE,gBAAgBD,EAAG,CACjB,IAAIJ,EACJ,MAAMC,EAAI,KAAK,IAAI,cAAc,qBAAqB,EACtD,GAAIA,EAAE,UAAY,GAAIG,EAAG,CACvB,MAAMD,EAAI,KAAK,MAAM,kBAAkBC,CAAC,EAAGE,EAAI,KAAK,MAAM,YAAYF,CAAC,EAAGC,EAAIF,EAAE,QAAU,GAAGA,EAAE,QAAQ,eAAc,CAAE,QAAU,GACjIF,EAAE,UAAY,YAAaA,EAAE,WAAa;AAAA,UACtCI,CAAC;AAAA,sDAC2CC,EAAE,CAAC,CAAC,qBAAqB,KAAK,MAAM,kBAAkBA,EAAE,CAAC,CAAC,EAAE,KAAK;AAAA,oCACnFH,EAAE,GAAG,qDAAqDA,EAAE,KAAK;AAAA,sDAC/CG,EAAE,CAAC,CAAC,qBAAqB,KAAK,MAAM,kBAAkBA,EAAE,CAAC,CAAC,EAAE,KAAK;AAAA,cACxGH,EAAE,eAAiBF,EAAE,WAAa,MAAME,EAAE,YAAY,QAASA,EAAE,UAAYF,EAAE,WAAa,MAAME,EAAE,OAAO,OAC1H,EACKH,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,GAAI,CACnE,CACE,gBAAgBI,EAAG,CACjB,IAAIJ,EACJ,MAAMC,EAAI,KAAK,IAAI,cAAc,qBAAqB,EACtD,GAAIG,EAAG,CACL,MAAMD,EAAI,KAAK,MAAM,kBAAkBC,CAAC,EACxC,IAAIE,EAAI,GACR,GAAIA,EAAI,YAAaA,GAAK,gBAAgBF,CAAC,qDAAqDD,EAAE,KAAK,YAAaA,EAAE,eAAiBG,GAAK,MAAMH,EAAE,YAAY,QAASA,EAAE,UAAYG,GAAK,MAAMH,EAAE,OAAO,QAASA,EAAE,UAAYG,GAAK,sKAAsK,KAAK,SAASH,EAAE,OAAO,EAAE,KAAK;AAAA,YACraA,EAAE,OAAO;AAAA,sBACE,OAAO,KAAK,KAAK,SAAS,EAAE,OAAS,EAAG,CACvDG,GAAK,eACL,UAAWD,KAAKF,EAAE,UAChBG,GAAK,iBAAiBD,CAAC,KAAKA,CAAC,OAC/BC,GAAK,MACb,CACMH,EAAE,UAAU,OAAS,IAAMG,GAAK,mDAAoDL,EAAE,UAAYK,EAClG,UAAWD,KAAKF,EAAE,UAAW,CAC3B,MAAMI,EAAI,SAAS,cAAc,KAAK,EACtCA,EAAE,UAAY,YAAYF,EAAE,OAAO,KAAKA,EAAE,SAAS,iBAAiBA,EAAE,WAAW,KAAKA,EAAE,aAAa,SAASA,EAAE,MAAM,eAAgB,CAAA,IAAKJ,EAAE,YAAYM,CAAC,CAClK,CACK,MACCN,EAAE,UAAY,IACfD,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,GAAI,CACnE,CAEE,eAAeI,EAAG,CAChB,IAAIJ,EAAGG,EAAGG,EACV,KAAK,YAAcF,EACnB,MAAMH,EAAI,KAAK,IAAI,cAAc,eAAe,EAChD,GAAIA,EAAE,QAAUG,IAAMH,EAAE,MAAQG,GAAIA,EAAG,CACrC,MAAMC,EAAID,EAAE,YAAa,EAAEG,EAAI,KAAK,MAAM,MAAK,EAAG,IAAKE,IAAO,CAAE,GAAIA,EAAG,MAAO,KAAK,MAAM,iBAAiBA,EAAG,OAAO,CAAC,EAAG,EAAE,OAAO,CAAC,CAAE,MAAOA,CAAG,IAAKA,EAAE,YAAW,EAAG,SAASJ,CAAC,CAAC,EAC9K,GAAIE,EAAE,SAAW,GAAKA,EAAE,CAAC,EAAE,QAAUH,EAAG,CACtC,KAAK,aAAeG,EAAE,CAAC,EAAE,GAAI,KAAK,gBAAgBA,EAAE,CAAC,EAAE,EAAE,EAAG,KAAK,YAAc,OAC/E,MAAME,GAAKT,EAAI,KAAK,WAAa,KAAO,OAASA,EAAE,mBAAmB,KAAK,YAAY,GACtFG,EAAI,KAAK,WAAa,MAAQA,EAAE,UAAW,EAAC,QAAQM,EAAG,CAAE,SAAU,GAAG,CAAE,CAC1E,MACC,KAAK,YAAc,IAAI,IAAIF,EAAE,IAAI,CAAC,CAAE,GAAIE,KAAQA,CAAC,CAAC,CACrD,MACC,KAAK,YAAc,QACpBH,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,GAAI,CACnE,CACE,eAAeF,EAAG,CAChB,IAAIH,EACJG,IAAM,KAAK,YAAcA,EAAG,KAAK,iBAAmB,IAAI,IAAI,KAAK,MAAM,UAAUA,CAAC,CAAC,GAAIA,IAAM,KAAK,YAAc,OAAQ,KAAK,iBAAmB,SAAUH,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAMhM,eAAgB,EACtB,CAAK,CACL,CACE,WAAWG,EAAGH,EAAI,GAAI,CACpB,MAAMD,EAAI,KAAK,IAAI,cAAc,cAAc,EAC/CI,GAAKJ,EAAE,MAAM,MAAQC,EAAI,MAAQ,QAASD,EAAE,UAAYI,EAAGJ,EAAE,MAAM,QAAU,IAAMA,EAAE,MAAM,QAAU,MACzG,CAEE,WAAY,CACV,KAAK,WAAW,OAAO,KAAK,KAAK,SAAS,EAAE,KAAK,GAAG,CAAC,EAAI,CACvD,SAAU,KAAK,SACf,SAAU,KAAK,SAEf,eAAgB,MAAM,KAAK,KAAK,cAAc,EAC9C,aAAc,MAAM,KAAK,KAAK,YAAY,EAC1C,MAAO,KAAK,MAAM,OAAM,CACzB,EACD,MAAMI,EAAI,KAAK,UAAU,KAAK,UAAU,EACxC,GAAI,CACF,aAAa,QAAQ,2BAA4BA,CAAC,CACnD,MAAW,CACV,MAAMD,EAAI,IAAI,KAAK,CAACC,CAAC,CAAC,EAAE,KAAQ,QAChC,QAAQ,KAAK,oCAAoCD,EAAE,QAAQ,CAAC,CAAC,qDAAqD,CACxH,CACA,CAEE,WAAY,CACV,MAAMC,EAAI,aAAa,QAAQ,0BAA0B,EACzD,GAAIA,EAAG,CACL,KAAK,WAAa,KAAK,MAAMA,CAAC,EAC9B,MAAMH,EAAI,KAAK,WAAW,OAAO,KAAK,KAAK,SAAS,EAAE,KAAK,GAAG,CAAC,EAC/DA,IAAM,KAAK,SAAWA,EAAE,SAAU,KAAK,SAAWA,EAAE,SAAU,KAAK,eAAiB,IAAI,IAAIA,EAAE,cAAc,EAAG,KAAK,aAAe,IAAI,IAAIA,EAAE,YAAY,EAAG,KAAK,MAAM,OAAOA,EAAE,KAAK,EAC3L,CACA,CAqBE,wBAAyB,CACvB,MAAMG,EAAI,KAAK,IAAI,cAAc,2BAA2B,EAC5DA,EAAE,UAAY,GAAI,KAAK,WAAa,CAAA,EAAI,KAAK,MAAM,YAAY,CAACJ,EAAGG,EAAGG,EAAGD,IAAM,CAC7E,KAAK,aAAa,IAAI,KAAK,MAAM,iBAAiBC,EAAG,SAAS,CAAC,GAAK,KAAK,aAAa,IAAI,KAAK,MAAM,iBAAiBD,EAAG,SAAS,CAAC,IAAM,KAAK,WAAWF,EAAE,KAAK,EAAI,KAAK,WAAWA,EAAE,KAAK,EAAE,OAAS,EAAI,KAAK,WAAWA,EAAE,KAAK,EAAI,CAAE,MAAO,EAAG,MAAOA,EAAE,OAChQ,CAAK,EACD,MAAMF,EAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,KAAK,CAACD,EAAGG,IAAMA,EAAE,CAAC,EAAE,MAAQH,EAAE,CAAC,EAAE,KAAK,EAChF,SAAW,CAACA,EAAGG,CAAC,IAAKF,EAAG,CACtB,MAAMK,EAAI,SAAS,cAAc,OAAO,EACxCA,EAAE,KAAO,WAAYA,EAAE,GAAKN,EAAGM,EAAE,QAAU,GAAIA,EAAE,SAAW,IAAM,KAAK,gBAAgBN,EAAGM,EAAE,OAAO,EACnG,MAAMD,EAAI,SAAS,cAAc,OAAO,EACxCA,EAAE,QAAUL,EAAGK,EAAE,MAAQL,EAAGK,EAAE,YAAc,GAAGF,EAAE,KAAK,KAAKA,EAAE,MAAM,eAAgB,CAAA,IACnF,MAAMI,EAAI,SAAS,cAAc,KAAK,EACtCA,EAAE,YAAYD,CAAC,EAAGC,EAAE,YAAYF,CAAC,EAAGD,EAAE,YAAYG,CAAC,CACzD,CACA,CACE,gBAAgBH,EAAGH,EAAG,CACpB,IAAID,EACJC,EAAI,KAAK,eAAe,OAAOG,CAAC,EAAI,KAAK,eAAe,IAAIA,CAAC,GAAIJ,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,GAAI,CACnI,CACE,sBAAuB,CACrB,MAAMI,EAAI,KAAK,IAAI,cAAc,yBAAyB,EAC1DA,EAAE,UAAY,GACd,MAAMH,EAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,KAAK,CAACD,EAAGG,IAAMA,EAAE,CAAC,EAAE,MAAQH,EAAE,CAAC,EAAE,KAAK,EAC9E,SAAW,CAACA,EAAGG,CAAC,IAAKF,EAAG,CACtB,GAAIE,EAAE,QAAU,EACd,SACF,MAAMG,EAAI,SAAS,cAAc,OAAO,EACxCA,EAAE,KAAO,WAAYA,EAAE,GAAKN,EAAGM,EAAE,QAAU,GAAIA,EAAE,SAAW,IAAM,KAAK,cAAcN,EAAGM,EAAE,OAAO,EACjG,MAAMD,EAAI,SAAS,cAAc,OAAO,EACxCF,EAAE,QAAUE,EAAE,MAAM,MAAQF,EAAE,OAAQE,EAAE,QAAUL,EAAGK,EAAE,YAAc,GAAGL,CAAC,KAAKG,EAAE,KAAK,IAAK,OAAO,KAAK,KAAK,SAAS,EAAE,OAAS,IAAME,EAAE,MAAQF,EAAE,UAAWH,GAAK,KAAOK,EAAE,MAAQ,2DAClL,MAAME,EAAI,SAAS,cAAc,KAAK,EACtCA,EAAE,YAAYD,CAAC,EAAGC,EAAE,YAAYF,CAAC,EAAGD,EAAE,YAAYG,CAAC,CACzD,CACA,CACE,cAAcH,EAAGH,EAAG,CAClB,IAAID,EACJC,EAAI,KAAK,aAAa,OAAOG,CAAC,EAAI,KAAK,aAAa,IAAIA,CAAC,EAAG,KAAK,uBAAsB,GAAKJ,EAAI,KAAK,WAAa,MAAQA,EAAE,QAAQ,CAAE,eAAgB,GAAI,CAC9J,CACE,SAASI,EAAG,CACV,OAAO,GAAG,KAAK,SAAUA,CAAC,CAC9B,CACA,CC3+RA,MAAM,cAAiBslC,GAAiBA,EAAI,SAAS,GAAG,EAAIA,EAAM,GAAGA,CAAG,IAClE,WAAcA,GAAgBA,EAAI,OAAO,CAAC,EAAE,YAAA,EAAgBA,EAAI,MAAM,CAAC,EAAE,YAAW,EAQpF,MAAO,qBAAqB,WAAW,CAY3C,aAAA,SAXA,KAAS,UAAa,GACtB,KAAkB,mBAAW,EAE7B,KAAI,KAAsB,GAob1B,KAAA,kBAAmC,CACjC,KAAM,gBACN,cAAe,KACf,KAAM,GACN,IAAK,CAACu+M,EAAQ3hM,IAAS,CACrB,MAAM4hM,EAAuB5hM,GAAO,sBAAsB,MAAM,GAAG,EAAE,CAAC,EACtE,OAAI4hM,GAAwB,KAAK,gBAAkB,EAAA,SAASA,CAAoB,EACvE,CAAC,GAAGA,CAAoB,MAAM,KAAK,gBAAkB,EAAA,SAASA,CAAoB,CAAC,GAAG,EAExF,KAGX,KAAA,mBAAoC,CAClC,KAAM,YACN,KAAM,GACN,IAAK,CAACD,EAAQ3hM,IACRA,GAAO,uBAAyB,OAC3B,KAAK,kBAAkB,QAAQ,OAAciB,GAAAA,EAAI,QAAQjB,EAAM,oBAAqB,IAAM,CAAC,EAC7F,KAAK,kBAAkB,QAEhC,sBAAuB,CAAC2hM,EAAQ3hM,EAAO6hM,IAC9B,KAAK,sBAAsB7hM,EAAO6hM,CAAe,GAG5D,KAAA,sBAAuC,CACrC,KAAM,eACN,KAAM,GACN,IAAK,MAAOC,EAAO9hM,IAAS,CACpB,MAAA+hM,EAASD,EAAM,YACfE,EAAO,4BAA4BF,EAAM,WAAYC,EAAO,KAAMA,EAAO,EAAE,EAC3EE,EAAY,2BAA2BH,EAAM,SAAA,CAAU,EACvDI,EACJ,+BAA+BJ,EAAM,SAAU,EAAEC,EAAO,KAAMA,EAAO,EAAE,GAAK,KAAK,YAAW,EAI9F,GAFM,MAAA,KAAK,YAAYG,CAAc,EAEjCF,GAAQC,EAAU,IAAID,CAAI,GAAK,OAAO,KAAK,KAAK,KAAKE,CAAc,EAAE,IAAI,EAAE,OAAS,EAAG,CACnF,MAAAr3N,EAAQo3N,EAAU,IAAID,CAAI,EAEhC,GAAIn3N,EAAO,CACH,MAAAs3N,MAAmB,IACrB,GAAA,CACEniM,GAAO,uBAAyB,QAClCn1B,EAAM,QAAoBu3N,GAAA,CACjB,OAAA,KAAK,KAAK,KAAKF,CAAc,EAAE,KAAK,KAAK,WAAWE,CAAS,CAAC,CAAC,EACnE,OAAO1pO,GAAQA,EAAK,QAAQsnC,EAAM,oBAAqB,IAAM,CAAC,EAC9D,QAAetnC,GAAA,CACdypO,EAAa,IAAIzpO,CAAI,CAAA,CACtB,CAAA,CACJ,QAEI2G,EAAO,CACN,QAAA,KAAK,6CAA8CA,CAAK,CAAA,CAGlE,GAAI8iO,EAAa,KAAO,EAAG,OAAO,MAAM,KAAKA,CAAY,EAAE,KAAI,CAAA,CACjE,CAEF,OAAIniM,GAAO,uBAAyB,OAC3B,KAAK,KAAKkiM,CAAc,EAAE,WAAW,OAAcjhM,GAAAA,EAAI,QAAQjB,EAAM,oBAAqB,IAAM,CAAC,EACnG,KAAK,KAAKkiM,CAAc,EAAE,UACnC,EACA,0BAAmCJ,GAAA,CAC3B,MAAA9hM,EAAa8hM,EAAM,mBACrB,OAAA9hM,EAAM,OAAO,CAAC,IAAM,KAAOA,EAAM,OAAO,CAAC,IAAM,IAAY,GAC3DA,EAAM,MAAM,gBAAgB,QAAQ,GAAG,GAAK,CAElD,EACA,sBAAuB,CAAC2hM,EAAQ3hM,EAAO6hM,IAC9B,KAAK,sBAAsB7hM,EAAO6hM,CAAe,GA7e5D,mBAAiB,CAEb,OAAA,KAAK,aAAa,oBAAoB,GAAK,cAAc,KAAK,YAAa,CAAA,EAAI,8BAAA,CAKnF,aAAW,CAEF,OAAA,KAAK,QAAQ,UAAU,eAAiB,KAAK,UAAU,CAAC,CAAA,CAIjE,iBAAe,CACb,OAAO,KAAK,KAAK,KAAK,YAAA,CAAa,CAAA,CAIrC,0BAAwB,CAChB,MAAAQ,EAAa,aAAa,QAAQ,wBAAwB,EAC5D,GAAA,CACF,OAAOA,EAAa,KAAK,MAAMA,CAAU,EAAI,SACtChjO,EAAO,CACN,eAAA,KAAK,4CAA6CA,CAAK,EAC/D,aAAa,WAAW,wBAAwB,EACzC,GACT,CAIF,wBAAsB,CAChB,GAAA,CACF,aAAa,QAAQ,yBAA0B,KAAK,UAAU,KAAK,IAAI,CAAC,QACjEA,EAAO,CACN,QAAA,KAAK,yCAA0CA,CAAK,CAAA,CAE9D,CAIF,MAAM,YAAY84L,EAA4B,CACvCA,IACA,KAAK,KAAKA,CAAQ,IAChB,KAAA,KAAKA,CAAQ,EAAI,CAAC,KAAM,CAAA,EAAI,kBAAmB,CAAA,EAAI,QAAS,CAAA,EAAI,WAAY,GAAI,SAAU,CAAA,EAAI,SAAU,KAE1G,KAAK,KAAKA,CAAQ,EAAE,cAEvB,CACE,KAAK,KAAKA,CAAQ,EAAE,SACpB,KAAK,KAAKA,CAAQ,EAAE,SACpB,CACE,KAAK,KAAKA,CAAQ,EAAE,KACpB,KAAK,KAAKA,CAAQ,EAAE,kBACpB,KAAK,KAAKA,CAAQ,EAAE,QACpB,KAAK,KAAKA,CAAQ,EAAE,UAAA,CACrB,EACC,MAAM,QAAQ,IAAI,CACpB,kBAAkBA,EAAU,KAAK,kBAAkB,EACnD,YAAYA,CAAQ,EACpB,mBAAmBA,CAAQ,CAAA,CAC5B,EACD,KAAK,KAAKA,CAAQ,EAAE,YAAkB,IAAA,OAAO,cAEzC,OAAO,KAAK,KAAK,KAAKA,CAAQ,EAAE,QAAQ,EAAE,SAAW,IAClD,KAAA,KAAKA,CAAQ,EAAE,SAAW,iBAE7B,OAAO,KAAK,KAAK,KAAKA,CAAQ,EAAE,IAAI,EAAE,SAAW,IACnD,CAAC,KAAK,KAAKA,CAAQ,EAAE,QAAS,KAAK,KAAKA,CAAQ,EAAE,UAAU,EAAI,MAAM,QAAQ,IAAI,CAChF,mBAAmBA,CAAQ,EAC3B,sBAAsBA,CAAQ,CAAA,CAC/B,GAEH,KAAK,uBAAsB,GAC7B,CAIF,MAAM,oBAAoBA,EAAmB,KAAK,cAAa,CAEvD,MAAAmqC,EAAc,KAAK,cAAc,eAAe,EAChDC,EAAa,KAAK,cAAc,cAAc,EACpDD,EAAY,MAAM,gBAAkB,SACpCC,EAAW,MAAQ,+BACb,MAAA,KAAK,YAAYpqC,CAAQ,EAC3B,KAAK,QAAU,KAAK,gBAAA,IAEtB,KAAK,OAAO,OAAO,MAAM,MACvB,KAAK,mBAAmB,KAAK,gBAAA,EAAkB,SAAS,CAAC,GAAG,KAAK,GAAK,OAAO,MAAM,SAAS,OAEhG,OAAO,KAAK,SAAS,SAAW,KAAK,KAAKA,CAAQ,EAAE,SAG9C,MAAAqqC,EAAiB,KAAK,cAAc,0BAA0B,EAChE,OAAO,KAAK,KAAK,KAAKrqC,CAAQ,EAAE,IAAI,EAAE,OAAS,EACjDqqC,EAAe,MAAM,QAAU,GAE/BA,EAAe,MAAM,QAAU,OAGjC,IAAIC,EAAY,EACZC,EAAY,eAAevqC,CAAQ;AAAA;AAAA,EACnC,OAAO,KAAK,KAAK,KAAKA,CAAQ,EAAE,IAAI,EAAE,OAAS,GACpCsqC,GAAA,EACbC,GAAa,uCAAuC,KAAK,KAAKvqC,CAAQ,EAAE,QAAQ,MAAM,gBAAgB,KAAK,KAAKA,CAAQ,EAAE,WAAW,MAAM;AAAA,IAE9HuqC,GAAA;AAAA,EACT,KAAK,KAAKvqC,CAAQ,EAAE,QAAQ,OAAS,IACvCuqC,GAAa,WAAW,KAAK,KAAKvqC,CAAQ,EAAE,QAAQ,MAAM;AAAA,GAExD,KAAK,KAAKA,CAAQ,EAAE,WAAW,OAAS,IAC1CuqC,GAAa,WAAW,KAAK,KAAKvqC,CAAQ,EAAE,WAAW,MAAM;AAAA,IAG7D,KAAK,KAAKA,CAAQ,EAAE,SAAS,OAAS,GAC3BsqC,GAAA,EACbC,GAAa,WAAW,KAAK,KAAKvqC,CAAQ,EAAE,SAAS,MAAM;AAAA,GAE9CuqC,GAAA;AAAA,EAGX,OAAO,KAAK,KAAK,KAAKvqC,CAAQ,EAAE,QAAQ,EAAE,SAAW,OAAO,KAAK,eAAe,EAAE,OACvEuqC,GAAA,YAAY,OAAO,KAAK,KAAK,KAAKvqC,CAAQ,EAAE,QAAQ,EAAE,MAAM,oBAChE,OAAO,KAAK,KAAK,KAAKA,CAAQ,EAAE,QAAQ,EAAE,OAAS,GAC/CsqC,GAAA,EACAC,GAAA,WAAW,OAAO,KAAK,KAAK,KAAKvqC,CAAQ,EAAE,QAAQ,EAAE,MAAM,aAE3DuqC,GAAA,uBAEXD,IAAc,EAAGH,EAAY,MAAM,gBAAkB,QAChDG,EAAY,EAAGH,EAAY,MAAM,gBAAkB,SACvDA,EAAY,MAAM,gBAAkB,MACzCC,EAAW,MAAQG,EACRH,EAAA,KAAO,uDAAuDpqC,CAAQ,EAAA,CAInF,MAAM,mBAAiB,CAejB,GAdJ,KAAK,WAAa,KAAK,aAAa,UAAU,GAAK,IAAI,MAAM,GAAG,EAAE,IAASz6M,GAAAA,EAAE,MAAM,EAC9E,KAAA,KAAO,KAAK,2BAEjB,KAAK,mBAAqB,KAAK,aAAa,uBAAuB,GAAK,OAIpE,KAAK,gBAAA,GAAqB,KAAK,gBAAiB,EAAC,UAAU,KAAgBilP,GAAAA,EAAQ,MAAQ,MAAS,IACtG,aAAa,WAAW,wBAAwB,EAChD,QAAQ,KAAK,0CAA0C,EACvD,KAAK,KAAO,CAAA,GAIV,KAAK,UAAU,SAAW,EACtB,MAAA,IAAI,MAAM,+FAA+F,EAEjH,KAAK,SAAW,OAAO,KAAK,aAAa,WAAW,CAAC,GAAK,KAAK,SAC/D,KAAK,mBAAqB,OAAO,KAAK,aAAa,uBAAuB,CAAC,GAAK,KAAK,mBACrF,KAAK,mBAAqB,KAAK,aAAa,uBAAuB,GAAK,KAAK,mBAC7E,KAAK,aAAe,KAAK,aAAa,qBAAqB,GAAK,KAAK,aACjE,KAAK,oBAAsB,CAAC,KAAK,eAAc,KAAK,aAAe,KAAK,mBAAmB,MAAM,OAAO,EAAE,CAAC,GAE1G1gO,YAAA,iBAAiB,MAAO,gBAAgB,EACxCA,YAAA,iBAAiB,SAAU,gBAAgB,EAEhD,MAAM2gO,EAAiB,KAAK,aAAa,gBAAgB,GAAG,eAAoC,MAC3F,CAAC,MAAO,MAAM,EAAE,SAASA,CAAa,GACjC,QAAA,KAAK,iDAAkDA,CAAa,EAExE,MAAAC,EAAU,SAAS,cAAc,OAAO,EAC9CA,EAAQ,YAAc;AAAA,QAClB,SAAS;AAAA,QACT,mBAAmB;AAAA,QACnB,cAAc;AAAA,QACd,SAAS;AAAA,IAET,KAAK,UAAU,SAAW,IAC5BA,EAAQ,aAAe;AAAA;AAAA,IAInB,MAAAC,EAAmB,KAAK,aAC1B;AAAA,MACF,QAAQ;AAAA,aAEN,GACJ,KAAK,UAAY,0BACjB,KAAK,UAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAMf,eAAe;AAAA;AAAA;AAAA,MAGf,YAAY;AAAA;AAAA;AAAA,MAGZ,kBAAkB;AAAA;AAAA,IAEpBA,CAAgB;AAAA;AAAA,MAEd,UAAU;AAAA;AAAA;AAAA,MAGVC,WAAkB;AAAA;AAAA;AAAA,QAIpB,KAAK,YAAYF,CAAO,EAajB,OAAA,MAAM,SAAS,eAAe,OAAO,OAAO,MAAM,SAAS,eAAe,QAAQ,UAAU,EAAG,CAAC,EAChG,OAAA,MAAM,SAAS,eAAe,OAAO,OAAO,MAAM,SAAS,eAAe,QAAQ,OAAO,EAAG,CAAC,EAC7F,OAAA,MAAM,SAAS,eAAe,OAAO,OAAO,MAAM,SAAS,eAAe,QAAQ,UAAU,EAAG,CAAC,EACvG,OAAO,MAAM,kBAAkB,WAAY,KAAK,iBAAiB,EACjE,OAAO,MAAM,kBAAkB,QAAS,KAAK,kBAAkB,EAC/D,OAAO,MAAM,kBAAkB,WAAY,KAAK,qBAAqB,EACrE,OAAO,SAAS,cAAgB,CAC9B,GAAG,OAAO,SAAS,cACnB,SAAU,KAAK,UAAU,CAAC,EAC1B,OAAQD,GAEV,OAAO,SAAS,yBAA2B,CACzC,GAAG,OAAO,SAAS,yBACnB,QAAS,IAAM,KAAK,UAAU,IAAiBzqC,IAAA,CAAC,SAAAA,GAAoB,EACpE,WAAY,CAACj0L,EAAMzJ,IAAU,CACrB,MAAAuoO,EAAa,SAAS,cAAc,KAAK,EACpCA,EAAA,UAAY9+N,EAAK,MAAM,SAClCzJ,EAAO,YAAYuoO,CAAU,CAAA,GAK3B,MAAAC,EAAW,KAAK,cAAc,SAAS,EACxC,KAAA,OAAS,IAAI,OAAOA,EAAU,CAEjC,cAAe,UAAU,OAAO,SAAS,SAAS,QAAQ,MAAO,EAAE,CAAC,GACpE,qBAAsB,EAAA,CACvB,EACD,MAAM,KAAK,oBAAmB,EAC9B,MAAM,KAAK,aAAY,EACvB,MAAM,KAAK,aAAY,EAiBnB,OAAO,OAAW,KAEb,OAAA,iBAAiB,WAAoBv6N,GAAA,CACtC,KAAK,eACP,KAAK,YAAW,EAChBA,EAAM,eAAc,EACtB,CACD,EAGE,KAAA,QAAQ,GAAG,YAAa,IAAK,CAChC,WAAW,SAAW,CACpB,MAAM,KAAK,oBAAmB,EAC9B,MAAM,KAAK,aAAY,EACvB,MAAM,KAAK,aAAY,CAAA,CACxB,CAAA,CACF,EACI,KAAA,QAAQ,GAAG,wBAAyB,IAAK,CAC5C,WAAW,SAAW,CACpB,MAAM,KAAK,oBAAmB,EACxB,MAAA,KAAK,aAAa,EAAI,EAC5B,MAAM,KAAK,aAAY,CAAA,CACxB,CAAA,CACF,EACI,KAAA,QAAQ,GAAG,SAAU,IAAK,CAC7B,WAAW,IAAK,CACd,KAAK,aAAY,EACjB,KAAK,aAAY,CAAA,CAClB,CAAA,CACF,EAGuB,KAAK,cAAc,yBAAyB,GACnD,iBAAiB,QAAS,SAAW,CACpD,aAAa,WAAW,wBAAwB,EAChD,KAAK,KAAO,CAAA,EACZ,MAAM,KAAK,oBAAmB,EACxB,MAAA,KAAK,aAAa,EAAI,CAAA,CAC7B,EAGwB,KAAK,cAAc,0BAA0B,GACpD,iBAAiB,QAAS,IAAK,CAC/C,MAAMw6N,EAA0C,CAAA,EACrC,UAAA9pO,KAAO,OAAO,KAAK,KAAK,kBAAkB,QAAQ,EAAE,OAC7D8pO,EAAe9pO,CAAG,EAAI,KAAK,gBAAe,EAAG,SAASA,CAAG,EAE3D,KAAK,QAAQ,OAAQ,GAAE,SAAQ,EAAG,YAAY8pO,CAAc,EAC5D,KAAK,QAAQ,OAAQ,GAAE,SAAQ,EAAG,iBAAiB,EAAI,CAAA,CACxD,EAED,KAAK,OAAO,GAAG,cAAe,CAACC,EAAIC,IAAO,CAClC,MAAAjhP,EAAKihP,EAAI,WAIf,GAFAA,EAAI,QAAO,EAAG,OAAO,SAAW,CAAC,GAAG,OAAO,KAAK,SAAS,SAAU,GAAGjhP,EAAG,sBAAsB,EAE3F,KAAK,SAAU,CAEjB,MAAMkhP,EAAe,oBAElBlhP,EAAG,iBAAmB,UAAYA,EAAG,aAAmB,IAAA,cACzD,CAACkhP,EAAa,KAAKlhP,EAAG,SAAW,EAAA,KAAA,CAAM,GAEpCA,EAAA,SAAS,GAAGA,EAAG,SAAQ,EAAG,MAAM,UAAU,KAAK,QAAQ,EAAE,CAC9D,CACF,CAmBD,EAoCI,KAAA,OAAO,GAAG,gBAAiB,SAAW,CACzC,MAAM,IAAI,QAAQy3E,GAAW,WAAWA,EAAS,CAAC,CAAC,EAClC,KAAK,iBAAiB,kBAAkB,GAC/C,QAAkB0pK,GAAA,CACtB,GAAAA,EAAQ,KAAK,WAAW,mCAAmC,EAAG,OAC5D,MAAAC,EAAc,SAAS,cAAc,GAAG,EAC9CA,EAAY,KAAO,KAAK,kBAAkBD,EAAQ,IAAI,EACtDC,EAAY,YAAc,MAC1BA,EAAY,MAAM,WAAa,QAC/BA,EAAY,MAAM,eAAiB,OAC3BD,EAAA,eAAe,YAAYC,CAAW,CAAA,CAC/C,CAAA,CACF,EAGG,KAAK,cACkB,KAAK,cAAc,0BAA0B,GACpD,iBAAiB,QAAS,IAAK,CAC/C,KAAK,sBAAqB,CAAA,CAC3B,CACH,CAyFF,sBAAsBvjM,EAA4B6hM,EAAuB,CACvE,OAAI7hM,EAAM,aAAeA,EAAM,sBAAwBA,EAAM,eAE3D6hM,EAAkB7hM,EAAM,YAAc6hM,EAAgB,UAAU7hM,EAAM,eAAe,MAAM,EAGzE6hM,EAAA,YAAY,KAAK,kBAAkB,SAAUA,CAAe,GAAK,IAAMA,EAAkB,IAEtGA,CAAA,CAGT,WAAW2B,EAA2B,CACpCA,EAAS,UAAS,EAClB,KAAK,aAAeA,EACpB,QAAQ,UAAU,CAAC,WAAY,EAAA,EAAO,EAAE,EAC/B,SAAA,KAAK,MAAM,SAAW,QAAA,CAGjC,aAAW,CACL,KAAK,eACP,KAAK,aAAa,QAClB,KAAK,aAAe,OACX,SAAA,KAAK,MAAM,SAAW,GAEjC,CAGF,uBAAqB,CAEb,MAAAC,GAAsB,KAAK,gBAAkB,EAAA,SAAS,OAAS,GAAG,SAAQ,EAAG,SAAS,EAAG,GAAG,EAC5FC,EAAS,SAAS,cAAc,QAAQ,EAC9CA,EAAO,MAAM,SAAW,QACxBA,EAAO,MAAM,QAAU,MACvBA,EAAO,MAAM,aAAe,MAC5BA,EAAO,MAAM,YAAc,UAC3B,MAAMC,EAAkB,KAAK,aACzB,YAAY,KAAK,YAAY,mCAC7B,aACEC,EAAe,KAAK,mBACtB,4FACA,GACJF,EAAO,UAAY;AAAA;AAAA;AAAA,uGAGgFC,CAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6EAMzCF,CAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnFG,CAAY;AAAA;AAAA;AAAA;AAAA;AAAA,MAMpB,KAAK,YAAYF,CAAM,EACvB,KAAK,WAAWA,CAAM,EACGA,EAAO,cAAc,cAAc,EAC3C,MAAK,EAEtBA,EAAO,cAAc,wBAAwB,GAAG,iBAAiB,QAAS,IAAK,CAC7E,KAAK,YAAW,CAAA,CACjB,EACMA,EAAA,iBAAiB,QAAS,IAAK,CACpC,KAAK,YAAW,CAAA,CACjB,EAED,MAAMG,EAAgB,IAAK,CACzB,MAAMh4N,EAAe63N,EAAO,cAAc,cAAc,EAA0B,MAC5EI,EAAeJ,EAAO,cAAc,WAAW,EAAuB,MACzE,MAAM,GAAG,EACT,IAAKK,GAAe,IAAIA,EAAG,KAAM,CAAA,GAAG,EACpC,KAAK,IAAI,EACNC,EAAY,WAAW,KAAK,QAAQ,UAAU,WAAW,gBAAkB,QAAQ,EACnFC,EAAcH,EAAY,OAAS,EAAI,mBAAmBA,CAAW;AAAA,IAAW,GAChFI,EAAcR,EAAO,cAAc,cAAc,EAAuB,MACvE,MAAA,CACL,gBAAgB,KAAK,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,KAK3CQ,CAAU,yBACL,CAAC,SAAU,YAAa,KAAK,EAAE,SAASF,CAAS,EAAI,cAAcA,CAAS,aAAe,EAC7F;AAAA,kBACUn4N,CAAW;AAAA;AAAA,OAEtBm4N,EAAU,aAAa,OAAO,KAAK,QAAQ,UAAU,WAAW,UAAU;AAAA,IAC7EC,CAAW,kBAAkB,KAAK,YAAA,CAAa,MAC3CC,EAEJ,EAEMC,EAAST,EAAO,cAAc,eAAe,EAC5CS,EAAA,iBAAiB,SAAczmP,GAAA,CACpCA,EAAE,eAAc,EAChB,KAAM,CAAC0mP,EAAUF,CAAU,EAAIL,IACzBQ,EAAU,kCAAkC,mBAAmBD,CAAQ,CAAC,GACxEE,EAAiB,SAAS,cAAc,GAAG,EAClCA,EAAA,aAAa,OAAQD,CAAO,EAC3CC,EAAe,aAAa,WAAY,GAAGJ,CAAU,MAAM,EAC3DI,EAAe,MAAK,EACpB,KAAK,YAAW,CAAA,CACjB,EAEDZ,EAAO,cAAc,qBAAqB,GAAG,iBAAiB,QAAS,IAAK,CACtE,GAAAS,EAAO,gBAAiB,CACpB,KAAA,CAACC,CAAQ,EAAIP,IACT,UAAA,UAAU,UAAUO,CAAQ,CAAA,MAEtCD,EAAO,eAAc,CACvB,CACD,EAEG,KAAK,oBACPT,EAAO,cAAc,kBAAkB,GAAG,iBAAiB,QAAS,IAAK,CACnE,GAAAS,EAAO,gBAAiB,CAC1B,KAAM,CAACC,EAAUF,CAAU,EAAIL,IACzBU,EAAmB,GAAG,KAAK,kBAAkB,aAAaL,CAAU,cAAc,mBAAmBE,CAAQ,CAAC,GAC7G,OAAA,KAAKG,EAAkB,QAAQ,CAAA,MAEtCJ,EAAO,eAAc,CACvB,CACD,CACH,CAGF,0BAAwB,CAChB,MAAAK,EAAmB,KAAK,cAAc,0BAA0B,EAClEA,IACFA,EAAiB,MAAM,QAAUA,EAAiB,MAAM,UAAY,OAAS,QAAU,OACzF,CAGF,MAAM,cAAY,CACV,MAAAC,EAAc,KAAK,cAAc,0BAA0B,EAC3DC,EAAyB,KAAK,cAAc,6BAA6B,EAC3EA,GAAwBA,EAAuB,OAAM,EACnD,MAAAC,EAAiB,SAAS,cAAc,QAAQ,EAEtDA,EAAe,GAAK,6BACpBA,EAAe,MAAM,MAAQ,OAC7BA,EAAe,MAAM,OAAS,OAI9BA,EAAe,UAAY,yDACrB,MAAAC,EAAaD,EAAe,cAAc,kBAAkB,EAClE,IAAIE,GACFD,EACA,CAAC,CAAC,KAAK,aAAa,EAAG,KAAK,gBAAA,EAAkB,iBAAiB,EAC/D,KAAK,gBAAA,EAAkB,QAAQ,EAK3B,MAAAE,EAAiB,SAAS,cAAc,QAAQ,EAEtDA,EAAe,YAAc,QAC7BA,EAAe,MAAM,SAAW,QAChCA,EAAe,MAAM,IAAM,QAC3BA,EAAe,MAAM,MAAQ,MAC7BH,EAAe,YAAYG,CAAc,EACzC,KAAK,YAAYH,CAAc,EAG/BF,EAAY,YAAYA,EAAY,UAAU,EAAI,CAAC,EAC5B,KAAK,cAAc,0BAA0B,EAErD,iBAAiB,QAAS,IAAK,CAC5C,KAAK,WAAWE,CAAc,EAG9BC,EAAW,cAAc,IAAI,MAAM,QAAQ,CAAC,CAAA,CAC7C,EACcE,EAAA,iBAAiB,QAAS,IAAK,CAC5C,KAAK,YAAW,CAAA,CACjB,EACcH,EAAA,iBAAiB,QAAS,IAAK,CAC5C,KAAK,YAAW,CAAA,CACjB,CAAA,CAGH,MAAM,aAAaI,EAAuB,GAAK,CAEvC,MAAAC,EAA2B,KAAK,cAAc,0BAA0B,EACxEC,EAAmB,KAAK,cAAc,0BAA0B,EAChEC,EAAoB,KAAK,cAAc,6BAA6B,EACpEC,EAAiB,UAAU,KAAK,gBAAiB,EAAC,SAAS,MAAM,YACvE,GAAI,KAAK,gBAAA,EAAkB,SAAS,SAAW,EAAG,CAChDH,GAA0B,OAAM,EAChCC,EAAiB,MAAM,QAAU,OACjCC,EAAkB,MAAM,QAAU,OAClC,MAAA,MAEAD,EAAiB,UAAY,GAAG,kBAAkB,IAAIE,CAAc,GACnDF,EAAA,MAAQ,GAAGE,CAAc,uCAC1CD,EAAkB,iBAAiB,QAAS,IAAM,KAAK,0BAA0B,EAE/E,GAAAF,GAA4B,CAACD,EAC/B,OAEEC,GAA0BA,GAA0B,OAAM,EACxD,MAAAI,EAAU,KAAK,cAAc,gBAAgB,EAC7CC,EAAgBD,EAAQ,cAExBZ,EAAmB,SAAS,cAAc,KAAK,EACrDA,EAAiB,UAAY,kBAC7BA,EAAiB,UAAY,GAEvB,MAAAc,EAAkB,SAAS,cAAc,KAAK,EACpDA,EAAgB,MAAM,UAAY,SAC5B,MAAAC,EAAe,SAAS,cAAc,IAAI,EAChDA,EAAa,MAAM,OAAS,QAC5BA,EAAa,MAAM,WAAa,MAChCA,EAAa,YAAc,WAC3BD,EAAgB,YAAYC,CAAY,EACxCD,EAAgB,YAAYC,CAAY,EACxCf,EAAiB,YAAYc,CAAe,EAGtC,MAAAE,EAAgB,SAAS,cAAc,QAAQ,EAGrDA,EAAc,MAAM,MAAQ,OAC5BA,EAAc,MAAM,OAAS,OAC7BA,EAAc,MAAM,YAAc,UAClCA,EAAc,MAAM,gBAAkB,UACtCA,EAAc,MAAM,aAAe,OAG7B,MAAAC,EAAc,SAAS,cAAc,OAAO,EAClDA,EAAY,KAAO,OACnBA,EAAY,YAAc,qBAC1BA,EAAY,UAAY,+BACxBD,EAAc,YAAYC,CAAW,EAG/B,MAAAC,EAAmB,SAAS,cAAc,QAAQ,EACxDA,EAAiB,UAAY,eAC7BA,EAAiB,UAAY,UAC7BA,EAAiB,MAAM,SAAW,QAClCA,EAAiB,MAAM,IAAM,QAC7BA,EAAiB,MAAM,MAAQ,MAC/BA,EAAiB,MAAM,aAAe,MAGtCF,EAAc,YAAYE,CAAgB,EAC1CL,EAAc,YAAYG,CAAa,EAGlC,KAAA,gBAAA,EACF,SAAS,MAAM,EAAG,KAAK,kBAAkB,EACzC,QAAkB7C,GAAA,CACX,MAAAgD,EAAa,SAAS,cAAc,KAAK,EAC/CA,EAAW,UAAY,uBACjB,MAAAC,EAAW,SAAS,cAAc,GAAG,EAC3CA,EAAS,MAAM,SAAW,QAC1BA,EAAS,UAAY,GAAGjD,EAAQ,KAAK,KAAKA,EAAQ,OAAO,GAGzD,MAAM/2N,EAAS,gBAAe,EACvBA,EAAA,iBAAiB,QAAS,IAAK,CACpC,KAAK,OAAO+2N,EAAQ,MAAOA,EAAQ,OAAO,CAAA,CAC3C,EACDiD,EAAS,YAAYh6N,CAAM,EAC3B+5N,EAAW,YAAYC,CAAQ,EAC/BpB,EAAiB,YAAYmB,CAAU,CAAA,CACxC,EAGG,MAAAE,EAAmBC,GAA2B,CAElDN,EAAc,iBAAiB,sBAAsB,EAAE,QAAgBz/N,GAAAA,EAAK,QAAQ,EAEpF+/N,EAAiB,QAAkBnD,GAAA,CAC3B,MAAAgD,EAAa,SAAS,cAAc,KAAK,EAC/CA,EAAW,UAAY,sBACjB,MAAAC,EAAW,SAAS,cAAc,GAAG,EAC3CA,EAAS,MAAM,SAAW,QAC1BA,EAAS,UAAY,GAAGjD,EAAQ,KAAK,KAAKA,EAAQ,OAAO,GAGzD,MAAM/2N,EAAS,gBAAe,EACvBA,EAAA,iBAAiB,QAAS,IAAK,CACpC,KAAK,OAAO+2N,EAAQ,MAAOA,EAAQ,OAAO,EAC1C,KAAK,YAAW,CAAA,CACjB,EACDiD,EAAS,YAAYh6N,CAAM,EAC3B+5N,EAAW,YAAYC,CAAQ,EAGzB,MAAAG,EAAa,SAAS,cAAc,KAAK,EACzCC,EAAc,SAAS,cAAc,MAAM,EACjDA,EAAY,UAAY,uBACxBA,EAAY,MAAM,aAAe,OACjCD,EAAW,MAAM,aAAe,OAChCA,EAAW,MAAM,gBAAkB,UACnCA,EAAW,MAAM,QAAU,QACfC,EAAA,UAAY/jO,YAAK,UAAU0gO,EAAQ,MAAM,KAAM,EAAE,CAAC,SAAU,QAAS,CAAA,EAAE,MACnFoD,EAAW,YAAYC,CAAW,EAClCL,EAAW,YAAYI,CAAU,EAEjCP,EAAc,YAAYG,CAAU,CAAA,CAerC,CACH,EAGgBE,EAAA,KAAK,kBAAkB,QAAQ,EAGnCJ,EAAA,iBAAiB,QAAS,IAAK,CACnC,MAAAQ,EAAaR,EAAY,MAAM,cAC/BK,EAAmB,KAAK,gBAAA,EAAkB,SAAS,OAAiBnD,GACjEA,EAAQ,QAAQ,YAAa,EAAC,SAASsD,CAAU,GAAKtD,EAAQ,MAAM,cAAc,SAASsD,CAAU,CAC7G,EACDJ,EAAgBC,CAAgB,CAAA,CACjC,EAGK,MAAAI,EAAkB,SAAS,cAAc,QAAQ,EACvDA,EAAgB,UAAY,GAAG,kBAAkB,IAAIf,CAAc,GACnDe,EAAA,MAAQ,GAAGf,CAAc,uCACzCe,EAAgB,UAAY,MAC5B1B,EAAiB,YAAY0B,CAAe,EAE3BjB,EAAA,iBAAiB,QAAS,IAAK,CAC9C,KAAK,WAAWO,CAAa,CAAA,CAC9B,EACeU,EAAA,iBAAiB,QAAS,IAAK,CAC7C,KAAK,WAAWV,CAAa,CAAA,CAE9B,EACgBE,EAAA,iBAAiB,QAAS,IAAK,CAC9C,KAAK,YAAW,CAAA,CACjB,EACaF,EAAA,iBAAiB,QAAS,IAAK,CAC3C,KAAK,YAAW,CAAA,CACjB,EAGDJ,EAAQ,MAAM,MAAQ,OACtBZ,EAAiB,MAAM,MAAQ,MAC/BA,EAAiB,MAAM,OAAS,cAChCa,EAAc,MAAM,QAAU,OAC9BA,EAAc,YAAYb,CAAgB,EAC1C,WAAW,IAAK,CACVA,EAAiB,aAAe,GACpB,KAAK,QAAQ,OAAA,GAAU,SAAQ,GACtC,QAAQ,KAAM,GAAGA,EAAiB,YAAY,IAAI,CAC3D,CACD,CAAA,CAGH,mBAAmBh6N,EAAa,CAGxB,MAAA27N,EAAa,OAAO,KAAK,KAAK,mBAAmB,QAAQ,EAAE,OACjE,UAAW/sO,KAAO+sO,EAAY,CAC5B,MAAMptO,EAAQ,KAAK,gBAAiB,EAAC,SAASK,CAAG,EAG3CK,EAAS,UAAYL,EAAM,SAAWL,EACxC,CAAC,IAAI,OAAOU,EAAQ,GAAG,EAAE,KAAK+Q,CAAK,GAAK,IAAI,OAAO,cAAqBpR,EAAM,IAAK,GAAG,EAAE,KAAKoR,CAAK,IAC5FA,EAAA,UAAUpR,CAAG,MAAML,CAAK;AAAA,EAAMyR,CAAK,GAC7C,CAEK,OAAAA,CAAA,CAGT,4BAA0B,CAExB,MAAMA,EAAQ,KAAK,QAAQ,UAAU,WAAW,WAC1C27N,EAAa,OAAO,KAAK,KAAK,kBAAkB,QAAQ,EAAE,OAChE,UAAW/sO,KAAO+sO,EAAY,CAC5B,MAAMptO,EAAQ,KAAK,gBAAiB,EAAC,SAASK,CAAG,EAC3CmqJ,EAAkC,CAAA,EACxCA,EAAKnqJ,CAAG,EAAIL,EACN,MAAAU,EAAS,UAAYL,EAAM,SAAWL,EACxC,CAAC,IAAI,OAAOU,EAAQ,GAAG,EAAE,KAAK+Q,CAAK,GAAK,IAAI,OAAO,cAAqBpR,EAAM,IAAK,GAAG,EAAE,KAAKoR,CAAK,GACpG,KAAK,QAAQ,OAAQ,GAAE,SAAQ,EAAG,YAAY+4I,CAAI,CACpD,CACF,CAGF,OAAO/4I,EAAe0iC,EAAa,CAC5B,KAAA,QAAQ,OAAO,GAAM,CACxB,GAAG,OAAO,IAAI,YAAa,EAC3B,KAAM,iBAAiBA,CAAK,EAC5B,cAAe,CAAC,GAAG,OAAO,SAAS,cAAe,SAAU,KAAK,aAAc,EAC/E,MAAO,CAAC,MAAO1iC,CAAM,CAAA,CACtB,EACD,KAAK,2BAA0B,CAAA,CAGjC,kBAAkB47N,EAAmB,CAC5B,MAAA,UAAU,mBAAmB,aAAaA,CAAW,GAAG,CAAC,aAAa,KAAK,YAAa,CAAA,EAAA,CAIjG,WAAWC,EAAa,CAElB,GAAA,4BAA4B,KAAKA,CAAK,EAAG,CAC3C,KAAM,CAAC5sO,EAAQ23H,CAAK,EAAIi1G,EAAM,MAAM,GAAG,EACjCjjF,EAAY,KAAK,gBAAiB,EAAC,SAAS3pJ,CAAM,EACxD,OAAO2pJ,EAAY,GAAGA,CAAS,GAAGhyB,CAAK,GAAKi1G,CAAA,KAGrC,QAAAA,CACT,CAEH,CAED,eAAe,OAAO,gBAAiB,YAAY","x_google_ignoreList":[0,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193]}